Re: Linuv 2.6.15-rc1

Zilvinas Valinskas
2005-11-16T12:23:44Z

Hello Pekka,

recompiled kernel with a patch below. The same story, f/w loading errors
not found (somehow I was able to trigger that yesterday), saw several
f/w restarts and then everything is freezing. Just before freezing the
usual messages :

ipw2200: Unknown notification: subtype=40,flags=0xa0,size=40
ipw2200: Unknown notification: subtype=40,flags=0xa0,size=40
ipw2200: Unknown notification: subtype=40,flags=0xa0,size=40
ipw2200: Firmware error detected. Restarting.
ipw2200: Sysfs 'error' log already exists.

and freeeze ... :\ Sys-rq -T is at:
http://www.gemtek.lt/~zilvinas/dumps/trace.3

ipw2200 is stuck in ipw_request_direct_scan() in wpa_supplicant context.

ps.

Yesterday I've tried to reproduce the same problem at home (where I live
there are no access points at all). No crashes or freezes whatsoever.
Tortures had been like rmmod/insmod, run shell scripts forcing card to
scan constantly, running wpa_supplicant & kill -9 ... No luck too. No
slab or any other memory corruption related problems, rock stable. Then,
at work - it is here rather hostile environment , 18 APs are visible
through scanning:

$ /sbin/iwlist ath0 scan | grep ESSID | wc -l
18

Half of them are open (no encryption), other half WPA-PSK/WPA-RADIUS
enabled (WPA/WPA2 ... quite a mess really ...). Perhaps I should have
mentioned this earlier too. Well still quite a testing environment ...
:)

On Wed, Nov 16, 2005 at 11:33:44AM +0200, Pekka J Enberg wrote:
> Hi Zilvinas,
>
> I think your device could be firing interrupts while we're taking
> the error path in ipw_pci_probe().
>
> Please back out the patch below:
>
> On Tue, Nov 15, 2005 at 02:51:16PM +0200, Pekka Enberg wrote:
> > > Index: 2.6/arch/i386/kernel/traps.c
> > > ===================================================================
> > > --- 2.6.orig/arch/i386/kernel/traps.c
> > > +++ 2.6/arch/i386/kernel/traps.c
> > > @@ -185,8 +185,10 @@ void show_stack(struct task_struct *task
> > > printk("\n ");
> > > printk("%08lx ", *stack++);
> > > }
> > > +#if 0
> > > printk("\nCall Trace:\n");
> > > show_trace(task, esp);
> > > +#endif
> > > }
> > >
>
> And see if you can trigger the oops with the included patch applied.
> Please leave the page and slab debugging config options on.
>
> Thank you for testing!
>
> Pekka
>
> Index: 2.6/drivers/net/wireless/ipw2200.c
> ===================================================================
> --- 2.6.orig/drivers/net/wireless/ipw2200.c
> +++ 2.6/drivers/net/wireless/ipw2200.c
> @@ -11065,6 +11065,7 @@ static int ipw_pci_probe(struct pci_dev
> return 0;
>
> out_remove_sysfs:
> + ipw_disable_interrupts(priv);
> sysfs_remove_group(&pdev->dev.kobj, &ipw_attribute_group);
> out_release_irq:
> free_irq(pdev->irq, priv);
> -
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at http://www.tux.org/lkml/