07 Mar, 2019

4 commits

  • Pull asm-generic updates from Arnd Bergmann:
    "Only a few small changes this time:

    - Michael S. Tsirkin cleans up linux/mman.h

    - Mike Rapoport found a typo

    I had originally merged another cleanup series for I/O accessors from
    Hugo Lefeuvre as well, but dropped it after the discussion of the
    barrier semantics and some conflicts. I expect this series to get
    merged for a later release though"

    * tag 'asm-generic-5.1' of git://git.kernel.org/pub/scm/linux/kernel/git/arnd/asm-generic:
    asm-generic/page.h: fix typo in #error text requiring a real asm/page.h
    arch: move common mmap flags to linux/mman.h
    drm: tweak header name
    x86/mpx: tweak header name

    Linus Torvalds
     
  • Pull y2038 build fix for compat mode from Arnd Bergmann:
    "Here is one more patch on top of the y2038 changes already pulled for
    linux-5.1, for some reason this had escaped all testing"

    * tag 'y2038-fix' of git://git.kernel.org/pub/scm/linux/kernel/git/arnd/playground:
    ipc: Fix building compat mode without sysvipc

    Linus Torvalds
     
  • Pull x86 alternative instruction updates from Ingo Molnar:
    "Small RDTSCP opimization, enabled by the newly added ALTERNATIVE_3(),
    and other small improvements"

    * 'x86-alternatives-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    x86/TSC: Use RDTSCP
    x86/alternatives: Add an ALTERNATIVE_3() macro
    x86/alternatives: Print containing function
    x86/alternatives: Add macro comments

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

    - refcount conversions

    - Solve the rq->leaf_cfs_rq_list can of worms for real.

    - improve power-aware scheduling

    - add sysctl knob for Energy Aware Scheduling

    - documentation updates

    - misc other changes"

    * 'sched-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (34 commits)
    kthread: Do not use TIMER_IRQSAFE
    kthread: Convert worker lock to raw spinlock
    sched/fair: Use non-atomic cpumask_{set,clear}_cpu()
    sched/fair: Remove unused 'sd' parameter from select_idle_smt()
    sched/wait: Use freezable_schedule() when possible
    sched/fair: Prune, fix and simplify the nohz_balancer_kick() comment block
    sched/fair: Explain LLC nohz kick condition
    sched/fair: Simplify nohz_balancer_kick()
    sched/topology: Fix percpu data types in struct sd_data & struct s_data
    sched/fair: Simplify post_init_entity_util_avg() by calling it with a task_struct pointer argument
    sched/fair: Fix O(nr_cgroups) in the load balancing path
    sched/fair: Optimize update_blocked_averages()
    sched/fair: Fix insertion in rq->leaf_cfs_rq_list
    sched/fair: Add tmp_alone_branch assertion
    sched/core: Use READ_ONCE()/WRITE_ONCE() in move_queued_task()/task_rq_lock()
    sched/debug: Initialize sd_sysctl_cpus if !CONFIG_CPUMASK_OFFSTACK
    sched/pelt: Skip updating util_est when utilization is higher than CPU's capacity
    sched/fair: Update scale invariance of PELT
    sched/fair: Move the rq_of() helper function
    sched/core: Convert task_struct.stack_refcount to refcount_t
    ...

    Linus Torvalds
     

06 Mar, 2019

