Re: [Linux-ia64] CONFIG_USB_UHCI=y not possible?

From: John Hesterberg <jh_at_sgi.com>
Date: 2002-02-21 04:14:24
On Wed, Feb 20, 2002 at 09:50:38AM -0600, John Hesterberg wrote:
> When I try to change CONFIG_USB_UHCI from a module to static (=m to =y),
> I get:
> 
>     drivers/usb/usbdrv.o: In function `alloc_uhci':
>     drivers/usb/usbdrv.o(.text.init+0x7e2): relocation truncated to fit: PCREL21B uhci_pci_remove

OK, I think this is because alloc_uhci() calls uhci_pci_remove(),
which is defined as __devexit.  This gets dropped when it's not a module.

Below is a quick patch if anyone is interested.
I don't know if this is right or not, but it links.

I'll take this up with the USB maintainer(s).
Seems like if they allow CONFIG_USB_UHCI=y,
then this should be fixed.

John

diff -Naur 2.4.17-sn2/drivers/usb/usb-uhci.c linux/drivers/usb/usb-uhci.c
--- 2.4.17-sn2/drivers/usb/usb-uhci.c	Wed Feb 20 17:11:49 2002
+++ linux/drivers/usb/usb-uhci.c	Wed Feb 20 17:03:53 2002
@@ -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;
 	}
 
Received on Wed Feb 20 09:14:28 2002

This archive was generated by hypermail 2.1.8 : 2005-08-02 09:20:07 EST