02 Feb, 2018

3 commits

  • Pull clk updates from Stephen Boyd:
    "The core framework has a handful of patches this time around, mostly
    due to the clk rate protection support added by Jerome Brunet.

    This feature will allow consumers to lock in a certain rate on the
    output of a clk so that things like audio playback don't hear pops
    when the clk frequency changes due to shared parent clks changing
    rates. Currently the clk API doesn't guarantee the rate of a clk stays
    at the rate you request after clk_set_rate() is called, so this new
    API will allow drivers to express that requirement.

    Beyond this, the core got some debugfs pretty printing patches and a
    couple minor non-critical fixes.

    Looking outside of the core framework diff we have some new driver
    additions and the removal of a legacy TI clk driver. Both of these hit
    high in the dirstat. Also, the removal of the asm-generic/clkdev.h
    file causes small one-liners in all the architecture Kbuild files.

    Overall, the driver diff seems to be the normal stuff that comes all
    the time to fix little problems here and there and to support new
    hardware.

    Summary:

    Core:
    - Clk rate protection
    - Symbolic clk flags in debugfs output
    - Clk registration enabled clks while doing bookkeeping updates

    New Drivers:
    - Spreadtrum SC9860
    - HiSilicon hi3660 stub
    - Qualcomm A53 PLL, SPMI clkdiv, and MSM8916 APCS
    - Amlogic Meson-AXG
    - ASPEED BMC

    Removed Drivers:
    - TI OMAP 3xxx legacy clk (non-DT) support
    - asm*/clkdev.h got removed (not really a driver)

    Updates:
    - Renesas FDP1-0 module clock on R-Car M3-W
    - Renesas LVDS module clock on R-Car V3M
    - Misc fixes to pr_err() prints
    - Qualcomm MSM8916 audio fixes
    - Qualcomm IPQ8074 rounded out support for more peripherals
    - Qualcomm Alpha PLL variants
    - Divider code was using container_of() on bad pointers
    - Allwinner DE2 clks on H3
    - Amlogic minor data fixes and dropping of CLK_IGNORE_UNUSED
    - Mediatek clk driver compile test support
    - AT91 PMC clk suspend/resume restoration support
    - PLL issues fixed on si5351
    - Broadcom IProc PLL calculation updates
    - DVFS support for Armada mvebu CPU clks
    - Allwinner fixed post-divider support
    - TI clkctrl fixes and support for newer SoCs"

    * tag 'clk-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/clk/linux: (125 commits)
    clk: aspeed: Handle inverse polarity of USB port 1 clock gate
    clk: aspeed: Fix return value check in aspeed_cc_init()
    clk: aspeed: Add reset controller
    clk: aspeed: Register gated clocks
    clk: aspeed: Add platform driver and register PLLs
    clk: aspeed: Register core clocks
    clk: Add clock driver for ASPEED BMC SoCs
    clk: mediatek: adjust dependency of reset.c to avoid unexpectedly being built
    clk: fix reentrancy of clk_enable() on UP systems
    clk: meson-axg: fix potential NULL dereference in axg_clkc_probe()
    clk: Simplify debugfs registration
    clk: Fix debugfs_create_*() usage
    clk: Show symbolic clock flags in debugfs
    clk: renesas: r8a7796: Add FDP clock
    clk: Move __clk_{get,put}() into private clk.h API
    clk: sunxi: Use CLK_IS_CRITICAL flag for critical clks
    clk: Improve flags doc for of_clk_detect_critical()
    arch: Remove clkdev.h asm-generic from Kbuild
    clk: sunxi-ng: a83t: Add M divider to TCON1 clock
    clk: Prepare to remove asm-generic/clkdev.h
    ...

    Linus Torvalds
     
  • Pull printk updates from Petr Mladek:

    - Add a console_msg_format command line option:

    The value "default" keeps the old "[time stamp] text\n" format. The
    value "syslog" allows to see the syslog-like "[timestamp] text" format.

    This feature was requested by people doing regression tests, for
    example, 0day robot. They want to have both filtered and full logs
    at hands.

    - Reduce the risk of softlockup:

    Pass the console owner in a busy loop.

    This is a new approach to the old problem. It was first proposed by
    Steven Rostedt on Kernel Summit 2017. It marks a context in which
    the console_lock owner calls console drivers and could not sleep.
    On the other side, printk() callers could detect this state and use
    a busy wait instead of a simple console_trylock(). Finally, the
    console_lock owner checks if there is a busy waiter at the end of
    the special context and eventually passes the console_lock to the
    waiter.

    The hand-off works surprisingly well and helps in many situations.
    Well, there is still a possibility of the softlockup, for example,
    when the flood of messages stops and the last owner still has too
    much to flush.

    There is increasing number of people having problems with
    printk-related softlockups. We might eventually need to get better
    solution. Anyway, this looks like a good start and promising
    direction.

    - Do not allow to schedule in console_unlock() called from printk():

    This reverts an older controversial commit. The reschedule helped
    to avoid softlockups. But it also slowed down the console output.
    This patch is obsoleted by the new console waiter logic described
    above. In fact, the reschedule made the hand-off less effective.

    - Deprecate "%pf" and "%pF" format specifier:

    It was needed on ia64, ppc64 and parisc64 to dereference function
    descriptors and show the real function address. It is done
    transparently by "%ps" and "pS" format specifier now.

    Sergey Senozhatsky found that all the function descriptors were in
    a special elf section and could be easily detected.

    - Remove printk_symbol() API:

    It has been obsoleted by "%pS" format specifier, and this change
    helped to remove few continuous lines and a less intuitive old API.

    - Remove redundant memsets:

    Sergey removed unnecessary memset when processing printk.devkmsg
    command line option.

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/pmladek/printk: (27 commits)
    printk: drop redundant devkmsg_log_str memsets
    printk: Never set console_may_schedule in console_trylock()
    printk: Hide console waiter logic into helpers
    printk: Add console owner and waiter logic to load balance console writes
    kallsyms: remove print_symbol() function
    checkpatch: add pF/pf deprecation warning
    symbol lookup: introduce dereference_symbol_descriptor()
    parisc64: Add .opd based function descriptor dereference
    powerpc64: Add .opd based function descriptor dereference
    ia64: Add .opd based function descriptor dereference
    sections: split dereference_function_descriptor()
    openrisc: Fix conflicting types for _exext and _stext
    lib: do not use print_symbol()
    irq debug: do not use print_symbol()
    sysfs: do not use print_symbol()
    drivers: do not use print_symbol()
    x86: do not use print_symbol()
    unicore32: do not use print_symbol()
    sh: do not use print_symbol()
    mn10300: do not use print_symbol()
    ...

    Linus Torvalds
     
  • Pull driver core updates from Greg KH:
    "Here is the set of "big" driver core patches for 4.16-rc1.

    The majority of the work here is in the firmware subsystem, with
    reworks to try to attempt to make the code easier to handle in the
    long run, but no functional change. There's also some tree-wide sysfs
    attribute fixups with lots of acks from the various subsystem
    maintainers, as well as a handful of other normal fixes and changes.

    And finally, some license cleanups for the driver core and sysfs code.

    All have been in linux-next for a while with no reported issues"

    * tag 'driver-core-4.16-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core: (48 commits)
    device property: Define type of PROPERTY_ENRTY_*() macros
    device property: Reuse property_entry_free_data()
    device property: Move property_entry_free_data() upper
    firmware: Fix up docs referring to FIRMWARE_IN_KERNEL
    firmware: Drop FIRMWARE_IN_KERNEL Kconfig option
    USB: serial: keyspan: Drop firmware Kconfig options
    sysfs: remove DEBUG defines
    sysfs: use SPDX identifiers
    drivers: base: add coredump driver ops
    sysfs: add attribute specification for /sysfs/devices/.../coredump
    test_firmware: fix missing unlock on error in config_num_requests_store()
    test_firmware: make local symbol test_fw_config static
    sysfs: turn WARN() into pr_warn()
    firmware: Fix a typo in fallback-mechanisms.rst
    treewide: Use DEVICE_ATTR_WO
    treewide: Use DEVICE_ATTR_RO
    treewide: Use DEVICE_ATTR_RW
    sysfs.h: Use octal permissions
    component: add debugfs support
    bus: simple-pm-bus: convert bool SIMPLE_PM_BUS to tristate
    ...

    Linus Torvalds
     

