From: Greg KH <gregkh@suse.de>
To: linux-kernel@vger.kernel.org, stable@kernel.org, jejb@kernel.org
Cc: Justin Forbes <jmforbes@linuxtx.org>,
Zwane Mwaikambo <zwane@arm.linux.org.uk>,
"Theodore Ts'o" <tytso@mit.edu>,
Randy Dunlap <rdunlap@xenotime.net>,
Dave Jones <davej@redhat.com>,
Chuck Wolber <chuckw@quantumlinux.com>,
Chris Wedgwood <reviews@ml.cw.f00f.org>,
Michael Krufky <mkrufky@linuxtv.org>,
Chuck Ebbert <cebbert@redhat.com>,
Domenico Andreoli <cavokz@gmail.com>, Willy Tarreau <w@1wt.eu>,
Rodrigo Rubira Branco <rbranco@la.checkpoint.com>,
Jake Edge <jake@lwn.net>, Eugene Teo <eteo@redhat.com>,
torvalds@linux-foundation.org, akpm@linux-foundation.org,
alan@lxorguk.ukuu.org.uk, Dan Williams <dcbw@redhat.com>,
"John W. Linville" <linville@tuxdriver.com>
Subject: [patch 08/14] libertas: clear current command on card removal
Date: Thu, 16 Oct 2008 10:56:37 -0700 [thread overview]
Message-ID: <20081016175637.GI12850@suse.de> (raw)
In-Reply-To: <20081016175525.GA12850@suse.de>
[-- Attachment #1: libertas-clear-current-command-on-card-removal.patch --]
[-- Type: text/plain, Size: 2320 bytes --]
2.6.27-stable review patch. If anyone has any objections, please let us
know.
------------------
From: Dan Williams <dcbw@redhat.com>
commit 71b35f3abeb8f7f7e0afd7573424540cc5aae2d5 upstream
If certain commands were in-flight when the card was pulled or the
driver rmmod-ed, cleanup would block on the work queue stopping, but the
work queue was in turn blocked on the current command being canceled,
which didn't happen. Fix that.
Signed-off-by: Dan Williams <dcbw@redhat.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
---
drivers/net/wireless/libertas/main.c | 20 +++++++++++++++++++-
1 file changed, 19 insertions(+), 1 deletion(-)
--- a/drivers/net/wireless/libertas/main.c
+++ b/drivers/net/wireless/libertas/main.c
@@ -1196,7 +1196,13 @@ void lbs_remove_card(struct lbs_private
cancel_delayed_work_sync(&priv->scan_work);
cancel_delayed_work_sync(&priv->assoc_work);
cancel_work_sync(&priv->mcast_work);
+
+ /* worker thread destruction blocks on the in-flight command which
+ * should have been cleared already in lbs_stop_card().
+ */
+ lbs_deb_main("destroying worker thread\n");
destroy_workqueue(priv->work_thread);
+ lbs_deb_main("done destroying worker thread\n");
if (priv->psmode == LBS802_11POWERMODEMAX_PSP) {
priv->psmode = LBS802_11POWERMODECAM;
@@ -1314,14 +1320,26 @@ void lbs_stop_card(struct lbs_private *p
device_remove_file(&dev->dev, &dev_attr_lbs_rtap);
}
- /* Flush pending command nodes */
+ /* Delete the timeout of the currently processing command */
del_timer_sync(&priv->command_timer);
+
+ /* Flush pending command nodes */
spin_lock_irqsave(&priv->driver_lock, flags);
+ lbs_deb_main("clearing pending commands\n");
list_for_each_entry(cmdnode, &priv->cmdpendingq, list) {
cmdnode->result = -ENOENT;
cmdnode->cmdwaitqwoken = 1;
wake_up_interruptible(&cmdnode->cmdwait_q);
}
+
+ /* Flush the command the card is currently processing */
+ if (priv->cur_cmd) {
+ lbs_deb_main("clearing current command\n");
+ priv->cur_cmd->result = -ENOENT;
+ priv->cur_cmd->cmdwaitqwoken = 1;
+ wake_up_interruptible(&priv->cur_cmd->cmdwait_q);
+ }
+ lbs_deb_main("done clearing commands\n");
spin_unlock_irqrestore(&priv->driver_lock, flags);
unregister_netdev(dev);
--
next prev parent reply other threads:[~2008-10-16 18:03 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <20081016174814.734527827@mini.kroah.org>
2008-10-16 17:55 ` [patch 00/14] 2.6.27-stable review Greg KH
2008-10-16 17:55 ` [patch 01/14] sched_rt.c: resch needed in rt_rq_enqueue() for the root rt_rq Greg KH
2008-10-16 17:56 ` [patch 02/14] x86: Reserve FIRST_DEVICE_VECTOR in used_vectors bitmap Greg KH
2008-10-16 17:56 ` [patch 03/14] mac80211: fix two issues in debugfs Greg KH
2008-10-16 17:56 ` Greg KH
2008-10-16 17:56 ` [patch 04/14] Fix barrier fail detection in XFS Greg KH
2008-10-16 17:56 ` [patch 05/14] tty: Termios locking - sort out real_tty confusions and lock reads Greg KH
2008-10-16 17:56 ` [patch 06/14] CIFS: make sure we have the right resume info before calling CIFSFindNext Greg KH
2008-10-16 17:56 ` [patch 07/14] rfkill: update LEDs for all state changes Greg KH
2008-10-16 17:56 ` Greg KH [this message]
2008-10-16 17:56 ` [patch 09/14] b43legacy: Fix failure in rate-adjustment mechanism Greg KH
2008-10-16 17:56 ` [patch 10/14] x86, early_ioremap: fix fencepost error Greg KH
2008-10-16 17:56 ` [patch 11/14] x86: SB450: skip IRQ0 override if it is not routed to INT2 of IOAPIC Greg KH
2008-10-16 17:56 ` [patch 12/14] x86: improve UP kernel when CPU-hotplug and SMP is enabled Greg KH
2008-10-16 17:56 ` [patch 13/14] sky2: Fix WOL regression Greg KH
2008-10-16 17:56 ` [patch 14/14] netdrvr: atl1e: Dont take the mdio_lock in atl1e_probe Greg KH
2008-10-16 22:49 ` [patch 00/14] 2.6.27-stable review Stefan Lippers-Hollmann
2008-10-16 23:23 ` Greg KH
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20081016175637.GI12850@suse.de \
--to=gregkh@suse.de \
--cc=akpm@linux-foundation.org \
--cc=alan@lxorguk.ukuu.org.uk \
--cc=cavokz@gmail.com \
--cc=cebbert@redhat.com \
--cc=chuckw@quantumlinux.com \
--cc=davej@redhat.com \
--cc=dcbw@redhat.com \
--cc=eteo@redhat.com \
--cc=jake@lwn.net \
--cc=jejb@kernel.org \
--cc=jmforbes@linuxtx.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linville@tuxdriver.com \
--cc=mkrufky@linuxtv.org \
--cc=rbranco@la.checkpoint.com \
--cc=rdunlap@xenotime.net \
--cc=reviews@ml.cw.f00f.org \
--cc=stable@kernel.org \
--cc=torvalds@linux-foundation.org \
--cc=tytso@mit.edu \
--cc=w@1wt.eu \
--cc=zwane@arm.linux.org.uk \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.