> 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?

I have reported it now - follow:
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34985

        Sam
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to