Re: [v4l-dvb-maintainer] Re: kbuild: Section mismatch warnings

From: Johannes Stezenbach
Date: Sun Feb 19 2006 - 07:57:17 EST


On Sun, Feb 19, 2006, Sam Ravnborg wrote:
> On Fri, Feb 17, 2006 at 11:47:02PM +0100, Sam Ravnborg wrote:
> > Background:
> > I have introduced a build-time check for section mismatch and it showed
> > up a great number of warnings.
> > Below is the result of the run on a 2.6.16-rc1 tree (which my kbuild
> > tree is based upon) based on a 'make allmodconfig'
>
> Updated list of warnings below. This time on a rc4 tree and with
> referenced symbol included in warning (when possible).
> This is with my latest kbuild tree which will show up in next -mm.
...
> WARNING: drivers/media/dvb/ttpci/dvb-ttpci.o - Section mismatch: reference to .init.text:av7110_ir_init from .text between 'av7110_attach' (at offset 0xcaa6) and 'av7110_detach'
> WARNING: drivers/media/dvb/ttpci/dvb-ttpci.o - Section mismatch: reference to .exit.text:av7110_ir_exit from .text between 'av7110_detach' (at offset 0xcbc5) and 'av7110_irq'

These seem to be legitimate and point to the right place.
Patch attached.

Thanks,
Johannes

---
dvb: fix __init/__exit section references in av7110 driver

Signed-off-by: Johannes Stezenbach <js@xxxxxxxxxxx>

diff -r 24e38b947b8a linux/drivers/media/dvb/ttpci/av7110.c
--- a/linux/drivers/media/dvb/ttpci/av7110.c Sat Feb 18 10:41:07 2006 -0200
+++ b/linux/drivers/media/dvb/ttpci/av7110.c Sun Feb 19 13:54:37 2006 +0100
@@ -2476,7 +2476,8 @@ static int frontend_init(struct av7110 *
* The same behaviour of missing VSYNC can be duplicated on budget
* cards, by seting DD1_INIT trigger mode 7 in 3rd nibble.
*/
-static int av7110_attach(struct saa7146_dev* dev, struct saa7146_pci_extension_data *pci_ext)
+static int __devinit av7110_attach(struct saa7146_dev* dev,
+ struct saa7146_pci_extension_data *pci_ext)
{
const int length = TS_WIDTH * TS_HEIGHT;
struct pci_dev *pdev = dev->pci;
@@ -2826,7 +2827,7 @@ err_kfree_0:
goto out;
}

-static int av7110_detach(struct saa7146_dev* saa)
+static int __devexit av7110_detach(struct saa7146_dev* saa)
{
struct av7110 *av7110 = saa->ext_priv;
dprintk(4, "%p\n", av7110);
@@ -2973,7 +2974,7 @@ static struct saa7146_extension av7110_e
.module = THIS_MODULE,
.pci_tbl = &pci_tbl[0],
.attach = av7110_attach,
- .detach = av7110_detach,
+ .detach = __devexit_p(av7110_detach),

.irq_mask = MASK_19 | MASK_03 | MASK_10,
.irq_func = av7110_irq,
diff -r 24e38b947b8a linux/drivers/media/dvb/ttpci/av7110_ir.c
--- a/linux/drivers/media/dvb/ttpci/av7110_ir.c Sat Feb 18 10:41:07 2006 -0200
+++ b/linux/drivers/media/dvb/ttpci/av7110_ir.c Sun Feb 19 13:54:37 2006 +0100
@@ -208,7 +208,7 @@ static void ir_handler(struct av7110 *av
}


-int __init av7110_ir_init(struct av7110 *av7110)
+int __devexit av7110_ir_init(struct av7110 *av7110)
{
static struct proc_dir_entry *e;

@@ -248,7 +248,7 @@ int __init av7110_ir_init(struct av7110
}


-void __exit av7110_ir_exit(struct av7110 *av7110)
+void __devexit av7110_ir_exit(struct av7110 *av7110)
{
int i;

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/