Re: [PATCH] kunit: Setup DMA masks on the kunit device

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, 21 Feb 2024 at 20:53, Maxime Ripard <mripard@xxxxxxxxxx> wrote:
>
> Commit d393acce7b3f ("drm/tests: Switch to kunit devices") switched the
> DRM device creation helpers from an ad-hoc implementation to the new
> kunit device creation helpers introduced in commit d03c720e03bd ("kunit:
> Add APIs for managing devices").
>
> However, while the DRM helpers were using a platform_device, the kunit
> helpers are using a dedicated bus and device type.
>
> That situation creates small differences in the initialisation, and one
> of them is that the kunit devices do not have the DMA masks setup. In
> turn, this means that we can't do any kind of DMA buffer allocation
> anymore, which creates a regression on some (downstream for now) tests.
>
> Let's set up a default DMA mask that should work on any platform to fix
> it.
>
> Fixes: d03c720e03bd ("kunit: Add APIs for managing devices")
> Signed-off-by: Maxime Ripard <mripard@xxxxxxxxxx>
> ---

Thanks for this.

As Guenter notes, this fixes the ttm tests, which are otherwise
completely broken:
./tools/testing/kunit/kunit.py run --arch x86_64 --kunitconfig
drivers/gpu/drm/ttm/tests/

While I suspect there's probably a discussion to have around what
things KUnit devices should set up (and how much flexibility users
should have there), I think this is definitely a fix worth having in
the meantime.

Reviewed-by: David Gow <davidgow@xxxxxxxxxx>

Cheers,
-- David

>  lib/kunit/device.c | 4 ++++
>  1 file changed, 4 insertions(+)
>
> diff --git a/lib/kunit/device.c b/lib/kunit/device.c
> index 644a38a1f5b1..9ea399049749 100644
> --- a/lib/kunit/device.c
> +++ b/lib/kunit/device.c
> @@ -10,6 +10,7 @@
>   */
>
>  #include <linux/device.h>
> +#include <linux/dma-mapping.h>
>
>  #include <kunit/test.h>
>  #include <kunit/device.h>
> @@ -133,6 +134,9 @@ static struct kunit_device *kunit_device_register_internal(struct kunit *test,
>                 return ERR_PTR(err);
>         }
>
> +       kunit_dev->dev.dma_mask = &kunit_dev->dev.coherent_dma_mask;
> +       kunit_dev->dev.coherent_dma_mask = DMA_BIT_MASK(32);
> +
>         kunit_add_action(test, device_unregister_wrapper, &kunit_dev->dev);
>
>         return kunit_dev;
> --
> 2.43.2
>

Attachment: smime.p7s
Description: S/MIME Cryptographic Signature


[Index of Archives]     [Linux Wireless]     [Linux Kernel]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Share Photos]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Samba]     [Device Mapper]

  Powered by Linux