All of lore.kernel.org
 help / color / mirror / Atom feed
From: Elias Oltmanns <eo@nebensachen.de>
To: Greg KH <gregkh@suse.de>
Cc: linux-kernel@vger.kernel.org, stable@kernel.org, jejb@kernel.org,
	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, Bob Copeland <me@bobcopeland.com>,
	"John W. Linville" <linville@tuxdriver.com>
Subject: Re: [patch 27/27] ath5k: fix suspend-related oops on rmmod
Date: Fri, 24 Oct 2008 22:36:24 +0200	[thread overview]
Message-ID: <87ej253f3r.fsf@denkblock.local> (raw)
In-Reply-To: 20081024043530.GB30828@kroah.com

Greg KH <gregkh@suse.de> wrote:
> 2.6.27-stable review patch.  If anyone has any objections, please let us 
> know.
>
> ------------------
> From: Bob Copeland <me@bobcopeland.com>
>
> commit 8bdd5b9c6bd53add260756b6673a0545fbdbba21 upstream
>
> Based on a patch by Elias Oltmanns, we call ath5k_init in resume even
> if we didn't previously open the device.  Besides starting up the
> device unnecessarily, this also causes an oops on rmmod because
> mac80211 will not invoke ath5k_stop and softirqs are left running after
> the module has been unloaded.  Add a new state bit, ATH_STAT_STARTED,
> to indicate that we have been started up.
>
> Reported-by: Toralf Förster <toralf.foerster@gmx.de>
> Signed-off-by: Elias Oltmanns <eo@nebensachen.de>
> Signed-off-by: Bob Copeland <me@bobcopeland.com>
> Signed-off-by: John W. Linville <linville@tuxdriver.com>
> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

I've done some more testing and I'm ashamed to say that this patch is
incomplete and does indeed introduce a regression itself. Having only
just sent the fix to John, I'm afraid this patch has to be deferred for
the next stable release since the required fix is not likely to hit
Linus' tree in time. Anyway, I'm adding my patch and the changelog entry
by way of explanation.

Regards,

Elias

From: Elias Oltmanns <eo@nebensachen.de>
Subject: [PATCH] ath5k: Reset key cache on interface up, thus fixing resume

After a s2ram / resume cycle, resetting the key cache does not work
unless it is deferred until after the hardware has been reinitialised by
a call to ath5k_hw_reset(). This fixes a regression introduced in commit
8bdd5b9c6bd53add260756b6673a0545fbdbba21 (ath5k: fix suspend-related
oops on rmmod).

Signed-off-by: Elias Oltmanns <eo@nebensachen.de>
---

 base.c |   29 ++++++++++-------------------
 1 file changed, 10 insertions(+), 19 deletions(-)

diff --git a/drivers/net/wireless/ath5k/base.c b/drivers/net/wireless/ath5k/base.c
index 0f1d6bd..8acf0ce 100644
--- a/drivers/net/wireless/ath5k/base.c
+++ b/drivers/net/wireless/ath5k/base.c
@@ -688,16 +688,6 @@ ath5k_pci_resume(struct pci_dev *pdev)
 		goto err_irq;
 	ath5k_led_enable(sc);
 
-	/*
-	 * Reset the key cache since some parts do not
-	 * reset the contents on initial power up or resume.
-	 *
-	 * FIXME: This may need to be revisited when mac80211 becomes
-	 *        aware of suspend/resume.
-	 */
-	for (i = 0; i < AR5K_KEYTABLE_SIZE; i++)
-		ath5k_hw_reset_key(ah, i);
-
 	return 0;
 err_irq:
 	free_irq(pdev->irq, sc);
@@ -737,13 +727,6 @@ ath5k_attach(struct pci_dev *pdev, struct ieee80211_hw *hw)
 		__set_bit(ATH_STAT_MRRETRY, sc->status);
 
 	/*
-	 * Reset the key cache since some parts do not
-	 * reset the contents on initial power up.
-	 */
-	for (i = 0; i < AR5K_KEYTABLE_SIZE; i++)
-		ath5k_hw_reset_key(ah, i);
-
-	/*
 	 * Collect the channel list.  The 802.11 layer
 	 * is resposible for filtering this list based
 	 * on settings like the phy mode and regulatory
@@ -2202,7 +2185,8 @@ ath5k_beacon_config(struct ath5k_softc *sc)
 static int
 ath5k_init(struct ath5k_softc *sc, bool is_resume)
 {
-	int ret;
+	struct ath5k_hw *ah = sc->ah;
+	int ret, i;
 
 	mutex_lock(&sc->lock);
 
@@ -2235,10 +2219,17 @@ ath5k_init(struct ath5k_softc *sc, bool is_resume)
 	if (ret)
 		goto done;
 
+	/*
+	 * Reset the key cache since some parts do not reset the
+	 * contents on initial power up or resume from suspend.
+	 */
+	for (i = 0; i < AR5K_KEYTABLE_SIZE; i++)
+		ath5k_hw_reset_key(ah, i);
+
 	__set_bit(ATH_STAT_STARTED, sc->status);
 
 	/* Set ack to be sent at low bit-rates */
