wireless: hostap, fix oops due to early probing interrupt
PATCH 1/1 wireless: hostap, fix oops due to early probing interrupt
Jouni,
Did this ever get sent to you?
rtg
---------------------------------
Quoted 1 line
From
a72eaafae9186632add4ed01a340b4f1b39cc672Mon Sep 17 00:00:00 2001
From: Colin Ian King <[email protected]>
Date: Wed, 19 Aug 2009 15:39:21 +0100
Subject: [PATCH] wireless: hostap, fix oops due to early probing interrupt
Spurious shared interrupts or early probing interrupts can cause the hostap interrupt handler to oops before the driver has fully configured the IO base port addresses. In some cases the oops can be because the hardware shares an interrupt line, on other cases it is due to a race condition between probing for the hardware and configuring the IO base port. The latter occurs because the probing is required to determin the hardware port address which is only determined when the probe can interrupt the hardware (catch 22).
This patch catches this pre-configured condition to avoid the oops.
--- drivers/net/wireless/hostap/hostap_hw.c | 9 +++++++++ 1 files changed, 9 insertions(+), 0 deletions(-)
drivers/net/wireless/hostap/hostap_hw.c +9 -0
@@ -2628,6 +2628,15 @@ static irqreturn_t prism2_interrupt(int irq, void *dev_id)int events =0 ;u16 ev; +/* Detect early interrupt before driver is fully configued */ +if (!dev->base_addr) { +if (net_ratelimit ()) { +printk (KERN_DEBUG "%s: Interrupt, but dev not configured\n" , + dev->name); + } +return IRQ_HANDLED ; + } + iface =netdev_priv (dev); local = iface->local;
Signature · 1 line
1.6.2.4