1. 19 11月, 2012 2 次提交
  2. 10 11月, 2012 1 次提交
  3. 05 11月, 2012 1 次提交
  4. 01 11月, 2012 1 次提交
    • E
      iwlwifi: handle RFKILL logic in the transport layer · f946b529
      Emmanuel Grumbach 提交于
      No HCMD can be sent while RFKILL is asserted. If a SYNC
      command is running while RFKILL is asserted the fw will
      silently discard it. This means that the driver needs to
      wake the process that sleeps on the CMD_SYNC.
      
      Since the RFKILL interrupt is handled in the transport layer
      and the code that sleeps in CMD_SYNC is also in the transport
      layer, all this logic can be handled there.
      This simplifies the work of the op_mode.
      
      So the transport layer will now return -ERFKILL when a CMD
      is sent and RFKILL is asserted. This will be the case even
      when the CMD is SYNC. The transport layer will return
      -ERFKILL straight away.
      Signed-off-by: NEmmanuel Grumbach <emmanuel.grumbach@intel.com>
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      f946b529
  5. 29 10月, 2012 1 次提交
  6. 16 10月, 2012 1 次提交
    • J
      iwlwifi: make data frame tracing optional · f042c2eb
      Johannes Berg 提交于
      When tracing in iwlwifi, we get all data. Most of
      the time, we don't need it, and it just takes up
      a lot of extra space in the trace.
      
      Make this optional by recording the data into two
      separate trace events if it is needed. Without it,
      record only the content of non-data and EAPOL TX
      frames.
      
      As a result, tracing without the data tracepoints
      will record meta information including the 802.11
      headers for all frames but will not record the
      contents of data frames to reduce trace overhead.
      Reviewed-by: NEmmanuel Grumbach <emmanuel.grumbach@intel.com>
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      f042c2eb
  7. 11 9月, 2012 2 次提交
    • E
      iwlwifi: don't access the HW when it is not available · 7439046d
      Emmanuel Grumbach 提交于
      When we kill the radio with the RF kill button we could access
      the HW after having stopped the APM which would result in the
      warning below.
      
      The flow goes like this:
      * RF kill
      	iwlwifi notifies the stack which stops the driver
      	fw sends CARD_STATE_NOTIFICATION
      * iwl_trans_pcie_stop_device stops the APM
      * the tasklet runs and calls to iwl_rx_handle
      * iwl_rx_handle calls iwl_rx_queue_restock
      * iwl_rx_queue_restock tries to access the HW...
      
      [255908.543823] ------------[ cut here ]------------
      [255908.543843] WARNING: at drivers/net/wireless/iwlwifi/iwl-io.c:150 iwl_grab_nic_access+0x79/0xb0 [iwlwifi]()
      [255908.543849] Hardware name: Latitude E6410
      [255908.543852] Timeout waiting for hardware access (CSR_GP_CNTRL 0x000003d8)
      [255908.543856] Modules linked in: iwlmvm iwlwifi mac80211 [...]
      [255908.543935] Pid: 0, comm: swapper Tainted: G        W   3.1.0 #1
      [255908.543939] Call Trace:
      [255908.543950]  [<c1046e42>] warn_slowpath_common+0x72/0xa0
      [255908.543980]  [<c1046f13>] warn_slowpath_fmt+0x33/0x40
      [255908.543992]  [<fa4bb3b9>] iwl_grab_nic_access+0x79/0xb0 [iwlwifi]
      [255908.544004]  [<fa4bb9eb>] iwl_write_direct32+0x2b/0xa0 [iwlwifi]
      [255908.544018]  [<fa4c0ff9>] iwl_rx_queue_update_write_ptr+0x89/0x1d0 [iwlwifi]
      [255908.544054]  [<fa4c1250>] iwlagn_rx_queue_restock+0x110/0x140 [iwlwifi]
      [255908.544067]  [<fa4c234d>] iwl_irq_tasklet+0x82d/0xf40 [iwlwifi]
      [255908.544096]  [<c104e11e>] tasklet_action+0xbe/0x100
      [255908.544102]  [<c104d91e>] __do_softirq+0xae/0x1f0
      [255908.544227] ---[ end trace d150f49345d85009 ]---
      
      Prevent this.
      Signed-off-by: NEmmanuel Grumbach <emmanuel.grumbach@intel.com>
      Reviewed-by: NJohannes Berg <johannes.berg@intel.com>
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      7439046d
    • E
      iwlwifi: some clean up in transport layer · 358a46d4
      Emmanuel Grumbach 提交于
      Remove outdated iwlagn prefix to a few functions and fix comments
      that were not accurate.
      Signed-off-by: NEmmanuel Grumbach <emmanuel.grumbach@intel.com>
      Reviewed-by: NJohannes Berg <johannes.berg@intel.com>
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      358a46d4
  8. 06 9月, 2012 1 次提交
  9. 22 8月, 2012 1 次提交
  10. 26 7月, 2012 1 次提交
    • 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
  11. 03 7月, 2012 1 次提交
  12. 18 6月, 2012 1 次提交
  13. 06 6月, 2012 3 次提交
  14. 03 5月, 2012 1 次提交
    • E
      iwlwifi: fix skb truesize underestimation · ed90542b
      Eric Dumazet 提交于
      By default, iwlwifi uses order-1 pages (8 KB) to store incoming frames,
      but doesnt say so in skb->truesize.
      
      This makes very possible to exhaust kernel memory since these skb evade
      normal socket memory accounting.
      
      As struct ieee80211_hdr is going to be pulled before calling IP stack,
      there is no need to use dev_alloc_skb() to reserve NET_SKB_PAD bytes.
      alloc_skb() is ok in this driver, allowing more tailroom.
      
      Pull beginning of frame in skb header, in the hope we can reuse order-1
      pages in the driver immediately for small frames and reduce their
      truesize to the minimum (linear skbs)
      Signed-off-by: NEric Dumazet <eric.dumazet@gmail.com>
      Cc: Wey-Yi Guy <wey-yi.w.guy@intel.com>
      Cc: "John W. Linville" <linville@tuxdriver.com>
      Cc: Neal Cardwell <ncardwell@google.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      ed90542b
  15. 24 4月, 2012 1 次提交
  16. 18 4月, 2012 2 次提交
  17. 17 4月, 2012 4 次提交
  18. 13 4月, 2012 1 次提交
  19. 10 4月, 2012 4 次提交
  20. 13 3月, 2012 2 次提交
  21. 10 3月, 2012 2 次提交
  22. 09 3月, 2012 4 次提交
  23. 08 3月, 2012 2 次提交