Re: 2.6.22-rc2 built on ppc
From: Stefan Richter <stefanr@s5r6.in-berlin.de>
Date: 2007-05-20 16:46:53
(Adding linuxppc-dev) Elimar Riesebieter wrote:
Hi, FYI, building the kernel modules with gcc (GCC) 4.1.3 20070514 (prerelease) (Debian 4.1.2-7) on my powerbook (PPC) gives: ... drivers/firewire/fw-ohci.c: In function 'ar_context_tasklet': drivers/firewire/fw-ohci.c:357: warning: unused variable 'ohci' drivers/firewire/fw-ohci.c: In function 'context_release': drivers/firewire/fw-ohci.c:502: warning: unused variable 'card' drivers/firewire/fw-sbp2.c: In function 'complete_command_orb': drivers/firewire/fw-sbp2.c:838: warning: unused variable 'device' drivers/ieee1394/sbp2.c: In function 'sbp2util_remove_command_orb_pool': drivers/ieee1394/sbp2.c:497: warning: unused variable 'host' drivers/ieee1394/sbp2.c: In function 'sbp2util_mark_command_completed': drivers/ieee1394/sbp2.c:588: warning: unused variable 'host' ...
The allegedly unused variables are used in calls to dma_unmap_single(),
but only for these calls. On PPC32, you get
/* We do nothing. */
#define dma_unmap_single(dev, addr, size, dir) ((void)0)
in dma-mapping.h. This is also the case for Linux 2.6.20.
But in Linux 2.6.19 and older, it was
/* We do nothing. */
#define dma_unmap_single(dev, addr, size, dir) do { } while (0)
(Furthermore, the sbp2 driver used the pci_dma_ API in Linux 2.6.19 and
older, and fw-ohci wasn't in mainline before 2.6.22-rc1.)
I don't know what's to blame for the warnings --- new gcc versions or
the change from do { } while (0) to ((void)0)? Either way, the compiler
should comprehend that the arguments stuffed into the dma_unmap_single
macro are _not_ unused by accident; it should stay quiet and optimize
the unused variables away if run with -Osomething.
Does somebody know more?
I'd like to avoid cluttering the drivers with __attribute((used)).
If more info is needed, please contact me via PM, as I am not subscribed.
We usually keep posters Cc'ed in list replies, at least on development lists where bug reports are welcomed. -- Stefan Richter -=====-=-=== -=-= =-=-- http://arcgraph.de/sr/