[PATCH] driver core: drop __must_check from driver_for_each_device

Heiner Kallweit posted 1 patch 1 year, 5 months ago
include/linux/device/driver.h | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
[PATCH] driver core: drop __must_check from driver_for_each_device
Posted by Heiner Kallweit 1 year, 5 months ago
There are several users of driver_for_each_device where the worker
function doesn't actually have a return value. One example is
__igb_notify_dca(). This results in dead code just to make __must_check
happy. So drop this annotation.

Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com>
---
 include/linux/device/driver.h | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/include/linux/device/driver.h b/include/linux/device/driver.h
index 1fc8b6878..aed40242f 100644
--- a/include/linux/device/driver.h
+++ b/include/linux/device/driver.h
@@ -153,8 +153,8 @@ void driver_remove_file(const struct device_driver *driver,
 
 int driver_set_override(struct device *dev, const char **override,
 			const char *s, size_t len);
-int __must_check driver_for_each_device(struct device_driver *drv, struct device *start,
-					void *data, int (*fn)(struct device *dev, void *));
+int driver_for_each_device(struct device_driver *drv, struct device *start,
+			   void *data, int (*fn)(struct device *dev, void *));
 struct device *driver_find_device(const struct device_driver *drv,
 				  struct device *start, const void *data,
 				  int (*match)(struct device *dev, const void *data));
-- 
2.46.0
Re: [PATCH] driver core: drop __must_check from driver_for_each_device
Posted by Greg Kroah-Hartman 1 year, 5 months ago
On Tue, Aug 20, 2024 at 11:00:29AM +0200, Heiner Kallweit wrote:
> There are several users of driver_for_each_device where the worker
> function doesn't actually have a return value. One example is
> __igb_notify_dca(). This results in dead code just to make __must_check
> happy. So drop this annotation.

No, that code looks correct, the only "odd" thing is that it's a
notifier callback and so it requires a different translation of an error
message.

Personally, attempting for a driver to iterate over all devices assigned
to it just to print out a kernel log message seems like the big abuse
here, why is any of that needed at all?  Ah, that's a side affect of the
dca api there.  Ok, still looks correct, I don't see a problem.

Ignoring error values is not a good idea, let's not make it simple to do
so.

thanks,

greg k-h
Re: [PATCH] driver core: drop __must_check from driver_for_each_device
Posted by Heiner Kallweit 1 year, 5 months ago
On 20.08.2024 15:31, Greg Kroah-Hartman wrote:
> On Tue, Aug 20, 2024 at 11:00:29AM +0200, Heiner Kallweit wrote:
>> There are several users of driver_for_each_device where the worker
>> function doesn't actually have a return value. One example is
>> __igb_notify_dca(). This results in dead code just to make __must_check
>> happy. So drop this annotation.
> 
> No, that code looks correct, the only "odd" thing is that it's a
> notifier callback and so it requires a different translation of an error
> message.
> 
> Personally, attempting for a driver to iterate over all devices assigned
> to it just to print out a kernel log message seems like the big abuse
> here, why is any of that needed at all?  Ah, that's a side affect of the
> dca api there.  Ok, still looks correct, I don't see a problem.
> 
__igb_notify_dca() always returns 0, for other worker functions of
driver_for_each_device it's the same. So we have several cases where
driver_for_each_device always returns 0. Then I think it doesn't make
sense to urge the caller to check the return value.

> Ignoring error values is not a good idea, let's not make it simple to do
> so.
> 
> thanks,
> 
> greg k-h

Heiner