[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: cache coherency in DMA and MMIO
From: |
Da Zheng |
Subject: |
Re: cache coherency in DMA and MMIO |
Date: |
Sat, 24 Apr 2010 18:29:50 +0800 |
User-agent: |
Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; en-US; rv:1.9.1.9) Gecko/20100317 Thunderbird/3.0.4 |
On 10-4-23 下午7:37, Samuel Thibault wrote:
> Da Zheng, le Fri 23 Apr 2010 14:51:22 +0800, a écrit :
>> They are not just one or two variables. They are an array of structure
>> variables. Should I define all fields of the structure with volatile
>> qualifier?
>
> You can qualify the whole structure
>
>> It's strange. The Linux driver doesn't do so but it definitely works in the
>> Linux kernel.
>
> It does (or should do): such pointers have the __io qualifier.
I checked the code of e1000 again. The data for MMIO is qualified by __iomem,
but the data in the transmission or receiving queues (which are accessed by DMA)
doesn't have __iomem or any similar qualifiers. I guess the data in the
transmission queue is very unlikely to be in registers when the driver accesses
it.
Zheng Da
- cache coherency in DMA and MMIO, Da Zheng, 2010/04/22
- Re: cache coherency in DMA and MMIO, Samuel Thibault, 2010/04/22
- Re: cache coherency in DMA and MMIO, Samuel Thibault, 2010/04/22
- Re: cache coherency in DMA and MMIO, Da Zheng, 2010/04/23
- Re: cache coherency in DMA and MMIO, Samuel Thibault, 2010/04/23
- Re: cache coherency in DMA and MMIO,
Da Zheng <=
- Re: cache coherency in DMA and MMIO, Samuel Thibault, 2010/04/24
- Re: cache coherency in DMA and MMIO, Da Zheng, 2010/04/24
- Re: cache coherency in DMA and MMIO, Samuel Thibault, 2010/04/24