commit | 5180da410db6369d1f95c9014da1c9bc33fb043e | [log] [tgz] |
---|---|---|
author | Suresh Siddha <[email protected]> | Mon Oct 08 16:28:29 2012 -0700 |
committer | Linus Torvalds <[email protected]> | Tue Oct 09 16:22:16 2012 +0900 |
tree | 1d92975710b33a90f77f39d0ad33669329dea949 | |
parent | b1a86e15dc0304366f50ba1720834bc419c801b1 [diff] |
x86, pat: separate the pfn attribute tracking for remap_pfn_range and vm_insert_pfn With PAT enabled, vm_insert_pfn() looks up the existing pfn memory attribute and uses it. Expectation is that the driver reserves the memory attributes for the pfn before calling vm_insert_pfn(). remap_pfn_range() (when called for the whole vma) will setup a new attribute (based on the prot argument) for the specified pfn range. This addresses the legacy usage which typically calls remap_pfn_range() with a desired memory attribute. For ranges smaller than the vma size (which is typically not the case), remap_pfn_range() will use the existing memory attribute for the pfn range. Expose two different API's for these different behaviors. track_pfn_insert() for tracking the pfn attribute set by vm_insert_pfn() and track_pfn_remap() for the remap_pfn_range(). This cleanup also prepares the ground for the track/untrack pfn vma routines to take over the ownership of setting PAT specific vm_flag in the 'vma'. [[email protected]: Clear checks in track_pfn_remap()] [[email protected]: tweak a few comments] Signed-off-by: Suresh Siddha <[email protected]> Signed-off-by: Konstantin Khlebnikov <[email protected]> Cc: Venkatesh Pallipadi <[email protected]> Cc: H. Peter Anvin <[email protected]> Cc: Nick Piggin <[email protected]> Cc: Ingo Molnar <[email protected]> Cc: Alexander Viro <[email protected]> Cc: Carsten Otte <[email protected]> Cc: Chris Metcalf <[email protected]> Cc: Cyrill Gorcunov <[email protected]> Cc: Eric Paris <[email protected]> Cc: Hugh Dickins <[email protected]> Cc: James Morris <[email protected]> Cc: Jason Baron <[email protected]> Cc: Kentaro Takeda <[email protected]> Cc: Konstantin Khlebnikov <[email protected]> Cc: Matt Helsley <[email protected]> Cc: Oleg Nesterov <[email protected]> Cc: Peter Zijlstra <[email protected]> Cc: Robert Richter <[email protected]> Cc: Suresh Siddha <[email protected]> Cc: Tetsuo Handa <[email protected]> Acked-by: Linus Torvalds <[email protected]> Signed-off-by: Andrew Morton <[email protected]> Signed-off-by: Linus Torvalds <[email protected]>