1. 22 8月, 2012 1 次提交
  2. 26 7月, 2012 2 次提交
    • E
      iwlwifi: get the correct HCMD in the response handler · 96791422
      Emmanuel Grumbach 提交于
      Until now, the response handler of a Host Command got the
      exact same pointer that was also given to the DMA engine.
      We almost never need to the Host Command that was sent while
      handling its response, but when we do need it, we see that
      the command has been modified.
      
      This mystery has been elucidated. The FH (our DMA engine)
      writes its meta data on the buffer in the DRAM. Of course it
      copies the buffer to the NIC first. This was known to happen
      for Tx command, but as a matter of fact, it happens to all
      TFD brought by the FH which doesn't care much about what it
      brings from DRAM to internal SRAM.
      
      So copy the Host Command to yet another buffer so that we
      can properly pass the buffer that was sent originally to the
      fw. Do that only if it was request by the user since very
      few flows need to get the HCMD sent in the response handler.
      Signed-off-by: NEmmanuel Grumbach <emmanuel.grumbach@intel.com>
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      96791422
    • M
      iwlwifi: rework the iwlwifi debugfs structure · 9da987ac
      Meenakshi Venkataraman 提交于
      The generic part of the driver now creates all debugfs
      directories. It creates a root directory directly in
      the the root of the debugfs filesystem and within that
      directories for each device, named after the device ID
      of the devices iwlwifi is attached to.
      
      In the cfg80211/mac80211 directory there's now a link
      to the toplevel iwlwifi debugfs directory to make it
      easier to find the debugfs files.
      Signed-off-by: NMeenakshi Venkataraman <meenakshi.venkataraman@intel.com>
      Reviewed-by: NEmmanuel Grumbach <emmanuel.grumbach@intel.com>
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      9da987ac
  3. 12 7月, 2012 1 次提交
  4. 29 6月, 2012 1 次提交
  5. 25 6月, 2012 1 次提交
  6. 18 6月, 2012 3 次提交
  7. 13 6月, 2012 5 次提交
  8. 06 6月, 2012 12 次提交
  9. 25 5月, 2012 1 次提交
    • E
      iwlwifi: fix the Transmit Frame Descriptor rings · ebed633c
      Emmanuel Grumbach 提交于
      The logic that allows to have a short TFD queue was completely wrong.
      We do maintain 256 Transmit Frame Descriptors, but they point to
      recycled buffers. We used to attach and de-attach different TFDs for
      the same buffer and it worked since they pointed to the same buffer.
      
      Also zero the number of BDs after unmapping a TFD. This seems not
      necessary since we don't reclaim the same TFD twice, but I like
      housekeeping.
      
      This patch solves this warning:
      
      [ 6427.079855] WARNING: at lib/dma-debug.c:866 check_unmap+0x727/0x7a0()
      [ 6427.079859] Hardware name: Latitude E6410
      [ 6427.079865] iwlwifi 0000:02:00.0: DMA-API: device driver tries to free DMA memory it has not allocated [device address=0x00000000296d393c] [size=8 bytes]
      [ 6427.079870] Modules linked in: ...
      [ 6427.079950] Pid: 6613, comm: ifconfig Tainted: G           O 3.3.3 #5
      [ 6427.079954] Call Trace:
      [ 6427.079963]  [<c10337a2>] warn_slowpath_common+0x72/0xa0
      [ 6427.079982]  [<c1033873>] warn_slowpath_fmt+0x33/0x40
      [ 6427.079988]  [<c12dcb77>] check_unmap+0x727/0x7a0
      [ 6427.079995]  [<c12dcdaa>] debug_dma_unmap_page+0x5a/0x80
      [ 6427.080024]  [<fe2312ac>] iwlagn_unmap_tfd+0x12c/0x180 [iwlwifi]
      [ 6427.080048]  [<fe231349>] iwlagn_txq_free_tfd+0x49/0xb0 [iwlwifi]
      [ 6427.080071]  [<fe228e37>] iwl_tx_queue_unmap+0x67/0x90 [iwlwifi]
      [ 6427.080095]  [<fe22d221>] iwl_trans_pcie_stop_device+0x341/0x7b0 [iwlwifi]
      [ 6427.080113]  [<fe204b0e>] iwl_down+0x17e/0x260 [iwlwifi]
      [ 6427.080132]  [<fe20efec>] iwlagn_mac_stop+0x6c/0xf0 [iwlwifi]
      [ 6427.080168]  [<fd8480ce>] ieee80211_stop_device+0x5e/0x190 [mac80211]
      [ 6427.080198]  [<fd833208>] ieee80211_do_stop+0x288/0x620 [mac80211]
      [ 6427.080243]  [<fd8335b7>] ieee80211_stop+0x17/0x20 [mac80211]
      [ 6427.080250]  [<c148dac1>] __dev_close_many+0x81/0xd0
      [ 6427.080270]  [<c148db3d>] __dev_close+0x2d/0x50
      [ 6427.080276]  [<c148d152>] __dev_change_flags+0x82/0x150
      [ 6427.080282]  [<c148e3e3>] dev_change_flags+0x23/0x60
      [ 6427.080289]  [<c14f6320>] devinet_ioctl+0x6a0/0x770
      [ 6427.080296]  [<c14f8705>] inet_ioctl+0x95/0xb0
      [ 6427.080304]  [<c147a0f0>] sock_ioctl+0x70/0x270
      
      Cc: stable@vger.kernel.org
      Reported-by: NAntonio Quartulli <ordex@autistici.org>
      Tested-by: NAntonio Quartulli <ordex@autistici.org>
      Signed-off-by: NEmmanuel Grumbach <emmanuel.grumbach@intel.com>
      Reviewed-by: NWey-Yi W Guy <wey-yi.w.guy@intel.com>
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      ebed633c
  10. 09 5月, 2012 1 次提交
  11. 24 4月, 2012 10 次提交
  12. 18 4月, 2012 2 次提交