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 --
| H. Peter Anvin | Re: [RFC 00/15] x86_64: Optimize percpu accesses |
| Greg Kroah-Hartman | [PATCH 008/196] Chinese: add translation of volatile-considered-harmful.txt |
| Greg KH | Re: Dual-Licensing Linux Kernel with GPL V2 and GPL V3 |
| Alex Chiang | [PATCH 1/4] Remove path attribute from sgi_hotplug |
git: | |
| Jarek Poplawski | [PATCH] pkt_sched: Destroy gen estimators under rtnl_lock(). |
| Gerrit Renker | [PATCH 27/37] dccp: Integration of dynamic feature activation - part 2 (server side) |
| David Miller | Re: [GIT]: Networking |
| Eric Dumazet | Re: [PATCH 3/3] Convert the UDP hash lock to RCU |
