diff options
author | Dan Williams <dan.j.williams@intel.com> | 2015-08-11 06:07:05 +0300 |
---|---|---|
committer | Dan Williams <dan.j.williams@intel.com> | 2015-08-11 06:07:05 +0300 |
commit | 124fe20d94630b6f173dae5eb815e6e6e350c72d (patch) | |
tree | fc550c3a1a497f770b81b87ca574a1273dd965a7 /arch | |
parent | f6ef5a2a50816b58e3126206de13d0b9fdf89df5 (diff) | |
download | linux-124fe20d94630b6f173dae5eb815e6e6e350c72d.tar.xz |
mm: enhance region_is_ram() to region_intersects()
region_is_ram() is used to prevent the establishment of aliased mappings
to physical "System RAM" with incompatible cache settings. However, it
uses "-1" to indicate both "unknown" memory ranges (ranges not described
by platform firmware) and "mixed" ranges (where the parameters describe
a range that partially overlaps "System RAM").
Fix this up by explicitly tracking the "unknown" vs "mixed" resource
cases and returning REGION_INTERSECTS, REGION_MIXED, or REGION_DISJOINT.
This re-write also adds support for detecting when the requested region
completely eclipses all of a resource. Note, the implementation treats
overlaps between "unknown" and the requested memory type as
REGION_INTERSECTS.
Finally, other memory types can be passed in by name, for now the only
usage "System RAM".
Suggested-by: Luis R. Rodriguez <mcgrof@suse.com>
Reviewed-by: Toshi Kani <toshi.kani@hp.com>
Signed-off-by: Dan Williams <dan.j.williams@intel.com>
Diffstat (limited to 'arch')
0 files changed, 0 insertions, 0 deletions