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 <mrip...@kernel.org>

Tested-by: Guenter Roeck <li...@roeck-us.net>

Guenter

Reply via email to