1. 24 11月, 2009 1 次提交
  2. 14 11月, 2009 2 次提交
    • L
      p54usb: Remove DMA buffer from stack · 21d6c270
      Larry Finger 提交于
      On 2.6.32-rc6 from wireless-testing, the following warning is emitted:
      
      ------------[ cut here ]------------
      WARNING: at lib/dma-debug.c:860 check_for_stack+0xaa/0xe0()
      Hardware name: HP Pavilion dv2700 Notebook PC
      ehci_hcd 0000:00:02.1: DMA-API: device driver maps memory fromstack
      	 [addr=ffff8800b6e2bca8]
      Modules linked in: <Removed>
      Pid: 16378, comm: modprobe Not tainted 2.6.32-rc6-wl #244
      Call Trace:
       [<ffffffff81049698>] warn_slowpath_common+0x78/0xb0
       [<ffffffff8104972c>] warn_slowpath_fmt+0x3c/0x40
       [<ffffffff811ae52a>] check_for_stack+0xaa/0xe0
       [<ffffffff811afc8d>] debug_dma_map_page+0xfd/0x170
       [<ffffffffa006297a>] usb_hcd_submit_urb+0x3da/0x9c0 [usbcore]
       [<ffffffff81076e6f>] ? lockdep_init_map+0x5f/0x5d0
       [<ffffffffa0063365>] usb_submit_urb+0xe5/0x260 [usbcore]
       [<ffffffffa0064b7e>] usb_start_wait_urb+0x5e/0xf0 [usbcore]
       [<ffffffffa0063943>] ? usb_init_urb+0x23/0x40 [usbcore]
       [<ffffffffa0064cd4>] usb_bulk_msg+0xc4/0x150 [usbcore]
       [<ffffffffa0441a91>] T.719+0x31/0x40 [p54usb]
       [<ffffffffa0441acf>] p54u_upload_firmware_3887+0x2f/0x490 [p54usb]
       [<ffffffffa049c667>] ? p54_parse_firmware+0x427/0x450 [p54common]
       <Rest of traceback removed>
      ---[ end trace f77df0316ddad3de ]---
      Signed-off-by: NLarry Finger <Larry.Finger@lwfinger.net>
      Cc: Stable <stable@vger.org>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      21d6c270
    • J
      Revert "libipw: initiate cfg80211 API conversion" · 8cc3174e
      John W. Linville 提交于
      This reverts commit b8ecd988.
      
      Due to poor API call balancing by me, this commit not only broke ipw2200
      if it can't find it's firmware, it broke ipw2100 basically anytime you
      removed the module.  At this point in the cycle, let's just put it back
      to a sane state and try again next time...
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      8cc3174e
  3. 11 11月, 2009 9 次提交
  4. 07 11月, 2009 2 次提交
    • S
      rt2x00: Don't queue ieee80211 work after USB removal · 66f84d65
      Sean Cross 提交于
      This prevents the rt2x00 driver from queueing ieee80211 work after the  
      USB card has been removed, preventing a kernel panic.
      Signed-off-by: NSean Cross <sean@chumby.com>
      Signed-off-by: NIvo van Doorn <IvDoorn@gmail.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      66f84d65
    • J
      Revert "ipw2200: fix oops on missing firmware" · 143d40f3
      John W. Linville 提交于
      This reverts commit e6c5fc53.
      
      Based on this regression report:
      
      Date: Thu, 05 Nov 2009 15:59:16 +0100
      From: Holger Schurig <holgerschurig@gmail.com>
      To: linux-wireless@vger.kernel.org
      Subject: BUG: oops when "rmmod ipw2200"
      
      This happened on wireless-testing v2.6.32-rc6-41575-g5e68bfb. I
      modprobed ipw2200, put it into monitor mode, used tshark a while to
      monitor, then I stopped tshark, "ifconfig eth2 down" and finally
      "rmmod ipw2200", and voila:
      
      [  917.189620] ------------[ cut here ]------------
      [  917.189717] kernel BUG at net/wireless/core.c:543!
      [  917.189805] invalid opcode: 0000 [#1] PREEMPT SMP
      [  917.190002] last sysfs file: /sys/devices/pci0000:00/0000:00:1e.0/0000:02:0d.0/firmware/0000:02:0d.0/loading
      [  917.190136] Modules linked in: lib80211_crypt_wep ipw2200(-) libipw lib80211 ath5k mac80211 ath cfg80211 psmouse uhci_hcd
      [  917.190680]
      [  917.190759] Pid: 1763, comm: rmmod Not tainted (2.6.32-rc6-wl #26) Amilo M1425
      [  917.190886] EIP: 0060:[<f8accf34>] EFLAGS: 00010202 CPU: 0
      [  917.190992] EIP is at wiphy_unregister+0xd3/0x175 [cfg80211]
      [  917.191083] EAX: f601d4c4 EBX: 00000000 ECX: 00000000 EDX: f79e8600
      [  917.191176] ESI: f601d400 EDI: f95b4350 EBP: f6009eb4 ESP: f6009e8c
      [  917.191269]  DS: 007b ES: 007b FS: 00d8 GS: 0033 SS: 0068
      [  917.191360] Process rmmod (pid: 1763, ti=f6008000 task=f79e8130 task.ti=f6008000)
      [  917.191486] Stack:
      [  917.191562]  f601d5a0 f601d484 f6460e98 f6009ea0 c01407ee f6009eb8 00000246 f64604c0
      [  917.191916] <0> f6460e5c f95b4350 f6009ec0 f94fd030 f6460e98 f6009edc f95a9d4f f787bc00
      [  917.192100] <0> f787bc58 f787bc00 f95b4350 f95b4350 f6009ee8 c0207fca f787bc58 f6009ef8
      [  917.192100] Call Trace:
      [  917.192100]  [<c01407ee>] ? trace_hardirqs_on+0xb/0xd
      [  917.192100]  [<f94fd030>] ? unregister_ieee80211+0xe/0x27 [libipw]
      [  917.192100]  [<f95a9d4f>] ? ipw_pci_remove+0x59/0x227 [ipw2200]
      [  917.192100]  [<c0207fca>] ? pci_device_remove+0x19/0x39
      [  917.192100]  [<c02b93a4>] ? __device_release_driver+0x59/0x9d
      [  917.192100]  [<c02b944f>] ? driver_detach+0x67/0x85
      [  917.192100]  [<c02b88d6>] ? bus_remove_driver+0x69/0x85
      [  917.192100]  [<c02b9878>] ? driver_unregister+0x4d/0x54
      [  917.192100]  [<c02081c3>] ? pci_unregister_driver+0x28/0x71
      [  917.192100]  [<f95a9cf4>] ? ipw_exit+0x1c/0x1e [ipw2200]
      [  917.192100]  [<c0148e2b>] ? sys_delete_module+0x192/0x1ef
      [  917.192100]  [<c0162cdb>] ? remove_vma+0x52/0x58
      [  917.192100]  [<c01028bb>] ? sysenter_exit+0xf/0x18
      [  917.192100]  [<c0102888>] ? sysenter_do_call+0x12/0x36
      [  917.192100] Code: 74 07 e8 81 bc 8c c7 eb c8 8d 55 e0 89 f8 e8 d6 6d 66 c7 8b 45 dc 31 d2 e8 81 cc 8c c7 8d 86 c4 00 00 00 39 86 c4 00 00 00 74 04 <0f> 0b eb fe 8b 45 dc 8d 5e 0c e8 5a cc 8c c7 8b 86 94 03 00 00
      [  917.192100] EIP: [<f8accf34>] wiphy_unregister+0xd3/0x175 [cfg80211] SS:ESP 0068:f6009e8c
      [  917.203718] ---[ end trace bcaaf449945a5100 ]---
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      143d40f3
  5. 05 11月, 2009 1 次提交
    • L
      rtl8187: Fix kernel oops when device is removed when LEDS enabled · 37b12dd2
      Larry Finger 提交于
      As reported by Rick Farina (sidhayn@gmail.com), removing the RTL8187
      USB stick, or unloading the driver rtl8187 using rmmod will cause a
      kernel oops.  There are at least two forms of the failure, (1) BUG:
      Scheduling while atomic, and (2) a fatal kernel page fault. This
      problem is reported in Bugzilla #14539.
      
      This problem does not occur for kernel 2.6.31, but does for 2.6.32-rc2,
      thus it is technically a regression; however, bisection did not locate
      any faulty patch. The fix was found by comparing the faulty code in
      rtl8187 with p54usb.  My interpretation is that the handling of work
      queues in mac80211 changed enough to the LEDs to be unregistered
      before tasks on the work queues are cancelled. Previously, these
      actions could be done in either order.
      
      (Herton Ronaldo Krzesinski <herton@mandriva.com.br> reports that the
      code is the same in 2.6.31, so this may be a candidate for 2.6.31.x.
      -- JWL)
      Signed-off-by: NLarry Finger <Larry.Finger@lwfinger.net>
      Reported-by: NRick Farina <sidhayn@gmail.com>
      Tested-by: NRick Farina <sidhayn@gmail.com>
      Cc: stable@kernel.org
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      37b12dd2
  6. 31 10月, 2009 5 次提交
  7. 30 10月, 2009 1 次提交
  8. 28 10月, 2009 5 次提交
    • R
      airo: Reorder tests, check bounds before element · 30bd5726
      Roel Kluin 提交于
      Test whether index is within bounds before reading the element
      Signed-off-by: NRoel Kluin <roel.kluin@gmail.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      30bd5726
    • H
      libertas spi: fix sparse errors · d18ba452
      Holger Schurig 提交于
      This fixes the following sparse warnings:
      
      $ make modules SUBDIRS=drivers/net/wireless/libertas C=1 CF=-D__CHECK_ENDIAN__
      make: Entering directory `/usr/src/linux-wl'
        CHECK   drivers/net/wireless/libertas/if_spi.c
      drivers/net/wireless/libertas/if_spi.c:137:16: warning: incorrect type in initializer (different base types)
      drivers/net/wireless/libertas/if_spi.c:137:16:    expected unsigned short [unsigned] [usertype] reg_out
      drivers/net/wireless/libertas/if_spi.c:137:16:    got restricted __le16 [usertype] <noident>
      drivers/net/wireless/libertas/if_spi.c:191:16: warning: incorrect type in initializer (different base types)
      drivers/net/wireless/libertas/if_spi.c:191:16:    expected unsigned short [unsigned] [usertype] reg_out
      drivers/net/wireless/libertas/if_spi.c:191:16:    got restricted __le16 [usertype] <noident>
      drivers/net/wireless/libertas/if_spi.c:256:24: warning: incorrect type in argument 1 (different base types)
      drivers/net/wireless/libertas/if_spi.c:256:24:    expected restricted __le32 const [usertype] *p
      drivers/net/wireless/libertas/if_spi.c:256:24:    got unsigned int *<noident>
      drivers/net/wireless/libertas/if_spi.c:243:24: warning: incorrect type in argument 1 (different base types)
      drivers/net/wireless/libertas/if_spi.c:243:24:    expected restricted __le16 const [usertype] *p
      drivers/net/wireless/libertas/if_spi.c:243:24:    got unsigned short *<noident>
      drivers/net/wireless/libertas/if_spi.c:171:7: warning: incorrect type in assignment (different base types)
      drivers/net/wireless/libertas/if_spi.c:171:7:    expected unsigned short [unsigned] [usertype] buff
      drivers/net/wireless/libertas/if_spi.c:171:7:    got restricted __le16 [usertype] <noident>
      drivers/net/wireless/libertas/if_spi.c:171:7: warning: incorrect type in assignment (different base types)
      drivers/net/wireless/libertas/if_spi.c:171:7:    expected unsigned short [unsigned] [usertype] buff
      drivers/net/wireless/libertas/if_spi.c:171:7:    got restricted __le16 [usertype] <noident>
      drivers/net/wireless/libertas/if_spi.c:171:7: warning: incorrect type in assignment (different base types)
      drivers/net/wireless/libertas/if_spi.c:171:7:    expected unsigned short [unsigned] [usertype] buff
      drivers/net/wireless/libertas/if_spi.c:171:7:    got restricted __le16 [usertype] <noident>
      drivers/net/wireless/libertas/if_spi.c:171:7: warning: incorrect type in assignment (different base types)
      drivers/net/wireless/libertas/if_spi.c:171:7:    expected unsigned short [unsigned] [usertype] buff
      drivers/net/wireless/libertas/if_spi.c:171:7:    got restricted __le16 [usertype] <noident>
      drivers/net/wireless/libertas/if_spi.c:171:7: warning: incorrect type in assignment (different base types)
      drivers/net/wireless/libertas/if_spi.c:171:7:    expected unsigned short [unsigned] [usertype] buff
      drivers/net/wireless/libertas/if_spi.c:171:7:    got restricted __le16 [usertype] <noident>
      drivers/net/wireless/libertas/if_spi.c:243:24: warning: incorrect type in argument 1 (different base types)
      drivers/net/wireless/libertas/if_spi.c:243:24:    expected restricted __le16 const [usertype] *p
      drivers/net/wireless/libertas/if_spi.c:243:24:    got unsigned short *<noident>
      drivers/net/wireless/libertas/if_spi.c:171:7: warning: incorrect type in assignment (different base types)
      drivers/net/wireless/libertas/if_spi.c:171:7:    expected unsigned short [unsigned] [usertype] buff
      drivers/net/wireless/libertas/if_spi.c:171:7:    got restricted __le16 [usertype] <noident>
      drivers/net/wireless/libertas/if_spi.c:171:7: warning: incorrect type in assignment (different base types)
      drivers/net/wireless/libertas/if_spi.c:171:7:    expected unsigned short [unsigned] [usertype] buff
      drivers/net/wireless/libertas/if_spi.c:171:7:    got restricted __le16 [usertype] <noident>
      drivers/net/wireless/libertas/if_spi.c:171:7: warning: incorrect type in assignment (different base types)
      drivers/net/wireless/libertas/if_spi.c:171:7:    expected unsigned short [unsigned] [usertype] buff
      drivers/net/wireless/libertas/if_spi.c:171:7:    got restricted __le16 [usertype] <noident>
      drivers/net/wireless/libertas/if_spi.c:171:7: warning: incorrect type in assignment (different base types)
      drivers/net/wireless/libertas/if_spi.c:171:7:    expected unsigned short [unsigned] [usertype] buff
      drivers/net/wireless/libertas/if_spi.c:171:7:    got restricted __le16 [usertype] <noident>
      drivers/net/wireless/libertas/if_spi.c:171:7: warning: incorrect type in assignment (different base types)
      drivers/net/wireless/libertas/if_spi.c:171:7:    expected unsigned short [unsigned] [usertype] buff
      drivers/net/wireless/libertas/if_spi.c:171:7:    got restricted __le16 [usertype] <noident>
      drivers/net/wireless/libertas/if_spi.c:171:7: warning: incorrect type in assignment (different base types)
      drivers/net/wireless/libertas/if_spi.c:171:7:    expected unsigned short [unsigned] [usertype] buff
      drivers/net/wireless/libertas/if_spi.c:171:7:    got restricted __le16 [usertype] <noident>
      drivers/net/wireless/libertas/if_spi.c:243:24: warning: incorrect type in argument 1 (different base types)
      drivers/net/wireless/libertas/if_spi.c:243:24:    expected restricted __le16 const [usertype] *p
      drivers/net/wireless/libertas/if_spi.c:243:24:    got unsigned short *<noident>
      drivers/net/wireless/libertas/if_spi.c:171:7: warning: incorrect type in assignment (different base types)
      drivers/net/wireless/libertas/if_spi.c:171:7:    expected unsigned short [unsigned] [usertype] buff
      drivers/net/wireless/libertas/if_spi.c:171:7:    got restricted __le16 [usertype] <noident>
      drivers/net/wireless/libertas/if_spi.c:171:7: warning: incorrect type in assignment (different base types)
      drivers/net/wireless/libertas/if_spi.c:171:7:    expected unsigned short [unsigned] [usertype] buff
      drivers/net/wireless/libertas/if_spi.c:171:7:    got restricted __le16 [usertype] <noident>
      drivers/net/wireless/libertas/if_spi.c:243:24: warning: incorrect type in argument 1 (different base types)
      drivers/net/wireless/libertas/if_spi.c:243:24:    expected restricted __le16 const [usertype] *p
      drivers/net/wireless/libertas/if_spi.c:243:24:    got unsigned short *<noident>
      drivers/net/wireless/libertas/if_spi.c:243:24: warning: incorrect type in argument 1 (different base types)
      drivers/net/wireless/libertas/if_spi.c:243:24:    expected restricted __le16 const [usertype] *p
      drivers/net/wireless/libertas/if_spi.c:243:24:    got unsigned short *<noident>
      drivers/net/wireless/libertas/if_spi.c:171:7: warning: incorrect type in assignment (different base types)
      drivers/net/wireless/libertas/if_spi.c:171:7:    expected unsigned short [unsigned] [usertype] buff
      drivers/net/wireless/libertas/if_spi.c:171:7:    got restricted __le16 [usertype] <noident>
      drivers/net/wireless/libertas/if_spi.c:171:7: warning: incorrect type in assignment (different base types)
      drivers/net/wireless/libertas/if_spi.c:171:7:    expected unsigned short [unsigned] [usertype] buff
      drivers/net/wireless/libertas/if_spi.c:171:7:    got restricted __le16 [usertype] <noident>
      drivers/net/wireless/libertas/if_spi.c:243:24: warning: incorrect type in argument 1 (different base types)
      drivers/net/wireless/libertas/if_spi.c:243:24:    expected restricted __le16 const [usertype] *p
      drivers/net/wireless/libertas/if_spi.c:243:24:    got unsigned short *<noident>
      Signed-off-by: NHolger Schurig <hs4233@mail.mn-solutions.de>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      d18ba452
    • M
      b43: add 'struct b43_wl' missing declaration · e6693eab
      Miguel Boton 提交于
      'struct b43_wl' declaration is missing at 'leds.h'.
      It should be declared to avoid getting some GCC warnings at 'b43_leds_unregister'.
      Signed-off-by: NMiguel Botón <mboton@gmail.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      e6693eab
    • L
      b43: Fix Bugzilla #14181 and the bug from the previous 'fix' · d50bae33
      Larry Finger 提交于
      "b43: Fix PPC crash in rfkill polling on unload" fixed the bug reported
      in Bugzilla No. 14181; however, it introduced a new bug. Whenever the
      radio switch was turned off, it was necessary to unload and reload
      the driver for it to recognize the switch again.
      
      This patch fixes both the original bug in #14181 and the bug introduced by
      the previous patch. It must be stated, however, that if there is a BCM4306/3
      with an rfkill switch (not yet proven), then the driver will need an
      unload/reload cycle to turn the device back on.
      Signed-off-by: NLarry Finger <Larry.Finger@lwfinger.net>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      d50bae33
    • B
  9. 13 10月, 2009 4 次提交
  10. 12 10月, 2009 1 次提交
  11. 08 10月, 2009 9 次提交