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