eisa/pci_eisa.c: fix section mismatch
Subsystems (3)
PATCH 1/4 eisa/pci_eisa.c: fix section mismatch
WARNING: vmlinux.o(.data+0x15d3ac): Section mismatch in reference from the variable pci_eisa_driver to the function .init.text:pci_eisa_init() The variable pci_eisa_driver references the function __init pci_eisa_init()
If the reference is valid then annotate the variable with __init* or __refdata (see linux/init.h) or name the variable:*_template, *_timer, *_sht, *_ops, *_probe, *_probe_one, *_console
--- drivers/eisa/pci_eisa.c | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-)
drivers/eisa/pci_eisa.c +2 -2
@@ -45,13 +45,13 @@ static int __init pci_eisa_init(struct pci_dev *pdev,return 0 ; } -static struct pci_device_id pci_eisa_pci_tbl[] = { +static struct pci_device_id __initdata pci_eisa_pci_tbl[] = { {PCI_ANY_ID ,PCI_ANY_ID ,PCI_ANY_ID ,PCI_ANY_ID ,PCI_CLASS_BRIDGE_EISA <<8 ,0xffff00 ,0 }, {0 , } }; -static struct pci_driver pci_eisa_driver = { +static struct pci_driver __initdata pci_eisa_driver = { .name ="pci_eisa" , .id_table = pci_eisa_pci_tbl, .probe = pci_eisa_init,
Signature · 1 line
1.7.6.153.g78432
PATCH 2/4 drivers/base/devtmpfs.c: correct annotation of `setup_done'
This fixes the following section mismatch issue:
WARNING: vmlinux.o(.text+0x1192bf): Section mismatch in reference from the function devtmpfsd() to the variable .init.data:setup_done The function devtmpfsd() references the variable __initdata setup_done.
This is often because devtmpfsd lacks a __initdata annotation or the annotation of setup_done is wrong.
WARNING: vmlinux.o(.text+0x119342): Section mismatch in reference from the function devtmpfsd() to the variable .init.data:setup_done The function devtmpfsd() references the variable __initdata setup_done.
This is often because devtmpfsd lacks a __initdata annotation or the annotation of setup_done is wrong.
--- drivers/base/devtmpfs.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-)
drivers/base/devtmpfs.c +1 -1
@@ -376,7 +376,7 @@ int devtmpfs_mount(const char *mntdir)return err; } -static __initdata DECLARE_COMPLETION (setup_done); +static DECLARE_COMPLETION (setup_done);static int handle (const char *name,mode_t mode,struct device *dev) {
Signature · 1 line
1.7.6.153.g78432
Re: [PATCH 2/4] drivers/base/devtmpfs.c: correct annotation of `setup_done'
Hi,
I saw that devtmpfs stuff went on through Al Viro's tree, maybe I should have Cc: him on this ?
Thanks,
- Arnaud
Quoted 33 lines · Arnaud Lacombe
This fixes the following section mismatch issue:
WARNING:
vmlinux.o(.text+0x1192bf): Section mismatch in reference from the functiondevtmpfsd()to the variable .init.data:setup_done The functiondevtmpfsd()references the variable__initdatasetup_done.
This is often because devtmpfsd lacks a__initdataannotation or the annotation ofsetup_doneis wrong.WARNING:
vmlinux.o(.text+0x119342): Section mismatch in reference from the functiondevtmpfsd()to the variable .init.data:setup_done The functiondevtmpfsd()references the variable__initdatasetup_done.
This is often because devtmpfsd lacks a__initdataannotation or the annotation ofsetup_doneis wrong.Cc Greg Kroah-Hartman <[email protected]>Signed-off-by Arnaud Lacombe <[email protected]>---
drivers/base/devtmpfs.c | 2 +-1 files changed, 1 insertions(+), 1 deletions(-)drivers/base/devtmpfs.c +1
-2@@ -376,7 +376,7 @@ int devtmpfs_mount(const char *mntdir) return err; } -static __initdata DECLARE_COMPLETION (setup_done); +static DECLARE_COMPLETION (setup_done); static int handle(const char *name, mode_t mode, struct device *dev) { --1.7.6.153.g78432
Re: [PATCH 2/4] drivers/base/devtmpfs.c: correct annotation of `setup_done'
Quoted 4 lines · Arnaud Lacombe
Hi,
I saw that devtmpfs stuff went on through Al Viro's tree, maybe I should have Cc: him on this ?
No need, I'll get it.
thanks,
greg k-h
PATCH 3/4 usb/host/pci-quirks.c: correct annotation of `ehci_dmi_nohandoff_table'
In reply to Arnaud Lacombeehci_bios_handoff() is marked __devinit, `ehci_dmi_nohandoff_table' should be marked __devinitconst, not __initconst. This fixes the following section mismatch:
WARNING: vmlinux.o(.devinit.text+0x4f08): Section mismatch in reference from the function ehci_bios_handoff() to the variable .init.rodata:ehci_dmi_nohandoff_table The function __devinit ehci_bios_handoff() references a variable __initconst ehci_dmi_nohandoff_table.
If ehci_dmi_nohandoff_table is only used by ehci_bios_handoff then annotate ehci_dmi_nohandoff_table with a matching annotation.
--- drivers/usb/host/pci-quirks.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-)
drivers/usb/host/pci-quirks.c +1 -1
@@ -535,7 +535,7 @@ static void __devinit quirk_usb_handoff_ohci(struct pci_dev *pdev)iounmap (base); } -static const struct dmi_system_id __initconst ehci_dmi_nohandoff_table[] = { +static const struct dmi_system_id __devinitconst ehci_dmi_nohandoff_table[] = { {/* Pegatron Lucid (ExoPC) */ .matches = {
Signature · 1 line
1.7.6.153.g78432
PATCH 4/4 drivers/base/devtmpfs.c: fix uninitialized variable
In reply to Arnaud Lacombedrivers/base/devtmpfs.c: In function 'create_path':drivers/base/devtmpfs.c:169:6: warning: 'err' may be used uninitialized in this function
--- drivers/base/devtmpfs.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-)
drivers/base/devtmpfs.c +1 -1
@@ -166,7 +166,7 @@ static int create_path(const char *nodepath) {char *path;char *s; -int err; +int err =0 ;/* parent directories do not exist, create them */ path =kstrdup (nodepath,GFP_KERNEL );
Signature · 1 line
1.7.6.153.g78432