Subject: [PATCH v2 04/25] mm: enhance region_is_ram() to distinguish 'unknown' vs 'mixed'

From: [email-masked] (Toshi Kani)
Date: Tue, 28 Jul 2015 15:33:11 -0600

On Fri, 2015-07-24 at 22:38 -0400, Dan Williams wrote:
> 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. In addition to clarifying that "-1" means the requested spanned
> RAM and non-RAM resource, this re-write also adds support for detecting
> when the requested range completely covers all of a resource.

Agreed - this is a good enhancement.

> Finally, the implementation treats overlaps between "unknown" and RAM as
> RAM.

This sounds right for this interface.  iomem_map_sanity_check() checks the
boundary condition with the resource table.

> Cc: Toshi Kani <[email-masked]>
> Signed-off-by: Dan Williams <[email-masked]>

The changes look good as well.

Reviewed-by: Toshi Kani <[email-masked]>

Thanks,
-Toshi