On Sat, Jan 26, 2008 at 04:55:58AM -0500, Jeff Garzik wrote:I checked up on the synclink.c warning. We have the following code: static void synclink_remove_one (struct pci_dev *dev); ... static struct pci_driver synclink_pci_driver = { .remove = __devexit_p(synclink_remove_one), }; ... static void __devexit synclink_remove_one (struct pci_dev *dev) { } And I double checked the preprocessed source to check that we applied the __attribute__((__used__)) to the function. Investigating a bit more I realized that gcc looses the __used__ attribution due to the prototype. So there are two correct fixes: a) move the function up so we do not need the forward declaration b) add a __devexit to the forward decalration too. I strongly prefer the first version and this is the correct fix for these cases. Do we have a gcc bug here - I did not see a definitive answer in gcc docs? Sam --
| Stephane Jourdois | Re: 2.6.21-rc4-mm1 [PATCH] init/missing_syscalls.h fix |
| David Brown | Re: Linux 2.6.21-rc2 |
| Andi Kleen | [PATCH] [1/12] x86: Work around mmio config space quirk on AMD Fam10h |
| david | Re: Dual-Licensing Linux Kernel with GPL V2 and GPL V3 |
| David Miller | Re: [GIT]: Networking |
| David Woodhouse | Re: [bug?] tg3: Failed to load firmware "tigon/tg3_tso.bin" |
| Gerrit Renker | [PATCH 15/37] dccp: Set per-connection CCIDs via socket options |
| Jarek Poplawski | [PATCH] pkt_sched: Destroy gen estimators under rtnl_lock(). |
git: | |
