aboutsummaryrefslogtreecommitdiffstats
path: root/Documentation
diff options
context:
space:
mode:
authorGrant Grundler <grundler@parisc-linux.org>2007-02-11 00:04:04 -0700
committerGreg Kroah-Hartman <gregkh@suse.de>2007-02-16 15:30:10 -0800
commit26ba05e4c66ad3fafe08412ffcf8c328cc4640b0 (patch)
treef9abd84f3a90232ac2df9489e6f0e6514ce07123 /Documentation
parentf95d882d81ee731be2a4a3b34f86810e29b68836 (diff)
downloadkernel_samsung_smdk4412-26ba05e4c66ad3fafe08412ffcf8c328cc4640b0.zip
kernel_samsung_smdk4412-26ba05e4c66ad3fafe08412ffcf8c328cc4640b0.tar.gz
kernel_samsung_smdk4412-26ba05e4c66ad3fafe08412ffcf8c328cc4640b0.tar.bz2
PCI: pci.txt fix __devexit() usage
Marin Mitov <mitov@issp.bas.bg> spotted a brainfart where I had failed to update copied text with *_remove and __devexit(). Marin made a good comment in his email to me: | mydriver_probe() is _always_ executed, while mydriver_remove() is not. | See: include/linux/init.h Which says: /* Functions marked as __devexit may be discarded at kernel link time, depending on config options. Newer versions of binutils detect references from retained sections to discarded sections and flag an error. Pointers to __devexit functions must use __devexit_p(function_name), the wrapper will insert either the function_name or NULL, depending on the config options. */ Signed-off-by: Grant Grundler <grundler@parisc-linux.org> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'Documentation')
-rw-r--r--Documentation/pci.txt4
1 files changed, 2 insertions, 2 deletions
diff --git a/Documentation/pci.txt b/Documentation/pci.txt
index fd5028e..cdf2f3c 100644
--- a/Documentation/pci.txt
+++ b/Documentation/pci.txt
@@ -205,8 +205,8 @@ Tips on when/where to use the above attributes:
exclusively called by the probe() routine, can be marked __devinit.
Ditto for remove() and __devexit.
- o If mydriver_probe() is marked with __devinit(), then all address
- references to mydriver_probe must use __devexit_p(mydriver_probe)
+ o If mydriver_remove() is marked with __devexit(), then all address
+ references to mydriver_remove must use __devexit_p(mydriver_remove)
(in the struct pci_driver declaration for example).
__devexit_p() will generate the function name _or_ NULL if the
function will be discarded. For an example, see drivers/net/tg3.c.