01 Feb, 2018

1 commit

  • Pull dma mapping updates from Christoph Hellwig:
    "Except for a runtime warning fix from Christian this is all about
    consolidation of the generic no-IOMMU code, a well as the glue code
    for swiotlb.

    All the code is based on the x86 implementation with hooks to allow
    all architectures that aren't cache coherent to use it.

    The x86 conversion itself has been deferred because the x86
    maintainers were a little busy in the last months"

    * tag 'dma-mapping-4.16' of git://git.infradead.org/users/hch/dma-mapping: (57 commits)
    MAINTAINERS: add the iommu list for swiotlb and xen-swiotlb
    arm64: use swiotlb_alloc and swiotlb_free
    arm64: replace ZONE_DMA with ZONE_DMA32
    mips: use swiotlb_{alloc,free}
    mips/netlogic: remove swiotlb support
    tile: use generic swiotlb_ops
    tile: replace ZONE_DMA with ZONE_DMA32
    unicore32: use generic swiotlb_ops
    ia64: remove an ifdef around the content of pci-dma.c
    ia64: clean up swiotlb support
    ia64: use generic swiotlb_ops
    ia64: replace ZONE_DMA with ZONE_DMA32
    swiotlb: remove various exports
    swiotlb: refactor coherent buffer allocation
    swiotlb: refactor coherent buffer freeing
    swiotlb: wire up ->dma_supported in swiotlb_dma_ops
    swiotlb: add common swiotlb_map_ops
    swiotlb: rename swiotlb_free to swiotlb_exit
    x86: rename swiotlb_dma_ops
    powerpc: rename swiotlb_dma_ops
    ...

    Linus Torvalds
     

31 Jan, 2018

