On 06/07/2017 16:36, Fam Zheng wrote:
> On Thu, 07/06 16:22, Paolo Bonzini wrote:
>>
>>
>> On 06/07/2017 16:06, no-re...@patchew.org wrote:
>>> ERROR: Use of volatile is usually wrong: see 
>>> Documentation/volatile-considered-harmful.txt
>>> #843: FILE: block/nvme.c:40:
>>> +    volatile uint32_t *doorbell;
>>>
>>> ERROR: Use of volatile is usually wrong: see 
>>> Documentation/volatile-considered-harmful.txt
>>> #869: FILE: block/nvme.c:66:
>>> +typedef volatile struct {
>>
>> Indeed volatile should not be necessary, since we use memory barriers
>> appropriately.  But these are hardware registers (like, host hardware)
>> so I guess it's okay for this special case.
> 
> I think I used it because we don't have ACCESS_ONCE (maybe we should?).

We have atomic_read and atomic_set (and Linux in fact tries not to use
ACCESS_ONCE anymore, it's been replaced by READ_ONCE and WRITE_ONCE so
it's really 1:1 with QEMU).

Paolo

Reply via email to