Re: [RESEND PATCH] x86/mm: only allow memmap=XX!YY over existing RAM

From: Dan Williams
Date: Tue Jun 28 2016 - 12:33:18 EST


On Tue, Jun 28, 2016 at 1:31 AM, Yigal Korman <yigal@xxxxxxxxxxxxx> wrote:
> Before this patch, passing a range that is beyond the physical memory
> range will succeed, the user will see a /dev/pmem0 and will be able to
> access it. Reads will always return 0 and writes will be silently
> ignored.
>
> I've gotten more than one bug report about mkfs.{xfs,ext4} or nvml
> failing that were eventually tracked down to be wrong values passed to
> memmap.
>
> This patch prevents the above issue by instead of adding a new memory
> range, only update a RAM memory range with the PRAM type. This way,
> passing the wrong memmap will either not give you a pmem at all or give
> you a smaller one that actually has RAM behind it.
>
> And if someone still needs to fake a pmem that doesn't have RAM behind
> it, they can simply do memmap=XX@YY,XX!YY.
>
> Signed-off-by: Yigal Korman <yigal@xxxxxxxxxxxxx>
> Acked-by: Dan Williams <dan.j.williams@xxxxxxxxx>
> Acked-by: Johannes Thumshirn <jthumshirn@xxxxxxx>
> Tested-by: Boaz Harrosh <boaz@xxxxxxxxxxxxx>
> ---

I have some other libnvdimm fixes heading upstream shortly if x86
folks just want to ack this one...