[GIT PULL] memremap fix for 4.3

Russell King - ARM Linux linux at arm.linux.org.uk
Thu Oct 29 10:09:50 PDT 2015


On Thu, Oct 29, 2015 at 08:00:13AM +0000, Williams, Dan J wrote:
> Hi Linus, please pull from:
> 
>   git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm libnvdimm-fixes
> 
> ...to receive a small fixlet for 4.3.
> 
> The new memremap() api introduced in the 4.3 cycle to unify/replace
> ioremap_cache() and ioremap_wt() is mishandling the highmem case.  This
> patch has received a build success notification from a 0day-kbuild-robot
> run and has been out for a review for a day.  Russell has not had a
> chance to weigh in on it yet.

Oh, was this merged for 4.3-rc1?  I haven't noticed any problems if it
has.

> I do not think the usage of kmap is strictly necessary as we should be
> able to fall back to ioremap_cache(), but I include it for two reasons:
> 
> 1/ ARM ioremap() will WARN if passed a pfn_valid() address.

We don't support ioremap() on system RAM on ARM, period.  That's because
ioremap() sets up page tables with incompatible attributes compared to
those which are/will be setup by the lowmem/kmap* mappings, which leads
to "unpredictable" behaviour.

The only time RAM is mappable with ioremap() is if it's stolen from the
kernel at boot time, which prevents the kernel from managing it and
setting up memory-like mappings.

-- 
FTTC broadband for 0.8mile line: currently at 9.6Mbps down 400kbps up
according to speedtest.net.



More information about the linux-arm-kernel mailing list