Skip to content
  • Stanislav Yakovlev's avatar
    net/wireless: ipw2200: Fix WARN_ON occurring in wiphy_register called by ipw_pci_probe · 7ed85b65
    Stanislav Yakovlev authored
    The problem was found by Stefan Lippers-Hollmann
    http://marc.info/?l=linux-wireless&m=132720334512946&w=2
    
    WARNING: at /tmp/buildd/linux-aptosid-3.2/debian/build/source_i386_none/net/wireless/core.c:562 wiphy_register+0x45/0x38d [cfg80211]()
    Hardware name: TravelMate 290 \xffffffff\xffffffff\xffffffff\xffffffff\xffffffff\xffffffff\xffffffff\xffffffff\xffffffff\xffffffff\xffffffff\xffffffff\xffffffff\xffffffff\xffffffff\xffffffff\xffffffff
    Modules linked in: ipw2200(+) iTCO_wdt libipw joydev drm snd_seq snd_timer snd_seq_device iTCO_vendor_support yenta_socket snd intel_agp i2c_i801 pcmcia_rsrc cfg80211 soundcore parport_pc psmouse parport rng_core snd_page_alloc serio_raw pcspkr i2c_algo_bit intel_gtt pcmcia_core evdev irda crc_ccitt rfkill lib80211 processor container ac battery shpchp pci_hotplug button ext4 mbcache jbd2 crc16 dm_mod sd_mod sr_mod crc_t10dif cdrom ata_generic pata_acpi ata_piix libata scsi_mod firewire_ohci firewire_core crc_itu_t 8139too 8139cp mii uhci_hcd ehci_hcd usbcore usb_common [last unloaded: scsi_wait_scan]
    Pid: 328, comm: modprobe Not tainted 3.2-1.slh.4-aptosid-686 #1
    Call Trace:
    [<c012eaf4>] ? warn_slowpath_common+0x7c/0x8f
    [<e0ff0b3e>] ? wiphy_register+0x45/0x38d [cfg80211]
    [<e0ff0b3e>] ? wiphy_register+0x45/0x38d [cfg80211]
    [<c012eb22>] ? warn_slowpath_null+0x1b/0x1f
    [<e0ff0b3e>] ? wiphy_register+0x45/0x38d [cfg80211]
    [<c01f89d7>] ? internal_create_group+0xf5/0xff
    [<e0a2de1c>] ? ipw_pci_probe+0xa9a/0xbd0 [ipw2200]
    [<c01519f4>] ? arch_local_irq_save+0xf/0x14
    [<c0252986>] ? pci_device_probe+0x53/0x9a
    [<c02c2820>] ? driver_probe_device+0x94/0x124
    [<c0252871>] ? pci_match_id+0x15/0x34
    [<c02c28f0>] ? __driver_attach+0x40/0x5b
    [<c02c1d81>] ? bus_for_each_dev+0x37/0x60
    [<c02c25aa>] ? driver_attach+0x17/0x1a
    [<c02c28b0>] ? driver_probe_device+0x124/0x124
    [<c02c22c4>] ? bus_add_driver+0x92/0x1d1
    [<e099d000>] ? 0xe099cfff
    [<c02c2cb8>] ? driver_register+0x7d/0xd4
    [<c017cd50>] ? jump_label_module_notify+0xec/0x167
    [<e099d000>] ? 0xe099cfff
    [<c0253017>] ? __pci_register_driver+0x32/0x87
    [<e099d000>] ? 0xe099cfff
    [<e099d02e>] ? ipw_init+0x2e/0x72 [ipw2200]
    [<c0101173>] ? do_one_initcall+0x7d/0x132
    [<c0145016>] ? __blocking_notifier_call_chain+0x47/0x4f
    [<c0154a73>] ? sys_init_module+0x13a4/0x159c
    [<c03a639f>] ? sysenter_do_call+0x12/0x28
    
    This warning appears only if we apply Ben Hutchings' fix
    http://marc.info/?l=linux-wireless&m=132720195012653&w=2
    for the bug reported by Cesare Leonardi
    http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=656813
    
    
    with cfg80211 warning during device registration
    ("cfg80211: failed to add phy80211 symlink to netdev!").
    
    We separate device bring up and registration with network stack
    to avoid the problem.
    
    After that Ben Hutchings' fix can be applied to fix the bug.
    
    Cc: stable@kernel.org
    Signed-off-by: default avatarStanislav Yakovlev <stas.yakovlev@gmail.com>
    Tested-by: default avatarStefan Lippers-Hollmann <s.l-h@gmx.de>
    Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
    7ed85b65