3 commits

  • Pull poll annotations from Al Viro:
    "This introduces a __bitwise type for POLL### bitmap, and propagates
    the annotations through the tree. Most of that stuff is as simple as
    'make ->poll() instances return __poll_t and do the same to local
    variables used to hold the future return value'.

    Some of the obvious brainos found in process are fixed (e.g. POLLIN
    misspelled as POLL_IN). At that point the amount of sparse warnings is
    low and most of them are for genuine bugs - e.g. ->poll() instance
    deciding to return -EINVAL instead of a bitmap. I hadn't touched those
    in this series - it's large enough as it is.

    Another problem it has caught was eventpoll() ABI mess; select.c and
    eventpoll.c assumed that corresponding POLL### and EPOLL### were
    equal. That's true for some, but not all of them - EPOLL### are
    arch-independent, but POLL### are not.

    The last commit in this series separates userland POLL### values from
    the (now arch-independent) kernel-side ones, converting between them
    in the few places where they are copied to/from userland. AFAICS, this
    is the least disruptive fix preserving poll(2) ABI and making epoll()
    work on all architectures.

    As it is, it's simply broken on sparc - try to give it EPOLLWRNORM and
    it will trigger only on what would've triggered EPOLLWRBAND on other
    architectures. EPOLLWRBAND and EPOLLRDHUP, OTOH, are never triggered
    at all on sparc. With this patch they should work consistently on all
    architectures"

    * 'misc.poll' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: (37 commits)
    make kernel-side POLL... arch-independent
    eventpoll: no need to mask the result of epi_item_poll() again
    eventpoll: constify struct epoll_event pointers
    debugging printk in sg_poll() uses %x to print POLL... bitmap
    annotate poll(2) guts
    9p: untangle ->poll() mess
    ->si_band gets POLL... bitmap stored into a user-visible long field
    ring_buffer_poll_wait() return value used as return value of ->poll()
    the rest of drivers/*: annotate ->poll() instances
    media: annotate ->poll() instances
    fs: annotate ->poll() instances
    ipc, kernel, mm: annotate ->poll() instances
    net: annotate ->poll() instances
    apparmor: annotate ->poll() instances
    tomoyo: annotate ->poll() instances
    sound: annotate ->poll() instances
    acpi: annotate ->poll() instances
    crypto: annotate ->poll() instances
    block: annotate ->poll() instances
    x86: annotate ->poll() instances
    ...

    Linus Torvalds
     
  • …iederm/user-namespace

    Pull siginfo cleanups from Eric Biederman:
    "Long ago when 2.4 was just a testing release copy_siginfo_to_user was
    made to copy individual fields to userspace, possibly for efficiency
    and to ensure initialized values were not copied to userspace.

    Unfortunately the design was complex, it's assumptions unstated, and
    humans are fallible and so while it worked much of the time that
    design failed to ensure unitialized memory is not copied to userspace.

    This set of changes is part of a new design to clean up siginfo and
    simplify things, and hopefully make the siginfo handling robust enough
    that a simple inspection of the code can be made to ensure we don't
    copy any unitializied fields to userspace.

    The design is to unify struct siginfo and struct compat_siginfo into a
    single definition that is shared between all architectures so that
    anyone adding to the set of information shared with struct siginfo can
    see the whole picture. Hopefully ensuring all future si_code
    assignments are arch independent.

    The design is to unify copy_siginfo_to_user32 and
    copy_siginfo_from_user32 so that those function are complete and cope
    with all of the different cases documented in signinfo_layout. I don't
    think there was a single implementation of either of those functions
    that was complete and correct before my changes unified them.

    The design is to introduce a series of helpers including
    force_siginfo_fault that take the values that are needed in struct
    siginfo and build the siginfo structure for their callers. Ensuring
    struct siginfo is built correctly.

    The remaining work for 4.17 (unless someone thinks it is post -rc1
    material) is to push usage of those helpers down into the
    architectures so that architecture specific code will not need to deal
    with the fiddly work of intializing struct siginfo, and then when
    struct siginfo is guaranteed to be fully initialized change copy
    siginfo_to_user into a simple wrapper around copy_to_user.

    Further there is work in progress on the issues that have been
    documented requires arch specific knowledge to sort out.

    The changes below fix or at least document all of the issues that have
    been found with siginfo generation. Then proceed to unify struct
    siginfo the 32 bit helpers that copy siginfo to and from userspace,
    and generally clean up anything that is not arch specific with regards
    to siginfo generation.

    It is a lot but with the unification you can of siginfo you can
    already see the code reduction in the kernel"

    * 'siginfo-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace: (45 commits)
    signal/memory-failure: Use force_sig_mceerr and send_sig_mceerr
    mm/memory_failure: Remove unused trapno from memory_failure
    signal/ptrace: Add force_sig_ptrace_errno_trap and use it where needed
    signal/powerpc: Remove unnecessary signal_code parameter of do_send_trap
    signal: Helpers for faults with specialized siginfo layouts
    signal: Add send_sig_fault and force_sig_fault
    signal: Replace memset(info,...) with clear_siginfo for clarity
    signal: Don't use structure initializers for struct siginfo
    signal/arm64: Better isolate the COMPAT_TASK portion of ptrace_hbptriggered
    ptrace: Use copy_siginfo in setsiginfo and getsiginfo
    signal: Unify and correct copy_siginfo_to_user32
    signal: Remove the code to clear siginfo before calling copy_siginfo_from_user32
    signal: Unify and correct copy_siginfo_from_user32
    signal/blackfin: Remove pointless UID16_SIGINFO_COMPAT_NEEDED
    signal/blackfin: Move the blackfin specific si_codes to asm-generic/siginfo.h
    signal/tile: Move the tile specific si_codes to asm-generic/siginfo.h
    signal/frv: Move the frv specific si_codes to asm-generic/siginfo.h
    signal/ia64: Move the ia64 specific si_codes to asm-generic/siginfo.h
    signal/powerpc: Remove redefinition of NSIGTRAP on powerpc
    signal: Move addr_lsb into the _sigfault union for clarity
    ...

    Linus Torvalds
     
  • Pull RCU updates from Ingo Molnar:
    "The main RCU changes in this cycle were:

    - Updates to use cond_resched() instead of cond_resched_rcu_qs()
    where feasible (currently everywhere except in kernel/rcu and in
    kernel/torture.c). Also a couple of fixes to avoid sending IPIs to
    offline CPUs.

    - Updates to simplify RCU's dyntick-idle handling.

    - Updates to remove almost all uses of smp_read_barrier_depends() and
    read_barrier_depends().

    - Torture-test updates.

    - Miscellaneous fixes"

    * 'core-rcu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (72 commits)
    torture: Save a line in stutter_wait(): while -> for
    torture: Eliminate torture_runnable and perf_runnable
    torture: Make stutter less vulnerable to compilers and races
    locking/locktorture: Fix num reader/writer corner cases
    locking/locktorture: Fix rwsem reader_delay
    torture: Place all torture-test modules in one MAINTAINERS group
    rcutorture/kvm-build.sh: Skip build directory check
    rcutorture: Simplify functions.sh include path
    rcutorture: Simplify logging
    rcutorture/kvm-recheck-*: Improve result directory readability check
    rcutorture/kvm.sh: Support execution from any directory
    rcutorture/kvm.sh: Use consistent help text for --qemu-args
    rcutorture/kvm.sh: Remove unused variable, `alldone`
    rcutorture: Remove unused script, config2frag.sh
    rcutorture/configinit: Fix build directory error message
    rcutorture: Preempt RCU-preempt readers more vigorously
    torture: Reduce #ifdefs for preempt_schedule()
    rcu: Remove have_rcu_nocb_mask from tree_plugin.h
    rcu: Add comment giving debug strategy for double call_rcu()
    tracing, rcu: Hide trace event rcu_nocb_wake when not used
    ...

    Linus Torvalds
     

25 Jan, 2018

1 commit

  • It doesn't actually do anything. Merge its help text into
    EXTRA_FIRMWARE.

    Fixes: 5620a0d1aacd ("firmware: delete in-kernel firmware")
    Fixes: 0946b2fb38fd ("firmware: cleanup FIRMWARE_IN_KERNEL message")
    Signed-off-by: Benjamin Gilbert
    Signed-off-by: Robin H. Johnson
    Signed-off-by: Greg Kroah-Hartman

    Benjamin Gilbert
     

15 Jan, 2018

1 commit


13 Jan, 2018

1 commit

  • Setting si_code to 0 is the same a setting si_code to SI_USER which is definitely
    not correct. With si_code set to SI_USER si_pid and si_uid will be copied to
    userspace instead of si_addr. Which is very wrong.

    So fix this by using a sensible si_code (SEGV_MAPERR) for this failure.

    Cc: stable@vger.kernel.org
    Fixes: b920de1b77b7 ("mn10300: add the MN10300/AM33 architecture to the kernel")
    Cc: David Howells
    Cc: Masakazu Urade
    Cc: Koichi Yasutake
    Signed-off-by: "Eric W. Biederman"

    Eric W. Biederman
     

10 Jan, 2018

1 commit

  • Construct the init thread stack in the linker script rather than doing it
    by means of a union so that ia64's init_task.c can be got rid of.

    The following symbols are then made available from INIT_TASK_DATA() linker
    script macro:

    init_thread_union
    init_stack

    INIT_TASK_DATA() also expands the region to THREAD_SIZE to accommodate the
    size of the init stack. init_thread_union is given its own section so that
    it can be placed into the stack space in the right order. I'm assuming
    that the ia64 ordering is correct and that the task_struct is first and the
    thread_info second.

    Signed-off-by: David Howells
    Tested-by: Tony Luck
    Tested-by: Will Deacon (arm64)
    Tested-by: Palmer Dabbelt
    Acked-by: Thomas Gleixner

    David Howells
     

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.

    Link: http://lkml.kernel.org/r/20171211125025.2270-6-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
    Signed-off-by: Sergey Senozhatsky
    [pmladek@suse.com: updated commit message]
    Signed-off-by: Petr Mladek

    Sergey Senozhatsky
     

04 Jan, 2018

1 commit


03 Jan, 2018

1 commit

  • …k/linux-rcu into core/rcu

    Pull RCU updates from Paul E. McKenney:

    - Updates to use cond_resched() instead of cond_resched_rcu_qs()
    where feasible (currently everywhere except in kernel/rcu and
    in kernel/torture.c). Also a couple of fixes to avoid sending
    IPIs to offline CPUs.

    - Updates to simplify RCU's dyntick-idle handling.

    - Updates to remove almost all uses of smp_read_barrier_depends()
    and read_barrier_depends().

    - Miscellaneous fixes.

    - Torture-test updates.

    Signed-off-by: Ingo Molnar <mingo@kernel.org>

    Ingo Molnar
     

05 Dec, 2017

2 commits

  • Commit 0515e5999a466dfe ("bpf: introduce BPF_PROG_TYPE_PERF_EVENT
    program type") introduced the bpf_perf_event_data structure which
    exports the pt_regs structure. This is OK for multiple architectures
    but fail for s390 and arm64 which do not export pt_regs. Programs
    using them, for example, the bpf selftest fail to compile on these
    architectures.

    For s390, exporting the pt_regs is not an option because s390 wants
    to allow changes to it. For arm64, there is a user_pt_regs structure
    that covers parts of the pt_regs structure for use by user space.

    To solve the broken uapi for s390 and arm64, introduce an abstract
    type for pt_regs and add an asm/bpf_perf_event.h file that concretes
    the type. An asm-generic header file covers the architectures that
    export pt_regs today.

    The arch-specific enablement for s390 and arm64 follows in separate
    commits.

    Reported-by: Thomas Richter
    Fixes: 0515e5999a466dfe ("bpf: introduce BPF_PROG_TYPE_PERF_EVENT program type")
    Signed-off-by: Hendrik Brueckner
    Reviewed-and-tested-by: Thomas Richter
    Acked-by: Alexei Starovoitov
    Cc: Arnaldo Carvalho de Melo
    Cc: Peter Zijlstra
    Cc: Ingo Molnar
    Cc: Alexander Shishkin
    Cc: Jiri Olsa
    Cc: Namhyung Kim
    Cc: Arnd Bergmann
    Cc: Daniel Borkmann
    Signed-off-by: Daniel Borkmann

    Hendrik Brueckner
     
  • Given that READ_ONCE() now implies smp_read_barrier_depends(),
    there is no need for the open-coded smp_read_barrier_depends() in
    mn10300_serial_receive_interrupt() and mn10300_serial_poll_get_char().
    This commit therefore removes them, but replaces them with comments
    calling out that carrying dependencies through non-pointers is quite
    dangerous. Compilers simply know too much about integers.

    Signed-off-by: Paul E. McKenney
    Cc: David Howells
    Cc: Mark Rutland
    Cc:

    Paul E. McKenney
     

28 Nov, 2017

1 commit


18 Nov, 2017

1 commit

  • The "cut here" string is used in a few paths. Define it in a single
    place.

    Link: http://lkml.kernel.org/r/1510100869-73751-3-git-send-email-keescook@chromium.org
    Signed-off-by: Kees Cook
    Cc: Arnd Bergmann
    Cc: Fengguang Wu
    Cc: Ingo Molnar
    Cc: Josh Poimboeuf
    Cc: Peter Zijlstra (Intel)
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Kees Cook
     

16 Nov, 2017

3 commits

  • Merge updates from Andrew Morton:

    - a few misc bits

    - ocfs2 updates

    - almost all of MM

    * emailed patches from Andrew Morton : (131 commits)
    memory hotplug: fix comments when adding section
    mm: make alloc_node_mem_map a void call if we don't have CONFIG_FLAT_NODE_MEM_MAP
    mm: simplify nodemask printing
    mm,oom_reaper: remove pointless kthread_run() error check
    mm/page_ext.c: check if page_ext is not prepared
    writeback: remove unused function parameter
    mm: do not rely on preempt_count in print_vma_addr
    mm, sparse: do not swamp log with huge vmemmap allocation failures
    mm/hmm: remove redundant variable align_end
    mm/list_lru.c: mark expected switch fall-through
    mm/shmem.c: mark expected switch fall-through
    mm/page_alloc.c: broken deferred calculation
    mm: don't warn about allocations which stall for too long
    fs: fuse: account fuse_inode slab memory as reclaimable
    mm, page_alloc: fix potential false positive in __zone_watermark_ok
    mm: mlock: remove lru_add_drain_all()
    mm, sysctl: make NUMA stats configurable
    shmem: convert shmem_init_inodecache() to void
    Unify migrate_pages and move_pages access checks
    mm, pagevec: rename pagevec drained field
    ...

    Linus Torvalds
     
  • empty_bad_page() and empty_bad_pte_table() seem to be relics from old
    days which is not used by any code for a long time. I have tried to
    find when exactly but this is not really all that straightforward due to
    many code movements - traces disappear around 2.4 times.

    Anyway no code really references neither empty_bad_page nor
    empty_bad_pte_table. We only allocate the storage which is not used by
    anybody so remove them.

    Link: http://lkml.kernel.org/r/20171004150045.30755-1-mhocko@kernel.org
    Signed-off-by: Michal Hocko
    Acked-by: Ralf Baechle
    Acked-by: Ingo Molnar
    Cc: Yoshinori Sato
    Cc: David Howells
    Cc: Rich Felker
    Cc: Jeff Dike
    Cc: Richard Weinberger
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Michal Hocko
     
  • Pull PCI updates from Bjorn Helgaas:

    - detach driver before tearing down procfs/sysfs (Alex Williamson)

    - disable PCIe services during shutdown (Sinan Kaya)

    - fix ASPM oops on systems with no Root Ports (Ard Biesheuvel)

    - fix ASPM LTR_L1.2_THRESHOLD programming (Bjorn Helgaas)

    - fix ASPM Common_Mode_Restore_Time computation (Bjorn Helgaas)

    - fix portdrv MSI/MSI-X vector allocation (Dongdong Liu, Bjorn
    Helgaas)

    - report non-fatal AER errors only to the affected endpoint (Gabriele
    Paoloni)

    - distribute bus numbers, MMIO, and I/O space among hotplug bridges to
    allow more devices to be hot-added (Mika Westerberg)

    - fix pciehp races during initialization and surprise link down (Mika
    Westerberg)

    - handle surprise-removed devices in PME handling (Qiang)

    - support resizable BARs for large graphics devices (Christian König)

    - expose SR-IOV offset, stride, and VF device ID via sysfs (Filippo
    Sironi)

    - create SR-IOV virtfn/physfn sysfs links before attaching driver
    (Stuart Hayes)

    - fix SR-IOV "ARI Capable Hierarchy" restore issue (Tony Nguyen)

    - enforce Kconfig IOV/REALLOC dependency (Sascha El-Sharkawy)

    - avoid slot reset if bridge itself is broken (Jan Glauber)

    - clean up pci_reset_function() path (Jan H. Schönherr)

    - make pci_map_rom() fail if the option ROM is invalid (Changbin Du)

    - convert timers to timer_setup() (Kees Cook)

    - move PCI_QUIRKS to PCI bus Kconfig menu (Randy Dunlap)

    - constify pci_dev_type and intel_mid_pci_ops (Bhumika Goyal)

    - remove unnecessary pci_dev, pci_bus, resource, pcibios_set_master()
    declarations (Bjorn Helgaas)

    - fix endpoint framework overflows and BUG()s (Dan Carpenter)

    - fix endpoint framework issues (Kishon Vijay Abraham I)

    - avoid broken Cavium CN8xxx bus reset behavior (David Daney)

    - extend Cavium ACS capability quirks (Vadim Lomovtsev)

    - support Synopsys DesignWare RC in ECAM mode (Ard Biesheuvel)

    - turn off dra7xx clocks cleanly on shutdown (Keerthy)

    - fix Faraday probe error path (Wei Yongjun)

    - support HiSilicon STB SoC PCIe host controller (Jianguo Sun)

    - fix Hyper-V interrupt affinity issue (Dexuan Cui)

    - remove useless ACPI warning for Hyper-V pass-through devices (Vitaly
    Kuznetsov)

    - support multiple MSI on iProc (Sandor Bodo-Merle)

    - support Layerscape LS1012a and LS1046a PCIe host controllers (Hou
    Zhiqiang)

    - fix Layerscape default error response (Minghuan Lian)

    - support MSI on Tango host controller (Marc Gonzalez)

    - support Tegra186 PCIe host controller (Manikanta Maddireddy)

    - use generic accessors on Tegra when possible (Thierry Reding)

    - support V3 Semiconductor PCI host controller (Linus Walleij)

    * tag 'pci-v4.15-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci: (85 commits)
    PCI/ASPM: Add L1 Substates definitions
    PCI/ASPM: Reformat ASPM register definitions
    PCI/ASPM: Use correct capability pointer to program LTR_L1.2_THRESHOLD
    PCI/ASPM: Account for downstream device's Port Common_Mode_Restore_Time
    PCI: xgene: Rename xgene_pcie_probe_bridge() to xgene_pcie_probe()
    PCI: xilinx: Rename xilinx_pcie_link_is_up() to xilinx_pcie_link_up()
    PCI: altera: Rename altera_pcie_link_is_up() to altera_pcie_link_up()
    PCI: Fix kernel-doc build warning
    PCI: Fail pci_map_rom() if the option ROM is invalid
    PCI: Move pci_map_rom() error path
    PCI: Move PCI_QUIRKS to the PCI bus menu
    alpha/PCI: Make pdev_save_srm_config() static
    PCI: Remove unused declarations
    PCI: Remove redundant pci_dev, pci_bus, resource declarations
    PCI: Remove redundant pcibios_set_master() declarations
    PCI/PME: Handle invalid data when reading Root Status
    PCI: hv: Use effective affinity mask
    PCI: pciehp: Do not clear Presence Detect Changed during initialization
    PCI: pciehp: Fix race condition handling surprise link down
    PCI: Distribute available resources to hotplug-capable bridges
    ...

    Linus Torvalds
     

15 Nov, 2017

1 commit

  • Pull dma-mapping updates from Christoph Hellwig:

    - turn dma_cache_sync into a dma_map_ops instance and remove
    implementation that purely are dead because the architecture doesn't
    support noncoherent allocations

    - add a flag for busses that need DMA configuration (Robin Murphy)

    * tag 'dma-mapping-4.15' of git://git.infradead.org/users/hch/dma-mapping:
    dma-mapping: turn dma_cache_sync into a dma_map_ops method
    sh: make dma_cache_sync a no-op
    xtensa: make dma_cache_sync a no-op
    unicore32: make dma_cache_sync a no-op
    powerpc: make dma_cache_sync a no-op
    mn10300: make dma_cache_sync a no-op
    microblaze: make dma_cache_sync a no-op
    ia64: make dma_cache_sync a no-op
    frv: make dma_cache_sync a no-op
    x86: make dma_cache_sync a no-op
    floppy: consolidate the dummy fd_cacheflush definition
    drivers: flag buses which demand DMA configuration

    Linus Torvalds
     

08 Nov, 2017

3 commits

  • Remove these unused declarations:

    pcibios_config_init() # never defined anywhere
    pcibios_scan_root() # only defined by x86
    pcibios_get_irq_routing_table() # only defined by x86
    pcibios_set_irq_routing() # only defined by x86

    Signed-off-by: Bjorn Helgaas
    Reviewed-by: Thomas Gleixner
    Reviewed-by: Ingo Molnar

    Bjorn Helgaas
     
  • defines struct pci_bus and struct pci_dev and includes the
    struct resource definition before including . Nobody includes
    directly, so they don't need their own declarations.

    Remove the redundant struct pci_dev, pci_bus, resource declarations.

    Signed-off-by: Bjorn Helgaas
    Reviewed-by: Ingo Molnar
    Acked-by: Jesper Nilsson # CRIS
    Acked-by: Ralf Baechle # MIPS

    Bjorn Helgaas
     
  • All users of pcibios_set_master() include , which already has
    a declaration. Remove the unnecessary declarations from the
    files.

    Signed-off-by: Bjorn Helgaas
    Reviewed-by: Thomas Gleixner
    Reviewed-by: Ingo Molnar
    Acked-by: Jesper Nilsson # CRIS
    Acked-by: Ralf Baechle # MIPS

    Bjorn Helgaas
     

07 Nov, 2017

1 commit


02 Nov, 2017

3 commits

  • Many user space API headers have licensing information, which is either
    incomplete, badly formatted or just a shorthand for referring to the
    license under which the file is supposed to be. This makes it hard for
    compliance tools to determine the correct license.

    Update these files with an SPDX license identifier. The identifier was
    chosen based on the license information in the file.

    GPL/LGPL licensed headers get the matching GPL/LGPL SPDX license
    identifier with the added 'WITH Linux-syscall-note' exception, which is
    the officially assigned exception identifier for the kernel syscall
    exception:

    NOTE! This copyright does *not* cover user programs that use kernel
    services by normal system calls - this is merely considered normal use
    of the kernel, and does *not* fall under the heading of "derived work".

    This exception makes it possible to include GPL headers into non GPL
    code, without confusing license compliance tools.

    Headers which have either explicit dual licensing or are just licensed
    under a non GPL license are updated with the corresponding SPDX
    identifier and the GPLv2 with syscall exception identifier. The format
    is:
    ((GPL-2.0 WITH Linux-syscall-note) OR SPDX-ID-OF-OTHER-LICENSE)

    SPDX license identifiers are a legally binding shorthand, which can be
    used instead of the full boiler plate text. The update does not remove
    existing license information as this has to be done on a case by case
    basis and the copyright holders might have to be consulted. This will
    happen in a separate step.

    This patch is based on work done by Thomas Gleixner and Kate Stewart and
    Philippe Ombredanne. See the previous patch in this series for the
    methodology of how this patch was researched.

    Reviewed-by: Kate Stewart
    Reviewed-by: Philippe Ombredanne
    Reviewed-by: Thomas Gleixner
    Signed-off-by: Greg Kroah-Hartman

    Greg Kroah-Hartman
     
  • Many user space API headers are missing licensing information, which
    makes it hard for compliance tools to determine the correct license.

    By default are files without license information under the default
    license of the kernel, which is GPLV2. Marking them GPLV2 would exclude
    them from being included in non GPLV2 code, which is obviously not
    intended. The user space API headers fall under the syscall exception
    which is in the kernels COPYING file:

    NOTE! This copyright does *not* cover user programs that use kernel
    services by normal system calls - this is merely considered normal use
    of the kernel, and does *not* fall under the heading of "derived work".

    otherwise syscall usage would not be possible.

    Update the files which contain no license information with an SPDX
    license identifier. The chosen identifier is 'GPL-2.0 WITH
    Linux-syscall-note' which is the officially assigned identifier for the
    Linux syscall exception. SPDX license identifiers are 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. See the previous patch in this series for the
    methodology of how this patch was researched.

    Reviewed-by: Kate Stewart
    Reviewed-by: Philippe Ombredanne
    Reviewed-by: Thomas Gleixner
    Signed-off-by: Greg Kroah-Hartman

    Greg Kroah-Hartman
     
  • 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
     

25 Oct, 2017

1 commit

  • …READ_ONCE()/WRITE_ONCE()

    Please do not apply this to mainline directly, instead please re-run the
    coccinelle script shown below and apply its output.

    For several reasons, it is desirable to use {READ,WRITE}_ONCE() in
    preference to ACCESS_ONCE(), and new code is expected to use one of the
    former. So far, there's been no reason to change most existing uses of
    ACCESS_ONCE(), as these aren't harmful, and changing them results in
    churn.

    However, for some features, the read/write distinction is critical to
    correct operation. To distinguish these cases, separate read/write
    accessors must be used. This patch migrates (most) remaining
    ACCESS_ONCE() instances to {READ,WRITE}_ONCE(), using the following
    coccinelle script:

    ----
    // Convert trivial ACCESS_ONCE() uses to equivalent READ_ONCE() and
    // WRITE_ONCE()

    // $ make coccicheck COCCI=/home/mark/once.cocci SPFLAGS="--include-headers" MODE=patch

    virtual patch

    @ depends on patch @
    expression E1, E2;
    @@

    - ACCESS_ONCE(E1) = E2
    + WRITE_ONCE(E1, E2)

    @ depends on patch @
    expression E;
    @@

    - ACCESS_ONCE(E)
    + READ_ONCE(E)
    ----

    Signed-off-by: Mark Rutland <mark.rutland@arm.com>
    Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: davem@davemloft.net
    Cc: linux-arch@vger.kernel.org
    Cc: mpe@ellerman.id.au
    Cc: shuah@kernel.org
    Cc: snitzer@redhat.com
    Cc: thor.thayer@linux.intel.com
    Cc: tj@kernel.org
    Cc: viro@zeniv.linux.org.uk
    Cc: will.deacon@arm.com
    Link: http://lkml.kernel.org/r/1508792849-3115-19-git-send-email-paulmck@linux.vnet.ibm.com
    Signed-off-by: Ingo Molnar <mingo@kernel.org>

    Mark Rutland
     

19 Oct, 2017

2 commits

  • After we removed all the dead wood it turns out only two architectures
    actually implement dma_cache_sync as a real op: mips and parisc. Add
    a cache_sync method to struct dma_map_ops and implement it for the
    mips defualt DMA ops, and the parisc pa11 ops.

    Note that arm, arc and openrisc support DMA_ATTR_NON_CONSISTENT, but
    never provided a functional dma_cache_sync implementations, which
    seems somewhat odd.

    Signed-off-by: Christoph Hellwig
    Reviewed-by: Robin Murphy

    Christoph Hellwig
     
  • mn10300 does not implement DMA_ATTR_NON_CONSISTENT allocations, so it
    doesn't make any sense to do any work in dma_cache_sync given that it must
    be a no-op when dma_alloc_attrs returns coherent memory.

    Signed-off-by: Christoph Hellwig
    Reviewed-by: Robin Murphy

    Christoph Hellwig
     

10 Oct, 2017

2 commits

  • The arch_{read,spin,write}_lock_flags() macros are simply mapped to the
    non-flags versions by the majority of architectures, so do this in core
    code and remove the dummy implementations. Also remove the implementation
    in spinlock_up.h, since all callers of do_raw_spin_lock_flags() call
    local_irq_save(flags) anyway.

    Signed-off-by: Will Deacon
    Signed-off-by: Peter Zijlstra (Intel)
    Cc: Linus Torvalds
    Cc: Peter Zijlstra
    Cc: Thomas Gleixner
    Cc: paulmck@linux.vnet.ibm.com
    Link: http://lkml.kernel.org/r/1507055129-12300-4-git-send-email-will.deacon@arm.com
    Signed-off-by: Ingo Molnar

    Will Deacon
     
  • Outside of the locking code itself, {read,spin,write}_can_lock() have no
    users in tree. Apparmor (the last remaining user of write_can_lock()) got
    moved over to lockdep by the previous patch.

    This patch removes the use of {read,spin,write}_can_lock() from the
    BUILD_LOCK_OPS macro, deferring to the trylock operation for testing the
    lock status, and subsequently removes the unused macros altogether. They
    aren't guaranteed to work in a concurrent environment and can give
    incorrect results in the case of qrwlock.

    Signed-off-by: Will Deacon
    Signed-off-by: Peter Zijlstra (Intel)
    Cc: Linus Torvalds
    Cc: Peter Zijlstra
    Cc: Thomas Gleixner
    Cc: paulmck@linux.vnet.ibm.com
    Link: http://lkml.kernel.org/r/1507055129-12300-2-git-send-email-will.deacon@arm.com
    Signed-off-by: Ingo Molnar

    Will Deacon
     

23 Sep, 2017

1 commit


09 Sep, 2017

1 commit

  • Remove old, dead Kconfig options (in order appearing in this commit):
    - EXPERIMENTAL is gone since v3.9;
    - INET_LRO: commit 7bbf3cae65b6 ("ipv4: Remove inet_lro library");
    - MTD_PARTITIONS: commit 6a8a98b22b10 ("mtd: kill
    CONFIG_MTD_PARTITIONS");
    - MTD_CHAR: commit 660685d9d1b4 ("mtd: merge mtdchar module with
    mtdcore");
    - NETDEV_1000 and NETDEV_10000: commit f860b0522f65 ("drivers/net:
    Kconfig and Makefile cleanup"); NET_ETHERNET should be replaced with
    just ETHERNET but that is separate change;
    - HID_SUPPORT: commit 1f41a6a99476 ("HID: Fix the generic Kconfig
    options");
    - RCU_CPU_STALL_DETECTOR: commit a00e0d714fbd ("rcu: Remove conditional
    compilation for RCU CPU stall warnings");

    Link: http://lkml.kernel.org/r/1500526786-3789-1-git-send-email-krzk@kernel.org
    Signed-off-by: Krzysztof Kozlowski
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Krzysztof Kozlowski
     

07 Sep, 2017

1 commit

  • Pull networking updates from David Miller:

    1) Support ipv6 checksum offload in sunvnet driver, from Shannon
    Nelson.

    2) Move to RB-tree instead of custom AVL code in inetpeer, from Eric
    Dumazet.

    3) Allow generic XDP to work on virtual devices, from John Fastabend.

    4) Add bpf device maps and XDP_REDIRECT, which can be used to build
    arbitrary switching frameworks using XDP. From John Fastabend.

    5) Remove UFO offloads from the tree, gave us little other than bugs.

    6) Remove the IPSEC flow cache, from Florian Westphal.

    7) Support ipv6 route offload in mlxsw driver.

    8) Support VF representors in bnxt_en, from Sathya Perla.

    9) Add support for forward error correction modes to ethtool, from
    Vidya Sagar Ravipati.

    10) Add time filter for packet scheduler action dumping, from Jamal Hadi
    Salim.

    11) Extend the zerocopy sendmsg() used by virtio and tap to regular
    sockets via MSG_ZEROCOPY. From Willem de Bruijn.

    12) Significantly rework value tracking in the BPF verifier, from Edward
    Cree.

    13) Add new jump instructions to eBPF, from Daniel Borkmann.

    14) Rework rtnetlink plumbing so that operations can be run without
    taking the RTNL semaphore. From Florian Westphal.

    15) Support XDP in tap driver, from Jason Wang.

    16) Add 32-bit eBPF JIT for ARM, from Shubham Bansal.

    17) Add Huawei hinic ethernet driver.

    18) Allow to report MD5 keys in TCP inet_diag dumps, from Ivan
    Delalande.

    * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next: (1780 commits)
    i40e: point wb_desc at the nvm_wb_desc during i40e_read_nvm_aq
    i40e: avoid NVM acquire deadlock during NVM update
    drivers: net: xgene: Remove return statement from void function
    drivers: net: xgene: Configure tx/rx delay for ACPI
    drivers: net: xgene: Read tx/rx delay for ACPI
    rocker: fix kcalloc parameter order
    rds: Fix non-atomic operation on shared flag variable
    net: sched: don't use GFP_KERNEL under spin lock
    vhost_net: correctly check tx avail during rx busy polling
    net: mdio-mux: add mdio_mux parameter to mdio_mux_init()
    rxrpc: Make service connection lookup always check for retry
    net: stmmac: Delete dead code for MDIO registration
    gianfar: Fix Tx flow control deactivation
    cxgb4: Ignore MPS_TX_INT_CAUSE[Bubble] for T6
    cxgb4: Fix pause frame count in t4_get_port_stats
    cxgb4: fix memory leak
    tun: rename generic_xdp to skb_xdp
    tun: reserve extra headroom only when XDP is set
    net: dsa: bcm_sf2: Configure IMP port TC2QOS mapping
    net: dsa: bcm_sf2: Advertise number of egress queues
    ...

    Linus Torvalds
     

17 Aug, 2017

1 commit

  • There is no agreed-upon definition of spin_unlock_wait()'s semantics,
    and it appears that all callers could do just as well with a lock/unlock
    pair. This commit therefore removes the underlying arch-specific
    arch_spin_unlock_wait() for all architectures providing them.

    Signed-off-by: Paul E. McKenney
    Cc:
    Cc: Peter Zijlstra
    Cc: Alan Stern
    Cc: Andrea Parri
    Cc: Linus Torvalds
    Acked-by: Will Deacon
    Acked-by: Boqun Feng

    Paul E. McKenney
     

04 Aug, 2017

1 commit

  • The send call ignores unknown flags. Legacy applications may already
    unwittingly pass MSG_ZEROCOPY. Continue to ignore this flag unless a
    socket opts in to zerocopy.

    Introduce socket option SO_ZEROCOPY to enable MSG_ZEROCOPY processing.
    Processes can also query this socket option to detect kernel support
    for the feature. Older kernels will return ENOPROTOOPT.

    Signed-off-by: Willem de Bruijn
    Signed-off-by: David S. Miller

    Willem de Bruijn
     

22 Jul, 2017

1 commit