ramips: Rework ramips_eth to not require irqsave locking anymore
authorJohn Crispin <john@openwrt.org>
Tue, 17 Jan 2012 11:23:11 +0000 (11:23 +0000)
committerJohn Crispin <john@openwrt.org>
Tue, 17 Jan 2012 11:23:11 +0000 (11:23 +0000)
commitcda26e610b6b5d5beaaaeef9c60a95b3bc956b05
treef4364900a198534942330354141f0de06ad47261
parent460618e36496d6ef062278c02234a11691d5ed85
ramips: Rework ramips_eth to not require irqsave locking anymore

Previously the tx housekeeping was done in a spin_lock_irqsave critical
section which causes irqs to be disabled during that time. Since the
housekeeping is already prepared to be scheduled as a tasklet process
the housekeeping only in softirq context and revise the locking between
the tx path and the housekeeping tasklet by using a normal spin_lock
which in most situations will be a NOP anyway.

This makes sure that interrupts are only disabled for a short time
since in the worst case the housekeeping might have to free up to 256
skbs.

Signed-off-by: Helmut Schaa <helmut.schaa@googlemail.com>
SVN-Revision: 29762
target/linux/ramips/files/drivers/net/ramips.c