1. 04 10月, 2011 1 次提交
    • A
      bonding: properly stop queuing work when requested · a0db2dad
      Andy Gospodarek 提交于
      During a test where a pair of bonding interfaces using ARP monitoring
      were both brought up and torn down (with an rmmod) repeatedly, a panic
      in the timer code was noticed.  I tracked this down and determined that
      any of the bonding functions that ran as workqueue handlers and requeued
      more work might not properly exit when the module was removed.
      
      There was a flag protected by the bond lock called kill_timers that is
      set when the interface goes down or the module is removed, but many of
      the functions that monitor link status now unlock the bond lock to take
      rtnl first.  There is a chance that another CPU running the rmmod could
      get the lock and set kill_timers after the first check has passed.
      
      This patch does not allow any function to queue work that will make
      itself run unless kill_timers is not set.  I also noticed while doing
      this work that bond_resend_igmp_join_requests did not have a check for
      kill_timers, so I added the needed call there as well.
      Signed-off-by: NAndy Gospodarek <andy@greyhouse.net>
      Reported-by: NLiang Zheng <lzheng@redhat.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      a0db2dad
  2. 29 9月, 2011 3 次提交
  3. 28 9月, 2011 3 次提交
  4. 27 9月, 2011 4 次提交
    • M
      ath9k: Fix a dma warning/memory leak · ba542385
      Mohammed Shafi Shajakhan 提交于
      proper dma_unmapping and freeing of skb's has to be done in the rx
      cleanup for EDMA chipsets when the device is unloaded and this also
      seems to address the following warning which shows up occasionally when
      the device is unloaded
      
      	Call Trace:
      	[<c0148cd2>] warn_slowpath_common+0x72/0xa0
      	[<c03b669c>] ? dma_debug_device_change+0x19c/0x200
      	[<c03b669c>] ? dma_debug_device_change+0x19c/0x200
      	[<c0148da3>] warn_slowpath_fmt+0x33/0x40
      	[<c03b669c>] dma_debug_device_change+0x19c/0x200
      	[<c0657f12>] notifier_call_chain+0x82/0xb0
      	[<c0171370>] __blocking_notifier_call_chain+0x60/0x90
      	[<c01713bf>] blocking_notifier_call_chain+0x1f/0x30
      	[<c044f594>] __device_release_driver+0xa4/0xc0
      	[<c044f647>] driver_detach+0x97/0xa0
      	[<c044e65c>] bus_remove_driver+0x6c/0xe0
      	[<c029af0b>] ? sysfs_addrm_finish+0x4b/0x60
      	[<c0450109>] driver_unregister+0x49/0x80
      	[<c0299f54>] ? sysfs_remove_file+0x14/0x20
      	[<c03c3ab2>] pci_unregister_driver+0x32/0x80
      	[<f92c2162>] ath_pci_exit+0x12/0x20 [ath9k]
      	[<f92c8467>] ath9k_exit+0x17/0x36 [ath9k]
      	[<c06523cd>] ? mutex_unlock+0xd/0x10
      	[<c018e27f>] sys_delete_module+0x13f/0x200
      	[<c02139bb>] ? sys_munmap+0x4b/0x60
      	[<c06547c5>] ? restore_all+0xf/0xf
      	[<c0657a20>] ? spurious_fault+0xe0/0xe0
      	[<c01832f4>] ? trace_hardirqs_on_caller+0xf4/0x180
      	[<c065b863>] sysenter_do_call+0x12/0x38
      	 ---[ end trace 16e1c1521c06bcf9 ]---
      	Mapped at:
      	[<c03b7938>] debug_dma_map_page+0x48/0x120
      	[<f92ba3e8>] ath_rx_init+0x3f8/0x4b0 [ath9k]
      	[<f92b5ae4>] ath9k_init_device+0x4c4/0x7b0 [ath9k]
      	[<f92c2813>] ath_pci_probe+0x263/0x330 [ath9k]
      Signed-off-by: NMohammed Shafi Shajakhan <mohammed@qca.qualcomm.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      ba542385
    • L
      rtlwifi: rtl8192cu: Fix unitialized struct · 831d8547
      Larry Finger 提交于
      Driver rtl8192cu assigns a new struct rtl_tcb_desc object, but fails to
      clear it.
      Signed-off-by: NLarry Finger <Larry.Finger@lwfinger.net>
      Cc: Stable <stable@kernel.org>  [2.6.39+]
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      831d8547
    • J
      iwlagn: fix dangling scan request · 6c80c39d
      Johannes Berg 提交于
      If iwl_scan_initiate() fails for any reason,
      priv->scan_request and priv->scan_vif are left
      dangling. This can lead to a crash later when
      iwl_bg_scan_completed() tries to run a pending
      scan request.
      
      In practice, this seems to be very rare due to
      the STATUS_SCANNING check earlier. That check,
      however, is wrong -- it should allow a scan to
      be queued when a reset/roc scan is going on.
      When a normal scan is already going on, a new
      one can't be issued by mac80211, so that code
      can be removed completely. I introduced this
      bug when adding off-channel support in commit
      266af4c7.
      
      Cc: stable@kernel.org [3.0]
      Reported-by: NPeng Yan <peng.yan@intel.com>
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      Signed-off-by: NWey-Yi Guy <wey-yi.w.guy@intel.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      6c80c39d
    • R
      PM / Clocks: Do not acquire a mutex under a spinlock · e8b364b8
      Rafael J. Wysocki 提交于
      Commit b7ab83ed (PM: Use spinlock instead of mutex in clock
      management functions) introduced a regression causing clocks_mutex
      to be acquired under a spinlock.  This happens because
      pm_clk_suspend() and pm_clk_resume() call pm_clk_acquire() under
      pcd->lock, but pm_clk_acquire() executes clk_get() which causes
      clocks_mutex to be acquired.  Similarly, __pm_clk_remove(),
      executed under pcd->lock, calls clk_put(), which also causes
      clocks_mutex to be acquired.
      
      To fix those problems make pm_clk_add() call pm_clk_acquire(), so
      that pm_clk_suspend() and pm_clk_resume() don't have to do that.
      Change pm_clk_remove() and pm_clk_destroy() to separate
      modifications of the pcd->clock_list list from the actual removal of
      PM clock entry objects done by __pm_clk_remove().
      Reported-and-tested-by: NGuennadi Liakhovetski <g.liakhovetski@gmx.de>
      Signed-off-by: NRafael J. Wysocki <rjw@sisk.pl>
      Acked-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      e8b364b8
  5. 26 9月, 2011 2 次提交
    • J
      [SCSI] 3w-9xxx: fix iommu_iova leak · 96067723
      James Bottomley 提交于
      Following reports on the list, it looks like the 3e-9xxx driver will leak dma
      mappings every time we get a transient queueing error back from the card.
      This is because it maps the sg list in the routine that sends the command, but
      doesn't unmap again in the transient failure path (even though the command is
      sent back to the block layer).  Fix by unmapping before returning the status.
      Reported-by: NChris Boot <bootc@bootc.net>
      Tested-by: NChris Boot <bootc@bootc.net>
      Acked-by: NAdam Radford <aradford@gmail.com>
      Cc: stable@kernel.org
      Signed-off-by: NJames Bottomley <JBottomley@Parallels.com>
      96067723
    • N
      [SCSI] cxgb3i: convert cdev->l2opt to use rcu to prevent NULL dereference · e48f129c
      Neil Horman 提交于
      This oops was reported recently:
      d:mon> e
      cpu 0xd: Vector: 300 (Data Access) at [c0000000fd4c7120]
          pc: d00000000076f194: .t3_l2t_get+0x44/0x524 [cxgb3]
          lr: d000000000b02108: .init_act_open+0x150/0x3d4 [cxgb3i]
          sp: c0000000fd4c73a0
         msr: 8000000000009032
         dar: 0
       dsisr: 40000000
        current = 0xc0000000fd640d40
        paca    = 0xc00000000054ff80
          pid   = 5085, comm = iscsid
      d:mon> t
      [c0000000fd4c7450] d000000000b02108 .init_act_open+0x150/0x3d4 [cxgb3i]
      [c0000000fd4c7500] d000000000e45378 .cxgbi_ep_connect+0x784/0x8e8 [libcxgbi]
      [c0000000fd4c7650] d000000000db33f0 .iscsi_if_rx+0x71c/0xb18
      [scsi_transport_iscsi2]
      [c0000000fd4c7740] c000000000370c9c .netlink_data_ready+0x40/0xa4
      [c0000000fd4c77c0] c00000000036f010 .netlink_sendskb+0x4c/0x9c
      [c0000000fd4c7850] c000000000370c18 .netlink_sendmsg+0x358/0x39c
      [c0000000fd4c7950] c00000000033be24 .sock_sendmsg+0x114/0x1b8
      [c0000000fd4c7b50] c00000000033d208 .sys_sendmsg+0x218/0x2ac
      [c0000000fd4c7d70] c00000000033f55c .sys_socketcall+0x228/0x27c
      [c0000000fd4c7e30] c0000000000086a4 syscall_exit+0x0/0x40
      --- Exception: c01 (System Call) at 00000080da560cfc
      
      The root cause was an EEH error, which sent us down the offload_close path in
      the cxgb3 driver, which in turn sets cdev->l2opt to NULL, without regard for
      upper layer driver (like the cxgbi drivers) which might have execution contexts
      in the middle of its use. The result is the oops above, when t3_l2t_get attempts
      to dereference L2DATA(cdev)->nentries in arp_hash right after the EEH error handler sets it to NULL.
      
      The fix is to prevent the setting of the NULL pointer until after there are no
      further users of it.  The t3cdev->l2opt pointer is now converted to be an rcu
      pointer and the L2DATA macro is now called under the protection of the
      rcu_read_lock().  When the EEH error path:
      t3_adapter_error->offload_close->cxgb3_offload_deactivate
      Is exectured, setting of that l2opt pointer to NULL, is now gated on an rcu
      quiescence point, preventing, allowing L2DATA callers to safely check for a NULL
      pointer without concern that the underlying data will be freeded before the
      pointer is dereferenced.
      
      This has been tested by the reporter and shown to fix the reproted oops
      
      [nhorman: fix up unitinialised variable reported by Dan Carpenter]
      Signed-off-by: NNeil Horman <nhorman@tuxdriver.com>
      Reviewed-by: NKaren Xie <kxie@chelsio.com>
      Cc: stable@kernel.org
      Signed-off-by: NJames Bottomley <JBottomley@Parallels.com>
      e48f129c
  6. 24 9月, 2011 6 次提交
  7. 23 9月, 2011 7 次提交
    • A
      drm/radeon/kms: fix DDIA enable on some rs690 systems · fdfc6159
      Alex Deucher 提交于
      DVOOutputControl checks the value of of bios scratch reg 3
      on some tables and assumes the encoder is already enabled
      if the DFP2_ACTIVE bit is set.  Clear that bit so the table
      sets the DDIA enable bit properly.
      Signed-off-by: NAlex Deucher <alexander.deucher@amd.com>
      Cc: stable@kernel.org
      Signed-off-by: NDave Airlie <airlied@redhat.com>
      fdfc6159
    • D
      Revert "drm/radeon/kms: fix typo in r100_blit_copy" · d9ad77eb
      Dave Airlie 提交于
      This reverts commit 18b4fada.
      
      This code was correct, apologies to anyone who noticed things broke.
      
      revert contents are different due to another commit in between.
      Signed-off-by: NDave Airlie <airlied@redhat.com>
      d9ad77eb
    • P
      TPM: Zero buffer after copying to userspace · 3321c07a
      Peter Huewe 提交于
      Since the buffer might contain security related data it might be a good idea to
      zero the buffer after we have copied it to userspace.
      
      This got assigned CVE-2011-1162.
      Signed-off-by: NRajiv Andrade <srajiv@linux.vnet.ibm.com>
      Cc: Stable Kernel <stable@kernel.org>
      Signed-off-by: NJames Morris <jmorris@namei.org>
      3321c07a
    • P
      TPM: Call tpm_transmit with correct size · 6b07d30a
      Peter Huewe 提交于
      This patch changes the call of tpm_transmit by supplying the size of the
      userspace buffer instead of TPM_BUFSIZE.
      
      This got assigned CVE-2011-1161.
      
      [The first hunk didn't make sense given one could expect
       way less data than TPM_BUFSIZE, so added tpm_transmit boundary
       check over bufsiz instead
       The last parameter of tpm_transmit() reflects the amount
       of data expected from the device, and not the buffer size
       being supplied to it. It isn't ideal to parse it directly,
       so we just set it to the maximum the input buffer can handle
       and let the userspace API to do such job.]
      Signed-off-by: NRajiv Andrade <srajiv@linux.vnet.ibm.com>
      Cc: Stable Kernel <stable@kernel.org>
      Signed-off-by: NJames Morris <jmorris@namei.org>
      6b07d30a
    • A
      TPM: tpm_nsc: Fix a double free of pdev in cleanup_nsc · de69113e
      Axel Lin 提交于
      platform_device_unregister() will release all resources
      and remove it from the subsystem, then drop reference count by
      calling platform_device_put().
      
      We should not call kfree(pdev) after platform_device_unregister(pdev).
      Signed-off-by: NAxel Lin <axel.lin@gmail.com>
      Signed-off-by: NRajiv Andrade <srajiv@linux.vnet.ibm.com>
      Signed-off-by: NJames Morris <jmorris@namei.org>
      de69113e
    • G
      TPM: TCG_ATMEL should depend on HAS_IOPORT · 5ce5ed35
      Geert Uytterhoeven 提交于
      On m68k, I get:
      
      drivers/char/tpm/tpm_atmel.h: In function ‘atmel_get_base_addr’:
      drivers/char/tpm/tpm_atmel.h:129: error: implicit declaration of function ‘ioport_map’
      drivers/char/tpm/tpm_atmel.h:129: warning: return makes pointer from integer without a cast
      
      The code in tpm_atmel.h supports PPC64 (using the device tree and ioremap())
      and "anything else" (using ioport_map()). However, ioportmap() is only
      available on platforms that set HAS_IOPORT.
      
      Although PC64 seems to have HAS_IOPORT, a "depends on HAS_IOPORT" should work,
      but I think it's better to expose the special PPC64 handling explicit using
      "depends on PPC64 || HAS_IOPORT".
      Signed-off-by: NGeert Uytterhoeven <geert@linux-m68k.org>
      Signed-off-by: NRajiv Andrade <srajiv@linux.vnet.ibm.com>
      Signed-off-by: NJames Morris <jmorris@namei.org>
      5ce5ed35
    • G
      zorro: Defer device_register() until all devices have been identified · a7f4d00a
      Geert Uytterhoeven 提交于
      As the Amiga Zorro II address space is limited to 8.5 MiB and Zorro
      devices can contain only one BAR, several Amiga Zorro II expansion
      boards (mainly graphics cards) contain multiple Zorro devices: a small
      one for the control registers and one (or more) for the graphics memory.
      
      The conversion of cirrusfb to the new driver framework introduced a
      regression: the driver contains a zorro_driver for the first Zorro
      device, and uses the (old) zorro_find_device() call to find the second
      Zorro device.
      
      However, as the Zorro core calls device_register() as soon as a Zorro
      device is identified, it may not have identified the second Zorro device
      belonging to the same physical Zorro expansion card.  Hence cirrusfb
      could no longer find the second part of the Picasso II graphics card,
      causing a NULL pointer dereference.
      
      Defer the registration of Zorro devices with the driver framework until
      all Zorro devices have been identified to fix this.
      
      Note that the alternative solution (modifying cirrusfb to register a
      zorro_driver for all Zorro devices belonging to a graphics card, instead
      of only for the first one, and adding a synchronization mechanism to
      defer initialization until all have been found), is not an option, as on
      some cards one device may be optional (e.g.  the second bank of 2 MiB of
      graphics memory on the Picasso IV in Zorro II mode).
      Reported-by: NIngo Jürgensmann <ij@2011.bluespice.org>
      Signed-off-by: NGeert Uytterhoeven <geert@linux-m68k.org>
      Cc: stable@kernel.org
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      a7f4d00a
  8. 22 9月, 2011 11 次提交
    • R
      [SCSI] scsi: qla4xxx needs libiscsi.o · 3538a001
      Randy Dunlap 提交于
      qla4xxx driver needs to be linked with libiscsi.o to fix
      build errors.  This happens when no other drivers that use
      libiscsi.o are enabled.
      
      ERROR: "iscsi_conn_stop" [drivers/scsi/qla4xxx/qla4xxx.ko] undefined!
      ERROR: "iscsi_conn_get_addr_param" [drivers/scsi/qla4xxx/qla4xxx.ko] undefined!
      ERROR: "iscsi_session_teardown" [drivers/scsi/qla4xxx/qla4xxx.ko] undefined!
      ERROR: "iscsi_host_alloc" [drivers/scsi/qla4xxx/qla4xxx.ko] undefined!
      ERROR: "iscsi_conn_start" [drivers/scsi/qla4xxx/qla4xxx.ko] undefined!
      ERROR: "iscsi_conn_send_pdu" [drivers/scsi/qla4xxx/qla4xxx.ko] undefined!
      ERROR: "iscsi_session_get_param" [drivers/scsi/qla4xxx/qla4xxx.ko] undefined!
      ERROR: "iscsi_conn_get_param" [drivers/scsi/qla4xxx/qla4xxx.ko] undefined!
      ERROR: "iscsi_set_param" [drivers/scsi/qla4xxx/qla4xxx.ko] undefined!
      ERROR: "iscsi_session_failure" [drivers/scsi/qla4xxx/qla4xxx.ko] undefined!
      ERROR: "iscsi_complete_pdu" [drivers/scsi/qla4xxx/qla4xxx.ko] undefined!
      ERROR: "iscsi_session_setup" [drivers/scsi/qla4xxx/qla4xxx.ko] undefined!
      ERROR: "iscsi_conn_bind" [drivers/scsi/qla4xxx/qla4xxx.ko] undefined!
      ERROR: "iscsi_conn_setup" [drivers/scsi/qla4xxx/qla4xxx.ko] undefined!
      ERROR: "iscsi_itt_to_task" [drivers/scsi/qla4xxx/qla4xxx.ko] undefined!
      Signed-off-by: NRandy Dunlap <rdunlap@xenotime.net>
      Reviewed-by: NMike Christie <michaelc@cs.wisc.edu>
      Cc: stable@kernel.org
      Signed-off-by: NJames Bottomley <JBottomley@Parallels.com>
      3538a001
    • M
      [SCSI] libsas: fix failure to revalidate domain for anything but the first expander child. · 24926dad
      Mark Salyzyn 提交于
      In an enclosure model where there are chaining expanders to a large body
      of storage, it was discovered that libsas, responding to a broadcast
      event change, would only revalidate the domain of first child expander
      in the list.
      
      The issue is that the pointer value to the discovered source device was
      used to break out of the loop, rather than the content of the pointer.
      
      This still remains non-compliant as the revalidate domain code is
      supposed to loop through all child expanders, and not stop at the first
      one it finds that reports a change count. However, the design of this
      routine does not allow multiple device discoveries and that would be a
      more complicated set of patches reserved for another day. We are fixing
      the glaring bug rather than refactoring the code.
      Signed-off-by: NMark Salyzyn <msalyzyn@us.xyratex.com>
      Cc: stable@kernel.org
      Signed-off-by: NJames Bottomley <JBottomley@Parallels.com>
      24926dad
    • V
      [SCSI] aacraid: reset should disable MSI interrupt · d0efab26
      Vasily Averin 提交于
      scsi reset on hardware with enabled MSI interrupts generates WARNING message
      
      [11027.798722] aacraid: Host adapter abort request (0,0,0,0)
      [11027.798814] aacraid: Host adapter reset request. SCSI hang ?
      [11087.762237] aacraid: SCSI bus appears hung
      [11135.082543] ------------[ cut here ]------------
      [11135.082646] WARNING: at drivers/pci/msi.c:658 pci_enable_msi_block+0x251/0x290()
      Signed-off-by: NVasily Averin <vvs@sw.ru>
      Acked-by: NMark Salyzyn <mark_salyzyn@us.xyratex.com>
      Cc: stable@kernel.org
      Signed-off-by: NJames Bottomley <JBottomley@Parallels.com>
      d0efab26
    • R
      hwmon: (ds620) Fix handling of negative temperatures · cc41d586
      Roland Stigge 提交于
      Signed (negative) temperatures were not handled correctly.
      Signed-off-by: NRoland Stigge <stigge@antcom.de>
      Signed-off-by: NGuenter Roeck <guenter.roeck@ericsson.com>
      Cc: stable@kernel.org # v2.6.38+
      cc41d586
    • C
      hwmon: (w83791d) rename prototype parameter from 'register' to 'reg' · 7cbe1cee
      Chris Peterson 提交于
      gcc -Wextra warns "register is not at beginning of declaration" because the
      compiler thinks the parameter has been marked as a 'register' variable, but
      the function prototype intended to name the parameter "register" (which is a
      reserved keyword).
      Signed-off-by: NChris Peterson <cpeterso@cpeterso.com>
      Acked-by: NMarc Hulsman <m.hulsman@tudelft.nl>
      Signed-off-by: NGuenter Roeck <guenter.roeck@ericsson.com>
      7cbe1cee
    • G
      hwmon: (coretemp) Don't use threshold registers for tempX_max · f4af6fd6
      Guenter Roeck 提交于
      With commit c814a4c7, the meaning of tempX_max
      was changed. It no longer returns the value of bits 8:15 of
      MSR_IA32_TEMPERATURE_TARGET, but instead returns the value of CPU threshold
      register T1. tempX_max_hyst was added to reflect the value of temperature
      threshold register T0.
      
      As it turns out, T0 and T1 are used on some systems, presumably by the BIOS.
      Also, T0 and T1 don't have a well defined meaning. The thresholds may be used
      as upper or lower limits, and it is not guaranteed that T0 <= T1. Thus, the new
      attribute mapping does not reflect the actual usage of the threshold registers.
      Also, register contents are changed during runtime by an entity other than the
      hwmon driver, meaning the values cached by the driver do not reflect actual
      register contents.
      
      Revert most of c814a4c7 to address the problem.
      Support for T0 and T1 will be added back in with a separate commit, using new
      attribute names.
      Signed-off-by: NGuenter Roeck <guenter.roeck@ericsson.com>
      Cc: Fenghua Yu <fenghua.yu@intel.com>
      Cc: Durgadoss R <durgadoss.r@intel.com>
      Acked-by: NJean Delvare <khali@linux-fr.org>
      f4af6fd6
    • J
      hwmon: (coretemp) Let the user force TjMax · a45a8c85
      Jean Delvare 提交于
      On old CPUs (and even some recent Atom CPUs) TjMax can't be read from
      the CPU registers, so it is guessed by the driver using a complex
      heuristic which isn't reliable. So let users who know their CPU's
      TjMax pass it as a module parameter.
      Signed-off-by: NJean Delvare <khali@linux-fr.org>
      Cc: Fenghua Yu <fenghua.yu@intel.com>
      Cc: "R, Durgadoss" <durgadoss.r@intel.com>
      Cc: Guenter Roeck <guenter.roeck@ericsson.com>
      Cc: Alexander Stein <alexander.stein@systec-electronic.com>
      Acked-by: NFenghua Yu <fenghua.yu@intel.com>
      Signed-off-by: NGuenter Roeck <guenter.roeck@ericsson.com>
      a45a8c85
    • J
      hwmon: (coretemp) Drop duplicate function get_pkg_tjmax · 6bf9e9b0
      Jean Delvare 提交于
      Function get_pkg_tjmax is a simplified copy of get_tjmax. Drop it and
      always use get_tjmax, result is the same and this avoids code
      duplication.
      
      Also make get_tjmax less verbose: don't warn about MSR read failure
      when failure was expected, and don't report TjMax in the logs unless
      debugging is enabled.
      Signed-off-by: NJean Delvare <khali@linux-fr.org>
      Cc: Fenghua Yu <fenghua.yu@intel.com>
      Cc: Guenter Roeck <guenter.roeck@ericsson.com>
      Cc: Durgadoss R <durgadoss.r@intel.com>
      Acked-by: NFenghua Yu <fenghua.yu@intel.com>
      Signed-off-by: NGuenter Roeck <guenter.roeck@ericsson.com>
      6bf9e9b0
    • S
      iwlegacy: do not use interruptible waits · 65d0f19e
      Stanislaw Gruszka 提交于
      iwlegacy version of fix:
      
      commit effd4d9a
      Author: Johannes Berg <johannes.berg@intel.com>
      Date:   Thu Sep 15 11:46:52 2011 -0700
      
          iwlagn: do not use interruptible waits
      
          Since the dawn of its time, iwlwifi has used
          interruptible waits to wait for synchronous
          commands and firmware loading.
      
          This leads to "interesting" bugs, because it
          can't actually handle the interruptions; for
          example when a command sending is interrupted
          it will assume the command completed fully,
          and then leave it pending, which leads to all
          kinds of trouble when the command finishes
          later.
      
          Since there's no easy way to gracefully deal
          with interruptions, fix the driver to not use
          interruptible waits.
      
          This at least fixes the error
          iwlagn 0000:02:00.0: Error: Response NULL in  'REPLY_SCAN_ABORT_CMD'
      
          I have seen in P2P testing, but it is likely
          that there are other errors caused by this.
      
      Cc: stable@kernel.org # 2.6.39+
      Signed-off-by: NStanislaw Gruszka <sgruszka@redhat.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      65d0f19e
    • S
      iwlegacy: fix command queue timeout · 2e2a41d6
      Stanislaw Gruszka 提交于
      iwlegacy version of fix:
      
      commit 282cdb32
      Author: Johannes Berg <johannes.berg@intel.com>
      Date:   Mon Sep 12 12:09:10 2011 -0700
      
          iwlagn: fix command queue timeout
      
          If the command queue is constantly busy,
          which can happen in P2P, the hangcheck
          timer will frequently find a command in
          it and will eventually reset the device
          because nothing sets the timestamp for
          this queue when commands are processed.
      
          Fix this by setting the timestamp when
          a command completes.
      
      iwlegacy does not support P2P, but this patch fix possible
      unneeded hardware resets, hence is needed.
      
      Cc: stable@kernel.org  # 2.6.39+
      Signed-off-by: NStanislaw Gruszka <sgruszka@redhat.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      2e2a41d6
    • R
      ath9k_hw: Fix Rx DMA stuck for AR9003 chips · e9f9530b
      Rajkumar Manoharan 提交于
      During the endurance testing, rx frames are not getting DMAd from
      MAC whereas pcu rx frame counters are getting updated properly.
      As per systems team input updated the initval to fix rx dma stuck
      issue.
      
      Cc: stable@kernel.org
      Signed-off-by: NRajkumar Manoharan <rmanohar@qca.qualcomm.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      e9f9530b
  9. 21 9月, 2011 3 次提交