diff options
author | Grant Grundler <grundler@parisc-linux.org> | 2007-02-11 02:04:04 -0500 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2007-02-16 18:30:10 -0500 |
commit | 26ba05e4c66ad3fafe08412ffcf8c328cc4640b0 (patch) | |
tree | f9abd84f3a90232ac2df9489e6f0e6514ce07123 /Documentation/pci.txt | |
parent | f95d882d81ee731be2a4a3b34f86810e29b68836 (diff) |
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/pci.txt')
-rw-r--r-- | Documentation/pci.txt | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/Documentation/pci.txt b/Documentation/pci.txt index fd5028eca13e..cdf2f3c0ab14 100644 --- a/Documentation/pci.txt +++ b/Documentation/pci.txt | |||
@@ -205,8 +205,8 @@ Tips on when/where to use the above attributes: | |||
205 | exclusively called by the probe() routine, can be marked __devinit. | 205 | exclusively called by the probe() routine, can be marked __devinit. |
206 | Ditto for remove() and __devexit. | 206 | Ditto for remove() and __devexit. |
207 | 207 | ||
208 | o If mydriver_probe() is marked with __devinit(), then all address | 208 | o If mydriver_remove() is marked with __devexit(), then all address |
209 | references to mydriver_probe must use __devexit_p(mydriver_probe) | 209 | references to mydriver_remove must use __devexit_p(mydriver_remove) |
210 | (in the struct pci_driver declaration for example). | 210 | (in the struct pci_driver declaration for example). |
211 | __devexit_p() will generate the function name _or_ NULL if the | 211 | __devexit_p() will generate the function name _or_ NULL if the |
212 | function will be discarded. For an example, see drivers/net/tg3.c. | 212 | function will be discarded. For an example, see drivers/net/tg3.c. |