2002-06-25 13:53:03

by Adrian Bunk

[permalink] [raw]
Subject: [patch] fix .text.exit error in ieee1394/ohci1394.c


The following error occured at the final linking of 2.4.19-rc1:

<-- snip -->

...
drivers/ieee1394/ieee1394drv.o: In function `ohci1394_pci_probe':
drivers/ieee1394/ieee1394drv.o(.text.init+0xdb7): undefined reference
to `local symbols in discarded section .text.exit'
drivers/ieee1394/ieee1394drv.o(.text.init+0x109a): undefined reference
to `local symbols in discarded section .text.exit'...

<-- snip -->


The problem is that ohci1394_pci_remove is __devexit but via the FAIL
macro it gets called from ohci1394_pci_probe that isn't __devexit (it's
__devinit). If you compile this driver statically into a kernel without
CONFIG_HOTPLUG the error above occurs.

I suggest to simply remove the __devexit from ohci1394_pci_remove:


--- drivers/ieee1394/ohci1394.c.old Tue Jun 25 13:03:14 2002
+++ drivers/ieee1394/ohci1394.c Tue Jun 25 15:42:19 2002
@@ -171,7 +171,7 @@
static void dma_trm_tasklet(unsigned long data);
static void dma_trm_reset(struct dma_trm_ctx *d);

-static void __devexit ohci1394_pci_remove(struct pci_dev *pdev);
+static void ohci1394_pci_remove(struct pci_dev *pdev);

static inline void ohci1394_run_irq_hooks(struct ti_ohci *ohci,
quadlet_t isoRecvEvent,
@@ -2209,7 +2209,7 @@
#undef FAIL
}

-static void __devexit ohci1394_pci_remove(struct pci_dev *pdev)
+static void ohci1394_pci_remove(struct pci_dev *pdev)
{
struct ti_ohci *ohci;
quadlet_t buf;
@@ -2314,7 +2314,7 @@
name: OHCI1394_DRIVER_NAME,
id_table: ohci1394_pci_tbl,
probe: ohci1394_pci_probe,
- remove: __devexit_p(ohci1394_pci_remove),
+ remove: ohci1394_pci_remove,
};




cu
Adrian

--

You only think this is a free country. Like the US the UK spends a lot of
time explaining its a free country because its a police state.
Alan Cox


2002-06-26 13:57:31

by Ben Collins

[permalink] [raw]
Subject: Re: [patch] fix .text.exit error in ieee1394/ohci1394.c

On Tue, Jun 25, 2002 at 03:52:58PM +0200, Adrian Bunk wrote:
>
> The following error occured at the final linking of 2.4.19-rc1:

I thought Marcelo was already supposed to have applied this? We already
have it in our repository, and I ok'd the patch you (or someone) sent
him the last time. I don't want to resync our current repo with 2.4 this
late prior to it becoming final, so please apply this simple patch.

--
Debian - http://www.debian.org/
Linux 1394 - http://linux1394.sourceforge.net/
Subversion - http://subversion.tigris.org/
Deqo - http://www.deqo.com/