1. 22 9月, 2020 1 次提交
  2. 15 8月, 2020 1 次提交
  3. 24 7月, 2020 1 次提交
  4. 22 7月, 2020 1 次提交
    • J
      x86, vmlinux.lds: Page-align end of ..page_aligned sections · de2b41be
      Joerg Roedel 提交于
      On x86-32 the idt_table with 256 entries needs only 2048 bytes. It is
      page-aligned, but the end of the .bss..page_aligned section is not
      guaranteed to be page-aligned.
      
      As a result, objects from other .bss sections may end up on the same 4k
      page as the idt_table, and will accidentially get mapped read-only during
      boot, causing unexpected page-faults when the kernel writes to them.
      
      This could be worked around by making the objects in the page aligned
      sections page sized, but that's wrong.
      
      Explicit sections which store only page aligned objects have an implicit
      guarantee that the object is alone in the page in which it is placed. That
      works for all objects except the last one. That's inconsistent.
      
      Enforcing page sized objects for these sections would wreckage memory
      sanitizers, because the object becomes artificially larger than it should
      be and out of bound access becomes legit.
      
      Align the end of the .bss..page_aligned and .data..page_aligned section on
      page-size so all objects places in these sections are guaranteed to have
      their own page.
      
      [ tglx: Amended changelog ]
      Signed-off-by: NJoerg Roedel <jroedel@suse.de>
      Signed-off-by: NThomas Gleixner <tglx@linutronix.de>
      Reviewed-by: NKees Cook <keescook@chromium.org>
      Cc: stable@vger.kernel.org
      Link: https://lkml.kernel.org/r/20200721093448.10417-1-joro@8bytes.org
      de2b41be
  5. 14 7月, 2020 1 次提交
  6. 08 7月, 2020 1 次提交
  7. 25 6月, 2020 2 次提交
  8. 19 5月, 2020 1 次提交
  9. 27 3月, 2020 1 次提交
  10. 19 3月, 2020 1 次提交
  11. 19 11月, 2019 1 次提交
    • S
      ftrace: Rename ftrace_graph_stub to ftrace_stub_graph · 46f94692
      Steven Rostedt (VMware) 提交于
      The ftrace_graph_stub was created and points to ftrace_stub as a way to
      assign the functon graph tracer function pointer to a stub function with a
      different prototype than what ftrace_stub has and not trigger the C
      verifier. The ftrace_graph_stub was created via the linker script
      vmlinux.lds.h. Unfortunately, powerpc already uses the name
      ftrace_graph_stub for its internal implementation of the function graph
      tracer, and even though powerpc would still build, the change via the linker
      script broke function tracer on powerpc from working.
      
      By using the name ftrace_stub_graph, which does not exist anywhere else in
      the kernel, this should not be a problem.
      
      Link: https://lore.kernel.org/r/1573849732.5937.136.camel@lca.pw
      
      Fixes: b83b43ff ("fgraph: Fix function type mismatches of ftrace_graph_return using ftrace_stub")
      Reorted-by: NQian Cai <cai@lca.pw>
      Signed-off-by: NSteven Rostedt (VMware) <rostedt@goodmis.org>
      46f94692
  12. 15 11月, 2019 1 次提交
  13. 06 11月, 2019 1 次提交
    • M
      module/ftrace: handle patchable-function-entry · a1326b17
      Mark Rutland 提交于
      When using patchable-function-entry, the compiler will record the
      callsites into a section named "__patchable_function_entries" rather
      than "__mcount_loc". Let's abstract this difference behind a new
      FTRACE_CALLSITE_SECTION, so that architectures don't have to handle this
      explicitly (e.g. with custom module linker scripts).
      
      As parisc currently handles this explicitly, it is fixed up accordingly,
      with its custom linker script removed. Since FTRACE_CALLSITE_SECTION is
      only defined when DYNAMIC_FTRACE is selected, the parisc module loading
      code is updated to only use the definition in that case. When
      DYNAMIC_FTRACE is not selected, modules shouldn't have this section, so
      this removes some redundant work in that case.
      
      To make sure that this is keep up-to-date for modules and the main
      kernel, a comment is added to vmlinux.lds.h, with the existing ifdeffery
      simplified for legibility.
      
      I built parisc generic-{32,64}bit_defconfig with DYNAMIC_FTRACE enabled,
      and verified that the section made it into the .ko files for modules.
      Signed-off-by: NMark Rutland <mark.rutland@arm.com>
      Acked-by: NHelge Deller <deller@gmx.de>
      Acked-by: NSteven Rostedt (VMware) <rostedt@goodmis.org>
      Reviewed-by: NArd Biesheuvel <ard.biesheuvel@linaro.org>
      Reviewed-by: NTorsten Duwe <duwe@suse.de>
      Tested-by: NAmit Daniel Kachhap <amit.kachhap@arm.com>
      Tested-by: NSven Schnelle <svens@stackframe.org>
      Tested-by: NTorsten Duwe <duwe@suse.de>
      Cc: Ingo Molnar <mingo@redhat.com>
      Cc: James E.J. Bottomley <James.Bottomley@HansenPartnership.com>
      Cc: Jessica Yu <jeyu@kernel.org>
      Cc: linux-parisc@vger.kernel.org
      a1326b17
  14. 04 11月, 2019 7 次提交
    • K
      vmlinux.lds.h: Allow EXCEPTION_TABLE to live in RO_DATA · b8c2f776
      Kees Cook 提交于
      Many architectures have an EXCEPTION_TABLE that needs to be only
      readable. As such, it should live in RO_DATA. Create a macro to identify
      this case for the architectures that can move EXCEPTION_TABLE into
      RO_DATA.
      Signed-off-by: NKees Cook <keescook@chromium.org>
      Signed-off-by: NBorislav Petkov <bp@suse.de>
      Acked-by: NWill Deacon <will@kernel.org>
      Cc: Andy Lutomirski <luto@kernel.org>
      Cc: Arnd Bergmann <arnd@arndb.de>
      Cc: Dave Hansen <dave.hansen@linux.intel.com>
      Cc: linux-alpha@vger.kernel.org
      Cc: linux-arch@vger.kernel.org
      Cc: linux-arm-kernel@lists.infradead.org
      Cc: linux-c6x-dev@linux-c6x.org
      Cc: linux-ia64@vger.kernel.org
      Cc: linuxppc-dev@lists.ozlabs.org
      Cc: linux-s390@vger.kernel.org
      Cc: Michael Ellerman <mpe@ellerman.id.au>
      Cc: Michal Simek <monstr@monstr.eu>
      Cc: Rick Edgecombe <rick.p.edgecombe@intel.com>
      Cc: Segher Boessenkool <segher@kernel.crashing.org>
      Cc: x86-ml <x86@kernel.org>
      Cc: Yoshinori Sato <ysato@users.sourceforge.jp>
      Link: https://lkml.kernel.org/r/20191029211351.13243-15-keescook@chromium.org
      b8c2f776
    • K
      vmlinux.lds.h: Replace RW_DATA_SECTION with RW_DATA · c9174047
      Kees Cook 提交于
      Rename RW_DATA_SECTION to RW_DATA. (Calling this a "section" is a lie,
      since it's multiple sections and section flags cannot be applied to
      the macro.)
      Signed-off-by: NKees Cook <keescook@chromium.org>
      Signed-off-by: NBorislav Petkov <bp@suse.de>
      Acked-by: Heiko Carstens <heiko.carstens@de.ibm.com> # s390
      Acked-by: Geert Uytterhoeven <geert@linux-m68k.org> # m68k
      Cc: Andy Lutomirski <luto@kernel.org>
      Cc: Arnd Bergmann <arnd@arndb.de>
      Cc: Dave Hansen <dave.hansen@linux.intel.com>
      Cc: linux-alpha@vger.kernel.org
      Cc: linux-arch@vger.kernel.org
      Cc: linux-arm-kernel@lists.infradead.org
      Cc: linux-c6x-dev@linux-c6x.org
      Cc: linux-ia64@vger.kernel.org
      Cc: linux-s390@vger.kernel.org
      Cc: linuxppc-dev@lists.ozlabs.org
      Cc: Michael Ellerman <mpe@ellerman.id.au>
      Cc: Michal Simek <monstr@monstr.eu>
      Cc: Rick Edgecombe <rick.p.edgecombe@intel.com>
      Cc: Segher Boessenkool <segher@kernel.crashing.org>
      Cc: Will Deacon <will@kernel.org>
      Cc: x86-ml <x86@kernel.org>
      Cc: Yoshinori Sato <ysato@users.sourceforge.jp>
      Link: https://lkml.kernel.org/r/20191029211351.13243-14-keescook@chromium.org
      c9174047
    • K
      vmlinux.lds.h: Replace RO_DATA_SECTION with RO_DATA · 93240b32
      Kees Cook 提交于
      Finish renaming RO_DATA_SECTION to RO_DATA. (Calling this a "section"
      is a lie, since it's multiple sections and section flags cannot be
      applied to the macro.)
      Signed-off-by: NKees Cook <keescook@chromium.org>
      Signed-off-by: NBorislav Petkov <bp@suse.de>
      Acked-by: Heiko Carstens <heiko.carstens@de.ibm.com> # s390
      Acked-by: Geert Uytterhoeven <geert@linux-m68k.org> # m68k
      Cc: Andy Lutomirski <luto@kernel.org>
      Cc: Arnd Bergmann <arnd@arndb.de>
      Cc: Dave Hansen <dave.hansen@linux.intel.com>
      Cc: linux-alpha@vger.kernel.org
      Cc: linux-arch@vger.kernel.org
      Cc: linux-arm-kernel@lists.infradead.org
      Cc: linux-c6x-dev@linux-c6x.org
      Cc: linux-ia64@vger.kernel.org
      Cc: linux-s390@vger.kernel.org
      Cc: linuxppc-dev@lists.ozlabs.org
      Cc: Michael Ellerman <mpe@ellerman.id.au>
      Cc: Michal Simek <monstr@monstr.eu>
      Cc: Rick Edgecombe <rick.p.edgecombe@intel.com>
      Cc: Segher Boessenkool <segher@kernel.crashing.org>
      Cc: Will Deacon <will@kernel.org>
      Cc: x86-ml <x86@kernel.org>
      Cc: Yoshinori Sato <ysato@users.sourceforge.jp>
      Link: https://lkml.kernel.org/r/20191029211351.13243-13-keescook@chromium.org
      93240b32
    • K
      vmlinux.lds.h: Replace RODATA with RO_DATA · c8231825
      Kees Cook 提交于
      There's no reason to keep the RODATA macro: replace the callers with
      the expected RO_DATA macro.
      Signed-off-by: NKees Cook <keescook@chromium.org>
      Signed-off-by: NBorislav Petkov <bp@suse.de>
      Cc: Andy Lutomirski <luto@kernel.org>
      Cc: Arnd Bergmann <arnd@arndb.de>
      Cc: Dave Hansen <dave.hansen@linux.intel.com>
      Cc: linux-alpha@vger.kernel.org
      Cc: linux-arch@vger.kernel.org
      Cc: linux-arm-kernel@lists.infradead.org
      Cc: linux-c6x-dev@linux-c6x.org
      Cc: linux-ia64@vger.kernel.org
      Cc: linux-s390@vger.kernel.org
      Cc: linuxppc-dev@lists.ozlabs.org
      Cc: Michael Ellerman <mpe@ellerman.id.au>
      Cc: Michal Simek <monstr@monstr.eu>
      Cc: Rick Edgecombe <rick.p.edgecombe@intel.com>
      Cc: Segher Boessenkool <segher@kernel.crashing.org>
      Cc: Will Deacon <will@kernel.org>
      Cc: x86-ml <x86@kernel.org>
      Cc: Yoshinori Sato <ysato@users.sourceforge.jp>
      Link: https://lkml.kernel.org/r/20191029211351.13243-12-keescook@chromium.org
      c8231825
    • K
      vmlinux.lds.h: Move NOTES into RO_DATA · eaf93707
      Kees Cook 提交于
      The .notes section should be non-executable read-only data. As such,
      move it to the RO_DATA macro instead of being per-architecture defined.
      Signed-off-by: NKees Cook <keescook@chromium.org>
      Signed-off-by: NBorislav Petkov <bp@suse.de>
      Acked-by: Heiko Carstens <heiko.carstens@de.ibm.com> # s390
      Cc: Andy Lutomirski <luto@kernel.org>
      Cc: Arnd Bergmann <arnd@arndb.de>
      Cc: Dave Hansen <dave.hansen@linux.intel.com>
      Cc: linux-alpha@vger.kernel.org
      Cc: linux-arch@vger.kernel.org
      Cc: linux-arm-kernel@lists.infradead.org
      Cc: linux-c6x-dev@linux-c6x.org
      Cc: linux-ia64@vger.kernel.org
      Cc: linux-s390@vger.kernel.org
      Cc: linuxppc-dev@lists.ozlabs.org
      Cc: Michael Ellerman <mpe@ellerman.id.au>
      Cc: Michal Simek <monstr@monstr.eu>
      Cc: Rick Edgecombe <rick.p.edgecombe@intel.com>
      Cc: Segher Boessenkool <segher@kernel.crashing.org>
      Cc: Will Deacon <will@kernel.org>
      Cc: x86-ml <x86@kernel.org>
      Cc: Yoshinori Sato <ysato@users.sourceforge.jp>
      Link: https://lkml.kernel.org/r/20191029211351.13243-11-keescook@chromium.org
      eaf93707
    • K
      vmlinux.lds.h: Move Program Header restoration into NOTES macro · fbe6a8e6
      Kees Cook 提交于
      In preparation for moving NOTES into RO_DATA, make the Program Header
      assignment restoration be part of the NOTES macro itself.
      Signed-off-by: NKees Cook <keescook@chromium.org>
      Signed-off-by: NBorislav Petkov <bp@suse.de>
      Acked-by: Heiko Carstens <heiko.carstens@de.ibm.com> # s390
      Cc: Andy Lutomirski <luto@kernel.org>
      Cc: Arnd Bergmann <arnd@arndb.de>
      Cc: Dave Hansen <dave.hansen@linux.intel.com>
      Cc: linux-alpha@vger.kernel.org
      Cc: linux-arch@vger.kernel.org
      Cc: linux-arm-kernel@lists.infradead.org
      Cc: linux-c6x-dev@linux-c6x.org
      Cc: linux-ia64@vger.kernel.org
      Cc: linux-s390@vger.kernel.org
      Cc: linuxppc-dev@lists.ozlabs.org
      Cc: Michael Ellerman <mpe@ellerman.id.au>
      Cc: Michal Simek <monstr@monstr.eu>
      Cc: Rick Edgecombe <rick.p.edgecombe@intel.com>
      Cc: Segher Boessenkool <segher@kernel.crashing.org>
      Cc: Will Deacon <will@kernel.org>
      Cc: x86-ml <x86@kernel.org>
      Cc: Yoshinori Sato <ysato@users.sourceforge.jp>
      Link: https://lkml.kernel.org/r/20191029211351.13243-10-keescook@chromium.org
      fbe6a8e6
    • K
      vmlinux.lds.h: Provide EMIT_PT_NOTE to indicate export of .notes · 441110a5
      Kees Cook 提交于
      In preparation for moving NOTES into RO_DATA, provide a mechanism for
      architectures that want to emit a PT_NOTE Program Header to do so.
      Signed-off-by: NKees Cook <keescook@chromium.org>
      Signed-off-by: NBorislav Petkov <bp@suse.de>
      Acked-by: Heiko Carstens <heiko.carstens@de.ibm.com> # s390
      Cc: Andy Lutomirski <luto@kernel.org>
      Cc: Arnd Bergmann <arnd@arndb.de>
      Cc: Dave Hansen <dave.hansen@linux.intel.com>
      Cc: linux-alpha@vger.kernel.org
      Cc: linux-arch@vger.kernel.org
      Cc: linux-arm-kernel@lists.infradead.org
      Cc: linux-c6x-dev@linux-c6x.org
      Cc: linux-ia64@vger.kernel.org
      Cc: linux-s390@vger.kernel.org
      Cc: linuxppc-dev@lists.ozlabs.org
      Cc: Michael Ellerman <mpe@ellerman.id.au>
      Cc: Michal Simek <monstr@monstr.eu>
      Cc: Rick Edgecombe <rick.p.edgecombe@intel.com>
      Cc: Segher Boessenkool <segher@kernel.crashing.org>
      Cc: Will Deacon <will@kernel.org>
      Cc: x86-ml <x86@kernel.org>
      Cc: Yoshinori Sato <ysato@users.sourceforge.jp>
      Link: https://lkml.kernel.org/r/20191029211351.13243-9-keescook@chromium.org
      441110a5
  15. 20 8月, 2019 1 次提交
  16. 27 6月, 2019 1 次提交
  17. 08 6月, 2019 1 次提交
    • S
      parisc: add dynamic ftrace · 6ca63662
      Sven Schnelle 提交于
      This patch implements dynamic ftrace for PA-RISC. The required mcount
      call sequences can get pretty long, so instead of patching the
      whole call sequence out of the functions, we are using
      -fpatchable-function-entry from gcc. This puts a configurable amount of
      NOPS before/at the start of the function. Taking do_sys_open() as example,
      which would look like this when the call is patched out:
      
      1036b248:       08 00 02 40     nop
      1036b24c:       08 00 02 40     nop
      1036b250:       08 00 02 40     nop
      1036b254:       08 00 02 40     nop
      
      1036b258 <do_sys_open>:
      1036b258:       08 00 02 40     nop
      1036b25c:       08 03 02 41     copy r3,r1
      1036b260:       6b c2 3f d9     stw rp,-14(sp)
      1036b264:       08 1e 02 43     copy sp,r3
      1036b268:       6f c1 01 00     stw,ma r1,80(sp)
      
      When ftrace gets enabled for this function the kernel will patch these
      NOPs to:
      
      1036b248:       10 19 57 20     <address of ftrace>
      1036b24c:       6f c1 00 80     stw,ma r1,40(sp)
      1036b250:       48 21 3f d1     ldw -18(r1),r1
      1036b254:       e8 20 c0 02     bv,n r0(r1)
      
      1036b258 <do_sys_open>:
      1036b258:       e8 3f 1f df     b,l,n .-c,r1
      1036b25c:       08 03 02 41     copy r3,r1
      1036b260:       6b c2 3f d9     stw rp,-14(sp)
      1036b264:       08 1e 02 43     copy sp,r3
      1036b268:       6f c1 01 00     stw,ma r1,80(sp)
      
      So the first NOP in do_sys_open() will be patched to jump backwards into
      some minimal trampoline code which pushes a stackframe, saves r1 which
      holds the return address, loads the address of the real ftrace function,
      and branches to that location. For 64 Bit things are getting a bit more
      complicated (and longer) because we must make sure that the address of
      ftrace location is 8 byte aligned, and the offset passed to ldd for
      fetching the address is 8 byte aligned as well.
      
      Note that gcc has a bug which misplaces the function label, and needs a
      patch to make dynamic ftrace work. See
      https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90751 for details.
      Signed-off-by: NSven Schnelle <svens@stackframe.org>
      Signed-off-by: NHelge Deller <deller@gmx.de>
      6ca63662
  18. 29 5月, 2019 2 次提交
    • J
      srcu: Remove unused vmlinux srcu linker entries · 54e6c11b
      Joel Fernandes (Google) 提交于
      The SRCU for modules optimization (commit title "srcu: Allocate per-CPU
      data for DEFINE_SRCU() in modules") introduced vmlinux linker entries
      which is unused since it applies only to the built-in vmlinux. So remove
      it to prevent any space usage due to the 8 byte alignment it added.
      vmlinux.lds.h has no effect on module loading and is not used for
      building the module object, so the changes were not needed in the first
      place since the optimization is specific to modules.
      
      Tested with SRCU torture_type and rcutorture. Put prints in module
      loader to confirm it is able to find and initialize the srcu structures.
      
      Cc: Josh Triplett <josh@joshtriplett.org>
      Cc: Steven Rostedt <rostedt@goodmis.org>
      Cc: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
      Cc: Lai Jiangshan <jiangshanlai@gmail.com>
      Cc: kernel-team@android.com
      Cc: paulmck@linux.vnet.ibm.com
      Signed-off-by: NJoel Fernandes (Google) <joel@joelfernandes.org>
      Signed-off-by: NPaul E. McKenney <paulmck@linux.ibm.com>
      54e6c11b
    • P
      srcu: Allocate per-CPU data for DEFINE_SRCU() in modules · fe15b50c
      Paul E. McKenney 提交于
      Adding DEFINE_SRCU() or DEFINE_STATIC_SRCU() to a loadable module requires
      that the size of the reserved region be increased, which is not something
      we want to be doing all that often.  One approach would be to require
      that loadable modules define an srcu_struct and invoke init_srcu_struct()
      from their module_init function and cleanup_srcu_struct() from their
      module_exit function.  However, this is more than a bit user unfriendly.
      
      This commit therefore creates an ___srcu_struct_ptrs linker section,
      and pointers to srcu_struct structures created by DEFINE_SRCU() and
      DEFINE_STATIC_SRCU() within a module are placed into that module's
      ___srcu_struct_ptrs section.  The required init_srcu_struct() and
      cleanup_srcu_struct() functions are then automatically invoked as needed
      when that module is loaded and unloaded, thus allowing modules to continue
      to use DEFINE_SRCU() and DEFINE_STATIC_SRCU() while avoiding the need
      to increase the size of the reserved region.
      
      Many of the algorithms and some of the code was cheerfully cherry-picked
      from other code making use of linker sections, perhaps most notably from
      tracepoints.  All bugs are nevertheless the sole property of the author.
      Suggested-by: NMathieu Desnoyers <mathieu.desnoyers@efficios.com>
      [ paulmck: Use __section() and use "default" in srcu_module_notify()'s
        "switch" statement as suggested by Joel Fernandes. ]
      Signed-off-by: NPaul E. McKenney <paulmck@linux.ibm.com>
      Tested-by: NJoel Fernandes (Google) <joel@joelfernandes.org>
      fe15b50c
  19. 07 5月, 2019 1 次提交
    • A
      moduleparam: Save information about built-in modules in separate file · 898490c0
      Alexey Gladkov 提交于
      Problem:
      
      When a kernel module is compiled as a separate module, some important
      information about the kernel module is available via .modinfo section of
      the module.  In contrast, when the kernel module is compiled into the
      kernel, that information is not available.
      
      Information about built-in modules is necessary in the following cases:
      
      1. When it is necessary to find out what additional parameters can be
      passed to the kernel at boot time.
      
      2. When you need to know which module names and their aliases are in
      the kernel. This is very useful for creating an initrd image.
      
      Proposal:
      
      The proposed patch does not remove .modinfo section with module
      information from the vmlinux at the build time and saves it into a
      separate file after kernel linking. So, the kernel does not increase in
      size and no additional information remains in it. Information is stored
      in the same format as in the separate modules (null-terminated string
      array). Because the .modinfo section is already exported with a separate
      modules, we are not creating a new API.
      
      It can be easily read in the userspace:
      
      $ tr '\0' '\n' < modules.builtin.modinfo
      ext4.softdep=pre: crc32c
      ext4.license=GPL
      ext4.description=Fourth Extended Filesystem
      ext4.author=Remy Card, Stephen Tweedie, Andrew Morton, Andreas Dilger, Theodore Ts'o and others
      ext4.alias=fs-ext4
      ext4.alias=ext3
      ext4.alias=fs-ext3
      ext4.alias=ext2
      ext4.alias=fs-ext2
      md_mod.alias=block-major-9-*
      md_mod.alias=md
      md_mod.description=MD RAID framework
      md_mod.license=GPL
      md_mod.parmtype=create_on_open:bool
      md_mod.parmtype=start_dirty_degraded:int
      ...
      Co-Developed-by: NGleb Fotengauer-Malinovskiy <glebfm@altlinux.org>
      Signed-off-by: NGleb Fotengauer-Malinovskiy <glebfm@altlinux.org>
      Signed-off-by: NAlexey Gladkov <gladkov.alexey@gmail.com>
      Acked-by: NJessica Yu <jeyu@kernel.org>
      Signed-off-by: NMasahiro Yamada <yamada.masahiro@socionext.com>
      898490c0
  20. 18 3月, 2019 1 次提交
    • M
      vmlinux.lds.h: drop unused __vermagic · 9672e2cb
      Mathias Krause 提交于
      The reference to '__vermagic' is a relict from v2.5 times. And even
      there it had a very short life time, from v2.5.59 (commit 1d411b80ee18
      ("Module Sanity Check") in the historic tree) to v2.5.69 (commit
      67ac5b866bda ("[PATCH] complete modinfo section")).
      
      Neither current kernels nor modules contain a '__vermagic' section any
      more, so get rid of it.
      Signed-off-by: NMathias Krause <minipli@googlemail.com>
      Cc: Rusty Russell <rusty@rustcorp.com.au>
      Cc: Jessica Yu <jeyu@kernel.org>
      Signed-off-by: NJessica Yu <jeyu@kernel.org>
      9672e2cb
  21. 07 3月, 2019 1 次提交
  22. 12 10月, 2018 2 次提交
  23. 11 10月, 2018 3 次提交
  24. 27 9月, 2018 1 次提交
  25. 22 8月, 2018 1 次提交
  26. 10 7月, 2018 1 次提交
    • R
      iommu: Remove IOMMU_OF_DECLARE · ac6bbf0c
      Rob Herring 提交于
      Now that we use the driver core to stop deferred probe for missing
      drivers, IOMMU_OF_DECLARE can be removed.
      
      This is slightly less optimal than having a list of built-in drivers in
      that we'll now defer probe twice before giving up. This shouldn't have a
      significant impact on boot times as past discussions about deferred
      probe have given no evidence of deferred probe having a substantial
      impact.
      
      Cc: Robin Murphy <robin.murphy@arm.com>
      Cc: Kukjin Kim <kgene@kernel.org>
      Cc: Krzysztof Kozlowski <krzk@kernel.org>
      Cc: Rob Clark <robdclark@gmail.com>
      Cc: Heiko Stuebner <heiko@sntech.de>
      Cc: Frank Rowand <frowand.list@gmail.com>
      Cc: linux-arm-kernel@lists.infradead.org
      Cc: iommu@lists.linux-foundation.org
      Cc: linux-samsung-soc@vger.kernel.org
      Cc: linux-arm-msm@vger.kernel.org
      Cc: linux-rockchip@lists.infradead.org
      Cc: devicetree@vger.kernel.org
      Acked-by: NWill Deacon <will.deacon@arm.com>
      Acked-by: NMarek Szyprowski <m.szyprowski@samsung.com>
      Acked-by: NJoerg Roedel <jroedel@suse.de>
      Signed-off-by: NRob Herring <robh@kernel.org>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      ac6bbf0c
  27. 17 5月, 2018 2 次提交
  28. 23 4月, 2018 1 次提交
    • D
      earlycon: Use a pointer table to fix __earlycon_table stride · dd709e72
      Daniel Kurtz 提交于
      Commit 99492c39 ("earlycon: Fix __earlycon_table stride") tried to fix
      __earlycon_table stride by forcing the earlycon_id struct alignment to 32
      and asking the linker to 32-byte align the __earlycon_table symbol.  This
      fix was based on commit 07fca0e5 ("tracing: Properly align linker
      defined symbols") which tried a similar fix for the tracing subsystem.
      
      However, this fix doesn't quite work because there is no guarantee that
      gcc will place structures packed into an array format.  In fact, gcc 4.9
      chooses to 64-byte align these structs by inserting additional padding
      between the entries because it has no clue that they are supposed to be in
      an array.  If we are unlucky, the linker will assign symbol
      "__earlycon_table" to a 32-byte aligned address which does not correspond
      to the 64-byte aligned contents of section "__earlycon_table".
      
      To address this same problem, the fix to the tracing system was
      subsequently re-implemented using a more robust table of pointers approach
      by commits:
       3d56e331 ("tracing: Replace syscall_meta_data struct array with pointer array")
       65498646 ("tracepoints: Fix section alignment using pointer array")
       e4a9ea5e ("tracing: Replace trace_event struct array with pointer array")
      
      Let's use this same "array of pointers to structs" approach for
      EARLYCON_TABLE.
      
      Fixes: 99492c39 ("earlycon: Fix __earlycon_table stride")
      Signed-off-by: NDaniel Kurtz <djkurtz@chromium.org>
      Suggested-by: NAaron Durbin <adurbin@chromium.org>
      Reviewed-by: NRob Herring <robh@kernel.org>
      Tested-by: NGuenter Roeck <groeck@chromium.org>
      Reviewed-by: NGuenter Roeck <groeck@chromium.org>
      Cc: stable <stable@vger.kernel.org>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      dd709e72