lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:	Tue, 26 Apr 2011 08:32:12 +0200
From:	Stanislaw Gruszka <sgruszka@...hat.com>
To:	Paul Bolle <pebolle@...cali.nl>
Cc:	"John W. Linville" <linville@...driver.com>,
	linux-wireless@...r.kernel.org, linux-kernel@...r.kernel.org
Subject: Re: [IWL4965] TX Power requested while scanning!

On Fri, Apr 22, 2011 at 08:56:22PM +0200, Paul Bolle wrote:
> 0) Running v2.6.39-rc4 I ran into this (after a resume):
> 
> WARNING: at drivers/net/wireless/iwlegacy/iwl-4965.c:1128 iwl4965_send_tx_power+0x61/0x102 [iwl4965]()
> Hardware name: [...]
> TX Power requested while scanning!
> Modules linked in: tcp_lp fuse cpufreq_ondemand acpi_cpufreq freq_table mperf ip6t_REJECT nf_conntrack_ipv6 nf_defrag_ipv6 ip6table_filter ip6_tables ipv6 kvm_intel kvm uinput btusb arc4 snd_hda_codec_analog bluetooth ecb snd_hda_intel snd_hda_codec iwl4965 snd_hwdep snd_seq iwl_legacy snd_seq_device thinkpad_acpi mac80211 cfg80211 rfkill snd_pcm snd_timer iTCO_wdt snd i2c_i801 snd_page_alloc iTCO_vendor_support soundcore e1000e pcspkr microcode sdhci_pci sdhci firewire_ohci mmc_core firewire_core yenta_socket crc_itu_t i915 drm_kms_helper drm i2c_algo_bit i2c_core video [last unloaded: scsi_wait_scan]
> Pid: 5723, comm: kworker/u:28 Not tainted 2.6.39-0.rc4.4.fc14.x86_64 #1
> Call Trace:
>  [<ffffffff8104e27b>] warn_slowpath_common+0x85/0x9d
>  [<ffffffffa02782e0>] ? iwl4965_show_temperature+0x49/0x49 [iwl4965]
>  [<ffffffff8104e336>] warn_slowpath_fmt+0x46/0x48
>  [<ffffffffa027712f>] iwl4965_send_tx_power+0x61/0x102 [iwl4965]
>  [<ffffffff81477e05>] ? mutex_lock+0x36/0x50
>  [<ffffffffa0278337>] iwl4965_bg_txpower_work+0x57/0x73 [iwl4965]
>  [<ffffffff810647f3>] process_one_work+0x18d/0x286
>  [<ffffffff81065a5e>] worker_thread+0xfd/0x181
>  [<ffffffff81065961>] ? manage_workers.clone.16+0x172/0x172
>  [<ffffffff81069036>] kthread+0x82/0x8a
>  [<ffffffff81480524>] kernel_thread_helper+0x4/0x10
>  [<ffffffff81068fb4>] ? kthread_worker_fn+0x14b/0x14b
>  [<ffffffff81480520>] ? gs_change+0x13/0x13
> 
> (2.6.39-0.rc4.4.fc14.x86_64 is not a Fedora blessed kernel, but a self
> compiled "vanilla" kernel.) I have similar WARNINGs for rc2 and rc3 in
> my log too.
> 
> 1) The thing is that this triggers Fedora's "Automatic Bug Reporting
> Tool", and is a bit noisy in dmesg and friends too, but everything seems
> to be running just fine after that. I'm posting this from the session
> that just triggered this! So why is this warning needed?

Warning correctly indicate a bug. Please try below patch.

diff --git a/drivers/net/wireless/iwlegacy/iwl4965-base.c b/drivers/net/wireless/iwlegacy/iwl4965-base.c
index 58a2e63..46966e9 100644
--- a/drivers/net/wireless/iwlegacy/iwl4965-base.c
+++ b/drivers/net/wireless/iwlegacy/iwl4965-base.c
@@ -2988,15 +2988,15 @@ static void iwl4965_bg_txpower_work(struct work_struct *work)
 	struct iwl_priv *priv = container_of(work, struct iwl_priv,
 			txpower_work);
 
+	mutex_lock(&priv->mutex);
+
 	/* If a scan happened to start before we got here
 	 * then just return; the statistics notification will
 	 * kick off another scheduled work to compensate for
 	 * any temperature delta we missed here. */
 	if (test_bit(STATUS_EXIT_PENDING, &priv->status) ||
 	    test_bit(STATUS_SCANNING, &priv->status))
-		return;
-
-	mutex_lock(&priv->mutex);
+		goto out;
 
 	/* Regardless of if we are associated, we must reconfigure the
 	 * TX power since frames can be sent on non-radar channels while
@@ -3006,7 +3006,7 @@ static void iwl4965_bg_txpower_work(struct work_struct *work)
 	/* Update last_temperature to keep is_calib_needed from running
 	 * when it isn't needed... */
 	priv->last_temperature = priv->temperature;
-
+out:
 	mutex_unlock(&priv->mutex);
 }
 
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