On 01/16/2013 08:37 AM, Wolfgang Grandegger wrote:

> On 01/15/2013 08:46 PM, Gilles Chanteperdrix wrote:
>> On 01/15/2013 04:22 PM, Wolfgang Grandegger wrote:
>>
>>> From: Wolfgang Grandegger <[email protected]>
>>>
>>> Pages mapped by rtdm_iomap_to_user() might be cached and may
>>> page fault on the first write. At least that's the behaviour
>>> we observed on an ARM mx6q system. This patch fixes these
>>> issues.
>>>
>>> Signed-off-by: Wolfgang Grandegger <[email protected]>
>>> ---
>>>  include/asm-generic/wrappers.h | 2 +-
>>>  ksrc/skins/rtdm/drvlib.c       | 8 +++++---
>>>  2 files changed, 6 insertions(+), 4 deletions(-)
>>>
>>> diff --git a/include/asm-generic/wrappers.h b/include/asm-generic/wrappers.h
>>> index de1f0d7..e71bcc3 100644
>>> --- a/include/asm-generic/wrappers.h
>>> +++ b/include/asm-generic/wrappers.h
>>> @@ -394,7 +394,7 @@ static inline void *kzalloc(size_t size, int flags)
>>>  #define wrap_remap_io_page_range(vma,from,to,size,prot)  ({                
>>> \
>>>      (vma)->vm_page_prot = pgprot_noncached((vma)->vm_page_prot);   \
> 
> Hm, here pgprot_noncached() is already used.
> 
>>>      /* Sets VM_RESERVED | VM_IO | VM_PFNMAP on the vma. */         \
>>> -    remap_pfn_range(vma,from,(to) >> PAGE_SHIFT,size,prot);                
>>> \
>>> +    remap_pfn_range(vma,from,(to) >> 
>>> PAGE_SHIFT,size,pgprot_noncached(prot));              \
>>
>>
>> Should not this be decided in the upper layers?
> 
> Upper layers? You mean calling xnarch_remap_io_page_range() with the
> protection argument "pgprot_noncached(PAGE_SHARED)" in rtdm_mmap_buffer()?


I mean users could want to map i/o regions cacheable, but as you say,
the pgprot_noncached is already hardcoded in the vma, so, I will merge
your patch.

-- 
                                                                Gilles.

_______________________________________________
Xenomai mailing list
[email protected]
http://www.xenomai.org/mailman/listinfo/xenomai

Reply via email to