lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Sat, 7 Feb 2009 13:24:32 +0100 From: Jarek Poplawski <jarkao2@...il.com> To: David Miller <davem@...emloft.net> Cc: itvirta@....fi, linux-kernel@...r.kernel.org, netdev@...r.kernel.org Subject: Re: Soft lockup in sungem on Netra AC200 when switching interface up David Miller wrote, On 02/07/2009 07:01 AM: > From: Ilkka Virta <itvirta@....fi> > Date: Fri, 6 Feb 2009 13:29:02 +0200 > >> Looking at gem_do_start() and gem_open(), it seems that the only thing >> done while opening the device after the request_irq(), is a call to >> napi_enable(). >> >> I don't know what the ordering requirements are for the >> initialization, but I boldly tried to move the napi_enable() call >> inside gem_do_start() before the link state is checked and interrupts >> subsequently enabled, and it seems to work for me. Doesn't even break >> anything too obvious... >> >> Any ideas on how this really should be fixed? > > Actually your fix looks good, I'll apply this :-) Alas it could be not enough. It seems this problem is caused by not serving interrupts if napi is disabled. This patch added napi_enable() on one path, but e.g. here: static int gem_close(struct net_device *dev) { struct gem *gp = netdev_priv(dev); mutex_lock(&gp->pm_mutex); napi_disable(&gp->napi); gp->opened = 0; if (!gp->asleep) gem_do_stop(dev, 0); ... similar storm can happen if an interrupt is triggered just after napi_disable(). Jarek P. -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@...r.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists