|
Revision tags: v6.15, v6.15-rc7, v6.15-rc6, v6.15-rc5, v6.15-rc4, v6.15-rc3, v6.15-rc2, v6.15-rc1, v6.14, v6.14-rc7, v6.14-rc6, v6.14-rc5, v6.14-rc4, v6.14-rc3, v6.14-rc2, v6.14-rc1, v6.13, v6.13-rc7, v6.13-rc6 |
|
| #
767b74e0 |
| 05-Jan-2025 |
Zijun Hu <[email protected]> |
driver core: Introduce device_iter_t for device iterating APIs
There are several for_each APIs which has parameter with type below: int (*fn)(struct device *dev, void *data) They iterate over variou
driver core: Introduce device_iter_t for device iterating APIs
There are several for_each APIs which has parameter with type below: int (*fn)(struct device *dev, void *data) They iterate over various device lists and call @fn() for each device with caller provided data @*data, and they usually need to modify @*data.
Give the type an dedicated typedef with advantages shown below: typedef int (*device_iter_t)(struct device *dev, void *data)
- Shorter API declarations and definitions - Prevent further for_each APIs from using bad parameter type
So introduce device_iter_t and apply it to various existing APIs below: bus_for_each_dev() (class|driver)_for_each_device() device_for_each_child(_reverse|_reverse_from)().
Reviewed-by: Jonathan Cameron <[email protected]> Signed-off-by: Zijun Hu <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Greg Kroah-Hartman <[email protected]>
show more ...
|
|
Revision tags: v6.13-rc5 |
|
| #
adf908c9 |
| 24-Dec-2024 |
Zijun Hu <[email protected]> |
driver core: Introduce an device matching API device_match_type()
Introduce device_match_type() for purposes below:
- Test if a device matches with a specified device type. - As argument of various
driver core: Introduce an device matching API device_match_type()
Introduce device_match_type() for purposes below:
- Test if a device matches with a specified device type. - As argument of various device finding APIs to find a device with specified type.
device_find_child() will use it to simplify operations later.
Reviewed-by: Jonathan Cameron <[email protected]> Signed-off-by: Zijun Hu <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Greg Kroah-Hartman <[email protected]>
show more ...
|
|
Revision tags: v6.13-rc4, v6.13-rc3, v6.13-rc2 |
|
| #
fea4952d |
| 02-Dec-2024 |
Daniel Wagner <[email protected]> |
driver core: bus: add irq_get_affinity callback to bus_type
Introducing a callback in struct bus_type so that a subsystem can hook up the getters directly. This approach avoids exposing random gette
driver core: bus: add irq_get_affinity callback to bus_type
Introducing a callback in struct bus_type so that a subsystem can hook up the getters directly. This approach avoids exposing random getters in any subsystems APIs.
Acked-by: Bjorn Helgaas <[email protected]> Reviewed-by: Christoph Hellwig <[email protected]> Reviewed-by: Hannes Reinecke <[email protected]> Reviewed-by: Ming Lei <[email protected]> Acked-by: Greg Kroah-Hartman <[email protected]> Signed-off-by: Daniel Wagner <[email protected]> Link: https://lore.kernel.org/r/20241202-refactor-blk-affinity-helpers-v6-1-27211e9c2cd5@kernel.org Signed-off-by: Jens Axboe <[email protected]>
show more ...
|
|
Revision tags: v6.13-rc1, v6.12, v6.12-rc7, v6.12-rc6, v6.12-rc5, v6.12-rc4, v6.12-rc3, v6.12-rc2, v6.12-rc1, v6.11, v6.11-rc7, v6.11-rc6, v6.11-rc5, v6.11-rc4 |
|
| #
b45ed06f |
| 13-Aug-2024 |
Zijun Hu <[email protected]> |
drivers/base: Introduce device_match_t for device finding APIs
There are several drivers/base APIs for finding a specific device, and they currently use the following good type for the @match parame
drivers/base: Introduce device_match_t for device finding APIs
There are several drivers/base APIs for finding a specific device, and they currently use the following good type for the @match parameter: int (*match)(struct device *dev, const void *data)
Since these operations do not modify the caller-provided @*data, this type is worthy of a dedicated typedef: typedef int (*device_match_t)(struct device *dev, const void *data)
Advantages of using device_match_t: - Shorter API declarations and definitions - Prevent further APIs from using a bad type for @match
So introduce device_match_t and apply it to the existing (bus|class|driver|auxiliary)_find_device() APIs.
Signed-off-by: Zijun Hu <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Greg Kroah-Hartman <[email protected]>
show more ...
|
|
Revision tags: v6.11-rc3, v6.11-rc2, v6.11-rc1, v6.10, v6.10-rc7 |
|
| #
d69d8048 |
| 01-Jul-2024 |
Greg Kroah-Hartman <[email protected]> |
driver core: have match() callback in struct bus_type take a const *
In the match() callback, the struct device_driver * should not be changed, so change the function callback to be a const *. This
driver core: have match() callback in struct bus_type take a const *
In the match() callback, the struct device_driver * should not be changed, so change the function callback to be a const *. This is one step of many towards making the driver core safe to have struct device_driver in read-only memory.
Because the match() callback is in all busses, all busses are modified to handle this properly. This does entail switching some container_of() calls to container_of_const() to properly handle the constant *.
For some busses, like PCI and USB and HV, the const * is cast away in the match callback as those busses do want to modify those structures at this point in time (they have a local lock in the driver structure.) That will have to be changed in the future if they wish to have their struct device * in read-only-memory.
Cc: Rafael J. Wysocki <[email protected]> Reviewed-by: Alex Elder <[email protected]> Acked-by: Sumit Garg <[email protected]> Link: https://lore.kernel.org/r/2024070136-wrongdoer-busily-01e8@gregkh Signed-off-by: Greg Kroah-Hartman <[email protected]>
show more ...
|
|
Revision tags: v6.10-rc6, v6.10-rc5, v6.10-rc4, v6.10-rc3, v6.10-rc2, v6.10-rc1, v6.9, v6.9-rc7, v6.9-rc6, v6.9-rc5, v6.9-rc4, v6.9-rc3, v6.9-rc2, v6.9-rc1, v6.8, v6.8-rc7, v6.8-rc6, v6.8-rc5, v6.8-rc4, v6.8-rc3, v6.8-rc2, v6.8-rc1, v6.7, v6.7-rc8, v6.7-rc7 |
|
| #
5ae81209 |
| 19-Dec-2023 |
Greg Kroah-Hartman <[email protected]> |
driver core: bus: make bus_sort_breadthfirst() take a const pointer
For some reason, during the big "clean up the driver core for a const struct bus_type" work, the bus_sort_breadthfirst() call was
driver core: bus: make bus_sort_breadthfirst() take a const pointer
For some reason, during the big "clean up the driver core for a const struct bus_type" work, the bus_sort_breadthfirst() call was missed. Fix this up by changing the type to be a const * as it should be.
Cc: Rafael J. Wysocki <[email protected]> Link: https://lore.kernel.org/r/2023121935-stinking-ditzy-fd5d@gregkh Signed-off-by: Greg Kroah-Hartman <[email protected]>
show more ...
|
|
Revision tags: v6.7-rc6, v6.7-rc5, v6.7-rc4, v6.7-rc3 |
|
| #
17de3f5f |
| 21-Nov-2023 |
Robin Murphy <[email protected]> |
iommu: Retire bus ops
With the rest of the API internals converted, it's time to finally tackle probe_device and how we bootstrap the per-device ops association to begin with. This ends up being dis
iommu: Retire bus ops
With the rest of the API internals converted, it's time to finally tackle probe_device and how we bootstrap the per-device ops association to begin with. This ends up being disappointingly straightforward, since fwspec users are already doing it in order to find their of_xlate callback, and it works out that we can easily do the equivalent for other drivers too. Then shuffle the remaining awareness of iommu_ops into the couple of core headers that still need it, and breathe a sigh of relief.
Ding dong the bus ops are gone!
CC: Rafael J. Wysocki <[email protected]> Acked-by: Christoph Hellwig <[email protected]> Acked-by: Greg Kroah-Hartman <[email protected]> Reviewed-by: Lu Baolu <[email protected]> Reviewed-by: Jason Gunthorpe <[email protected]> Reviewed-by: Jerry Snitselaar <[email protected]> Signed-off-by: Robin Murphy <[email protected]> Link: https://lore.kernel.org/r/a59011ef65b4b6657cb0b7a388d786b779b61305.1700589539.git.robin.murphy@arm.com Signed-off-by: Joerg Roedel <[email protected]>
show more ...
|
|
Revision tags: v6.7-rc2, v6.7-rc1, v6.6, v6.6-rc7, v6.6-rc6, v6.6-rc5, v6.6-rc4, v6.6-rc3, v6.6-rc2, v6.6-rc1, v6.5, v6.5-rc7, v6.5-rc6, v6.5-rc5, v6.5-rc4, v6.5-rc3, v6.5-rc2, v6.5-rc1, v6.4, v6.4-rc7, v6.4-rc6, v6.4-rc5, v6.4-rc4, v6.4-rc3, v6.4-rc2, v6.4-rc1, v6.3, v6.3-rc7, v6.3-rc6, v6.3-rc5, v6.3-rc4 |
|
| #
00945520 |
| 24-Mar-2023 |
Greg Kroah-Hartman <[email protected]> |
driver core: bus: move documentation for lock_key to proper location.
In commit 37e98d9bedb5 ("driver core: bus: move lock_class_key into dynamic structure"), the lock_key variable moved out of stru
driver core: bus: move documentation for lock_key to proper location.
In commit 37e98d9bedb5 ("driver core: bus: move lock_class_key into dynamic structure"), the lock_key variable moved out of struct bus_type and into struct subsys_private, yet the documentation for it did not move. Fix that up and place the documentation comment in the correct location.
Cc: "Rafael J. Wysocki" <[email protected]> Fixes: 37e98d9bedb5 ("driver core: bus: move lock_class_key into dynamic structure") Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Greg Kroah-Hartman <[email protected]>
show more ...
|
| #
0d62b79f |
| 24-Mar-2023 |
Greg Kroah-Hartman <[email protected]> |
driver core: bus.h: remove extern from function prototypes
The kernel coding style does not require 'extern' in function prototypes in .h files, so remove them from include/linux/device/bus.h as the
driver core: bus.h: remove extern from function prototypes
The kernel coding style does not require 'extern' in function prototypes in .h files, so remove them from include/linux/device/bus.h as they are not needed.
Acked-by: Rafael J. Wysocki <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Greg Kroah-Hartman <[email protected]>
show more ...
|
|
Revision tags: v6.3-rc3 |
|
| #
9622b9f2 |
| 13-Mar-2023 |
Greg Kroah-Hartman <[email protected]> |
driver core: bus: constify bus_rescan_devices()
The bus_rescan_devices() function was missed in the previous change of the bus_for_each* constant pointer changes, so fix it up now to take a const *
driver core: bus: constify bus_rescan_devices()
The bus_rescan_devices() function was missed in the previous change of the bus_for_each* constant pointer changes, so fix it up now to take a const * to struct bus_type.
Cc: "Rafael J. Wysocki" <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Greg Kroah-Hartman <[email protected]>
show more ...
|
| #
00c4a3c4 |
| 13-Mar-2023 |
Greg Kroah-Hartman <[email protected]> |
driver core: bus: constantify bus_register()
bus_register() is now safe to take a constant * to bus_type, so make that change and mark the subsys_private bus_type * constant as well.
Cc: "Rafael J.
driver core: bus: constantify bus_register()
bus_register() is now safe to take a constant * to bus_type, so make that change and mark the subsys_private bus_type * constant as well.
Cc: "Rafael J. Wysocki" <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Greg Kroah-Hartman <[email protected]>
show more ...
|
| #
75cff725 |
| 13-Mar-2023 |
Greg Kroah-Hartman <[email protected]> |
driver core: bus: mark the struct bus_type for sysfs callbacks as constant
struct bus_type should never be modified in a sysfs callback as there is nothing in the structure to modify, and frankly, t
driver core: bus: mark the struct bus_type for sysfs callbacks as constant
struct bus_type should never be modified in a sysfs callback as there is nothing in the structure to modify, and frankly, the structure is almost never used in a sysfs callback, so mark it as constant to allow struct bus_type to be moved to read-only memory.
Cc: "David S. Miller" <[email protected]> Cc: "James E.J. Bottomley" <[email protected]> Cc: "K. Y. Srinivasan" <[email protected]> Cc: Alexander Gordeev <[email protected]> Cc: Alexandre Bounine <[email protected]> Cc: Alison Schofield <[email protected]> Cc: Ben Widawsky <[email protected]> Cc: Dexuan Cui <[email protected]> Cc: Eric Dumazet <[email protected]> Cc: Haiyang Zhang <[email protected]> Cc: Hannes Reinecke <[email protected]> Cc: Harald Freudenberger <[email protected]> Cc: Heiko Carstens <[email protected]> Cc: Hu Haowen <[email protected]> Cc: Jakub Kicinski <[email protected]> Cc: Jens Axboe <[email protected]> Cc: Jonathan Corbet <[email protected]> Cc: Laurentiu Tudor <[email protected]> Cc: Matt Porter <[email protected]> Cc: Michael Ellerman <[email protected]> Cc: Paolo Abeni <[email protected]> Cc: Stuart Yoder <[email protected]> Cc: Vasily Gorbik <[email protected]> Cc: Vishal Verma <[email protected]> Cc: Yanteng Si <[email protected]> Acked-by: Ilya Dryomov <[email protected]> # rbd Acked-by: Ira Weiny <[email protected]> # cxl Reviewed-by: Alex Shi <[email protected]> Acked-by: Iwona Winiarska <[email protected]> Acked-by: Dan Williams <[email protected]> Acked-by: Bjorn Helgaas <[email protected]> # pci Acked-by: Wei Liu <[email protected]> Acked-by: Martin K. Petersen <[email protected]> # scsi Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Greg Kroah-Hartman <[email protected]>
show more ...
|
| #
9cc61e5f |
| 13-Mar-2023 |
Greg Kroah-Hartman <[email protected]> |
driver core: bus: move dev_root out of struct bus_type
Now that all accesses of dev_root is through the bus_get_dev_root() call, move the pointer out of struct bus_type and into the private dynamic
driver core: bus: move dev_root out of struct bus_type
Now that all accesses of dev_root is through the bus_get_dev_root() call, move the pointer out of struct bus_type and into the private dynamic structure, subsys_private.
With this change, there is no modifiable portions of struct bus_type so it can be marked as a constant structure and moved to read-only memory.
Cc: "Rafael J. Wysocki" <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Greg Kroah-Hartman <[email protected]>
show more ...
|
|
Revision tags: v6.3-rc2, v6.3-rc1, v6.2, v6.2-rc8 |
|
| #
8c99377e |
| 09-Feb-2023 |
Greg Kroah-Hartman <[email protected]> |
driver core: bus: add bus_get_dev_root() function
Instead of poking around in the struct bus_type directly for the dev_root pointer, provide a function to return it properly reference counted, if it
driver core: bus: add bus_get_dev_root() function
Instead of poking around in the struct bus_type directly for the dev_root pointer, provide a function to return it properly reference counted, if it is present in the bus. This will be needed to move the pointer out of struct bus_type in the future.
Use the function in the driver core code at the same time it is introduced to verify that it works properly.
Cc: "Rafael J. Wysocki" <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Greg Kroah-Hartman <[email protected]>
show more ...
|
| #
ad8685d0 |
| 08-Feb-2023 |
Greg Kroah-Hartman <[email protected]> |
driver core: bus: constify bus_unregister()
The bus_unregister() function can now take a const * to bus_type, not just a * so fix that up.
Cc: "Rafael J. Wysocki" <[email protected]> Link: https://
driver core: bus: constify bus_unregister()
The bus_unregister() function can now take a const * to bus_type, not just a * so fix that up.
Cc: "Rafael J. Wysocki" <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Greg Kroah-Hartman <[email protected]>
show more ...
|
| #
f91482be |
| 08-Feb-2023 |
Greg Kroah-Hartman <[email protected]> |
driver core: bus: constify bus_get_kset()
The bus_get_kset() function should be taking a const * to bus_type, not just a * so fix that up.
Cc: "Rafael J. Wysocki" <[email protected]> Link: https://
driver core: bus: constify bus_get_kset()
The bus_get_kset() function should be taking a const * to bus_type, not just a * so fix that up.
Cc: "Rafael J. Wysocki" <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Greg Kroah-Hartman <[email protected]>
show more ...
|
| #
bc8b7931 |
| 08-Feb-2023 |
Greg Kroah-Hartman <[email protected]> |
driver core: bus: constify bus_register/unregister_notifier()
The bus_register_notifier() and bus_unregister_notifier() functions should be taking a const * to bus_type, not just a * so fix that up.
driver core: bus: constify bus_register/unregister_notifier()
The bus_register_notifier() and bus_unregister_notifier() functions should be taking a const * to bus_type, not just a * so fix that up.
Cc: "Rafael J. Wysocki" <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Greg Kroah-Hartman <[email protected]>
show more ...
|
| #
d2bf38c0 |
| 08-Feb-2023 |
Greg Kroah-Hartman <[email protected]> |
driver core: remove private pointer from struct bus_type
Now that the driver code has been refactored to not rely on the pointer from a struct bus_type to the private structure it can be safely remo
driver core: remove private pointer from struct bus_type
Now that the driver code has been refactored to not rely on the pointer from a struct bus_type to the private structure it can be safely removed from the structure entirely.
This will allow most bus_type structures to now be marked as const.
Cc: "Rafael J. Wysocki" <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Greg Kroah-Hartman <[email protected]>
show more ...
|
| #
0396f286 |
| 08-Feb-2023 |
Greg Kroah-Hartman <[email protected]> |
driver core: bus: convert bus_create/remove_file to be constant
bus_create_file() and bus_remove_file() can be made to take a constant bus pointer, as it should not be modifying anything in the bus
driver core: bus: convert bus_create/remove_file to be constant
bus_create_file() and bus_remove_file() can be made to take a constant bus pointer, as it should not be modifying anything in the bus structure. Make this change and move the functions to use the internal subsys_get/put() logic as well, to prevent the use of the back-pointer in struct bus_type.
Cc: "Rafael J. Wysocki" <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Greg Kroah-Hartman <[email protected]>
show more ...
|
| #
e0766ea4 |
| 08-Feb-2023 |
Greg Kroah-Hartman <[email protected]> |
driver core: bus: constantify the bus_find_* functions
All of the bus find and iterator functions do not modify the struct bus_type passed to them, so mark them as constant to enforce this rule.
Cc
driver core: bus: constantify the bus_find_* functions
All of the bus find and iterator functions do not modify the struct bus_type passed to them, so mark them as constant to enforce this rule.
Cc: "Rafael J. Wysocki" <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Greg Kroah-Hartman <[email protected]>
show more ...
|
|
Revision tags: v6.2-rc7 |
|
| #
37e98d9b |
| 01-Feb-2023 |
Greg Kroah-Hartman <[email protected]> |
driver core: bus: move lock_class_key into dynamic structure
Move the lock_class_key structure out of struct bus_type and into the dynamic structure we create already for all bus_types registered wi
driver core: bus: move lock_class_key into dynamic structure
Move the lock_class_key structure out of struct bus_type and into the dynamic structure we create already for all bus_types registered with the kernel. This saves on static space and removes one more writable field in struct bus_type.
In the future, the same field can be moved out of the struct class logic because it shares this same private structure.
Most everyone will never notice this change, as lockdep is not enabled in real systems so no memory or logic changes are happening for them.
Cc: "Rafael J. Wysocki" <[email protected]> Acked-by: Rafael J. Wysocki <[email protected]> Signed-off-by: Greg Kroah-Hartman <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Greg Kroah-Hartman <[email protected]>
show more ...
|
|
Revision tags: v6.2-rc6, v6.2-rc5, v6.2-rc4 |
|
| #
2a81ada3 |
| 11-Jan-2023 |
Greg Kroah-Hartman <[email protected]> |
driver core: make struct bus_type.uevent() take a const *
The uevent() callback in struct bus_type should not be modifying the device that is passed into it, so mark it as a const * and propagate th
driver core: make struct bus_type.uevent() take a const *
The uevent() callback in struct bus_type should not be modifying the device that is passed into it, so mark it as a const * and propagate the function signature changes out into all relevant subsystems that use this callback.
Acked-by: Rafael J. Wysocki <[email protected]> Acked-by: Hans de Goede <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Greg Kroah-Hartman <[email protected]>
show more ...
|
| #
504450d0 |
| 11-Jan-2023 |
Greg Kroah-Hartman <[email protected]> |
driver core: bus.h: document bus notifiers better
The bus notifier values are not documented all that well, so clean this up and make a real enumerated type for them and document them much better.
driver core: bus.h: document bus notifiers better
The bus notifier values are not documented all that well, so clean this up and make a real enumerated type for them and document them much better. When doing this, remove the hex values and just rely on the enumerated type instead as that is all that is needed.
Reviewed-by: Randy Dunlap <[email protected]> Reviewed-by: Rafael J. Wysocki <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Greg Kroah-Hartman <[email protected]>
show more ...
|
| #
b0a8a59a |
| 09-Jan-2023 |
Greg Kroah-Hartman <[email protected]> |
driver core: move struct subsys_dev_iter to a local file
struct subsys_dev_iter is not used by any code outside of drivers/base/bus.c so move it into that file and out of the global bus.h file.
Rev
driver core: move struct subsys_dev_iter to a local file
struct subsys_dev_iter is not used by any code outside of drivers/base/bus.c so move it into that file and out of the global bus.h file.
Reviewed-by: Rafael J. Wysocki <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Greg Kroah-Hartman <[email protected]>
show more ...
|
| #
af6d0743 |
| 09-Jan-2023 |
Greg Kroah-Hartman <[email protected]> |
driver core: make subsys_dev_iter_exit() static
The function subsys_dev_iter_exit() is not used outside of drivers/base/bus.c so make it static to that file and remove the global export.
Reviewed-b
driver core: make subsys_dev_iter_exit() static
The function subsys_dev_iter_exit() is not used outside of drivers/base/bus.c so make it static to that file and remove the global export.
Reviewed-by: Rafael J. Wysocki <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Greg Kroah-Hartman <[email protected]>
show more ...
|