On Wed, Feb 21, 2024 at 01:53:24PM +0100, Maxime Ripard 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. > This is wrong. The mainline kernel crashes for me without this patch. With v6.8-rc6: [ 6.401720] ok 3 Above the allocation limit [ 6.407679] ------------[ cut here ]------------ [ 6.407927] WARNING: CPU: 1 PID: 1592 at kernel/dma/mapping.c:503 dma_alloc_attrs+0x36/0x60 ... [ 6.413161] # ttm_pool_alloc_basic: ASSERTION FAILED at drivers/gpu/drm/ttm/tests/ttm_pool_test.c:162 [ 6.413161] Expected err == 0, but [ 6.413161] err == -12 (0xfffffffffffffff4) [ 6.416872] not ok 4 One page, with coherent DMA mappings enabled [ 6.420623] ------------[ cut here ]------------ [ 6.420900] list_add corruption. prev->next should be next (ffffffff86d3e930), but was 6b6b6b6b6b6b6b6b. (prev=ffff8f3143621e20). and downhill from there. Granted, this is due to bad cleanup in the ttm unit tests after a failure, but the offending code causing that failure is already in the mainline kernel. > 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> Tested-by: Guenter Roeck <linux@xxxxxxxxxxxx> Guenter