1. 14 12月, 2015 1 次提交
  2. 18 8月, 2015 1 次提交
    • S
      ARM: 8415/1: early fixmap support for earlycon · a5f4c561
      Stefan Agner 提交于
      Add early fixmap support, initially to support permanent, fixed
      mapping support for early console. A temporary, early pte is
      created which is migrated to a permanent mapping in paging_init.
      This is also needed since the attributes may change as the memory
      types are initialized. The 3MiB range of fixmap spans two pte
      tables, but currently only one pte is created for early fixmap
      support.
      
      Re-add FIX_KMAP_BEGIN to the index calculation in highmem.c since
      the index for kmap does not start at zero anymore. This reverts
      4221e2e6 ("ARM: 8031/1: fixmap: remove FIX_KMAP_BEGIN and
      FIX_KMAP_END") to some extent.
      
      Cc: Mark Salter <msalter@redhat.com>
      Cc: Kees Cook <keescook@chromium.org>
      Cc: Laura Abbott <lauraa@codeaurora.org>
      Cc: Arnd Bergmann <arnd@arndb.de>
      Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org>
      Signed-off-by: NRob Herring <robh@kernel.org>
      Signed-off-by: NStefan Agner <stefan@agner.ch>
      Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      a5f4c561
  3. 17 10月, 2014 4 次提交
    • R
      arm: use fixmap for text patching when text is RO · ab0615e2
      Rabin Vincent 提交于
      Use fixmaps for text patching when the kernel text is read-only,
      inspired by x86.  This makes jump labels and kprobes work with the
      currently available CONFIG_DEBUG_SET_MODULE_RONX and the upcoming
      CONFIG_DEBUG_RODATA options.
      Signed-off-by: NRabin Vincent <rabin@rab.in>
      [kees: fixed up for merge with "arm: use generic fixmap.h"]
      [kees: added parse acquire/release annotations to pass C=1 builds]
      [kees: always use stop_machine to keep TLB flushing local]
      Signed-off-by: NKees Cook <keescook@chromium.org>
      Acked-by: NNicolas Pitre <nico@linaro.org>
      ab0615e2
    • K
      arm: fixmap: implement __set_fixmap() · 99b4ac9a
      Kees Cook 提交于
      This is used from set_fixmap() and clear_fixmap() via asm-generic/fixmap.h.
      Also makes sure that the fixmap allocation fits into the expected range.
      
      Based on patch by Rabin Vincent.
      Signed-off-by: NKees Cook <keescook@chromium.org>
      Cc: Rabin Vincent <rabin@rab.in>
      Acked-by: NNicolas Pitre <nico@linaro.org>
      99b4ac9a
    • R
      ARM: expand fixmap region to 3MB · 836a2418
      Rob Herring 提交于
      With commit a05e54c1 ("ARM: 8031/2: change fixmap mapping region to
      support 32 CPUs"), the fixmap region was expanded to 2MB, but it
      precluded any other uses of the fixmap region. In order to support other
      uses the fixmap region needs to be expanded beyond 2MB. Fortunately, the
      adjacent 1MB range 0xffe00000-0xfff00000 is availabe.
      
      Remove fixmap_page_table ptr and lookup the page table via the virtual
      address so that the fixmap region can span more that one pmd. The 2nd
      pmd is already created since it is shared with the vector page.
      Signed-off-by: NRob Herring <robh@kernel.org>
      [kees: fixed CONFIG_DEBUG_HIGHMEM get_fixmap() calls]
      [kees: moved pte allocation outside of CONFIG_HIGHMEM]
      Signed-off-by: NKees Cook <keescook@chromium.org>
      Acked-by: NNicolas Pitre <nico@linaro.org>
      836a2418
    • M
      arm: use generic fixmap.h · b615bbbf
      Mark Salter 提交于
      ARM is different from other architectures in that fixmap pages are indexed
      with a positive offset from FIXADDR_START.  Other architectures index with
      a negative offset from FIXADDR_TOP.  In order to use the generic fixmap.h
      definitions, this patch redefines FIXADDR_TOP to be inclusive of the
      useable range.  That is, FIXADDR_TOP is the virtual address of the topmost
      fixed page.  The newly defined FIXADDR_END is the first virtual address
      past the fixed mappings.
      Signed-off-by: NMark Salter <msalter@redhat.com>
      Reviewed-by: NDoug Anderson <dianders@chromium.org>
      [kees: update for a05e54c1 ("ARM: 8031/2: change fixmap ...")]
      Signed-off-by: NKees Cook <keescook@chromium.org>
      Cc: Laura Abbott <lauraa@codeaurora.org>
      Cc: Rob Herring <robh@kernel.org>
      Acked-by: NNicolas Pitre <nico@linaro.org>
      b615bbbf
  4. 23 4月, 2014 2 次提交
  5. 16 3月, 2009 1 次提交
    • N
      [ARM] fixmap support · 5f0fbf9e
      Nicolas Pitre 提交于
      This is the minimum fixmap interface expected to be implemented by
      architectures supporting highmem.
      
      We have a second level page table already allocated and covering
      0xfff00000-0xffffffff because the exception vector page is located
      at 0xffff0000, and various cache tricks already use some entries above
      0xffff0000.  Therefore the PTEs covering 0xfff00000-0xfffeffff are free
      to be used.
      
      However the XScale cache flushing code already uses virtual addresses
      between 0xfffe0000 and 0xfffeffff.
      
      So this reserves the 0xfff00000-0xfffdffff range for fixmap stuff.
      
      The Documentation/arm/memory.txt information is updated accordingly,
      including the information about the actual top of DMA memory mapping
      region which didn't match the code.
      Signed-off-by: NNicolas Pitre <nico@marvell.com>
      5f0fbf9e