Re: some remaining section mismatches

From: Sam Ravnborg
Date: Sat Apr 15 2006 - 19:36:36 EST


On Sat, Apr 15, 2006 at 02:52:31PM -0700, Randy.Dunlap wrote:
>
> 1. I don't understand this one. Can you look at it?
>
> WARNING: drivers/video/macmodes.o - Section mismatch: reference to .init.text:mac_find_mode from __ksymtab between '__ksymtab_mac_find_mode' (at offset 0x0) and '__ksymtab_mac_map_monitor_sense'

mac_find_mode is EXPORT_SYMBOL() and marked __init
This does not look correct to me. How do we know that it is valid to use
this exported symbol?
Fix: do not mark mac_find_mode() as __init?

> 2. This is requires either a whitelist addition or a change to the
> struct name in the driver:
>
> WARNING: drivers/scsi/megaraid/megaraid_mbox.o - Section mismatch: reference to .init.text:megaraid_probe_one from .data between 'megaraid_pci_driver_g' (at offset 0x2e0) and 'megaraid_mbox_version'

As indicated a rename would do the trick.
s/megaraid_pci_driver_g/megaraid_pci_driver/g
The _g syntax does not look common and for this case we will not soften
up the pattern to look for "driver" anywhere in the variable.

> 3. drivers/char/tpm_infineon.c:
>
> WARNING: drivers/char/tpm/tpm_infineon.o - Section mismatch: reference to .init.text:tpm_inf_pnp_probe from .data between 'tpm_inf_pnp' (at offset 0x18) and 'tpm_inf'
> WARNING: drivers/char/tpm/tpm_infineon.o - Section mismatch: reference to .exit.text:tpm_inf_pnp_remove from .data between 'tpm_inf_pnp' (at offset 0x20) and 'tpm_inf'
>
> I don't see a problem here, the driver just isn't using the whitelisted
> struct name(s).
Agree.
s/\<tpm_inf_pnp\>/tpm_inf_driver/g

> 4. drivers/rtc/: rtc-sysfs.c and rtc-test.c:
>
> WARNING: drivers/rtc/rtc-sysfs.o - Section mismatch: reference to .init.text:rtc_sysfs_add_device from .data between 'rtc_sysfs_interface' (at offset 0x18) and 'rtc_attr_group'
>
> This could be OK, hopefully someone can say yes/no.
Look sane. The naming *_interface looks generic - so maybe we should
whitelist it too?

> WARNING: drivers/rtc/rtc-test.o - Section mismatch: reference to .exit.text:test_remove from .data between 'test_drv' (at offset 0x8) and 'dev_attr_irq'
>
> Looks OK, struct name is just not in the whitelist.
> Changing the struct name removes the warning.
grepping shows up that naming *_drv is quite common.
So the better fix would probarly be to whitelist it too?

Sam

-
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/