diff options
author | maximilian attems <maks@stro.at> | 2006-11-13 23:28:45 +0000 |
---|---|---|
committer | maximilian attems <maks@stro.at> | 2006-11-13 23:28:45 +0000 |
commit | 6a366812edec1f77dbfdeff3db12acefddcb7a78 (patch) | |
tree | 571aa0440cc16a8f1ae89223f37fc9918aaeaef4 | |
parent | 476c514f857dde70f1eaf6b104431c42156579f6 (diff) | |
download | kernel_replicant_linux-6a366812edec1f77dbfdeff3db12acefddcb7a78.tar.gz kernel_replicant_linux-6a366812edec1f77dbfdeff3db12acefddcb7a78.tar.bz2 kernel_replicant_linux-6a366812edec1f77dbfdeff3db12acefddcb7a78.zip |
add the bcm43xx stable fix
svn path=/dists/trunk/linux-2.6/; revision=7792
-rw-r--r-- | debian/changelog | 3 | ||||
-rw-r--r-- | debian/patches/bugfix/bcm43xx-drain-tx-status-before-starting-irqs.patch | 57 | ||||
-rw-r--r-- | debian/patches/series/6 | 1 |
3 files changed, 60 insertions, 1 deletions
diff --git a/debian/changelog b/debian/changelog index 4e9f182a3eaa..da5b1f2d2b35 100644 --- a/debian/changelog +++ b/debian/changelog @@ -10,6 +10,7 @@ linux-2.6 (2.6.18-6) UNRELEASED; urgency=low - mm: small cleanup of install_page() - mm: fixup do_wp_page() - mm: msync() cleanup (closes: #394392) + * Add another bcm43xx patch queued for 2.6.18.3. [ Steve Langasek ] * [alpha] new titan-video patch, for compatibility with TITAN and similar @@ -31,7 +32,7 @@ linux-2.6 (2.6.18-6) UNRELEASED; urgency=low [ Thiemo Seufer ] * Enable raid456 for mips/mipsel qemu kernel. - -- dann frazier <dannf@debian.org> Mon, 13 Nov 2006 00:42:56 -0700 + -- maximilian attems <maks@sternwelten.at> Tue, 14 Nov 2006 00:27:20 +0100 linux-2.6 (2.6.18-5) unstable; urgency=low diff --git a/debian/patches/bugfix/bcm43xx-drain-tx-status-before-starting-irqs.patch b/debian/patches/bugfix/bcm43xx-drain-tx-status-before-starting-irqs.patch new file mode 100644 index 000000000000..87fa8853ac89 --- /dev/null +++ b/debian/patches/bugfix/bcm43xx-drain-tx-status-before-starting-irqs.patch @@ -0,0 +1,57 @@ +From stable-bounces@linux.kernel.org Sun Nov 5 13:38:59 2006 +Date: Sun, 05 Nov 2006 15:34:36 -0600 +From: Larry Finger <Larry.Finger@lwfinger.net> +To: stable@kernel.org +Message-ID: <454E58EC.mail20S110EOC@lwfinger.net> +Cc: netdev@vger.kernel.org, mb@bu3sch.de, greg@kroah.com +Subject: bcm43xx: Drain TX status before starting IRQs + +From: Michael Buesch <mb@bu3sch.de> + +Drain the Microcode TX-status-FIFO before we enable IRQs. +This is required, because the FIFO may still have entries left +from a previous run. Those would immediately fire after enabling +IRQs and would lead to an oops in the DMA TXstatus handling code. + +Cc: "John W. Linville" <linville@tuxdriver.com> +Signed-off-by: Michael Buesch <mb@bu3sch.de> +Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net> +Signed-off-by: Chris Wright <chrisw@sous-sol.org> +--- + drivers/net/wireless/bcm43xx/bcm43xx_main.c | 18 ++++++++++++++++++ + 1 file changed, 18 insertions(+) + +--- linux-2.6.18.2.orig/drivers/net/wireless/bcm43xx/bcm43xx_main.c ++++ linux-2.6.18.2/drivers/net/wireless/bcm43xx/bcm43xx_main.c +@@ -1463,6 +1463,23 @@ static void handle_irq_transmit_status(s + } + } + ++static void drain_txstatus_queue(struct bcm43xx_private *bcm) ++{ ++ u32 dummy; ++ ++ if (bcm->current_core->rev < 5) ++ return; ++ /* Read all entries from the microcode TXstatus FIFO ++ * and throw them away. ++ */ ++ while (1) { ++ dummy = bcm43xx_read32(bcm, BCM43xx_MMIO_XMITSTAT_0); ++ if (!dummy) ++ break; ++ dummy = bcm43xx_read32(bcm, BCM43xx_MMIO_XMITSTAT_1); ++ } ++} ++ + static void bcm43xx_generate_noise_sample(struct bcm43xx_private *bcm) + { + bcm43xx_shm_write16(bcm, BCM43xx_SHM_SHARED, 0x408, 0x7F7F); +@@ -3517,6 +3534,7 @@ int bcm43xx_select_wireless_core(struct + bcm43xx_macfilter_clear(bcm, BCM43xx_MACFILTER_ASSOC); + bcm43xx_macfilter_set(bcm, BCM43xx_MACFILTER_SELF, (u8 *)(bcm->net_dev->dev_addr)); + bcm43xx_security_init(bcm); ++ drain_txstatus_queue(bcm); + ieee80211softmac_start(bcm->net_dev); + + /* Let's go! Be careful after enabling the IRQs. diff --git a/debian/patches/series/6 b/debian/patches/series/6 index 64b89f83a5ff..c3319a7198ea 100644 --- a/debian/patches/series/6 +++ b/debian/patches/series/6 @@ -13,3 +13,4 @@ + features/all/sctp-backports-5.patch + features/all/sctp-backports-6.patch + features/all/sctp-backports-7.patch ++ features/bcm43xx-drain-tx-status-before-starting-irqs.patch |