1. 21 Feb, 2011 3 commits
    • Daniel J Blueman's avatar
      fix cfg80211_wext_siwfreq lock ordering... · 4f919a3b
      Daniel J Blueman authored
      I previously managed to reproduce a hang while scanning wireless
      channels (reproducible with airodump-ng hopping channels); subsequent
      lockdep instrumentation revealed a lock ordering issue.
      
      Without knowing the design intent, it looks like the locks should be
      taken in reverse order; please comment.
      
      =======================================================
      [ INFO: possible circular locking dependency detected ]
      2.6.38-rc5-341cd #4
      -------------------------------------------------------
      airodump-ng/15445 is trying to acquire lock:
       (&rdev->devlist_mtx){+.+.+.}, at: [<ffffffff816b1266>]
      cfg80211_wext_siwfreq+0xc6/0x100
      
      but task is already holding lock:
       (&wdev->mtx){+.+.+.}, at: [<ffffffff816b125c>] cfg80211_wext_siwfreq+0xbc/0x100
      
      which lock already depends on the new lock.
      
      the existing dependency chain (in reverse order) is:
      
      -> #1 (&wdev->mtx){+.+.+.}:
             [<ffffffff810a79d6>] lock_acquire+0xc6/0x280
             [<ffffffff816d6bce>] mutex_lock_nested+0x6e/0x4b0
             [<ffffffff81696080>] cfg80211_netdev_notifier_call+0x430/0x5f0
             [<ffffffff8109351b>] notifier_call_chain+0x8b/0x100
             [<ffffffff810935b1>] raw_notifier_call_chain+0x11/0x20
             [<ffffffff81576d92>] call_netdevice_notifiers+0x32/0x60
             [<ffffffff815771a4>] __dev_notify_flags+0x34/0x80
             [<ffffffff81577230>] dev_change_flags+0x40/0x70
             [<ffffffff8158587c>] do_setlink+0x1fc/0x8d0
             [<ffffffff81586042>] rtnl_setlink+0xf2/0x140
             [<ffffffff81586923>] rtnetlink_rcv_msg+0x163/0x270
             [<ffffffff8159d741>] netlink_rcv_skb+0xa1/0xd0
             [<ffffffff815867b0>] rtnetlink_rcv+0x20/0x30
             [<ffffffff8159d39a>] netlink_unicast+0x2ba/0x300
             [<ffffffff8159dd57>] netlink_sendmsg+0x267/0x3e0
             [<ffffffff8155e364>] sock_sendmsg+0xe4/0x110
             [<ffffffff8155f3a3>] sys_sendmsg+0x253/0x3b0
             [<ffffffff81003192>] system_call_fastpath+0x16/0x1b
      
      -> #0 (&rdev->devlist_mtx){+.+.+.}:
             [<ffffffff810a7222>] __lock_acquire+0x1622/0x1d10
             [<ffffffff810a79d6>] lock_acquire+0xc6/0x280
             [<ffffffff816d6bce>] mutex_lock_nested+0x6e/0x4b0
             [<ffffffff816b1266>] cfg80211_wext_siwfreq+0xc6/0x100
             [<ffffffff816b2fad>] ioctl_standard_call+0x5d/0xd0
             [<ffffffff816b3223>] T.808+0x163/0x170
             [<ffffffff816b326a>] wext_handle_ioctl+0x3a/0x90
             [<ffffffff815798d2>] dev_ioctl+0x6f2/0x830
             [<ffffffff8155cf3d>] sock_ioctl+0xfd/0x290
             [<ffffffff8117dffd>] do_vfs_ioctl+0x9d/0x590
             [<ffffffff8117e53a>] sys_ioctl+0x4a/0x80
             [<ffffffff81003192>] system_call_fastpath+0x16/0x1b
      
      other info that might help us debug this:
      
      2 locks held by airodump-ng/15445:
       #0:  (rtnl_mutex){+.+.+.}, at: [<ffffffff81586782>] rtnl_lock+0x12/0x20
       #1:  (&wdev->mtx){+.+.+.}, at: [<ffffffff816b125c>]
      cfg80211_wext_siwfreq+0xbc/0x100
      
      stack backtrace:
      Pid: 15445, comm: airodump-ng Not tainted 2.6.38-rc5-341cd #4
      Call Trace:
       [<ffffffff810a3f0a>] ? print_circular_bug+0xfa/0x100
       [<ffffffff810a7222>] ? __lock_acquire+0x1622/0x1d10
       [<ffffffff810a1f99>] ? trace_hardirqs_off_caller+0x29/0xc0
       [<ffffffff810a79d6>] ? lock_acquire+0xc6/0x280
       [<ffffffff816b1266>] ? cfg80211_wext_siwfreq+0xc6/0x100
       [<ffffffff810a31d7>] ? mark_held_locks+0x67/0x90
       [<ffffffff816d6bce>] ? mutex_lock_nested+0x6e/0x4b0
       [<ffffffff816b1266>] ? cfg80211_wext_siwfreq+0xc6/0x100
       [<ffffffff810a31d7>] ? mark_held_locks+0x67/0x90
       [<ffffffff816b1266>] ? cfg80211_wext_siwfreq+0xc6/0x100
       [<ffffffff816b1266>] ? cfg80211_wext_siwfreq+0xc6/0x100
       [<ffffffff816b2fad>] ? ioctl_standard_call+0x5d/0xd0
       [<ffffffff8157818b>] ? __dev_get_by_name+0x9b/0xc0
       [<ffffffff816b2f50>] ? ioctl_standard_call+0x0/0xd0
       [<ffffffff816b3223>] ? T.808+0x163/0x170
       [<ffffffff8112ddf2>] ? might_fault+0x72/0xd0
       [<ffffffff816b326a>] ? wext_handle_ioctl+0x3a/0x90
       [<ffffffff8112de3b>] ? might_fault+0xbb/0xd0
       [<ffffffff815798d2>] ? dev_ioctl+0x6f2/0x830
       [<ffffffff810a1bae>] ? put_lock_stats+0xe/0x40
       [<ffffffff810a1c8c>] ? lock_release_holdtime+0xac/0x150
       [<ffffffff8155cf3d>] ? sock_ioctl+0xfd/0x290
       [<ffffffff8117dffd>] ? do_vfs_ioctl+0x9d/0x590
       [<ffffffff8116c8ff>] ? fget_light+0x1df/0x3c0
       [<ffffffff8117e53a>] ? sys_ioctl+0x4a/0x80
       [<ffffffff81003192>] ? system_call_fastpath+0x16/0x1b
      Signed-off-by: default avatarDaniel J Blueman <daniel.blueman@gmail.com>
      Acked-by: default avatarJohannes Berg <johannes@sipsolutions.net>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      4f919a3b
    • Gertjan van Wingerde's avatar
      rt2x00: Fix WPA TKIP Michael MIC failures. · a866a2cc
      Gertjan van Wingerde authored
      As reported and found by Johannes Stezenbach:
      rt2800{pci,usb} do not report the Michael MIC in RXed frames, but do check
      the Michael MIC in hardware. Therefore we have to report to mac80211 that the
      received frame does not include the Michael MIC.
      
      https://bugzilla.kernel.org/show_bug.cgi?id=16608Signed-off-by: default avatarGertjan van Wingerde <gwingerde@gmail.com>
      Signed-off-by: default avatarIvo van Doorn <IvDoorn@gmail.com>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      a866a2cc
    • Nick Kossifidis's avatar
      ath5k: Fix fast channel switching · 573cfde7
      Nick Kossifidis authored
      Fast channel change fixes:
      
      a) Always set OFDM timings
      b) Don't re-activate PHY
      c) Enable only NF calibration, not AGC
      
      https://bugzilla.kernel.org/show_bug.cgi?id=27382Signed-off-by: default avatarNick Kossifidis <mickflemm@gmail.com>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      573cfde7
  2. 18 Feb, 2011 4 commits
    • Nikolay Ledovskikh's avatar
      ath5k: Correct channel setting for AR2317 chip · 28bec7b8
      Nikolay Ledovskikh authored
      Correct channel setting function must be used for AR2317.
      When I tested ahb patch on bullet2 all seemed to work fine,
      but it couldn't connect another host (using ibss for example).
      During an analysis I observed that it's transmitting on another
      channel. I looked into madwifi code and understood that
      the problem is in channel setting function. So atheros RF2317 not
      fully handled in the current ath5k version and must be patched.
      Signed-off-by: default avatarNikolay Ledovskikh <nledovskikh@gmail.com>
      Acked-by: default avatarBob Copeland <me@bobcopeland.com>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      28bec7b8
    • Xose Vazquez Perez's avatar
      wireless: rt2x00: rt2800pci.c: add two ids · 00781a74
      Xose Vazquez Perez authored
      taken two RT35XX EDIMAX from DPO_RT3562_3592_3062_LinuxSTA_V2.4.1.1_20101217
      Signed-off-by: default avatarXose Vazquez Perez <xose.vazquez@gmail.com>
      Acked-by: default avatarIvo van Doorn <IvDoorn@gmail.com>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      00781a74
    • Stanislaw Gruszka's avatar
      mac80211: fix conn_mon_timer running after disassociate · 05e7c991
      Stanislaw Gruszka authored
      Low level driver could pass rx frames to us after disassociate, what
      can lead to run conn_mon_timer by ieee80211_sta_rx_notify(). That
      is obviously wrong, but nothing happens until we unload modules and
      resources are used after free. If kernel debugging is enabled following
      warning could be observed:
      
      WARNING: at lib/debugobjects.c:259 debug_print_object+0x65/0x70()
      Hardware name: HP xw8600 Workstation
      ODEBUG: free active (active state 0) object type: timer_list
      Modules linked in: iwlagn(-) iwlcore mac80211 cfg80211 aes_x86_64 aes_generic fuse cpufreq_ondemand acpi_cpufreq freq_table mperf xt_physdev ipt_REJECT nf_conntrack_ipv4 nf_defrag_ipv4 iptable_filter ip_tables ip6t_REJECT nf_conntrack_ipv6 nf_defrag_ipv6 xt_state nf_conntrack ip6table_filter ip6_tables ipv6 ext3 jbd dm_mirror dm_region_hash dm_log dm_mod uinput hp_wmi sparse_keymap sg wmi arc4 microcode serio_raw ecb tg3 shpchp rfkill ext4 mbcache jbd2 sr_mod cdrom sd_mod crc_t10dif firewire_ohci firewire_core crc_itu_t mptsas mptscsih mptbase scsi_transport_sas ahci libahci pata_acpi ata_generic ata_piix floppy nouveau ttm drm_kms_helper drm i2c_algo_bit i2c_core video [last unloaded: cfg80211]
      Pid: 13827, comm: rmmod Tainted: G        W   2.6.38-rc4-wl+ #22
      Call Trace:
       [<ffffffff810649cf>] ? warn_slowpath_common+0x7f/0xc0
       [<ffffffff81064ac6>] ? warn_slowpath_fmt+0x46/0x50
       [<ffffffff81226fc5>] ? debug_print_object+0x65/0x70
       [<ffffffff81227625>] ? debug_check_no_obj_freed+0x125/0x210
       [<ffffffff8109ebd7>] ? debug_check_no_locks_freed+0xf7/0x170
       [<ffffffff81156092>] ? kfree+0xc2/0x2f0
       [<ffffffff813ec5c5>] ? netdev_release+0x45/0x60
       [<ffffffff812f1067>] ? device_release+0x27/0xa0
       [<ffffffff81216ddd>] ? kobject_release+0x8d/0x1a0
       [<ffffffff81216d50>] ? kobject_release+0x0/0x1a0
       [<ffffffff812183b7>] ? kref_put+0x37/0x70
       [<ffffffff81216c57>] ? kobject_put+0x27/0x60
       [<ffffffff813d5d1b>] ? netdev_run_todo+0x1ab/0x270
       [<ffffffff813e771e>] ? rtnl_unlock+0xe/0x10
       [<ffffffffa0581188>] ? ieee80211_unregister_hw+0x58/0x120 [mac80211]
       [<ffffffffa0377ed7>] ? iwl_pci_remove+0xdb/0x22a [iwlagn]
       [<ffffffff8123cde2>] ? pci_device_remove+0x52/0x120
       [<ffffffff812f5205>] ? __device_release_driver+0x75/0xe0
       [<ffffffff812f5348>] ? driver_detach+0xd8/0xe0
       [<ffffffff812f4111>] ? bus_remove_driver+0x91/0x100
       [<ffffffff812f5b62>] ? driver_unregister+0x62/0xa0
       [<ffffffff8123d194>] ? pci_unregister_driver+0x44/0xa0
       [<ffffffffa0377df5>] ? iwl_exit+0x15/0x1c [iwlagn]
       [<ffffffff810ab492>] ? sys_delete_module+0x1a2/0x270
       [<ffffffff81498889>] ? trace_hardirqs_on_thunk+0x3a/0x3f
       [<ffffffff8100bf42>] ? system_call_fastpath+0x16/0x1b
      Acked-by: default avatarJohannes Berg <johannes@sipsolutions.net>
      Signed-off-by: default avatarStanislaw Gruszka <sgruszka@redhat.com>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      05e7c991
    • John W. Linville's avatar
  3. 16 Feb, 2011 3 commits
  4. 15 Feb, 2011 1 commit
  5. 09 Feb, 2011 3 commits
    • Eliad Peller's avatar
      mac80211: add missing locking in ieee80211_reconfig · a7b545f7
      Eliad Peller authored
      When suspending an associated system, and then resuming,
      the station vif is being reconfigured without taking the
      sdata->u.mgd.mtx lock, which results in the following warning:
      
      WARNING: at net/mac80211/mlme.c:101 ieee80211_ap_probereq_get+0x58/0xb8 [mac80211]()
      Modules linked in: wl12xx_sdio wl12xx firmware_class crc7 mac80211 cfg80211 [last unloaded: crc7]
      Backtrace:
      [<c005432c>] (dump_backtrace+0x0/0x118) from [<c0376e28>] (dump_stack+0x20/0x24)
       r7:00000000 r6:bf12d6ec r5:bf154aac r4:00000065
      [<c0376e08>] (dump_stack+0x0/0x24) from [<c0079104>] (warn_slowpath_common+0x5c/0x74)
      [<c00790a8>] (warn_slowpath_common+0x0/0x74) from [<c0079148>] (warn_slowpath_null+0x2c/0x34)
       r9:000024ff r8:cd006460 r7:00000001 r6:00000000 r5:00000000
      r4:cf1394a0
      [<c007911c>] (warn_slowpath_null+0x0/0x34) from [<bf12d6ec>] (ieee80211_ap_probereq_get+0x58/0xb8 [mac80211])
      [<bf12d694>] (ieee80211_ap_probereq_get+0x0/0xb8 [mac80211]) from [<bf19cd04>] (wl1271_cmd_build_ap_probe_req+0x30/0xf8 [wl12xx])
       r4:cd007440
      [<bf19ccd4>] (wl1271_cmd_build_ap_probe_req+0x0/0xf8 [wl12xx]) from [<bf1995f4>] (wl1271_op_bss_info_changed+0x4c4/0x808 [wl12xx])
       r5:cd007440 r4:000003b4
      [<bf199130>] (wl1271_op_bss_info_changed+0x0/0x808 [wl12xx]) from [<bf122168>] (ieee80211_bss_info_change_notify+0x1a4/0x1f8 [mac80211])
      [<bf121fc4>] (ieee80211_bss_info_change_notify+0x0/0x1f8 [mac80211]) from [<bf141e80>] (ieee80211_reconfig+0x4d0/0x668 [mac80211])
       r8:cf0eeea4 r7:cd00671c r6:00000000 r5:cd006460 r4:cf1394a0
      [<bf1419b0>] (ieee80211_reconfig+0x0/0x668 [mac80211]) from [<bf137dd4>] (ieee80211_resume+0x60/0x70 [mac80211])
      [<bf137d74>] (ieee80211_resume+0x0/0x70 [mac80211]) from [<bf0eb930>] (wiphy_resume+0x6c/0x7c [cfg80211])
       r5:cd006248 r4:cd006110
      [<bf0eb8c4>] (wiphy_resume+0x0/0x7c [cfg80211]) from [<c0241024>] (legacy_resume+0x38/0x70)
       r7:00000000 r6:00000000 r5:cd006248 r4:cd0062fc
      [<c0240fec>] (legacy_resume+0x0/0x70) from [<c0241478>] (device_resume+0x168/0x1a0)
       r8:c04ca8d8 r7:cd00627c r6:00000010 r5:cd006248 r4:cd0062fc
      [<c0241310>] (device_resume+0x0/0x1a0) from [<c0241600>] (dpm_resume_end+0xf8/0x3bc)
       r7:00000000 r6:00000005 r5:cd006248 r4:cd0062fc
      [<c0241508>] (dpm_resume_end+0x0/0x3bc) from [<c00b2a24>] (suspend_devices_and_enter+0x1b0/0x204)
      [<c00b2874>] (suspend_devices_and_enter+0x0/0x204) from [<c00b2b68>] (enter_state+0xf0/0x148)
       r7:c037e978 r6:00000003 r5:c043d807 r4:00000000
      [<c00b2a78>] (enter_state+0x0/0x148) from [<c00b20a4>] (state_store+0xa4/0xcc)
       r7:c037e978 r6:00000003 r5:00000003 r4:c043d807
      [<c00b2000>] (state_store+0x0/0xcc) from [<c01fc90c>] (kobj_attr_store+0x20/0x24)
      [<c01fc8ec>] (kobj_attr_store+0x0/0x24) from [<c0157120>] (sysfs_write_file+0x11c/0x150)
      [<c0157004>] (sysfs_write_file+0x0/0x150) from [<c0100f84>] (vfs_write+0xc0/0x14c)
      [<c0100ec4>] (vfs_write+0x0/0x14c) from [<c01010e4>] (sys_write+0x4c/0x78)
       r8:40126000 r7:00000004 r6:cf1a7c80 r5:00000000 r4:00000000
      [<c0101098>] (sys_write+0x0/0x78) from [<c00500c0>] (ret_fast_syscall+0x0/0x30)
       r8:c00502c8 r7:00000004 r6:403525e8 r5:40126000 r4:00000004
      Signed-off-by: default avatarEliad Peller <eliad@wizery.com>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      a7b545f7
    • Stanislaw Gruszka's avatar
      iwl3945: remove plcp check · c91d0155
      Stanislaw Gruszka authored
      Patch fixes:
      https://bugzilla.redhat.com/show_bug.cgi?id=654599
      
      Many users report very low speed problem on 3945 devices,
      this patch fixes problem, but only for some of them.
      
      For unknown reason, sometimes after hw scanning, device is not able
      to receive frames at high rate. Since plcp health check may request
      hw scan to "reset radio", performance problem start to be observable
      after update kernel to .35, where plcp check was introduced.
      
      Bug reporter confirmed that removing plcp check fixed problem for him.
      Reported-and-tested-by: default avatarSilvioTO <silviotoya@yahoo.it>
      Cc: stable@kernel.org  # 2.6.35+
      Signed-off-by: default avatarStanislaw Gruszka <sgruszka@redhat.com>
      Acked-by: default avatarWey-Yi Guy <wey-yi.w.guy@intel.com>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      c91d0155
    • John W. Linville's avatar
  6. 07 Feb, 2011 3 commits
  7. 04 Feb, 2011 2 commits
    • Mohammed Shafi Shajakhan's avatar
      ath9k: Fix possible double free of PAPRD skb's · 9cf04dcc
      Mohammed Shafi Shajakhan authored
      This patch reverts the following commit
      ath9k: remove bfs_paprd_timestamp from struct ath_buf_state
      
      Under high interference/noisy environment conditions where PAPRD frames
      fails heavily introduces a possibility of double freeing skb's and causes
      kernel panic after some time.This patch reverts back to the original approach
      of using paprd_timestamp before freeing the PAPRD frame skb's
      
      [  194.193705] Pid: 0, comm: swapper Tainted: G      D WC
      2.6.35-22-generic #33-Ubuntu
      [  194.193712] Call Trace:
      [  194.193722]  [<c05c6468>] ? printk+0x2d/0x35
      [  194.193732]  [<c05c63c3>] panic+0x5a/0xd2
      [  194.193741]  [<c05ca3ed>] oops_end+0xcd/0xd0
      [  194.193750]  [<c0105f74>] die+0x54/0x80
      [  194.193758]  [<c05c9a16>] do_trap+0x96/0xc0
      [  194.193837]  [<c0103fb0>] ? do_invalid_op+0x0/0xa0
      [  194.193846]  [<c010403b>] do_invalid_op+0x8b/0xa0
      [  194.193856]  [<c020bd4c>] ? kfree+0xec/0xf0
      [  194.193866]  [<c012ce18>] ? default_spin_lock_flags+0x8/0x10
      [  194.193877]  [<c01de47a>] ? free_one_page+0x12a/0x2d0
      [  194.193888]  [<c01e04dc>] ? __free_pages+0x1c/0x40
      [  194.193897]  [<c05c97a7>] error_code+0x73/0x78
      [  194.193906]  [<c020bd4c>] ? kfree+0xec/0xf0
      [  194.193915]  [<c04ecdd0>] ? skb_release_data+0x70/0xa0
      [  194.193924]  [<c04ecdd0>] skb_release_data+0x70/0xa0
      [  194.193933]  [<c04ec997>] __kfree_skb+0x17/0x90
      [  194.193941]  [<c04eca31>] consume_skb+0x21/0x40
      [  194.193964]  [<f85e0b70>] ieee80211_tx_status+0x760/0x860 [mac80211]
      [  194.193979]  [<f85caddf>] ath_tx_complete_buf+0x1bf/0x2c0 [ath9k]
      [  194.193988]  [<c05c8b9f>] ? _raw_spin_lock_irqsave+0x2f/0x50
      [  194.193997]  [<c04ec40e>] ? skb_queue_tail+0x3e/0x50
      [  194.194010]  [<f85cc803>] ath_tx_complete_aggr+0x823/0x940 [ath9k]
      [  194.194021]  [<c0108a28>] ? sched_clock+0x8/0x10
      [  194.194030]  [<c016bf14>] ? sched_clock_local+0xa4/0x180
      [  194.194040]  [<c0139f57>] ? enqueue_sleeper+0x1e7/0x2b0
      [  194.194051]  [<c013a194>] ? enqueue_entity+0x174/0x200
      [  194.194064]  [<f85ce83d>] ath_tx_edma_tasklet+0x2bd/0x3b0 [ath9k]
      [  194.194074]  [<c05c8b9f>] ? _raw_spin_lock_irqsave+0x2f/0x50
      [  194.194088]  [<f85c7b9f>] ath9k_tasklet+0x9f/0x190 [ath9k]
      [  194.194097]  [<c01505d7>] tasklet_action+0xa7/0xb0
      [  194.194107]  [<c015127c>] __do_softirq+0x9c/0x1b0
      [  194.194117]  [<c01a7f64>] ? irq_to_desc+0x14/0x20
      [  194.194126]  [<c0124fc4>] ? ack_apic_level+0x64/0x1f0
      [  194.194136]  [<c01513d5>] do_softirq+0x45/0x50
      [  194.194145]  [<c0151545>] irq_exit+0x65/0x70
      [  194.194153]  [<c05cf665>] do_IRQ+0x55/0xc0
      [  194.194162]  [<c016a6c7>] ? hrtimer_start+0x27/0x30
      [  194.194171]  [<c0103630>] common_interrupt+0x30/0x38
      [  194.194181]  [<c012c21a>] ? native_safe_halt+0xa/0x10
      [  194.194268]  [<c010a2f9>] default_idle+0x49/0xb0
      [  194.194277]  [<c0101fcc>] cpu_idle+0x8c/0xd0
      [  194.194286]  [<c05b2431>] rest_init+0x71/0x80
      [  194.194295]  [<c081981a>] start_kernel+0x36e/0x374
      [  194.194305]  [<c08199dd>] ? pass_all_bootoptions+0x0/0xa
      [  194.194314]  [<c08190d7>] i386_start_kernel+0xd7/0xdf
      [  194.194364] panic occurred, switching back to text console
      Signed-off-by: default avatarMohammed Shafi Shajakhan <mshajakhan@atheros.com>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      9cf04dcc
    • Christian Lamparter's avatar
      carl9170: fix typo in PS code · 5820de53
      Christian Lamparter authored
      This patch fixes a off-by-one bug which bugged
      the driver's PS-POLL capability.
      
      Cc: <stable@kernel.org>
      Signed-off-by: default avatarChristian Lamparter <chunkeey@googlemail.com>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      5820de53
  8. 03 Feb, 2011 1 commit
  9. 02 Feb, 2011 3 commits
    • Johannes Berg's avatar
      mac80211: fix TX status cookie in HW offload case · 4334ec85
      Johannes Berg authored
      When the off-channel TX is done with remain-on-channel
      offloaded to hardware, the reported cookie is wrong as
      in that case we shouldn't use the SKB as the cookie but
      need to instead use the corresponding r-o-c cookie
      (XOR'ed with 2 to prevent API mismatches).
      
      Fix this by keeping track of the hw_roc_skb pointer
      just for the status processing and use the correct
      cookie to report in this case. We can't use the
      hw_roc_skb pointer itself because it is NULL'ed when
      the frame is transmitted to prevent it being used
      twice.
      
      This fixes a bug where the P2P state machine in the
      supplicant gets stuck because it never gets a correct
      result for its transmitted frame.
      Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      4334ec85
    • Wey-Yi Guy's avatar
      iwlagn: overwrite EEPROM chain setting for 6250 devices · ff458edc
      Wey-Yi Guy authored
      6250 2x2 devices have 2 tx chain and 2 rx chain. For some reason,
      the EEPROM contain incorrect information and indicate it only has single
      tx chain. overwrite it with .cfg parameter to make sure both chain 'A' and
      chain 'B' can be used for transmit and receive
      Signed-off-by: default avatarWey-Yi Guy <wey-yi.w.guy@intel.com>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      ff458edc
    • Bao Liang's avatar
      Bluetooth: Set conn state to BT_DISCONN to avoid multiple responses · e733fb62
      Bao Liang authored
      This patch fixes a minor issue that two connection responses will be sent
      for one L2CAP connection request. If the L2CAP connection request is first
      blocked due to security reason and responded with reason "security block",
      the state of the connection remains BT_CONNECT2. If a pairing procedure
      completes successfully before the ACL connection is down, local host will
      send another connection complete response. See the following packets
      captured by hcidump.
      
      2010-12-07 22:21:24.928096 < ACL data: handle 12 flags 0x00 dlen 16
          0000: 0c 00 01 00 03 19 08 00  41 00 53 00 03 00 00 00  ........A.S.....
      ... ...
      
      2010-12-07 22:21:35.791747 > HCI Event: Auth Complete (0x06) plen 3
          status 0x00 handle 12
      ... ...
      
      2010-12-07 22:21:35.872372 > ACL data: handle 12 flags 0x02 dlen 16
          L2CAP(s): Connect rsp: dcid 0x0054 scid 0x0040 result 0 status 0
            Connection successful
      Signed-off-by: default avatarLiang Bao <tim.bao@gmail.com>
      Acked-by: default avatarVille Tervo <ville.tervo@nokia.com>
      Signed-off-by: default avatarGustavo F. Padovan <padovan@profusion.mobi>
      e733fb62
  10. 01 Feb, 2011 1 commit
  11. 31 Jan, 2011 1 commit
  12. 28 Jan, 2011 2 commits
    • Rajkumar Manoharan's avatar
      ath9k: Fix power save usage count imbalance on deinit · c7c18060
      Rajkumar Manoharan authored
      While unloading the driver, the ps_usecount is incremented
      before configuring gpio registers in deinit_device.
      But it is failed to restore the ps_usecount after that.
      The problem is that the chip is forcibly moved to FULL SLEEP
      by radio_disable when mac80211 is reporting as idle
      though ps_usecount is not zero.
      
      This patch retores ps_usecount properly and ensures that
      the chip is always moved to full sleep only if ps usage
      count is zero which also helps in debugging deadbeef on
      multivif case. And also fixes the following warning.
      
      ath: DMA failed to stop in 10 ms AR_CR=0xdeadbeef AR_DIAG_SW=0xdeadbeef
      ath: Could not stop RX, we could be confusing the DMA engine when we
      start RX up
      ------------[ cut here ]------------
      WARNING: at drivers/net/wireless/ath/ath9k/recv.c:536
      ath_stoprecv+0xf4/0x100 [ath9k]()
      
      Cc: stable@kernel.org
      Cc: Paul Stewart <pstew@google.com>
      Signed-off-by: default avatarRajkumar Manoharan <rmanoharan@atheros.com>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      c7c18060
    • Rajkumar Manoharan's avatar
      ath9k_hw: Fix system hang when resuming from S3/S4 · 5b64aa72
      Rajkumar Manoharan authored
      The bit 6 & 7 of AR_WA (0x4004) should be enabled only
      for the chips that are supporting L0s functionality
      while resuming back from S3/S4.
      
      Enabling these bits for AR9280 is causing system hang
      within a few S3/S4-resume cycles.
      
      Cc: stable@kernel.org
      Cc: Jack Lee <jlee@atheros.com>
      Signed-off-by: default avatarRajkumar Manoharan <rmanoharan@atheros.com>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      5b64aa72
  13. 27 Jan, 2011 6 commits
  14. 26 Jan, 2011 1 commit
  15. 25 Jan, 2011 3 commits
  16. 21 Jan, 2011 3 commits