On 3/23/20 8:09 AM, Ramon Fried wrote:
> On Mon, Mar 23, 2020 at 3:45 AM Marek Vasut <[email protected]> wrote:
>>
>> The DMA may attempt to write a DMA descriptor in the ring while it is
>> being updated. By writing the DMA descriptor buffer address to 0, it
>> is assured the DMA will not use such a buffer and the buffer can be
>> updated without any interference.
>>
>> Signed-off-by: Marek Vasut <[email protected]>
>> Cc: Joe Hershberger <[email protected]>
>> Cc: Patrice Chotard <[email protected]>
>> Cc: Patrick Delaunay <[email protected]>
>> Cc: Ramon Fried <[email protected]>
>> Cc: Stephen Warren <[email protected]>
>> ---
>>  drivers/net/dwc_eth_qos.c | 4 +++-
>>  1 file changed, 3 insertions(+), 1 deletion(-)
>>
>> diff --git a/drivers/net/dwc_eth_qos.c b/drivers/net/dwc_eth_qos.c
>> index 7dadb10fe7..c86b9d59a5 100644
>> --- a/drivers/net/dwc_eth_qos.c
>> +++ b/drivers/net/dwc_eth_qos.c
>> @@ -1431,8 +1431,10 @@ static int eqos_free_pkt(struct udevice *dev, uchar 
>> *packet, int length)
>>
>>         rx_desc = &(eqos->rx_descs[eqos->rx_desc_idx]);
>>
>> +       rx_desc->des0 = 0;
>> +       mb();
> Better use wmb() for better understanding your goal here ?

The driver uses mb() all over the place, so I'm just keeping it
consistent here.

But I wonder whether we even need all those barriers in this driver at all.

Reply via email to