Messages in this thread | | | From | Keith Owens <> | Subject | Re: [PATCH] link errors with internal calls to devexit functions | Date | Sat, 22 Dec 2001 16:05:43 +1100 |
| |
On Sat, 22 Dec 2001 13:57:25 +1100, Jason Thomas <jason@topic.com.au> wrote: >please CC me I'm not on the list. > >This patch against 2.4.17 fixes internal calls to devexit functions (which >is bypasses the devexit_p wrapper) in drivers/media/video/bttv-driver.c and >drivers/usb/usb-uhci.c, they are the only two I found. > >diff -ur linux-2.4.17.orig/drivers/media/video/bttv-driver.c linux-2.4.17/drivers/media/video/bttv-driver.c >--- linux-2.4.17.orig/drivers/media/video/bttv-driver.c Sat Dec 22 13:39:39 2001 >+++ linux-2.4.17/drivers/media/video/bttv-driver.c Sat Dec 22 13:46:02 2001 >@@ -2992,7 +2992,9 @@ > pci_set_drvdata(dev,btv); > > if(init_bt848(btv) < 0) { >+#if defined(MODULE) || defined(CONFIG_HOTPLUG) > bttv_remove(dev); >+#endif > return -EIO; > } > bttv_num++; >diff -ur linux-2.4.17.orig/drivers/usb/usb-uhci.c linux-2.4.17/drivers/usb/usb-uhci.c >--- linux-2.4.17.orig/drivers/usb/usb-uhci.c Sat Dec 22 13:39:39 2001 >+++ linux-2.4.17/drivers/usb/usb-uhci.c Sat Dec 22 13:46:38 2001 >@@ -3001,7 +3001,9 @@ > s->irq = irq; > > if(uhci_start_usb (s) < 0) { >+#if defined(MODULE) || defined(CONFIG_HOTPLUG) > uhci_pci_remove(dev); >+#endif > return -1; > }
I don't like #if defined(MODULE) || defined(CONFIG_HOTPLUG) in open code. If the rules for what gets discarded change (again) then those ifdefs will be out of sync. That is why __devexit_p() is a wrapper, it is defined once and only has to be changed once when the rules change.
Define a __devexit_call wrapper in include/linux/init.h at the same place that __devexit_p is defined and use the wrapper around the calls. Untested.
#if defined(MODULE) || defined(CONFIG_HOTPLUG) #define __devexit_p(x) x #define __devexit_call(x) x #else #define __devexit_call(x) do { } while (0) #define __devexit_p(x) NULL #endif
__devexit_call(bttv_remove(dev)); __devexit_call(uhci_pci_remove(dev));
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |