commit fabd480b721eb30aa4e2c89507b53933069f9f6e
Author: Wander Lairson Costa <wander@redhat.com>
Date: Fri Apr 19 10:25:01 2024 -0300
kunit: unregister the device on error
kunit_init_device() should unregister the device on bus register error,
but mistakenly it tries to unregister the bus.
Unregister the device instead of the bus.
Signed-off-by: Wander Lairson Costa <wander@redhat.com>
Fixes: d03c720e03bd ("kunit: Add APIs for managing devices")
Reviewed-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Shuah Khan <skhan@linuxfoundation.org>
JIRA: https://issues.redhat.com/browse/RHEL-39303
Signed-off-by: Nico Pache <npache@redhat.com>
commit 2fadeb950f53c017bde9e156e443528265dd3629
Author: Ricardo B. Marliere <ricardo@marliere.net>
Date: Wed Feb 14 16:15:00 2024 -0300
kunit: make kunit_bus_type const
Since commit d492cc2573a0 ("driver core: device.h: make struct
bus_type a const *"), the driver core can properly handle constant
struct bus_type, move the kunit_bus_type variable to be a constant
structure as well, placing it into read-only memory which can not be
modified at runtime.
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Suggested-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Ricardo B. Marliere <ricardo@marliere.net>
Reviewed-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Reviewed-by: David Gow <davidgow@google.com>
Signed-off-by: Shuah Khan <skhan@linuxfoundation.org>
JIRA: https://issues.redhat.com/browse/RHEL-39303
Signed-off-by: Nico Pache <npache@redhat.com>
JIRA: https://issues.redhat.com/browse/RHEL-24101
Upstream Status: v6.8-rc1
commit 539e582a375dedee95a4fa9ca3f37cdb25c441ec
Author: David Gow <davidgow@google.com>
AuthorDate: Sat Dec 23 12:18:58 2023 +0800
Commit: Shuah Khan <skhan@linuxfoundation.org>
CommitDate: Wed Jan 3 09:10:37 2024 -0700
The KUnit device helpers are documented with kerneldoc in their header
file, but also have short comments over their implementation. These were
mistakenly formatted as kerneldoc comments, even though they're not
valid kerneldoc. It shouldn't cause any serious problems -- this file
isn't included in the docs -- but it could be confusing, and causes
warnings.
Remove the extra '*' so that these aren't treated as kerneldoc.
Fixes: d03c720e03bd ("kunit: Add APIs for managing devices")
Reported-by: kernel test robot <lkp@intel.com>
Closes: https://lore.kernel.org/oe-kbuild-all/202312181920.H4EPAH20-lkp@intel.com/
Signed-off-by: David Gow <davidgow@google.com>
Reviewed-by: Randy Dunlap <rdunlap@infradead.org>
Signed-off-by: Shuah Khan <skhan@linuxfoundation.org>
Signed-off-by: Dave Airlie <airlied@redhat.com>
JIRA: https://issues.redhat.com/browse/RHEL-24101
Upstream Status: v6.8-rc3
commit 083974ebb8fc65978d6cacd1bcfe9158d6234b98
Author: Dan Carpenter <dan.carpenter@linaro.org>
AuthorDate: Wed Jan 10 21:55:14 2024 +0300
Commit: Shuah Khan <skhan@linuxfoundation.org>
CommitDate: Mon Jan 22 07:58:22 2024 -0700
The root_device_register() function does not return NULL, it returns
error pointers. Fix the check to match.
Fixes: d03c720e03bd ("kunit: Add APIs for managing devices")
Signed-off-by: Dan Carpenter <dan.carpenter@linaro.org>
Reviewed-by: Rae Moar <rmoar@google.com>
Reviewed-by: David Gow <davidgow@google.com>
Signed-off-by: Shuah Khan <skhan@linuxfoundation.org>
Signed-off-by: Dave Airlie <airlied@redhat.com>
JIRA: https://issues.redhat.com/browse/RHEL-24101
Upstream Status: v6.8-rc5
commit 829388b725f8d266ccec32a2f446717d8693eaba
Author: David Gow <davidgow@google.com>
AuthorDate: Thu Feb 1 14:04:36 2024 +0800
Commit: Shuah Khan <skhan@linuxfoundation.org>
CommitDate: Tue Feb 6 17:07:37 2024 -0700
If KUnit is built as a module, and it's unloaded, the kunit_bus is not
unregistered. This causes an error if it's then re-loaded later, as we
try to re-register the bus.
Unregister the bus and root_device on shutdown, if it looks valid.
In addition, be more specific about the value of kunit_bus_device. It
is:
- a valid struct device* if the kunit_bus initialised correctly.
- an ERR_PTR if it failed to initialise.
- NULL before initialisation and after shutdown.
Fixes: d03c720e03bd ("kunit: Add APIs for managing devices")
Signed-off-by: David Gow <davidgow@google.com>
Reviewed-by: Rae Moar <rmoar@google.com>
Signed-off-by: Shuah Khan <skhan@linuxfoundation.org>
Signed-off-by: Dave Airlie <airlied@redhat.com>
JIRA: https://issues.redhat.com/browse/RHEL-24101
Upstream Status: v6.9-rc1
commit c5215d54dc10e801a6cefef62445a00a4c28a515
Author: Maxime Ripard <mripard@kernel.org>
AuthorDate: Wed Feb 21 13:53:24 2024 +0100
Commit: Shuah Khan <skhan@linuxfoundation.org>
CommitDate: Tue Feb 27 14:46:35 2024 -0700
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@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: Dave Airlie <airlied@redhat.com>
JIRA: https://issues.redhat.com/browse/RHEL-24101
Upstream Status: v6.8-rc1
Conflicts:
lib/kunit/kunit-test.c
commit d03c720e03bd9bf0b784d80b5d3ede7e2daf3b6e
Author: davidgow@google.com <davidgow@google.com>
AuthorDate: Fri Dec 15 15:39:08 2023 +0800
Commit: Shuah Khan <skhan@linuxfoundation.org>
CommitDate: Mon Dec 18 13:28:08 2023 -0700
Tests for drivers often require a struct device to pass to other
functions. While it's possible to create these with
root_device_register(), or to use something like a platform device, this
is both a misuse of those APIs, and can be difficult to clean up after,
for example, a failed assertion.
Add some KUnit-specific functions for registering and unregistering a
struct device:
- kunit_device_register()
- kunit_device_register_with_driver()
- kunit_device_unregister()
These helpers allocate a on a 'kunit' bus which will either probe the
driver passed in (kunit_device_register_with_driver), or will create a
stub driver (kunit_device_register) which is cleaned up on test shutdown.
Devices are automatically unregistered on test shutdown, but can be
manually unregistered earlier with kunit_device_unregister() in order
to, for example, test device release code.
Reviewed-by: Matti Vaittinen <mazziesaccount@gmail.com>
Reviewed-by: Maxime Ripard <mripard@kernel.org>
Signed-off-by: David Gow <davidgow@google.com>
Reviewed-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Shuah Khan <skhan@linuxfoundation.org>
Signed-off-by: Dave Airlie <airlied@redhat.com>