[PATCH] Re allocate the RX DMA buffer to avoid skb conflict Handle all RX packets in the DMA ring buffer

YanBo dreamfly281 at gmail.com
Tue May 28 02:32:24 EDT 2013


On Tue, May 28, 2013 at 2:18 PM, Eugene Krasnikov <k.eugene.e at gmail.com> wrote:
>> +       /* TX_LOW_PRI */
>> +       if (int_src & WCN36XX_DXE_INT_CH0_MASK) {
>> +               wcn36xx_dxe_read_register(wcn, WCN36XX_DXE_0_CH0_STATUS,
>> +                                         &int_reason);
>> +       }
>
> Why do we need to check if the reason for RX interrupt is TX_LOW_PRIO?
> I thought RX interrupt is only for RX packets and not for TX?
>
In my testing, the irq_tx_complete90 will not be triggered after TX
fire, but the TX status has to be
clear in order to continue TX, then it just moved to RX handle to as a
workaround to fix this issue.

That is indeed need be move to TX handler when we get the irq_tx_complete works

BR /Yanbo
>
> 2013/5/28 Eugene Krasnikov <k.eugene.e at gmail.com>:
>>> The GFP_ATOMIC is need cause normally the rx skb reallocation is be
>>> done on interrupt context, although currently it is
>>> implemented on the work queue but is not very correctly, both the
>>> interrupt register and skb unmap/refill should be implemented
>>> in the interrupt  context as quickly as possible to avoid the hardware
>>> DMA engine reuse the skb or stuck due to some register no be cleared.
>>> I'll submit another patch to move them to interrupt context instead of
>>> in bottom half.
>>>
>>
>> You can move the code to wcn36xx_irq_rx_ready.
>>
>> This patch is number one for me today so please send updated version
>> so we can review it and get it merged today;) But we must be careful
>> with DXE part because issues there are really hard to track.
>>
>> --
>> Best regards,
>> Eugene
>
>
>
> --
> Best regards,
> Eugene



More information about the wcn36xx mailing list