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
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:	Mon, 11 Nov 2013 23:46:56 +0000
From:	Michele Baldessari <michele@...syn.org>
To:	Francois Romieu <romieu@...zoreil.com>
Cc:	Dirk Kraft <dirk.kraft@...il.com>, netdev@...r.kernel.org,
	Julia Lawall <Julia.Lawall@...6.fr>
Subject: Re: Bug - regression - Via velocity interface coming up freezes
 kernel

Hi Francois,

On Mon, Sep 23, 2013 at 12:11:09AM +0200, Francois Romieu wrote:
> Dirk Kraft <dirk.kraft@...il.com> :
> [...]
> > I observe problems with my machine freezing when bringing up the
> > network interface (via velocity based). Detailed report below.
> > 
> > First message was rejected because of html. Julia Lawall, sorry about
> > sending multiple copies.
> > 
> > [1.] One line summary of the problem:
> > Via_velocity interface coming up freezes kernel - WARNING: CPU: 0 PID:
> > 1529 at /build/buildd/linux-3.11.0/kernel/softirq.c:159
> > local_bh_enable+0x60/0x90()
> 
> netif_receive_skb with irq disabled ?
> 
> You can try this one as a wild guess before I have more time to analyze.
> 
> diff --git a/drivers/net/ethernet/via/via-velocity.c b/drivers/net/ethernet/via/via-velocity.c
> index d022bf9..64c42be 100644
> --- a/drivers/net/ethernet/via/via-velocity.c
> +++ b/drivers/net/ethernet/via/via-velocity.c
> @@ -2172,16 +2172,13 @@ static int velocity_poll(struct napi_struct *napi, int budget)
>  	unsigned int rx_done;
>  	unsigned long flags;
>  
> -	spin_lock_irqsave(&vptr->lock, flags);
>  	/*
>  	 * Do rx and tx twice for performance (taken from the VIA
>  	 * out-of-tree driver).
>  	 */
> -	rx_done = velocity_rx_srv(vptr, budget / 2);
> -	velocity_tx_srv(vptr);
> -	rx_done += velocity_rx_srv(vptr, budget - rx_done);
> +	rx_done = velocity_rx_srv(vptr, budget);
> +	spin_lock_irqsave(&vptr->lock, flags);
>  	velocity_tx_srv(vptr);
> -
>  	/* If budget not fully consumed, exit the polling mode */
>  	if (rx_done < budget) {
>  		napi_complete(napi);

any chance you can submit this officially? Or does this patch need some
more work?

Two people confirmed it fixed the issue for them on netdev and one
on Fedora's bugzilla so far.

Thanks,
Michele
-- 
Michele Baldessari            <michele@...syn.org>
C2A5 9DA3 9961 4FFB E01B  D0BC DDD4 DCCB 7515 5C6D
--
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

Powered by Openwall GNU/*/Linux Powered by OpenVZ