hayeswang [off-list ref] :
Francois Romieu [mailto:romieu@fr.zoreil.com]
quoted
Hayes Wang [off-list ref] :
quoted
Replace netif_rx with netif_receive_skb to avoid disabling irq frequently
for increasing the efficiency.
read_bulk_callback is issued in irq context. It could thus use plain
spin_lock / spin_unlock instead of the irq disabling version.
The rx_bottom() is called in tasklet, so I just think I could use
netif_receive_skb directly. The netif_rx seems to queue the packet,
and local_irq_disable() would be called before dequeuing the skb.
The change in rx_bottom is fine. My point is about read_bulk_callback.
rx_bottom races with read_bulk_callback. rx_bottom is issued in
tasklet (softirq) context. read_bulk_callback is issued in irq
context, with irq disabled. read_bulk_callback does not need to
disable irq itself and could go with spin_lock in place of
spin_lock_irqsave (rx_bottom can't, of course).
--
Ueimor