LKML Archive on lore.kernel.org
help / color / mirror / Atom feed
* [PATCH 0/27] fix section mismatches
@ 2008-02-17 12:12 Sam Ravnborg
  2008-02-17 12:22 ` [PATCH 01/27] serial: silence section mismatch warnings in 8250_pci Sam Ravnborg
                   ` (26 more replies)
  0 siblings, 27 replies; 38+ messages in thread
From: Sam Ravnborg @ 2008-02-17 12:12 UTC (permalink / raw)
  To: LKML, Andrew Morton

Following patch set fix all section mismatches for a
allnoconfig, allyesconfig, defconfig build of x86 - 64bit.
The builds were all done with CONFIG_DEBUG_SECTION_MISMATCH
enabled.

The fixes are spread all over the tree but none of them are
invasive in nature.
diffstat for the full patchset reports:
 33 files changed, 58 insertions(+), 58 deletions(-)

A total of 66 section mismatch warnings are fixed.

I have for each patch tried to identify the relevant persons
and added them to Cc.

Andrew - can we suck it all into -mm or do you have other
preferences? I expect over time the respective maintainers
will pick up the patches, review them and apply them.
(Call me naive).

Patches will follow and the full diff is included below for
easier review.


And before anyone ask... I started out with x86 64bit but I
plan to take a look at other architectures when these are
in mainline.  But do not wait for me - please fix the
warning yourself.

	Sam


Sam Ravnborg (27):
      serial: silence section mismatch warnings in 8250_pci
      rtc: silence section mismatch warning in rtc-test
      pcmcia: silence section mismatch warnings from class_interface variables
      pcmcia: silence section mismatch warnings from pci_driver variables
      cpu: fix section mismatch warnings in hotcpu_register
      cpu: fix section mismatch warning in unregister_cpu_notifier
      cpu: fix section mismatch warnings in *cpu_down
      cpu: fix section mismatch warning in reference to register_cpu_notifier
      x86: fix section mismatch warning in setup_64.c:nearby_node
      x86: fix section mismatch in setup_64.c:srat_detect_node
      acpi: fix section mismatch in processor_core.c:acpi_processor_hotplug_notify
      x86: fix section mismatch warning in topology.c:arch_register_cpu
      drivers/base/cpu: fix section mismatch in cpu.c:store_online
      hwmon: fix section mismatch in coretemp
      cpufreq: fix section mismatch warnings
      scsi: fix section mismatch in aic94xx
      acer-wmi: fix section mismatch warnings
      video: fix section mismatch warnings in uvesafb
      tpm: fix section mismatch warning
      [ALSA] caiaq - fix section mismatch warning
      x86: fix section mismatch in srat_64.c:reserve_hotadd
      x86: fix section mismatch in head_64.S:initial_code
      x86: annotate pci/common.s:pci_scan_bus_with_sysdata with __devinit
      pcmcia: annotate cb_alloc with __ref
      pci: fix section mismatch warning in pci_scan_child_bus
      acpi: fix section mismatch in acpi_pci_root_add
      [ALSA] hdsp - fix section mismatch warnings


 arch/x86/kernel/head_64.S              |    2 +-
 arch/x86/kernel/setup_64.c             |    4 ++--
 arch/x86/kernel/topology.c             |    2 +-
 arch/x86/mm/srat_64.c                  |    2 +-
 arch/x86/pci/common.c                  |    2 +-
 drivers/acpi/pci_root.c                |    2 +-
 drivers/acpi/processor_core.c          |    4 ++--
 drivers/base/cpu.c                     |    4 ++--
 drivers/char/tpm/tpm_nsc.c             |    2 +-
 drivers/cpufreq/cpufreq.c              |    2 +-
 drivers/cpufreq/cpufreq_stats.c        |    2 +-
 drivers/hwmon/coretemp.c               |    4 ++--
 drivers/misc/acer-wmi.c                |    6 +++---
 drivers/pci/hotplug-pci.c              |    2 +-
 drivers/pci/hotplug/acpiphp_glue.c     |    2 +-
 drivers/pci/hotplug/cpci_hotplug_pci.c |    2 +-
 drivers/pci/hotplug/pciehp_pci.c       |    2 +-
 drivers/pci/hotplug/shpchp_pci.c       |    2 +-
 drivers/pci/probe.c                    |    8 ++++----
 drivers/pcmcia/cardbus.c               |    2 +-
 drivers/pcmcia/ds.c                    |    2 +-
 drivers/pcmcia/i82092.c                |    6 +++---
 drivers/pcmcia/pd6729.c                |    6 +++---
 drivers/pcmcia/rsrc_nonstatic.c        |    2 +-
 drivers/pcmcia/socket_sysfs.c          |    2 +-
 drivers/rtc/rtc-test.c                 |    8 ++++----
 drivers/scsi/aic94xx/aic94xx_init.c    |    4 ++--
 drivers/serial/8250_pci.c              |    2 +-
 drivers/video/uvesafb.c                |    2 +-
 include/linux/cpu.h                    |    2 +-
 kernel/cpu.c                           |   10 +++++-----
 sound/pci/rme9652/hdsp.c               |    6 +++---
 sound/usb/caiaq/caiaq-device.c         |    6 +++---
 33 files changed, 58 insertions(+), 58 deletions(-)

diff --git a/arch/x86/kernel/head_64.S b/arch/x86/kernel/head_64.S
index 09b38d5..220daaa 100644
--- a/arch/x86/kernel/head_64.S
+++ b/arch/x86/kernel/head_64.S
@@ -250,7 +250,7 @@ ENTRY(secondary_startup_64)
 	lretq
 
 	/* SMP bootup changes these two */
-	__CPUINITDATA
+	__REFDATA
 	.align	8
 	ENTRY(initial_code)
 	.quad	x86_64_start_kernel
diff --git a/arch/x86/kernel/setup_64.c b/arch/x86/kernel/setup_64.c
index c0d8208..e186617 100644
--- a/arch/x86/kernel/setup_64.c
+++ b/arch/x86/kernel/setup_64.c
@@ -518,7 +518,7 @@ static void __cpuinit display_cacheinfo(struct cpuinfo_x86 *c)
 }
 
 #ifdef CONFIG_NUMA
-static int nearby_node(int apicid)
+static int __cpuinit nearby_node(int apicid)
 {
 	int i, node;
 
@@ -791,7 +791,7 @@ static int __cpuinit intel_num_cpu_cores(struct cpuinfo_x86 *c)
 		return 1;
 }
 
