]> git.baikalelectronics.ru Git - kernel.git/commit
mm: fix pfn_t vs highmem
authorDan Williams <dan.j.williams@intel.com>
Fri, 12 Feb 2016 00:13:17 +0000 (16:13 -0800)
committerLinus Torvalds <torvalds@linux-foundation.org>
Fri, 12 Feb 2016 02:35:48 +0000 (18:35 -0800)
commitc02b6a63340fda8dc4866944fa7038072eaf2da8
treed5c99cc8df77b86bd9d88db6b24acbb4827a5023
parentaabc99e7447f4396ec769eba5817e593ee627207
mm: fix pfn_t vs highmem

The pfn_t type uses an unsigned long to store a pfn + flags value.  On a
64-bit platform the upper 12 bits of an unsigned long are never used for
storing the value of a pfn.  However, this is not true on highmem
platforms, all 32-bits of a pfn value are used to address a 44-bit
physical address space.  A pfn_t needs to store a 64-bit value.

Link: https://bugzilla.kernel.org/show_bug.cgi?id=112211
Fixes: 7f76023f9be5 ("mm, dax, gpu: convert vm_insert_mixed to pfn_t")
Signed-off-by: Dan Williams <dan.j.williams@intel.com>
Reported-by: Stuart Foster <smf.linux@ntlworld.com>
Reported-by: Julian Margetson <runaway@candw.ms>
Tested-by: Julian Margetson <runaway@candw.ms>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
include/linux/pfn.h
include/linux/pfn_t.h
kernel/memremap.c