Skip to contentSkip to conversation

Section mismatch warnings

PATCH New Gabriel C 2 participants 12 messages Jul 30, 2007 – Aug 2, 2007

Subsystems (3)
lore
Share & tools
lore

Gabriel C

author
#0 lore raw

Hi Sam ,

I get this warnings with a randconfig ( http://194.231.229.228/git-current/randconfig-auto-36 ) :

...

WARNING: vmlinux.o(.text+0xeaf7): Section mismatch: reference to .init.text:init_gdt (between 'voyager_smp_prepare_boot_cpu' and 'smp_vic_cmn_interrupt')
WARNING: vmlinux.o(.text+0x104e3): Section mismatch: reference to .init.data:eprom_buf (between 'voyager_cat_init' and 'twofish_enc_blk')
WARNING: vmlinux.o(.text+0x1050a): Section mismatch: reference to .init.data: (between 'voyager_cat_init' and 'twofish_enc_blk')
WARNING: vmlinux.o(.text+0x10510): Section mismatch: reference to .init.data: (between 'voyager_cat_init' and 'twofish_enc_blk')
WARNING: vmlinux.o(.text+0x10517): Section mismatch: reference to .init.data: (between 'voyager_cat_init' and 'twofish_enc_blk')
WARNING: vmlinux.o(.text+0x1054a): Section mismatch: reference to .init.data: (between 'voyager_cat_init' and 'twofish_enc_blk')
WARNING: vmlinux.o(.text+0x1055b): Section mismatch: reference to .init.data: (between 'voyager_cat_init' and 'twofish_enc_blk')
WARNING: vmlinux.o(.text+0x10765): Section mismatch: reference to .init.data: (between 'voyager_cat_init' and 'twofish_enc_blk')
WARNING: vmlinux.o(.text+0x10778): Section mismatch: reference to .init.data: (between 'voyager_cat_init' and 'twofish_enc_blk')
WARNING: vmlinux.o(.text+0x107b6): Section mismatch: reference to .init.data: (between 'voyager_cat_init' and 'twofish_enc_blk')
WARNING: vmlinux.o(.text+0x107c9): Section mismatch: reference to .init.data: (between 'voyager_cat_init' and 'twofish_enc_blk')
WARNING: vmlinux.o(.text+0x1090e): Section mismatch: reference to .init.data:eprom_buf (between 'voyager_cat_init' and 'twofish_enc_blk')
WARNING: vmlinux.o(.text+0x10935): Section mismatch: reference to .init.data: (between 'voyager_cat_init' and 'twofish_enc_blk')
WARNING: vmlinux.o(.text+0x10944): Section mismatch: reference to .init.data: (between 'voyager_cat_init' and 'twofish_enc_blk')
WARNING: vmlinux.o(.text+0x10951): Section mismatch: reference to .init.data: (between 'voyager_cat_init' and 'twofish_enc_blk')
WARNING: vmlinux.o(.text+0x109aa): Section mismatch: reference to .init.data:eprom_buf (between 'voyager_cat_init' and 'twofish_enc_blk')
WARNING: vmlinux.o(.text+0x109b4): Section mismatch: reference to .init.data: (between 'voyager_cat_init' and 'twofish_enc_blk')
WARNING: vmlinux.o(.text+0x109ba): Section mismatch: reference to .init.data:eprom_buf (between 'voyager_cat_init' and 'twofish_enc_blk')
WARNING: vmlinux.o(.text+0x109c1): Section mismatch: reference to .init.data:eprom_buf (between 'voyager_cat_init' and 'twofish_enc_blk')
WARNING: vmlinux.o(.text+0x109e4): Section mismatch: reference to .init.data: (between 'voyager_cat_init' and 'twofish_enc_blk')

...

With the same config I see this warnings as well but I think this is a different problem.

...

arch/i386/mach-voyager/voyager_cat.c: In function 'voyager_cat_init':
arch/i386/mach-voyager/voyager_cat.c:685: warning: comparison is always false due to limited range of data type arch/i386/mach-voyager/voyager_cat.c:755: warning: comparison is always false due to limited range of data type

...

Regards,

Gabriel

#1 lore raw
Quoted 7 lines · Gabriel C

Hi Sam ,

I get this warnings with a randconfig ( http://194.231.229.228/git-current/randconfig-auto-36 ) :

...

I only looked at the Section mismatch warnings.
They are fixed by following patch.

James - I assume you will take this forward?

Sam

[PATCH] i386/voyager: fix section mismatch warnings

Quoted 1 line

WARNING: vmlinux.o(.text+0xeaf7): Section mismatch: reference to .init.text:init_gdt (between 'voyager_smp_prepare_boot_cpu' and 'smp_vic_cmn_interrupt')

voyager_smp_prepare_boot_cpu is marked __devinit and calls init_gdt. init_gdt is marked __cpuinit

Fix seems to make voyager_smp_prepare_boot_cpu __init since I cannot see that function being used for HOTPLUG. Maybe HOTPLUG_CPU but not HOTPLUG.

Quoted 12 lines

WARNING: vmlinux.o(.text+0x104e3): Section mismatch: reference to .init.data:eprom_buf (between 'voyager_cat_init' and 'twofish_enc_blk')

WARNING: vmlinux.o(.text+0x1050a): Section mismatch: reference to .init.data: (between 'voyager_cat_init' and 'twofish_enc_blk')
WARNING: vmlinux.o(.text+0x10510): Section mismatch: reference to .init.data: (between 'voyager_cat_init' and 'twofish_enc_blk')
WARNING: vmlinux.o(.text+0x10517): Section mismatch: reference to .init.data: (between 'voyager_cat_init' and 'twofish_enc_blk')
WARNING: vmlinux.o(.text+0x1054a): Section mismatch: reference to .init.data: (between 'voyager_cat_init' and 'twofish_enc_blk')
WARNING: vmlinux.o(.text+0x1055b): Section mismatch: reference to .init.data: (between 'voyager_cat_init' and 'twofish_enc_blk')
WARNING: vmlinux.o(.text+0x10765): Section mismatch: reference to .init.data: (between 'voyager_cat_init' and 'twofish_enc_blk')
WARNING: vmlinux.o(.text+0x10778): Section mismatch: reference to .init.data: (between 'voyager_cat_init' and 'twofish_enc_blk')
WARNING: vmlinux.o(.text+0x107b6): Section mismatch: reference to .init.data: (between 'voyager_cat_init' and 'twofish_enc_blk')
WARNING: vmlinux.o(.text+0x107c9): Section mismatch: reference to .init.data: (between 'voyager_cat_init' and 'twofish_enc_blk')
WARNING: vmlinux.o(.text+0x1090e): Section mismatch: reference to .init.data:eprom_buf (between 'voyager_cat_init' and 'twofish_enc_blk')

Quoted 8 lines

WARNING: vmlinux.o(.text+0x10935): Section mismatch: reference to .init.data: (between 'voyager_cat_init' and 'twofish_enc_blk')
WARNING: vmlinux.o(.text+0x10944): Section mismatch: reference to .init.data: (between 'voyager_cat_init' and 'twofish_enc_blk')
WARNING: vmlinux.o(.text+0x10951): Section mismatch: reference to .init.data: (between 'voyager_cat_init' and 'twofish_enc_blk')
WARNING: vmlinux.o(.text+0x109aa): Section mismatch: reference to .init.data:eprom_buf (between 'voyager_cat_init' and 'twofish_enc_blk')
WARNING: vmlinux.o(.text+0x109b4): Section mismatch: reference to .init.data: (between 'voyager_cat_init' and 'twofish_enc_blk')
WARNING: vmlinux.o(.text+0x109ba): Section mismatch: reference to .init.data:eprom_buf (between 'voyager_cat_init' and 'twofish_enc_blk')
WARNING: vmlinux.o(.text+0x109c1): Section mismatch: reference to .init.data:eprom_buf (between 'voyager_cat_init' and 'twofish_enc_blk')
WARNING: vmlinux.o(.text+0x109e4): Section mismatch: reference to .init.data: (between 'voyager_cat_init' and 'twofish_enc_blk')

voyager_cat_init is used only by smp_boot_cpus that is marked __init. So fix is to mark voyager_cat_init as __init

---

arch/i386/mach-voyager/voyager_cat.c +1 -2
index 26a2d4c..f5acf06 100644
@@ -568,8 +568,7 @@ static voyager_module_t *voyager_initial_module;
  * boot cpu *after* all memory initialisation has been done (so we can
  * use kmalloc) but before smp initialisation, so we can probe the SMP
  * configuration and pick up necessary information.  */
-void
-voyager_cat_init(void)
+void __init voyager_cat_init(void)
 {
 	voyager_module_t **modpp = &voyager_initial_module;
 	voyager_asic_t **asicpp;
arch/i386/mach-voyager/voyager_smp.c +1 -1
index b87f854..ac06a1c 100644
@@ -1899,7 +1899,7 @@ voyager_smp_prepare_cpus(unsigned int max_cpus)
 	smp_boot_cpus();
 }
 
-static void __devinit voyager_smp_prepare_boot_cpu(void)
+static void __init voyager_smp_prepare_boot_cpu(void)
 {
 	init_gdt(smp_processor_id());
 	switch_to_new_gdt();
author
#3 lore raw

Hi Sam ,

me again. I got some more mismatch warnings with a randconfig ( http://194.231.229.228/git-current/randconfig-auto-14 )

...

MODPOST vmlinux.o
WARNING: vmlinux.o(.text+0x8adb): Section mismatch: reference to .init.text:register_cpu (between 'arch_register_cpu' and 'text_poke')
WARNING: vmlinux.o(.text+0xb790c): Section mismatch: reference to .init.text:pcibios_fixup_bus (between 'pci_scan_child_bus' and 'pci_scan_bus_parented')
WARNING: vmlinux.o(.text+0x12f01e): Section mismatch: reference to .init.text:mlx4_init_one (between 'mlx4_restart_one' and 'mlx4_cleanup_mcg_table')
WARNING: vmlinux.o(.text+0x1dd831): Section mismatch: reference to .init.text:setup_TeleInt (between 'checkcard' and 'hisax_init_pcmcia')
WARNING: vmlinux.o(.text+0x1dd9e7): Section mismatch: reference to .init.text:setup_elsa (between 'checkcard' and 'hisax_init_pcmcia')
WARNING: vmlinux.o(.text+0x1dd9f8): Section mismatch: reference to .init.text:setup_avm_a1 (between 'checkcard' and 'hisax_init_pcmcia')
WARNING: vmlinux.o(.text+0x1dda08): Section mismatch: reference to .init.text:setup_teles0 (between 'checkcard' and 'hisax_init_pcmcia')
WARNING: vmlinux.o(.text+0x1dda18): Section mismatch: reference to .init.text:setup_netjet_u (between 'checkcard' and 'hisax_init_pcmcia')
WARNING: vmlinux.o(.text+0x1dda28): Section mismatch: reference to .init.text:setup_hfcpci (between 'checkcard' and 'hisax_init_pcmcia')
WARNING: vmlinux.o(.text+0x1dda38): Section mismatch: reference to .init.text:setup_saphir (between 'checkcard' and 'hisax_init_pcmcia')
WARNING: vmlinux.o(.text+0x1dda48): Section mismatch: reference to .init.text:setup_avm_pcipnp (between 'checkcard' and 'hisax_init_pcmcia')
WARNING: vmlinux.o(.text+0x1dda58): Section mismatch: reference to .init.text:setup_s0box (between 'checkcard' and 'hisax_init_pcmcia')
WARNING: vmlinux.o(.text+0x1dda68): Section mismatch: reference to .init.text:setup_telespci (between 'checkcard' and 'hisax_init_pcmcia')
WARNING: vmlinux.o(.text+0x1dda78): Section mismatch: reference to .init.text:setup_netjet_s (between 'checkcard' and 'hisax_init_pcmcia')
WARNING: vmlinux.o(.text+0x1dda88): Section mismatch: reference to .init.text:setup_hfcs (between 'checkcard' and 'hisax_init_pcmcia')
WARNING: vmlinux.o(.text+0x1f4e96): Section mismatch: reference to .init.text:clear_pending_isac_ints (between 'inithscxisac' and 'open_hscxstate')
WARNING: vmlinux.o(.text+0x1f4ea4): Section mismatch: reference to .init.text:initisac (between 'inithscxisac' and 'open_hscxstate')
WARNING: vmlinux.o(.text+0x1fa774): Section mismatch: reference to .init.text:clear_pending_isac_ints (between 'AVM_card_msg' and 'avm_pcipnp_interrupt')
WARNING: vmlinux.o(.text+0x1fa77b): Section mismatch: reference to .init.text:initisac (between 'AVM_card_msg' and 'avm_pcipnp_interrupt')
WARNING: vmlinux.o(.text+0x1fdbbf): Section mismatch: reference to .init.text:clear_pending_isac_ints (between 'TeleInt_card_msg' and 'WriteHFC')
WARNING: vmlinux.o(.text+0x1fdbc6): Section mismatch: reference to .init.text:initisac (between 'TeleInt_card_msg' and 'WriteHFC')
WARNING: vmlinux.o(.text+0x1ff98f): Section mismatch: reference to .init.text:clear_pending_isac_ints (between 'NETjet_S_card_msg' and 'netjet_s_interrupt')
WARNING: vmlinux.o(.text+0x1ff996): Section mismatch: reference to .init.text:initisac (between 'NETjet_S_card_msg' and 'netjet_s_interrupt')
WARNING: vmlinux.o(.text+0x2d6a77): Section mismatch: reference to .init.text:snd_hda_add_new_ctls (between 'alc_build_controls' and 'alc662_auto_set_output_and_unmute')
WARNING: vmlinux.o(.text+0x2d6aa1): Section mismatch: reference to .init.text:snd_hda_create_spdif_in_ctls (between 'alc_build_controls' and 'alc662_auto_set_output_and_unmute')
WARNING: vmlinux.o(.text+0x2d6abd): Section mismatch: reference to .init.text:snd_hda_create_spdif_out_ctls (between 'alc_build_controls' and 'alc662_auto_set_output_and_unmute')
WARNING: vmlinux.o(.text+0x2d994a): Section mismatch: reference to .init.text:snd_hda_parse_pin_def_config (between 'alc880_parse_auto_config' and 'alc882_gpio_mute')
WARNING: vmlinux.o(.text+0x2da2fe): Section mismatch: reference to .init.text:snd_hda_check_board_config (between 'patch_alc268' and 'patch_alc662')
WARNING: vmlinux.o(.text+0x2da31c): Section mismatch: reference to .init.text:snd_hda_parse_pin_def_config (between 'patch_alc268' and 'patch_alc662')
WARNING: vmlinux.o(.text+0x2da6e8): Section mismatch: reference to .init.text:snd_hda_check_board_config (between 'patch_alc662' and 'alc_mux_enum_info')
WARNING: vmlinux.o(.text+0x2da7b5): Section mismatch: reference to .init.text:snd_hda_parse_pin_def_config (between 'patch_alc662' and 'alc_mux_enum_info')
WARNING: vmlinux.o(.text+0x2dae6a): Section mismatch: reference to .init.text:snd_hda_check_board_config (between 'patch_alc880' and 'patch_alc260')
WARNING: vmlinux.o(.text+0x2db036): Section mismatch: reference to .init.text:snd_hda_check_board_config (between 'patch_alc260' and 'patch_alc882')
WARNING: vmlinux.o(.text+0x2db0cc): Section mismatch: reference to .init.text:snd_hda_parse_pin_def_config (between 'patch_alc260' and 'patch_alc882')
WARNING: vmlinux.o(.text+0x2db4b0): Section mismatch: reference to .init.text:snd_hda_check_board_config (between 'patch_alc882' and 'patch_alc883')
WARNING: vmlinux.o(.text+0x2db77a): Section mismatch: reference to .init.text:snd_hda_check_board_config (between 'patch_alc883' and 'patch_alc262')
WARNING: vmlinux.o(.text+0x2db8ea): Section mismatch: reference to .init.text:snd_hda_check_board_config (between 'patch_alc262' and 'patch_alc861')
WARNING: vmlinux.o(.text+0x2db9b7): Section mismatch: reference to .init.text:snd_hda_parse_pin_def_config (between 'patch_alc262' and 'patch_alc861')
WARNING: vmlinux.o(.text+0x2dbca6): Section mismatch: reference to .init.text:snd_hda_check_board_config (between 'patch_alc861' and 'patch_alc861vd')
WARNING: vmlinux.o(.text+0x2dbd3c): Section mismatch: reference to .init.text:snd_hda_parse_pin_def_config (between 'patch_alc861' and 'patch_alc861vd')
WARNING: vmlinux.o(.text+0x2dc0c6): Section mismatch: reference to .init.text:snd_hda_check_board_config (between 'patch_alc861vd' and 'cmi9880_build_pcms')
WARNING: vmlinux.o(.text+0x2dc195): Section mismatch: reference to .init.text:snd_hda_parse_pin_def_config (between 'patch_alc861vd' and 'cmi9880_build_pcms')
WARNING: vmlinux.o(.text+0x2dc77d): Section mismatch: reference to .init.text:snd_hda_add_new_ctls (between 'cmi9880_build_controls' and 'cmi_ch_mode_put')
WARNING: vmlinux.o(.text+0x2dc796): Section mismatch: reference to .init.text:snd_hda_add_new_ctls (between 'cmi9880_build_controls' and 'cmi_ch_mode_put')
WARNING: vmlinux.o(.text+0x2dc7c6): Section mismatch: reference to .init.text:snd_hda_create_spdif_in_ctls (between 'cmi9880_build_controls' and 'cmi_ch_mode_put')
WARNING: vmlinux.o(.text+0x2dc7e6): Section mismatch: reference to .init.text:snd_hda_create_spdif_out_ctls (between 'cmi9880_build_controls' and 'cmi_ch_mode_put')
WARNING: vmlinux.o(.text+0x2dc93e): Section mismatch: reference to .init.text:snd_hda_check_board_config (between 'patch_cmi9880' and 'cmi_mux_enum_get')
WARNING: vmlinux.o(.text+0x2dcab4): Section mismatch: reference to .init.text:snd_hda_parse_pin_def_config (between 'patch_cmi9880' and 'cmi_mux_enum_get')
WARNING: vmlinux.o(.text+0x2dd301): Section mismatch: reference to .init.text:snd_hda_add_new_ctls (between 'ad198x_build_controls' and 'ad1988_laptop_unsol_event')
WARNING: vmlinux.o(.text+0x2dd32b): Section mismatch: reference to .init.text:snd_hda_create_spdif_in_ctls (between 'ad198x_build_controls' and 'ad1988_laptop_unsol_event')
WARNING: vmlinux.o(.text+0x2dd347): Section mismatch: reference to .init.text:snd_hda_create_spdif_out_ctls (between 'ad198x_build_controls' and 'ad1988_laptop_unsol_event')
WARNING: vmlinux.o(.text+0x2ddbad): Section mismatch: reference to .init.text:snd_hda_check_board_config (between 'patch_ad1984' and 'patch_ad1882')
WARNING: vmlinux.o(.text+0x2ddcfb): Section mismatch: reference to .init.text:snd_hda_check_board_config (between 'patch_ad1882' and 'ad198x_free')
WARNING: vmlinux.o(.text+0x2de7db): Section mismatch: reference to .init.text:snd_hda_check_board_config (between 'patch_ad1986a' and 'patch_ad1983')
WARNING: vmlinux.o(.text+0x2deabb): Section mismatch: reference to .init.text:snd_hda_check_board_config (between 'patch_ad1981' and 'patch_ad1988')
WARNING: vmlinux.o(.text+0x2debfd): Section mismatch: reference to .init.text:snd_hda_check_board_config (between 'patch_ad1988' and 'stac92xx_dmux_enum_get')
WARNING: vmlinux.o(.text+0x2dede6): Section mismatch: reference to .init.text:snd_hda_parse_pin_def_config (between 'patch_ad1988' and 'stac92xx_dmux_enum_get')
WARNING: vmlinux.o(.text+0x2e00dc): Section mismatch: reference to .init.text:snd_hda_add_new_ctls (between 'stac92xx_build_controls' and 'stac92xx_mux_enum_put')
WARNING: vmlinux.o(.text+0x2e0105): Section mismatch: reference to .init.text:snd_hda_add_new_ctls (between 'stac92xx_build_controls' and 'stac92xx_mux_enum_put')
WARNING: vmlinux.o(.text+0x2e012f): Section mismatch: reference to .init.text:snd_hda_create_spdif_in_ctls (between 'stac92xx_build_controls' and 'stac92xx_mux_enum_put')
WARNING: vmlinux.o(.text+0x2e014b): Section mismatch: reference to .init.text:snd_hda_create_spdif_out_ctls (between 'stac92xx_build_controls' and 'stac92xx_mux_enum_put')
WARNING: vmlinux.o(.text+0x2e06cf): Section mismatch: reference to .init.text:snd_hda_parse_pin_def_config (between 'stac92xx_parse_auto_config' and 'patch_stac9872')
WARNING: vmlinux.o(.text+0x2e0e79): Section mismatch: reference to .init.text:snd_hda_check_board_config (between 'patch_stac9872' and 'vaio_master_sw_put')
WARNING: vmlinux.o(.text+0x2e11dc): Section mismatch: reference to .init.text:snd_hda_check_board_config (between 'patch_stac9200' and 'patch_stac925x')
WARNING: vmlinux.o(.text+0x2e1251): Section mismatch: reference to .init.text:snd_hda_parse_pin_def_config (between 'patch_stac9200' and 'patch_stac925x')
WARNING: vmlinux.o(.text+0x2e15bb): Section mismatch: reference to .init.text:snd_hda_check_board_config (between 'patch_stac925x' and 'patch_stac922x')
WARNING: vmlinux.o(.text+0x2e172c): Section mismatch: reference to .init.text:snd_hda_check_board_config (between 'patch_stac922x' and 'patch_stac927x')
WARNING: vmlinux.o(.text+0x2e195f): Section mismatch: reference to .init.text:snd_hda_check_board_config (between 'patch_stac927x' and 'patch_stac9205')
WARNING: vmlinux.o(.text+0x2e1aef): Section mismatch: reference to .init.text:snd_hda_check_board_config (between 'patch_stac9205' and 'si3054_switch_info')
WARNING: vmlinux.o(.text+0x2e2116): Section mismatch: reference to .init.text:snd_hda_add_new_ctls (between 'si3054_build_controls' and 'patch_si3054')
WARNING: vmlinux.o(.text+0x2e2248): Section mismatch: reference to .init.text:snd_hda_create_spdif_out_ctls (between 'atihdmi_build_controls' and 'patch_atihdmi')
WARNING: vmlinux.o(.text+0x2e2c51): Section mismatch: reference to .init.text:snd_hda_add_new_ctls (between 'conexant_build_controls' and 'patch_cxt5047')
WARNING: vmlinux.o(.text+0x2e2c7b): Section mismatch: reference to .init.text:snd_hda_create_spdif_in_ctls (between 'conexant_build_controls' and 'patch_cxt5047')
WARNING: vmlinux.o(.text+0x2e2c97): Section mismatch: reference to .init.text:snd_hda_create_spdif_out_ctls (between 'conexant_build_controls' and 'patch_cxt5047')
WARNING: vmlinux.o(.text+0x2e2d99): Section mismatch: reference to .init.text:snd_hda_check_board_config (between 'patch_cxt5047' and 'cxt5047_hp_automic')
WARNING: vmlinux.o(.text+0x2e3329): Section mismatch: reference to .init.text:snd_hda_check_board_config (between 'patch_cxt5045' and 'via_build_pcms')
WARNING: vmlinux.o(.text+0x2e3617): Section mismatch: reference to .init.text:snd_hda_add_new_ctls (between 'via_build_controls' and 'via_mux_enum_put')
WARNING: vmlinux.o(.text+0x2e3641): Section mismatch: reference to .init.text:snd_hda_create_spdif_in_ctls (between 'via_build_controls' and 'via_mux_enum_put')
WARNING: vmlinux.o(.text+0x2e365d): Section mismatch: reference to .init.text:snd_hda_create_spdif_out_ctls (between 'via_build_controls' and 'via_mux_enum_put')
WARNING: vmlinux.o(.text+0x2e3ab3): Section mismatch: reference to .init.text:snd_hda_parse_pin_def_config (between 'vt1709_parse_auto_config' and 'patch_vt1709_6ch')
WARNING: vmlinux.o(.text+0x2e429d): Section mismatch: reference to .init.text:snd_hda_parse_pin_def_config (between 'patch_vt1708' and 'patch_vt1709_10ch')
WARNING: vmlinux.o(.data+0xacb10): Section mismatch: reference to .init.text:snd_ad1889_probe (between 'ad1889_pci' and 'ops.20707')
WARNING: vmlinux.o(.text+0x12f014): Section mismatch: reference to .exit.text:mlx4_remove_one (between 'mlx4_restart_one' and 'mlx4_cleanup_mcg_table')
WARNING: vmlinux.o(.init.text+0x29d40): Section mismatch: reference to .exit.text:wbsd_release_resources (between 'wbsd_init' and 'wbsd_probe')
WARNING: vmlinux.o(.init.text+0x29d49): Section mismatch: reference to .exit.text:wbsd_free_mmc (between 'wbsd_init' and 'wbsd_probe')
WARNING: vmlinux.o(.init.text+0x29f28): Section mismatch: reference to .exit.text:wbsd_free_mmc (between 'wbsd_init' and 'wbsd_probe')

...

Gabriel

#4 lore raw
Quoted 11 lines · Gabriel C

Hi Sam ,

me again. I got some more mismatch warnings with a randconfig ( http://194.231.229.228/git-current/randconfig-auto-14 )

...

MODPOST vmlinux.o
WARNING: vmlinux.o(.text+0x8adb): Section mismatch: reference to .init.text:register_cpu (between 'arch_register_cpu' and 'text_poke')
WARNING: vmlinux.o(.text+0xb790c): Section mismatch: reference to .init.text:pcibios_fixup_bus (between 'pci_scan_child_bus' and 'pci_scan_bus_parented')

They need further analysis.

Quoted 13 lines

WARNING: vmlinux.o(.text+0x12f01e): Section mismatch: reference to .init.text:mlx4_init_one (between 'mlx4_restart_one' and 'mlx4_cleanup_mcg_table')
WARNING: vmlinux.o(.text+0x1dd831): Section mismatch: reference to .init.text:setup_TeleInt (between 'checkcard' and 'hisax_init_pcmcia')
WARNING: vmlinux.o(.text+0x1dd9e7): Section mismatch: reference to .init.text:setup_elsa (between 'checkcard' and 'hisax_init_pcmcia')
WARNING: vmlinux.o(.text+0x1dd9f8): Section mismatch: reference to .init.text:setup_avm_a1 (between 'checkcard' and 'hisax_init_pcmcia')
WARNING: vmlinux.o(.text+0x1dda08): Section mismatch: reference to .init.text:setup_teles0 (between 'checkcard' and 'hisax_init_pcmcia')
WARNING: vmlinux.o(.text+0x1dda18): Section mismatch: reference to .init.text:setup_netjet_u (between 'checkcard' and 'hisax_init_pcmcia')
WARNING: vmlinux.o(.text+0x1dda28): Section mismatch: reference to .init.text:setup_hfcpci (between 'checkcard' and 'hisax_init_pcmcia')
WARNING: vmlinux.o(.text+0x1dda38): Section mismatch: reference to .init.text:setup_saphir (between 'checkcard' and 'hisax_init_pcmcia')
WARNING: vmlinux.o(.text+0x1dda48): Section mismatch: reference to .init.text:setup_avm_pcipnp (between 'checkcard' and 'hisax_init_pcmcia')
WARNING: vmlinux.o(.text+0x1dda58): Section mismatch: reference to .init.text:setup_s0box (between 'checkcard' and 'hisax_init_pcmcia')
WARNING: vmlinux.o(.text+0x1dda68): Section mismatch: reference to .init.text:setup_telespci (between 'checkcard' and 'hisax_init_pcmcia')
WARNING: vmlinux.o(.text+0x1dda78): Section mismatch: reference to .init.text:setup_netjet_s (between 'checkcard' and 'hisax_init_pcmcia')
WARNING: vmlinux.o(.text+0x1dda88): Section mismatch: reference to .init.text:setup_hfcs (between 'checkcard' and 'hisax_init_pcmcia')

Quoted 8 lines

WARNING: vmlinux.o(.text+0x1f4e96): Section mismatch: reference to .init.text:clear_pending_isac_ints (between 'inithscxisac' and 'open_hscxstate')
WARNING: vmlinux.o(.text+0x1f4ea4): Section mismatch: reference to .init.text:initisac (between 'inithscxisac' and 'open_hscxstate')
WARNING: vmlinux.o(.text+0x1fa774): Section mismatch: reference to .init.text:clear_pending_isac_ints (between 'AVM_card_msg' and 'avm_pcipnp_interrupt')
WARNING: vmlinux.o(.text+0x1fa77b): Section mismatch: reference to .init.text:initisac (between 'AVM_card_msg' and 'avm_pcipnp_interrupt')
WARNING: vmlinux.o(.text+0x1fdbbf): Section mismatch: reference to .init.text:clear_pending_isac_ints (between 'TeleInt_card_msg' and 'WriteHFC')
WARNING: vmlinux.o(.text+0x1fdbc6): Section mismatch: reference to .init.text:initisac (between 'TeleInt_card_msg' and 'WriteHFC')
WARNING: vmlinux.o(.text+0x1ff98f): Section mismatch: reference to .init.text:clear_pending_isac_ints (between 'NETjet_S_card_msg' and 'netjet_s_interrupt')
WARNING: vmlinux.o(.text+0x1ff996): Section mismatch: reference to .init.text:initisac (between 'NETjet_S_card_msg' and 'netjet_s_interrupt')

ISDN stuff can wait until Karsten and Jeff has finished the ongoing transition to the new PCI API.

Quoted 50 lines

WARNING: vmlinux.o(.text+0x2d6a77): Section mismatch: reference to .init.text:snd_hda_add_new_ctls (between 'alc_build_controls' and 'alc662_auto_set_output_and_unmute')
WARNING: vmlinux.o(.text+0x2d6aa1): Section mismatch: reference to .init.text:snd_hda_create_spdif_in_ctls (between 'alc_build_controls' and 'alc662_auto_set_output_and_unmute')
WARNING: vmlinux.o(.text+0x2d6abd): Section mismatch: reference to .init.text:snd_hda_create_spdif_out_ctls (between 'alc_build_controls' and 'alc662_auto_set_output_and_unmute')
WARNING: vmlinux.o(.text+0x2d994a): Section mismatch: reference to .init.text:snd_hda_parse_pin_def_config (between 'alc880_parse_auto_config' and 'alc882_gpio_mute')
WARNING: vmlinux.o(.text+0x2da2fe): Section mismatch: reference to .init.text:snd_hda_check_board_config (between 'patch_alc268' and 'patch_alc662')
WARNING: vmlinux.o(.text+0x2da31c): Section mismatch: reference to .init.text:snd_hda_parse_pin_def_config (between 'patch_alc268' and 'patch_alc662')
WARNING: vmlinux.o(.text+0x2da6e8): Section mismatch: reference to .init.text:snd_hda_check_board_config (between 'patch_alc662' and 'alc_mux_enum_info')
WARNING: vmlinux.o(.text+0x2da7b5): Section mismatch: reference to .init.text:snd_hda_parse_pin_def_config (between 'patch_alc662' and 'alc_mux_enum_info')
WARNING: vmlinux.o(.text+0x2dae6a): Section mismatch: reference to .init.text:snd_hda_check_board_config (between 'patch_alc880' and 'patch_alc260')
WARNING: vmlinux.o(.text+0x2db036): Section mismatch: reference to .init.text:snd_hda_check_board_config (between 'patch_alc260' and 'patch_alc882')
WARNING: vmlinux.o(.text+0x2db0cc): Section mismatch: reference to .init.text:snd_hda_parse_pin_def_config (between 'patch_alc260' and 'patch_alc882')
WARNING: vmlinux.o(.text+0x2db4b0): Section mismatch: reference to .init.text:snd_hda_check_board_config (between 'patch_alc882' and 'patch_alc883')
WARNING: vmlinux.o(.text+0x2db77a): Section mismatch: reference to .init.text:snd_hda_check_board_config (between 'patch_alc883' and 'patch_alc262')
WARNING: vmlinux.o(.text+0x2db8ea): Section mismatch: reference to .init.text:snd_hda_check_board_config (between 'patch_alc262' and 'patch_alc861')
WARNING: vmlinux.o(.text+0x2db9b7): Section mismatch: reference to .init.text:snd_hda_parse_pin_def_config (between 'patch_alc262' and 'patch_alc861')
WARNING: vmlinux.o(.text+0x2dbca6): Section mismatch: reference to .init.text:snd_hda_check_board_config (between 'patch_alc861' and 'patch_alc861vd')
WARNING: vmlinux.o(.text+0x2dbd3c): Section mismatch: reference to .init.text:snd_hda_parse_pin_def_config (between 'patch_alc861' and 'patch_alc861vd')
WARNING: vmlinux.o(.text+0x2dc0c6): Section mismatch: reference to .init.text:snd_hda_check_board_config (between 'patch_alc861vd' and 'cmi9880_build_pcms')
WARNING: vmlinux.o(.text+0x2dc195): Section mismatch: reference to .init.text:snd_hda_parse_pin_def_config (between 'patch_alc861vd' and 'cmi9880_build_pcms')
WARNING: vmlinux.o(.text+0x2dc77d): Section mismatch: reference to .init.text:snd_hda_add_new_ctls (between 'cmi9880_build_controls' and 'cmi_ch_mode_put')
WARNING: vmlinux.o(.text+0x2dc796): Section mismatch: reference to .init.text:snd_hda_add_new_ctls (between 'cmi9880_build_controls' and 'cmi_ch_mode_put')
WARNING: vmlinux.o(.text+0x2dc7c6): Section mismatch: reference to .init.text:snd_hda_create_spdif_in_ctls (between 'cmi9880_build_controls' and 'cmi_ch_mode_put')
WARNING: vmlinux.o(.text+0x2dc7e6): Section mismatch: reference to .init.text:snd_hda_create_spdif_out_ctls (between 'cmi9880_build_controls' and 'cmi_ch_mode_put')
WARNING: vmlinux.o(.text+0x2dc93e): Section mismatch: reference to .init.text:snd_hda_check_board_config (between 'patch_cmi9880' and 'cmi_mux_enum_get')
WARNING: vmlinux.o(.text+0x2dcab4): Section mismatch: reference to .init.text:snd_hda_parse_pin_def_config (between 'patch_cmi9880' and 'cmi_mux_enum_get')
WARNING: vmlinux.o(.text+0x2dd301): Section mismatch: reference to .init.text:snd_hda_add_new_ctls (between 'ad198x_build_controls' and 'ad1988_laptop_unsol_event')
WARNING: vmlinux.o(.text+0x2dd32b): Section mismatch: reference to .init.text:snd_hda_create_spdif_in_ctls (between 'ad198x_build_controls' and 'ad1988_laptop_unsol_event')
WARNING: vmlinux.o(.text+0x2dd347): Section mismatch: reference to .init.text:snd_hda_create_spdif_out_ctls (between 'ad198x_build_controls' and 'ad1988_laptop_unsol_event')
WARNING: vmlinux.o(.text+0x2ddbad): Section mismatch: reference to .init.text:snd_hda_check_board_config (between 'patch_ad1984' and 'patch_ad1882')
WARNING: vmlinux.o(.text+0x2ddcfb): Section mismatch: reference to .init.text:snd_hda_check_board_config (between 'patch_ad1882' and 'ad198x_free')
WARNING: vmlinux.o(.text+0x2de7db): Section mismatch: reference to .init.text:snd_hda_check_board_config (between 'patch_ad1986a' and 'patch_ad1983')
WARNING: vmlinux.o(.text+0x2deabb): Section mismatch: reference to .init.text:snd_hda_check_board_config (between 'patch_ad1981' and 'patch_ad1988')
WARNING: vmlinux.o(.text+0x2debfd): Section mismatch: reference to .init.text:snd_hda_check_board_config (between 'patch_ad1988' and 'stac92xx_dmux_enum_get')
WARNING: vmlinux.o(.text+0x2dede6): Section mismatch: reference to .init.text:snd_hda_parse_pin_def_config (between 'patch_ad1988' and 'stac92xx_dmux_enum_get')
WARNING: vmlinux.o(.text+0x2e00dc): Section mismatch: reference to .init.text:snd_hda_add_new_ctls (between 'stac92xx_build_controls' and 'stac92xx_mux_enum_put')
WARNING: vmlinux.o(.text+0x2e0105): Section mismatch: reference to .init.text:snd_hda_add_new_ctls (between 'stac92xx_build_controls' and 'stac92xx_mux_enum_put')
WARNING: vmlinux.o(.text+0x2e012f): Section mismatch: reference to .init.text:snd_hda_create_spdif_in_ctls (between 'stac92xx_build_controls' and 'stac92xx_mux_enum_put')
WARNING: vmlinux.o(.text+0x2e014b): Section mismatch: reference to .init.text:snd_hda_create_spdif_out_ctls (between 'stac92xx_build_controls' and 'stac92xx_mux_enum_put')
WARNING: vmlinux.o(.text+0x2e06cf): Section mismatch: reference to .init.text:snd_hda_parse_pin_def_config (between 'stac92xx_parse_auto_config' and 'patch_stac9872')
WARNING: vmlinux.o(.text+0x2e0e79): Section mismatch: reference to .init.text:snd_hda_check_board_config (between 'patch_stac9872' and 'vaio_master_sw_put')
WARNING: vmlinux.o(.text+0x2e11dc): Section mismatch: reference to .init.text:snd_hda_check_board_config (between 'patch_stac9200' and 'patch_stac925x')
WARNING: vmlinux.o(.text+0x2e1251): Section mismatch: reference to .init.text:snd_hda_parse_pin_def_config (between 'patch_stac9200' and 'patch_stac925x')
WARNING: vmlinux.o(.text+0x2e15bb): Section mismatch: reference to .init.text:snd_hda_check_board_config (between 'patch_stac925x' and 'patch_stac922x')
WARNING: vmlinux.o(.text+0x2e172c): Section mismatch: reference to .init.text:snd_hda_check_board_config (between 'patch_stac922x' and 'patch_stac927x')
WARNING: vmlinux.o(.text+0x2e195f): Section mismatch: reference to .init.text:snd_hda_check_board_config (between 'patch_stac927x' and 'patch_stac9205')
WARNING: vmlinux.o(.text+0x2e1aef): Section mismatch: reference to .init.text:snd_hda_check_board_config (between 'patch_stac9205' and 'si3054_switch_info')
WARNING: vmlinux.o(.text+0x2e2116): Section mismatch: reference to .init.text:snd_hda_add_new_ctls (between 'si3054_build_controls' and 'patch_si3054')
WARNING: vmlinux.o(.text+0x2e2248): Section mismatch: reference to .init.text:snd_hda_create_spdif_out_ctls (between 'atihdmi_build_controls' and 'patch_atihdmi')
WARNING: vmlinux.o(.text+0x2e2c51): Section mismatch: reference to .init.text:snd_hda_add_new_ctls (between 'conexant_build_controls' and 'patch_cxt5047')
WARNING: vmlinux.o(.text+0x2e2c7b): Section mismatch: reference to .init.text:snd_hda_create_spdif_in_ctls (between 'conexant_build_controls' and 'patch_cxt5047')

Quoted 8 lines

WARNING: vmlinux.o(.text+0x2e2c97): Section mismatch: reference to .init.text:snd_hda_create_spdif_out_ctls (between 'conexant_build_controls' and 'patch_cxt5047')
WARNING: vmlinux.o(.text+0x2e2d99): Section mismatch: reference to .init.text:snd_hda_check_board_config (between 'patch_cxt5047' and 'cxt5047_hp_automic')
WARNING: vmlinux.o(.text+0x2e3329): Section mismatch: reference to .init.text:snd_hda_check_board_config (between 'patch_cxt5045' and 'via_build_pcms')
WARNING: vmlinux.o(.text+0x2e3617): Section mismatch: reference to .init.text:snd_hda_add_new_ctls (between 'via_build_controls' and 'via_mux_enum_put')
WARNING: vmlinux.o(.text+0x2e3641): Section mismatch: reference to .init.text:snd_hda_create_spdif_in_ctls (between 'via_build_controls' and 'via_mux_enum_put')
WARNING: vmlinux.o(.text+0x2e365d): Section mismatch: reference to .init.text:snd_hda_create_spdif_out_ctls (between 'via_build_controls' and 'via_mux_enum_put')
WARNING: vmlinux.o(.text+0x2e3ab3): Section mismatch: reference to .init.text:snd_hda_parse_pin_def_config (between 'vt1709_parse_auto_config' and 'patch_vt1709_6ch')
WARNING: vmlinux.o(.text+0x2e429d): Section mismatch: reference to .init.text:snd_hda_parse_pin_def_config (between 'patch_vt1708' and 'patch_vt1709_10ch')

All the hda_preset stuff should be marked __devinit as far as I can see. Care to give that a spin yourself?

Quoted 2 lines

WARNING: vmlinux.o(.data+0xacb10): Section mismatch: reference to .init.text:snd_ad1889_probe (between 'ad1889_pci' and 'ops.20707')
WARNING: vmlinux.o(.text+0x12f014): Section mismatch: reference to .exit.text:mlx4_remove_one (between 'mlx4_restart_one' and 'mlx4_cleanup_mcg_table')

Did not look at these two yet.

Quoted 3 lines

WARNING: vmlinux.o(.init.text+0x29d40): Section mismatch: reference to .exit.text:wbsd_release_resources (between 'wbsd_init' and 'wbsd_probe')
WARNING: vmlinux.o(.init.text+0x29d49): Section mismatch: reference to .exit.text:wbsd_free_mmc (between 'wbsd_init' and 'wbsd_probe')
WARNING: vmlinux.o(.init.text+0x29f28): Section mismatch: reference to .exit.text:wbsd_free_mmc (between 'wbsd_init' and 'wbsd_probe')

When a function is marked __exit and used from an init function then the safe choice is to just remove the __exit marking. Usually this is small functions used only in error situations.
Should be trivial too.

Sorry - no patch this time. Could you try to look at it yorself then I will review.

Sam

author
#5 lore raw
Quoted 6 lines · Sam Ravnborg
Quoted 5 lines · Gabriel C

Hi Sam ,

me again. I got some more mismatch warnings with a randconfig ( http://194.231.229.228/git-current/randconfig-auto-14 )

Quoted 7 lines
Quoted 6 lines

...

MODPOST vmlinux.o
WARNING: vmlinux.o(.text+0x8adb): Section mismatch: reference to .init.text:register_cpu (between 'arch_register_cpu' and 'text_poke')
WARNING: vmlinux.o(.text+0xb790c): Section mismatch: reference to .init.text:pcibios_fixup_bus (between 'pci_scan_child_bus' and 'pci_scan_bus_parented')

They need further analysis.

< big snip >

Quoted 2 lines

All the hda_preset stuff should be marked __devinit as far as I can see. Care to give that a spin yourself?

Yes.

I'm not sure I can do it today but tomorrow for sure.

Quoted 5 lines
Quoted 3 lines

WARNING: vmlinux.o(.data+0xacb10): Section mismatch: reference to .init.text:snd_ad1889_probe (between 'ad1889_pci' and 'ops.20707')
WARNING: vmlinux.o(.text+0x12f014): Section mismatch: reference to .exit.text:mlx4_remove_one (between 'mlx4_restart_one' and 'mlx4_cleanup_mcg_table')

Did not look at these two yet.

Quoted 7 lines
Quoted 3 lines

WARNING: vmlinux.o(.init.text+0x29d40): Section mismatch: reference to .exit.text:wbsd_release_resources (between 'wbsd_init' and 'wbsd_probe')
WARNING: vmlinux.o(.init.text+0x29d49): Section mismatch: reference to .exit.text:wbsd_free_mmc (between 'wbsd_init' and 'wbsd_probe')
WARNING: vmlinux.o(.init.text+0x29f28): Section mismatch: reference to .exit.text:wbsd_free_mmc (between 'wbsd_init' and 'wbsd_probe')

When a function is marked __exit and used from an init function then the safe choice is to just remove the __exit marking. Usually this is small functions used only in error situations.
Should be trivial too.

I'll look at those too

Quoted 2 lines

Sorry - no patch this time. Could you try to look at it yorself then I will review.

Ok I'll try.

Quoted 3 lines

Sam

Gabriel

author
#6 lore raw

PATCH 1/1 Fix section mismatch warnings in sound/pci/hda/

This patch fixes the following section mismatch warnings in sound/pci/hda/*

...

WARNING: vmlinux.o(.text+0x2d6a77): Section mismatch: reference to .init.text:snd_hda_add_new_ctls (between 'alc_build_controls' and 'alc662_auto_set_output_and_unmute')
WARNING: vmlinux.o(.text+0x2d6aa1): Section mismatch: reference to .init.text:snd_hda_create_spdif_in_ctls (between 'alc_build_controls' and 'alc662_auto_set_output_and_unmute')
WARNING: vmlinux.o(.text+0x2d6abd): Section mismatch: reference to .init.text:snd_hda_create_spdif_out_ctls (between 'alc_build_controls' and 'alc662_auto_set_output_and_unmute')
WARNING: vmlinux.o(.text+0x2d994a): Section mismatch: reference to .init.text:snd_hda_parse_pin_def_config (between 'alc880_parse_auto_config' and 'alc882_gpio_mute')
WARNING: vmlinux.o(.text+0x2da2fe): Section mismatch: reference to .init.text:snd_hda_check_board_config (between 'patch_alc268' and 'patch_alc662')
WARNING: vmlinux.o(.text+0x2da31c): Section mismatch: reference to .init.text:snd_hda_parse_pin_def_config (between 'patch_alc268' and 'patch_alc662')
WARNING: vmlinux.o(.text+0x2da6e8): Section mismatch: reference to .init.text:snd_hda_check_board_config (between 'patch_alc662' and 'alc_mux_enum_info')
WARNING: vmlinux.o(.text+0x2da7b5): Section mismatch: reference to .init.text:snd_hda_parse_pin_def_config (between 'patch_alc662' and 'alc_mux_enum_info')
WARNING: vmlinux.o(.text+0x2dae6a): Section mismatch: reference to .init.text:snd_hda_check_board_config (between 'patch_alc880' and 'patch_alc260')
WARNING: vmlinux.o(.text+0x2db036): Section mismatch: reference to .init.text:snd_hda_check_board_config (between 'patch_alc260' and 'patch_alc882')
WARNING: vmlinux.o(.text+0x2db0cc): Section mismatch: reference to .init.text:snd_hda_parse_pin_def_config (between 'patch_alc260' and 'patch_alc882')
WARNING: vmlinux.o(.text+0x2db4b0): Section mismatch: reference to .init.text:snd_hda_check_board_config (between 'patch_alc882' and 'patch_alc883')
WARNING: vmlinux.o(.text+0x2db77a): Section mismatch: reference to .init.text:snd_hda_check_board_config (between 'patch_alc883' and 'patch_alc262')
WARNING: vmlinux.o(.text+0x2db8ea): Section mismatch: reference to .init.text:snd_hda_check_board_config (between 'patch_alc262' and 'patch_alc861')
WARNING: vmlinux.o(.text+0x2db9b7): Section mismatch: reference to .init.text:snd_hda_parse_pin_def_config (between 'patch_alc262' and 'patch_alc861')
WARNING: vmlinux.o(.text+0x2dbca6): Section mismatch: reference to .init.text:snd_hda_check_board_config (between 'patch_alc861' and 'patch_alc861vd')
WARNING: vmlinux.o(.text+0x2dbd3c): Section mismatch: reference to .init.text:snd_hda_parse_pin_def_config (between 'patch_alc861' and 'patch_alc861vd')
WARNING: vmlinux.o(.text+0x2dc0c6): Section mismatch: reference to .init.text:snd_hda_check_board_config (between 'patch_alc861vd' and 'cmi9880_build_pcms')
WARNING: vmlinux.o(.text+0x2dc195): Section mismatch: reference to .init.text:snd_hda_parse_pin_def_config (between 'patch_alc861vd' and 'cmi9880_build_pcms')
WARNING: vmlinux.o(.text+0x2dc77d): Section mismatch: reference to .init.text:snd_hda_add_new_ctls (between 'cmi9880_build_controls' and 'cmi_ch_mode_put')
WARNING: vmlinux.o(.text+0x2dc796): Section mismatch: reference to .init.text:snd_hda_add_new_ctls (between 'cmi9880_build_controls' and 'cmi_ch_mode_put')
WARNING: vmlinux.o(.text+0x2dc7c6): Section mismatch: reference to .init.text:snd_hda_create_spdif_in_ctls (between 'cmi9880_build_controls' and 'cmi_ch_mode_put')
WARNING: vmlinux.o(.text+0x2dc7e6): Section mismatch: reference to .init.text:snd_hda_create_spdif_out_ctls (between 'cmi9880_build_controls' and 'cmi_ch_mode_put')
WARNING: vmlinux.o(.text+0x2dc93e): Section mismatch: reference to .init.text:snd_hda_check_board_config (between 'patch_cmi9880' and 'cmi_mux_enum_get')
WARNING: vmlinux.o(.text+0x2dcab4): Section mismatch: reference to .init.text:snd_hda_parse_pin_def_config (between 'patch_cmi9880' and 'cmi_mux_enum_get')
WARNING: vmlinux.o(.text+0x2dd301): Section mismatch: reference to .init.text:snd_hda_add_new_ctls (between 'ad198x_build_controls' and 'ad1988_laptop_unsol_event')
WARNING: vmlinux.o(.text+0x2dd32b): Section mismatch: reference to .init.text:snd_hda_create_spdif_in_ctls (between 'ad198x_build_controls' and 'ad1988_laptop_unsol_event')
WARNING: vmlinux.o(.text+0x2dd347): Section mismatch: reference to .init.text:snd_hda_create_spdif_out_ctls (between 'ad198x_build_controls' and 'ad1988_laptop_unsol_event')
WARNING: vmlinux.o(.text+0x2ddbad): Section mismatch: reference to .init.text:snd_hda_check_board_config (between 'patch_ad1984' and 'patch_ad1882')
WARNING: vmlinux.o(.text+0x2ddcfb): Section mismatch: reference to .init.text:snd_hda_check_board_config (between 'patch_ad1882' and 'ad198x_free')
WARNING: vmlinux.o(.text+0x2de7db): Section mismatch: reference to .init.text:snd_hda_check_board_config (between 'patch_ad1986a' and 'patch_ad1983')
WARNING: vmlinux.o(.text+0x2deabb): Section mismatch: reference to .init.text:snd_hda_check_board_config (between 'patch_ad1981' and 'patch_ad1988')
WARNING: vmlinux.o(.text+0x2debfd): Section mismatch: reference to .init.text:snd_hda_check_board_config (between 'patch_ad1988' and 'stac92xx_dmux_enum_get')
WARNING: vmlinux.o(.text+0x2dede6): Section mismatch: reference to .init.text:snd_hda_parse_pin_def_config (between 'patch_ad1988' and 'stac92xx_dmux_enum_get')
WARNING: vmlinux.o(.text+0x2e00dc): Section mismatch: reference to .init.text:snd_hda_add_new_ctls (between 'stac92xx_build_controls' and 'stac92xx_mux_enum_put')
WARNING: vmlinux.o(.text+0x2e0105): Section mismatch: reference to .init.text:snd_hda_add_new_ctls (between 'stac92xx_build_controls' and 'stac92xx_mux_enum_put')
WARNING: vmlinux.o(.text+0x2e012f): Section mismatch: reference to .init.text:snd_hda_create_spdif_in_ctls (between 'stac92xx_build_controls' and 'stac92xx_mux_enum_put')
WARNING: vmlinux.o(.text+0x2e014b): Section mismatch: reference to .init.text:snd_hda_create_spdif_out_ctls (between 'stac92xx_build_controls' and 'stac92xx_mux_enum_put')
WARNING: vmlinux.o(.text+0x2e06cf): Section mismatch: reference to .init.text:snd_hda_parse_pin_def_config (between 'stac92xx_parse_auto_config' and 'patch_stac9872')
WARNING: vmlinux.o(.text+0x2e0e79): Section mismatch: reference to .init.text:snd_hda_check_board_config (between 'patch_stac9872' and 'vaio_master_sw_put')
WARNING: vmlinux.o(.text+0x2e11dc): Section mismatch: reference to .init.text:snd_hda_check_board_config (between 'patch_stac9200' and 'patch_stac925x')
WARNING: vmlinux.o(.text+0x2e1251): Section mismatch: reference to .init.text:snd_hda_parse_pin_def_config (between 'patch_stac9200' and 'patch_stac925x')
WARNING: vmlinux.o(.text+0x2e15bb): Section mismatch: reference to .init.text:snd_hda_check_board_config (between 'patch_stac925x' and 'patch_stac922x')
WARNING: vmlinux.o(.text+0x2e172c): Section mismatch: reference to .init.text:snd_hda_check_board_config (between 'patch_stac922x' and 'patch_stac927x')
WARNING: vmlinux.o(.text+0x2e195f): Section mismatch: reference to .init.text:snd_hda_check_board_config (between 'patch_stac927x' and 'patch_stac9205')
WARNING: vmlinux.o(.text+0x2e1aef): Section mismatch: reference to .init.text:snd_hda_check_board_config (between 'patch_stac9205' and 'si3054_switch_info')
WARNING: vmlinux.o(.text+0x2e2116): Section mismatch: reference to .init.text:snd_hda_add_new_ctls (between 'si3054_build_controls' and 'patch_si3054')
WARNING: vmlinux.o(.text+0x2e2248): Section mismatch: reference to .init.text:snd_hda_create_spdif_out_ctls (between 'atihdmi_build_controls' and 'patch_atihdmi')
WARNING: vmlinux.o(.text+0x2e2c51): Section mismatch: reference to .init.text:snd_hda_add_new_ctls (between 'conexant_build_controls' and 'patch_cxt5047')
WARNING: vmlinux.o(.text+0x2e2c7b): Section mismatch: reference to .init.text:snd_hda_create_spdif_in_ctls (between 'conexant_build_controls' and 'patch_cxt5047')
WARNING: vmlinux.o(.text+0x2e2c97): Section mismatch: reference to .init.text:snd_hda_create_spdif_out_ctls (between 'conexant_build_controls' and 'patch_cxt5047')
WARNING: vmlinux.o(.text+0x2e2d99): Section mismatch: reference to .init.text:snd_hda_check_board_config (between 'patch_cxt5047' and 'cxt5047_hp_automic')
WARNING: vmlinux.o(.text+0x2e3329): Section mismatch: reference to .init.text:snd_hda_check_board_config (between 'patch_cxt5045' and 'via_build_pcms')
WARNING: vmlinux.o(.text+0x2e3617): Section mismatch: reference to .init.text:snd_hda_add_new_ctls (between 'via_build_controls' and 'via_mux_enum_put')
WARNING: vmlinux.o(.text+0x2e3641): Section mismatch: reference to .init.text:snd_hda_create_spdif_in_ctls (between 'via_build_controls' and 'via_mux_enum_put')
WARNING: vmlinux.o(.text+0x2e365d): Section mismatch: reference to .init.text:snd_hda_create_spdif_out_ctls (between 'via_build_controls' and 'via_mux_enum_put')
WARNING: vmlinux.o(.text+0x2e3ab3): Section mismatch: reference to .init.text:snd_hda_parse_pin_def_config (between 'vt1709_parse_auto_config' and 'patch_vt1709_6ch')
WARNING: vmlinux.o(.text+0x2e429d): Section mismatch: reference to .init.text:snd_hda_parse_pin_def_config (between 'patch_vt1708' and 'patch_vt1709_10ch')

...

---

Sam , please review.

 sound/pci/hda/hda_patch.h      |    2 +-
 sound/pci/hda/patch_analog.c   |   14 +++++++-------
 sound/pci/hda/patch_atihdmi.c  |    2 +-
 sound/pci/hda/patch_cmedia.c   |    6 +++---
 sound/pci/hda/patch_conexant.c |   10 +++++-----
 sound/pci/hda/patch_realtek.c  |   24 ++++++++++++------------
 sound/pci/hda/patch_si3054.c   |    2 +-
 sound/pci/hda/patch_sigmatel.c |   22 +++++++++++-----------
 sound/pci/hda/patch_via.c      |   12 ++++++------
 9 files changed, 47 insertions(+), 47 deletions(-)
sound/pci/hda/hda_patch.h +1 -1
index 9f9e9ae..c79e173 100644
@@ -19,7 +19,7 @@ extern struct hda_codec_preset snd_hda_preset_conexant[];
 /* VIA codecs */
 extern struct hda_codec_preset snd_hda_preset_via[];
 
-static const struct hda_codec_preset *hda_preset_tables[] = {
+static const struct hda_codec_preset *hda_preset_tables[] __devinitdata = {
 	snd_hda_preset_realtek,
 	snd_hda_preset_cmedia,
 	snd_hda_preset_analog,
sound/pci/hda/patch_analog.c +7 -7
index 4d7f8d1..094eb21 100644
@@ -120,7 +120,7 @@ static int ad198x_init(struct hda_codec *codec)
 	return 0;
 }
 
-static int ad198x_build_controls(struct hda_codec *codec)
+static int __devinit ad198x_build_controls(struct hda_codec *codec)
 {
 	struct ad198x_spec *spec = codec->spec;
 	unsigned int i;
@@ -855,7 +855,7 @@ static struct snd_pci_quirk ad1986a_cfg_tbl[] = {
 	{}
 };
 
-static int patch_ad1986a(struct hda_codec *codec)
+static int __devinit patch_ad1986a(struct hda_codec *codec)
 {
 	struct ad198x_spec *spec;
 	int board_config;
@@ -1465,7 +1465,7 @@ static struct snd_pci_quirk ad1981_cfg_tbl[] = {
 	{}
 };
 
-static int patch_ad1981(struct hda_codec *codec)
+static int __devinit patch_ad1981(struct hda_codec *codec)
 {
 	struct ad198x_spec *spec;
 	int board_config;
@@ -2654,7 +2654,7 @@ static struct snd_pci_quirk ad1988_cfg_tbl[] = {
 	{}
 };
 
-static int patch_ad1988(struct hda_codec *codec)
+static int __devinit patch_ad1988(struct hda_codec *codec)
 {
 	struct ad198x_spec *spec;
 	int board_config;
@@ -3085,7 +3085,7 @@ static struct snd_pci_quirk ad1984_cfg_tbl[] = {
 	{}
 };
 
-static int patch_ad1984(struct hda_codec *codec)
+static int __devinit patch_ad1984(struct hda_codec *codec)
 {
 	struct ad198x_spec *spec;
 	int board_config, err;
@@ -3344,7 +3344,7 @@ static const char *ad1882_models[AD1986A_MODELS] = {
 };
 
 
-static int patch_ad1882(struct hda_codec *codec)
+static int __devinit patch_ad1882(struct hda_codec *codec)
 {
 	struct ad198x_spec *spec;
 	int board_config;
@@ -3398,7 +3398,7 @@ static int patch_ad1882(struct hda_codec *codec)
 /*
  * patch entries
  */
-struct hda_codec_preset snd_hda_preset_analog[] = {
+struct hda_codec_preset snd_hda_preset_analog[] __devinitdata = {
 	{ .id = 0x11d41882, .name = "AD1882", .patch = patch_ad1882 },
 	{ .id = 0x11d41884, .name = "AD1884", .patch = patch_ad1884 },
 	{ .id = 0x11d41981, .name = "AD1981", .patch = patch_ad1981 },
sound/pci/hda/patch_atihdmi.c +1 -1
index 72d3ab9..bb54cba 100644
@@ -44,7 +44,7 @@ static struct hda_verb atihdmi_basic_init[] = {
 /*
  * Controls
  */
-static int atihdmi_build_controls(struct hda_codec *codec)
+static int __devinit atihdmi_build_controls(struct hda_codec *codec)
 {
 	struct atihdmi_spec *spec = codec->spec;
 	int err;
sound/pci/hda/patch_cmedia.c +3 -3
index 3c722e6..f7a2faf 100644
@@ -315,7 +315,7 @@ static struct hda_verb cmi9880_allout_init[] = {
 
 /*
  */
-static int cmi9880_build_controls(struct hda_codec *codec)
+static int __devinit cmi9880_build_controls(struct hda_codec *codec)
 {
 	struct cmi_spec *spec = codec->spec;
 	int err;
@@ -640,7 +640,7 @@ static struct hda_codec_ops cmi9880_patch_ops = {
 #endif
 };
 
-static int patch_cmi9880(struct hda_codec *codec)
+static int __devinit patch_cmi9880(struct hda_codec *codec)
 {
 	struct cmi_spec *spec;
 
@@ -753,7 +753,7 @@ static int patch_cmi9880(struct hda_codec *codec)
 /*
  * patch entries
  */
-struct hda_codec_preset snd_hda_preset_cmedia[] = {
+struct hda_codec_preset snd_hda_preset_cmedia[] __devinitdata = {
 	{ .id = 0x13f69880, .name = "CMI9880", .patch = patch_cmi9880 },
  	{ .id = 0x434d4980, .name = "CMI9880", .patch = patch_cmi9880 },
 	{} /* terminator */
sound/pci/hda/patch_conexant.c +5 -5
index 4d8e8af..8cdb4b7 100644
@@ -328,7 +328,7 @@ static int conexant_resume(struct hda_codec *codec)
 }
 #endif
 
-static int conexant_build_controls(struct hda_codec *codec)
+static int __devinit conexant_build_controls(struct hda_codec *codec)
 {
 	struct conexant_spec *spec = codec->spec;
 	unsigned int i;
@@ -808,7 +808,7 @@ static struct snd_pci_quirk cxt5045_cfg_tbl[] = {
 	{}
 };
 
-static int patch_cxt5045(struct hda_codec *codec)
+static int __devinit patch_cxt5045(struct hda_codec *codec)
 {
 	struct conexant_spec *spec;
 	int board_config;
@@ -1317,7 +1317,7 @@ static struct snd_pci_quirk cxt5047_cfg_tbl[] = {
 	{}
 };
 
-static int patch_cxt5047(struct hda_codec *codec)
+static int __devinit patch_cxt5047(struct hda_codec *codec)
 {
 	struct conexant_spec *spec;
 	int board_config;
@@ -1374,12 +1374,12 @@ static int patch_cxt5047(struct hda_codec *codec)
 		spec->mixers[0] = cxt5047_test_mixer;
 		spec->init_verbs[0] = cxt5047_test_init_verbs;
 		codec->patch_ops.unsol_event = cxt5047_hp_unsol_event;
-#endif	
+#endif
 	}
 	return 0;
 }
 
-struct hda_codec_preset snd_hda_preset_conexant[] = {
+struct hda_codec_preset snd_hda_preset_conexant[] __devinitdata = {
 	{ .id = 0x14f15045, .name = "CX20549 (Venice)",
 	  .patch = patch_cxt5045 },
 	{ .id = 0x14f15047, .name = "CX20551 (Waikiki)",
sound/pci/hda/patch_realtek.c +12 -12
index 9a47eec..2f782d6 100644
@@ -1253,7 +1253,7 @@ static struct snd_kcontrol_new alc880_uniwill_p53_mixer[] = {
 /*
  * build control elements
  */
-static int alc_build_controls(struct hda_codec *codec)
+static int __devinit alc_build_controls(struct hda_codec *codec)
 {
 	struct alc_spec *spec = codec->spec;
 	int err;
@@ -3269,7 +3269,7 @@ static void alc880_auto_init_analog_input(struct hda_codec *codec)
 /* return 1 if successful, 0 if the proper config is not found,
  * or a negative error code
  */
-static int alc880_parse_auto_config(struct hda_codec *codec)
+static int __devinit alc880_parse_auto_config(struct hda_codec *codec)
 {
 	struct alc_spec *spec = codec->spec;
 	int err;
@@ -3331,7 +3331,7 @@ static void alc880_auto_init(struct hda_codec *codec)
  * OK, here we have finally the patch for ALC880
  */
 
-static int patch_alc880(struct hda_codec *codec)
+static int __devinit patch_alc880(struct hda_codec *codec)
 {
 	struct alc_spec *spec;
 	int board_config;
@@ -4702,7 +4702,7 @@ static struct alc_config_preset alc260_presets[] = {
 #endif
 };
 
-static int patch_alc260(struct hda_codec *codec)
+static int __devinit patch_alc260(struct hda_codec *codec)
 {
 	struct alc_spec *spec;
 	int err, board_config;
@@ -5630,7 +5630,7 @@ static void alc882_auto_init(struct hda_codec *codec)
 	alc882_auto_init_analog_input(codec);
 }
 
-static int patch_alc882(struct hda_codec *codec)
+static int __devinit patch_alc882(struct hda_codec *codec)
 {
 	struct alc_spec *spec;
 	int err, board_config;
@@ -6993,7 +6993,7 @@ static void alc883_auto_init(struct hda_codec *codec)
 	alc883_auto_init_analog_input(codec);
 }
 
-static int patch_alc883(struct hda_codec *codec)
+static int __devinit patch_alc883(struct hda_codec *codec)
 {
 	struct alc_spec *spec;
 	int err, board_config;
@@ -8057,7 +8057,7 @@ static struct alc_config_preset alc262_presets[] = {
 	},	
 };
 
-static int patch_alc262(struct hda_codec *codec)
+static int __devinit patch_alc262(struct hda_codec *codec)
 {
 	struct alc_spec *spec;
 	int board_config;
@@ -8575,7 +8575,7 @@ static struct alc_config_preset alc268_presets[] = {
 	},
 };
 
-static int patch_alc268(struct hda_codec *codec)
+static int __devinit patch_alc268(struct hda_codec *codec)
 {
 	struct alc_spec *spec;
 	int board_config;
@@ -9746,7 +9746,7 @@ static struct alc_config_preset alc861_presets[] = {
 };
 
 
-static int patch_alc861(struct hda_codec *codec)
+static int __devinit patch_alc861(struct hda_codec *codec)
 {
 	struct alc_spec *spec;
 	int board_config;
@@ -10679,7 +10679,7 @@ static void alc861vd_auto_init(struct hda_codec *codec)
 	alc861vd_auto_init_analog_input(codec);
 }
 
-static int patch_alc861vd(struct hda_codec *codec)
+static int __devinit patch_alc861vd(struct hda_codec *codec)
 {
 	struct alc_spec *spec;
 	int err, board_config;
@@ -11533,7 +11533,7 @@ static void alc662_auto_init(struct hda_codec *codec)
 	alc662_auto_init_analog_input(codec);
 }
 
-static int patch_alc662(struct hda_codec *codec)
+static int __devinit patch_alc662(struct hda_codec *codec)
 {
 	struct alc_spec *spec;
 	int err, board_config;
@@ -11593,7 +11593,7 @@ static int patch_alc662(struct hda_codec *codec)
 /*
  * patch entries
  */
-struct hda_codec_preset snd_hda_preset_realtek[] = {
+struct hda_codec_preset snd_hda_preset_realtek[] __devinitdata = {
 	{ .id = 0x10ec0260, .name = "ALC260", .patch = patch_alc260 },
 	{ .id = 0x10ec0262, .name = "ALC262", .patch = patch_alc262 },
 	{ .id = 0x10ec0268, .name = "ALC268", .patch = patch_alc268 },
sound/pci/hda/patch_si3054.c +1 -1
index 6d2ecc3..48d1841 100644
@@ -143,7 +143,7 @@ static struct snd_kcontrol_new si3054_modem_mixer[] = {
 	{}
 };
 
-static int si3054_build_controls(struct hda_codec *codec)
+static int __devinit si3054_build_controls(struct hda_codec *codec)
 {
 	return snd_hda_add_new_ctls(codec, si3054_modem_mixer);
 }
sound/pci/hda/patch_sigmatel.c +11 -11
index 3f25de7..c9bf5af 100644
@@ -417,7 +417,7 @@ static struct snd_kcontrol_new stac9205_mixer[] = {
 	{ } /* end */
 };
 
-static int stac92xx_build_controls(struct hda_codec *codec)
+static int __devinit stac92xx_build_controls(struct hda_codec *codec)
 {
 	struct sigmatel_spec *spec = codec->spec;
 	int err;
@@ -1575,7 +1575,7 @@ static void stac92xx_auto_init_hp_out(struct hda_codec *codec)
 	}
 }
 
-static int stac92xx_parse_auto_config(struct hda_codec *codec, hda_nid_t dig_out, hda_nid_t dig_in)
+static int __devinit stac92xx_parse_auto_config(struct hda_codec *codec, hda_nid_t dig_out, hda_nid_t dig_in)
 {
 	struct sigmatel_spec *spec = codec->spec;
 	int err;
@@ -1967,7 +1967,7 @@ static struct hda_codec_ops stac92xx_patch_ops = {
 #endif
 };
 
-static int patch_stac9200(struct hda_codec *codec)
+static int __devinit patch_stac9200(struct hda_codec *codec)
 {
 	struct sigmatel_spec *spec;
 	int err;
@@ -2017,7 +2017,7 @@ static int patch_stac9200(struct hda_codec *codec)
 	return 0;
 }
 
-static int patch_stac925x(struct hda_codec *codec)
+static int __devinit patch_stac925x(struct hda_codec *codec)
 {
 	struct sigmatel_spec *spec;
 	int err;
@@ -2089,7 +2089,7 @@ static int patch_stac925x(struct hda_codec *codec)
 	return 0;
 }
 
-static int patch_stac922x(struct hda_codec *codec)
+static int __devinit patch_stac922x(struct hda_codec *codec)
 {
 	struct sigmatel_spec *spec;
 	int err;
@@ -2190,7 +2190,7 @@ static int patch_stac922x(struct hda_codec *codec)
 	return 0;
 }
 
-static int patch_stac927x(struct hda_codec *codec)
+static int __devinit patch_stac927x(struct hda_codec *codec)
 {
 	struct sigmatel_spec *spec;
 	int err;
@@ -2269,7 +2269,7 @@ static int patch_stac927x(struct hda_codec *codec)
 	return 0;
 }
 
-static int patch_stac9205(struct hda_codec *codec)
+static int __devinit patch_stac9205(struct hda_codec *codec)
 {
 	struct sigmatel_spec *spec;
 	int err, gpio_mask, gpio_data;
@@ -2533,7 +2533,7 @@ static struct snd_pci_quirk stac9872_cfg_tbl[] = {
 	{}
 };
 
-static int patch_stac9872(struct hda_codec *codec)
+static int __devinit patch_stac9872(struct hda_codec *codec)
 {
 	struct sigmatel_spec *spec;
 	int board_config;
@@ -2544,7 +2544,7 @@ static int patch_stac9872(struct hda_codec *codec)
 	if (board_config < 0)
 		/* unknown config, let generic-parser do its job... */
 		return snd_hda_parse_generic_codec(codec);
-	
+
 	spec  = kzalloc(sizeof(*spec), GFP_KERNEL);
 	if (spec == NULL)
 		return -ENOMEM;
@@ -2565,7 +2565,7 @@ static int patch_stac9872(struct hda_codec *codec)
 		spec->input_mux = &vaio_mux;
 		spec->mux_nids = vaio_mux_nids;
 		break;
-	
+
 	case CXD9872AKD_VAIO:
 		spec->mixer = vaio_ar_mixer;
 		spec->init = vaio_ar_init;
@@ -2588,7 +2588,7 @@ static int patch_stac9872(struct hda_codec *codec)
 /*
  * patch entries
  */
-struct hda_codec_preset snd_hda_preset_sigmatel[] = {
+struct hda_codec_preset snd_hda_preset_sigmatel[] __devinitdata = {
  	{ .id = 0x83847690, .name = "STAC9200", .patch = patch_stac9200 },
  	{ .id = 0x83847882, .name = "STAC9220 A1", .patch = patch_stac922x },
  	{ .id = 0x83847680, .name = "STAC9221 A1", .patch = patch_stac922x },
sound/pci/hda/patch_via.c +6 -6
index ba32d1e..c9a1d70 100644
@@ -455,7 +455,7 @@ static struct hda_pcm_stream vt1708_pcm_digital_capture = {
 	.channels_max = 2,
 };
 
-static int via_build_controls(struct hda_codec *codec)
+static int __devinit via_build_controls(struct hda_codec *codec)
 {
 	struct via_spec *spec = codec->spec;
 	int err;
@@ -813,7 +813,7 @@ static int via_auto_init(struct hda_codec *codec)
 	return 0;
 }
 
-static int patch_vt1708(struct hda_codec *codec)
+static int __devinit patch_vt1708(struct hda_codec *codec)
 {
 	struct via_spec *spec;
 	int err;
@@ -1212,7 +1212,7 @@ static int vt1709_auto_create_analog_input_ctls(struct via_spec *spec,
 	return 0;
 }
 
-static int vt1709_parse_auto_config(struct hda_codec *codec)
+static int __devinit vt1709_parse_auto_config(struct hda_codec *codec)
 {
 	struct via_spec *spec = codec->spec;
 	int err;
@@ -1251,7 +1251,7 @@ static int vt1709_parse_auto_config(struct hda_codec *codec)
 	return 1;
 }
 
-static int patch_vt1709_10ch(struct hda_codec *codec)
+static int __devinit patch_vt1709_10ch(struct hda_codec *codec)
 {
 	struct via_spec *spec;
 	int err;
@@ -1341,7 +1341,7 @@ static struct hda_verb vt1709_6ch_volume_init_verbs[] = {
 	{ }
 };
 
-static int patch_vt1709_6ch(struct hda_codec *codec)
+static int __devinit patch_vt1709_6ch(struct hda_codec *codec)
 {
 	struct via_spec *spec;
 	int err;
@@ -1390,7 +1390,7 @@ static int patch_vt1709_6ch(struct hda_codec *codec)
 /*
  * patch entries
  */
-struct hda_codec_preset snd_hda_preset_via[] = {
+struct hda_codec_preset snd_hda_preset_via[] __devinitdata = {
 	{ .id = 0x11061708, .name = "VIA VT1708", .patch = patch_vt1708},
 	{ .id = 0x11061709, .name = "VIA VT1708", .patch = patch_vt1708},
 	{ .id = 0x1106170A, .name = "VIA VT1708", .patch = patch_vt1708},
author
#7 lore raw
In reply to Gabriel C
Quoted 9 lines
Quoted 8 lines
Quoted 4 lines

WARNING: vmlinux.o(.init.text+0x29d40): Section mismatch: reference to .exit.text:wbsd_release_resources (between 'wbsd_init' and 'wbsd_probe')
WARNING: vmlinux.o(.init.text+0x29d49): Section mismatch: reference to .exit.text:wbsd_free_mmc (between 'wbsd_init' and 'wbsd_probe')
WARNING: vmlinux.o(.init.text+0x29f28): Section mismatch: reference to .exit.text:wbsd_free_mmc (between 'wbsd_init' and 'wbsd_probe')

When a function is marked __exit and used from an init function then the safe choice is to just remove the __exit marking. Usually this is small functions used only in error situations.
Should be trivial too.

Quoted 6 lines

I'll look at those too

Quoted 1 line

Sorry - no patch this time. Could you try to look at it yorself then I will review.

Ok I'll try.

The warnings gone with this patch but I'm not really sure it is correct.

 drivers/mmc/host/wbsd.c |   10 +++++-----
 1 files changed, 5 insertions(+), 5 deletions(-)
drivers/mmc/host/wbsd.c +5 -5
index e0c9808..9bf2a87 100644
@@ -1266,7 +1266,7 @@ static int __devinit wbsd_alloc_mmc(struct device *dev)
 	return 0;
 }
 
-static void __devexit wbsd_free_mmc(struct device *dev)
+static void wbsd_free_mmc(struct device *dev)
 {
 	struct mmc_host *mmc;
 	struct wbsd_host *host;
@@ -1358,7 +1358,7 @@ static int __devinit wbsd_request_region(struct wbsd_host *host, int base)
 	return 0;
 }
 
-static void __devexit wbsd_release_regions(struct wbsd_host *host)
+static void wbsd_release_regions(struct wbsd_host *host)
 {
 	if (host->base)
 		release_region(host->base, 8);
@@ -1434,7 +1434,7 @@ err:
 		"Falling back on FIFO.\n", dma);
 }
 
-static void __devexit wbsd_release_dma(struct wbsd_host *host)
+static void wbsd_release_dma(struct wbsd_host *host)
 {
 	if (host->dma_addr) {
 		dma_unmap_single(mmc_dev(host->mmc), host->dma_addr,
@@ -1484,7 +1484,7 @@ static int __devinit wbsd_request_irq(struct wbsd_host *host, int irq)
 	return 0;
 }
 
-static void __devexit wbsd_release_irq(struct wbsd_host *host)
+static void  wbsd_release_irq(struct wbsd_host *host)
 {
 	if (!host->irq)
 		return;
@@ -1535,7 +1535,7 @@ static int __devinit wbsd_request_resources(struct wbsd_host *host,
  * Release all resources for the host.
  */
 
-static void __devexit wbsd_release_resources(struct wbsd_host *host)
+static void wbsd_release_resources(struct wbsd_host *host)
 {
 	wbsd_release_dma(host);
 	wbsd_release_irq(host);
Acked-by
#8 lore raw
Quoted 9 lines · Gabriel C
Quoted 9 lines
Quoted 8 lines
Quoted 4 lines

WARNING: vmlinux.o(.init.text+0x29d40): Section mismatch: reference to .exit.text:wbsd_release_resources (between 'wbsd_init' and 'wbsd_probe')
WARNING: vmlinux.o(.init.text+0x29d49): Section mismatch: reference to .exit.text:wbsd_free_mmc (between 'wbsd_init' and 'wbsd_probe')
WARNING: vmlinux.o(.init.text+0x29f28): Section mismatch: reference to .exit.text:wbsd_free_mmc (between 'wbsd_init' and 'wbsd_probe')

When a function is marked __exit and used from an init function then the safe choice is to just remove the __exit marking. Usually this is small functions used only in error situations.
Should be trivial too.

Quoted 8 lines
Quoted 6 lines

I'll look at those too

Quoted 1 line

Sorry - no patch this time. Could you try to look at it yorself then I will review.

Ok I'll try.

The warnings gone with this patch but I'm not really sure it is correct.

Looks correct to me.
You drop the __devexit marking for functions used outside __exit.

Sam

Quoted 54 lines

 drivers/mmc/host/wbsd.c |   10 +++++-----
 1 files changed, 5 insertions(+), 5 deletions(-)
drivers/mmc/host/wbsd.c +5 -5
index e0c9808..9bf2a87 100644
@@ -1266,7 +1266,7 @@ static int __devinit wbsd_alloc_mmc(struct device *dev)
 	return 0;
 }
 
-static void __devexit wbsd_free_mmc(struct device *dev)
+static void wbsd_free_mmc(struct device *dev)
 {
 	struct mmc_host *mmc;
 	struct wbsd_host *host;
@@ -1358,7 +1358,7 @@ static int __devinit wbsd_request_region(struct wbsd_host *host, int base)
 	return 0;
 }
 
-static void __devexit wbsd_release_regions(struct wbsd_host *host)
+static void wbsd_release_regions(struct wbsd_host *host)
 {
 	if (host->base)
 		release_region(host->base, 8);
@@ -1434,7 +1434,7 @@ err:
 		"Falling back on FIFO.\n", dma);
 }
 
-static void __devexit wbsd_release_dma(struct wbsd_host *host)
+static void wbsd_release_dma(struct wbsd_host *host)
 {
 	if (host->dma_addr) {
 		dma_unmap_single(mmc_dev(host->mmc), host->dma_addr,
@@ -1484,7 +1484,7 @@ static int __devinit wbsd_request_irq(struct wbsd_host *host, int irq)
 	return 0;
 }
 
-static void __devexit wbsd_release_irq(struct wbsd_host *host)
+static void  wbsd_release_irq(struct wbsd_host *host)
 {
 	if (!host->irq)
 		return;
@@ -1535,7 +1535,7 @@ static int __devinit wbsd_request_resources(struct wbsd_host *host,
  * Release all resources for the host.
  */
 
-static void __devexit wbsd_release_resources(struct wbsd_host *host)
+static void wbsd_release_resources(struct wbsd_host *host)
 {
 	wbsd_release_dma(host);
 	wbsd_release_irq(host);
author
#9 lore raw
Quoted 10 lines · Sam Ravnborg
Quoted 9 lines · Gabriel C
Quoted 9 lines
Quoted 7 lines
Quoted 3 lines

WARNING: vmlinux.o(.init.text+0x29d40): Section mismatch: reference to .exit.text:wbsd_release_resources (between 'wbsd_init' and 'wbsd_probe')
WARNING: vmlinux.o(.init.text+0x29d49): Section mismatch: reference to .exit.text:wbsd_free_mmc (between 'wbsd_init' and 'wbsd_probe')
WARNING: vmlinux.o(.init.text+0x29f28): Section mismatch: reference to .exit.text:wbsd_free_mmc (between 'wbsd_init' and 'wbsd_probe')

When a function is marked __exit and used from an init function then the safe choice is to just remove the __exit marking. Usually this is small functions used only in error situations.
Should be trivial too.

I'll look at those too

Quoted 7 lines
Quoted 4 lines
Quoted 3 lines
Quoted 1 line

Sorry - no patch this time. Could you try to look at it yorself then I will review.

Ok I'll try.

The warnings gone with this patch but I'm not really sure it is correct.

Looks correct to me.
You drop the __devexit marking for functions used outside __exit.

Shall I send this one to akpm with your ACK or you take care of it ?

Quoted 56 lines

Sam

Quoted 53 lines
 drivers/mmc/host/wbsd.c |   10 +++++-----
 1 files changed, 5 insertions(+), 5 deletions(-)
drivers/mmc/host/wbsd.c +5 -5
index e0c9808..9bf2a87 100644
@@ -1266,7 +1266,7 @@ static int __devinit wbsd_alloc_mmc(struct device *dev)
 	return 0;
 }
 
-static void __devexit wbsd_free_mmc(struct device *dev)
+static void wbsd_free_mmc(struct device *dev)
 {
 	struct mmc_host *mmc;
 	struct wbsd_host *host;
@@ -1358,7 +1358,7 @@ static int __devinit wbsd_request_region(struct wbsd_host *host, int base)
 	return 0;
 }
 
-static void __devexit wbsd_release_regions(struct wbsd_host *host)
+static void wbsd_release_regions(struct wbsd_host *host)
 {
 	if (host->base)
 		release_region(host->base, 8);
@@ -1434,7 +1434,7 @@ err:
 		"Falling back on FIFO.\n", dma);
 }
 
-static void __devexit wbsd_release_dma(struct wbsd_host *host)
+static void wbsd_release_dma(struct wbsd_host *host)
 {
 	if (host->dma_addr) {
 		dma_unmap_single(mmc_dev(host->mmc), host->dma_addr,
@@ -1484,7 +1484,7 @@ static int __devinit wbsd_request_irq(struct wbsd_host *host, int irq)
 	return 0;
 }
 
-static void __devexit wbsd_release_irq(struct wbsd_host *host)
+static void  wbsd_release_irq(struct wbsd_host *host)
 {
 	if (!host->irq)
 		return;
@@ -1535,7 +1535,7 @@ static int __devinit wbsd_request_resources(struct wbsd_host *host,
  * Release all resources for the host.
  */
 
-static void __devexit wbsd_release_resources(struct wbsd_host *host)
+static void wbsd_release_resources(struct wbsd_host *host)
 {
 	wbsd_release_dma(host);
 	wbsd_release_irq(host);
#10 lore raw
Quoted 12 lines · Gabriel C
Quoted 11 lines · Sam Ravnborg
Quoted 10 lines · Gabriel C
Quoted 10 lines
Quoted 7 lines
Quoted 3 lines

WARNING: vmlinux.o(.init.text+0x29d40): Section mismatch: reference to .exit.text:wbsd_release_resources (between 'wbsd_init' and 'wbsd_probe')
WARNING: vmlinux.o(.init.text+0x29d49): Section mismatch: reference to .exit.text:wbsd_free_mmc (between 'wbsd_init' and 'wbsd_probe')
WARNING: vmlinux.o(.init.text+0x29f28): Section mismatch: reference to .exit.text:wbsd_free_mmc (between 'wbsd_init' and 'wbsd_probe')

When a function is marked __exit and used from an init function then the safe choice is to just remove the __exit marking. Usually this is small functions used only in error situations.
Should be trivial too.

I'll look at those too

Quoted 1 line

Sorry - no patch this time. Could you try to look at it yorself then I will review.

Quoted 8 lines
Quoted 6 lines
Quoted 3 lines
Quoted 2 lines

Ok I'll try.

The warnings gone with this patch but I'm not really sure it is correct.

Looks correct to me.
You drop the __devexit marking for functions used outside __exit.

Shall I send this one to akpm with your ACK or you take care of it ?

Please forward it to akpm.
I usually do not carry non-kbuild patches in my tree to keep 'noise' level down.

Sam

author
#11 lore raw
Quoted 2 lines · Sam Ravnborg

Please forward it to akpm.
I usually do not carry non-kbuild patches in my tree to keep 'noise' level down.

Ok done.

Thank you very much for your help on this.

I'll try to fix the remaining warnings soon.

Quoted 3 lines

Sam

Gabriel