Re: [PATCH 1/1] qlcnic: add wmb() call in transmit data path.

2016-07-01 Thread David Miller
From: Sony Chacko 
Date: Wed, 29 Jun 2016 17:51:34 -0400

> Call wmb() to ensure writes are complete before
> hardware fetches updated Tx descriptors.
> 
> Signed-off-by: Sony Chacko 

Applied, thanks.


RE: [PATCH 1/1] qlcnic: add wmb() call in transmit data path.

2016-06-30 Thread Sony Chacko
Subject: Re: [PATCH 1/1] qlcnic: add wmb() call in transmit data path.

>
>> +/* Ensure writes are complete before HW fetches Tx descriptors */
>> +wmb();
>>   qlcnic_update_cmd_producer(tx_ring);
>>
>>   return NETDEV_TX_OK;
>>
>
> Would not an mmiowb be more appropriate in this case?
>
> Regards,
> Lino

Sorry, this was nonsense.This should be "dma_wmb" not "mmiowb".

Lino,

The patch is based on this kernel documentation. 

https://www.kernel.org/doc/Documentation/memory-barriers.txt

/* force memory to sync before notifying device via MMIO */
wmb();

/* notify device of new descriptors */
writel(DESC_NOTIFY, doorbell);
}
The wmb() is needed to guarantee that the cache coherent memory writes have 
completed before attempting a write to the cache incoherent MMIO region.

Thanks,
Sony


Re: [PATCH 1/1] qlcnic: add wmb() call in transmit data path.

2016-06-30 Thread Lino Sanfilippo



On 30.06.2016 17:32, Lino Sanfilippo wrote:

Hi,

On 29.06.2016 23:51, Sony Chacko wrote:


+/* Ensure writes are complete before HW fetches Tx descriptors */
+wmb();
  qlcnic_update_cmd_producer(tx_ring);

  return NETDEV_TX_OK;



Would not an mmiowb be more appropriate in this case?

Regards,
Lino


Sorry, this was nonsense. This should be "dma_wmb" not "mmiowb".

Regards,
Lino


Re: [PATCH 1/1] qlcnic: add wmb() call in transmit data path.

2016-06-30 Thread Lino Sanfilippo

Hi,

On 29.06.2016 23:51, Sony Chacko wrote:


+   /* Ensure writes are complete before HW fetches Tx descriptors */
+   wmb();
qlcnic_update_cmd_producer(tx_ring);

return NETDEV_TX_OK;



Would not an mmiowb be more appropriate in this case?

Regards,
Lino