Message ID | 201303282109.47130.arnd@arndb.de (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Thursday 28 March 2013, Arnd Bergmann wrote: > Patch 4d053fdac3 "usb: ehci: unlink_empty_async_suspended() only used > with CONFIG_PM" tried to hide the unlink_empty_async_suspended function > inside of an #ifdef to work around an unused function warning. Hi Greg, Apparently the warning is now also in 3.8.5, so you might want to backport this fix as well after you send it upstream. Arnd
On 29/03/13 10:16, Arnd Bergmann wrote: > On Thursday 28 March 2013, Arnd Bergmann wrote: >> Patch 4d053fdac3 "usb: ehci: unlink_empty_async_suspended() only used >> with CONFIG_PM" tried to hide the unlink_empty_async_suspended function >> inside of an #ifdef to work around an unused function warning. > Hi Greg, > > Apparently the warning is now also in 3.8.5, so you might want to backport > this fix as well after you send it upstream. > > Arnd Grr, my bad - I originally wrote the patch with the forward decl #ifdef'd as well, but Alan pointed out that it didn't need to be. I thought I recompiled it after the change, but obviously not. Thanks Arnd, Regards Tony P
On Thu, 28 Mar 2013, Arnd Bergmann wrote: > Patch 4d053fdac3 "usb: ehci: unlink_empty_async_suspended() only used > with CONFIG_PM" tried to hide the unlink_empty_async_suspended function > inside of an #ifdef to work around an unused function warning. > > Unfortunately that had the effect of introducing a new warning: > > drivers/usb/host/ehci-q.c:1297:13: warning: 'unlink_empty_async_suspended' > declared 'static' but never defined [-Wunused-function] > > While we could add another #ifdef around the function declaration to avoid > this, a nicer solution is to mark it as __maybe_unused, which will let > gcc silently drop the function definition when it is not needed. IMO the compiler is being stupid. -Wunused-function should warn about functions that are defined but not called, not about functions that are declared but not defined. Grumble... Anyway yes, this is a good fix. Acked-by: Alan Stern <stern@rowland.harvard.edu>
On Fri, 29 Mar 2013, Tony Prisk wrote: > On 29/03/13 10:16, Arnd Bergmann wrote: > > On Thursday 28 March 2013, Arnd Bergmann wrote: > >> Patch 4d053fdac3 "usb: ehci: unlink_empty_async_suspended() only used > >> with CONFIG_PM" tried to hide the unlink_empty_async_suspended function > >> inside of an #ifdef to work around an unused function warning. > > Hi Greg, > > > > Apparently the warning is now also in 3.8.5, so you might want to backport > > this fix as well after you send it upstream. > > > > Arnd > Grr, my bad - I originally wrote the patch with the forward decl > #ifdef'd as well, but Alan pointed out that it didn't need to be. I > thought I recompiled it after the change, but obviously not. It's my fault too. I didn't realize the compiler would issue a warning about a static declaration with no definition. Alan Stern
diff --git a/drivers/usb/host/ehci-q.c b/drivers/usb/host/ehci-q.c index 7562d76..d34b399 100644 --- a/drivers/usb/host/ehci-q.c +++ b/drivers/usb/host/ehci-q.c @@ -1293,9 +1293,8 @@ static void unlink_empty_async(struct ehci_hcd *ehci) } } -#ifdef CONFIG_PM /* The root hub is suspended; unlink all the async QHs */ -static void unlink_empty_async_suspended(struct ehci_hcd *ehci) +static void __maybe_unused unlink_empty_async_suspended(struct ehci_hcd *ehci) { struct ehci_qh *qh; @@ -1306,7 +1305,6 @@ static void unlink_empty_async_suspended(struct ehci_hcd *ehci) } start_iaa_cycle(ehci); } -#endif /* makes sure the async qh will become idle */ /* caller must own ehci->lock */
Patch 4d053fdac3 "usb: ehci: unlink_empty_async_suspended() only used with CONFIG_PM" tried to hide the unlink_empty_async_suspended function inside of an #ifdef to work around an unused function warning. Unfortunately that had the effect of introducing a new warning: drivers/usb/host/ehci-q.c:1297:13: warning: 'unlink_empty_async_suspended' declared 'static' but never defined [-Wunused-function] While we could add another #ifdef around the function declaration to avoid this, a nicer solution is to mark it as __maybe_unused, which will let gcc silently drop the function definition when it is not needed. Signed-off-by: Arnd Bergmann <arnd@arndb.de> ---