-	ath5k_hw_set_ack_bitrate_high(sc->ah, false);
+	ath5k_hw_set_ack_bitrate_high(ah, false);
 
 	mod_timer(&sc->calib_tim, round_jiffies(jiffies +
 			msecs_to_jiffies(ath5k_calinterval * 1000)));

  reply	other threads:[~2008-10-24 20:36 UTC|newest]

Thread overview: 38+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <20081024042023.054190751@mini.kroah.org>
2008-10-24  4:33 ` [patch 00/27] 2.6.27.4-stable review Greg KH
2008-10-24  4:33   ` [patch 01/27] gpiolib: fix oops in gpio_get_value_cansleep() Greg KH
2008-10-24  4:33   ` [patch 02/27] edac cell: fix incorrect edac_mode Greg KH
2008-10-24  4:33   ` [patch 03/27] x86 ACPI: fix breakage of resume on 64-bit UP systems with SMP kernel Greg KH
2008-10-24  4:33   ` [patch 04/27] sched: fix the wrong mask_len Greg KH
2008-10-24  4:33   ` [patch 05/27] USB: cdc-wdm: make module autoload work Greg KH
2008-10-24  4:33   ` [patch 06/27] USB: dont rebind drivers after failed resume or reset Greg KH
2008-10-24  4:33   ` [patch 07/27] USB: fix memory leak in cdc-acm Greg KH
2008-10-24  4:34   ` [patch 08/27] USB: Speedtouch: add pre_reset and post_reset routines Greg KH
2008-10-24  4:34   ` [patch 09/27] dm kcopyd: avoid queue shuffle Greg KH
2008-10-24  4:34   ` [patch 10/27] dm snapshot: fix primary_pe race Greg KH
2008-10-24  4:34   ` [patch 11/27] dm exception store: refactor zero_area Greg KH
2008-10-24  5:36     ` Greg KH
2008-10-25  1:40       ` Mikulas Patocka
2008-10-25 20:28         ` Greg KH
2008-10-24  4:34   ` [patch 12/27] dm exception store: fix misordered writes Greg KH
2008-10-24  4:34   ` [patch 13/27] amd_iommu: fix nasty bug that caused ILLEGAL_DEVICE_TABLE_ENTRY errors Greg KH
2008-10-24  4:34   ` [patch 14/27] CIFS: fix saving of resume key before CIFSFindNext Greg KH
2008-10-24  4:34   ` [patch 15/27] ext: Avoid printk floods in the face of directory corruption (CVE-2008-3528) Greg KH
2008-10-24  4:34   ` [patch 16/27] netfilter: xt_iprange: fix range inversion match Greg KH
2008-10-24  4:34   ` [patch 17/27] netfilter: snmp nat leaks memory in case of failure Greg KH
2008-10-24  4:34     ` Greg KH
2008-10-24  4:34   ` [patch 18/27] netfilter: restore lost ifdef guarding defrag exception Greg KH
2008-10-24  4:34   ` [patch 19/27] anon_vma_prepare: properly lock even newly allocated entries Greg KH
2008-10-24  4:34   ` [patch 20/27] hvc_console: Fix free_irq in spinlocked section Greg KH
2008-10-24  4:35   ` [patch 21/27] ACPI Suspend: Enable ACPI during resume if SCI_EN is not set Greg KH
2008-10-24  4:35   ` [patch 22/27] ACPI suspend: Blacklist HP xw4600 Workstation for old code ordering Greg KH
2008-10-24  4:35   ` [patch 23/27] ACPI suspend: Always use the 32-bit waking vector Greg KH
2008-10-24  4:35   ` [patch 24/27] proc: fix vma display mismatch between /proc/pid/{maps,smaps} Greg KH
2008-10-24  4:35   ` [patch 25/27] SCSI: scsi_dh: add Dell product information into rdac device handler Greg KH
2008-10-24  4:35   ` [patch 26/27] PCI hotplug: cpqphp: fix kernel NULL pointer dereference Greg KH
2008-10-24  4:35   ` [patch 27/27] ath5k: fix suspend-related oops on rmmod Greg KH
2008-10-24 20:36     ` Elias Oltmanns [this message]
2008-10-24 21:10       ` Bob Copeland
2008-10-24 21:28       ` Greg KH
2008-10-24  5:41   ` [patch 00/27] 2.6.27.4-stable review Greg KH
2008-10-24 21:38     ` [stable] " Greg KH
2008-10-24 21:40       ` [patch 28/27] V4L/DVB (9300): pvrusb2: Fix deadlock problem 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=87ej253f3r.fsf@denkblock.local \
    --to=eo@nebensachen.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=eteo@redhat.com \
    --cc=gregkh@suse.de \
    --cc=jake@lwn.net \
    --cc=jejb@kernel.org \
    --cc=jmforbes@linuxtx.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linville@tuxdriver.com \
    --cc=me@bobcopeland.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.