Skip to content
Snippets Groups Projects
Select Git revision
  • f6248dd88dba3aeb19351410a027d92eee7ceb72
  • vme-testing default
  • ci-test
  • master
  • remoteproc
  • am625-sk-ov5640
  • pcal6534-upstreaming
  • lps22df-upstreaming
  • msc-upstreaming
  • imx8mp
  • iio/noa1305
  • vme-next
  • vme-next-4.14-rc4
  • v4.14-rc4
  • v4.14-rc3
  • v4.14-rc2
  • v4.14-rc1
  • v4.13
  • vme-next-4.13-rc7
  • v4.13-rc7
  • v4.13-rc6
  • v4.13-rc5
  • v4.13-rc4
  • v4.13-rc3
  • v4.13-rc2
  • v4.13-rc1
  • v4.12
  • v4.12-rc7
  • v4.12-rc6
  • v4.12-rc5
  • v4.12-rc4
  • v4.12-rc3
32 results

cacheflush.h

Blame
    • Kees Cook's avatar
      8acdf505
      randstruct: opt-out externally exposed function pointer structs · 8acdf505
      Kees Cook authored
      
      Some function pointer structures are used externally to the kernel, like
      the paravirt structures. These should never be randomized, so mark them
      as such, in preparation for enabling randstruct's automatic selection
      of all-function-pointer structures.
      
      These markings are verbatim from Brad Spengler/PaX Team's code in the
      last public patch of grsecurity/PaX based on my understanding of the
      code. Changes or omissions from the original code are mine and don't
      reflect the original grsecurity/PaX code.
      
      Signed-off-by: default avatarKees Cook <keescook@chromium.org>
      8acdf505
      History
      randstruct: opt-out externally exposed function pointer structs
      Kees Cook authored
      
      Some function pointer structures are used externally to the kernel, like
      the paravirt structures. These should never be randomized, so mark them
      as such, in preparation for enabling randstruct's automatic selection
      of all-function-pointer structures.
      
      These markings are verbatim from Brad Spengler/PaX Team's code in the
      last public patch of grsecurity/PaX based on my understanding of the
      code. Changes or omissions from the original code are mine and don't
      reflect the original grsecurity/PaX code.
      
      Signed-off-by: default avatarKees Cook <keescook@chromium.org>
    cacheflush.h 15.54 KiB
    /*
     *  arch/arm/include/asm/cacheflush.h
     *
     *  Copyright (C) 1999-2002 Russell King
     *
     * This program is free software; you can redistribute it and/or modify
     * it under the terms of the GNU General Public License version 2 as
     * published by the Free Software Foundation.
     */
    #ifndef _ASMARM_CACHEFLUSH_H
    #define _ASMARM_CACHEFLUSH_H
    
    #include <linux/mm.h>
    
    #include <asm/glue-cache.h>
    #include <asm/shmparam.h>
    #include <asm/cachetype.h>
    #include <asm/outercache.h>
    
    #define CACHE_COLOUR(vaddr)	((vaddr & (SHMLBA - 1)) >> PAGE_SHIFT)
    
    /*
     * This flag is used to indicate that the page pointed to by a pte is clean
     * and does not require cleaning before returning it to the user.
     */
    #define PG_dcache_clean PG_arch_1
    
    /*
     *	MM Cache Management
     *	===================
     *
     *	The arch/arm/mm/cache-*.S and arch/arm/mm/proc-*.S files
     *	implement these methods.
     *
     *	Start addresses are inclusive and end addresses are exclusive;
     *	start addresses should be rounded down, end addresses up.
     *
     *	See Documentation/cachetlb.txt for more information.
     *	Please note that the implementation of these, and the required
     *	effects are cache-type (VIVT/VIPT/PIPT) specific.
     *
     *	flush_icache_all()
     *
     *		Unconditionally clean and invalidate the entire icache.
     *		Currently only needed for cache-v6.S and cache-v7.S, see
     *		__flush_icache_all for the generic implementation.
     *
     *	flush_kern_all()
     *
     *		Unconditionally clean and invalidate the entire cache.
     *
     *     flush_kern_louis()
     *
     *             Flush data cache levels up to the level of unification
     *             inner shareable and invalidate the I-cache.
     *             Only needed from v7 onwards, falls back to flush_cache_all()
     *             for all other processor versions.
     *
     *	flush_user_all()
     *
     *		Clean and invalidate all user space cache entries
     *		before a change of page tables.
     *
     *	flush_user_range(start, end, flags)
     *
     *		Clean and invalidate a range of cache entries in the
     *		specified address space before a change of page tables.
     *		- start - user start address (inclusive, page aligned)
     *		- end   - user end address   (exclusive, page aligned)
     *		- flags - vma->vm_flags field