From mboxrd@z Thu Jan 1 00:00:00 1970 From: John Hesterberg Date: Wed, 20 Feb 2002 17:14:24 +0000 Subject: Re: [Linux-ia64] CONFIG_USB_UHCI=y not possible? Message-Id: List-Id: References: In-Reply-To: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: linux-ia64@vger.kernel.org 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; }