-static void srat_detect_node(void)
+static void __cpuinit srat_detect_node(void)
 {
 #ifdef CONFIG_NUMA
 	unsigned node;
diff --git a/arch/x86/kernel/topology.c b/arch/x86/kernel/topology.c
index a40051b..0fcc95a 100644
--- a/arch/x86/kernel/topology.c
+++ b/arch/x86/kernel/topology.c
@@ -34,7 +34,7 @@
 static DEFINE_PER_CPU(struct x86_cpu, cpu_devices);
 
 #ifdef CONFIG_HOTPLUG_CPU
-int arch_register_cpu(int num)
+int __ref arch_register_cpu(int num)
 {
 	/*
 	 * CPU0 cannot be offlined due to several
diff --git a/arch/x86/mm/srat_64.c b/arch/x86/mm/srat_64.c
index ecd91ea..70eb153 100644
--- a/arch/x86/mm/srat_64.c
+++ b/arch/x86/mm/srat_64.c
@@ -166,7 +166,7 @@ static inline int save_add_info(void) {return 0;}
  * Both SPARSE and RESERVE need nodes_add information.
  * This code supports one contiguous hot add area per node.
  */
-static int reserve_hotadd(int node, unsigned long start, unsigned long end)
+static int __init reserve_hotadd(int node, unsigned long start, unsigned long end)
 {
 	unsigned long s_pfn = start >> PAGE_SHIFT;
 	unsigned long e_pfn = end >> PAGE_SHIFT;
diff --git a/arch/x86/pci/common.c b/arch/x86/pci/common.c
index b7c67a1..7b6e3bb 100644
--- a/arch/x86/pci/common.c
+++ b/arch/x86/pci/common.c
@@ -541,7 +541,7 @@ void pcibios_disable_device (struct pci_dev *dev)
 		pcibios_disable_irq(dev);
 }
 
-struct pci_bus *pci_scan_bus_with_sysdata(int busno)
+struct pci_bus *__devinit pci_scan_bus_with_sysdata(int busno)
 {
 	struct pci_bus *bus = NULL;
 	struct pci_sysdata *sd;
diff --git a/drivers/acpi/pci_root.c b/drivers/acpi/pci_root.c
index f14ff1f..c3fed31 100644
--- a/drivers/acpi/pci_root.c
+++ b/drivers/acpi/pci_root.c
@@ -184,7 +184,7 @@ static void acpi_pci_bridge_scan(struct acpi_device *device)
 		}
 }
 
-static int acpi_pci_root_add(struct acpi_device *device)
+static int __devinit acpi_pci_root_add(struct acpi_device *device)
 {
 	int result = 0;
 	struct acpi_pci_root *root = NULL;
diff --git a/drivers/acpi/processor_core.c b/drivers/acpi/processor_core.c
index 75ccf5d..d3cc07f 100644
--- a/drivers/acpi/processor_core.c
+++ b/drivers/acpi/processor_core.c
@@ -881,8 +881,8 @@ int acpi_processor_device_add(acpi_handle handle, struct acpi_device **device)
 	return 0;
 }
 
-static void
-acpi_processor_hotplug_notify(acpi_handle handle, u32 event, void *data)
+static void __ref acpi_processor_hotplug_notify(acpi_handle handle,
+						u32 event, void *data)
 {
 	struct acpi_processor *pr;
 	struct acpi_device *device = NULL;
diff --git a/drivers/base/cpu.c b/drivers/base/cpu.c
index 499b003..3e417a9 100644
--- a/drivers/base/cpu.c
+++ b/drivers/base/cpu.c
@@ -28,7 +28,7 @@ static ssize_t show_online(struct sys_device *dev, char *buf)
 	return sprintf(buf, "%u\n", !!cpu_online(cpu->sysdev.id));
 }
 
-static ssize_t store_online(struct sys_device *dev, const char *buf,
+static ssize_t __ref store_online(struct sys_device *dev, const char *buf,
 			    size_t count)
 {
 	struct cpu *cpu = container_of(dev, struct cpu, sysdev);
@@ -55,7 +55,7 @@ static ssize_t store_online(struct sys_device *dev, const char *buf,
 }
 static SYSDEV_ATTR(online, 0644, show_online, store_online);
 
-static void __devinit register_cpu_control(struct cpu *cpu)
+static void __cpuinit register_cpu_control(struct cpu *cpu)
 {
 	sysdev_create_file(&cpu->sysdev, &attr_online);
 }
diff --git a/drivers/char/tpm/tpm_nsc.c b/drivers/char/tpm/tpm_nsc.c
index 6313326..ab18c1e 100644
--- a/drivers/char/tpm/tpm_nsc.c
+++ b/drivers/char/tpm/tpm_nsc.c
@@ -264,7 +264,7 @@ static const struct tpm_vendor_specific tpm_nsc = {
 
 static struct platform_device *pdev = NULL;
 
-static void __devexit tpm_nsc_remove(struct device *dev)
+static void tpm_nsc_remove(struct device *dev)
 {
 	struct tpm_chip *chip = dev_get_drvdata(dev);
 	if ( chip ) {
diff --git a/drivers/cpufreq/cpufreq.c b/drivers/cpufreq/cpufreq.c
index 64926aa..c45768a 100644
--- a/drivers/cpufreq/cpufreq.c
+++ b/drivers/cpufreq/cpufreq.c
@@ -1783,7 +1783,7 @@ static int __cpuinit cpufreq_cpu_callback(struct notifier_block *nfb,
 	return NOTIFY_OK;
 }
 
-static struct notifier_block __cpuinitdata cpufreq_cpu_notifier =
+static struct notifier_block __refdata cpufreq_cpu_notifier =
 {
     .notifier_call = cpufreq_cpu_callback,
 };
diff --git a/drivers/cpufreq/cpufreq_stats.c b/drivers/cpufreq/cpufreq_stats.c
index 1b8312b..070421a 100644
--- a/drivers/cpufreq/cpufreq_stats.c
+++ b/drivers/cpufreq/cpufreq_stats.c
@@ -323,7 +323,7 @@ static int __cpuinit cpufreq_stat_cpu_callback(struct notifier_block *nfb,
 	return NOTIFY_OK;
 }
 
-static struct notifier_block cpufreq_stat_cpu_notifier __cpuinitdata =
+static struct notifier_block cpufreq_stat_cpu_notifier __refdata =
 {
 	.notifier_call = cpufreq_stat_cpu_callback,
 };
diff --git a/drivers/hwmon/coretemp.c b/drivers/hwmon/coretemp.c
index 3ee60d2..1439432 100644
--- a/drivers/hwmon/coretemp.c
+++ b/drivers/hwmon/coretemp.c
@@ -330,7 +330,7 @@ static void coretemp_device_remove(unsigned int cpu)
 	mutex_unlock(&pdev_list_mutex);
 }
 
-static int coretemp_cpu_callback(struct notifier_block *nfb,
+static int __cpuinit coretemp_cpu_callback(struct notifier_block *nfb,
 				 unsigned long action, void *hcpu)
 {
 	unsigned int cpu = (unsigned long) hcpu;
@@ -347,7 +347,7 @@ static int coretemp_cpu_callback(struct notifier_block *nfb,
 	return NOTIFY_OK;
 }
 
-static struct notifier_block coretemp_cpu_notifier = {
+static struct notifier_block coretemp_cpu_notifier __refdata = {
 	.notifier_call = coretemp_cpu_callback,
 };
 #endif				/* !CONFIG_HOTPLUG_CPU */
diff --git a/drivers/misc/acer-wmi.c b/drivers/misc/acer-wmi.c
index d7aea93..cdc733b 100644
--- a/drivers/misc/acer-wmi.c
+++ b/drivers/misc/acer-wmi.c
@@ -756,7 +756,7 @@ static struct led_classdev mail_led = {
 	.brightness_set = mail_led_set,
 };
 
-static int __init acer_led_init(struct device *dev)
+static int __devinit acer_led_init(struct device *dev)
 {
 	return led_classdev_register(dev, &mail_led);
 }
@@ -789,7 +789,7 @@ static struct backlight_ops acer_bl_ops = {
 	.update_status = update_bl_status,
 };
 
-static int __init acer_backlight_init(struct device *dev)
+static int __devinit acer_backlight_init(struct device *dev)
 {
 	struct backlight_device *bd;
 
@@ -808,7 +808,7 @@ static int __init acer_backlight_init(struct device *dev)
 	return 0;
 }
 
-static void __exit acer_backlight_exit(void)
+static void acer_backlight_exit(void)
 {
 	backlight_device_unregister(acer_backlight_device);
 }
diff --git a/drivers/pci/hotplug-pci.c b/drivers/pci/hotplug-pci.c
index a590ef6..4d4a644 100644
--- a/drivers/pci/hotplug-pci.c
+++ b/drivers/pci/hotplug-pci.c
@@ -4,7 +4,7 @@
 #include "pci.h"
 
 
-unsigned int pci_do_scan_bus(struct pci_bus *bus)
+unsigned int __devinit pci_do_scan_bus(struct pci_bus *bus)
 {
 	unsigned int max;
 
diff --git a/drivers/pci/hotplug/acpiphp_glue.c b/drivers/pci/hotplug/acpiphp_glue.c
index cf22f9e..5e50008 100644
--- a/drivers/pci/hotplug/acpiphp_glue.c
+++ b/drivers/pci/hotplug/acpiphp_glue.c
@@ -1085,7 +1085,7 @@ static int acpiphp_bus_trim(acpi_handle handle)
  * This function should be called per *physical slot*,
  * not per each slot object in ACPI namespace.
  */
-static int enable_device(struct acpiphp_slot *slot)
+static int __ref enable_device(struct acpiphp_slot *slot)
 {
 	struct pci_dev *dev;
 	struct pci_bus *bus = slot->bridge->pci_bus;
diff --git a/drivers/pci/hotplug/cpci_hotplug_pci.c b/drivers/pci/hotplug/cpci_hotplug_pci.c
index 5e9be44..dddac96 100644
--- a/drivers/pci/hotplug/cpci_hotplug_pci.c
+++ b/drivers/pci/hotplug/cpci_hotplug_pci.c
@@ -250,7 +250,7 @@ int cpci_led_off(struct slot* slot)
  * Device configuration functions
  */
 
-int cpci_configure_slot(struct slot* slot)
+int __ref cpci_configure_slot(struct slot* slot)
 {
 	struct pci_bus *parent;
 	int fn;
diff --git a/drivers/pci/hotplug/pciehp_pci.c b/drivers/pci/hotplug/pciehp_pci.c
index dd50713..9372a84 100644
--- a/drivers/pci/hotplug/pciehp_pci.c
+++ b/drivers/pci/hotplug/pciehp_pci.c
@@ -167,7 +167,7 @@ static void program_fw_provided_values(struct pci_dev *dev)
 	}
 }
 
-static int pciehp_add_bridge(struct pci_dev *dev)
+static int __ref pciehp_add_bridge(struct pci_dev *dev)
 {
 	struct pci_bus *parent = dev->bus;
 	int pass, busnr, start = parent->secondary;
diff --git a/drivers/pci/hotplug/shpchp_pci.c b/drivers/pci/hotplug/shpchp_pci.c
index 0a6b25e..a69a215 100644
--- a/drivers/pci/hotplug/shpchp_pci.c
+++ b/drivers/pci/hotplug/shpchp_pci.c
@@ -96,7 +96,7 @@ static void program_fw_provided_values(struct pci_dev *dev)
 	}
 }
 
-int shpchp_configure_device(struct slot *p_slot)
+int __ref shpchp_configure_device(struct slot *p_slot)
 {
 	struct pci_dev *dev;
 	struct pci_bus *parent = p_slot->ctrl->pci_dev->subordinate;
diff --git a/drivers/pci/probe.c b/drivers/pci/probe.c
index 4d23b9f..5ffd610 100644
--- a/drivers/pci/probe.c
+++ b/drivers/pci/probe.c
@@ -286,7 +286,7 @@ static void pci_read_bases(struct pci_dev *dev, unsigned int howmany, int rom)
 	}
 }
 
-void pci_read_bridge_bases(struct pci_bus *child)
+void __devinit pci_read_bridge_bases(struct pci_bus *child)
 {
 	struct pci_dev *dev = child->self;
 	u8 io_base_lo, io_limit_lo;
@@ -472,7 +472,7 @@ static void pci_fixup_parent_subordinate_busnr(struct pci_bus *child, int max)
  * them, we proceed to assigning numbers to the remaining buses in
  * order to avoid overlaps between old and new bus numbers.
  */
-int pci_scan_bridge(struct pci_bus *bus, struct pci_dev * dev, int max, int pass)
+int __devinit pci_scan_bridge(struct pci_bus *bus, struct pci_dev * dev, int max, int pass)
 {
 	struct pci_bus *child;
 	int is_cardbus = (dev->hdr_type == PCI_HEADER_TYPE_CARDBUS);
@@ -1008,7 +1008,7 @@ int pci_scan_slot(struct pci_bus *bus, int devfn)
 	return nr;
 }
 
-unsigned int pci_scan_child_bus(struct pci_bus *bus)
+unsigned int __devinit pci_scan_child_bus(struct pci_bus *bus)
 {
 	unsigned int devfn, pass, max = bus->secondary;
 	struct pci_dev *dev;
@@ -1116,7 +1116,7 @@ err_out:
 	return NULL;
 }
 
-struct pci_bus *pci_scan_bus_parented(struct device *parent,
+struct pci_bus * __devinit pci_scan_bus_parented(struct device *parent,
 		int bus, struct pci_ops *ops, void *sysdata)
 {
 	struct pci_bus *b;
diff --git a/drivers/pcmcia/cardbus.c b/drivers/pcmcia/cardbus.c
index 714baae..fb2f38d 100644
--- a/drivers/pcmcia/cardbus.c
+++ b/drivers/pcmcia/cardbus.c
@@ -209,7 +209,7 @@ static void cardbus_assign_irqs(struct pci_bus *bus, int irq)
 	}
 }
 
-int cb_alloc(struct pcmcia_socket * s)
+int __ref cb_alloc(struct pcmcia_socket * s)
 {
 	struct pci_bus *bus = s->cb_dev->subordinate;
 	struct pci_dev *dev;
diff --git a/drivers/pcmcia/ds.c b/drivers/pcmcia/ds.c
index 5a85871..e407754 100644
--- a/drivers/pcmcia/ds.c
+++ b/drivers/pcmcia/ds.c
@@ -1520,7 +1520,7 @@ static void pcmcia_bus_remove_socket(struct device *dev,
 
 
 /* the pcmcia_bus_interface is used to handle pcmcia socket devices */
-static struct class_interface pcmcia_bus_interface = {
+static struct class_interface pcmcia_bus_interface __refdata = {
 	.class = &pcmcia_socket_class,
 	.add_dev = &pcmcia_bus_add_socket,
 	.remove_dev = &pcmcia_bus_remove_socket,
diff --git a/drivers/pcmcia/i82092.c b/drivers/pcmcia/i82092.c
index 7495155..1b3749e 100644
--- a/drivers/pcmcia/i82092.c
+++ b/drivers/pcmcia/i82092.c
@@ -53,7 +53,7 @@ static int i82092aa_socket_resume (struct pci_dev *dev)
 }
 #endif
 
-static struct pci_driver i82092aa_pci_drv = {
+static struct pci_driver i82092aa_pci_driver = {
 	.name           = "i82092aa",
 	.id_table       = i82092aa_pci_ids,
 	.probe          = i82092aa_pci_probe,
@@ -709,13 +709,13 @@ static int i82092aa_set_mem_map(struct pcmcia_socket *socket, struct pccard_mem_
 
 static int i82092aa_module_init(void)
 {
-	return pci_register_driver(&i82092aa_pci_drv);
+	return pci_register_driver(&i82092aa_pci_driver);
 }
 
 static void i82092aa_module_exit(void)
 {
 	enter("i82092aa_module_exit");
-	pci_unregister_driver(&i82092aa_pci_drv);
+	pci_unregister_driver(&i82092aa_pci_driver);
 	if (sockets[0].io_base>0)
 			 release_region(sockets[0].io_base, 2);
 	leave("i82092aa_module_exit");
diff --git a/drivers/pcmcia/pd6729.c b/drivers/pcmcia/pd6729.c
index abc10fe..8bed1da 100644
--- a/drivers/pcmcia/pd6729.c
+++ b/drivers/pcmcia/pd6729.c
@@ -778,7 +778,7 @@ static struct pci_device_id pd6729_pci_ids[] = {
 };
 MODULE_DEVICE_TABLE(pci, pd6729_pci_ids);
 
-static struct pci_driver pd6729_pci_drv = {
+static struct pci_driver pd6729_pci_driver = {
 	.name		= "pd6729",
 	.id_table	= pd6729_pci_ids,
 	.probe		= pd6729_pci_probe,
@@ -791,12 +791,12 @@ static struct pci_driver pd6729_pci_drv = {
 
 static int pd6729_module_init(void)
 {
-	return pci_register_driver(&pd6729_pci_drv);
+	return pci_register_driver(&pd6729_pci_driver);
 }
 
 static void pd6729_module_exit(void)
 {
-	pci_unregister_driver(&pd6729_pci_drv);
+	pci_unregister_driver(&pd6729_pci_driver);
 }
 
 module_init(pd6729_module_init);
diff --git a/drivers/pcmcia/rsrc_nonstatic.c b/drivers/pcmcia/rsrc_nonstatic.c
index a8d1007..0fcf763 100644
--- a/drivers/pcmcia/rsrc_nonstatic.c
+++ b/drivers/pcmcia/rsrc_nonstatic.c
@@ -1045,7 +1045,7 @@ static void __devexit pccard_sysfs_remove_rsrc(struct device *dev,
 		device_remove_file(dev, *attr);
 }
 
-static struct class_interface pccard_rsrc_interface = {
+static struct class_interface pccard_rsrc_interface __refdata = {
 	.class = &pcmcia_socket_class,
 	.add_dev = &pccard_sysfs_add_rsrc,
 	.remove_dev = __devexit_p(&pccard_sysfs_remove_rsrc),
diff --git a/drivers/pcmcia/socket_sysfs.c b/drivers/pcmcia/socket_sysfs.c
index b440900..4677286 100644
--- a/drivers/pcmcia/socket_sysfs.c
+++ b/drivers/pcmcia/socket_sysfs.c
@@ -403,7 +403,7 @@ static void __devexit pccard_sysfs_remove_socket(struct device *dev,
 		device_remove_file(dev, *attr);
 }
 
-struct class_interface pccard_sysfs_interface = {
+struct class_interface pccard_sysfs_interface __refdata = {
 	.class = &pcmcia_socket_class,
 	.add_dev = &pccard_sysfs_add_socket,
 	.remove_dev = __devexit_p(&pccard_sysfs_remove_socket),
diff --git a/drivers/rtc/rtc-test.c b/drivers/rtc/rtc-test.c
index 254c9fc..bc93002 100644
--- a/drivers/rtc/rtc-test.c
+++ b/drivers/rtc/rtc-test.c
@@ -147,7 +147,7 @@ static int __devexit test_remove(struct platform_device *plat_dev)
 	return 0;
 }
 
-static struct platform_driver test_drv = {
+static struct platform_driver test_driver = {
 	.probe	= test_probe,
 	.remove = __devexit_p(test_remove),
 	.driver = {
@@ -160,7 +160,7 @@ static int __init test_init(void)
 {
 	int err;
 
-	if ((err = platform_driver_register(&test_drv)))
+	if ((err = platform_driver_register(&test_driver)))
 		return err;
 
 	if ((test0 = platform_device_alloc("rtc-test", 0)) == NULL) {
@@ -191,7 +191,7 @@ exit_free_test0:
 	platform_device_put(test0);
 
 exit_driver_unregister:
-	platform_driver_unregister(&test_drv);
+	platform_driver_unregister(&test_driver);
 	return err;
 }
 
@@ -199,7 +199,7 @@ static void __exit test_exit(void)
 {
 	platform_device_unregister(test0);
 	platform_device_unregister(test1);
-	platform_driver_unregister(&test_drv);
+	platform_driver_unregister(&test_driver);
 }
 
 MODULE_AUTHOR("Alessandro Zummo <a.zummo@towertech.it>");
diff --git a/drivers/scsi/aic94xx/aic94xx_init.c b/drivers/scsi/aic94xx/aic94xx_init.c
index 5d761eb..720812f 100644
--- a/drivers/scsi/aic94xx/aic94xx_init.c
+++ b/drivers/scsi/aic94xx/aic94xx_init.c
@@ -531,10 +531,10 @@ static void asd_remove_dev_attrs(struct asd_ha_struct *asd_ha)
 /* The first entry, 0, is used for dynamic ids, the rest for devices
  * we know about.
  */
-static struct asd_pcidev_struct {
+static const struct asd_pcidev_struct {
 	const char * name;
 	int (*setup)(struct asd_ha_struct *asd_ha);
-} asd_pcidev_data[] = {
+} asd_pcidev_data[] __devinitconst = {
 	/* Id 0 is used for dynamic ids. */
 	{ .name  = "Adaptec AIC-94xx SAS/SATA Host Adapter",
 	  .setup = asd_aic9410_setup
diff --git a/drivers/serial/8250_pci.c b/drivers/serial/8250_pci.c
index a8bec49..c4b77a5 100644
--- a/drivers/serial/8250_pci.c
+++ b/drivers/serial/8250_pci.c
@@ -775,7 +775,7 @@ pci_default_setup(struct serial_private *priv, struct pciserial_board *board,
  * This list is ordered alphabetically by vendor then device.
  * Specific entries must come before more generic entries.
  */
-static struct pci_serial_quirk pci_serial_quirks[] = {
+static struct pci_serial_quirk pci_serial_quirks[] __refdata = {
 	/*
 	* ADDI-DATA GmbH communication cards <info@addi-data.com>
 	*/
diff --git a/drivers/video/uvesafb.c b/drivers/video/uvesafb.c
index be27b9c..2fb5bb8 100644
--- a/drivers/video/uvesafb.c
+++ b/drivers/video/uvesafb.c
@@ -44,7 +44,7 @@ static struct fb_fix_screeninfo uvesafb_fix __devinitdata = {
 
 static int mtrr		__devinitdata = 3; /* enable mtrr by default */
 static int blank	= 1;		   /* enable blanking by default */
-static int ypan		__devinitdata = 1; /* 0: scroll, 1: ypan, 2: ywrap */
+static int ypan		= 1;		   /* 0: scroll, 1: ypan, 2: ywrap */
 static int pmi_setpal	__devinitdata = 1; /* use PMI for palette changes */
 static int nocrtc	__devinitdata; /* ignore CRTC settings */
 static int noedid	__devinitdata; /* don't try DDC transfers */
diff --git a/include/linux/cpu.h b/include/linux/cpu.h
index 0be8d65..237c19a 100644
--- a/include/linux/cpu.h
+++ b/include/linux/cpu.h
@@ -109,7 +109,7 @@ static inline void cpuhotplug_mutex_unlock(struct mutex *cpu_hp_mutex)
 extern void get_online_cpus(void);
 extern void put_online_cpus(void);
 #define hotcpu_notifier(fn, pri) {				\
-	static struct notifier_block fn##_nb =			\
+	static struct notifier_block fn##_nb __cpuinitdata =	\
 		{ .notifier_call = fn, .priority = pri };	\
 	register_cpu_notifier(&fn##_nb);			\
 }
diff --git a/kernel/cpu.c b/kernel/cpu.c
index 2eff3f6..329fdcb 100644
--- a/kernel/cpu.c
+++ b/kernel/cpu.c
@@ -136,7 +136,7 @@ static void cpu_hotplug_done(void)
 	mutex_unlock(&cpu_hotplug.lock);
 }
 /* Need to know about CPUs going up/down? */
-int __cpuinit register_cpu_notifier(struct notifier_block *nb)
+int __ref register_cpu_notifier(struct notifier_block *nb)
 {
 	int ret;
 	cpu_maps_update_begin();
@@ -149,7 +149,7 @@ int __cpuinit register_cpu_notifier(struct notifier_block *nb)
 
 EXPORT_SYMBOL(register_cpu_notifier);
 
-void unregister_cpu_notifier(struct notifier_block *nb)
+void __ref unregister_cpu_notifier(struct notifier_block *nb)
 {
 	cpu_maps_update_begin();
 	raw_notifier_chain_unregister(&cpu_chain, nb);
@@ -180,7 +180,7 @@ struct take_cpu_down_param {
 };
 
 /* Take this CPU down. */
-static int take_cpu_down(void *_param)
+static int __ref take_cpu_down(void *_param)
 {
 	struct take_cpu_down_param *param = _param;
 	int err;
@@ -199,7 +199,7 @@ static int take_cpu_down(void *_param)
 }
 
 /* Requires cpu_add_remove_lock to be held */
-static int _cpu_down(unsigned int cpu, int tasks_frozen)
+static int __ref _cpu_down(unsigned int cpu, int tasks_frozen)
 {
 	int err, nr_calls = 0;
 	struct task_struct *p;
@@ -274,7 +274,7 @@ out_release:
 	return err;
 }
 
-int cpu_down(unsigned int cpu)
+int __ref cpu_down(unsigned int cpu)
 {
 	int err = 0;
 
diff --git a/sound/pci/rme9652/hdsp.c b/sound/pci/rme9652/hdsp.c
index c2bd438..6f07a25 100644
--- a/sound/pci/rme9652/hdsp.c
+++ b/sound/pci/rme9652/hdsp.c
@@ -745,7 +745,7 @@ static int hdsp_get_iobox_version (struct hdsp *hdsp)
 
 
 #ifdef HDSP_FW_LOADER
-static int __devinit hdsp_request_fw_loader(struct hdsp *hdsp);
+static int hdsp_request_fw_loader(struct hdsp *hdsp);
 #endif
 
 static int hdsp_check_for_firmware (struct hdsp *hdsp, int load_on_demand)
@@ -4688,7 +4688,7 @@ static struct snd_pcm_ops snd_hdsp_capture_ops = {
 	.copy =		snd_hdsp_capture_copy,
 };
 
-static int __devinit snd_hdsp_create_hwdep(struct snd_card *card,
+static int snd_hdsp_create_hwdep(struct snd_card *card,
 					   struct hdsp *hdsp)
 {
 	struct snd_hwdep *hw;
@@ -4857,7 +4857,7 @@ static int snd_hdsp_create_alsa_devices(struct snd_card *card, struct hdsp *hdsp
 
 #ifdef HDSP_FW_LOADER
 /* load firmware via hotplug fw loader */
-static int __devinit hdsp_request_fw_loader(struct hdsp *hdsp)
+static int hdsp_request_fw_loader(struct hdsp *hdsp)
 {
 	const char *fwfile;
 	const struct firmware *fw;
diff --git a/sound/usb/caiaq/caiaq-device.c b/sound/usb/caiaq/caiaq-device.c
index 58d25e4..7c44a2c 100644
--- a/sound/usb/caiaq/caiaq-device.c
+++ b/sound/usb/caiaq/caiaq-device.c
@@ -245,7 +245,7 @@ int snd_usb_caiaq_set_auto_msg (struct snd_usb_caiaqdev *dev,
 					  tmp, sizeof(tmp));
 }
 
-static void setup_card(struct snd_usb_caiaqdev *dev)
+static void __devinit setup_card(struct snd_usb_caiaqdev *dev)
 {
 	int ret;
 	char val[4];
@@ -359,7 +359,7 @@ static struct snd_card* create_card(struct usb_device* usb_dev)
 	return card;
 }
 
-static int init_card(struct snd_usb_caiaqdev *dev)
+static int __devinit init_card(struct snd_usb_caiaqdev *dev)
 {
 	char *c;
 	struct usb_device *usb_dev = dev->chip.dev;
@@ -428,7 +428,7 @@ static int init_card(struct snd_usb_caiaqdev *dev)
 	return 0;
 }
 
-static int snd_probe(struct usb_interface *intf, 
+static int __devinit snd_probe(struct usb_interface *intf, 
 		     const struct usb_device_id *id)
 {
 	int ret;

^ permalink raw reply	[flat|nested] 38+ messages in thread

* [PATCH 01/27] serial: silence section mismatch warnings in 8250_pci
  2008-02-17 12:12 [PATCH 0/27] fix section mismatches Sam Ravnborg
@ 2008-02-17 12:22 ` Sam Ravnborg
  2008-02-17 12:22 ` [PATCH 02/27] rtc: silence section mismatch warning in rtc-test Sam Ravnborg
                   ` (25 subsequent siblings)
  26 siblings, 0 replies; 38+ messages in thread
From: Sam Ravnborg @ 2008-02-17 12:22 UTC (permalink / raw)
  To: LKML, Andrew Morton; +Cc: Sam Ravnborg, Russell King, linux-serial

Fix following warnings:
WARNING: drivers/serial/built-in.o(.data+0x5b8): Section mismatch in reference from the variable pci_serial_quirks to the function .devexit.text:pci_ite887x_exit()
WARNING: drivers/serial/built-in.o(.data+0x5e0): Section mismatch in reference from the variable pci_serial_quirks to the function .devexit.text:pci_plx9050_exit()
WARNING: drivers/serial/built-in.o(.data+0x608): Section mismatch in reference from the variable pci_serial_quirks to the function .devexit.text:pci_plx9050_exit()
WARNING: drivers/serial/built-in.o(.data+0x658): Section mismatch in reference from the variable pci_serial_quirks to the function .devexit.text:pci_plx9050_exit()
WARNING: drivers/serial/built-in.o(.data+0x680): Section mismatch in reference from the variable pci_serial_quirks to the function .devexit.text:pci_plx9050_exit()
WARNING: drivers/serial/built-in.o(.data+0x6a8): Section mismatch in reference from the variable pci_serial_quirks to the function .devexit.text:pci_plx9050_exit()
WARNING: drivers/serial/built-in.o(.data+0x6d0): Section mismatch in reference from the variable pci_serial_quirks to the function .devexit.text:sbs_exit()
WARNING: drivers/serial/built-in.o(.data+0x6f8): Section mismatch in reference from the variable pci_serial_quirks to the function .devexit.text:sbs_exit()
WARNING: drivers/serial/built-in.o(.data+0x720): Section mismatch in reference from the variable pci_serial_quirks to the function .devexit.text:sbs_exit()
WARNING: drivers/serial/built-in.o(.data+0x748): Section mismatch in reference from the variable pci_serial_quirks to the function .devexit.text:sbs_exit()

pci_serial_quirks contains a number of function pointers
where the referenced function is annotated __devexit.
This is OK so we annotate pci_serial_quirks with
__refdata to ignore the __devexit references

Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Cc: Russell King <rmk+kernel@arm.linux.org.uk>
Cc: linux-serial@vger.kernel.org
---
 drivers/serial/8250_pci.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/drivers/serial/8250_pci.c b/drivers/serial/8250_pci.c
index a8bec49..c4b77a5 100644
--- a/drivers/serial/8250_pci.c
+++ b/drivers/serial/8250_pci.c
@@ -775,7 +775,7 @@ pci_default_setup(struct serial_private *priv, struct pciserial_board *board,
  * This list is ordered alphabetically by vendor then device.
  * Specific entries must come before more generic entries.
  */
-static struct pci_serial_quirk pci_serial_quirks[] = {
+static struct pci_serial_quirk pci_serial_quirks[] __refdata = {
 	/*
 	* ADDI-DATA GmbH communication cards <info@addi-data.com>
 	*/
-- 
1.5.4.rc3.14.g44397


^ permalink raw reply	[flat|nested] 38+ messages in thread

* [PATCH 02/27] rtc: silence section mismatch warning in rtc-test
  2008-02-17 12:12 [PATCH 0/27] fix section mismatches Sam Ravnborg
  2008-02-17 12:22 ` [PATCH 01/27] serial: silence section mismatch warnings in 8250_pci Sam Ravnborg
@ 2008-02-17 12:22 ` Sam Ravnborg
  2008-02-17 12:22 ` [PATCH 03/27] pcmcia: silence section mismatch warnings from class_interface variables Sam Ravnborg
                   ` (24 subsequent siblings)
  26 siblings, 0 replies; 38+ messages in thread
From: Sam Ravnborg @ 2008-02-17 12:22 UTC (permalink / raw)
  To: LKML, Andrew Morton; +Cc: Sam Ravnborg, Alessandro Zummo

Fix following warning:
WARNING: vmlinux.o(.data+0x253e28): Section mismatch in reference from the variable test_drv to the function .devexit.text:test_remove()

Fix by renaming the platfrom_driver variable from *_drv to *_driver
so modpost ignore the reference to an __devexit section.

Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Cc: Alessandro Zummo <a.zummo@towertech.it>
---
 drivers/rtc/rtc-test.c |    8 ++++----
 1 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/drivers/rtc/rtc-test.c b/drivers/rtc/rtc-test.c
index 254c9fc..bc93002 100644
--- a/drivers/rtc/rtc-test.c
+++ b/drivers/rtc/rtc-test.c
@@ -147,7 +147,7 @@ static int __devexit test_remove(struct platform_device *plat_dev)
 	return 0;
 }
 
-static struct platform_driver test_drv = {
+static struct platform_driver test_driver = {
 	.probe	= test_probe,
 	.remove = __devexit_p(test_remove),
 	.driver = {
@@ -160,7 +160,7 @@ static int __init test_init(void)
 {
 	int err;
 
-	if ((err = platform_driver_register(&test_drv)))
+	if ((err = platform_driver_register(&test_driver)))
 		return err;
 
 	if ((test0 = platform_device_alloc("rtc-test", 0)) == NULL) {
@@ -191,7 +191,7 @@ exit_free_test0:
 	platform_device_put(test0);
 
 exit_driver_unregister:
-	platform_driver_unregister(&test_drv);
+	platform_driver_unregister(&test_driver);
 	return err;
 }
 
@@ -199,7 +199,7 @@ static void __exit test_exit(void)
 {
 	platform_device_unregister(test0);
 	platform_device_unregister(test1);
-	platform_driver_unregister(&test_drv);
+	platform_driver_unregister(&test_driver);
 }
 
 MODULE_AUTHOR("Alessandro Zummo <a.zummo@towertech.it>");
-- 
1.5.4.rc3.14.g44397


^ permalink raw reply	[flat|nested] 38+ messages in thread

* [PATCH 03/27] pcmcia: silence section mismatch warnings from class_interface variables
  2008-02-17 12:12 [PATCH 0/27] fix section mismatches Sam Ravnborg
  2008-02-17 12:22 ` [PATCH 01/27] serial: silence section mismatch warnings in 8250_pci Sam Ravnborg
  2008-02-17 12:22 ` [PATCH 02/27] rtc: silence section mismatch warning in rtc-test Sam Ravnborg
@ 2008-02-17 12:22 ` Sam Ravnborg
  2008-02-17 12:22 ` [PATCH 04/27] pcmcia: silence section mismatch warnings from pci_driver variables Sam Ravnborg
                   ` (23 subsequent siblings)
  26 siblings, 0 replies; 38+ messages in thread
From: Sam Ravnborg @ 2008-02-17 12:22 UTC (permalink / raw)
  To: LKML, Andrew Morton; +Cc: Sam Ravnborg, Dominik Brodowski

Silence the following warnings:
WARNING: drivers/pcmcia/built-in.o(.data+0x348): Section mismatch in reference from the variable pccard_sysfs_interface to the function .devinit.text:pccard_sysfs_add_socket()
WARNING: drivers/pcmcia/built-in.o(.data+0x350): Section mismatch in reference from the variable pccard_sysfs_interface to the function .devexit.text:pccard_sysfs_remove_socket()
WARNING: drivers/pcmcia/built-in.o(.data+0x6e8): Section mismatch in reference from the variable pcmcia_bus_interface to the function .devinit.text:pcmcia_bus_add_socket()
WARNING: drivers/pcmcia/built-in.o(.data+0xa88): Section mismatch in reference from the variable pccard_rsrc_interface to the function .devinit.text:pccard_sysfs_add_rsrc()
WARNING: drivers/pcmcia/built-in.o(.data+0xa90): Section mismatch in reference from the variable pccard_rsrc_interface to the function .devexit.text:pccard_sysfs_remove_rsrc()

The variables of type class_interface contains references
to __devinit and __devexit functions which is OK.
Silence warnings by annotating the variables with __refdata.

Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Cc: Dominik Brodowski <linux@dominikbrodowski.net>
---
 drivers/pcmcia/ds.c             |    2 +-
 drivers/pcmcia/rsrc_nonstatic.c |    2 +-
 drivers/pcmcia/socket_sysfs.c   |    2 +-
 3 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/drivers/pcmcia/ds.c b/drivers/pcmcia/ds.c
index 5a85871..e407754 100644
--- a/drivers/pcmcia/ds.c
+++ b/drivers/pcmcia/ds.c
@@ -1520,7 +1520,7 @@ static void pcmcia_bus_remove_socket(struct device *dev,
 
 
 /* the pcmcia_bus_interface is used to handle pcmcia socket devices */
-static struct class_interface pcmcia_bus_interface = {
+static struct class_interface pcmcia_bus_interface __refdata = {
 	.class = &pcmcia_socket_class,
 	.add_dev = &pcmcia_bus_add_socket,
 	.remove_dev = &pcmcia_bus_remove_socket,
diff --git a/drivers/pcmcia/rsrc_nonstatic.c b/drivers/pcmcia/rsrc_nonstatic.c
index a8d1007..0fcf763 100644
--- a/drivers/pcmcia/rsrc_nonstatic.c
+++ b/drivers/pcmcia/rsrc_nonstatic.c
@@ -1045,7 +1045,7 @@ static void __devexit pccard_sysfs_remove_rsrc(struct device *dev,
 		device_remove_file(dev, *attr);
 }
 
-static struct class_interface pccard_rsrc_interface = {
+static struct class_interface pccard_rsrc_interface __refdata = {
 	.class = &pcmcia_socket_class,
 	.add_dev = &pccard_sysfs_add_rsrc,
 	.remove_dev = __devexit_p(&pccard_sysfs_remove_rsrc),
diff --git a/drivers/pcmcia/socket_sysfs.c b/drivers/pcmcia/socket_sysfs.c
index b440900..4677286 100644
--- a/drivers/pcmcia/socket_sysfs.c
+++ b/drivers/pcmcia/socket_sysfs.c
@@ -403,7 +403,7 @@ static void __devexit pccard_sysfs_remove_socket(struct device *dev,
 		device_remove_file(dev, *attr);
 }
 
-struct class_interface pccard_sysfs_interface = {
+struct class_interface pccard_sysfs_interface __refdata = {
 	.class = &pcmcia_socket_class,
 	.add_dev = &pccard_sysfs_add_socket,
 	.remove_dev = __devexit_p(&pccard_sysfs_remove_socket),
-- 
1.5.4.rc3.14.g44397


^ permalink raw reply	[flat|nested] 38+ messages in thread

* [PATCH 04/27] pcmcia: silence section mismatch warnings from pci_driver variables
  2008-02-17 12:12 [PATCH 0/27] fix section mismatches Sam Ravnborg
                   ` (2 preceding siblings ...)
  2008-02-17 12:22 ` [PATCH 03/27] pcmcia: silence section mismatch warnings from class_interface variables Sam Ravnborg
@ 2008-02-17 12:22 ` Sam Ravnborg
  2008-02-17 12:22 ` [PATCH 05/27] cpu: fix section mismatch warnings in hotcpu_register Sam Ravnborg
                   ` (22 subsequent siblings)
  26 siblings, 0 replies; 38+ messages in thread
From: Sam Ravnborg @ 2008-02-17 12:22 UTC (permalink / raw)
  To: LKML, Andrew Morton; +Cc: Sam Ravnborg, Dominik Brodowski

Silence following warnings:
WARNING: drivers/pcmcia/built-in.o(.data+0x14e0): Section mismatch in reference from the variable pd6729_pci_drv to the function .devinit.text:pd6729_pci_probe()
WARNING: drivers/pcmcia/built-in.o(.data+0x14e8): Section mismatch in reference from the variable pd6729_pci_drv to the function .devexit.text:pd6729_pci_remove()
WARNING: drivers/pcmcia/built-in.o(.data+0x16c0): Section mismatch in reference from the variable i82092aa_pci_drv to the function .devinit.text:i82092aa_pci_probe()
WARNING: drivers/pcmcia/built-in.o(.data+0x16c8): Section mismatch in reference from the variable i82092aa_pci_drv to the function .devexit.text:i82092aa_pci_remove()

Rename the variables from *_drv to *_driver so
modpost ignore the OK references to __devinit/__devexit
functions.

Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Cc: Dominik Brodowski <linux@dominikbrodowski.net>
---
 drivers/pcmcia/i82092.c |    6 +++---
 drivers/pcmcia/pd6729.c |    6 +++---
 2 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/drivers/pcmcia/i82092.c b/drivers/pcmcia/i82092.c
index 7495155..1b3749e 100644
--- a/drivers/pcmcia/i82092.c
+++ b/drivers/pcmcia/i82092.c
@@ -53,7 +53,7 @@ static int i82092aa_socket_resume (struct pci_dev *dev)
 }
 #endif
 
-static struct pci_driver i82092aa_pci_drv = {
+static struct pci_driver i82092aa_pci_driver = {
 	.name           = "i82092aa",
 	.id_table       = i82092aa_pci_ids,
 	.probe          = i82092aa_pci_probe,
@@ -709,13 +709,13 @@ static int i82092aa_set_mem_map(struct pcmcia_socket *socket, struct pccard_mem_
 
 static int i82092aa_module_init(void)
 {
-	return pci_register_driver(&i82092aa_pci_drv);
+	return pci_register_driver(&i82092aa_pci_driver);
 }
 
 static void i82092aa_module_exit(void)
 {
 	enter("i82092aa_module_exit");
-	pci_unregister_driver(&i82092aa_pci_drv);
+	pci_unregister_driver(&i82092aa_pci_driver);
 	if (sockets[0].io_base>0)
 			 release_region(sockets[0].io_base, 2);
 	leave("i82092aa_module_exit");
diff --git a/drivers/pcmcia/pd6729.c b/drivers/pcmcia/pd6729.c
index abc10fe..8bed1da 100644
--- a/drivers/pcmcia/pd6729.c
+++ b/drivers/pcmcia/pd6729.c
@@ -778,7 +778,7 @@ static struct pci_device_id pd6729_pci_ids[] = {
 };
 MODULE_DEVICE_TABLE(pci, pd6729_pci_ids);
 
-static struct pci_driver pd6729_pci_drv = {
+static struct pci_driver pd6729_pci_driver = {
 	.name		= "pd6729",
 	.id_table	= pd6729_pci_ids,
 	.probe		= pd6729_pci_probe,
@@ -791,12 +791,12 @@ static struct pci_driver pd6729_pci_drv = {
 
 static int pd6729_module_init(void)
 {
-	return pci_register_driver(&pd6729_pci_drv);
+	return pci_register_driver(&pd6729_pci_driver);
 }
 
 static void pd6729_module_exit(void)
 {
-	pci_unregister_driver(&pd6729_pci_drv);
+	pci_unregister_driver(&pd6729_pci_driver);
 }
 
 module_init(pd6729_module_init);
-- 
1.5.4.rc3.14.g44397


^ permalink raw reply	[flat|nested] 38+ messages in thread

* [PATCH 05/27] cpu: fix section mismatch warnings in hotcpu_register
  2008-02-17 12:12 [PATCH 0/27] fix section mismatches Sam Ravnborg
                   ` (3 preceding siblings ...)
  2008-02-17 12:22 ` [PATCH 04/27] pcmcia: silence section mismatch warnings from pci_driver variables Sam Ravnborg
@ 2008-02-17 12:22 ` Sam Ravnborg
  2008-02-17 12:22 ` [PATCH 06/27] cpu: fix section mismatch warning in unregister_cpu_notifier Sam Ravnborg
                   ` (21 subsequent siblings)
  26 siblings, 0 replies; 38+ messages in thread
From: Sam Ravnborg @ 2008-02-17 12:22 UTC (permalink / raw)
  To: LKML, Andrew Morton; +Cc: Sam Ravnborg, Gautham R Shenoy

Fix following warnings:
WARNING: vmlinux.o(.data+0x5020): Section mismatch in reference from the variable cpu_vsyscall_notifier_nb.12876 to the function .cpuinit.text:cpu_vsyscall_notifier()
WARNING: vmlinux.o(.data+0x9ce0): Section mismatch in reference from the variable profile_cpu_callback_nb.17654 to the function .devinit.text:profile_cpu_callback()
WARNING: vmlinux.o(.data+0xd380): Section mismatch in reference from the variable workqueue_cpu_callback_nb.15004 to the function .devinit.text:workqueue_cpu_callback()
WARNING: vmlinux.o(.data+0x11d00): Section mismatch in reference from the variable relay_hotcpu_callback_nb.19626 to the function .cpuinit.text:relay_hotcpu_callback()
WARNING: vmlinux.o(.data+0x12970): Section mismatch in reference from the variable cpu_callback_nb.24694 to the function .devinit.text:cpu_callback()
WARNING: vmlinux.o(.data+0x3fee0): Section mismatch in reference from the variable percpu_counter_hotcpu_callback_nb.10903 to the function .cpuinit.text:percpu_counter_hotcpu_callback()
WARNING: vmlinux.o(.data+0x74ce0): Section mismatch in reference from the variable topology_cpu_callback_nb.12506 to the function .cpuinit.text:topology_cpu_callback()

Functions used as argument are by definition only used
in HOTPLUG_CPU situations so thay are annotated __cpuinit.
Annotate the static variable used by hotcpu_register with
__cpuinitdata to match this definition.

Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Cc: Gautham R Shenoy <ego@in.ibm.com>
---
 include/linux/cpu.h |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/include/linux/cpu.h b/include/linux/cpu.h
index 0be8d65..237c19a 100644
--- a/include/linux/cpu.h
+++ b/include/linux/cpu.h
@@ -109,7 +109,7 @@ static inline void cpuhotplug_mutex_unlock(struct mutex *cpu_hp_mutex)
 extern void get_online_cpus(void);
 extern void put_online_cpus(void);
 #define hotcpu_notifier(fn, pri) {				\
-	static struct notifier_block fn##_nb =			\
+	static struct notifier_block fn##_nb __cpuinitdata =	\
 		{ .notifier_call = fn, .priority = pri };	\
 	register_cpu_notifier(&fn##_nb);			\
 }
-- 
1.5.4.rc3.14.g44397


^ permalink raw reply	[flat|nested] 38+ messages in thread

* [PATCH 06/27] cpu: fix section mismatch warning in unregister_cpu_notifier
  2008-02-17 12:12 [PATCH 0/27] fix section mismatches Sam Ravnborg
                   ` (4 preceding siblings ...)
  2008-02-17 12:22 ` [PATCH 05/27] cpu: fix section mismatch warnings in hotcpu_register Sam Ravnborg
@ 2008-02-17 12:22 ` Sam Ravnborg
  2008-02-17 12:22 ` [PATCH 07/27] cpu: fix section mismatch warnings in *cpu_down Sam Ravnborg
                   ` (20 subsequent siblings)
  26 siblings, 0 replies; 38+ messages in thread
From: Sam Ravnborg @ 2008-02-17 12:22 UTC (permalink / raw)
  To: LKML, Andrew Morton; +Cc: Sam Ravnborg, Gautham R Shenoy

Fix following warning:
WARNING: vmlinux.o(.text+0x75f4e): Section mismatch in reference from the function unregister_cpu_notifier() to the variable .cpuinit.data:cpu_chain

We know that unregister_cpu_notifier is using HOTPLUG_CPU
stuff - so ignore these references.
Annotating unregister_cpu_notifier had been another option
but this caused far more warnings since not all callers were
annotated __cpuinit.

Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Cc: Gautham R Shenoy <ego@in.ibm.com>
---
 kernel/cpu.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/kernel/cpu.c b/kernel/cpu.c
index 2eff3f6..cdebf33 100644
--- a/kernel/cpu.c
+++ b/kernel/cpu.c
@@ -149,7 +149,7 @@ int __cpuinit register_cpu_notifier(struct notifier_block *nb)
 
 EXPORT_SYMBOL(register_cpu_notifier);
 
-void unregister_cpu_notifier(struct notifier_block *nb)
+void __ref unregister_cpu_notifier(struct notifier_block *nb)
 {
 	cpu_maps_update_begin();
 	raw_notifier_chain_unregister(&cpu_chain, nb);
-- 
1.5.4.rc3.14.g44397


^ permalink raw reply	[flat|nested] 38+ messages in thread

* [PATCH 07/27] cpu: fix section mismatch warnings in *cpu_down
  2008-02-17 12:12 [PATCH 0/27] fix section mismatches Sam Ravnborg
                   ` (5 preceding siblings ...)
  2008-02-17 12:22 ` [PATCH 06/27] cpu: fix section mismatch warning in unregister_cpu_notifier Sam Ravnborg
@ 2008-02-17 12:22 ` Sam Ravnborg
  2008-02-17 12:22 ` [PATCH 08/27] cpu: fix section mismatch warning in reference to register_cpu_notifier Sam Ravnborg
                   ` (19 subsequent siblings)
  26 siblings, 0 replies; 38+ messages in thread
From: Sam Ravnborg @ 2008-02-17 12:22 UTC (permalink / raw)
  To: LKML, Andrew Morton; +Cc: Sam Ravnborg, Gautham R Shenoy

Fix following warnings:
WARNING: vmlinux.o(.text+0x75c8d): Section mismatch in reference from the function take_cpu_down() to the variable .cpuinit.data:cpu_chain
WARNING: vmlinux.o(.text+0x75d2a): Section mismatch in reference from the function _cpu_down() to the variable .cpuinit.data:cpu_chain
WARNING: vmlinux.o(.text+0x75d4d): Section mismatch in reference from the function _cpu_down() to the variable .cpuinit.data:cpu_chain
WARNING: vmlinux.o(.text+0x75de4): Section mismatch in reference from the function _cpu_down() to the variable .cpuinit.data:cpu_chain
WARNING: vmlinux.o(.text+0x75e33): Section mismatch in reference from the function _cpu_down() to the variable .cpuinit.data:cpu_chain

cpu_down is only used from code surrounded by HOTPLUG_CPU
so any references to __cpuinit is OK.
Add a few __ref to tech modpost to ignore the references.

This is just papering over the fact that the cpu hotplug
code is fragile with respect to use of HOTPLUG_CPU and
in many cases rely on __cpuinit to get rid of code
when HOTPLUG_CPU is not enabled.
For now this is the least invasive change.

Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Cc: Gautham R Shenoy <ego@in.ibm.com>
---
 kernel/cpu.c |    6 +++---
 1 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/kernel/cpu.c b/kernel/cpu.c
index cdebf33..74827bf 100644
--- a/kernel/cpu.c
+++ b/kernel/cpu.c
@@ -180,7 +180,7 @@ struct take_cpu_down_param {
 };
 
 /* Take this CPU down. */
-static int take_cpu_down(void *_param)
+static int __ref take_cpu_down(void *_param)
 {
 	struct take_cpu_down_param *param = _param;
 	int err;
@@ -199,7 +199,7 @@ static int take_cpu_down(void *_param)
 }
 
 /* Requires cpu_add_remove_lock to be held */
-static int _cpu_down(unsigned int cpu, int tasks_frozen)
+static int __ref _cpu_down(unsigned int cpu, int tasks_frozen)
 {
 	int err, nr_calls = 0;
 	struct task_struct *p;
@@ -274,7 +274,7 @@ out_release:
 	return err;
 }
 
-int cpu_down(unsigned int cpu)
+int __ref cpu_down(unsigned int cpu)
 {
 	int err = 0;
 
-- 
1.5.4.rc3.14.g44397


^ permalink raw reply	[flat|nested] 38+ messages in thread

* [PATCH 08/27] cpu: fix section mismatch warning in reference to register_cpu_notifier
  2008-02-17 12:12 [PATCH 0/27] fix section mismatches Sam Ravnborg
                   ` (6 preceding siblings ...)
  2008-02-17 12:22 ` [PATCH 07/27] cpu: fix section mismatch warnings in *cpu_down Sam Ravnborg
@ 2008-02-17 12:22 ` Sam Ravnborg
  2008-02-17 12:22 ` [PATCH 09/27] x86: fix section mismatch warning in setup_64.c:nearby_node Sam Ravnborg
                   ` (18 subsequent siblings)
  26 siblings, 0 replies; 38+ messages in thread
From: Sam Ravnborg @ 2008-02-17 12:22 UTC (permalink / raw)
  To: LKML, Andrew Morton; +Cc: Sam Ravnborg, Gautham R Shenoy

Fix following warnings:
WARNING: vmlinux.o(.text+0xc60): Section mismatch in reference from the function kvm_init() to the function .cpuinit.text:register_cpu_notifier()
WARNING: vmlinux.o(.text+0x33869a): Section mismatch in reference from the function xfs_icsb_init_counters() to the function .cpuinit.text:register_cpu_notifier()
WARNING: vmlinux.o(.text+0x5556a1): Section mismatch in reference from the function acpi_processor_install_hotplug_notify() to the function .cpuinit.text:register_cpu_notifier()
WARNING: vmlinux.o(.text+0xfe6b28): Section mismatch in reference from the function cpufreq_register_driver() to the function .cpuinit.text:register_cpu_notifier()

register_cpu_notifier() are only really defined when HOTPLUG_CPU
is enabled. So references to the function are OK.
Annotate it with __ref so we do not get warnings from
callers and do not get warnings for the functions/data
used by register_cpu_notifier().

Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Cc: Gautham R Shenoy <ego@in.ibm.com>
---
 kernel/cpu.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/kernel/cpu.c b/kernel/cpu.c
index 74827bf..329fdcb 100644
--- a/kernel/cpu.c
+++ b/kernel/cpu.c
@@ -136,7 +136,7 @@ static void cpu_hotplug_done(void)
 	mutex_unlock(&cpu_hotplug.lock);
 }
 /* Need to know about CPUs going up/down? */
-int __cpuinit register_cpu_notifier(struct notifier_block *nb)
+int __ref register_cpu_notifier(struct notifier_block *nb)
 {
 	int ret;
 	cpu_maps_update_begin();
-- 
1.5.4.rc3.14.g44397


^ permalink raw reply	[flat|nested] 38+ messages in thread

* [PATCH 09/27] x86: fix section mismatch warning in setup_64.c:nearby_node
  2008-02-17 12:12 [PATCH 0/27] fix section mismatches Sam Ravnborg
                   ` (7 preceding siblings ...)
  2008-02-17 12:22 ` [PATCH 08/27] cpu: fix section mismatch warning in reference to register_cpu_notifier Sam Ravnborg
@ 2008-02-17 12:22 ` Sam Ravnborg
  2008-02-17 13:44   ` Thomas Gleixner
  2008-02-17 12:22 ` [PATCH 10/27] x86: fix section mismatch in setup_64.c:srat_detect_node Sam Ravnborg
                   ` (17 subsequent siblings)
  26 siblings, 1 reply; 38+ messages in thread
From: Sam Ravnborg @ 2008-02-17 12:22 UTC (permalink / raw)
  To: LKML, Andrew Morton
  Cc: Sam Ravnborg, Thomas Gleixner, Ingo Molnar, H. Peter Anvin

Fix following warnings:
WARNING: vmlinux.o(.text+0x1baa2): Section mismatch in reference from the function nearby_node() to the variable .cpuinit.data:apicid_to_node
WARNING: vmlinux.o(.text+0x1bace): Section mismatch in reference from the function nearby_node() to the variable .cpuinit.data:apicid_to_node

nearby_node() were only used by __cpuinit amd_detect_cmp()
So annotating nearby_node() __cpuinit was the trivial fix.

Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Ingo Molnar <mingo@elte.hu>
Cc: H. Peter Anvin <hpa@zytor.com>
---
 arch/x86/kernel/setup_64.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/arch/x86/kernel/setup_64.c b/arch/x86/kernel/setup_64.c
index c0d8208..ff9029d 100644
--- a/arch/x86/kernel/setup_64.c
+++ b/arch/x86/kernel/setup_64.c
@@ -518,7 +518,7 @@ static void __cpuinit display_cacheinfo(struct cpuinfo_x86 *c)
 }
 
 #ifdef CONFIG_NUMA
-static int nearby_node(int apicid)
+static int __cpuinit nearby_node(int apicid)
 {
 	int i, node;
 
-- 
1.5.4.rc3.14.g44397


^ permalink raw reply	[flat|nested] 38+ messages in thread

* [PATCH 10/27] x86: fix section mismatch in setup_64.c:srat_detect_node
  2008-02-17 12:12 [PATCH 0/27] fix section mismatches Sam Ravnborg
                   ` (8 preceding siblings ...)
  2008-02-17 12:22 ` [PATCH 09/27] x86: fix section mismatch warning in setup_64.c:nearby_node Sam Ravnborg
@ 2008-02-17 12:22 ` Sam Ravnborg
  2008-02-17 12:22 ` [PATCH 11/27] acpi: fix section mismatch in processor_core.c:acpi_processor_hotplug_notify Sam Ravnborg
                   ` (16 subsequent siblings)
  26 siblings, 0 replies; 38+ messages in thread
From: Sam Ravnborg @ 2008-02-17 12:22 UTC (permalink / raw)
  To: LKML, Andrew Morton
  Cc: Sam Ravnborg, Thomas Gleixner, Ingo Molnar, H. Peter Anvin

Fix following warnings:
WARNING: vmlinux.o(.text+0x1bb40): Section mismatch in reference from the function srat_detect_node() to the variable .cpuinit.data:apicid_to_node
WARNING: vmlinux.o(.text+0x1bb70): Section mismatch in reference from the function srat_detect_node() to the function .cpuinit.text:numa_set_node()

srat_detect_node() is only used by __cpuinit init_intel().
So the trivial fix is to annotate srat_detect_node() with __cpuinit.

Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Ingo Molnar <mingo@elte.hu>
Cc: H. Peter Anvin <hpa@zytor.com>
---
 arch/x86/kernel/setup_64.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/arch/x86/kernel/setup_64.c b/arch/x86/kernel/setup_64.c
index ff9029d..e186617 100644
--- a/arch/x86/kernel/setup_64.c
+++ b/arch/x86/kernel/setup_64.c
@@ -791,7 +791,7 @@ static int __cpuinit intel_num_cpu_cores(struct cpuinfo_x86 *c)
 		return 1;
 }
 
-static void srat_detect_node(void)
+static void __cpuinit srat_detect_node(void)
 {
 #ifdef CONFIG_NUMA
 	unsigned node;
-- 
1.5.4.rc3.14.g44397


^ permalink raw reply	[flat|nested] 38+ messages in thread

* [PATCH 11/27] acpi: fix section mismatch in processor_core.c:acpi_processor_hotplug_notify
  2008-02-17 12:12 [PATCH 0/27] fix section mismatches Sam Ravnborg
                   ` (9 preceding siblings ...)
  2008-02-17 12:22 ` [PATCH 10/27] x86: fix section mismatch in setup_64.c:srat_detect_node Sam Ravnborg
@ 2008-02-17 12:22 ` Sam Ravnborg
  2008-02-17 12:22 ` [PATCH 12/27] x86: fix section mismatch warning in topology.c:arch_register_cpu Sam Ravnborg
                   ` (15 subsequent siblings)
  26 siblings, 0 replies; 38+ messages in thread
From: Sam Ravnborg @ 2008-02-17 12:22 UTC (permalink / raw)
  To: LKML, Andrew Morton; +Cc: Sam Ravnborg, Len Brown

Fix following warning:
WARNING: vmlinux.o(.text+0x55586c): Section mismatch in reference from the function acpi_processor_hotplug_notify() to the function .cpuinit.text:acpi_processor_start()

acpi_processor_hotplug_notify() may safely reference __cpuinit
stuff as it ids defined inside an ACPI_HOTPLUG_CPU block.
So annotate it __ref to silence the warning.

Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Cc: Len Brown <len.brown@intel.com>
---
 drivers/acpi/processor_core.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/acpi/processor_core.c b/drivers/acpi/processor_core.c
index 75ccf5d..d3cc07f 100644
--- a/drivers/acpi/processor_core.c
+++ b/drivers/acpi/processor_core.c
@@ -881,8 +881,8 @@ int acpi_processor_device_add(acpi_handle handle, struct acpi_device **device)
 	return 0;
 }
 
-static void
-acpi_processor_hotplug_notify(acpi_handle handle, u32 event, void *data)
+static void __ref acpi_processor_hotplug_notify(acpi_handle handle,
+						u32 event, void *data)
 {
 	struct acpi_processor *pr;
 	struct acpi_device *device = NULL;
-- 
1.5.4.rc3.14.g44397


^ permalink raw reply	[flat|nested] 38+ messages in thread

* [PATCH 12/27] x86: fix section mismatch warning in topology.c:arch_register_cpu
  2008-02-17 12:12 [PATCH 0/27] fix section mismatches Sam Ravnborg
                   ` (10 preceding siblings ...)
  2008-02-17 12:22 ` [PATCH 11/27] acpi: fix section mismatch in processor_core.c:acpi_processor_hotplug_notify Sam Ravnborg
@ 2008-02-17 12:22 ` Sam Ravnborg
  2008-02-17 12:22 ` [PATCH 13/27] drivers/base/cpu: fix section mismatch in cpu.c:store_online Sam Ravnborg
                   ` (14 subsequent siblings)
  26 siblings, 0 replies; 38+ messages in thread
From: Sam Ravnborg @ 2008-02-17 12:22 UTC (permalink / raw)
  To: LKML, Andrew Morton
  Cc: Sam Ravnborg, Thomas Gleixner, Ingo Molnar, H. Peter Anvin

Fix following warning:
WARNING: vmlinux.o(.text+0x1dfc3): Section mismatch in reference from the function arch_register_cpu() to the function .cpuinit.text:register_cpu()

arch_register_cpu() is only defined for HOTPLUG_CPU code
so simple fix is to ignore references by annotating the
function __ref.

Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Ingo Molnar <mingo@elte.hu>
Cc: H. Peter Anvin <hpa@zytor.com>
---
 arch/x86/kernel/topology.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/arch/x86/kernel/topology.c b/arch/x86/kernel/topology.c
index a40051b..0fcc95a 100644
--- a/arch/x86/kernel/topology.c
+++ b/arch/x86/kernel/topology.c
@@ -34,7 +34,7 @@
 static DEFINE_PER_CPU(struct x86_cpu, cpu_devices);
 
 #ifdef CONFIG_HOTPLUG_CPU
-int arch_register_cpu(int num)
+int __ref arch_register_cpu(int num)
 {
 	/*
 	 * CPU0 cannot be offlined due to several
-- 
1.5.4.rc3.14.g44397


^ permalink raw reply	[flat|nested] 38+ messages in thread

* [PATCH 13/27] drivers/base/cpu: fix section mismatch in cpu.c:store_online
  2008-02-17 12:12 [PATCH 0/27] fix section mismatches Sam Ravnborg
                   ` (11 preceding siblings ...)
  2008-02-17 12:22 ` [PATCH 12/27] x86: fix section mismatch warning in topology.c:arch_register_cpu Sam Ravnborg
@ 2008-02-17 12:22 ` Sam Ravnborg
  2008-02-17 12:22 ` [PATCH 14/27] hwmon: fix section mismatch in coretemp Sam Ravnborg
                   ` (13 subsequent siblings)
  26 siblings, 0 replies; 38+ messages in thread
From: Sam Ravnborg @ 2008-02-17 12:22 UTC (permalink / raw)
  To: LKML, Andrew Morton; +Cc: Sam Ravnborg, Greg Kroah-Hartman

Fix following warning:
WARNING: vmlinux.o(.text+0x64609c): Section mismatch in reference from the function store_online() to the function .cpuinit.text:cpu_up()

store_online() is defined inside a HOTPLUG_CPU block
so references are OK. Ignore references by annotating
store_online() with __ref.

Note: This is needed because cpu_up() most likely should
not have been __cpuinit but all the hotplug cpu code
misuses the __cpuinit annotation.

Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Cc: Greg Kroah-Hartman <gregkh@suse.de>
---
 drivers/base/cpu.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/base/cpu.c b/drivers/base/cpu.c
index 499b003..3e417a9 100644
--- a/drivers/base/cpu.c
+++ b/drivers/base/cpu.c
@@ -28,7 +28,7 @@ static ssize_t show_online(struct sys_device *dev, char *buf)
 	return sprintf(buf, "%u\n", !!cpu_online(cpu->sysdev.id));
 }
 
-static ssize_t store_online(struct sys_device *dev, const char *buf,
+static ssize_t __ref store_online(struct sys_device *dev, const char *buf,
 			    size_t count)
 {
 	struct cpu *cpu = container_of(dev, struct cpu, sysdev);
@@ -55,7 +55,7 @@ static ssize_t store_online(struct sys_device *dev, const char *buf,
 }
 static SYSDEV_ATTR(online, 0644, show_online, store_online);
 
-static void __devinit register_cpu_control(struct cpu *cpu)
+static void __cpuinit register_cpu_control(struct cpu *cpu)
 {
 	sysdev_create_file(&cpu->sysdev, &attr_online);
 }
-- 
1.5.4.rc3.14.g44397


^ permalink raw reply	[flat|nested] 38+ messages in thread

* [PATCH 14/27] hwmon: fix section mismatch in coretemp
  2008-02-17 12:12 [PATCH 0/27] fix section mismatches Sam Ravnborg
                   ` (12 preceding siblings ...)
  2008-02-17 12:22 ` [PATCH 13/27] drivers/base/cpu: fix section mismatch in cpu.c:store_online Sam Ravnborg
@ 2008-02-17 12:22 ` Sam Ravnborg
  2008-02-17 17:07   ` Mark M. Hoffman
  2008-02-17 12:22 ` [PATCH 15/27] cpufreq: fix section mismatch warnings Sam Ravnborg
                   ` (12 subsequent siblings)
  26 siblings, 1 reply; 38+ messages in thread
From: Sam Ravnborg @ 2008-02-17 12:22 UTC (permalink / raw)
  To: LKML, Andrew Morton; +Cc: Sam Ravnborg, Mark M. Hoffman

Fix following warning:
WARNING: vmlinux.o(.text+0xebfd04): Section mismatch in reference from the function coretemp_cpu_callback() to the function .cpuinit.text:coretemp_device_add()

coretemp_cpu_callback() are only used inside a
HOTPLUG_CPU block so annotate it __cpuinit.
The notifier referencing the function are annotated
__refdata to silence warning from the exit function.
The unregister function do not use the embedded pointer
but clears the variable so the annotation is OK.

Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Cc: Mark M. Hoffman <mhoffman@lightlink.com>
---
 drivers/hwmon/coretemp.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/hwmon/coretemp.c b/drivers/hwmon/coretemp.c
index 3ee60d2..1439432 100644
--- a/drivers/hwmon/coretemp.c
+++ b/drivers/hwmon/coretemp.c
@@ -330,7 +330,7 @@ static void coretemp_device_remove(unsigned int cpu)
 	mutex_unlock(&pdev_list_mutex);
 }
 
-static int coretemp_cpu_callback(struct notifier_block *nfb,
+static int __cpuinit coretemp_cpu_callback(struct notifier_block *nfb,
 				 unsigned long action, void *hcpu)
 {
 	unsigned int cpu = (unsigned long) hcpu;
@@ -347,7 +347,7 @@ static int coretemp_cpu_callback(struct notifier_block *nfb,
 	return NOTIFY_OK;
 }
 
-static struct notifier_block coretemp_cpu_notifier = {
+static struct notifier_block coretemp_cpu_notifier __refdata = {
 	.notifier_call = coretemp_cpu_callback,
 };
 #endif				/* !CONFIG_HOTPLUG_CPU */
-- 
1.5.4.rc3.14.g44397


^ permalink raw reply	[flat|nested] 38+ messages in thread

* [PATCH 15/27] cpufreq: fix section mismatch warnings
  2008-02-17 12:12 [PATCH 0/27] fix section mismatches Sam Ravnborg
                   ` (13 preceding siblings ...)
  2008-02-17 12:22 ` [PATCH 14/27] hwmon: fix section mismatch in coretemp Sam Ravnborg
@ 2008-02-17 12:22 ` Sam Ravnborg
  2008-02-17 12:22 ` [PATCH 16/27] scsi: fix section mismatch in aic94xx Sam Ravnborg
                   ` (11 subsequent siblings)
  26 siblings, 0 replies; 38+ messages in thread
From: Sam Ravnborg @ 2008-02-17 12:22 UTC (permalink / raw)
  To: LKML, Andrew Morton; +Cc: Sam Ravnborg, Dave Jones

Fix the following warnings:
WARNING: vmlinux.o(.text+0xfe6711): Section mismatch in reference from the function cpufreq_unregister_driver() to the variable .cpuinit.data:cpufreq_cpu_notifier
WARNING: vmlinux.o(.text+0xfe68af): Section mismatch in reference from the function cpufreq_register_driver() to the variable .cpuinit.data:cpufreq_cpu_notifier
WARNING: vmlinux.o(.exit.text+0xc4fa): Section mismatch in reference from the function cpufreq_stats_exit() to the variable .cpuinit.data:cpufreq_stat_cpu_notifier

The warnings were casued by references to unregister_hotcpu_notifier()
from normal functions or exit functions.
This is flagged by modpost as a potential error because
it does not know that for the non HOTPLUG_CPU
scenario the unregister_hotcpu_notifier() is a nop.
Silence the warning by replacing the __initdata
annotation with a __refdata annotation.

Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Cc: Dave Jones <davej@codemonkey.org.uk>
---
 drivers/cpufreq/cpufreq.c       |    2 +-
 drivers/cpufreq/cpufreq_stats.c |    2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/cpufreq/cpufreq.c b/drivers/cpufreq/cpufreq.c
index 64926aa..c45768a 100644
--- a/drivers/cpufreq/cpufreq.c
+++ b/drivers/cpufreq/cpufreq.c
@@ -1783,7 +1783,7 @@ static int __cpuinit cpufreq_cpu_callback(struct notifier_block *nfb,
 	return NOTIFY_OK;
 }
 
-static struct notifier_block __cpuinitdata cpufreq_cpu_notifier =
+static struct notifier_block __refdata cpufreq_cpu_notifier =
 {
     .notifier_call = cpufreq_cpu_callback,
 };
diff --git a/drivers/cpufreq/cpufreq_stats.c b/drivers/cpufreq/cpufreq_stats.c
index 1b8312b..070421a 100644
--- a/drivers/cpufreq/cpufreq_stats.c
+++ b/drivers/cpufreq/cpufreq_stats.c
@@ -323,7 +323,7 @@ static int __cpuinit cpufreq_stat_cpu_callback(struct notifier_block *nfb,
 	return NOTIFY_OK;
 }
 
-static struct notifier_block cpufreq_stat_cpu_notifier __cpuinitdata =
+static struct notifier_block cpufreq_stat_cpu_notifier __refdata =
 {
 	.notifier_call = cpufreq_stat_cpu_callback,
 };
-- 
1.5.4.rc3.14.g44397


^ permalink raw reply	[flat|nested] 38+ messages in thread

* [PATCH 16/27] scsi: fix section mismatch in aic94xx
  2008-02-17 12:12 [PATCH 0/27] fix section mismatches Sam Ravnborg
                   ` (14 preceding siblings ...)
  2008-02-17 12:22 ` [PATCH 15/27] cpufreq: fix section mismatch warnings Sam Ravnborg
@ 2008-02-17 12:22 ` Sam Ravnborg
  2008-02-17 12:22 ` [PATCH 17/27] acer-wmi: fix section mismatch warnings Sam Ravnborg
                   ` (10 subsequent siblings)
  26 siblings, 0 replies; 38+ messages in thread
From: Sam Ravnborg @ 2008-02-17 12:22 UTC (permalink / raw)
  To: LKML, Andrew Morton; +Cc: Sam Ravnborg, Gilbert Wu, James Bottomley

Fix following warnings:
WARNING: vmlinux.o(.data+0x17aa88): Section mismatch in reference from the variable asd_pcidev_data to the function .devinit.text:asd_aic9410_setup()
WARNING: vmlinux.o(.data+0x17aa98): Section mismatch in reference from the variable asd_pcidev_data to the function .devinit.text:asd_aic9410_setup()
WARNING: vmlinux.o(.data+0x17aaa8): Section mismatch in reference from the variable asd_pcidev_data to the function .devinit.text:asd_aic9405_setup()

asd_pcidev_data is only used by __devinit asd_pci_probe.
So mark is const and annotate it __devinitconst to fix
the warnings.

Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Cc: Gilbert Wu <gilbert_wu@adaptec.com>
Cc: James Bottomley <James.Bottomley@SteelEye.com>
---
 drivers/scsi/aic94xx/aic94xx_init.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/scsi/aic94xx/aic94xx_init.c b/drivers/scsi/aic94xx/aic94xx_init.c
index 5d761eb..720812f 100644
--- a/drivers/scsi/aic94xx/aic94xx_init.c
+++ b/drivers/scsi/aic94xx/aic94xx_init.c
@@ -531,10 +531,10 @@ static void asd_remove_dev_attrs(struct asd_ha_struct *asd_ha)
 /* The first entry, 0, is used for dynamic ids, the rest for devices
  * we know about.
  */
-static struct asd_pcidev_struct {
+static const struct asd_pcidev_struct {
 	const char * name;
 	int (*setup)(struct asd_ha_struct *asd_ha);
-} asd_pcidev_data[] = {
+} asd_pcidev_data[] __devinitconst = {
 	/* Id 0 is used for dynamic ids. */
 	{ .name  = "Adaptec AIC-94xx SAS/SATA Host Adapter",
 	  .setup = asd_aic9410_setup
-- 
1.5.4.rc3.14.g44397


^ permalink raw reply	[flat|nested] 38+ messages in thread

* [PATCH 17/27] acer-wmi: fix section mismatch warnings
  2008-02-17 12:12 [PATCH 0/27] fix section mismatches Sam Ravnborg
                   ` (15 preceding siblings ...)
  2008-02-17 12:22 ` [PATCH 16/27] scsi: fix section mismatch in aic94xx Sam Ravnborg
@ 2008-02-17 12:22 ` Sam Ravnborg
  2008-02-17 13:03   ` Carlos Corbacho
  2008-02-17 12:22 ` [PATCH 18/27] video: fix section mismatch warnings in uvesafb Sam Ravnborg
                   ` (9 subsequent siblings)
  26 siblings, 1 reply; 38+ messages in thread
From: Sam Ravnborg @ 2008-02-17 12:22 UTC (permalink / raw)
  To: LKML, Andrew Morton; +Cc: Sam Ravnborg, Carlos Corbacho, Len Brown

Fix following warnings:
WARNING: vmlinux.o(.text+0x672615): Section mismatch in reference from the function acer_platform_remove() to the function .exit.text:acer_backlight_exit()
WARNING: vmlinux.o(.devinit.text+0x1e859): Section mismatch in reference from the function acer_platform_probe() to the function .init.text:acer_led_init()
WARNING: vmlinux.o(.devinit.text+0x1e878): Section mismatch in reference from the function acer_platform_probe() to the function .init.text:acer_backlight_init()

Remove __exit annotation from acer_backlight_exit(). We cannot reference
a __exit annotated function from non __exit functions.

acer_led_init() and acer_backlight_init() where both annotated __init but
used from a __devinit function. This would result in an oops should
gcc drop their inlining and the module are hot plugged.

Fix by annotating acer_led_init() and acer_backlight_init() __devinit.

Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Cc: Carlos Corbacho <carlos@strangeworlds.co.uk>
Cc: Len Brown <len.brown@intel.com>
---
 drivers/misc/acer-wmi.c |    6 +++---
 1 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/drivers/misc/acer-wmi.c b/drivers/misc/acer-wmi.c
index d7aea93..cdc733b 100644
--- a/drivers/misc/acer-wmi.c
+++ b/drivers/misc/acer-wmi.c
@@ -756,7 +756,7 @@ static struct led_classdev mail_led = {
 	.brightness_set = mail_led_set,
 };
 
-static int __init acer_led_init(struct device *dev)
+static int __devinit acer_led_init(struct device *dev)
 {
 	return led_classdev_register(dev, &mail_led);
 }
@@ -789,7 +789,7 @@ static struct backlight_ops acer_bl_ops = {
 	.update_status = update_bl_status,
 };
 
-static int __init acer_backlight_init(struct device *dev)
+static int __devinit acer_backlight_init(struct device *dev)
 {
 	struct backlight_device *bd;
 
@@ -808,7 +808,7 @@ static int __init acer_backlight_init(struct device *dev)
 	return 0;
 }
 
-static void __exit acer_backlight_exit(void)
+static void acer_backlight_exit(void)
 {
 	backlight_device_unregister(acer_backlight_device);
 }
-- 
1.5.4.rc3.14.g44397


^ permalink raw reply	[flat|nested] 38+ messages in thread

* [PATCH 18/27] video: fix section mismatch warnings in uvesafb
  2008-02-17 12:12 [PATCH 0/27] fix section mismatches Sam Ravnborg
                   ` (16 preceding siblings ...)
  2008-02-17 12:22 ` [PATCH 17/27] acer-wmi: fix section mismatch warnings Sam Ravnborg
@ 2008-02-17 12:22 ` Sam Ravnborg
  2008-02-17 12:22 ` [PATCH 19/27] tpm: fix section mismatch warning Sam Ravnborg
                   ` (8 subsequent siblings)
  26 siblings, 0 replies; 38+ messages in thread
From: Sam Ravnborg @ 2008-02-17 12:22 UTC (permalink / raw)
  To: LKML, Andrew Morton; +Cc: Sam Ravnborg, Antonino Daplas, Michal Januszewski

Fix following warnings:
WARNING: vmlinux.o(.text+0x51961b): Section mismatch in reference from the function param_set_scroll() to the variable .devinit.data:mtrr
WARNING: vmlinux.o(.text+0x519641): Section mismatch in reference from the function param_set_scroll() to the variable .devinit.data:mtrr
WARNING: vmlinux.o(.text+0x519664): Section mismatch in reference from the function param_set_scroll() to the variable .devinit.data:pmi_setpal
WARNING: vmlinux.o(.text+0x51966a): Section mismatch in reference from the function param_set_scroll() to the variable .devinit.data:pmi_setpal

The function param_set_scroll() referenced the variable
named ypan several times. modpost reported a bogus
variable name but removing the the __devinitdata
annotation of ypan fixed the above warnings.

Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Cc: Antonino Daplas <adaplas@gmail.com>
Cc: Michal Januszewski <spock@gentoo.org>
---
 drivers/video/uvesafb.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/drivers/video/uvesafb.c b/drivers/video/uvesafb.c
index be27b9c..2fb5bb8 100644
--- a/drivers/video/uvesafb.c
+++ b/drivers/video/uvesafb.c
@@ -44,7 +44,7 @@ static struct fb_fix_screeninfo uvesafb_fix __devinitdata = {
 
 static int mtrr		__devinitdata = 3; /* enable mtrr by default */
 static int blank	= 1;		   /* enable blanking by default */
-static int ypan		__devinitdata = 1; /* 0: scroll, 1: ypan, 2: ywrap */
+static int ypan		= 1;		   /* 0: scroll, 1: ypan, 2: ywrap */
 static int pmi_setpal	__devinitdata = 1; /* use PMI for palette changes */
 static int nocrtc	__devinitdata; /* ignore CRTC settings */
 static int noedid	__devinitdata; /* don't try DDC transfers */
-- 
1.5.4.rc3.14.g44397


^ permalink raw reply	[flat|nested] 38+ messages in thread

* [PATCH 19/27] tpm: fix section mismatch warning
  2008-02-17 12:12 [PATCH 0/27] fix section mismatches Sam Ravnborg
                   ` (17 preceding siblings ...)
  2008-02-17 12:22 ` [PATCH 18/27] video: fix section mismatch warnings in uvesafb Sam Ravnborg
@ 2008-02-17 12:22 ` Sam Ravnborg
  2008-02-17 12:22 ` [PATCH 20/27] [ALSA] caiaq - " Sam Ravnborg
                   ` (7 subsequent siblings)
  26 siblings, 0 replies; 38+ messages in thread
From: Sam Ravnborg @ 2008-02-17 12:22 UTC (permalink / raw)
  To: LKML, Andrew Morton; +Cc: Sam Ravnborg, Kylene Hall

Fix following warning:
WARNING: vmlinux.o(.init.text+0x32804): Section mismatch in reference from the function init_nsc() to the function .devexit.text:tpm_nsc_remove()

The function tpm_nsc_remove() are used outside __exit,
so remove the __exit annotation to make sure the
function is always avilable.

Note: Trying to compare this module with other users of
platform_device gve me the impression that this driver
needs some work to match other users.

Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Cc: Kylene Hall <kjhall@us.ibm.com>
---
 drivers/char/tpm/tpm_nsc.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/drivers/char/tpm/tpm_nsc.c b/drivers/char/tpm/tpm_nsc.c
index 6313326..ab18c1e 100644
--- a/drivers/char/tpm/tpm_nsc.c
+++ b/drivers/char/tpm/tpm_nsc.c
@@ -264,7 +264,7 @@ static const struct tpm_vendor_specific tpm_nsc = {
 
 static struct platform_device *pdev = NULL;
 
-static void __devexit tpm_nsc_remove(struct device *dev)
+static void tpm_nsc_remove(struct device *dev)
 {
 	struct tpm_chip *chip = dev_get_drvdata(dev);
 	if ( chip ) {
-- 
1.5.4.rc3.14.g44397


^ permalink raw reply	[flat|nested] 38+ messages in thread

* [PATCH 20/27] [ALSA] caiaq - fix section mismatch warning
  2008-02-17 12:12 [PATCH 0/27] fix section mismatches Sam Ravnborg
                   ` (18 preceding siblings ...)
  2008-02-17 12:22 ` [PATCH 19/27] tpm: fix section mismatch warning Sam Ravnborg
@ 2008-02-17 12:22 ` Sam Ravnborg
  2008-02-18 10:35   ` Takashi Iwai
  2008-02-17 12:22 ` [PATCH 21/27] x86: fix section mismatch in srat_64.c:reserve_hotadd Sam Ravnborg
                   ` (6 subsequent siblings)
  26 siblings, 1 reply; 38+ messages in thread
From: Sam Ravnborg @ 2008-02-17 12:22 UTC (permalink / raw)
  To: LKML, Andrew Morton
  Cc: Sam Ravnborg, Daniel Mack, Takashi Iwai, Jaroslav Kysela

Fix following warning:
WARNING: vmlinux.o(.text+0x11ec01a): Section mismatch in reference from the function setup_card() to the function .devinit.text:snd_usb_caiaq_control_init()

setup_card() are only used by init_card().
init_card() are only used by snd_probe()
snd_probe() are used for the .probe parameter in usb_driver.probe

Annotate them all __devinit to fix the warning.

Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Cc: Daniel Mack <daniel@caiaq.de>
Cc: Takashi Iwai <tiwai@suse.de>
Cc: Jaroslav Kysela <perex@perex.cz>
---
 sound/usb/caiaq/caiaq-device.c |    6 +++---
 1 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/sound/usb/caiaq/caiaq-device.c b/sound/usb/caiaq/caiaq-device.c
index 58d25e4..7c44a2c 100644
--- a/sound/usb/caiaq/caiaq-device.c
+++ b/sound/usb/caiaq/caiaq-device.c
@@ -245,7 +245,7 @@ int snd_usb_caiaq_set_auto_msg (struct snd_usb_caiaqdev *dev,
 					  tmp, sizeof(tmp));
 }
 
-static void setup_card(struct snd_usb_caiaqdev *dev)
+static void __devinit setup_card(struct snd_usb_caiaqdev *dev)
 {
 	int ret;
 	char val[4];
@@ -359,7 +359,7 @@ static struct snd_card* create_card(struct usb_device* usb_dev)
 	return card;
 }
 
-static int init_card(struct snd_usb_caiaqdev *dev)
+static int __devinit init_card(struct snd_usb_caiaqdev *dev)
 {
 	char *c;
 	struct usb_device *usb_dev = dev->chip.dev;
@@ -428,7 +428,7 @@ static int init_card(struct snd_usb_caiaqdev *dev)
 	return 0;
 }
 
-static int snd_probe(struct usb_interface *intf, 
+static int __devinit snd_probe(struct usb_interface *intf, 
 		     const struct usb_device_id *id)
 {
 	int ret;
-- 
1.5.4.rc3.14.g44397


^ permalink raw reply	[flat|nested] 38+ messages in thread

* [PATCH 21/27] x86: fix section mismatch in srat_64.c:reserve_hotadd
  2008-02-17 12:12 [PATCH 0/27] fix section mismatches Sam Ravnborg
                   ` (19 preceding siblings ...)
  2008-02-17 12:22 ` [PATCH 20/27] [ALSA] caiaq - " Sam Ravnborg
@ 2008-02-17 12:22 ` Sam Ravnborg
  2008-02-17 12:22 ` [PATCH 22/27] x86: fix section mismatch in head_64.S:initial_code Sam Ravnborg
                   ` (5 subsequent siblings)
  26 siblings, 0 replies; 38+ messages in thread
From: Sam Ravnborg @ 2008-02-17 12:22 UTC (permalink / raw)
  To: LKML, Andrew Morton
  Cc: Sam Ravnborg, Thomas Gleixner, Ingo Molnar, H. Peter Anvin

Fix following warning:
WARNING: vmlinux.o(.text+0x388cc): Section mismatch in reference from the function reserve_hotadd() to the function .init.text:absent_pages_in_range()

reserve_hotadd() are only used by __init acpi_numa_memory_affinity_init().
Annotate reserve_hotadd() with __init is the trivial fix.

Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Ingo Molnar <mingo@elte.hu>
Cc: H. Peter Anvin <hpa@zytor.com>
---
 arch/x86/mm/srat_64.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/arch/x86/mm/srat_64.c b/arch/x86/mm/srat_64.c
index ecd91ea..70eb153 100644
--- a/arch/x86/mm/srat_64.c
+++ b/arch/x86/mm/srat_64.c
@@ -166,7 +166,7 @@ static inline int save_add_info(void) {return 0;}
  * Both SPARSE and RESERVE need nodes_add information.
  * This code supports one contiguous hot add area per node.
  */
-static int reserve_hotadd(int node, unsigned long start, unsigned long end)
+static int __init reserve_hotadd(int node, unsigned long start, unsigned long end)
 {
 	unsigned long s_pfn = start >> PAGE_SHIFT;
 	unsigned long e_pfn = end >> PAGE_SHIFT;
-- 
1.5.4.rc3.14.g44397


^ permalink raw reply	[flat|nested] 38+ messages in thread

* [PATCH 22/27] x86: fix section mismatch in head_64.S:initial_code
  2008-02-17 12:12 [PATCH 0/27] fix section mismatches Sam Ravnborg
                   ` (20 preceding siblings ...)
  2008-02-17 12:22 ` [PATCH 21/27] x86: fix section mismatch in srat_64.c:reserve_hotadd Sam Ravnborg
@ 2008-02-17 12:22 ` Sam Ravnborg
  2008-02-17 12:23 ` [PATCH 23/27] x86: annotate pci/common.s:pci_scan_bus_with_sysdata with __devinit Sam Ravnborg
                   ` (4 subsequent siblings)
  26 siblings, 0 replies; 38+ messages in thread
From: Sam Ravnborg @ 2008-02-17 12:22 UTC (permalink / raw)
  To: LKML, Andrew Morton
  Cc: Sam Ravnborg, Thomas Gleixner, Ingo Molnar, H. Peter Anvin

Fix following warning:
WARNING: vmlinux.o(.cpuinit.data+0x0): Section mismatch in reference from the variable initial_code to the function .init.text:x86_64_start_kernel()

initial_code are initially used to hold a function pointer
from __init and later from __cpuinit. This confuses modpost
and changing initial_code to REFDATA silence the warning.
(But now we do not discard the variable anymore).

Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Ingo Molnar <mingo@elte.hu>
Cc: H. Peter Anvin <hpa@zytor.com>
---
 arch/x86/kernel/head_64.S |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/arch/x86/kernel/head_64.S b/arch/x86/kernel/head_64.S
index 09b38d5..220daaa 100644
--- a/arch/x86/kernel/head_64.S
+++ b/arch/x86/kernel/head_64.S
@@ -250,7 +250,7 @@ ENTRY(secondary_startup_64)
 	lretq
 
 	/* SMP bootup changes these two */
-	__CPUINITDATA
+	__REFDATA
 	.align	8
 	ENTRY(initial_code)
 	.quad	x86_64_start_kernel
-- 
1.5.4.rc3.14.g44397


^ permalink raw reply	[flat|nested] 38+ messages in thread

* [PATCH 23/27] x86: annotate pci/common.s:pci_scan_bus_with_sysdata with __devinit
  2008-02-17 12:12 [PATCH 0/27] fix section mismatches Sam Ravnborg
                   ` (21 preceding siblings ...)
  2008-02-17 12:22 ` [PATCH 22/27] x86: fix section mismatch in head_64.S:initial_code Sam Ravnborg
@ 2008-02-17 12:23 ` Sam Ravnborg
  2008-02-17 12:23 ` [PATCH 24/27] pcmcia: annotate cb_alloc with __ref Sam Ravnborg
                   ` (3 subsequent siblings)
  26 siblings, 0 replies; 38+ messages in thread
From: Sam Ravnborg @ 2008-02-17 12:23 UTC (permalink / raw)
  To: LKML, Andrew Morton
  Cc: Sam Ravnborg, Thomas Gleixner, Ingo Molnar, H. Peter Anvin

pci_scan_bus_with_sysdata() is only used from either __init
or __devinit functions so annotate it __devinit to match the usage.

Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Ingo Molnar <mingo@elte.hu>
Cc: H. Peter Anvin <hpa@zytor.com>
---
 arch/x86/pci/common.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/arch/x86/pci/common.c b/arch/x86/pci/common.c
index b7c67a1..7b6e3bb 100644
--- a/arch/x86/pci/common.c
+++ b/arch/x86/pci/common.c
@@ -541,7 +541,7 @@ void pcibios_disable_device (struct pci_dev *dev)
 		pcibios_disable_irq(dev);
 }
 
-struct pci_bus *pci_scan_bus_with_sysdata(int busno)
+struct pci_bus *__devinit pci_scan_bus_with_sysdata(int busno)
 {
 	struct pci_bus *bus = NULL;
 	struct pci_sysdata *sd;
-- 
1.5.4.rc3.14.g44397


^ permalink raw reply	[flat|nested] 38+ messages in thread

* [PATCH 24/27] pcmcia: annotate cb_alloc with __ref
  2008-02-17 12:12 [PATCH 0/27] fix section mismatches Sam Ravnborg
                   ` (22 preceding siblings ...)
  2008-02-17 12:23 ` [PATCH 23/27] x86: annotate pci/common.s:pci_scan_bus_with_sysdata with __devinit Sam Ravnborg
@ 2008-02-17 12:23 ` Sam Ravnborg
  2008-02-17 12:23 ` [PATCH 25/27] pci: fix section mismatch warning in pci_scan_child_bus Sam Ravnborg
                   ` (2 subsequent siblings)
  26 siblings, 0 replies; 38+ messages in thread
From: Sam Ravnborg @ 2008-02-17 12:23 UTC (permalink / raw)
  To: LKML, Andrew Morton; +Cc: Sam Ravnborg, Dominik Brodowski

cb_alloc() uses a function (pci_scan_slot) that will
be annotated __devinit.
Annotate cb_alloc() with __ref to tell modpost to ignore
this reference.

Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Cc: Dominik Brodowski <linux@dominikbrodowski.net>
---
 drivers/pcmcia/cardbus.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/drivers/pcmcia/cardbus.c b/drivers/pcmcia/cardbus.c
index 714baae..fb2f38d 100644
--- a/drivers/pcmcia/cardbus.c
+++ b/drivers/pcmcia/cardbus.c
@@ -209,7 +209,7 @@ static void cardbus_assign_irqs(struct pci_bus *bus, int irq)
 	}
 }
 
-int cb_alloc(struct pcmcia_socket * s)
+int __ref cb_alloc(struct pcmcia_socket * s)
 {
 	struct pci_bus *bus = s->cb_dev->subordinate;
 	struct pci_dev *dev;
-- 
1.5.4.rc3.14.g44397


^ permalink raw reply	[flat|nested] 38+ messages in thread

* [PATCH 25/27] pci: fix section mismatch warning in pci_scan_child_bus
  2008-02-17 12:12 [PATCH 0/27] fix section mismatches Sam Ravnborg
                   ` (23 preceding siblings ...)
  2008-02-17 12:23 ` [PATCH 24/27] pcmcia: annotate cb_alloc with __ref Sam Ravnborg
@ 2008-02-17 12:23 ` Sam Ravnborg
  2008-02-17 12:23 ` [PATCH 26/27] acpi: fix section mismatch in acpi_pci_root_add Sam Ravnborg
  2008-02-17 12:23 ` [PATCH 27/27] [ALSA] hdsp - fix section mismatch warnings Sam Ravnborg
  26 siblings, 0 replies; 38+ messages in thread
From: Sam Ravnborg @ 2008-02-17 12:23 UTC (permalink / raw)
  To: LKML, Andrew Morton; +Cc: Sam Ravnborg, Greg KH

Fix following warning:
WARNING: vmlinux.o(.text+0x47bdb1): Section mismatch in reference from the function pci_scan_child_bus() to the function .devinit.text:pcibios_fixup_bus()

We had plenty of functions that could be annotated __devinit but
due to the former restriction that annotated symbols could not
be annotated they were not so.
So annotate these function and fix the references from the
pci/hotplug/* code to silence the resuting warnings.

Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Cc: Greg KH <greg@kroah.com>
---
 drivers/pci/hotplug-pci.c              |    2 +-
 drivers/pci/hotplug/acpiphp_glue.c     |    2 +-
 drivers/pci/hotplug/cpci_hotplug_pci.c |    2 +-
 drivers/pci/hotplug/pciehp_pci.c       |    2 +-
 drivers/pci/hotplug/shpchp_pci.c       |    2 +-
 drivers/pci/probe.c                    |    8 ++++----
 6 files changed, 9 insertions(+), 9 deletions(-)

diff --git a/drivers/pci/hotplug-pci.c b/drivers/pci/hotplug-pci.c
index a590ef6..4d4a644 100644
--- a/drivers/pci/hotplug-pci.c
+++ b/drivers/pci/hotplug-pci.c
@@ -4,7 +4,7 @@
 #include "pci.h"
 
 
-unsigned int pci_do_scan_bus(struct pci_bus *bus)
+unsigned int __devinit pci_do_scan_bus(struct pci_bus *bus)
 {
 	unsigned int max;
 
diff --git a/drivers/pci/hotplug/acpiphp_glue.c b/drivers/pci/hotplug/acpiphp_glue.c
index cf22f9e..5e50008 100644
--- a/drivers/pci/hotplug/acpiphp_glue.c
+++ b/drivers/pci/hotplug/acpiphp_glue.c
@@ -1085,7 +1085,7 @@ static int acpiphp_bus_trim(acpi_handle handle)
  * This function should be called per *physical slot*,
  * not per each slot object in ACPI namespace.
  */
-static int enable_device(struct acpiphp_slot *slot)
+static int __ref enable_device(struct acpiphp_slot *slot)
 {
 	struct pci_dev *dev;
 	struct pci_bus *bus = slot->bridge->pci_bus;
diff --git a/drivers/pci/hotplug/cpci_hotplug_pci.c b/drivers/pci/hotplug/cpci_hotplug_pci.c
index 5e9be44..dddac96 100644
--- a/drivers/pci/hotplug/cpci_hotplug_pci.c
+++ b/drivers/pci/hotplug/cpci_hotplug_pci.c
@@ -250,7 +250,7 @@ int cpci_led_off(struct slot* slot)
  * Device configuration functions
  */
 
-int cpci_configure_slot(struct slot* slot)
+int __ref cpci_configure_slot(struct slot* slot)
 {
 	struct pci_bus *parent;
 	int fn;
diff --git a/drivers/pci/hotplug/pciehp_pci.c b/drivers/pci/hotplug/pciehp_pci.c
index dd50713..9372a84 100644
--- a/drivers/pci/hotplug/pciehp_pci.c
+++ b/drivers/pci/hotplug/pciehp_pci.c
@@ -167,7 +167,7 @@ static void program_fw_provided_values(struct pci_dev *dev)
 	}
 }
 
-static int pciehp_add_bridge(struct pci_dev *dev)
+static int __ref pciehp_add_bridge(struct pci_dev *dev)
 {
 	struct pci_bus *parent = dev->bus;
 	int pass, busnr, start = parent->secondary;
diff --git a/drivers/pci/hotplug/shpchp_pci.c b/drivers/pci/hotplug/shpchp_pci.c
index 0a6b25e..a69a215 100644
--- a/drivers/pci/hotplug/shpchp_pci.c
+++ b/drivers/pci/hotplug/shpchp_pci.c
@@ -96,7 +96,7 @@ static void program_fw_provided_values(struct pci_dev *dev)
 	}
 }
 
-int shpchp_configure_device(struct slot *p_slot)
+int __ref shpchp_configure_device(struct slot *p_slot)
 {
 	struct pci_dev *dev;
 	struct pci_bus *parent = p_slot->ctrl->pci_dev->subordinate;
diff --git a/drivers/pci/probe.c b/drivers/pci/probe.c
index 4d23b9f..5ffd610 100644
--- a/drivers/pci/probe.c
+++ b/drivers/pci/probe.c
@@ -286,7 +286,7 @@ static void pci_read_bases(struct pci_dev *dev, unsigned int howmany, int rom)
 	}
 }
 
-void pci_read_bridge_bases(struct pci_bus *child)
+void __devinit pci_read_bridge_bases(struct pci_bus *child)
 {
 	struct pci_dev *dev = child->self;
 	u8 io_base_lo, io_limit_lo;
@@ -472,7 +472,7 @@ static void pci_fixup_parent_subordinate_busnr(struct pci_bus *child, int max)
  * them, we proceed to assigning numbers to the remaining buses in
  * order to avoid overlaps between old and new bus numbers.
  */
-int pci_scan_bridge(struct pci_bus *bus, struct pci_dev * dev, int max, int pass)
+int __devinit pci_scan_bridge(struct pci_bus *bus, struct pci_dev * dev, int max, int pass)
 {
 	struct pci_bus *child;
 	int is_cardbus = (dev->hdr_type == PCI_HEADER_TYPE_CARDBUS);
@@ -1008,7 +1008,7 @@ int pci_scan_slot(struct pci_bus *bus, int devfn)
 	return nr;
 }
 
-unsigned int pci_scan_child_bus(struct pci_bus *bus)
+unsigned int __devinit pci_scan_child_bus(struct pci_bus *bus)
 {
 	unsigned int devfn, pass, max = bus->secondary;
 	struct pci_dev *dev;
@@ -1116,7 +1116,7 @@ err_out:
 	return NULL;
 }
 
-struct pci_bus *pci_scan_bus_parented(struct device *parent,
+struct pci_bus * __devinit pci_scan_bus_parented(struct device *parent,
 		int bus, struct pci_ops *ops, void *sysdata)
 {
 	struct pci_bus *b;
-- 
1.5.4.rc3.14.g44397


^ permalink raw reply	[flat|nested] 38+ messages in thread

* [PATCH 26/27] acpi: fix section mismatch in acpi_pci_root_add
  2008-02-17 12:12 [PATCH 0/27] fix section mismatches Sam Ravnborg
                   ` (24 preceding siblings ...)
  2008-02-17 12:23 ` [PATCH 25/27] pci: fix section mismatch warning in pci_scan_child_bus Sam Ravnborg
@ 2008-02-17 12:23 ` Sam Ravnborg
  2008-02-17 12:23 ` [PATCH 27/27] [ALSA] hdsp - fix section mismatch warnings Sam Ravnborg
  26 siblings, 0 replies; 38+ messages in thread
From: Sam Ravnborg @ 2008-02-17 12:23 UTC (permalink / raw)
  To: LKML, Andrew Morton; +Cc: Sam Ravnborg, Len Brown

Fix following warning:
WARNING: vmlinux.o(.text+0x550e85): Section mismatch in reference from the function acpi_pci_root_add() to the function .devinit.text:pci_acpi_scan_root()

acpi_pci_root_add uses a __devinit annotated function and
it looks like annotating it __devinit too is the correct fix.

Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Cc: Len Brown <len.brown@intel.com>
---
 drivers/acpi/pci_root.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/drivers/acpi/pci_root.c b/drivers/acpi/pci_root.c
index f14ff1f..c3fed31 100644
--- a/drivers/acpi/pci_root.c
+++ b/drivers/acpi/pci_root.c
@@ -184,7 +184,7 @@ static void acpi_pci_bridge_scan(struct acpi_device *device)
 		}
 }
 
-static int acpi_pci_root_add(struct acpi_device *device)
+static int __devinit acpi_pci_root_add(struct acpi_device *device)
 {
 	int result = 0;
 	struct acpi_pci_root *root = NULL;
-- 
1.5.4.rc3.14.g44397


^ permalink raw reply	[flat|nested] 38+ messages in thread

* [PATCH 27/27] [ALSA] hdsp - fix section mismatch warnings
  2008-02-17 12:12 [PATCH 0/27] fix section mismatches Sam Ravnborg
                   ` (25 preceding siblings ...)
  2008-02-17 12:23 ` [PATCH 26/27] acpi: fix section mismatch in acpi_pci_root_add Sam Ravnborg
@ 2008-02-17 12:23 ` Sam Ravnborg
  2008-02-18  6:43   ` Takashi Iwai
  26 siblings, 1 reply; 38+ messages in thread
From: Sam Ravnborg @ 2008-02-17 12:23 UTC (permalink / raw)
  To: LKML, Andrew Morton; +Cc: Sam Ravnborg, Takashi Iwai, Jaroslav Kysela

Fix following warnings:
WARNING: sound/pci/rme9652/snd-hdsp.o(.text+0x34bc): Section mismatch in reference from the function hdsp_check_for_firmware() to the function .devinit.text:hdsp_request_fw_loader()
WARNING: sound/pci/rme9652/snd-hdsp.o(.text+0x4ac6): Section mismatch in reference from the function snd_hdsp_proc_read() to the function .devinit.text:hdsp_request_fw_loader()

Calling hdsp_request_fw_loader() were triggered from /proc
so this is not restricted to init or hotplug.
So removing the __devexit annotation of this function
and one of the functions fix the warning.

Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Cc: Takashi Iwai <tiwai@suse.de>
Cc: Jaroslav Kysela <perex@perex.cz>
---
 sound/pci/rme9652/hdsp.c |    6 +++---
 1 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/sound/pci/rme9652/hdsp.c b/sound/pci/rme9652/hdsp.c
index c2bd438..6f07a25 100644
--- a/sound/pci/rme9652/hdsp.c
+++ b/sound/pci/rme9652/hdsp.c
@@ -745,7 +745,7 @@ static int hdsp_get_iobox_version (struct hdsp *hdsp)
 
 
 #ifdef HDSP_FW_LOADER
-static int __devinit hdsp_request_fw_loader(struct hdsp *hdsp);
+static int hdsp_request_fw_loader(struct hdsp *hdsp);
 #endif
 
 static int hdsp_check_for_firmware (struct hdsp *hdsp, int load_on_demand)
@@ -4688,7 +4688,7 @@ static struct snd_pcm_ops snd_hdsp_capture_ops = {
 	.copy =		snd_hdsp_capture_copy,
 };
 
-static int __devinit snd_hdsp_create_hwdep(struct snd_card *card,
+static int snd_hdsp_create_hwdep(struct snd_card *card,
 					   struct hdsp *hdsp)
 {
 	struct snd_hwdep *hw;
@@ -4857,7 +4857,7 @@ static int snd_hdsp_create_alsa_devices(struct snd_card *card, struct hdsp *hdsp
 
 #ifdef HDSP_FW_LOADER
 /* load firmware via hotplug fw loader */
-static int __devinit hdsp_request_fw_loader(struct hdsp *hdsp)
+static int hdsp_request_fw_loader(struct hdsp *hdsp)
 {
 	const char *fwfile;
 	const struct firmware *fw;
-- 
1.5.4.rc3.14.g44397


^ permalink raw reply	[flat|nested] 38+ messages in thread

* Re: [PATCH 17/27] acer-wmi: fix section mismatch warnings
  2008-02-17 12:22 ` [PATCH 17/27] acer-wmi: fix section mismatch warnings Sam Ravnborg
@ 2008-02-17 13:03   ` Carlos Corbacho
  2008-02-17 15:05     ` Sam Ravnborg
  0 siblings, 1 reply; 38+ messages in thread
From: Carlos Corbacho @ 2008-02-17 13:03 UTC (permalink / raw)
  To: Sam Ravnborg; +Cc: LKML, Andrew Morton, Len Brown

On Sunday 17 February 2008 12:22:54 Sam Ravnborg wrote:
> Fix following warnings:
> WARNING: vmlinux.o(.text+0x672615): Section mismatch in reference from the
> function acer_platform_remove() to the function
> .exit.text:acer_backlight_exit() WARNING: vmlinux.o(.devinit.text+0x1e859):
> Section mismatch in reference from the function acer_platform_probe() to
> the function .init.text:acer_led_init() WARNING:
> vmlinux.o(.devinit.text+0x1e878): Section mismatch in reference from the
> function acer_platform_probe() to the function
> .init.text:acer_backlight_init()
>
> Remove __exit annotation from acer_backlight_exit(). We cannot reference
> a __exit annotated function from non __exit functions.
>
> acer_led_init() and acer_backlight_init() where both annotated __init but
> used from a __devinit function. This would result in an oops should
> gcc drop their inlining and the module are hot plugged.
>
> Fix by annotating acer_led_init() and acer_backlight_init() __devinit.
>
> Signed-off-by: Sam Ravnborg <sam@ravnborg.org>

Signed-off-by: Carlos Corbacho <carlos@strangeworlds.co.uk>

> Cc: Len Brown <len.brown@intel.com>

Len, can you apply this to acpi-test? (Unless Andrew wants to take all these 
through -mm?)

-Carlos
-- 
E-Mail: carlos@strangeworlds.co.uk
Web: strangeworlds.co.uk
GPG Key ID: 0x23EE722D

^ permalink raw reply	[flat|nested] 38+ messages in thread

* Re: [PATCH 09/27] x86: fix section mismatch warning in setup_64.c:nearby_node
  2008-02-17 12:22 ` [PATCH 09/27] x86: fix section mismatch warning in setup_64.c:nearby_node Sam Ravnborg
@ 2008-02-17 13:44   ` Thomas Gleixner
  2008-02-17 15:05     ` Sam Ravnborg
  0 siblings, 1 reply; 38+ messages in thread
From: Thomas Gleixner @ 2008-02-17 13:44 UTC (permalink / raw)
  To: Sam Ravnborg; +Cc: LKML, Andrew Morton, Ingo Molnar, H. Peter Anvin

on Sun, 17 Feb 2008, Sam Ravnborg wrote:

> Fix following warnings:
> WARNING: vmlinux.o(.text+0x1baa2): Section mismatch in reference from the function nearby_node() to the variable .cpuinit.data:apicid_to_node
> WARNING: vmlinux.o(.text+0x1bace): Section mismatch in reference from the function nearby_node() to the variable .cpuinit.data:apicid_to_node
> 
> nearby_node() were only used by __cpuinit amd_detect_cmp()
> So annotating nearby_node() __cpuinit was the trivial fix.

Applied the x86 ones.

Thanks,

	tglx

^ permalink raw reply	[flat|nested] 38+ messages in thread

* Re: [PATCH 09/27] x86: fix section mismatch warning in setup_64.c:nearby_node
  2008-02-17 13:44   ` Thomas Gleixner
@ 2008-02-17 15:05     ` Sam Ravnborg
  0 siblings, 0 replies; 38+ messages in thread
From: Sam Ravnborg @ 2008-02-17 15:05 UTC (permalink / raw)
  To: Thomas Gleixner; +Cc: LKML, Andrew Morton, Ingo Molnar, H. Peter Anvin

On Sun, Feb 17, 2008 at 02:44:23PM +0100, Thomas Gleixner wrote:
> on Sun, 17 Feb 2008, Sam Ravnborg wrote:
> 
> > Fix following warnings:
> > WARNING: vmlinux.o(.text+0x1baa2): Section mismatch in reference from the function nearby_node() to the variable .cpuinit.data:apicid_to_node
> > WARNING: vmlinux.o(.text+0x1bace): Section mismatch in reference from the function nearby_node() to the variable .cpuinit.data:apicid_to_node
> > 
> > nearby_node() were only used by __cpuinit amd_detect_cmp()
> > So annotating nearby_node() __cpuinit was the trivial fix.
> 
> Applied the x86 ones.

Thanks Thomas.

	Sam

^ permalink raw reply	[flat|nested] 38+ messages in thread

* Re: [PATCH 17/27] acer-wmi: fix section mismatch warnings
  2008-02-17 13:03   ` Carlos Corbacho
@ 2008-02-17 15:05     ` Sam Ravnborg
  0 siblings, 0 replies; 38+ messages in thread
From: Sam Ravnborg @ 2008-02-17 15:05 UTC (permalink / raw)
  To: Carlos Corbacho; +Cc: LKML, Andrew Morton, Len Brown

On Sun, Feb 17, 2008 at 01:03:55PM +0000, Carlos Corbacho wrote:
> On Sunday 17 February 2008 12:22:54 Sam Ravnborg wrote:
> > Fix following warnings:
> > WARNING: vmlinux.o(.text+0x672615): Section mismatch in reference from the
> > function acer_platform_remove() to the function
> > .exit.text:acer_backlight_exit() WARNING: vmlinux.o(.devinit.text+0x1e859):
> > Section mismatch in reference from the function acer_platform_probe() to
> > the function .init.text:acer_led_init() WARNING:
> > vmlinux.o(.devinit.text+0x1e878): Section mismatch in reference from the
> > function acer_platform_probe() to the function
> > .init.text:acer_backlight_init()
> >
> > Remove __exit annotation from acer_backlight_exit(). We cannot reference
> > a __exit annotated function from non __exit functions.
> >
> > acer_led_init() and acer_backlight_init() where both annotated __init but
> > used from a __devinit function. This would result in an oops should
> > gcc drop their inlining and the module are hot plugged.
> >
> > Fix by annotating acer_led_init() and acer_backlight_init() __devinit.
> >
> > Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
> 
> Signed-off-by: Carlos Corbacho <carlos@strangeworlds.co.uk>
> 
> > Cc: Len Brown <len.brown@intel.com>
> 
> Len, can you apply this to acpi-test? (Unless Andrew wants to take all these 
> through -mm?)

Thanks for the quick reply Carlos.

	Sam

^ permalink raw reply	[flat|nested] 38+ messages in thread

* Re: [PATCH 14/27] hwmon: fix section mismatch in coretemp
  2008-02-17 12:22 ` [PATCH 14/27] hwmon: fix section mismatch in coretemp Sam Ravnborg
@ 2008-02-17 17:07   ` Mark M. Hoffman
  2008-02-17 17:20     ` Sam Ravnborg
  0 siblings, 1 reply; 38+ messages in thread
From: Mark M. Hoffman @ 2008-02-17 17:07 UTC (permalink / raw)
  To: Sam Ravnborg; +Cc: LKML, Andrew Morton, lm-sensors

Hi Sam:

* Sam Ravnborg <sam@ravnborg.org> [2008-02-17 13:22:51 +0100]:
> Fix following warning:
> WARNING: vmlinux.o(.text+0xebfd04): Section mismatch in reference from the function coretemp_cpu_callback() to the function .cpuinit.text:coretemp_device_add()
> 
> coretemp_cpu_callback() are only used inside a
> HOTPLUG_CPU block so annotate it __cpuinit.
> The notifier referencing the function are annotated
> __refdata to silence warning from the exit function.
> The unregister function do not use the embedded pointer
> but clears the variable so the annotation is OK.
> 
> Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
> Cc: Mark M. Hoffman <mhoffman@lightlink.com>
> ---
>  drivers/hwmon/coretemp.c |    4 ++--
>  1 files changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/hwmon/coretemp.c b/drivers/hwmon/coretemp.c
> index 3ee60d2..1439432 100644
> --- a/drivers/hwmon/coretemp.c
> +++ b/drivers/hwmon/coretemp.c
> @@ -330,7 +330,7 @@ static void coretemp_device_remove(unsigned int cpu)
>  	mutex_unlock(&pdev_list_mutex);
>  }
>  
> -static int coretemp_cpu_callback(struct notifier_block *nfb,
> +static int __cpuinit coretemp_cpu_callback(struct notifier_block *nfb,
>  				 unsigned long action, void *hcpu)
>  {
>  	unsigned int cpu = (unsigned long) hcpu;
> @@ -347,7 +347,7 @@ static int coretemp_cpu_callback(struct notifier_block *nfb,
>  	return NOTIFY_OK;
>  }
>  
> -static struct notifier_block coretemp_cpu_notifier = {
> +static struct notifier_block coretemp_cpu_notifier __refdata = {
>  	.notifier_call = coretemp_cpu_callback,
>  };
>  #endif				/* !CONFIG_HOTPLUG_CPU */
> -- 
> 1.5.4.rc3.14.g44397

This rings a bell... hmmm, commit 59a35bafb223bbb0553ba1a3bb9280bda668a8d8.
AFAICT the warning is a false positive, but whatever.

Applied to hwmon-2.6.git/testing, thanks.

-- 
Mark M. Hoffman
mhoffman@lightlink.com


^ permalink raw reply	[flat|nested] 38+ messages in thread

* Re: [PATCH 14/27] hwmon: fix section mismatch in coretemp
  2008-02-17 17:07   ` Mark M. Hoffman
@ 2008-02-17 17:20     ` Sam Ravnborg
  0 siblings, 0 replies; 38+ messages in thread
From: Sam Ravnborg @ 2008-02-17 17:20 UTC (permalink / raw)
  To: Mark M. Hoffman; +Cc: LKML, Andrew Morton, lm-sensors

> 
> This rings a bell... hmmm, commit 59a35bafb223bbb0553ba1a3bb9280bda668a8d8.
> AFAICT the warning is a false positive, but whatever.

Yes it is - the __refdata is there only to silence modpost.

> 
> Applied to hwmon-2.6.git/testing, thanks.

Thanks,

	Sam

^ permalink raw reply	[flat|nested] 38+ messages in thread

* Re: [PATCH 27/27] [ALSA] hdsp - fix section mismatch warnings
  2008-02-17 12:23 ` [PATCH 27/27] [ALSA] hdsp - fix section mismatch warnings Sam Ravnborg
@ 2008-02-18  6:43   ` Takashi Iwai
  2008-02-18  7:45     ` Sam Ravnborg
  0 siblings, 1 reply; 38+ messages in thread
From: Takashi Iwai @ 2008-02-18  6:43 UTC (permalink / raw)
  To: Sam Ravnborg; +Cc: LKML, Andrew Morton, Jaroslav Kysela

At Sun, 17 Feb 2008 13:23:04 +0100,
Sam Ravnborg wrote:
> 
> Fix following warnings:
> WARNING: sound/pci/rme9652/snd-hdsp.o(.text+0x34bc): Section mismatch in reference from the function hdsp_check_for_firmware() to the function .devinit.text:hdsp_request_fw_loader()
> WARNING: sound/pci/rme9652/snd-hdsp.o(.text+0x4ac6): Section mismatch in reference from the function snd_hdsp_proc_read() to the function .devinit.text:hdsp_request_fw_loader()
> 
> Calling hdsp_request_fw_loader() were triggered from /proc
> so this is not restricted to init or hotplug.
> So removing the __devexit annotation of this function
> and one of the functions fix the warning.

Thanks.  The exactly same fix has been already on ALSA tree since
weeks ago, but was never pushed...


Takashi

> 
> Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
> Cc: Takashi Iwai <tiwai@suse.de>
> Cc: Jaroslav Kysela <perex@perex.cz>
> ---
>  sound/pci/rme9652/hdsp.c |    6 +++---
>  1 files changed, 3 insertions(+), 3 deletions(-)
> 
> diff --git a/sound/pci/rme9652/hdsp.c b/sound/pci/rme9652/hdsp.c
> index c2bd438..6f07a25 100644
> --- a/sound/pci/rme9652/hdsp.c
> +++ b/sound/pci/rme9652/hdsp.c
> @@ -745,7 +745,7 @@ static int hdsp_get_iobox_version (struct hdsp *hdsp)
>  
>  
>  #ifdef HDSP_FW_LOADER
> -static int __devinit hdsp_request_fw_loader(struct hdsp *hdsp);
> +static int hdsp_request_fw_loader(struct hdsp *hdsp);
>  #endif
>  
>  static int hdsp_check_for_firmware (struct hdsp *hdsp, int load_on_demand)
> @@ -4688,7 +4688,7 @@ static struct snd_pcm_ops snd_hdsp_capture_ops = {
>  	.copy =		snd_hdsp_capture_copy,
>  };
>  
> -static int __devinit snd_hdsp_create_hwdep(struct snd_card *card,
> +static int snd_hdsp_create_hwdep(struct snd_card *card,
>  					   struct hdsp *hdsp)
>  {
>  	struct snd_hwdep *hw;
> @@ -4857,7 +4857,7 @@ static int snd_hdsp_create_alsa_devices(struct snd_card *card, struct hdsp *hdsp
>  
>  #ifdef HDSP_FW_LOADER
>  /* load firmware via hotplug fw loader */
> -static int __devinit hdsp_request_fw_loader(struct hdsp *hdsp)
> +static int hdsp_request_fw_loader(struct hdsp *hdsp)
>  {
>  	const char *fwfile;
>  	const struct firmware *fw;
> -- 
> 1.5.4.rc3.14.g44397
> 

^ permalink raw reply	[flat|nested] 38+ messages in thread

* Re: [PATCH 27/27] [ALSA] hdsp - fix section mismatch warnings
  2008-02-18  6:43   ` Takashi Iwai
@ 2008-02-18  7:45     ` Sam Ravnborg
  2008-02-18 10:36       ` Takashi Iwai
  0 siblings, 1 reply; 38+ messages in thread
From: Sam Ravnborg @ 2008-02-18  7:45 UTC (permalink / raw)
  To: Takashi Iwai; +Cc: LKML, Andrew Morton, Jaroslav Kysela

On Mon, Feb 18, 2008 at 07:43:32AM +0100, Takashi Iwai wrote:
> At Sun, 17 Feb 2008 13:23:04 +0100,
> Sam Ravnborg wrote:
> > 
> > Fix following warnings:
> > WARNING: sound/pci/rme9652/snd-hdsp.o(.text+0x34bc): Section mismatch in reference from the function hdsp_check_for_firmware() to the function .devinit.text:hdsp_request_fw_loader()
> > WARNING: sound/pci/rme9652/snd-hdsp.o(.text+0x4ac6): Section mismatch in reference from the function snd_hdsp_proc_read() to the function .devinit.text:hdsp_request_fw_loader()
> > 
> > Calling hdsp_request_fw_loader() were triggered from /proc
> > so this is not restricted to init or hotplug.
> > So removing the __devexit annotation of this function
> > and one of the functions fix the warning.
> 
> Thanks.  The exactly same fix has been already on ALSA tree since
> weeks ago, but was never pushed...

OK, I assume this will be pushed soonish so we can kill
another warning.

	Sam

^ permalink raw reply	[flat|nested] 38+ messages in thread

* Re: [PATCH 20/27] [ALSA] caiaq - fix section mismatch warning
  2008-02-17 12:22 ` [PATCH 20/27] [ALSA] caiaq - " Sam Ravnborg
@ 2008-02-18 10:35   ` Takashi Iwai
  0 siblings, 0 replies; 38+ messages in thread
From: Takashi Iwai @ 2008-02-18 10:35 UTC (permalink / raw)
  To: Sam Ravnborg; +Cc: LKML, Andrew Morton, Daniel Mack, Jaroslav Kysela

At Sun, 17 Feb 2008 13:22:57 +0100,
Sam Ravnborg wrote:
> 
> Fix following warning:
> WARNING: vmlinux.o(.text+0x11ec01a): Section mismatch in reference from the function setup_card() to the function .devinit.text:snd_usb_caiaq_control_init()
> 
> setup_card() are only used by init_card().
> init_card() are only used by snd_probe()
> snd_probe() are used for the .probe parameter in usb_driver.probe
> 
> Annotate them all __devinit to fix the warning.
> 
> Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
> Cc: Daniel Mack <daniel@caiaq.de>
> Cc: Takashi Iwai <tiwai@suse.de>
> Cc: Jaroslav Kysela <perex@perex.cz>

Thanks, applied to ALSA tree now.  I did another fix for this section
mismatch, but reverted it now since yours is better :)


Takashi

^ permalink raw reply	[flat|nested] 38+ messages in thread

* Re: [PATCH 27/27] [ALSA] hdsp - fix section mismatch warnings
  2008-02-18  7:45     ` Sam Ravnborg
@ 2008-02-18 10:36       ` Takashi Iwai
  0 siblings, 0 replies; 38+ messages in thread
From: Takashi Iwai @ 2008-02-18 10:36 UTC (permalink / raw)
  To: Sam Ravnborg; +Cc: LKML, Andrew Morton, Jaroslav Kysela

At Mon, 18 Feb 2008 08:45:08 +0100,
Sam Ravnborg wrote:
> 
> On Mon, Feb 18, 2008 at 07:43:32AM +0100, Takashi Iwai wrote:
> > At Sun, 17 Feb 2008 13:23:04 +0100,
> > Sam Ravnborg wrote:
> > > 
> > > Fix following warnings:
> > > WARNING: sound/pci/rme9652/snd-hdsp.o(.text+0x34bc): Section mismatch in reference from the function hdsp_check_for_firmware() to the function .devinit.text:hdsp_request_fw_loader()
> > > WARNING: sound/pci/rme9652/snd-hdsp.o(.text+0x4ac6): Section mismatch in reference from the function snd_hdsp_proc_read() to the function .devinit.text:hdsp_request_fw_loader()
> > > 
> > > Calling hdsp_request_fw_loader() were triggered from /proc
> > > so this is not restricted to init or hotplug.
> > > So removing the __devexit annotation of this function
> > > and one of the functions fix the warning.
> > 
> > Thanks.  The exactly same fix has been already on ALSA tree since
> > weeks ago, but was never pushed...
> 
> OK, I assume this will be pushed soonish so we can kill
> another warning.

I sincerly hope it'll be pushed soonish...


Takashi

^ permalink raw reply	[flat|nested] 38+ messages in thread

end of thread, other threads:[~2008-02-18 10:36 UTC | newest]

Thread overview: 38+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2008-02-17 12:12 [PATCH 0/27] fix section mismatches Sam Ravnborg
2008-02-17 12:22 ` [PATCH 01/27] serial: silence section mismatch warnings in 8250_pci Sam Ravnborg
2008-02-17 12:22 ` [PATCH 02/27] rtc: silence section mismatch warning in rtc-test Sam Ravnborg
2008-02-17 12:22 ` [PATCH 03/27] pcmcia: silence section mismatch warnings from class_interface variables Sam Ravnborg
2008-02-17 12:22 ` [PATCH 04/27] pcmcia: silence section mismatch warnings from pci_driver variables Sam Ravnborg
2008-02-17 12:22 ` [PATCH 05/27] cpu: fix section mismatch warnings in hotcpu_register Sam Ravnborg
2008-02-17 12:22 ` [PATCH 06/27] cpu: fix section mismatch warning in unregister_cpu_notifier Sam Ravnborg
2008-02-17 12:22 ` [PATCH 07/27] cpu: fix section mismatch warnings in *cpu_down Sam Ravnborg
2008-02-17 12:22 ` [PATCH 08/27] cpu: fix section mismatch warning in reference to register_cpu_notifier Sam Ravnborg
2008-02-17 12:22 ` [PATCH 09/27] x86: fix section mismatch warning in setup_64.c:nearby_node Sam Ravnborg
2008-02-17 13:44   ` Thomas Gleixner
2008-02-17 15:05     ` Sam Ravnborg
2008-02-17 12:22 ` [PATCH 10/27] x86: fix section mismatch in setup_64.c:srat_detect_node Sam Ravnborg
2008-02-17 12:22 ` [PATCH 11/27] acpi: fix section mismatch in processor_core.c:acpi_processor_hotplug_notify Sam Ravnborg
2008-02-17 12:22 ` [PATCH 12/27] x86: fix section mismatch warning in topology.c:arch_register_cpu Sam Ravnborg
2008-02-17 12:22 ` [PATCH 13/27] drivers/base/cpu: fix section mismatch in cpu.c:store_online Sam Ravnborg
2008-02-17 12:22 ` [PATCH 14/27] hwmon: fix section mismatch in coretemp Sam Ravnborg
2008-02-17 17:07   ` Mark M. Hoffman
2008-02-17 17:20     ` Sam Ravnborg
2008-02-17 12:22 ` [PATCH 15/27] cpufreq: fix section mismatch warnings Sam Ravnborg
2008-02-17 12:22 ` [PATCH 16/27] scsi: fix section mismatch in aic94xx Sam Ravnborg
2008-02-17 12:22 ` [PATCH 17/27] acer-wmi: fix section mismatch warnings Sam Ravnborg
2008-02-17 13:03   ` Carlos Corbacho
2008-02-17 15:05     ` Sam Ravnborg
2008-02-17 12:22 ` [PATCH 18/27] video: fix section mismatch warnings in uvesafb Sam Ravnborg
2008-02-17 12:22 ` [PATCH 19/27] tpm: fix section mismatch warning Sam Ravnborg
2008-02-17 12:22 ` [PATCH 20/27] [ALSA] caiaq - " Sam Ravnborg
2008-02-18 10:35   ` Takashi Iwai
2008-02-17 12:22 ` [PATCH 21/27] x86: fix section mismatch in srat_64.c:reserve_hotadd Sam Ravnborg
2008-02-17 12:22 ` [PATCH 22/27] x86: fix section mismatch in head_64.S:initial_code Sam Ravnborg
2008-02-17 12:23 ` [PATCH 23/27] x86: annotate pci/common.s:pci_scan_bus_with_sysdata with __devinit Sam Ravnborg
2008-02-17 12:23 ` [PATCH 24/27] pcmcia: annotate cb_alloc with __ref Sam Ravnborg
2008-02-17 12:23 ` [PATCH 25/27] pci: fix section mismatch warning in pci_scan_child_bus Sam Ravnborg
2008-02-17 12:23 ` [PATCH 26/27] acpi: fix section mismatch in acpi_pci_root_add Sam Ravnborg
2008-02-17 12:23 ` [PATCH 27/27] [ALSA] hdsp - fix section mismatch warnings Sam Ravnborg
2008-02-18  6:43   ` Takashi Iwai
2008-02-18  7:45     ` Sam Ravnborg
2008-02-18 10:36       ` Takashi Iwai

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).