lkml.org 
[lkml]   [2016]   [Nov]   [24]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    From
    Date
    SubjectRe: [PATCH] arm64: mm: Fix memmap to be initialized for the entire section
    On 24 November 2016 at 13:42, Robert Richter <robert.richter@cavium.com> wrote:
    > On 23.11.16 21:25:06, Ard Biesheuvel wrote:
    >> Why? MEMREMAP_WB is used often, among other things for mapping
    >> firmware tables, which are marked as NOMAP, so in these cases, the
    >> linear address is not mapped.
    >
    > If fw tables are mapped wb, that is wrong and needs a separate fix.
    >

    Why is that wrong?

    >> > If you think pfn_valid() is wrong here, I am happy to send a patch
    >> > that fixes this by using page_is_ram(). In any case, the worst case
    >> > that may happen is to behave the same as v4.4, we might fix then the
    >> > wrong use of pfn_valid() where it is not correctly used to check for
    >> > ram.
    >> >
    >>
    >> page_is_ram() uses string comparisons to look for regions called
    >> 'System RAM'. Is that something we can tolerate for each pfn_valid()
    >> calll?
    >>
    >> Perhaps the solution is to reimplement page_is_ram() for arm64 using
    >> memblock_is_memory() instead, But that still means we need to modify
    >> the generic memremap() code first to switch to it before changing the
    >> arm64 implementation of pfn_valid
    >
    > No, that's not the solution. pfn_valid() should just check if there is
    > a valid struct page, as other archs do. And if there is a mis-use of
    > pfn_valid() to check for ram, only that calls should be fixed to use
    > page_is_ram(), however this is implemented, or something appropriate.
    > But I don't see any problematic code, and if so, I will fix that.
    >

    memremap() uses pfn_valid() to decide whether some address is covered
    by the linear mapping. If we correct pfn_valid() to adhere to your
    definition, we will need to fix memremap() first in any case.

    \
     
     \ /
      Last update: 2016-11-24 14:44    [W:2.405 / U:1.228 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site