|
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 |
|
| #
8fd74a31 |
| 08-Feb-2025 |
Zijun Hu <[email protected]> |
driver core: class: Remove needless return in void API class_remove_file()
Remove return since both class_remove_file() and class_remove_file_ns() are void functions.
Signed-off-by: Zijun Hu <quic_
driver core: class: Remove needless return in void API class_remove_file()
Remove return since both class_remove_file() and class_remove_file_ns() are void functions.
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.14-rc1, v6.13, v6.13-rc7, v6.13-rc6, v6.13-rc5, v6.13-rc4 |
|
| #
827ed8b1 |
| 19-Dec-2024 |
Heiner Kallweit <[email protected]> |
drivers: core: remove device_link argument from class_compat_[create|remove]_link
After 7e722083fcc3 ("i2c: Remove I2C_COMPAT config symbol and related code") there's no caller left passing a non-nu
drivers: core: remove device_link argument from class_compat_[create|remove]_link
After 7e722083fcc3 ("i2c: Remove I2C_COMPAT config symbol and related code") there's no caller left passing a non-null device_link argument. So remove this argument to simplify the code.
Signed-off-by: Heiner Kallweit <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Greg Kroah-Hartman <[email protected]>
show more ...
|
| #
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-rc3, v6.13-rc2, 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, 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 |
|
| #
520adf3b |
| 23-Dec-2023 |
Randy Dunlap <[email protected]> |
driver core: class: fix Excess kernel-doc description warning
Remove the @p: lines to prevent the kernel-doc warning:
include/linux/device/class.h:72: warning: Excess struct member 'p' description
driver core: class: fix Excess kernel-doc description warning
Remove the @p: lines to prevent the kernel-doc warning:
include/linux/device/class.h:72: warning: Excess struct member 'p' description in 'class'
Signed-off-by: Randy Dunlap <[email protected]> Cc: Greg Kroah-Hartman <[email protected]> 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.7-rc6, v6.7-rc5, v6.7-rc4, v6.7-rc3, 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 |
|
| #
ddaf098e |
| 16-May-2023 |
Greg Kroah-Hartman <[email protected]> |
driver core: class: properly reference count class_dev_iter()
When class_dev_iter is initialized, the reference count for the subsys private structure is incremented, but never decremented, causing
driver core: class: properly reference count class_dev_iter()
When class_dev_iter is initialized, the reference count for the subsys private structure is incremented, but never decremented, causing a memory leak over time. To resolve this, save off a pointer to the internal structure into the class_dev_iter structure and then when the iterator is finished, drop the reference count.
Reported-and-tested-by: [email protected] Fixes: 7b884b7f24b4 ("driver core: class.c: convert to only use class_to_subsys") Reported-by: Mirsad Goran Todorovac <[email protected]> Cc: Alan Stern <[email protected]> Acked-by: Rafael J. Wysocki <[email protected]> Tested-by: Mirsad Goran Todorovac <[email protected]> Link: https://lore.kernel.org/r/2023051610-stove-condense-9a77@gregkh Signed-off-by: Greg Kroah-Hartman <[email protected]>
show more ...
|
|
Revision tags: v6.4-rc2, v6.4-rc1, v6.3, v6.3-rc7, v6.3-rc6, v6.3-rc5 |
|
| #
2243acd5 |
| 02-Apr-2023 |
Greg Kroah-Hartman <[email protected]> |
driver core: class: remove struct class_interface * from callbacks
The add_dev and remove_dev callbacks in struct class_interface currently pass in a pointer back to the class_interface structure th
driver core: class: remove struct class_interface * from callbacks
The add_dev and remove_dev callbacks in struct class_interface currently pass in a pointer back to the class_interface structure that is calling them, but none of the callback implementations actually use this pointer as it is pointless (the structure is known, the driver passed it in in the first place if it is really needed again.)
So clean this up and just remove the pointer from the callbacks and fix up all callback functions.
Cc: Jean Delvare <[email protected]> Cc: Guenter Roeck <[email protected]> Cc: "David S. Miller" <[email protected]> Cc: Eric Dumazet <[email protected]> Cc: Jakub Kicinski <[email protected]> Cc: Paolo Abeni <[email protected]> Cc: Kurt Schwemmer <[email protected]> Cc: Jon Mason <[email protected]> Cc: Dave Jiang <[email protected]> Cc: Allen Hubbe <[email protected]> Cc: Dominik Brodowski <[email protected]> Cc: Matt Porter <[email protected]> Cc: Alexandre Bounine <[email protected]> Cc: "James E.J. Bottomley" <[email protected]> Cc: "Martin K. Petersen" <[email protected]> Cc: Doug Gilbert <[email protected]> Cc: John Stultz <[email protected]> Cc: Thomas Gleixner <[email protected]> Cc: Stephen Boyd <[email protected]> Cc: Hans de Goede <[email protected]> Cc: Andrew Morton <[email protected]> Cc: Wang Weiyang <[email protected]> Cc: Yang Yingliang <[email protected]> Cc: Jakob Koschel <[email protected]> Cc: Cai Xinchen <[email protected]> Acked-by: Rafael J. Wysocki <[email protected]> Acked-by: Logan Gunthorpe <[email protected]> Link: https://lore.kernel.org/r/2023040250-pushover-platter-509c@gregkh Signed-off-by: Greg Kroah-Hartman <[email protected]>
show more ...
|
| #
6b0d49be |
| 02-Apr-2023 |
Greg Kroah-Hartman <[email protected]> |
driver core: class: mark the struct class in struct class_interface constant
The struct class pointer in struct class_interface is never modified, so mark it as const so that no one accidentally tri
driver core: class: mark the struct class in struct class_interface constant
The struct class pointer in struct class_interface is never modified, so mark it as const so that no one accidentally tries to modify it in the future.
Acked-by: Rafael J. Wysocki <[email protected]> Link: https://lore.kernel.org/r/2023040249-handball-gruffly-5da7@gregkh Signed-off-by: Greg Kroah-Hartman <[email protected]>
show more ...
|
| #
43a7206b |
| 02-Apr-2023 |
Greg Kroah-Hartman <[email protected]> |
driver core: class: make class_register() take a const *
Now that the class code is cleaned up to not modify the class pointer registered with it, change class_register() to take a const * to allow
driver core: class: make class_register() take a const *
Now that the class code is cleaned up to not modify the class pointer registered with it, change class_register() to take a const * to allow the structure to be placed into read-only memory.
Acked-by: Rafael J. Wysocki <[email protected]> Link: https://lore.kernel.org/r/2023040248-customary-release-4aec@gregkh Signed-off-by: Greg Kroah-Hartman <[email protected]>
show more ...
|
| #
979207ca |
| 02-Apr-2023 |
Greg Kroah-Hartman <[email protected]> |
driver core: class: mark class_release() as taking a const *
The struct class callback, class_release(), is only called in 2 places, the pcmcia cardservices code, and in the class driver core code.
driver core: class: mark class_release() as taking a const *
The struct class callback, class_release(), is only called in 2 places, the pcmcia cardservices code, and in the class driver core code. Both places it is safe to mark the structure as a const *, to allow us to in the future mark all struct class usages as constant and move into read-only memory.
Acked-by: Rafael J. Wysocki <[email protected]> Link: https://lore.kernel.org/r/2023040248-outrage-obsolete-5a9a@gregkh Signed-off-by: Greg Kroah-Hartman <[email protected]>
show more ...
|
| #
575ab414 |
| 31-Mar-2023 |
Greg Kroah-Hartman <[email protected]> |
driver core: make sysfs_dev_block_kobj static
Nothing outside of drivers/base/core.c uses sysfs_dev_block_kobj, so make it static and document what it is used for so we remember it the next time we
driver core: make sysfs_dev_block_kobj static
Nothing outside of drivers/base/core.c uses sysfs_dev_block_kobj, so make it static and document what it is used for so we remember it the next time we touch it 15 years from now.
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 ...
|
| #
e78195d5 |
| 31-Mar-2023 |
Greg Kroah-Hartman <[email protected]> |
driver core: class: remove dev_kobj from struct class
The dev_kobj field in struct class is now only written to, but never read from, so it can be removed as it is useless.
Acked-by: Rafael J. Wyso
driver core: class: remove dev_kobj from struct class
The dev_kobj field in struct class is now only written to, but never read from, so it can be removed as it is useless.
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 ...
|
| #
2df418cf |
| 31-Mar-2023 |
Greg Kroah-Hartman <[email protected]> |
driver core: class: remove subsystem private pointer from struct class
Now that the last users of the subsystem private pointer in struct class are gone, the pointer can be removed, as no one is usi
driver core: class: remove subsystem private pointer from struct class
Now that the last users of the subsystem private pointer in struct class are gone, the pointer can be removed, as no one is using it. One step closer to allowing struct class to be const and moved into read-only memory.
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 ...
|
| #
6f14c022 |
| 31-Mar-2023 |
Greg Kroah-Hartman <[email protected]> |
driver core: create class_is_registered()
Some classes (i.e. gpio), want to know if they have been registered or not, and poke around in the class's internal structures to try to figure this out. B
driver core: create class_is_registered()
Some classes (i.e. gpio), want to know if they have been registered or not, and poke around in the class's internal structures to try to figure this out. Because this is not really a good idea, provide a function for classes to call to try to figure this out.
Note, this is racy as the state of the class could change at any moment in time after the call is made, but as usually a class only wants to know if it has been registered yet or not, it should be fairly safe to use, and is just as safe as the previous "poke at the class internals" check was.
Move the gpiolib code to use this function as proof that it works properly.
Cc: Bartosz Golaszewski <[email protected]> Cc: Sebastian Reichel <[email protected]> Cc: Benjamin Tissoires <[email protected]> Cc: [email protected] Reviewed-by: Linus Walleij <[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 ...
|
|
Revision tags: v6.3-rc4 |
|
| #
75a2d422 |
| 25-Mar-2023 |
Greg Kroah-Hartman <[email protected]> |
driver core: class: mark the struct class for sysfs callbacks as constant
struct class should never be modified in a sysfs callback as there is nothing in the structure to modify, and frankly, the s
driver core: class: mark the struct class for sysfs callbacks as constant
struct class 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 class to be moved to read-only memory.
While we are touching all class sysfs callbacks also mark the attribute as constant as it can not be modified. The bonding code still uses this structure so it can not be removed from the function callbacks.
Cc: "David S. Miller" <[email protected]> Cc: "Rafael J. Wysocki" <[email protected]> Cc: Bartosz Golaszewski <[email protected]> Cc: Eric Dumazet <[email protected]> Cc: Jakub Kicinski <[email protected]> Cc: Jens Axboe <[email protected]> Cc: Johannes Berg <[email protected]> Cc: Linus Walleij <[email protected]> Cc: Minchan Kim <[email protected]> Cc: Miquel Raynal <[email protected]> Cc: Namjae Jeon <[email protected]> Cc: Paolo Abeni <[email protected]> Cc: Russ Weight <[email protected]> Cc: Sergey Senozhatsky <[email protected]> Cc: Steve French <[email protected]> Cc: Vignesh Raghavendra <[email protected]> Cc: [email protected] Cc: [email protected] Cc: [email protected] Cc: [email protected] Cc: [email protected] Cc: [email protected] Cc: [email protected] Reviewed-by: Luis Chamberlain <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Greg Kroah-Hartman <[email protected]>
show more ...
|
| #
517d4927 |
| 25-Mar-2023 |
Greg Kroah-Hartman <[email protected]> |
driver core: bus: constify class_unregister/destroy()
The class_unregister() and class_destroy() function should be taking a const * to struct class, not just a *, so fix that up.
Cc: "Rafael J. Wy
driver core: bus: constify class_unregister/destroy()
The class_unregister() and class_destroy() function should be taking a const * to struct class, 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 ...
|
| #
5c9a27df |
| 27-Mar-2023 |
Greg Kroah-Hartman <[email protected]> |
driver core: move sysfs_dev_char_kobj out of class.h
The structure sysfs_dev_char_kobj is local only to the driver core code, so move it out of the global class.h file and into the internal base.h f
driver core: move sysfs_dev_char_kobj out of class.h
The structure sysfs_dev_char_kobj is local only to the driver core code, so move it out of the global class.h file and into the internal base.h file as no one else should be touching this symbol.
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 ...
|
| #
43718dca |
| 24-Mar-2023 |
Greg Kroah-Hartman <[email protected]> |
driver core: class.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/class.h as
driver core: class.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/class.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 ...
|
| #
dcfbb67e |
| 24-Mar-2023 |
Greg Kroah-Hartman <[email protected]> |
driver core: class: use lock_class_key already present in struct subsys_private
In commit 37e98d9bedb5 ("driver core: bus: move lock_class_key into dynamic structure"), we moved the lock_class_key i
driver core: class: use lock_class_key already present in struct subsys_private
In commit 37e98d9bedb5 ("driver core: bus: move lock_class_key into dynamic structure"), we moved the lock_class_key into the internal structure shared by busses and classes, but only used it for buses.
Move the class code to use this structure as it is already present and being allocated, instead of the statically allocated on-the-stack variable that class_create() was using as part of a macro wrapper around the core function call.
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 ...
|
|
Revision tags: v6.3-rc3 |
|
| #
80842a92 |
| 13-Mar-2023 |
Greg Kroah-Hartman <[email protected]> |
driver core: class: make class_create/remove_file*() options const
The class_create_file*() and class_remove_file*() functions do not modify the struct class at all, so mark them as const * to enfor
driver core: class: make class_create/remove_file*() options const
The class_create_file*() and class_remove_file*() functions do not modify the struct class at all, so mark them as const * to enforce that.
Cc: "Rafael J. Wysocki" <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Greg Kroah-Hartman <[email protected]>
show more ...
|
| #
cf41015e |
| 13-Mar-2023 |
Greg Kroah-Hartman <[email protected]> |
driver core: class: make class_find_device*() options const
The class_find_device*() functions do not modify the struct class or the struct device passed into it, so mark them as const * to enforce
driver core: class: make class_find_device*() options const
The class_find_device*() functions do not modify the struct class or the struct device passed into it, so mark them as const * to enforce that.
Cc: "Rafael J. Wysocki" <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Greg Kroah-Hartman <[email protected]>
show more ...
|
| #
69df024e |
| 13-Mar-2023 |
Greg Kroah-Hartman <[email protected]> |
driver core: class: make class_for_each_device() options const
class_for_each_device() does not modify the struct class or the struct device passed into it, so mark them as const * to enforce that.
driver core: class: make class_for_each_device() options const
class_for_each_device() does not modify the struct class or the struct device passed into it, so mark them as const * to enforce that.
Cc: "Rafael J. Wysocki" <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Greg Kroah-Hartman <[email protected]>
show more ...
|
| #
a2fd6e42 |
| 13-Mar-2023 |
Greg Kroah-Hartman <[email protected]> |
driver core: class: make class_dev_iter_init() options const
class_dev_iter_init() does not modify the struct class or the struct device passed into it, so mark them as const * to enforce that.
Cc:
driver core: class: make class_dev_iter_init() options const
class_dev_iter_init() does not modify the struct class or the struct device passed into it, so mark them as const * to enforce that.
Cc: "Rafael J. Wysocki" <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Greg Kroah-Hartman <[email protected]>
show more ...
|
| #
1aaba11d |
| 13-Mar-2023 |
Greg Kroah-Hartman <[email protected]> |
driver core: class: remove module * from class_create()
The module pointer in class_create() never actually did anything, and it shouldn't have been requred to be set as a parameter even if it did s
driver core: class: remove module * from class_create()
The module pointer in class_create() never actually did anything, and it shouldn't have been requred to be set as a parameter even if it did something. So just remove it and fix up all callers of the function in the kernel tree at the same time.
Cc: "Rafael J. Wysocki" <[email protected]> Acked-by: Benjamin Tissoires <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Greg Kroah-Hartman <[email protected]>
show more ...
|
| #
6e30a664 |
| 13-Mar-2023 |
Greg Kroah-Hartman <[email protected]> |
driver core: class: remove struct module owner out of struct class
The module owner field for a struct class was never actually used, so remove it as it is not doing anything at all.
Cc: "Rafael J.
driver core: class: remove struct module owner out of struct class
The module owner field for a struct class was never actually used, so remove it as it is not doing anything at all.
Cc: "Rafael J. Wysocki" <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Greg Kroah-Hartman <[email protected]>
show more ...
|