04 Jan, 2019

1 commit

  • Nobody has actually used the type (VERIFY_READ vs VERIFY_WRITE) argument
    of the user address range verification function since we got rid of the
    old racy i386-only code to walk page tables by hand.

    It existed because the original 80386 would not honor the write protect
    bit when in kernel mode, so you had to do COW by hand before doing any
    user access. But we haven't supported that in a long time, and these
    days the 'type' argument is a purely historical artifact.

    A discussion about extending 'user_access_begin()' to do the range
    checking resulted this patch, because there is no way we're going to
    move the old VERIFY_xyz interface to that model. And it's best done at
    the end of the merge window when I've done most of my merges, so let's
    just get this done once and for all.

    This patch was mostly done with a sed-script, with manual fix-ups for
    the cases that weren't of the trivial 'access_ok(VERIFY_xyz' form.

    There were a couple of notable cases:

    - csky still had the old "verify_area()" name as an alias.

    - the iter_iov code had magical hardcoded knowledge of the actual
    values of VERIFY_{READ,WRITE} (not that they mattered, since nothing
    really used it)

    - microblaze used the type argument for a debug printout

    but other than those oddities this should be a total no-op patch.

    I tried to fix up all architectures, did fairly extensive grepping for
    access_ok() uses, and the changes are trivial, but I may have missed
    something. Any missed conversion should be trivially fixable, though.

    Signed-off-by: Linus Torvalds

    Linus Torvalds
     

01 Nov, 2018

1 commit


31 Oct, 2018

1 commit

  • Move remaining definitions and declarations from include/linux/bootmem.h
    into include/linux/memblock.h and remove the redundant header.

    The includes were replaced with the semantic patch below and then
    semi-automated removal of duplicated '#include

    @@
    @@
    - #include
    + #include

    [sfr@canb.auug.org.au: dma-direct: fix up for the removal of linux/bootmem.h]
    Link: http://lkml.kernel.org/r/20181002185342.133d1680@canb.auug.org.au
    [sfr@canb.auug.org.au: powerpc: fix up for removal of linux/bootmem.h]
    Link: http://lkml.kernel.org/r/20181005161406.73ef8727@canb.auug.org.au
    [sfr@canb.auug.org.au: x86/kaslr, ACPI/NUMA: fix for linux/bootmem.h removal]
    Link: http://lkml.kernel.org/r/20181008190341.5e396491@canb.auug.org.au
    Link: http://lkml.kernel.org/r/1536927045-23536-30-git-send-email-rppt@linux.vnet.ibm.com
    Signed-off-by: Mike Rapoport
    Signed-off-by: Stephen Rothwell
    Acked-by: Michal Hocko
    Cc: Catalin Marinas
    Cc: Chris Zankel
    Cc: "David S. Miller"
    Cc: Geert Uytterhoeven
    Cc: Greentime Hu
    Cc: Greg Kroah-Hartman
    Cc: Guan Xuetao
    Cc: Ingo Molnar
    Cc: "James E.J. Bottomley"
    Cc: Jonas Bonn
    Cc: Jonathan Corbet
    Cc: Ley Foon Tan
    Cc: Mark Salter
    Cc: Martin Schwidefsky
    Cc: Matt Turner
    Cc: Michael Ellerman
    Cc: Michal Simek
    Cc: Palmer Dabbelt
    Cc: Paul Burton
    Cc: Richard Kuo
    Cc: Richard Weinberger
    Cc: Rich Felker
    Cc: Russell King
    Cc: Serge Semin
    Cc: Thomas Gleixner
    Cc: Tony Luck
    Cc: Vineet Gupta
    Cc: Yoshinori Sato
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Mike Rapoport
     

29 Oct, 2018

1 commit

  • The c6x is already using memblock and does most of early memory
    reservations with it, so it was only a matter of removing the bootmem
    initialization and handover of the memory from memblock to bootmem.

    Signed-off-by: Mike Rapoport
    Signed-off-by: Mark Salter

    Mike Rapoport
     

05 Oct, 2018

1 commit


02 Oct, 2018

1 commit

  • Using the common build support for built-in dtb files just requires
    adding a .dtb.o target to obj-y.

    The dtb now needs to be copied when unflattened because an init section
    is used now.

    Cc: Mark Salter
    Cc: Aurelien Jacquiot
    Cc: linux-c6x-dev@linux-c6x.org
    Signed-off-by: Rob Herring

    Rob Herring
     

29 Sep, 2018

1 commit

  • Use the for_each_of_cpu_node iterator to iterate over cpu nodes. This
    has the side effect of defaulting to iterating using "cpu" node names
    in preference to the deprecated (for FDT) device_type == "cpu".

    Cc: Mark Salter
    Cc: Aurelien Jacquiot
    Cc: linux-c6x-dev@linux-c6x.org
    Signed-off-by: Rob Herring

    Rob Herring
     

05 Jun, 2018

1 commit

  • …iederm/user-namespace

    Pull siginfo updates from Eric Biederman:
    "This set of changes close the known issues with setting si_code to an
    invalid value, and with not fully initializing struct siginfo. There
    remains work to do on nds32, arc, unicore32, powerpc, arm, arm64, ia64
    and x86 to get the code that generates siginfo into a simpler and more
    maintainable state. Most of that work involves refactoring the signal
    handling code and thus careful code review.

    Also not included is the work to shrink the in kernel version of
    struct siginfo. That depends on getting the number of places that
    directly manipulate struct siginfo under control, as it requires the
    introduction of struct kernel_siginfo for the in kernel things.

    Overall this set of changes looks like it is making good progress, and
    with a little luck I will be wrapping up the siginfo work next
    development cycle"

    * 'siginfo-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace: (46 commits)
    signal/sh: Stop gcc warning about an impossible case in do_divide_error
    signal/mips: Report FPE_FLTUNK for undiagnosed floating point exceptions
    signal/um: More carefully relay signals in relay_signal.
    signal: Extend siginfo_layout with SIL_FAULT_{MCEERR|BNDERR|PKUERR}
    signal: Remove unncessary #ifdef SEGV_PKUERR in 32bit compat code
    signal/signalfd: Add support for SIGSYS
    signal/signalfd: Remove __put_user from signalfd_copyinfo
    signal/xtensa: Use force_sig_fault where appropriate
    signal/xtensa: Consistenly use SIGBUS in do_unaligned_user
    signal/um: Use force_sig_fault where appropriate
    signal/sparc: Use force_sig_fault where appropriate
    signal/sparc: Use send_sig_fault where appropriate
    signal/sh: Use force_sig_fault where appropriate
    signal/s390: Use force_sig_fault where appropriate
    signal/riscv: Replace do_trap_siginfo with force_sig_fault
    signal/riscv: Use force_sig_fault where appropriate
    signal/parisc: Use force_sig_fault where appropriate
    signal/parisc: Use force_sig_mceerr where appropriate
    signal/openrisc: Use force_sig_fault where appropriate
    signal/nios2: Use force_sig_fault where appropriate
    ...

    Linus Torvalds
     

19 May, 2018

1 commit


08 May, 2018

1 commit

  • Most mainstream architectures are using 65536 entries, so lets stick to
    that. If someone is really desperate to override it that can still be
    done through , but I'd rather see a really good
    rationale for that.

    dma_debug_init is now called as a core_initcall, which for many
    architectures means much earlier, and provides dma-debug functionality
    earlier in the boot process. This should be safe as it only relies
    on the memory allocator already being available.

    Signed-off-by: Christoph Hellwig
    Acked-by: Marek Szyprowski
    Reviewed-by: Robin Murphy

    Christoph Hellwig
     

25 Apr, 2018

2 commits

  • Filling in struct siginfo before calling force_sig_info a tedious and
    error prone process, where once in a great while the wrong fields
    are filled out, and siginfo has been inconsistently cleared.

    Simplify this process by using the helper force_sig_fault. Which
    takes as a parameters all of the information it needs, ensures
    all of the fiddly bits of filling in struct siginfo are done properly
    and then calls force_sig_info.

    In short about a 5 line reduction in code for every time force_sig_info
    is called, which makes the calling function clearer.

    Cc: Mark Salter
    Cc: Aurelien Jacquiot
    Cc: linux-c6x-dev@linux-c6x.org
    Signed-off-by: "Eric W. Biederman"

    Eric W. Biederman
     
  • Call clear_siginfo to ensure every stack allocated siginfo is properly
    initialized before being passed to the signal sending functions.

    Note: It is not safe to depend on C initializers to initialize struct
    siginfo on the stack because C is allowed to skip holes when
    initializing a structure.

    The initialization of struct siginfo in tracehook_report_syscall_exit
    was moved from the helper user_single_step_siginfo into
    tracehook_report_syscall_exit itself, to make it clear that the local
    variable siginfo gets fully initialized.

    In a few cases the scope of struct siginfo has been reduced to make it
    clear that siginfo siginfo is not used on other paths in the function
    in which it is declared.

    Instances of using memset to initialize siginfo have been replaced
    with calls clear_siginfo for clarity.

    Signed-off-by: "Eric W. Biederman"

    Eric W. Biederman
     

10 Apr, 2018

1 commit


05 Jan, 2018

1 commit

  • print_symbol() is a very old API that has been obsoleted by %pS format
    specifier in a normal printk() call.

    Replace print_symbol() with a direct printk("%pS") call and avoid
    using continuous lines.

    Link: http://lkml.kernel.org/r/20171211125025.2270-4-sergey.senozhatsky@gmail.com
    To: Andrew Morton
    To: Russell King
    To: Catalin Marinas
    To: Mark Salter
    To: Tony Luck
    To: David Howells
    To: Yoshinori Sato
    To: Guan Xuetao
    To: Borislav Petkov
    To: Greg Kroah-Hartman
    To: Thomas Gleixner
    To: Peter Zijlstra
    To: Vineet Gupta
    To: Fengguang Wu
    Cc: Steven Rostedt
    Cc: Petr Mladek
    Cc: LKML
    Cc: linux-arm-kernel@lists.infradead.org
    Cc: linux-c6x-dev@linux-c6x.org
    Cc: linux-ia64@vger.kernel.org
    Cc: linux-am33-list@redhat.com
    Cc: linux-sh@vger.kernel.org
    Cc: linux-edac@vger.kernel.org
    Cc: x86@kernel.org
    Cc: linux-snps-arc@lists.infradead.org
    Cc: Aurelien Jacquiot
    Signed-off-by: Sergey Senozhatsky
    [pmladek@suse.com: updated commit message]
    Signed-off-by: Petr Mladek

    Sergey Senozhatsky
     

02 Nov, 2017

1 commit

  • Many source files in the tree are missing licensing information, which
    makes it harder for compliance tools to determine the correct license.

    By default all files without license information are under the default
    license of the kernel, which is GPL version 2.

    Update the files which contain no license information with the 'GPL-2.0'
    SPDX license identifier. The SPDX identifier is a legally binding
    shorthand, which can be used instead of the full boiler plate text.

    This patch is based on work done by Thomas Gleixner and Kate Stewart and
    Philippe Ombredanne.

    How this work was done:

    Patches were generated and checked against linux-4.14-rc6 for a subset of
    the use cases:
    - file had no licensing information it it.
    - file was a */uapi/* one with no licensing information in it,
    - file was a */uapi/* one with existing licensing information,

    Further patches will be generated in subsequent months to fix up cases
    where non-standard license headers were used, and references to license
    had to be inferred by heuristics based on keywords.

    The analysis to determine which SPDX License Identifier to be applied to
    a file was done in a spreadsheet of side by side results from of the
    output of two independent scanners (ScanCode & Windriver) producing SPDX
    tag:value files created by Philippe Ombredanne. Philippe prepared the
    base worksheet, and did an initial spot review of a few 1000 files.

    The 4.13 kernel was the starting point of the analysis with 60,537 files
    assessed. Kate Stewart did a file by file comparison of the scanner
    results in the spreadsheet to determine which SPDX license identifier(s)
    to be applied to the file. She confirmed any determination that was not
    immediately clear with lawyers working with the Linux Foundation.

    Criteria used to select files for SPDX license identifier tagging was:
    - Files considered eligible had to be source code files.
    - Make and config files were included as candidates if they contained >5
    lines of source
    - File already had some variant of a license header in it (even if
    Reviewed-by: Philippe Ombredanne
    Reviewed-by: Thomas Gleixner
    Signed-off-by: Greg Kroah-Hartman

    Greg Kroah-Hartman
     

02 May, 2017

2 commits

  • Pull x86 asm updates from Ingo Molnar:
    "The main changes in this cycle were:

    - unwinder fixes and enhancements

    - improve ftrace interaction with the unwinder

    - optimize the code footprint of WARN() and related debugging
    constructs

    - ... plus misc updates, cleanups and fixes"

    * 'x86-asm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (24 commits)
    x86/unwind: Dump all stacks in unwind_dump()
    x86/unwind: Silence more entry-code related warnings
    x86/ftrace: Fix ebp in ftrace_regs_caller that screws up unwinder
    x86/unwind: Remove unused 'sp' parameter in unwind_dump()
    x86/unwind: Prepend hex mask value with '0x' in unwind_dump()
    x86/unwind: Properly zero-pad 32-bit values in unwind_dump()
    x86/unwind: Ensure stack pointer is aligned
    debug: Avoid setting BUGFLAG_WARNING twice
    x86/unwind: Silence entry-related warnings
    x86/unwind: Read stack return address in update_stack_state()
    x86/unwind: Move common code into update_stack_state()
    debug: Fix __bug_table[] in arch linker scripts
    debug: Add _ONCE() logic to report_bug()
    x86/debug: Define BUG() again for !CONFIG_BUG
    x86/debug: Implement __WARN() using UD0
    x86/ftrace: Use Makefile logic instead of #ifdef for compiling ftrace_*.o
    x86/ftrace: Add -mfentry support to x86_32 with DYNAMIC_FTRACE set
    x86/ftrace: Clean up ftrace_regs_caller
    x86/ftrace: Add stack frame pointer to ftrace_caller
    x86/ftrace: Move the ftrace specific code out of entry_32.S
    ...

    Linus Torvalds
     
  • Pull uaccess unification updates from Al Viro:
    "This is the uaccess unification pile. It's _not_ the end of uaccess
    work, but the next batch of that will go into the next cycle. This one
    mostly takes copy_from_user() and friends out of arch/* and gets the
    zero-padding behaviour in sync for all architectures.

    Dealing with the nocache/writethrough mess is for the next cycle;
    fortunately, that's x86-only. Same for cleanups in iov_iter.c (I am
    sold on access_ok() in there, BTW; just not in this pile), same for
    reducing __copy_... callsites, strn*... stuff, etc. - there will be a
    pile about as large as this one in the next merge window.

    This one sat in -next for weeks. -3KLoC"

    * 'work.uaccess' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: (96 commits)
    HAVE_ARCH_HARDENED_USERCOPY is unconditional now
    CONFIG_ARCH_HAS_RAW_COPY_USER is unconditional now
    m32r: switch to RAW_COPY_USER
    hexagon: switch to RAW_COPY_USER
    microblaze: switch to RAW_COPY_USER
    get rid of padding, switch to RAW_COPY_USER
    ia64: get rid of copy_in_user()
    ia64: sanitize __access_ok()
    ia64: get rid of 'segment' argument of __do_{get,put}_user()
    ia64: get rid of 'segment' argument of __{get,put}_user_check()
    ia64: add extable.h
    powerpc: get rid of zeroing, switch to RAW_COPY_USER
    esas2r: don't open-code memdup_user()
    alpha: fix stack smashing in old_adjtimex(2)
    don't open-code kernel_setsockopt()
    mips: switch to RAW_COPY_USER
    mips: get rid of tail-zeroing in primitives
    mips: make copy_from_user() zero tail explicitly
    mips: clean and reorder the forest of macros...
    mips: consolidate __invoke_... wrappers
    ...

    Linus Torvalds
     

03 Apr, 2017

1 commit

  • The kbuild test robot reported this build failure on a number
    of architectures:

    > make.cross ARCH=arm
    > lib/lib.a(bug.o): In function `find_bug':
    > >> lib/bug.c:135: undefined reference to `__start___bug_table'
    > >> lib/bug.c:135: undefined reference to `__stop___bug_table'

    Caused by:

    19d436268dde ("debug: Add _ONCE() logic to report_bug()")

    Which moved the BUG_TABLE from RO_DATA_SECTION() to RW_DATA_SECTION(),
    but a number of architectures don't use RW_DATA_SECTION(), so they
    ended up with no __bug_table[] ...

    Ideally all those would use RW_DATA_SECTION() in their linker scripts,
    but that's for another day.

    Signed-off-by: Peter Zijlstra
    Cc: Linus Torvalds
    Cc: Thomas Gleixner
    Cc: kbuild test robot
    Cc: kbuild-all@01.org
    Cc: tipbuild@zytor.com
    Link: http://lkml.kernel.org/r/20170330154927.o6qmgfp4bdhrajbm@hirez.programming.kicks-ass.net
    Signed-off-by: Ingo Molnar

    Peter Zijlstra
     

29 Mar, 2017

3 commits

  • Merge PTRACE_SETREGSET leakage fixes from Dave Martin:
    "This series is the collection of fixes I proposed on this topic, that
    have not yet appeared upstream or in the stable branches,

    The issue can leak kernel stack, but doesn't appear to allow userspace
    to attack the kernel directly. The affected architectures are c6x,
    h8300, metag, mips and sparc.

    [ Mark Salter points out that c6x has no MMU or other mechanism to
    prevent userspace access to kernel code or data on c6x, but it
    doesn't hurt to clean that case up too. ]

    The bugs arise from use of user_regset_copyin(). Users of
    user_regset_copyin() can work in one of two ways:

    1) Copy directly to thread_struct or equivalent. (This seems to be
    the design assumption of the regset API, and is the most common
    approach.)

    2) Copy to a local variable and then transfer to thread_struct. (A
    significant minority of cases.)

    Buggy code typically involves approach 2"

    * emailed patches from Dave Martin :
    sparc/ptrace: Preserve previous registers for short regset write
    mips/ptrace: Preserve previous registers for short regset write
    metag/ptrace: Reject partial NT_METAG_RPIPE writes
    metag/ptrace: Provide default TXSTATUS for short NT_PRSTATUS
    metag/ptrace: Preserve previous registers for short regset write
    h8300/ptrace: Fix incorrect register transfer count
    c6x/ptrace: Remove useless PTRACE_SETREGSET implementation

    Linus Torvalds
     
  • gpr_set won't work correctly and can never have been tested, and the
    correct behaviour is not clear due to the endianness-dependent task
    layout.

    So, just remove it. The core code will now return -EOPNOTSUPPORT when
    trying to set NT_PRSTATUS on this architecture until/unless a correct
    implementation is supplied.

    Signed-off-by: Dave Martin
    Signed-off-by: Linus Torvalds

    Dave Martin
     
  • Signed-off-by: Al Viro

    Al Viro
     

02 Mar, 2017

3 commits


25 Jan, 2017

1 commit

  • Most dma_map_ops structures are never modified. Constify these
    structures such that these can be write-protected. This patch
    has been generated as follows:

    git grep -l 'struct dma_map_ops' |
    xargs -d\\n sed -i \
    -e 's/struct dma_map_ops/const struct dma_map_ops/g' \
    -e 's/const struct dma_map_ops {/struct dma_map_ops {/g' \
    -e 's/^const struct dma_map_ops;$/struct dma_map_ops;/' \
    -e 's/const const struct dma_map_ops /const struct dma_map_ops /g';
    sed -i -e 's/const \(struct dma_map_ops intel_dma_ops\)/\1/' \
    $(git grep -l 'struct dma_map_ops intel_dma_ops');
    sed -i -e 's/const \(struct dma_map_ops dma_iommu_ops\)/\1/' \
    $(git grep -l 'struct dma_map_ops' | grep ^arch/powerpc);
    sed -i -e '/^struct vmd_dev {$/,/^};$/ s/const \(struct dma_map_ops[[:blank:]]dma_ops;\)/\1/' \
    -e '/^static void vmd_setup_dma_ops/,/^}$/ s/const \(struct dma_map_ops \*dest\)/\1/' \
    -e 's/const \(struct dma_map_ops \*dest = \&vmd->dma_ops\)/\1/' \
    drivers/pci/host/*.c
    sed -i -e '/^void __init pci_iommu_alloc(void)$/,/^}$/ s/dma_ops->/intel_dma_ops./' arch/ia64/kernel/pci-dma.c
    sed -i -e 's/static const struct dma_map_ops sn_dma_ops/static struct dma_map_ops sn_dma_ops/' arch/ia64/sn/pci/pci_dma.c
    sed -i -e 's/(const struct dma_map_ops \*)//' drivers/misc/mic/bus/vop_bus.c

    Signed-off-by: Bart Van Assche
    Reviewed-by: Christoph Hellwig
    Cc: Benjamin Herrenschmidt
    Cc: Boris Ostrovsky
    Cc: David Woodhouse
    Cc: Juergen Gross
    Cc: H. Peter Anvin
    Cc: Ingo Molnar
    Cc: linux-arch@vger.kernel.org
    Cc: linux-kernel@vger.kernel.org
    Cc: Russell King
    Cc: x86@kernel.org
    Signed-off-by: Doug Ledford

    Bart Van Assche
     

25 Dec, 2016

1 commit


15 Dec, 2016

1 commit

  • This change allows us to pass DMA_ATTR_SKIP_CPU_SYNC which allows us to
    avoid invoking cache line invalidation if the driver will just handle it
    later via a sync_for_cpu or sync_for_device call.

    Link: http://lkml.kernel.org/r/20161110113442.76501.7673.stgit@ahduyck-blue-test.jf.intel.com
    Signed-off-by: Alexander Duyck
    Acked-by: Mark Salter
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Alexander Duyck
     

08 Oct, 2016

1 commit

  • When doing an nmi backtrace of many cores, most of which are idle, the
    output is a little overwhelming and very uninformative. Suppress
    messages for cpus that are idling when they are interrupted and just
    emit one line, "NMI backtrace for N skipped: idling at pc 0xNNN".

    We do this by grouping all the cpuidle code together into a new
    .cpuidle.text section, and then checking the address of the interrupted
    PC to see if it lies within that section.

    This commit suitably tags x86 and tile idle routines, and only adds in
    the minimal framework for other architectures.

    Link: http://lkml.kernel.org/r/1472487169-14923-5-git-send-email-cmetcalf@mellanox.com
    Signed-off-by: Chris Metcalf
    Acked-by: Peter Zijlstra (Intel)
    Tested-by: Peter Zijlstra (Intel)
    Tested-by: Daniel Thompson [arm]
    Tested-by: Petr Mladek
    Cc: Aaron Tomlin
    Cc: Peter Zijlstra (Intel)
    Cc: "Rafael J. Wysocki"
    Cc: Russell King
    Cc: Thomas Gleixner
    Cc: Ingo Molnar
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Chris Metcalf
     

04 Aug, 2016

1 commit

  • The dma-mapping core and the implementations do not change the DMA
    attributes passed by pointer. Thus the pointer can point to const data.
    However the attributes do not have to be a bitfield. Instead unsigned
    long will do fine:

    1. This is just simpler. Both in terms of reading the code and setting
    attributes. Instead of initializing local attributes on the stack
    and passing pointer to it to dma_set_attr(), just set the bits.

    2. It brings safeness and checking for const correctness because the
    attributes are passed by value.

    Semantic patches for this change (at least most of them):

    virtual patch
    virtual context

    @r@
    identifier f, attrs;

    @@
    f(...,
    - struct dma_attrs *attrs
    + unsigned long attrs
    , ...)
    {
    ...
    }

    @@
    identifier r.f;
    @@
    f(...,
    - NULL
    + 0
    )

    and

    // Options: --all-includes
    virtual patch
    virtual context

    @r@
    identifier f, attrs;
    type t;

    @@
    t f(..., struct dma_attrs *attrs);

    @@
    identifier r.f;
    @@
    f(...,
    - NULL
    + 0
    )

    Link: http://lkml.kernel.org/r/1468399300-5399-2-git-send-email-k.kozlowski@samsung.com
    Signed-off-by: Krzysztof Kozlowski
    Acked-by: Vineet Gupta
    Acked-by: Robin Murphy
    Acked-by: Hans-Christian Noren Egtvedt
    Acked-by: Mark Salter [c6x]
    Acked-by: Jesper Nilsson [cris]
    Acked-by: Daniel Vetter [drm]
    Reviewed-by: Bart Van Assche
    Acked-by: Joerg Roedel [iommu]
    Acked-by: Fabien Dessenne [bdisp]
    Reviewed-by: Marek Szyprowski [vb2-core]
    Acked-by: David Vrabel [xen]
    Acked-by: Konrad Rzeszutek Wilk [xen swiotlb]
    Acked-by: Joerg Roedel [iommu]
    Acked-by: Richard Kuo [hexagon]
    Acked-by: Geert Uytterhoeven [m68k]
    Acked-by: Gerald Schaefer [s390]
    Acked-by: Bjorn Andersson
    Acked-by: Hans-Christian Noren Egtvedt [avr32]
    Acked-by: Vineet Gupta [arc]
    Acked-by: Robin Murphy [arm64 and dma-iommu]
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Krzysztof Kozlowski
     

21 May, 2016

1 commit

  • Define HAVE_EXIT_THREAD for archs which want to do something in
    exit_thread. For others, let's define exit_thread as an empty inline.

    This is a cleanup before we change the prototype of exit_thread to
    accept a task parameter.

    [akpm@linux-foundation.org: fix mips]
    Signed-off-by: Jiri Slaby
    Cc: "David S. Miller"
    Cc: "H. Peter Anvin"
    Cc: "James E.J. Bottomley"
    Cc: Aurelien Jacquiot
    Cc: Benjamin Herrenschmidt
    Cc: Catalin Marinas
    Cc: Chen Liqin
    Cc: Chris Metcalf
    Cc: Chris Zankel
    Cc: David Howells
    Cc: Fenghua Yu
    Cc: Geert Uytterhoeven
    Cc: Guan Xuetao
    Cc: Haavard Skinnemoen
    Cc: Hans-Christian Egtvedt
    Cc: Heiko Carstens
    Cc: Helge Deller
    Cc: Ingo Molnar
    Cc: Ivan Kokshaysky
    Cc: James Hogan
    Cc: Jeff Dike
    Cc: Jesper Nilsson
    Cc: Jiri Slaby
    Cc: Jonas Bonn
    Cc: Koichi Yasutake
    Cc: Lennox Wu
    Cc: Ley Foon Tan
    Cc: Mark Salter
    Cc: Martin Schwidefsky
    Cc: Matt Turner
    Cc: Max Filippov
    Cc: Michael Ellerman
    Cc: Michal Simek
    Cc: Mikael Starvik
    Cc: Paul Mackerras
    Cc: Peter Zijlstra
    Cc: Ralf Baechle
    Cc: Rich Felker
    Cc: Richard Henderson
    Cc: Richard Kuo
    Cc: Richard Weinberger
    Cc: Russell King
    Cc: Steven Miao
    Cc: Thomas Gleixner
    Cc: Tony Luck
    Cc: Vineet Gupta
    Cc: Will Deacon
    Cc: Yoshinori Sato
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jiri Slaby
     

26 Mar, 2016

1 commit

  • KASAN needs to know whether the allocation happens in an IRQ handler.
    This lets us strip everything below the IRQ entry point to reduce the
    number of unique stack traces needed to be stored.

    Move the definition of __irq_entry to so that the
    users don't need to pull in . Also introduce the
    __softirq_entry macro which is similar to __irq_entry, but puts the
    corresponding functions to the .softirqentry.text section.

    Signed-off-by: Alexander Potapenko
    Acked-by: Steven Rostedt
    Cc: Christoph Lameter
    Cc: Pekka Enberg
    Cc: David Rientjes
    Cc: Joonsoo Kim
    Cc: Andrey Konovalov
    Cc: Dmitry Vyukov
    Cc: Andrey Ryabinin
    Cc: Konstantin Serebryany
    Cc: Dmitry Chernenkov
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Alexander Potapenko
     

09 Feb, 2016

1 commit

  • Lockdep is initialized at compile time now. Get rid of lockdep_init().

    Signed-off-by: Andrey Ryabinin
    Signed-off-by: Andrew Morton
    Cc: Linus Torvalds
    Cc: Mike Krinkin
    Cc: Paul E. McKenney
    Cc: Peter Zijlstra
    Cc: Thomas Gleixner
    Cc: linux-kernel@vger.kernel.org
    Cc: mm-commits@vger.kernel.org
    Signed-off-by: Ingo Molnar

    Andrey Ryabinin
     

21 Jan, 2016

1 commit

  • [dan.carpenter@oracle.com: C6X: fix build breakage]
    Signed-off-by: Christoph Hellwig
    Cc: Mark Salter
    Cc: Aurelien Jacquiot
    Cc: Christian Borntraeger
    Cc: Joerg Roedel
    Cc: Sebastian Ott
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Christoph Hellwig
     

17 Apr, 2015

1 commit

  • Pull arch/c6x fixes from Mark Salter.

    * tag 'for-linus' of git://linux-c6x.org/git/projects/linux-c6x-upstreaming:
    c6x: platforms: cache: Export symbol L1P_cache_block_invalidate and L1D_cache_block_writeback
    c6x: kernel: setup: Export symbol memory_end
    c6x: kernel: setup: Add screen_info global variable
    c6x: include: asm: Kbuild: Add generic serial.h
    c6x: include: asm: dma-mapping: Add dummy dma_sync_single_range_for_device
    c6x: include: asm: setup: Include "linux/types.h"
    c6x: asm: Add default flat.h according to xtensa architecture
    c6x: kernel: setup: Remove 'const' for local variables in machine_init
    c6x: Makefile: Add -D__linux__
    C6x: time: Ensure consistency in __init
    c6x: kernel: setup: Include "linux/console.h"

    Linus Torvalds
     

12 Apr, 2015

1 commit


26 Mar, 2015

4 commits

  • It is needed by several modules, the related error with allmodconfig:

    MODPOST 3327 modules
    ERROR: "memory_end" [net/wireless/lib80211_crypt_tkip.ko] undefined!
    ERROR: "memory_end" [net/sunrpc/sunrpc.ko] undefined!
    ERROR: "memory_end" [net/sunrpc/auth_gss/rpcsec_gss_krb5.ko] undefined!
    ERROR: "memory_end" [net/rxrpc/rxkad.ko] undefined!
    ERROR: "memory_end" [net/mac802154/mac802154.ko] undefined!
    ERROR: "memory_end" [net/mac80211/mac80211.ko] undefined!
    ERROR: "memory_end" [net/ipv6/esp6.ko] undefined!
    ERROR: "memory_end" [net/ipv6/ah6.ko] undefined!
    ERROR: "memory_end" [net/ipv4/esp4.ko] undefined!
    ERROR: "memory_end" [net/ipv4/ah4.ko] undefined!
    ERROR: "memory_end" [net/ceph/libceph.ko] undefined!
    ERROR: "memory_end" [net/9p/9pnet_virtio.ko] undefined!
    ERROR: "memory_end" [drivers/usb/wusbcore/wusbcore.ko] undefined!
    ERROR: "memory_end" [drivers/usb/misc/usbtest.ko] undefined!
    ERROR: "memory_end" [drivers/usb/core/usbcore.ko] undefined!
    ERROR: "memory_end" [drivers/target/target_core_file.ko] undefined!
    ERROR: "memory_end" [drivers/net/wireless/brcm80211/brcmfmac/brcmfmac.ko] undefined!
    ERROR: "memory_end" [drivers/net/wireless/ath/ath6kl/ath6kl_sdio.ko] undefined!
    ERROR: "memory_end" [drivers/net/virtio_net.ko] undefined!
    ERROR: "memory_end" [drivers/net/usb/usbnet.ko] undefined!
    ERROR: "memory_end" [drivers/net/ppp/ppp_mppe.ko] undefined!
    ERROR: "memory_end" [drivers/mtd/nand/nand.ko] undefined!
    ERROR: "memory_end" [drivers/mmc/card/mmc_block.ko] undefined!
    ERROR: "memory_end" [drivers/crypto/qce/qcrypto.ko] undefined!
    ERROR: "memory_end" [drivers/block/drbd/drbd.ko] undefined!
    ERROR: "memory_end" [drivers/block/aoe/aoe.ko] undefined!
    ERROR: "memory_end" [crypto/tcrypt.ko] undefined!
    ERROR: "memory_end" [crypto/gcm.ko] undefined!
    ERROR: "memory_end" [crypto/cts.ko] undefined!
    ERROR: "memory_end" [crypto/ccm.ko] undefined!
    ERROR: "memory_end" [crypto/authencesn.ko] undefined!
    ERROR: "memory_end" [crypto/authenc.ko] undefined!

    Signed-off-by: Chen Gang
    Signed-off-by: Mark Salter

    Chen Gang
     
  • Or can not pass building with allmodconfig:

    LD init/built-in.o
    drivers/built-in.o: In function `vgacon_switch':
    vgacon.c:(.text+0x47f8): undefined reference to `screen_info'
    vgacon.c:(.text+0x4810): undefined reference to `screen_info'
    drivers/built-in.o: In function `vgacon_resize':
    vgacon.c:(.text+0x4ac8): undefined reference to `screen_info'
    vgacon.c:(.text+0x4acc): undefined reference to `screen_info'
    drivers/built-in.o: In function `vgacon_save_screen':
    vgacon.c:(.text+0x4cc8): undefined reference to `screen_info'
    drivers/built-in.o:vgacon.c:(.text+0x4cd0): more undefined references to `screen_info' follow

    Signed-off-by: Chen Gang
    Signed-off-by: Mark Salter

    Chen Gang
     
  • early_init_dt_scan() accepts "void *", the related warning:

    CC arch/c6x/kernel/setup.o
    arch/c6x/kernel/setup.c: In function 'machine_init':
    arch/c6x/kernel/setup.c:290:21: warning: passing argument 1 of 'early_init_dt_scan' discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
    early_init_dt_scan(fdt);
    ^
    In file included from arch/c6x/kernel/setup.c:19:0:
    include/linux/of_fdt.h:75:13: note: expected 'void *' but argument is of type 'const void *'
    extern bool early_init_dt_scan(void *params);
    ^

    Signed-off-by: Chen Gang
    Signed-off-by: Mark Salter

    Chen Gang
     
  • time_init invokes timer64_init (which is __init annotation)
    since all of these are invoked at init time, lets maintain
    consistency by ensuring time_init is marked appropriately
    as well.

    This fixes the following warning with CONFIG_DEBUG_SECTION_MISMATCH=y

    WARNING: vmlinux.o(.text+0x3bfc): Section mismatch in reference from the function time_init() to the function .init.text:timer64_init()
    The function time_init() references
    the function __init timer64_init().
    This is often because time_init lacks a __init
    annotation or the annotation of timer64_init is wrong.

    Fixes: 546a39546c64 ("C6X: time management")
    Signed-off-by: Nishanth Menon
    Signed-off-by: Mark Salter

    Nishanth Menon
     

04 Mar, 2015

1 commit

  • Or c6x will cause building break for allmodconfig, the related error:

    CC arch/c6x/kernel/setup.o
    arch/c6x/kernel/setup.c: In function 'setup_arch':
    arch/c6x/kernel/setup.c:433:2: error: 'conswitchp' undeclared (first use in this function)
    conswitchp = &dummy_con;
    ^
    arch/c6x/kernel/setup.c:433:2: note: each undeclared identifier is reported only once for each function it appears in
    arch/c6x/kernel/setup.c:433:16: error: 'dummy_con' undeclared (first use in this function)
    conswitchp = &dummy_con;
    ^

    Signed-off-by: Chen Gang
    [removed unnecessary #ifdef around include]
    Signed-off-by: Mark Salter

    Chen Gang