Bug#727041: kernel 3.11-1 freezes when via velocity interface comes up
Package: src:linux
Version: 3.11.5-1
Severity: grave
Tags: patch
Subject kind of says it all. My system freezes solidly as soon as I ifup the
network interface. Please see e.g.
http://www.spinics.net/lists/netdev/msg251287.html for more details.
Attached patch from mentioned URL fixes the problem for me. I haven't checked
if kernel devs used the same patch, though.
Michael
Description: prevent freeze in velocity based networking
Origin: http://www.spinics.net/lists/netdev/msg251312.html
--- linux-3.11.5.orig/drivers/net/ethernet/via/via-velocity.c
+++ linux-3.11.5/drivers/net/ethernet/via/via-velocity.c
@@ -2172,14 +2172,12 @@ static int velocity_poll(struct napi_str
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 */
Reply to: