Messages in this thread | | | From | Måns Rullgård <> | Subject | Re: [PATCH v5] net: ethernet: add driver for Aurora VLSI NB8800 Ethernet controller | Date | Wed, 11 Nov 2015 19:17:07 +0000 |
| |
David Miller <davem@davemloft.net> writes:
> From: Måns Rullgård <mans@mansr.com> > Date: Wed, 11 Nov 2015 19:09:19 +0000 > >> David Miller <davem@davemloft.net> writes: >> >>> From: Måns Rullgård <mans@mansr.com> >>> Date: Wed, 11 Nov 2015 18:25:05 +0000 >>> >>>> If the TX DMA channel is idle when start_xmit is called, it can be >>>> started immediately. Checking the DMA status and starting it if >>>> idle has to be done atomically somehow. >>> >>> ->ndo_start_xmit() is guaranteed to be invoked atomically, protected >>> by the TX queue spinlock. >> >> Yes, but the DMA needs to be restarted from some other context if it was >> busy when start_xmit checked. > > Then you can probably use the TXQ lock in the interrupt handler just for > that.
That seems a bit heavy-handed when the critical section for this is only a tiny part of the start_xmit function.
-- Måns Rullgård mans@mansr.com
| |