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: Fri, 12 Jun 2009 07:16:14 -0700 From: Stephen Hemminger <shemminger@...ux-foundation.org> To: Mike McCormack <mikem@...g3k.org> Cc: netdev@...r.kernel.org Subject: Re: [PATCH] sky2: Fix a race between sky2_down and sky2_poll On Fri, 12 Jun 2009 22:16:42 +0900 Mike McCormack <mikem@...g3k.org> wrote: > 2009/6/12 Stephen Hemminger <shemminger@...ux-foundation.org> > > > Does the following fix the problem? > > I tried your patch out, but it still got a crash. > > The patch below does fix the problem. Does this look better? > > thanks, > > Mike > > ----------------------------- > > Subject: [PATCH] sky2: Shutdown receive path cleanly in sky2_down > > If sky2_down was called while receiving a packet, receive interrupts > would still occur after the receive buffer was free'd causing a crash in > sky2_status_intr. > > To avoid further receive interrupts after sky2_down: > > * make sure NAPI and interrupts are fully disabled during shutdown > * call sky2_rx_stop after shutting down the receiver > * clear received packets after shutdown > > Signed-off-by: Mike McCormack <mikem@...g3k.org> > --- > drivers/net/sky2.c | 21 +++++++++++++++------ > 1 files changed, 15 insertions(+), 6 deletions(-) > > diff --git a/drivers/net/sky2.c b/drivers/net/sky2.c > index a2ff9cb..136b362 100644 > --- a/drivers/net/sky2.c > +++ b/drivers/net/sky2.c > @@ -1805,10 +1805,13 @@ static int sky2_down(struct net_device *dev) > /* Disable port IRQ */ > imask = sky2_read32(hw, B0_IMSK); > imask &= ~portirq_msk[port]; > - sky2_write32(hw, B0_IMSK, imask); > + sky2_write32(hw, B0_IMSK, 0); > This breaks on 2 port boards. On dual port boards, both ports share the same IRQ. -- -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@...r.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists