Jesse Keating 2f82dda
commit a69b03e941abae00380fc6bc1877fb797a1b31e6
Jesse Keating 2f82dda
Author: John W. Linville <linville@tuxdriver.com>
Jesse Keating 2f82dda
Date:   Mon Jun 14 14:30:25 2010 -0400
Jesse Keating 2f82dda
Jesse Keating 2f82dda
    iwlwifi: cancel scan watchdog in iwl_bg_abort_scan
Jesse Keating 2f82dda
    
Jesse Keating 2f82dda
    Avoids this:
Jesse Keating 2f82dda
    
Jesse Keating 2f82dda
    WARNING: at net/mac80211/scan.c:312 ieee80211_scan_completed+0x5f/0x1f1
Jesse Keating 2f82dda
    [mac80211]()
Jesse Keating 2f82dda
    Hardware name: Latitude E5400
Jesse Keating 2f82dda
    Modules linked in: aes_x86_64 aes_generic fuse ipt_MASQUERADE iptable_nat
Jesse Keating 2f82dda
    nf_nat rfcomm sco bridge stp llc bnep l2cap sunrpc cpufreq_ondemand
Jesse Keating 2f82dda
    acpi_cpufreq freq_table xt_physdev ip6t_REJECT nf_conntrack_ipv6
Jesse Keating 2f82dda
    ip6table_filter ip6_tables ipv6 kvm_intel kvm uinput arc4 ecb
Jesse Keating 2f82dda
    snd_hda_codec_intelhdmi snd_hda_codec_idt snd_hda_intel iwlagn snd_hda_codec
Jesse Keating 2f82dda
    snd_hwdep snd_seq snd_seq_device iwlcore snd_pcm dell_wmi sdhci_pci sdhci
Jesse Keating 2f82dda
    iTCO_wdt tg3 dell_laptop mmc_core i2c_i801 wmi mac80211 snd_timer
Jesse Keating 2f82dda
    iTCO_vendor_support btusb joydev dcdbas cfg80211 bluetooth snd soundcore
Jesse Keating 2f82dda
    microcode rfkill snd_page_alloc firewire_ohci firewire_core crc_itu_t
Jesse Keating 2f82dda
    yenta_socket rsrc_nonstatic i915 drm_kms_helper drm i2c_algo_bit i2c_core video
Jesse Keating 2f82dda
    output [last unloaded: scsi_wait_scan]
Jesse Keating 2f82dda
    Pid: 979, comm: iwlagn Tainted: G        W  2.6.33.3-85.fc13.x86_64 #1
Jesse Keating 2f82dda
    Call Trace:
Jesse Keating 2f82dda
    [<ffffffff8104b558>] warn_slowpath_common+0x77/0x8f
Jesse Keating 2f82dda
    [<ffffffff8104b57f>] warn_slowpath_null+0xf/0x11
Jesse Keating 2f82dda
    [<ffffffffa01bb7d9>] ieee80211_scan_completed+0x5f/0x1f1 [mac80211]
Jesse Keating 2f82dda
    [<ffffffffa02a23f0>] iwl_bg_scan_completed+0xbb/0x17a [iwlcore]
Jesse Keating 2f82dda
    [<ffffffff81060d3d>] worker_thread+0x1a4/0x232
Jesse Keating 2f82dda
    [<ffffffffa02a2335>] ? iwl_bg_scan_completed+0x0/0x17a [iwlcore]
Jesse Keating 2f82dda
    [<ffffffff81064817>] ? autoremove_wake_function+0x0/0x34
Jesse Keating 2f82dda
    [<ffffffff81060b99>] ? worker_thread+0x0/0x232
Jesse Keating 2f82dda
    [<ffffffff810643c7>] kthread+0x7a/0x82
Jesse Keating 2f82dda
    [<ffffffff8100a924>] kernel_thread_helper+0x4/0x10
Jesse Keating 2f82dda
    [<ffffffff8106434d>] ? kthread+0x0/0x82
Jesse Keating 2f82dda
    [<ffffffff8100a920>] ? kernel_thread_helper+0x0/0x10
Jesse Keating 2f82dda
    
Jesse Keating 2f82dda
    Reported here:
Jesse Keating 2f82dda
    
Jesse Keating 2f82dda
    	https://bugzilla.redhat.com/show_bug.cgi?id=590436
Jesse Keating 2f82dda
    
Jesse Keating 2f82dda
    Signed-off-by: John W. Linville <linville@tuxdriver.com>
Jesse Keating 2f82dda
    Reported-by: Mihai Harpau <mishu@piatafinanciara.ro>
Jesse Keating 2f82dda
    Cc: stable@kernel.org
Jesse Keating 2f82dda
    Acked-by: Reinette Chatre <reinette.chatre@intel.com>
Jesse Keating 2f82dda
Jesse Keating 2f82dda
diff --git a/drivers/net/wireless/iwlwifi/iwl-scan.c b/drivers/net/wireless/iwlwifi/iwl-scan.c
Jesse Keating 2f82dda
index 5d3f51f..386c5f9 100644
Jesse Keating 2f82dda
--- a/drivers/net/wireless/iwlwifi/iwl-scan.c
Jesse Keating 2f82dda
+++ b/drivers/net/wireless/iwlwifi/iwl-scan.c
Jesse Keating 2f82dda
@@ -491,6 +491,7 @@ void iwl_bg_abort_scan(struct work_struct *work)
Jesse Keating 2f82dda
 
Jesse Keating 2f82dda
 	mutex_lock(&priv->mutex);
Jesse Keating 2f82dda
 
Jesse Keating 2f82dda
+	cancel_delayed_work_sync(&priv->scan_check);
Jesse Keating 2f82dda
 	set_bit(STATUS_SCAN_ABORTING, &priv->status);
Jesse Keating 2f82dda
 	iwl_send_scan_abort(priv);
Jesse Keating 2f82dda