1. 04 3月, 2014 1 次提交
  2. 14 1月, 2014 1 次提交
  3. 26 3月, 2013 1 次提交
  4. 11 12月, 2012 1 次提交
    • L
      b43legacy: Fix firmware loading when driver is built into the kernel · 576d28a7
      Larry Finger 提交于
      Recent versions of udev cause synchronous firmware loading from the
      probe routine to fail because the request to user space times out.
      The original fix for b43legacy (commit a3ea2c76) moved the firmware
      load from the probe routine to a work queue, but it still used synchronous
      firmware loading. This method is OK when b43legacy is built as a module;
      however, it fails when the driver is compiled into the kernel.
      
      This version changes the code to load the initial firmware file
      using request_firmware_nowait(). A completion event is used to
      hold the work queue until that file is available. The remaining
      firmware files are read synchronously.
      Signed-off-by: NLarry Finger <Larry.Finger@lwfinger.net>
      Cc: Stable <stable@vger.kernel.org>  (V3.4+)
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      576d28a7
  5. 29 9月, 2012 1 次提交
    • L
      b43legacy: Fix crash on unload when firmware not available · 2d838bb6
      Larry Finger 提交于
      When b43legacy is loaded without the firmware being available, a following
      unload generates a kernel NULL pointer dereference BUG as follows:
      
      [  214.330789] BUG: unable to handle kernel NULL pointer dereference at 0000004c
      [  214.330997] IP: [<c104c395>] drain_workqueue+0x15/0x170
      [  214.331179] *pde = 00000000
      [  214.331311] Oops: 0000 [#1] SMP
      [  214.331471] Modules linked in: b43legacy(-) ssb pcmcia mac80211 cfg80211 af_packet mperf arc4 ppdev sr_mod cdrom sg shpchp yenta_socket pcmcia_rsrc pci_hotplug pcmcia_core battery parport_pc parport floppy container ac button edd autofs4 ohci_hcd ehci_hcd usbcore usb_common thermal processor scsi_dh_rdac scsi_dh_hp_sw scsi_dh_emc scsi_dh_alua scsi_dh fan thermal_sys hwmon ata_generic pata_ali libata [last unloaded: cfg80211]
      [  214.333421] Pid: 3639, comm: modprobe Not tainted 3.6.0-rc6-wl+ #163 Source Technology VIC 9921/ALI Based Notebook
      [  214.333580] EIP: 0060:[<c104c395>] EFLAGS: 00010246 CPU: 0
      [  214.333687] EIP is at drain_workqueue+0x15/0x170
      [  214.333788] EAX: c162ac40 EBX: cdfb8360 ECX: 0000002a EDX: 00002a2a
      [  214.333890] ESI: 00000000 EDI: 00000000 EBP: cd767e7c ESP: cd767e5c
      [  214.333957]  DS: 007b ES: 007b FS: 00d8 GS: 0033 SS: 0068
      [  214.333957] CR0: 8005003b CR2: 0000004c CR3: 0c96a000 CR4: 00000090
      [  214.333957] DR0: 00000000 DR1: 00000000 DR2: 00000000 DR3: 00000000
      [  214.333957] DR6: ffff0ff0 DR7: 00000400
      [  214.333957] Process modprobe (pid: 3639, ti=cd766000 task=cf802e90 task.ti=cd766000)
      [  214.333957] Stack:
      [  214.333957]  00000292 cd767e74 c12c5e09 00000296 00000296 cdfb8360 cdfb9220 00000000
      [  214.333957]  cd767e90 c104c4fd cdfb8360 cdfb9220 cd682800 cd767ea4 d0c10184 cd682800
      [  214.333957]  cd767ea4 cba31064 cd767eb8 d0867908 cba31064 d087e09c cd96f034 cd767ec4
      [  214.333957] Call Trace:
      [  214.333957]  [<c12c5e09>] ? skb_dequeue+0x49/0x60
      [  214.333957]  [<c104c4fd>] destroy_workqueue+0xd/0x150
      [  214.333957]  [<d0c10184>] ieee80211_unregister_hw+0xc4/0x100 [mac80211]
      [  214.333957]  [<d0867908>] b43legacy_remove+0x78/0x80 [b43legacy]
      [  214.333957]  [<d083654d>] ssb_device_remove+0x1d/0x30 [ssb]
      [  214.333957]  [<c126f15a>] __device_release_driver+0x5a/0xb0
      [  214.333957]  [<c126fb07>] driver_detach+0x87/0x90
      [  214.333957]  [<c126ef4c>] bus_remove_driver+0x6c/0xe0
      [  214.333957]  [<c1270120>] driver_unregister+0x40/0x70
      [  214.333957]  [<d083686b>] ssb_driver_unregister+0xb/0x10 [ssb]
      [  214.333957]  [<d087c488>] b43legacy_exit+0xd/0xf [b43legacy]
      [  214.333957]  [<c1089dde>] sys_delete_module+0x14e/0x2b0
      [  214.333957]  [<c110a4a7>] ? vfs_write+0xf7/0x150
      [  214.333957]  [<c1240050>] ? tty_write_lock+0x50/0x50
      [  214.333957]  [<c110a6f8>] ? sys_write+0x38/0x70
      [  214.333957]  [<c1397c55>] syscall_call+0x7/0xb
      [  214.333957] Code: bc 27 00 00 00 00 a1 74 61 56 c1 55 89 e5 e8 a3 fc ff ff 5d c3 90 55 89 e5 57 56 89 c6 53 b8 40 ac 62 c1 83 ec 14 e8 bb b7 34 00 <8b> 46 4c 8d 50 01 85 c0 89 56 4c 75 03 83 0e 40 80 05 40 ac 62
      [  214.333957] EIP: [<c104c395>] drain_workqueue+0x15/0x170 SS:ESP 0068:cd767e5c
      [  214.333957] CR2: 000000000000004c
      [  214.341110] ---[ end trace c7e90ec026d875a6 ]---Index: wireless-testing/drivers/net/wireless/b43legacy/main.c
      
      The problem is fixed by making certain that the ucode pointer is not NULL
      before deregistering the driver in mac80211.
      Signed-off-by: NLarry Finger <Larry.Finger@lwfinger.net>
      Cc: Stable <stable@vger.kernel.org>   [v 3.3.0+]
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      2d838bb6
  6. 11 8月, 2012 1 次提交
  7. 31 7月, 2012 1 次提交
  8. 25 6月, 2012 1 次提交
  9. 07 6月, 2012 1 次提交
  10. 17 5月, 2012 1 次提交
  11. 16 5月, 2012 1 次提交
  12. 14 4月, 2012 1 次提交
  13. 14 3月, 2012 1 次提交
  14. 05 1月, 2012 1 次提交
  15. 20 12月, 2011 1 次提交
  16. 01 11月, 2011 1 次提交
  17. 04 10月, 2011 1 次提交
    • E
      mac80211: pass vif param to conf_tx() callback · 8a3a3c85
      Eliad Peller 提交于
      tx params should be configured per interface.
      add ieee80211_vif param to the conf_tx callback,
      and change all the drivers that use this callback.
      
      The following spatch was used:
      @rule1@
      struct ieee80211_ops ops;
      identifier conf_tx_op;
      @@
      	ops.conf_tx = conf_tx_op;
      
      @rule2@
      identifier rule1.conf_tx_op;
      identifier hw, queue, params;
      @@
      	conf_tx_op (
      -		struct ieee80211_hw *hw,
      +		struct ieee80211_hw *hw, struct ieee80211_vif *vif,
      		u16 queue,
      		const struct ieee80211_tx_queue_params *params) {...}
      Signed-off-by: NEliad Peller <eliad@wizery.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      8a3a3c85
  18. 25 8月, 2011 1 次提交
  19. 09 8月, 2011 2 次提交
  20. 07 7月, 2011 1 次提交
  21. 06 6月, 2011 1 次提交
  22. 02 6月, 2011 1 次提交
    • L
      b43legacy: Fix warnings from gcc 4.6.0 · 0541ac4c
      Larry Finger 提交于
      gcc 4.6.0 warnings for b43legacy:
      
        CC [M]  drivers/net/wireless/b43legacy/main.o
      drivers/net/wireless/b43legacy/main.c: In function ‘b43legacy_request_firmware’:
      drivers/net/wireless/b43legacy/main.c:1567:6: warning: variable ‘tmshigh’ set but not used [-Wunused-but-set-variable]
      drivers/net/wireless/b43legacy/main.c: In function ‘b43legacy_op_dev_config’:
      drivers/net/wireless/b43legacy/main.c:2637:6: warning: variable ‘antenna_rx’ set but not used [-Wunused-but-set-variable]
      drivers/net/wireless/b43legacy/main.c: In function ‘b43legacy_op_bss_info_changed’:
      drivers/net/wireless/b43legacy/main.c:2778:24: warning: variable ‘phy’ set but not used [-Wunused-but-set-variable]
      drivers/net/wireless/b43legacy/xmit.c: In function ‘generate_txhdr_fw3’:
      drivers/net/wireless/b43legacy/xmit.c:324:7: warning: variable ‘rts_rate_ofdm’ set but not used [-Wunused-but-set-variable]
        CC [M]  drivers/net/wireless/b43legacy/dma.o
      drivers/net/wireless/b43legacy/dma.c: In function ‘free_all_descbuffers’:
      drivers/net/wireless/b43legacy/dma.c:820:36: warning: variable ‘desc’ set but not used [-Wunused-but-set-variable]
      drivers/net/wireless/b43legacy/dma.c: In function ‘b43legacy_dma_tx’:
      drivers/net/wireless/b43legacy/dma.c:1377:28: warning: variable ‘info’ set but not used [-Wunused-but-set-variable]
      drivers/net/wireless/b43legacy/dma.c:1374:24: warning: variable ‘hdr’ set but not used [-Wunused-but-set-variable]
      drivers/net/wireless/b43legacy/dma.c: In function ‘b43legacy_dma_handle_txstatus’:
      drivers/net/wireless/b43legacy/dma.c:1438:36: warning: variable ‘desc’ set but not used [-Wunused-but-set-variable]
      Signed-off-by: NLarry Finger <Larry.Finger@lwfinger.net>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      0541ac4c
  23. 12 5月, 2011 1 次提交
  24. 11 5月, 2011 1 次提交
  25. 06 5月, 2011 1 次提交
  26. 26 2月, 2011 1 次提交
    • J
      mac80211: make tx() operation return void · 7bb45683
      Johannes Berg 提交于
      The return value of the tx operation is commonly
      misused by drivers, leading to errors. All drivers
      will drop frames if they fail to TX the frame, and
      they must also properly manage the queues (if they
      didn't, mac80211 would already warn).
      
      Removing the ability for drivers to return a BUSY
      value also allows significant cleanups of the TX
      TX handling code in mac80211.
      
      Note that this also fixes a bug in ath9k_htc, the
      old "return -1" there was wrong.
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      Tested-by: Sedat Dilek <sedat.dilek@googlemail.com> [ath5k]
      Acked-by: Gertjan van Wingerde <gwingerde@gmail.com> [rt2x00]
      Acked-by: Larry Finger <Larry.Finger@lwfinger.net> [b43, rtl8187, rtlwifi]
      Acked-by: Luciano Coelho <coelho@ti.com> [wl12xx]
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      7bb45683
  27. 17 11月, 2010 1 次提交
  28. 17 8月, 2010 1 次提交
  29. 04 5月, 2010 1 次提交
  30. 01 5月, 2010 1 次提交
  31. 30 3月, 2010 1 次提交
    • T
      include cleanup: Update gfp.h and slab.h includes to prepare for breaking... · 5a0e3ad6
      Tejun Heo 提交于
      include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h
      
      percpu.h is included by sched.h and module.h and thus ends up being
      included when building most .c files.  percpu.h includes slab.h which
      in turn includes gfp.h making everything defined by the two files
      universally available and complicating inclusion dependencies.
      
      percpu.h -> slab.h dependency is about to be removed.  Prepare for
      this change by updating users of gfp and slab facilities include those
      headers directly instead of assuming availability.  As this conversion
      needs to touch large number of source files, the following script is
      used as the basis of conversion.
      
        http://userweb.kernel.org/~tj/misc/slabh-sweep.py
      
      The script does the followings.
      
      * Scan files for gfp and slab usages and update includes such that
        only the necessary includes are there.  ie. if only gfp is used,
        gfp.h, if slab is used, slab.h.
      
      * When the script inserts a new include, it looks at the include
        blocks and try to put the new include such that its order conforms
        to its surrounding.  It's put in the include block which contains
        core kernel includes, in the same order that the rest are ordered -
        alphabetical, Christmas tree, rev-Xmas-tree or at the end if there
        doesn't seem to be any matching order.
      
      * If the script can't find a place to put a new include (mostly
        because the file doesn't have fitting include block), it prints out
        an error message indicating which .h file needs to be added to the
        file.
      
      The conversion was done in the following steps.
      
      1. The initial automatic conversion of all .c files updated slightly
         over 4000 files, deleting around 700 includes and adding ~480 gfp.h
         and ~3000 slab.h inclusions.  The script emitted errors for ~400
         files.
      
      2. Each error was manually checked.  Some didn't need the inclusion,
         some needed manual addition while adding it to implementation .h or
         embedding .c file was more appropriate for others.  This step added
         inclusions to around 150 files.
      
      3. The script was run again and the output was compared to the edits
         from #2 to make sure no file was left behind.
      
      4. Several build tests were done and a couple of problems were fixed.
         e.g. lib/decompress_*.c used malloc/free() wrappers around slab
         APIs requiring slab.h to be added manually.
      
      5. The script was run on all .h files but without automatically
         editing them as sprinkling gfp.h and slab.h inclusions around .h
         files could easily lead to inclusion dependency hell.  Most gfp.h
         inclusion directives were ignored as stuff from gfp.h was usually
         wildly available and often used in preprocessor macros.  Each
         slab.h inclusion directive was examined and added manually as
         necessary.
      
      6. percpu.h was updated not to include slab.h.
      
      7. Build test were done on the following configurations and failures
         were fixed.  CONFIG_GCOV_KERNEL was turned off for all tests (as my
         distributed build env didn't work with gcov compiles) and a few
         more options had to be turned off depending on archs to make things
         build (like ipr on powerpc/64 which failed due to missing writeq).
      
         * x86 and x86_64 UP and SMP allmodconfig and a custom test config.
         * powerpc and powerpc64 SMP allmodconfig
         * sparc and sparc64 SMP allmodconfig
         * ia64 SMP allmodconfig
         * s390 SMP allmodconfig
         * alpha SMP allmodconfig
         * um on x86_64 SMP allmodconfig
      
      8. percpu.h modifications were reverted so that it could be applied as
         a separate patch and serve as bisection point.
      
      Given the fact that I had only a couple of failures from tests on step
      6, I'm fairly confident about the coverage of this conversion patch.
      If there is a breakage, it's likely to be something in one of the arch
      headers which should be easily discoverable easily on most builds of
      the specific arch.
      Signed-off-by: NTejun Heo <tj@kernel.org>
      Guess-its-ok-by: NChristoph Lameter <cl@linux-foundation.org>
      Cc: Ingo Molnar <mingo@redhat.com>
      Cc: Lee Schermerhorn <Lee.Schermerhorn@hp.com>
      5a0e3ad6
  32. 09 2月, 2010 2 次提交
  33. 15 1月, 2010 2 次提交
  34. 29 12月, 2009 1 次提交
  35. 09 11月, 2009 1 次提交
  36. 31 10月, 2009 1 次提交
    • J
      mac80211: remove RX_FLAG_RADIOTAP · 0869aea0
      Johannes Berg 提交于
      While there may be a case for a driver adding its
      own bits of radiotap information, none currently
      does. Also, drivers would have to copy the code
      to generate the radiotap bits that now mac80211
      generates. If some driver in the future needs to
      add some driver-specific information I'd expect
      that to be in a radiotap vendor namespace and we
      can add a different way of passing such data up
      and having mac80211 include it.
      
      Additionally, rename IEEE80211_CONF_RADIOTAP to
      IEEE80211_CONF_MONITOR since it's still used by
      b43(legacy) to obtain per-frame timestamps.
      
      The purpose of this patch is to simplify the RX
      code in mac80211 to make it easier to add paged
      skb support.
      Signed-off-by: NJohannes Berg <johannes@sipsolutions.net>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      0869aea0
  37. 28 10月, 2009 1 次提交