[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <20080106140728.GA3504@uranus.ravnborg.org>
Date: Sun, 6 Jan 2008 15:07:28 +0100
From: Sam Ravnborg <sam@...nborg.org>
To: LKML <linux-kernel@...r.kernel.org>
Subject: Help needed to fix section mismatch warnings
kbuild emit section mismatch warnings when it detects that someone does a
call from a non-init section to a init section.
The rationale here is that the init section are discarded at runtime and
if this call happens after the init section has gone we have an oops.
This check is planned to be turned into an error soon but we still
see a bit too many warnings.
To see the list below build a kernel like this:
make allyesconfig
Set CONFIG_HOTPLUG to n
(In General Setup | Configure standard kernel features | Support for hot-plugable devices)
Then build the kernel like this:
make KCFLAGS=-fno-unit-at-a-time
The flag "-fno-unit-at-a-time" tell gcc to avoid additional inlining which
otherwise would hide several section mismatch warnings.
With latest kernel I got 113 warnings and most should fixable.
Try to look at how other section mismatch warnings has been fixed for inspiration.
Patches can be cc:ed to me but always send it to the maintainer and lkml.
Sam
This is the current list of warnings
WARNING: vmlinux.o(.text+0x738a): Section mismatch: reference to .init.data:ebda_addr (between 'discover_ebda' and 'get_model_name')
WARNING: vmlinux.o(.text+0x73c4): Section mismatch: reference to .init.data:ebda_size (between 'discover_ebda' and 'get_model_name')
WARNING: vmlinux.o(.text+0x76e2): Section mismatch: reference to .init.text: (between 'init_amd' and 'detect_ht')
WARNING: vmlinux.o(.text+0x1872b): Section mismatch: reference to .init.text:calibrate_delay (between 'smp_callin' and 'cpu_coregroup_map')
WARNING: vmlinux.o(.text+0x1f8b7): Section mismatch: reference to .init.text: (between 'calgary_handle_quirks' and 'tce_build')
WARNING: vmlinux.o(.text+0x1ffd0): Section mismatch: reference to .init.text:register_cpu (between 'arch_register_cpu' and 'arch_unregister_cpu')
WARNING: vmlinux.o(.text+0x21a39): Section mismatch: reference to .init.text:absent_pages_in_range (between 'reserve_hotadd' and 'unparse_node')
WARNING: vmlinux.o(.text+0x21ae9): Section mismatch: reference to .init.data: (between 'unparse_node' and 'null_slit_node_compare')
WARNING: vmlinux.o(.text+0x38b43): Section mismatch: reference to .init.text:idle_regs (between 'fork_idle' and 'fork_traceflag')
WARNING: vmlinux.o(.text+0x43524): Section mismatch: reference to .init.text: (between 'timer_cpu_notify' and 'msleep')
WARNING: vmlinux.o(.text+0x4c6f6): Section mismatch: reference to .init.text: (between 'rcu_cpu_notify' and 'wakeme_after_rcu')
WARNING: vmlinux.o(.text+0x51cbe): Section mismatch: reference to .init.text: (between 'hrtimer_cpu_notify' and 'down_read_trylock')
WARNING: vmlinux.o(.text+0x89520): Section mismatch: reference to .init.text: (between 'process_zones' and 'pageset_cpuup_callback')
WARNING: vmlinux.o(.text+0x453c6f): Section mismatch: reference to .init.text: (between 'pci_add_new_bus' and 'pci_fixup_parent_subordinate_busnr')
WARNING: vmlinux.o(.text+0x4545f6): Section mismatch: reference to .init.text: (between 'pci_scan_single_device' and 'pci_scan_slot')
WARNING: vmlinux.o(.text+0x4546e9): Section mismatch: reference to .init.text:pcibios_fixup_bus (between 'pci_scan_child_bus' and 'pci_create_bus')
WARNING: vmlinux.o(.text+0x460039): Section mismatch: reference to .init.text: (between 'pci_bus_size_bridges' and 'pci_bus_assign_resources')
WARNING: vmlinux.o(.text+0x46011b): Section mismatch: reference to .init.text: (between 'pci_bus_assign_resources' and 'acpi_query_osc')
WARNING: vmlinux.o(.text+0x47e419): Section mismatch: reference to .init.data: (between 'pm3fb_size_memory' and 'update_crtc2')
WARNING: vmlinux.o(.text+0x47e42b): Section mismatch: reference to .init.data: (between 'pm3fb_size_memory' and 'update_crtc2')
WARNING: vmlinux.o(.text+0x47e45d): Section mismatch: reference to .init.data: (between 'pm3fb_size_memory' and 'update_crtc2')
WARNING: vmlinux.o(.text+0x47e464): Section mismatch: reference to .init.data: (between 'pm3fb_size_memory' and 'update_crtc2')
WARNING: vmlinux.o(.text+0x47e488): Section mismatch: reference to .init.data: (between 'pm3fb_size_memory' and 'update_crtc2')
WARNING: vmlinux.o(.text+0x47e48f): Section mismatch: reference to .init.data: (between 'pm3fb_size_memory' and 'update_crtc2')
WARNING: vmlinux.o(.text+0x47e5a0): Section mismatch: reference to .init.data: (between 'pm3fb_size_memory' and 'update_crtc2')
WARNING: vmlinux.o(.text+0x47e5a7): Section mismatch: reference to .init.data: (between 'pm3fb_size_memory' and 'update_crtc2')
WARNING: vmlinux.o(.text+0x4d2888): Section mismatch: reference to .init.data:mode_option (between 'tdfxfb_setup' and 'getclkMHz')
WARNING: vmlinux.o(.text+0x4d2895): Section mismatch: reference to .init.data: (between 'tdfxfb_setup' and 'getclkMHz')
WARNING: vmlinux.o(.text+0x4e279c): Section mismatch: reference to .init.data: (between 'uvesafb_init_mtrr' and 'uvesafb_show_vbe_ver')
WARNING: vmlinux.o(.text+0x4e2b62): Section mismatch: reference to .init.data:mtrr (between 'param_set_scroll' and 'vesa_setpalette')
WARNING: vmlinux.o(.text+0x4e2b88): Section mismatch: reference to .init.data:mtrr (between 'param_set_scroll' and 'vesa_setpalette')
WARNING: vmlinux.o(.text+0x4e2bab): Section mismatch: reference to .init.data:blank (between 'param_set_scroll' and 'vesa_setpalette')
WARNING: vmlinux.o(.text+0x4e2bb1): Section mismatch: reference to .init.data:blank (between 'param_set_scroll' and 'vesa_setpalette')
WARNING: vmlinux.o(.text+0x50e2ca): Section mismatch: reference to .init.text:pci_acpi_scan_root (between 'acpi_pci_root_add' and 'acpi_pci_root_start')
WARNING: vmlinux.o(.text+0x5eb413): Section mismatch: reference to .init.text: (between 'parport_pc_probe_port' and 'parport_pc_unregister_port')
WARNING: vmlinux.o(.text+0x605e14): Section mismatch: reference to .init.text: (between 'cciss_pci_init' and 'cciss_getgeometry')
WARNING: vmlinux.o(.text+0x6a6a97): Section mismatch: reference to .init.text: (between 'sis190_get_mac_addr' and 'sis190_set_speed_auto')
WARNING: vmlinux.o(.text+0x6a6aa4): Section mismatch: reference to .init.text: (between 'sis190_get_mac_addr' and 'sis190_set_speed_auto')
WARNING: vmlinux.o(.text+0x6f9823): Section mismatch: reference to .init.text: (between 'rhine_hw_init' and 'alloc_ring')
WARNING: vmlinux.o(.text+0x7527bb): Section mismatch: reference to .init.text: (between 'mlx4_init_icm' and 'mlx4_free_icms')
WARNING: vmlinux.o(.text+0x752e91): Section mismatch: reference to .init.text: (between 'mlx4_init_hca' and 'mlx4_setup_hca')
WARNING: vmlinux.o(.text+0x753737): Section mismatch: reference to .init.text: (between '__mlx4_init_one' and 'mlx4_remove_one')
WARNING: vmlinux.o(.text+0x7549da): Section mismatch: reference to .init.text: (between 'mlx4_init_mr_table' and 'mlx4_cleanup_mr_table')
WARNING: vmlinux.o(.text+0x756616): Section mismatch: reference to .init.text: (between 'olympic_open' and 'olympic_rx')
WARNING: vmlinux.o(.text+0xbc61d2): Section mismatch: reference to .init.text: (between 'piix_init_one' and 'pdc_common_port_start')
WARNING: vmlinux.o(.text+0xbc61e9): Section mismatch: reference to .init.text: (between 'piix_init_one' and 'pdc_common_port_start')
WARNING: vmlinux.o(.text+0xbc620f): Section mismatch: reference to .init.text: (between 'piix_init_one' and 'pdc_common_port_start')
WARNING: vmlinux.o(.text+0xe7fdcd): Section mismatch: reference to .init.text:setup_teles3 (between 'hisax_cs_setup_card' and 'hisax_cs_new')
WARNING: vmlinux.o(.text+0xe7fdd7): Section mismatch: reference to .init.text:setup_s0box (between 'hisax_cs_setup_card' and 'hisax_cs_new')
WARNING: vmlinux.o(.text+0xe7fde1): Section mismatch: reference to .init.text:setup_telespci (between 'hisax_cs_setup_card' and 'hisax_cs_new')
WARNING: vmlinux.o(.text+0xe7fdf2): Section mismatch: reference to .init.text:setup_avm_pcipnp (between 'hisax_cs_setup_card' and 'hisax_cs_new')
WARNING: vmlinux.o(.text+0xe7fdf9): Section mismatch: reference to .init.text:setup_elsa (between 'hisax_cs_setup_card' and 'hisax_cs_new')
WARNING: vmlinux.o(.text+0xe7fe00): Section mismatch: reference to .init.text:setup_diva (between 'hisax_cs_setup_card' and 'hisax_cs_new')
WARNING: vmlinux.o(.text+0xe7fe07): Section mismatch: reference to .init.text:setup_sedlbauer (between 'hisax_cs_setup_card' and 'hisax_cs_new')
WARNING: vmlinux.o(.text+0xe7fe0e): Section mismatch: reference to .init.text:setup_netjet_s (between 'hisax_cs_setup_card' and 'hisax_cs_new')
WARNING: vmlinux.o(.text+0xe7fe15): Section mismatch: reference to .init.text:setup_hfcpci (between 'hisax_cs_setup_card' and 'hisax_cs_new')
WARNING: vmlinux.o(.text+0xe7fe1c): Section mismatch: reference to .init.text:setup_hfcsx (between 'hisax_cs_setup_card' and 'hisax_cs_new')
WARNING: vmlinux.o(.text+0xe7fe23): Section mismatch: reference to .init.text:setup_niccy (between 'hisax_cs_setup_card' and 'hisax_cs_new')
WARNING: vmlinux.o(.text+0xe7fe2a): Section mismatch: reference to .init.text:setup_bkm_a4t (between 'hisax_cs_setup_card' and 'hisax_cs_new')
WARNING: vmlinux.o(.text+0xe7fe31): Section mismatch: reference to .init.text:setup_sct_quadro (between 'hisax_cs_setup_card' and 'hisax_cs_new')
WARNING: vmlinux.o(.text+0xe7fe38): Section mismatch: reference to .init.text:setup_gazel (between 'hisax_cs_setup_card' and 'hisax_cs_new')
WARNING: vmlinux.o(.text+0xe7fe3f): Section mismatch: reference to .init.text:setup_w6692 (between 'hisax_cs_setup_card' and 'hisax_cs_new')
WARNING: vmlinux.o(.text+0xe7fe46): Section mismatch: reference to .init.text:setup_netjet_u (between 'hisax_cs_setup_card' and 'hisax_cs_new')
WARNING: vmlinux.o(.text+0xe7fe4d): Section mismatch: reference to .init.text:setup_enternow_pci (between 'hisax_cs_setup_card' and 'hisax_cs_new')
WARNING: vmlinux.o(.text+0xe98f63): Section mismatch: reference to .init.data:ISACVer (between 'ISACVersion' and 'ph_command')
WARNING: vmlinux.o(.text+0xe9afbc): Section mismatch: reference to .init.text:clear_pending_isac_ints (between 'inithscxisac' and 'write_fifo_isac')
WARNING: vmlinux.o(.text+0xe9afcc): Section mismatch: reference to .init.text:initisac (between 'inithscxisac' and 'write_fifo_isac')
WARNING: vmlinux.o(.text+0xe9ec44): Section mismatch: reference to .init.text:clear_pending_isac_ints (between 'AVM_card_msg' and 'setup_avm_a1_pcmcia')
WARNING: vmlinux.o(.text+0xe9ed94): Section mismatch: reference to .init.text:setup_isac (between 'setup_avm_a1_pcmcia' and 'WriteHSCX')
WARNING: vmlinux.o(.text+0xea033e): Section mismatch: reference to .init.text:clear_pending_isac_ints (between 'AVM_card_msg' and 'hdlc_fill_fifo')
WARNING: vmlinux.o(.text+0xea0346): Section mismatch: reference to .init.text:initisac (between 'AVM_card_msg' and 'hdlc_fill_fifo')
WARNING: vmlinux.o(.text+0xea866c): Section mismatch: reference to .init.text:clear_pending_isac_ints (between 'Sedl_card_msg' and 'WriteISACfifo')
WARNING: vmlinux.o(.text+0xea8684): Section mismatch: reference to .init.text:initisac (between 'Sedl_card_msg' and 'WriteISACfifo')
WARNING: vmlinux.o(.text+0xea868c): Section mismatch: reference to .init.text:initisar (between 'Sedl_card_msg' and 'WriteISACfifo')
WARNING: vmlinux.o(.text+0xeacf79): Section mismatch: reference to .init.text:clear_pending_isac_ints (between 'NETjet_S_card_msg' and 'dummywr')
WARNING: vmlinux.o(.text+0xeacf81): Section mismatch: reference to .init.text:initisac (between 'NETjet_S_card_msg' and 'dummywr')
WARNING: vmlinux.o(.text+0xeb4a11): Section mismatch: reference to .init.text: (between 'hfcsx_card_msg' and 'hfcsx_Timer')
WARNING: vmlinux.o(.text+0xeb6b57): Section mismatch: reference to .init.text:clear_pending_isac_ints (between 'BKM_card_msg' and 'JadeVersion')
WARNING: vmlinux.o(.text+0xeb6b67): Section mismatch: reference to .init.text:initisac (between 'BKM_card_msg' and 'JadeVersion')
WARNING: vmlinux.o(.text+0xebbc7d): Section mismatch: reference to .init.text:Amd7930_init (between 'enpci_card_msg' and 'enpci_interrupt')
WARNING: vmlinux.o(.text+0xebbcb2): Section mismatch: reference to .init.text:Amd7930_init (between 'enpci_card_msg' and 'enpci_interrupt')
WARNING: vmlinux.o(.text+0xfe90b6): Section mismatch: reference to .init.data:atiixp_quirks (between 'ac97_probing_bugs' and 'snd_atiixp_codec_detect')
WARNING: vmlinux.o(.text+0x109a166): Section mismatch: reference to .init.text: (between 'snd_hdsp_create_alsa_devices' and 'snd_hdsp_free')
WARNING: vmlinux.o(.text+0x10b9600): Section mismatch: reference to .init.text:snd_usb_caiaq_audio_init (between 'setup_card' and 'create_card')
WARNING: vmlinux.o(.text+0x10b9628): Section mismatch: reference to .init.text:snd_usb_caiaq_midi_init (between 'setup_card' and 'create_card')
WARNING: vmlinux.o(.exit.text+0xc64d): Section mismatch: reference to .init.data:_asc_def_iop_base (between 'advansys_isa_remove' and 'advansys_eisa_remove')
WARNING: vmlinux.o(__ksymtab+0xa7a0): Section mismatch: reference to .init.text:suni_init (between '__ksymtab_suni_init' and '__ksymtab_ide_hwifs')
WARNING: vmlinux.o(.data+0x8500): Section mismatch: reference to .init.text:profile_cpu_callback (between 'profile_cpu_callback_nb.22048' and 'lowest_to_date.35229')
WARNING: vmlinux.o(.data+0xb760): Section mismatch: reference to .init.text:workqueue_cpu_callback (between 'workqueue_cpu_callback_nb.15466' and 'init_struct_pid')
WARNING: vmlinux.o(.data+0x167d0): Section mismatch: reference to .init.text:cpu_callback (between 'cpu_callback_nb.29884' and 'sysctl_min_unmapped_ratio')
WARNING: vmlinux.o(.data+0x7e9b8): Section mismatch: reference to .init.text:tpm_inf_pnp_probe (between 'tpm_inf_pnp' and 'cn_idx')
WARNING: vmlinux.o(.data+0xd44d8): Section mismatch: reference to .init.data:prism2_plx_id_table (between 'prism2_plx_drv_id' and 'dev_info')
WARNING: vmlinux.o(.data+0x149908): Section mismatch: reference to .init.text:av7110_attach (between 'av7110_extension' and 'ir_protocol')
WARNING: vmlinux.o(.data+0x170b20): Section mismatch: reference to .init.data:hpt370 (between 'hpt37x_info.32549' and 'driver')
WARNING: vmlinux.o(.data+0x170b28): Section mismatch: reference to .init.data:hpt370a (between 'hpt37x_info.32549' and 'driver')
WARNING: vmlinux.o(.data+0x170b30): Section mismatch: reference to .init.data:hpt372 (between 'hpt37x_info.32549' and 'driver')
WARNING: vmlinux.o(.data+0x170b38): Section mismatch: reference to .init.data:hpt372n (between 'hpt37x_info.32549' and 'driver')
WARNING: vmlinux.o(.data+0x193288): Section mismatch: reference to .init.text:asd_aic9410_setup (between 'asd_pcidev_data' and 'driver_attr_version')
WARNING: vmlinux.o(.data+0x193298): Section mismatch: reference to .init.text:asd_aic9410_setup (between 'asd_pcidev_data' and 'driver_attr_version')
WARNING: vmlinux.o(.data+0x1932a8): Section mismatch: reference to .init.text:asd_aic9405_setup (between 'asd_pcidev_data' and 'driver_attr_version')
WARNING: vmlinux.o(.data+0x1b3ce0): Section mismatch: reference to .init.text:megaraid_probe_one (between 'megaraid_pci_driver_g' and 'class_device_attr_megaraid_mbox_app_hndl')
WARNING: vmlinux.o(.data+0x2fdc40): Section mismatch: reference to .init.data:mts64_ctl_smpte_switch (between 'control.19255' and 'snd_mts64_rawmidi_output_ops')
WARNING: vmlinux.o(.data+0x2fdc48): Section mismatch: reference to .init.data:mts64_ctl_smpte_time_hours (between 'control.19255' and 'snd_mts64_rawmidi_output_ops')
WARNING: vmlinux.o(.data+0x2fdc50): Section mismatch: reference to .init.data:mts64_ctl_smpte_time_minutes (between 'control.19255' and 'snd_mts64_rawmidi_output_ops')
WARNING: vmlinux.o(.data+0x2fdc58): Section mismatch: reference to .init.data:mts64_ctl_smpte_time_seconds (between 'control.19255' and 'snd_mts64_rawmidi_output_ops')
WARNING: vmlinux.o(.data+0x2fdc60): Section mismatch: reference to .init.data:mts64_ctl_smpte_time_frames (between 'control.19255' and 'snd_mts64_rawmidi_output_ops')
WARNING: vmlinux.o(.data+0x2fdc68): Section mismatch: reference to .init.data:mts64_ctl_smpte_fps (between 'control.19255' and 'snd_mts64_rawmidi_output_ops')
WARNING: vmlinux.o(.data+0x300ae0): Section mismatch: reference to .init.text:snd_ad1889_probe (between 'ad1889_pci' and 'index')
WARNING: vmlinux.o(.text+0xb0c71d): Section mismatch: reference to .exit.text: (between 'qla2xxx_pci_error_detected' and 'qla2xxx_pci_mmio_enabled')
WARNING: vmlinux.o(.text+0xb4ff4b): Section mismatch: reference to .exit.text: (between 'sym2_io_error_detected' and 'sym2_io_slot_dump')
WARNING: vmlinux.o(.init.text+0x47783): Section mismatch: reference to .exit.text:tpm_nsc_remove (between 'init_nsc' and 'init_atmel')
WARNING: vmlinux.o(.init.text+0xa73ed): Section mismatch: reference to .exit.text: (between 'asd_pci_probe' and 'aic94xx_init')
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists