1. 04 10月, 2011 3 次提交
  2. 28 9月, 2011 3 次提交
  3. 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
  4. 26 9月, 2011 3 次提交
    • P
      [S390] cio: fix cio_tpi ignoring adapter interrupts · a681887f
      Peter Oberparleiter 提交于
      Ensure that adapter interrupts are correctly processed when they are
      retrieved using TEST PENDING INTERRUPTION.
      Signed-off-by: NPeter Oberparleiter <peter.oberparleiter@de.ibm.com>
      Signed-off-by: NMartin Schwidefsky <schwidefsky@de.ibm.com>
      a681887f
    • 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
  5. 24 9月, 2011 6 次提交
  6. 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
  7. 22 9月, 2011 14 次提交