Re: Can we drop __must_check from driver_for_each_device()?

From: Greg Kroah-Hartman
Date: Wed Aug 07 2013 - 01:51:05 EST


On Tue, Aug 06, 2013 at 10:31:25PM +0200, Paul Bolle wrote:
> On Fri, 2013-08-02 at 08:31 +0800, Greg Kroah-Hartman wrote:
> > On Wed, Jul 31, 2013 at 11:35:13PM +0200, Paul Bolle wrote:
> > > 2) Please note that if the callback always returns zero,
> > > driver_for_each_device() can still return -EINVAL, but only if it was
> > > provided a NULL "drv" (a struct device_driver). It sure seems odd to do
> > > so. Can that actually happen?
> >
> > Possibly.
>
> So driver_for_each_device() really should be NULL "drv" safe.

Probably not, now that I think about it some more. I don't see how that
could ever really happen, do you?

> But wouldn't it therefor be better to make sure the callback functions
> do not return -EINVAL themselves, so -EINVAL will always only indicate
> the NULL "drv" case?

I doubt it's a real need at all.

> > > 3) So to me it looks the __must_check attribute of
> > > driver_for_each_device() can be dropped. Do you agree?
> >
> > Nope, it should be making people think about the return value of the
> > function. If they use it or not might be a problem, but I would argue
> > that those call-sites must be fixed, as you point out above.
>
> I see. I guess I should try to submit patches that do just that.
>
> > Is this somehow causing a problem that removing the marking would solve
> > for you?
>
> The, rather trivial, issue I'd like to fix is this (long standing)
> warning:
> drivers/isdn/hardware/mISDN/hfcpci.c:2298:2: warning: \
> ignoring return value of âdriver_for_each_deviceâ, \
> declared with attribute warn_unused_result [-Wunused-result]
>
> I've submitted a patch to silence that warning about a year ago (see
> https://lkml.org/lkml/2012/9/21/138 ). Dave Miller was pretty clear that
> that approach wouldn't do. (I've added Dave to the CC, just because I
> mentioned him here.)

I agree with David, that patch is pointless.

> So, since this warning is still there, I'm looking for another way to
> get rid of it.

Fix it properly would be good to do, don't you think?

thanks,

greg k-h
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/