17 commits

  • Pull perf updates from Ingo Molnar:
    "Lots of tooling updates - too many to list, here's a few highlights:

    - Various subcommand updates to 'perf trace', 'perf report', 'perf
    record', 'perf annotate', 'perf script', 'perf test', etc.

    - CPU and NUMA topology and affinity handling improvements,

    - HW tracing and HW support updates:
    - Intel PT updates
    - ARM CoreSight updates
    - vendor HW event updates

    - BPF updates

    - Tons of infrastructure updates, both on the build system and the
    library support side

    - Documentation updates.

    - ... and lots of other changes, see the changelog for details.

    Kernel side updates:

    - Tighten up kprobes blacklist handling, reduce the number of places
    where developers can install a kprobe and hang/crash the system.

    - Fix/enhance vma address filter handling.

    - Various PMU driver updates, small fixes and additions.

    - refcount_t conversions

    - BPF updates

    - error code propagation enhancements

    - misc other changes"

    * 'perf-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (238 commits)
    perf script python: Add Python3 support to syscall-counts-by-pid.py
    perf script python: Add Python3 support to syscall-counts.py
    perf script python: Add Python3 support to stat-cpi.py
    perf script python: Add Python3 support to stackcollapse.py
    perf script python: Add Python3 support to sctop.py
    perf script python: Add Python3 support to powerpc-hcalls.py
    perf script python: Add Python3 support to net_dropmonitor.py
    perf script python: Add Python3 support to mem-phys-addr.py
    perf script python: Add Python3 support to failed-syscalls-by-pid.py
    perf script python: Add Python3 support to netdev-times.py
    perf tools: Add perf_exe() helper to find perf binary
    perf script: Handle missing fields with -F +..
    perf data: Add perf_data__open_dir_data function
    perf data: Add perf_data__(create_dir|close_dir) functions
    perf data: Fail check_backup in case of error
    perf data: Make check_backup work over directories
    perf tools: Add rm_rf_perf_data function
    perf tools: Add pattern name checking to rm_rf
    perf tools: Add depth checking to rm_rf
    perf data: Add global path holder
    ...

    Linus Torvalds
     
  • Pull locking updates from Ingo Molnar:
    "The biggest part of this tree is the new auto-generated atomics API
    wrappers by Mark Rutland.

    The primary motivation was to allow instrumentation without uglifying
    the primary source code.

    The linecount increase comes from adding the auto-generated files to
    the Git space as well:

    include/asm-generic/atomic-instrumented.h | 1689 ++++++++++++++++--
    include/asm-generic/atomic-long.h | 1174 ++++++++++---
    include/linux/atomic-fallback.h | 2295 +++++++++++++++++++++++++
    include/linux/atomic.h | 1241 +------------

    I preferred this approach, so that the full call stack of the (already
    complex) locking APIs is still fully visible in 'git grep'.

    But if this is excessive we could certainly hide them.

    There's a separate build-time mechanism to determine whether the
    headers are out of date (they should never be stale if we do our job
    right).

    Anyway, nothing from this should be visible to regular kernel
    developers.

    Other changes:

    - Add support for dynamic keys, which removes a source of false
    positives in the workqueue code, among other things (Bart Van
    Assche)

    - Updates to tools/memory-model (Andrea Parri, Paul E. McKenney)

    - qspinlock, wake_q and lockdep micro-optimizations (Waiman Long)

    - misc other updates and enhancements"

    * 'locking-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (48 commits)
    locking/lockdep: Shrink struct lock_class_key
    locking/lockdep: Add module_param to enable consistency checks
    lockdep/lib/tests: Test dynamic key registration
    lockdep/lib/tests: Fix run_tests.sh
    kernel/workqueue: Use dynamic lockdep keys for workqueues
    locking/lockdep: Add support for dynamic keys
    locking/lockdep: Verify whether lock objects are small enough to be used as class keys
    locking/lockdep: Check data structure consistency
    locking/lockdep: Reuse lock chains that have been freed
    locking/lockdep: Fix a comment in add_chain_cache()
    locking/lockdep: Introduce lockdep_next_lockchain() and lock_chain_count()
    locking/lockdep: Reuse list entries that are no longer in use
    locking/lockdep: Free lock classes that are no longer in use
    locking/lockdep: Update two outdated comments
    locking/lockdep: Make it easy to detect whether or not inside a selftest
    locking/lockdep: Split lockdep_free_key_range() and lockdep_reset_lock()
    locking/lockdep: Initialize the locks_before and locks_after lists earlier
    locking/lockdep: Make zap_class() remove all matching lock order entries
    locking/lockdep: Reorder struct lock_class members
    locking/lockdep: Avoid that add_chain_cache() adds an invalid chain to the cache
    ...

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

    - Use 32-bit alignment for efi_guid_t

    - Allow the SetVirtualAddressMap() call to be omitted

    - Implement earlycon=efifb based on existing earlyprintk code

    - Various minor fixes and code cleanups from Sai, Ard and me"

    * 'efi-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    efi: Fix build error due to enum collision between efi.h and ima.h
    efi/x86: Convert x86 EFI earlyprintk into generic earlycon implementation
    x86: Make ARCH_USE_MEMREMAP_PROT a generic Kconfig symbol
    efi/arm/arm64: Allow SetVirtualAddressMap() to be omitted
    efi: Replace GPL license boilerplate with SPDX headers
    efi/fdt: Apply more cleanups
    efi: Use 32-bit alignment for efi_guid_t
    efi/memattr: Don't bail on zero VA if it equals the region's PA
    x86/efi: Mark can_free_region() as an __init function

    Linus Torvalds
     
  • As John Stultz noticed, my y2038 syscall series caused a link
    failure when CONFIG_SYSVIPC is disabled but CONFIG_COMPAT is
    enabled:

    arch/arm64/kernel/sys32.o:(.rodata+0x960): undefined reference to `__arm64_compat_sys_old_semctl'
    arch/arm64/kernel/sys32.o:(.rodata+0x980): undefined reference to `__arm64_compat_sys_old_msgctl'
    arch/arm64/kernel/sys32.o:(.rodata+0x9a0): undefined reference to `__arm64_compat_sys_old_shmctl'

    Add the missing entries in kernel/sys_ni.c for the new system
    calls.

    Cc: Laura Abbott
    Cc: John Stultz
    Cc: Thomas Gleixner
    Signed-off-by: Arnd Bergmann

    Arnd Bergmann
     
  • Pull RCU updates from Ingo Molnar:
    "The main RCU related changes in this cycle were:

    - Additional cleanups after RCU flavor consolidation

    - Grace-period forward-progress cleanups and improvements

    - Documentation updates

    - Miscellaneous fixes

    - spin_is_locked() conversions to lockdep

    - SPDX changes to RCU source and header files

    - SRCU updates

    - Torture-test updates, including nolibc updates and moving nolibc to
    tools/include"

    * 'core-rcu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (71 commits)
    locking/locktorture: Convert to SPDX license identifier
    linux/torture: Convert to SPDX license identifier
    torture: Convert to SPDX license identifier
    linux/srcu: Convert to SPDX license identifier
    linux/rcutree: Convert to SPDX license identifier
    linux/rcutiny: Convert to SPDX license identifier
    linux/rcu_sync: Convert to SPDX license identifier
    linux/rcu_segcblist: Convert to SPDX license identifier
    linux/rcupdate: Convert to SPDX license identifier
    linux/rcu_node_tree: Convert to SPDX license identifier
    rcu/update: Convert to SPDX license identifier
    rcu/tree: Convert to SPDX license identifier
    rcu/tiny: Convert to SPDX license identifier
    rcu/sync: Convert to SPDX license identifier
    rcu/srcu: Convert to SPDX license identifier
    rcu/rcutorture: Convert to SPDX license identifier
    rcu/rcu_segcblist: Convert to SPDX license identifier
    rcu/rcuperf: Convert to SPDX license identifier
    rcu/rcu.h: Convert to SPDX license identifier
    RCU/torture.txt: Remove section MODULE PARAMETERS
    ...

    Linus Torvalds
     
  • Pull year 2038 updates from Thomas Gleixner:
    "Another round of changes to make the kernel ready for 2038. After lots
    of preparatory work this is the first set of syscalls which are 2038
    safe:

    403 clock_gettime64
    404 clock_settime64
    405 clock_adjtime64
    406 clock_getres_time64
    407 clock_nanosleep_time64
    408 timer_gettime64
    409 timer_settime64
    410 timerfd_gettime64
    411 timerfd_settime64
    412 utimensat_time64
    413 pselect6_time64
    414 ppoll_time64
    416 io_pgetevents_time64
    417 recvmmsg_time64
    418 mq_timedsend_time64
    419 mq_timedreceiv_time64
    420 semtimedop_time64
    421 rt_sigtimedwait_time64
    422 futex_time64
    423 sched_rr_get_interval_time64

    The syscall numbers are identical all over the architectures"

    * 'timers-2038-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (36 commits)
    riscv: Use latest system call ABI
    checksyscalls: fix up mq_timedreceive and stat exceptions
    unicore32: Fix __ARCH_WANT_STAT64 definition
    asm-generic: Make time32 syscall numbers optional
    asm-generic: Drop getrlimit and setrlimit syscalls from default list
    32-bit userspace ABI: introduce ARCH_32BIT_OFF_T config option
    compat ABI: use non-compat openat and open_by_handle_at variants
    y2038: add 64-bit time_t syscalls to all 32-bit architectures
    y2038: rename old time and utime syscalls
    y2038: remove struct definition redirects
    y2038: use time32 syscall names on 32-bit
    syscalls: remove obsolete __IGNORE_ macros
    y2038: syscalls: rename y2038 compat syscalls
    x86/x32: use time64 versions of sigtimedwait and recvmmsg
    timex: change syscalls to use struct __kernel_timex
    timex: use __kernel_timex internally
    sparc64: add custom adjtimex/clock_adjtime functions
    time: fix sys_timer_settime prototype
    time: Add struct __kernel_timex
    time: make adjtime compat handling available for 32 bit
    ...

    Linus Torvalds
     
  • Pull x86/pti update from Thomas Gleixner:
    "Just a single change from the anti-performance departement:

    - Add a new PR_SPEC_DISABLE_NOEXEC option which allows to apply the
    speculation protections on a process without inheriting the state
    on exec.

    This remedies a situation where a Java-launcher has speculation
    protections enabled because that's the default for JVMs which
    causes the launched regular harmless processes to inherit the
    protection state which results in unintended performance
    degradation"

    * 'x86-pti-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    x86/speculation: Add PR_SPEC_DISABLE_NOEXEC

    Linus Torvalds
     
  • Pull irq updates from Thomas Gleixner:
    "The interrupt departement delivers this time:

    - New infrastructure to manage NMIs on platforms which have a sane
    NMI delivery, i.e. identifiable NMI vectors instead of a single
    lump.

    - Simplification of the interrupt affinity management so drivers
    don't have to implement ugly loops around the PCI/MSI enablement.

    - Speedup for interrupt statistics in /proc/stat

    - Provide a function to retrieve the default irq domain

    - A new interrupt controller for the Loongson LS1X platform

    - Affinity support for the SiFive PLIC

    - Better support for the iMX irqsteer driver

    - NUMA aware memory allocations for GICv3

    - The usual small fixes, improvements and cleanups all over the
    place"

    * 'irq-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (36 commits)
    irqchip/imx-irqsteer: Add multi output interrupts support
    irqchip/imx-irqsteer: Change to use reg_num instead of irq_group
    dt-bindings: irq: imx-irqsteer: Add multi output interrupts support
    dt-binding: irq: imx-irqsteer: Use irq number instead of group number
    irqchip/brcmstb-l2: Use _irqsave locking variants in non-interrupt code
    irqchip/gicv3-its: Use NUMA aware memory allocation for ITS tables
    irqdomain: Allow the default irq domain to be retrieved
    irqchip/sifive-plic: Implement irq_set_affinity() for SMP host
    irqchip/sifive-plic: Differentiate between PLIC handler and context
    irqchip/sifive-plic: Add warning in plic_init() if handler already present
    irqchip/sifive-plic: Pre-compute context hart base and enable base
    PCI/MSI: Remove obsolete sanity checks for multiple interrupt sets
    genirq/affinity: Remove the leftovers of the original set support
    nvme-pci: Simplify interrupt allocation
    genirq/affinity: Add new callback for (re)calculating interrupt sets
    genirq/affinity: Store interrupt sets size in struct irq_affinity
    genirq/affinity: Code consolidation
    irqchip/irq-sifive-plic: Check and continue in case of an invalid cpuid.
    irqchip/i8259: Fix shutdown order by moving syscore_ops registration
    dt-bindings: interrupt-controller: loongson ls1x intc
    ...

    Linus Torvalds
     
  • Pull timer and clockevent updates from Thomas Gleixner:
    "The time(r) core and clockevent updates are mostly boring this time:

    - A new driver for the Tegra210 timer

    - Small fixes and improvements alll over the place

    - Documentation updates and cleanups"

    * 'timers-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (22 commits)
    soc/tegra: default select TEGRA_TIMER for Tegra210
    clocksource/drivers/tegra: Add Tegra210 timer support
    dt-bindings: timer: add Tegra210 timer
    clocksource/drivers/timer-cs5535: Rename the file for consistency
    clocksource/drivers/timer-pxa: Rename the file for consistency
    clocksource/drivers/tango-xtal: Rename the file for consistency
    dt-bindings: timer: gpt: update binding doc
    clocksource/drivers/exynos_mct: Remove unused header includes
    dt-bindings: timer: mediatek: update bindings for MT7629 SoC
    clocksource/drivers/exynos_mct: Fix error path in timer resources initialization
    clocksource/drivers/exynos_mct: Remove dead code
    clocksource/drivers/riscv: Add required checks during clock source init
    dt-bindings: timer: renesas: tmu: Document r8a774c0 bindings
    dt-bindings: timer: renesas, cmt: Document r8a774c0 CMT support
    clocksource/drivers/exynos_mct: Clear timer interrupt when shutdown
    clocksource/drivers/exynos_mct: Move one-shot check from tick clear to ISR
    clocksource/drivers/arch_timer: Workaround for Allwinner A64 timer instability
    clocksource/drivers/sun5i: Fail gracefully when clock rate is unavailable
    timers: Mark expected switch fall-throughs
    timekeeping/debug: No need to check return value of debugfs_create functions
    ...

    Linus Torvalds
     
  • Pull MIPS updates from Paul Burton:

    - Support for the MIPSr6 MemoryMapID register & Global INValidate TLB
    (GINVT) instructions, allowing for more efficient TLB maintenance
    when running on a CPU such as the I6500 that supports these.

    - Enable huge page support for MIPS64r6.

    - Optimize post-DMA cache sync by removing that code entirely for
    kernel configurations in which we know it won't be needed.

    - The number of pages allocated for interrupt stacks is now calculated
    correctly, where before we would wastefully allocate too much memory
    in some configurations.

    - The ath79 platform migrates to devicetree.

    - The bcm47xx platform sees fixes for the Buffalo WHR-G54S board.

    - The ingenic/jz4740 platform gains support for appended devicetrees.

    - The cavium_octeon, lantiq, loongson32 & sgi-ip27 platforms all see
    cleanups as do various pieces of core architecture code.

    * tag 'mips_5.1' of git://git.kernel.org/pub/scm/linux/kernel/git/mips/linux: (66 commits)
    MIPS: lantiq: Remove separate GPHY Firmware loader
    MIPS: ingenic: Add support for appended devicetree
    MIPS: SGI-IP27: rework HUB interrupts
    MIPS: SGI-IP27: do boot CPU init later
    MIPS: SGI-IP27: do xtalk scanning later
    MIPS: SGI-IP27: use pr_info/pr_emerg and pr_cont to fix output
    MIPS: SGI-IP27: clean up bridge access and header files
    MIPS: SGI-IP27: get rid of volatile and hubreg_t
    MIPS: irq: Allocate accurate order pages for irq stack
    MIPS: dma-noncoherent: Remove bogus condition in dma_sync_phys()
    MIPS: eBPF: Remove REG_32BIT_ZERO_EX
    MIPS: eBPF: Always return sign extended 32b values
    MIPS: CM: Fix indentation
    MIPS: BCM47XX: Fix/improve Buffalo WHR-G54S support
    MIPS: OCTEON: program rx/tx-delay always from DT
    MIPS: OCTEON: delete board-specific link status
    MIPS: OCTEON: don't lie about interface type of CN3005 board
    MIPS: OCTEON: warn if deprecated link status is being used
    MIPS: OCTEON: add fixed-link nodes to in-kernel device tree
    MIPS: Delete unused flush_cache_sigtramp()
    ...

    Linus Torvalds
     
  • Pull parisc updates from Helge Deller:
    "The most important changes in this patch set are:

    - DMA-related cleanups for parisc with the aim to move anything not
    required by drivers out of , by Christoph
    Hellwig

    - Switch to memblock_alloc(), by Mike Rapoport

    - Makefile cleanups by Masahiro Yamada

    - Switch to bust_spinlocks(), by Sergey Senozhatsky

    - Improved initial SMP affinity selection for IRQs

    - Added IPI- and rescheduling interrupts in /proc/interrupts output"

    * 'parisc-5.1-1' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux: (21 commits)
    parisc: use memblock_alloc() instead of custom get_memblock()
    parisc: Add constants for various PDC firmware calls
    parisc: Add constant for PDC_PAT_COMPLEX firmware call
    parisc: Show machine product number during boot
    parisc: Add constants for PDC_RELOCATE PDC call
    parisc: Add PDC_CRASH_PREP PDC function number
    parisc: Use F_EXTEND() macro in iosapic code
    parisc: remove the HBA_DATA macro
    parisc/lba_pci: use container_of in LBA_DEV
    parisc/dino: use container_of in DINO_DEV
    parisc: properly type the return value of parisc_walk_tree
    parisc: properly type the iommu field in struct pci_hba_data
    parisc: turn GET_IOC into an inline function
    parisc: move internal implementation details out of
    parisc: don't include in
    parisc: remove meaningless ccflags-y in arch/parisc/boot/Makefile
    parisc: replace oops_in_progress manipulation with bust_spinlocks()
    parisc: Improve initial IRQ to CPU assignment
    parisc: Count IPI function call interrupts
    parisc: Show rescheduling interrupts on SMP machines only
    ...

    Linus Torvalds
     
  • Pull s390 updates from Martin Schwidefsky:

    - A copy of Arnds compat wrapper generation series

    - Pass information about the KVM guest to the host in form the control
    program code and the control program version code

    - Map IOV resources to support PCI physical functions on s390

    - Add vector load and store alignment hints to improve performance

    - Use the "jdd" constraint with gcc 9 to make jump labels working again

    - Remove amode workaround for old z/VM releases from the DCSS code

    - Add support for in-kernel performance measurements using the CPU
    measurement counter facility

    - Introduce a new PMU device cpum_cf_diag to capture counters and store
    thenn as event raw data.

    - Bug fixes and cleanups

    * tag 's390-5.1-1' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux: (54 commits)
    Revert "s390/cpum_cf: Add kernel message exaplanations"
    s390/dasd: fix read device characteristic with CONFIG_VMAP_STACK=y
    s390/suspend: fix prefix register reset in swsusp_arch_resume
    s390: warn about clearing als implied facilities
    s390: allow overriding facilities via command line
    s390: clean up redundant facilities list setup
    s390/als: remove duplicated in-place implementation of stfle
    s390/cio: Use cpa range elsewhere within vfio-ccw
    s390/cio: Fix vfio-ccw handling of recursive TICs
    s390: vfio_ap: link the vfio_ap devices to the vfio_ap bus subsystem
    s390/cpum_cf: Handle EBUSY return code from CPU counter facility reservation
    s390/cpum_cf: Add kernel message exaplanations
    s390/cpum_cf_diag: Add support for s390 counter facility diagnostic trace
    s390/cpum_cf: add ctr_stcctm() function
    s390/cpum_cf: move common functions into a separate file
    s390/cpum_cf: introduce kernel_cpumcf_avail() function
    s390/cpu_mf: replace stcctm5() with the stcctm() function
    s390/cpu_mf: add store cpu counter multiple instruction support
    s390/cpum_cf: Add minimal in-kernel interface for counter measurements
    s390/cpum_cf: introduce kernel_cpumcf_alert() to obtain measurement alerts
    ...

    Linus Torvalds
     
  • Pull m68k updates from Geert Uytterhoeven:

    - VLA removal

    - gcc-8.x build fixes

    - small improvements and cleanups

    - defconfig updates

    * tag 'm68k-for-v5.1-tag1' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/linux-m68k:
    m68k: Add -ffreestanding to CFLAGS
    m68k/apollo: Fix comment in Makefile
    dio: Fix buffer overflow in case of unknown board
    m68k/defconfig: Update defconfigs for v5.0-rc1
    m68k/atari: Avoid VLA use in atari_switches_setup()
    m68k: Avoid VLA use in mangle_kernel_stack()
    m68k/mac: Use '030 reset method on SE/30
    m68k/mac: Remove obsolete comment
    m68k/mac: Skip VIA port setup unless RTC is connected
    m68k/mac: Clean up unused timer definitions
    m68k/defconfig: Drop NET_VENDOR_=n

    Linus Torvalds
     
  • Linux supports ELF binaries for ~25 years now. a.out coredumping has
    bitrotten quite significantly and would need some fixing to get it into
    shape again but considering how even the toolchains cannot create a.out
    executables in its default configuration, let's deprecate a.out support
    and remove it a couple of releases later, instead.

    Signed-off-by: Borislav Petkov
    Acked-by: Richard Weinberger
    Cc: Al Viro
    Cc: Anton Ivanov
    Cc: Jann Horn
    Cc:
    Cc:
    Cc: lkml
    Cc: Matthew Wilcox
    Cc: Thomas Gleixner
    Cc:
    Signed-off-by: Linus Torvalds

    Borislav Petkov
     
  • We're (finally) phasing out a.out support for good. As Borislav Petkov
    points out, we've supported ELF binaries for about 25 years by now, and
    coredumping in particular has bitrotted over the years.

    None of the tool chains even support generating a.out binaries any more,
    and the plan is to deprecate a.out support entirely for the kernel. But
    I want to start with just removing the core dumping code, because I can
    still imagine that somebody actually might want to support a.out as a
    simpler biinary format.

    Particularly if you generate some random binaries on the fly, ELF is a
    much more complicated format (admittedly ELF also does have a lot of
    toolchain support, mitigating that complexity a lot and you really
    should have moved over in the last 25 years).

    So it's at least somewhat possible that somebody out there has some
    workflow that still involves generating and running a.out executables.

    In contrast, it's very unlikely that anybody depends on debugging any
    legacy a.out core files. But regardless, I want this phase-out to be
    done in two steps, so that we can resurrect a.out support (if needed)
    without having to resurrect the core file dumping that is almost
    certainly not needed.

    Jann Horn pointed to the file that my first trivial
    cut at this had missed.

    And Alan Cox points out that the a.out binary loader _could_ be done in
    user space if somebody wants to, but we might keep just the loader in
    the kernel if somebody really wants it, since the loader isn't that big
    and has no really odd special cases like the core dumping does.

    Acked-by: Borislav Petkov
    Cc: Alan Cox
    Cc: Jann Horn
    Cc: Richard Weinberger
    Signed-off-by: Linus Torvalds

    Linus Torvalds
     
  • Pull crypto update from Herbert Xu:
    "API:
    - Add helper for simple skcipher modes.
    - Add helper to register multiple templates.
    - Set CRYPTO_TFM_NEED_KEY when setkey fails.
    - Require neither or both of export/import in shash.
    - AEAD decryption test vectors are now generated from encryption
    ones.
    - New option CONFIG_CRYPTO_MANAGER_EXTRA_TESTS that includes random
    fuzzing.

    Algorithms:
    - Conversions to skcipher and helper for many templates.
    - Add more test vectors for nhpoly1305 and adiantum.

    Drivers:
    - Add crypto4xx prng support.
    - Add xcbc/cmac/ecb support in caam.
    - Add AES support for Exynos5433 in s5p.
    - Remove sha384/sha512 from artpec7 as hardware cannot do partial
    hash"

    [ There is a merge of the Freescale SoC tree in order to pull in changes
    required by patches to the caam/qi2 driver. ]

    * 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6: (174 commits)
    crypto: s5p - add AES support for Exynos5433
    dt-bindings: crypto: document Exynos5433 SlimSSS
    crypto: crypto4xx - add missing of_node_put after of_device_is_available
    crypto: cavium/zip - fix collision with generic cra_driver_name
    crypto: af_alg - use struct_size() in sock_kfree_s()
    crypto: caam - remove redundant likely/unlikely annotation
    crypto: s5p - update iv after AES-CBC op end
    crypto: x86/poly1305 - Clear key material from stack in SSE2 variant
    crypto: caam - generate hash keys in-place
    crypto: caam - fix DMA mapping xcbc key twice
    crypto: caam - fix hash context DMA unmap size
    hwrng: bcm2835 - fix probe as platform device
    crypto: s5p-sss - Use AES_BLOCK_SIZE define instead of number
    crypto: stm32 - drop pointless static qualifier in stm32_hash_remove()
    crypto: chelsio - Fixed Traffic Stall
    crypto: marvell - Remove set but not used variable 'ivsize'
    crypto: ccp - Update driver messages to remove some confusion
    crypto: adiantum - add 1536 and 4096-byte test vectors
    crypto: nhpoly1305 - add a test vector with len % 16 != 0
    crypto: arm/aes-ce - update IV after partial final CTR block
    ...

    Linus Torvalds
     
  • Pull networking updates from David Miller:
    "Here we go, another merge window full of networking and #ebpf changes:

    1) Snoop DHCPACKS in batman-adv to learn MAC/IP pairs in the DHCP
    range without dealing with floods of ARP traffic, from Linus
    Lüssing.

    2) Throttle buffered multicast packet transmission in mt76, from
    Felix Fietkau.

    3) Support adaptive interrupt moderation in ice, from Brett Creeley.

    4) A lot of struct_size conversions, from Gustavo A. R. Silva.

    5) Add peek/push/pop commands to bpftool, as well as bash completion,
    from Stanislav Fomichev.

    6) Optimize sk_msg_clone(), from Vakul Garg.

    7) Add SO_BINDTOIFINDEX, from David Herrmann.

    8) Be more conservative with local resends due to local congestion,
    from Yuchung Cheng.

    9) Allow vetoing of unsupported VXLAN FDBs, from Petr Machata.

    10) Add health buffer support to devlink, from Eran Ben Elisha.

    11) Add TXQ scheduling API to mac80211, from Toke Høiland-Jørgensen.

    12) Add statistics to basic packet scheduler filter, from Cong Wang.

    13) Add GRE tunnel support for mlxsw Spectrum-2, from Nir Dotan.

    14) Lots of new IP tunneling forwarding tests, also from Nir Dotan.

    15) Add 3ad stats to bonding, from Nikolay Aleksandrov.

    16) Lots of probing improvements for bpftool, from Quentin Monnet.

    17) Various nfp drive #ebpf JIT improvements from Jakub Kicinski.

    18) Allow #ebpf programs to access gso_segs from skb shared info, from
    Eric Dumazet.

    19) Add sock_diag support for AF_XDP sockets, from Björn Töpel.

    20) Support 22260 iwlwifi devices, from Luca Coelho.

    21) Use rbtree for ipv6 defragmentation, from Peter Oskolkov.

    22) Add JMP32 instruction class support to #ebpf, from Jiong Wang.

    23) Add spinlock support to #ebpf, from Alexei Starovoitov.

    24) Support 256-bit keys and TLS 1.3 in ktls, from Dave Watson.

    25) Add device infomation API to devlink, from Jakub Kicinski.

    26) Add new timestamping socket options which are y2038 safe, from
    Deepa Dinamani.

    27) Add RX checksum offloading for various sh_eth chips, from Sergei
    Shtylyov.

    28) Flow offload infrastructure, from Pablo Neira Ayuso.

    29) Numerous cleanups, improvements, and bug fixes to the PHY layer
    and many drivers from Heiner Kallweit.

    30) Lots of changes to try and make packet scheduler classifiers run
    lockless as much as possible, from Vlad Buslov.

    31) Support BCM957504 chip in bnxt_en driver, from Erik Burrows.

    32) Add concurrency tests to tc-tests infrastructure, from Vlad
    Buslov.

    33) Add hwmon support to aquantia, from Heiner Kallweit.

    34) Allow 64-bit values for SO_MAX_PACING_RATE, from Eric Dumazet.

    And I would be remiss if I didn't thank the various major networking
    subsystem maintainers for integrating much of this work before I even
    saw it. Alexei Starovoitov, Daniel Borkmann, Pablo Neira Ayuso,
    Johannes Berg, Kalle Valo, and many others. Thank you!"

    * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next: (2207 commits)
    net/sched: avoid unused-label warning
    net: ignore sysctl_devconf_inherit_init_net without SYSCTL
    phy: mdio-mux: fix Kconfig dependencies
    net: phy: use phy_modify_mmd_changed in genphy_c45_an_config_aneg
    net: dsa: mv88e6xxx: add call to mv88e6xxx_ports_cmode_init to probe for new DSA framework
    selftest/net: Remove duplicate header
    sky2: Disable MSI on Dell Inspiron 1545 and Gateway P-79
    net/mlx5e: Update tx reporter status in case channels were successfully opened
    devlink: Add support for direct reporter health state update
    devlink: Update reporter state to error even if recover aborted
    sctp: call iov_iter_revert() after sending ABORT
    team: Free BPF filter when unregistering netdev
    ip6mr: Do not call __IP6_INC_STATS() from preemptible context
    isdn: mISDN: Fix potential NULL pointer dereference of kzalloc
    net: dsa: mv88e6xxx: support in-band signalling on SGMII ports with external PHYs
    cxgb4/chtls: Prefix adapter flags with CXGB4
    net-sysfs: Switch to bitmap_zalloc()
    mellanox: Switch to bitmap_zalloc()
    bpf: add test cases for non-pointer sanitiation logic
    mlxsw: i2c: Extend initialization by querying resources data
    ...

    Linus Torvalds
     

05 Mar, 2019

19 commits

  • This reverts commit fb3a0b61e0d4e435016cc91575d051f841791da0.

    Signed-off-by: Martin Schwidefsky

    Martin Schwidefsky
     
  • …anaszewski/linux-leds

    Pull LED updates from Jacek Anaszewski:

    - finalize previously announced support for initialization of pattern
    triggers from Device Tree

    - fix for null deref on firmware load failure in leds-lp55xx-common.c

    * tag 'leds-for-5.1-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/j.anaszewski/linux-leds:
    leds: lp55xx: fix null deref on firmware load failure
    leds: trigger: timer: Add initialization from Device Tree
    leds: trigger: oneshot: Add initialization from Device Tree
    leds: trigger: pattern: Add pattern initialization from Device Tree
    leds: Add helper for getting default pattern from Device Tree
    dt-bindings: leds: Add pattern initialization from Device Tree

    Linus Torvalds
     
  • Pull hwmon updates from Guenter Roeck:

    - Add support for LM96000, DPS-650AB to existing drivers

    - Use permission specific SENSOR[_DEVICE]_ATTR variants in several
    drivers

    - Replace S_ with octal values in several drivers

    - Update some license headers

    - Various minor fixes and improvements in several drivers

    * tag 'hwmon-for-v5.1' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging: (89 commits)
    dt-bindings: hwmon: Add missing documentation for lm75
    hwmon: (ad7418) Add device tree probing
    hwmon: (ad741x) Add DT bindings for Analog Devices AD741x
    hwmon: (ntc_thermistor) Convert to new hwmon API
    hwmon: (pwm-fan) Add optional regulator support
    dt-bindings: hwmon: Add optional regulator support to pwm-fan
    hwmon: (f71882fg) Mark expected switch fall-through
    hwmon: (ad7418) Catch I2C errors
    hwmon: (lm85) add support for LM96000 high frequencies
    hwmon: (lm85) support the LM96000
    dt-bindings: Add LM96000 as a trivial device
    hwmon: (lm85) remove freq_map size hardcodes
    hwmon: (occ) Fix license headers
    hwmon: (via-cputemp) Use permission specific SENSOR[_DEVICE]_ATTR variants
    hwmon: (vexpress-hwmon) Use permission specific SENSOR[_DEVICE]_ATTR variants
    hwmon: (tmp421) Replace S_ with octal values
    hwmon: (tmp103) Use permission specific SENSOR[_DEVICE]_ATTR variants
    hwmon: (tmp102) Replace S_ with octal values
    hwmon: (tc74) Use permission specific SENSOR[_DEVICE]_ATTR variants
    hwmon: (tc654) Use permission specific SENSOR[_DEVICE]_ATTR variants
    ...

    Linus Torvalds
     
  • Pull spi updates from Mark Brown:
    "A fairly quiet release for SPI, the biggest thing is the conversion to
    use GPIO descriptors which is now 90% done but still needs some
    stragglers converting.

    Summary:

    - Support for inter-word delays

    - Conversion of the core and most drivers to use GPIO descriptors for
    GPIO controlled chip selects

    - New drivers for NXP FlexSPI and QuadSPI, SiFive and Spreadtrum"

    * tag 'spi-v5.1' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi: (104 commits)
    spi: sh-msiof: Restrict bits per word to 8/16/24/32 on R-Car Gen2/3
    spi: sifive: Remove redundant dev_err call in sifive_spi_probe()
    spi: sifive: Remove spi_master_put in sifive_spi_remove()
    spi: spi-gpio: fix SPI_CS_HIGH capability
    spi: pxa2xx: Setup maximum supported DMA transfer length
    spi: sifive: Add driver for the SiFive SPI controller
    spi: sifive: Add DT documentation for SiFive SPI controller
    spi: sprd: Add a prefix for SPI DMA channel macros
    spi: sprd: spi: sprd: Add DMA mode support
    dt-bindings: spi: Add the DMA properties for the SPI dma mode
    spi: sprd: Add the SPI irq function for the SPI DMA mode
    dt-bindings: spi: imx: Add an entry for the i.MX8QM compatible
    spi: use gpio[d]_set_value_cansleep for setting chipselect GPIO
    spi: gpio: Advertise support for SPI_CS_HIGH
    spi: sh-msiof: Replace spi_master by spi_controller
    spi: sh-hspi: Replace spi_master by spi_controller
    spi: rspi: Replace spi_master by spi_controller
    spi: atmel-quadspi: add support for sam9x60 qspi controller
    dt-bindings: spi: atmel-quadspi: QuadSPI driver for Microchip SAM9X60
    spi: atmel-quadspi: add support for named peripheral clock
    ...

    Linus Torvalds
     
  • Pull regulator updates from Mark Brown:
    "The bulk of the standout changes in this release are cleanups, with
    the core work being a combination of factoring out common code into
    helpers and the completion of the conversion of the core to use GPIO
    descriptors.

    Summary:

    - Addition of helper functions for current limits and conversion of
    drivers to use them by Axel Lin.

    - Lots and lots of cleanups from Axel Lin.

    - Conversion of the core to use GPIO descriptors rather than numbers
    by Linus Walleij.

    - New drivers for Maxim MAX77650 and ROHM BD70528"

    * tag 'regulator-v5.1' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator: (131 commits)
    regulator: mc13xxx: Constify regulator_ops variables
    regulator: palmas: Constify palmas_smps_ramp_delay array
    regulator: wm831x-dcdc: Convert to use regulator_set/get_current_limit_regmap
    regulator: pv88090: Convert to use regulator_set/get_current_limit_regmap
    regulator: pv88080: Convert to use regulator_set/get_current_limit_regmap
    regulator: pv88060: Convert to use regulator_set/get_current_limit_regmap
    regulator: max77650: Convert to use regulator_set/get_current_limit_regmap
    regulator: lp873x: Convert to use regulator_set/get_current_limit_regmap
    regulator: lp872x: Convert to use regulator_set/get_current_limit_regmap
    regulator: da9210: Convert to use regulator_set/get_current_limit_regmap
    regulator: da9055: Convert to use regulator_set/get_current_limit_regmap
    regulator: core: Add set/get_current_limit helpers for regmap users
    regulator: Fix comment for csel_reg and csel_mask
    regulator: stm32-vrefbuf: add power management support
    regulator: 88pm8607: Remove unused fields from struct pm8607_regulator_info
    regulator: 88pm8607: Simplify pm8607_list_voltage implementation
    regulator: cpcap: Constify omap4_regulators and xoom_regulators
    regulator: cpcap: Remove unused vsel_shift from struct cpcap_regulator
    dt-bindings: regulator: tps65218: rectify units of LS3
    dt-bindings: regulator: add LS2 load switch documentation
    ...

    Linus Torvalds
     
  • Pull regmap updates from Mark Brown:
    "There are only two changes here:

    - fix for conflicting attributes on the rbtree node structure

    - implementation of main status register support in the interrupt
    code which supports chips that have a register to cut down on the
    number of per-interrupt status registers that need to be checked
    when handling interrupts"

    * tag 'regmap-v5.1' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regmap:
    regmap: Remove attribute packed from struct 'regcache_rbtree_node'
    regmap: regmap-irq: Add main status register support

    Linus Torvalds
     
  • Pull MMC updates from Ulf Hansson:
    "MMC core:
    - Fixup max_discard/trim calculations
    - Announce SD specs greater than 4.0
    - Add discard support for SD cards
    - Don't do retries for CMD6 (SWITCH command)
    - Various cleanups and re-structuring

    MMC host:
    - cqhci:
    * Add maintainers for eMMC CQHCI driver
    - sdhci:
    * Consolidate WP GPIO code
    * Add ADMA3 DMA support for V4 enabled host
    * Fixup card detect support in pci-o2micro driver
    * Add support for CMDQ and SDMMC pads auto-calibration in tegra
    driver
    * Add DCMD support and CMDQ support, support for i.MX6ULL variant,
    fixup HS400 timing issue and add HS400_ES support for i.MX8QXP
    to esdhc-imx driver
    * Avoid CRC errors by adjusting settings to speed mode and fixup
    card initialization for high speed mode in renesas_sdhi
    * Fixup timeout settings for omap
    * Enable 8 bits bus-width support in atmel-mci
    * Convert some legacy code in jz4740 driver to use modern APIs
    * Send a CMD12 to clear DPSM at errors for STM32 sdmmc mmci
    driver"

    * tag 'mmc-v5.1' of git://git.kernel.org/pub/scm/linux/kernel/git/ulfh/mmc: (69 commits)
    mmc:fix a bug when max_discard is 0
    mmc: core: Add a debug print when the card may have been replaced
    mmc: core: Add sd discard timeout
    mmc: core: Add discard support to sd
    mmc: sdhci-esdhc-imx: clear the HALT bit when enable CQE
    mmc: core: do not retry CMD6 in __mmc_switch()
    mmc: core: Convert mmc_align_data_size() into an SDIO specific function
    mmc: core: Move mmc_of_parse_voltage() to host.c
    mmc: core: Convert mmc_regulator_get_ocrmask() to static
    mmc: core: Move regulator helpers to separate file
    mmc: of_mmc_spi: Convert to mmc_of_parse_voltage()
    mmc: core: Drop retries as in-parameter to mmc_wait_for_app_cmd()
    mmc: core: Convert mmc_wait_for_app_cmd() to static
    mmc: renesas_sdhi: Change HW adjustment register according to speed mode
    mmc: mmci: Send a CMD12 to clear the DPSM at errors
    mmc: sdhci-xenon: Fixup already marked switch fall-through
    mmc: sdhci-tegra: drop ->get_ro() implementation
    mmc: sdhci-omap: drop ->get_ro() implementation
    mmc: sdhci: use WP GPIO in sdhci_check_ro()
    mmc: wmt-sdmmc: Drop unused include
    ...

    Linus Torvalds
     
  • Pull i3c updates from Boris Brezillon:

    - Add a /* fall-through */ comment in the dw-i3c-master driver

    - Update the I3C entries in MAINTAINERS to add an IRC chan

    * tag 'i3c/for-5.1' of git://git.kernel.org/pub/scm/linux/kernel/git/i3c/linux:
    i3c: master: dw-i3c-master: mark expected switch fall-through
    MAINTAINERS: Add an IRC channel for the I3C subsystem

    Linus Torvalds
     
  • Pull MTD updates from Boris Brezillon:
    "Core MTD changes:
    - Use struct_size() where appropriate
    - mtd_{read,write}() as wrappers around mtd_{read,write}_oob()
    - Fix misuse of PTR_ERR() in docg3
    - Coding style improvements in mtdcore.c

    SPI NOR changes:
    Core changes:
    - Add support of octal mode I/O transfer
    - Add a bunch of SPI NOR entries to the flash_info table

    SPI NOR controller driver changes:
    - cadence-quadspi:
    * Add support for Octal SPI controller
    * write upto 8-bytes data in STIG mode
    - mtk-quadspi:
    * rename config to a common one
    * add SNOR_HWCAPS_READ to spi_nor_hwcaps mask
    - Add Tudor as SPI-NOR co-maintainer

    NAND changes:
    NAND core changes:
    - Fourth batch of fixes/cleanup to the raw NAND core impacting
    various controller drivers (Sunxi, Marvell, MTK, TMIO, OMAP2).
    - Check the return code of nand_reset() and nand_readid_op().
    - Remove ->legacy.erase and single_erase().
    - Simplify the locking.
    - Several implicit fall through annotations.

    Raw NAND controllers drivers changes:
    - Fix various possible object reference leaks (MTK, JZ4780, Atmel)
    - ST:
    * Add support for STM32 FMC2 NAND flash controller
    - Meson:
    * Add support for Amlogic NAND flash controller
    - Denali:
    * Several cleanup patches
    - Sunxi:
    * Several cleanup patches
    - FSMC:
    * Disable NAND on remove()
    * Reset NAND timings on resume()

    SPI-NAND drivers changes:
    - Toshiba:
    * Add support for all Toshiba products.
    - Macronix:
    * Fix ECC status read.
    - Gigadevice:
    * Add support for GD5F1GQ4UExxG"

    * tag 'mtd/for-5.1' of git://git.infradead.org/linux-mtd: (64 commits)
    mtd: spi-nor: Fix wrong abbreviation HWCPAS
    mtd: spi-nor: cadence-quadspi: fix spelling mistake: "Couldnt't" -> "Couldn't"
    mtd: spi-nor: Add support for en25qh64
    mtd: spi-nor: Add support for MX25V8035F
    mtd: spi-nor: Add support for EN25Q80A
    mtd: spi-nor: cadence-quadspi: Add support for Octal SPI controller
    dt-bindings: cadence-quadspi: Add new compatible for AM654 SoC
    mtd: spi-nor: split s25fl128s into s25fl128s0 and s25fl128s1
    mtd: spi-nor: cadence-quadspi: write upto 8-bytes data in STIG mode
    mtd: spi-nor: Add support for mx25u3235f
    mtd: rawnand: denali_dt: remove single anonymous clock support
    mtd: rawnand: mtk: fix possible object reference leak
    mtd: rawnand: jz4780: fix possible object reference leak
    mtd: rawnand: atmel: fix possible object reference leak
    mtd: rawnand: fsmc: Disable NAND on remove()
    mtd: rawnand: fsmc: Reset NAND timings on resume()
    mtd: spinand: Add support for GigaDevice GD5F1GQ4UExxG
    mtd: rawnand: denali: remove unused dma_addr field from denali_nand_info
    mtd: rawnand: denali: remove unused function argument 'raw'
    mtd: rawnand: denali: remove unneeded denali_reset_irq() call
    ...

    Linus Torvalds
     
  • Pull VFIO updates from Alex Williamson:

    - Switch mdev to generic UUID API (Andy Shevchenko)

    - Fixup platform reset include paths (Masahiro Yamada)

    - Fix usage of MINORMASK (Chengguang Xu)

    - Remove noise from duplicate spapr table unsets (Alexey Kardashevskiy)

    - Restore device state after PM reset (Alex Williamson)

    - Ensure memory translation enabled for PCI ROM access (Eric Auger)

    * tag 'vfio-v5.1-rc1' of git://github.com/awilliam/linux-vfio:
    vfio_pci: Enable memory accesses before calling pci_map_rom
    vfio/pci: Restore device state on PM transition
    vfio/spapr_tce: Skip unsetting already unset table
    samples/vfio-mdev/mtty: expand minor range when registering chrdev region
    samples/vfio-mdev/mdpy: expand minor range when registering chrdev region
    samples/vfio-mdev/mbochs: expand minor range when registering chrdev region
    vfio: expand minor range when registering chrdev region
    vfio: platform: reset: fix up include directives to remove ccflags-y
    vfio-mdev: Switch to use new generic UUID API

    Linus Torvalds
     
  • The current implementation of splice() and tee() ignores O_NONBLOCK set
    on pipe file descriptors and checks only the SPLICE_F_NONBLOCK flag for
    blocking on pipe arguments. This is inconsistent since splice()-ing
    from/to non-pipe file descriptors does take O_NONBLOCK into
    consideration.

    Fix this by promoting O_NONBLOCK, when set on a pipe, to
    SPLICE_F_NONBLOCK.

    Some context for how the current implementation of splice() leads to
    inconsistent behavior. In the ongoing work[1] to add VM tracing
    capability to trace-cmd we stream tracing data over named FIFOs or
    vsockets from guests back to the host.

    When we receive SIGINT from user to stop tracing, we set O_NONBLOCK on
    the input file descriptor and set SPLICE_F_NONBLOCK for the next call to
    splice(). If splice() was blocked waiting on data from the input FIFO,
    after SIGINT splice() restarts with the same arguments (no
    SPLICE_F_NONBLOCK) and blocks again instead of returning -EAGAIN when no
    data is available.

    This differs from the splice() behavior when reading from a vsocket or
    when we're doing a traditional read()/write() loop (trace-cmd's
    --nosplice argument).

    With this patch applied we get the same behavior in all situations after
    setting O_NONBLOCK which also matches the behavior of doing a
    read()/write() loop instead of splice().

    This change does have potential of breaking users who don't expect
    EAGAIN from splice() when SPLICE_F_NONBLOCK is not set. OTOH programs
    that set O_NONBLOCK and don't anticipate EAGAIN are arguably buggy[2].

    [1] https://github.com/skaslev/trace-cmd/tree/vsock
    [2] https://github.com/torvalds/linux/blob/d47e3da1759230e394096fd742aad423c291ba48/fs/read_write.c#L1425

    Signed-off-by: Slavomir Kaslev
    Reviewed-by: Steven Rostedt (VMware)
    Signed-off-by: Linus Torvalds

    Slavomir Kaslev
     
  • David S. Miller
     
  • Pull vfs fixes from Al Viro:
    "Assorted fixes that sat in -next for a while, all over the place"

    * 'fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
    aio: Fix locking in aio_poll()
    exec: Fix mem leak in kernel_read_file
    copy_mount_string: Limit string length to PATH_MAX
    cgroup: saner refcounting for cgroup_root
    fix cgroup_do_mount() handling of failure exits

    Linus Torvalds
     
  • The label is only used from inside the #ifdef and should be
    hidden the same way, to avoid this warning:

    net/sched/act_tunnel_key.c: In function 'tunnel_key_init':
    net/sched/act_tunnel_key.c:389:1: error: label 'release_tun_meta' defined but not used [-Werror=unused-label]
    release_tun_meta:

    Fixes: 41411e2fd6b8 ("net/sched: act_tunnel_key: Add dst_cache support")
    Signed-off-by: Arnd Bergmann
    Signed-off-by: David S. Miller

    Arnd Bergmann
     
  • When CONFIG_SYSCTL is turned off, we get a link failure for
    the newly introduced tuning knob.

    net/ipv6/addrconf.o: In function `addrconf_init_net':
    addrconf.c:(.text+0x31dc): undefined reference to `sysctl_devconf_inherit_init_net'

    Add an IS_ENABLED() check to fall back to the default behavior
    (sysctl_devconf_inherit_init_net=0) here.

    Fixes: 856c395cfa63 ("net: introduce a knob to control whether to inherit devconf config")
    Signed-off-by: Arnd Bergmann
    Acked-by: Christian Brauner
    Signed-off-by: David S. Miller

    Arnd Bergmann
     
  • MDIO_BUS_MUX can only be selected if OF_MDIO is already turned on:

    WARNING: unmet direct dependencies detected for MDIO_BUS_MUX
    Depends on [n]: NETDEVICES [=y] && MDIO_BUS [=m] && OF_MDIO [=n]
    Selected by [m]:
    - MDIO_BUS_MUX_MULTIPLEXER [=m] && NETDEVICES [=y] && MDIO_BUS [=m] && OF [=y]

    Fixes: 7865ad6551c9 ("drivers: net: phy: mdio-mux: Add support for Generic Mux controls")
    Signed-off-by: Arnd Bergmann
    Signed-off-by: David S. Miller

    Arnd Bergmann
     
  • As can be seen from the usage of the return value, we should use
    phy_modify_mmd_changed() here.

    Fixes: 9a5dc8af4416 ("net: phy: add genphy_c45_an_config_aneg")
    Signed-off-by: Heiner Kallweit
    Signed-off-by: David S. Miller

    Heiner Kallweit
     
  • In the original patch I missed to add mv88e6xxx_ports_cmode_init()
    to the second probe function, the one for the new DSA framework.

    Fixes: ed8fe20205ac ("net: dsa: mv88e6xxx: prevent interrupt storm caused by mv88e6390x_port_set_cmode")
    Reported-by: Shaokun Zhang
    Suggested-by: Andrew Lunn
    Signed-off-by: Heiner Kallweit
    Reviewed-by: Andrew Lunn
    Signed-off-by: David S. Miller

    Heiner Kallweit
     
  • Remove duplicate header which is included twice.

    Signed-off-by: Sabyasachi Gupta
    Signed-off-by: Souptick Joarder
    Signed-off-by: David S. Miller

    Souptick Joarder