mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* [PATCH] Drop __must_check from bus_for_each_drv()
@ 2010-06-16  9:44 Jean Delvare
  0 siblings, 0 replies; only message in thread
From: Jean Delvare @ 2010-06-16  9:44 UTC (permalink / raw)
  To: Andrew Morton, Greg Kroah-Hartman; +Cc: LKML

There is little rationale for marking bus_for_each_drv() __must_check.
It is more of an iteration helper than a real function. You don't know
in advance which callback it will be used on, so you have no clue how
important it can be to check the returned value. In practice, this
helper function can be used for best-effort tasks.

As a matter of fact, bus_for_each_dev() is not marked __must_check.
So remove it from bus_for_each_drv() as well. This is the same that
was done back in October 2006 by Russell King for
device_for_each_child(), for exactly the same reasons.

Signed-off-by: Jean Delvare <khali@linux-fr.org>
Cc: Andrew Morton <akpm@osdl.org>
Cc: Greg Kroah-Hartman <gregkh@suse.de>
---
Background: I am calling bus_for_each_drv() in i2c-core, putting the
result in a dummy variable because I know it will always be 0. Now,
gcc 4.6 complains about variables that are set but never used, so I
was proposed ugly workarounds to silent this warning. I think it is
much saner to just acknowledge that this specific __must_check was
not desirable, and clean up the code.

 include/linux/device.h |    5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

--- linux-2.6.35-rc3.orig/include/linux/device.h	2010-05-31 09:59:56.000000000 +0200
+++ linux-2.6.35-rc3/include/linux/device.h	2010-06-16 09:37:55.000000000 +0200
@@ -84,9 +84,8 @@ struct device *bus_find_device_by_name(s
 				       struct device *start,
 				       const char *name);
 
-int __must_check bus_for_each_drv(struct bus_type *bus,
-				  struct device_driver *start, void *data,
-				  int (*fn)(struct device_driver *, void *));
+int bus_for_each_drv(struct bus_type *bus, struct device_driver *start,
+		     void *data, int (*fn)(struct device_driver *, void *));
 
 void bus_sort_breadthfirst(struct bus_type *bus,
 			   int (*compare)(const struct device *a,


-- 
Jean Delvare

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2010-06-16  9:44 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2010-06-16  9:44 [PATCH] Drop __must_check from bus_for_each_drv() Jean Delvare

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

Powered by JetHome