Skip to content

Commit

Permalink
kunit: Setup DMA masks on the kunit device
Browse files Browse the repository at this point in the history
[ Upstream commit c5215d54dc10e801a6cefef62445a00a4c28a515 ]

Commit d393acc ("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 d03c720 ("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: d03c720 ("kunit: Add APIs for managing devices")
Signed-off-by: Maxime Ripard <mripard@kernel.org>
Tested-by: Guenter Roeck <linux@roeck-us.net>
Reviewed-by: David Gow <davidgow@google.com>
Signed-off-by: Shuah Khan <skhan@linuxfoundation.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
  • Loading branch information
mripard authored and Sasha Levin committed Mar 26, 2024
1 parent 8c43d6a commit 5a3be9a
Showing 1 changed file with 4 additions and 0 deletions.
4 changes: 4 additions & 0 deletions lib/kunit/device.c
Expand Up @@ -10,6 +10,7 @@
*/

#include <linux/device.h>
#include <linux/dma-mapping.h>

#include <kunit/test.h>
#include <kunit/device.h>
Expand Down Expand Up @@ -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;
Expand Down

0 comments on commit 5a3be9a

Please sign in to comment.