1. 03 7月, 2010 6 次提交
  2. 26 6月, 2010 10 次提交
  3. 22 6月, 2010 9 次提交
  4. 16 6月, 2010 1 次提交
    • J
      iwlwifi: cancel scan watchdog in iwl_bg_abort_scan · a69b03e9
      John W. Linville 提交于
      Avoids this:
      
      WARNING: at net/mac80211/scan.c:312 ieee80211_scan_completed+0x5f/0x1f1
      [mac80211]()
      Hardware name: Latitude E5400
      Modules linked in: aes_x86_64 aes_generic fuse ipt_MASQUERADE iptable_nat
      nf_nat rfcomm sco bridge stp llc bnep l2cap sunrpc cpufreq_ondemand
      acpi_cpufreq freq_table xt_physdev ip6t_REJECT nf_conntrack_ipv6
      ip6table_filter ip6_tables ipv6 kvm_intel kvm uinput arc4 ecb
      snd_hda_codec_intelhdmi snd_hda_codec_idt snd_hda_intel iwlagn snd_hda_codec
      snd_hwdep snd_seq snd_seq_device iwlcore snd_pcm dell_wmi sdhci_pci sdhci
      iTCO_wdt tg3 dell_laptop mmc_core i2c_i801 wmi mac80211 snd_timer
      iTCO_vendor_support btusb joydev dcdbas cfg80211 bluetooth snd soundcore
      microcode rfkill snd_page_alloc firewire_ohci firewire_core crc_itu_t
      yenta_socket rsrc_nonstatic i915 drm_kms_helper drm i2c_algo_bit i2c_core video
      output [last unloaded: scsi_wait_scan]
      Pid: 979, comm: iwlagn Tainted: G        W  2.6.33.3-85.fc13.x86_64 #1
      Call Trace:
      [<ffffffff8104b558>] warn_slowpath_common+0x77/0x8f
      [<ffffffff8104b57f>] warn_slowpath_null+0xf/0x11
      [<ffffffffa01bb7d9>] ieee80211_scan_completed+0x5f/0x1f1 [mac80211]
      [<ffffffffa02a23f0>] iwl_bg_scan_completed+0xbb/0x17a [iwlcore]
      [<ffffffff81060d3d>] worker_thread+0x1a4/0x232
      [<ffffffffa02a2335>] ? iwl_bg_scan_completed+0x0/0x17a [iwlcore]
      [<ffffffff81064817>] ? autoremove_wake_function+0x0/0x34
      [<ffffffff81060b99>] ? worker_thread+0x0/0x232
      [<ffffffff810643c7>] kthread+0x7a/0x82
      [<ffffffff8100a924>] kernel_thread_helper+0x4/0x10
      [<ffffffff8106434d>] ? kthread+0x0/0x82
      [<ffffffff8100a920>] ? kernel_thread_helper+0x0/0x10
      
      Reported here:
      
      	https://bugzilla.redhat.com/show_bug.cgi?id=590436Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      Reported-by: NMihai Harpau <mishu@piatafinanciara.ro>
      Cc: stable@kernel.org
      Acked-by: NReinette Chatre <reinette.chatre@intel.com>
      a69b03e9
  5. 15 6月, 2010 8 次提交
  6. 09 6月, 2010 1 次提交
  7. 08 6月, 2010 1 次提交
    • J
      iwlwifi: fix-up botched revert · dc1dfe47
      John W. Linville 提交于
      In the revert of "iwlwifi: move _agn statistics related structure", I
      need to use CONFIG_IWLWIFI_DEBUGFS instead of CONFIG_IWLWIFI_DEBUG in
      the private structure definition.  Without this patch, it is possible
      to get this:
      
      drivers/net/wireless/iwlwifi/iwl-rx.c: In function 'iwl_accumulative_statistics':
      drivers/net/wireless/iwlwifi/iwl-rx.c:304: error: 'struct iwl_priv' has no member named 'accum_statistics'
      drivers/net/wireless/iwlwifi/iwl-rx.c:305: error: 'struct iwl_priv' has no member named 'delta_statistics'
      drivers/net/wireless/iwlwifi/iwl-rx.c:306: error: 'struct iwl_priv' has no member named 'max_delta'
      drivers/net/wireless/iwlwifi/iwl-rx.c:321: error: 'struct iwl_priv' has no member named 'accum_statistics'
      drivers/net/wireless/iwlwifi/iwl-rx.c:323: error: 'struct iwl_priv' has no member named 'accum_statistics'
      drivers/net/wireless/iwlwifi/iwl-rx.c:325: error: 'struct iwl_priv' has no member named 'accum_statistics'
      drivers/net/wireless/iwlwifi/iwl-rx.c:327: error: 'struct iwl_priv' has no member named 'accum_statistics'
      drivers/net/wireless/iwlwifi/iwl-rx.c:329: error: 'struct iwl_priv' has no member named 'accum_statistics'
      drivers/net/wireless/iwlwifi/iwl-rx.c:331: error: 'struct iwl_priv' has no member named 'accum_statistics'
      drivers/net/wireless/iwlwifi/iwl-rx.c: In function 'iwl_reply_statistics':
      drivers/net/wireless/iwlwifi/iwl-rx.c:484: error: 'struct iwl_priv' has no member named 'accum_statistics'
      drivers/net/wireless/iwlwifi/iwl-rx.c:486: error: 'struct iwl_priv' has no member named 'delta_statistics'
      drivers/net/wireless/iwlwifi/iwl-rx.c:488: error: 'struct iwl_priv' has no member named 'max_delta'
      Reported-by: NRandy Dunlap <randy.dunlap@oracle.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      dc1dfe47
  8. 06 6月, 2010 4 次提交
    • D
      iwlwifi: fix wrapping when handling aggregated batches · f668da2f
      Daniel Halperin 提交于
      Fairly complex code in iwlagn_tx_status_reply_tx handle the status reports for
      aggregated packet batches sent by the NIC. This code aims to handle the case
      where the NIC retransmits failed packets from a previous batch; the status
      information for these packets can sometimes be inserted in the middle of a
      batch and are actually not in order by sequence number! (I verified this can
      happen with printk's in the function.)
      
      The code in question adaptively identifies the "first" frame of the batch,
      taking into account that it may not be the one corresponding to the first agg
      status report, and also handles the case when the set of sent packets wraps the
      256-character entry buffer. It generates the agg->bitmap field of sent packets
      which is later compared to the BlockAck response from the receiver to see which
      frames of those sent in this batch were ACKed. A small logic error (wrapping by
      0xff==255 instead of 0x100==256) was causing the agg->bitmap to be set
      incorrectly.
      
      Fix this wrapping code, and add extensive comments to clarify what is going on.
      Signed-off-by: NDaniel Halperin <dhalperi@cs.washington.edu>
      Signed-off-by: NReinette Chatre <reinette.chatre@intel.com>
      f668da2f
    • D
      iwlwifi: parse block ack responses correctly · 02cd8dee
      Daniel Halperin 提交于
      Compressed BlockAck frames store the ACKs/NACKs in a 64-bit bitmap that starts
      at the sequence number of the first frame sent in the aggregated batch. Note
      that this is a selective ACKnowledgement following selective retransmission;
      e.g., if frames 1,4-5 in a batch are ACKed then the next transmission will
      include frames 2-3,6-10 (7 frames). In this latter case, the Compressed
      BlockAck will not have all meaningful information in the low order bits -- the
      semantically meaningful bits of the BA will be 0x1f3 (where the low-order frame
      is seq 2).
      
      The driver code originally just looked at the lower (in this case, 7) bits of
      the BlockAck. In this case, the lower 7 bits of 0x1f3 => only 5 packets,
      maximum, could ever be ACKed. In reality it should be looking at all of the
      bits, filtered by those corresponding to packets that were actually sent. This
      flaw meant that the number of correctly ACked packets could be significantly
      underreported and might result in asynchronous state between TX and RX sides as
      well as driver and uCode.
      
      Fix this and also add a shortcut that doesn't require the code to loop through
      all 64 bits of the bitmap but rather stops when no higher packets are ACKed.
      
      In my experiments this fix greatly reduces throughput swing, making throughput
      stable and high. It is also likely related to some of the stalls observed in
      aggregation mode and maybe some of the buffer underruns observed, e.g.,
      
      http://bugzilla.intellinuxwireless.org/show_bug.cgi?id=1968
      http://bugzilla.intellinuxwireless.org/show_bug.cgi?id=2098
      http://bugzilla.intellinuxwireless.org/show_bug.cgi?id=2018Signed-off-by: NDaniel Halperin <dhalperi@cs.washington.edu>
      Signed-off-by: NReinette Chatre <reinette.chatre@intel.com>
      02cd8dee
    • W
      iwlwifi: remove unused parameter · 18ab9f1e
      Wey-Yi Guy 提交于
      framecnt_to_us is not used, remove it
      Signed-off-by: NWey-Yi Guy <wey-yi.w.guy@intel.com>
      Signed-off-by: NReinette Chatre <reinette.chatre@intel.com>
      18ab9f1e
    • J
      iwlwifi: queue user-initiated scan when doing internal scan · f84b29ec
      Johannes Berg 提交于
      The internal scanning created a problem where
      when userspace tries to scan, the scan gets
      rejected. Instead of doing that, queue up the
      user-initiated scan when doing an internal
      scan.
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      Signed-off-by: NReinette Chatre <reinette.chatre@intel.com>
      f84b29ec