[oe-commits] org.oe.dev linux-rp_2.6.21.bb : add a hack to prevent connect+ card from oopsing

xora commit openembedded-commits at lists.openembedded.org
Sat Jul 7 12:28:34 UTC 2007


linux-rp_2.6.21.bb : add a hack to prevent connect+ card from oopsing
on insert. This is caused by an irq arriving before dev->base_addr
has been set so the driver ends up doing an inw(NULL) which oopses.

have checked for base_addr == 0 in driver and returned from irq early. This
prevents oops and doesnt break with other cards in my collection.

Author: xora at openembedded.org
Branch: org.openembedded.dev
Revision: 0d37beef48144a1e6e6f1e015c51e634852fb3a5
ViewMTN: http://monotone.openembedded.org/revision.psp?id=0d37beef48144a1e6e6f1e015c51e634852fb3a5
Files:
1
packages/linux/linux-rp-2.6.21/connectplus-prevent-oops-HACK.patch
packages/linux/linux-rp_2.6.21.bb
Diffs:

#
# mt diff -r050cc7da614b31484f65138eb5faa6715af3fc5c -r0d37beef48144a1e6e6f1e015c51e634852fb3a5
#
# 
# 
# add_file "packages/linux/linux-rp-2.6.21/connectplus-prevent-oops-HACK.patch"
#  content [e7f07c5193600ba480642fd62dcae173b6b62189]
# 
# patch "packages/linux/linux-rp_2.6.21.bb"
#  from [cbbdd4376b6cb43e5460b02f28a25c2a29323db7]
#    to [a4ef82513766940d2b728b8089a10118cda3dc9a]
# 
============================================================
--- packages/linux/linux-rp-2.6.21/connectplus-prevent-oops-HACK.patch	e7f07c5193600ba480642fd62dcae173b6b62189
+++ packages/linux/linux-rp-2.6.21/connectplus-prevent-oops-HACK.patch	e7f07c5193600ba480642fd62dcae173b6b62189
@@ -0,0 +1,17 @@
+Index: linux-2.6.21/drivers/net/wireless/hostap/hostap_hw.c
+===================================================================
+--- linux-2.6.21.orig/drivers/net/wireless/hostap/hostap_hw.c	2007-07-07 12:45:39.000000000 +0100
++++ linux-2.6.21/drivers/net/wireless/hostap/hostap_hw.c	2007-07-07 12:47:30.000000000 +0100
+@@ -2666,6 +2666,12 @@
+ 	iface = netdev_priv(dev);
+ 	local = iface->local;
+ 
++	if(dev->base_addr == 0)
++	{
++		printk(KERN_DEBUG "%s: IRQ before base_addr set\n", dev->name);
++		return IRQ_HANDLED;
++	}
++
+ 	prism2_io_debug_add(dev, PRISM2_IO_DEBUG_CMD_INTERRUPT, 0, 0);
+ 
+ 	if (local->func->card_present && !local->func->card_present(local)) {
============================================================
--- packages/linux/linux-rp_2.6.21.bb	cbbdd4376b6cb43e5460b02f28a25c2a29323db7
+++ packages/linux/linux-rp_2.6.21.bb	a4ef82513766940d2b728b8089a10118cda3dc9a
@@ -1,6 +1,6 @@ require linux-rp.inc
 require linux-rp.inc
 
-PR = "r8"
+PR = "r9"
 
 # Handy URLs
 # git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git;protocol=git;tag=ef7d1b244fa6c94fb76d5f787b8629df64ea4046
@@ -49,6 +49,7 @@ SRC_URI = "http://www.kernel.org/pub/lin
            ${RPSRC}/pxa_cf_initorder_hack-r1.patch;patch=1;status=hack \
            file://pxa-serial-hack.patch;patch=1;status=hack \
            file://connectplus-remove-ide-HACK.patch;patch=1;status=hack \
+	   file://connectplus-prevent-oops-HACK.patch;patch=1;status=hack \
            file://squashfs3.0-2.6.15.patch;patch=1;status=external \
            file://vesafb-tng-1.0-rc2-2.6.20-rc2.patch;patch=1;status=external \
            file://sharpsl-rc-r1.patch;patch=1 \






More information about the Openembedded-commits mailing list