12 Apr, 2018

1 commit

  • When issuing a "shutdown -h now", the reboot syscall calls kernel_halt()
    which shouldn't return, otherwise one gets this panic:

    reboot: System halted
    Kernel panic - not syncing: Attempted to kill init! exitcode=0x00000000
    CPU: 0 PID: 1 Comm: systemd-shutdow Not tainted 4.16.0-32bit+ #560
    Backtrace:
    [] show_stack+0x18/0x28
    [] dump_stack+0x80/0x10c
    [] panic+0xfc/0x290
    [] do_exit+0x73c/0x914
    [] SyS_reboot+0x190/0x1d4
    [] syscall_exit+0x0/0x14

    Fix it by letting machine_halt() call machine_power_off() which doesn't
    return.

    Signed-off-by: Helge Deller

    Helge Deller
     

11 Apr, 2018

7 commits

  • Drop our own compat binfmt implementation in
    arch/parisc/kernel/binfmt_elf32.c in favour of the generic
    implementation with CONFIG_COMPAT_BINFMT_ELF.

    While cleaning up the dependencies, I noticed that ELF_PLATFORM was strangely
    defined: On a 32-bit kernel, it was defined to "PARISC", while when running in
    compat mode on a 64-bit kernel it was defined to "PARISC32". Since it doesn't
    seem to be used in glibc yet, it's now defined in both cases to "PARISC". In
    any case, it can be distinguished because it's either a 32-bit or a 64-bit ELF
    file.

    Signed-off-by: Helge Deller

    Helge Deller
     
  • and move the disable_sr_hashing() C and assembly functions into the
    .init section.

    Signed-off-by: Helge Deller

    Helge Deller
     
  • Posix and common sense requires that SI_USER not be a signal specific
    si_code. Thus add a new FPE_CONDTRAP si_code for conditional traps.

    Signed-off-by: Helge Deller
    Cc: Stephen Rothwell

    Helge Deller
     
  • Pull c6x updates from Mark Salter.

    * tag 'for-linus' of git://linux-c6x.org/git/projects/linux-c6x-upstreaming:
    c6x: pass endianness info to sparse
    c6x: fix platforms/plldata.c get_coreid build error
    c6x: remove unused KTHREAD_SIZE definition

    Linus Torvalds
     
  • Pull MIPS updates from James Hogan:
    "These are the main MIPS changes for 4.17. Rough overview:

    (1) generic platform: Add support for Microsemi Ocelot SoCs

    (2) crypto: Add CRC32 and CRC32C HW acceleration module

    (3) Various cleanups and misc improvements

    More detailed summary:

    Miscellaneous:
    - hang more efficiently on halt/powerdown/restart
    - pm-cps: Block system suspend when a JTAG probe is present
    - expand make help text for generic defconfigs
    - refactor handling of legacy defconfigs
    - determine the entry point from the ELF file header to fix microMIPS
    for certain toolchains
    - introduce isa-rev.h for MIPS_ISA_REV and use to simplify other code

    Minor cleanups:
    - DTS: boston/ci20: Unit name cleanups and correction
    - kdump: Make the default for PHYSICAL_START always 64-bit
    - constify gpio_led in Alchemy, AR7, and TXX9
    - silence a couple of W=1 warnings
    - remove duplicate includes

    Platform support:
    Generic platform:
    - add support for Microsemi Ocelot
    - dt-bindings: Add vendor prefix for Microsemi Corporation
    - dt-bindings: Add bindings for Microsemi SoCs
    - add ocelot SoC & PCB123 board DTS files
    - MAINTAINERS: Add entry for Microsemi MIPS SoCs
    - enable crc32-mips on r6 configs

    ath79:
    - fix AR724X_PLL_REG_PCIE_CONFIG offset

    BCM47xx:
    - firmware: Use mac_pton() for MAC address parsing
    - add Luxul XAP1500/XWR1750 WiFi LEDs
    - use standard reset button for Luxul XWR-1750

    BMIPS:
    - enable CONFIG_BRCMSTB_PM in bmips_stb_defconfig for build coverage
    - add STB PM, wake-up timer, watchdog DT nodes

    Octeon:
    - drop '.' after newlines in printk calls

    ralink:
    - pci-mt7621: Enable PCIe on MT7688"

    * tag 'mips_4.17' of git://git.kernel.org/pub/scm/linux/kernel/git/jhogan/mips: (37 commits)
    MIPS: BCM47XX: Use standard reset button for Luxul XWR-1750
    MIPS: BCM47XX: Add Luxul XAP1500/XWR1750 WiFi LEDs
    MIPS: Make the default for PHYSICAL_START always 64-bit
    MIPS: Use the entry point from the ELF file header
    MAINTAINERS: Add entry for Microsemi MIPS SoCs
    MIPS: generic: Add support for Microsemi Ocelot
    MIPS: mscc: Add ocelot PCB123 device tree
    MIPS: mscc: Add ocelot dtsi
    dt-bindings: mips: Add bindings for Microsemi SoCs
    dt-bindings: Add vendor prefix for Microsemi Corporation
    MIPS: ath79: Fix AR724X_PLL_REG_PCIE_CONFIG offset
    MIPS: pci-mt7620: Enable PCIe on MT7688
    MIPS: pm-cps: Block system suspend when a JTAG probe is present
    MIPS: VDSO: Replace __mips_isa_rev with MIPS_ISA_REV
    MIPS: BPF: Replace __mips_isa_rev with MIPS_ISA_REV
    MIPS: cpu-features.h: Replace __mips_isa_rev with MIPS_ISA_REV
    MIPS: Introduce isa-rev.h to define MIPS_ISA_REV
    MIPS: Hang more efficiently on halt/powerdown/restart
    FIRMWARE: bcm47xx_nvram: Replace mac address parsing
    MIPS: BMIPS: Add Broadcom STB watchdog nodes
    ...

    Linus Torvalds
     
  • Pull libnvdimm updates from Dan Williams:
    "This cycle was was not something I ever want to repeat as there were
    several late changes that have only now just settled.

    Half of the branch up to commit d2c997c0f145 ("fs, dax: use
    page->mapping to warn...") have been in -next for several releases.
    The of_pmem driver and the address range scrub rework were late
    arrivals, and the dax work was scaled back at the last moment.

    The of_pmem driver missed a previous merge window due to an oversight.
    A sense of obligation to rectify that miss is why it is included for
    4.17. It has acks from PowerPC folks. Stephen reported a build failure
    that only occurs when merging it with your latest tree, for now I have
    fixed that up by disabling modular builds of of_pmem. A test merge
    with your tree has received a build success report from the 0day robot
    over 156 configs.

    An initial version of the ARS rework was submitted before the merge
    window. It is self contained to libnvdimm, a net code reduction, and
    passing all unit tests.

    The filesystem-dax changes are based on the wait_var_event()
    functionality from tip/sched/core. However, late review feedback
    showed that those changes regressed truncate performance to a large
    degree. The branch was rewound to drop the truncate behavior change
    and now only includes preparation patches and cleanups (with full acks
    and reviews). The finalization of this dax-dma-vs-trnucate work will
    need to wait for 4.18.

    Summary:

    - A rework of the filesytem-dax implementation provides for detection
    of unmap operations (truncate / hole punch) colliding with
    in-progress device-DMA. A fix for these collisions remains a
    work-in-progress pending resolution of truncate latency and
    starvation regressions.

    - The of_pmem driver expands the users of libnvdimm outside of x86
    and ACPI to describe an implementation of persistent memory on
    PowerPC with Open Firmware / Device tree.

    - Address Range Scrub (ARS) handling is completely rewritten to
    account for the fact that ARS may run for 100s of seconds and there
    is no platform defined way to cancel it. ARS will now no longer
    block namespace initialization.

    - The NVDIMM Namespace Label implementation is updated to handle
    label areas as small as 1K, down from 128K.

    - Miscellaneous cleanups and updates to unit test infrastructure"

    * tag 'libnvdimm-for-4.17' of git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm: (39 commits)
    libnvdimm, of_pmem: workaround OF_NUMA=n build error
    nfit, address-range-scrub: add module option to skip initial ars
    nfit, address-range-scrub: rework and simplify ARS state machine
    nfit, address-range-scrub: determine one platform max_ars value
    powerpc/powernv: Create platform devs for nvdimm buses
    doc/devicetree: Persistent memory region bindings
    libnvdimm: Add device-tree based driver
    libnvdimm: Add of_node to region and bus descriptors
    libnvdimm, region: quiet region probe
    libnvdimm, namespace: use a safe lookup for dimm device name
    libnvdimm, dimm: fix dpa reservation vs uninitialized label area
    libnvdimm, testing: update the default smart ctrl_temperature
    libnvdimm, testing: Add emulation for smart injection commands
    nfit, address-range-scrub: introduce nfit_spa->ars_state
    libnvdimm: add an api to cast a 'struct nd_region' to its 'struct device'
    nfit, address-range-scrub: fix scrub in-progress reporting
    dax, dm: allow device-mapper to operate without dax support
    dax: introduce CONFIG_DAX_DRIVER
    fs, dax: use page->mapping to warn if truncate collides with a busy page
    ext2, dax: introduce ext2_dax_aops
    ...

    Linus Torvalds
     
  • Pull RTC updates from Alexandre Belloni:
    "This contains a few series that have been in preparation for a while
    and that will help systems with RTCs that will fail in 2038, 2069 or
    2100.

    Subsystem:
    - Add tracepoints
    - Rework of the RTC/nvmem API to allow drivers to discard struct
    nvmem_config after registration
    - New range API, drivers can now expose the useful range of the RTC
    - New offset API the core is now able to add an offset to the RTC
    time, modifying the supported range.
    - Multiple rtc_time64_to_tm fixes
    - Handle time_t overflow on 32 bit platforms in the core instead of
    letting drivers do crazy things.
    - remove rtc_control API

    New driver:
    - Intersil ISL12026

    Drivers:
    - Drivers exposing the RTC non volatile memory have been converted to
    use nvmem
    - Removed useless time and date validation
    - Removed an indirection pattern that was a cargo cult from ancient
    drivers
    - Removed VLA usage
    - Fixed a possible race condition in probe functions
    - AB8540 support is dropped from ab8500
    - pcf85363 now has alarm support"

    * tag 'rtc-4.17' of git://git.kernel.org/pub/scm/linux/kernel/git/abelloni/linux: (128 commits)
    rtc: snvs: Fix usage of snvs_rtc_enable
    rtc: mt7622: fix module autoloading for OF platform drivers
    rtc: isl12022: use true and false for boolean values
    rtc: ab8500: Drop AB8540 support
    rtc: remove a warning during scripts/kernel-doc step
    rtc: 88pm860x: remove artificial limitation
    rtc: 88pm80x: remove artificial limitation
    rtc: st-lpc: remove artificial limitation
    rtc: mrst: remove artificial limitation
    rtc: mv: remove artificial limitation
    rtc: hctosys: Ensure system time doesn't overflow time_t
    parisc: time: stop validating rtc_time in .read_time
    rtc: pcf85063: fix clearing bits in pcf85063_start_clock
    rtc: at91sam9: Set name of regmap_config
    rtc: s5m: Remove VLA usage
    rtc: s5m: Move enum from rtc.h to rtc-s5m.c
    rtc: remove VLA usage
    rtc: Add useful timestamp definitions
    rtc: Add one offset seconds to expand RTC range
    rtc: Factor out the RTC range validation into rtc_valid_range()
    ...

    Linus Torvalds
     

10 Apr, 2018

11 commits

  • c6x depends on the macro '_BIG_ENDIAN' being defined or not
    to correctly select or define endian-specific macros, structures
    or pieces of code.

    This macro is predefined by the compiler but sparse knows nothing
    about it and thus may pre-process files differently from what
    gcc would.

    Fix this by passing '-D_BIG_ENDIAN' when compiling a big-endian
    kernel, like GCC would have done.

    To: Mark Salter
    To: Aurelien Jacquiot
    CC: linux-c6x-dev@linux-c6x.org
    Signed-off-by: Luc Van Oostenryck
    Signed-off-by: Mark Salter

    Luc Van Oostenryck
     
  • Fix build error reported by the 0day bot by including the header
    file for that macro.

    Fixes this build error: (should fix; not tested)
    arch/c6x/platforms/plldata.c: In function 'c6472_setup_clocks':
    arch/c6x/platforms/plldata.c:279:33: error: implicit declaration of function 'get_coreid'; did you mean 'get_order'? [-Werror=implicit-function-declaration]
    c6x_core_clk.parent = &sysclks[get_coreid() + 1];

    Reported-by: Fengguang Wu
    Cc: Mark Salter
    Cc: Aurelien Jacquiot
    Cc: linux-c6x-dev@linux-c6x.org
    Cc: Ingo Molnar

    Signed-off-by: Randy Dunlap
    Signed-off-by: Mark Salter

    Randy Dunlap
     
  • KTHREAD_SIZE has never been used since it has been defined for c6x arch.
    Let's remove this useless definition.

    Signed-off-by: Jérémy Lefaure
    Signed-off-by: Mark Salter

    Jérémy Lefaure
     
  • Pull networking fixes from David Miller:

    1) The sockmap code has to free socket memory on close if there is
    corked data, from John Fastabend.

    2) Tunnel names coming from userspace need to be length validated. From
    Eric Dumazet.

    3) arp_filter() has to take VRFs properly into account, from Miguel
    Fadon Perlines.

    4) Fix oops in error path of tcf_bpf_init(), from Davide Caratti.

    5) Missing idr_remove() in u32_delete_key(), from Cong Wang.

    6) More syzbot stuff. Several use of uninitialized value fixes all
    over, from Eric Dumazet.

    7) Do not leak kernel memory to userspace in sctp, also from Eric
    Dumazet.

    8) Discard frames from unused ports in DSA, from Andrew Lunn.

    9) Fix DMA mapping and reset/failover problems in ibmvnic, from Thomas
    Falcon.

    10) Do not access dp83640 PHY registers prematurely after reset, from
    Esben Haabendal.

    * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (46 commits)
    vhost-net: set packet weight of tx polling to 2 * vq size
    net: thunderx: rework mac addresses list to u64 array
    inetpeer: fix uninit-value in inet_getpeer
    dp83640: Ensure against premature access to PHY registers after reset
    devlink: convert occ_get op to separate registration
    ARM: dts: ls1021a: Specify TBIPA register address
    net/fsl_pq_mdio: Allow explicit speficition of TBIPA address
    ibmvnic: Do not reset CRQ for Mobility driver resets
    ibmvnic: Fix failover case for non-redundant configuration
    ibmvnic: Fix reset scheduler error handling
    ibmvnic: Zero used TX descriptor counter on reset
    ibmvnic: Fix DMA mapping mistakes
    tipc: use the right skb in tipc_sk_fill_sock_diag()
    sctp: sctp_sockaddr_af must check minimal addr length for AF_INET6
    net: dsa: Discard frames from unused ports
    sctp: do not leak kernel memory to user space
    soreuseport: initialise timewait reuseport field
    ipv4: fix uninit-value in ip_route_output_key_hash_rcu()
    dccp: initialize ireq->ir_mark
    net: fix uninit-value in __hw_addr_add_ex()
    ...

    Linus Torvalds
     
  • Pull kvm updates from Paolo Bonzini:
    "ARM:
    - VHE optimizations

    - EL2 address space randomization

    - speculative execution mitigations ("variant 3a", aka execution past
    invalid privilege register access)

    - bugfixes and cleanups

    PPC:
    - improvements for the radix page fault handler for HV KVM on POWER9

    s390:
    - more kvm stat counters

    - virtio gpu plumbing

    - documentation

    - facilities improvements

    x86:
    - support for VMware magic I/O port and pseudo-PMCs

    - AMD pause loop exiting

    - support for AMD core performance extensions

    - support for synchronous register access

    - expose nVMX capabilities to userspace

    - support for Hyper-V signaling via eventfd

    - use Enlightened VMCS when running on Hyper-V

    - allow userspace to disable MWAIT/HLT/PAUSE vmexits

    - usual roundup of optimizations and nested virtualization bugfixes

    Generic:
    - API selftest infrastructure (though the only tests are for x86 as
    of now)"

    * tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm: (174 commits)
    kvm: x86: fix a prototype warning
    kvm: selftests: add sync_regs_test
    kvm: selftests: add API testing infrastructure
    kvm: x86: fix a compile warning
    KVM: X86: Add Force Emulation Prefix for "emulate the next instruction"
    KVM: X86: Introduce handle_ud()
    KVM: vmx: unify adjacent #ifdefs
    x86: kvm: hide the unused 'cpu' variable
    KVM: VMX: remove bogus WARN_ON in handle_ept_misconfig
    Revert "KVM: X86: Fix SMRAM accessing even if VM is shutdown"
    kvm: Add emulation for movups/movupd
    KVM: VMX: raise internal error for exception during invalid protected mode state
    KVM: nVMX: Optimization: Dont set KVM_REQ_EVENT when VMExit with nested_run_pending
    KVM: nVMX: Require immediate-exit when event reinjected to L2 and L1 event pending
    KVM: x86: Fix misleading comments on handling pending exceptions
    KVM: x86: Rename interrupt.pending to interrupt.injected
    KVM: VMX: No need to clear pending NMI/interrupt on inject realmode interrupt
    x86/kvm: use Enlightened VMCS when running on Hyper-V
    x86/hyper-v: detect nested features
    x86/hyper-v: define struct hv_enlightened_vmcs and clean field bits
    ...

    Linus Torvalds
     
  • Dan Williams
     
  • Pull ARM SA1100 updates from Russell King:
    "We have support for arbitary MMIO registers providing platform GPIOs,
    which allows us to abstract some of the SA11x0 CF support.

    This set of updates makes that change"

    * 'for-linus-sa1100' of git://git.armlinux.org.uk/~rmk/linux-arm:
    ARM: sa1100/simpad: switch simpad CF to use gpiod APIs
    ARM: sa1100/shannon: convert to generic CF sockets
    ARM: sa1100/nanoengine: convert to generic CF sockets
    ARM: sa1100/h3xxx: switch h3xxx PCMCIA to use gpiod APIs
    ARM: sa1100/cerf: convert to generic CF sockets
    ARM: sa1100/assabet: convert to generic CF sockets
    ARM: sa1100: provide infrastructure to support generic CF sockets
    pcmcia: sa1100: provide generic CF support

    Linus Torvalds
     
  • Pull ARM updates from Russell King:
    "A number of core ARM changes:

    - Refactoring linker script by Nicolas Pitre

    - Enable source fortification

    - Add support for Cortex R8"

    * 'for-linus' of git://git.armlinux.org.uk/~rmk/linux-arm:
    ARM: decompressor: fix warning introduced in fortify patch
    ARM: 8751/1: Add support for Cortex-R8 processor
    ARM: 8749/1: Kconfig: Add ARCH_HAS_FORTIFY_SOURCE
    ARM: simplify and fix linker script for TCM
    ARM: linker script: factor out TCM bits
    ARM: linker script: factor out vectors and stubs
    ARM: linker script: factor out unwinding table sections
    ARM: linker script: factor out stuff for the .text section
    ARM: linker script: factor out stuff for the DISCARD section
    ARM: linker script: factor out some common definitions between XIP and non-XIP

    Linus Torvalds
     
  • Pull m68knommu update from Greg Ungerer:
    "Only a single fix to set the DMA masks in the ColdFire FEC platform
    data structure.

    This stops the warning from dma-mapping.h at boot time"

    * 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/gerg/m68knommu:
    m68k: set dma and coherent masks for platform FEC ethernets

    Linus Torvalds
     
  • Pull alpha updates from Matt Turner:
    "A few small changes for alpha"

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mattst88/alpha:
    alpha: io: reorder barriers to guarantee writeX() and iowriteX() ordering
    alpha: Implement CPU vulnerabilities sysfs functions.
    alpha: rtc: stop validating rtc_time in .read_time
    alpha: rtc: remove unused set_mmss ops

    Linus Torvalds
     
  • Pull s390 updates from Martin Schwidefsky:

    - Improvements for the spectre defense:
    * The spectre related code is consolidated to a single file
    nospec-branch.c
    * Automatic enable/disable for the spectre v2 defenses (expoline vs.
    nobp)
    * Syslog messages for specve v2 are added
    * Enable CONFIG_GENERIC_CPU_VULNERABILITIES and define the attribute
    functions for spectre v1 and v2

    - Add helper macros for assembler alternatives and use them to shorten
    the code in entry.S.

    - Add support for persistent configuration data via the SCLP Store Data
    interface. The H/W interface requires a page table that uses 4K pages
    only, the code to setup such an address space is added as well.

    - Enable virtio GPU emulation in QEMU. To do this the depends
    statements for a few common Kconfig options are modified.

    - Add support for format-3 channel path descriptors and add a binary
    sysfs interface to export the associated utility strings.

    - Add a sysfs attribute to control the IFCC handling in case of
    constant channel errors.

    - The vfio-ccw changes from Cornelia.

    - Bug fixes and cleanups.

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux: (40 commits)
    s390/kvm: improve stack frame constants in entry.S
    s390/lpp: use assembler alternatives for the LPP instruction
    s390/entry.S: use assembler alternatives
    s390: add assembler macros for CPU alternatives
    s390: add sysfs attributes for spectre
    s390: report spectre mitigation via syslog
    s390: add automatic detection of the spectre defense
    s390: move nobp parameter functions to nospec-branch.c
    s390/cio: add util_string sysfs attribute
    s390/chsc: query utility strings via fmt3 channel path descriptor
    s390/cio: rename struct channel_path_desc
    s390/cio: fix unbind of io_subchannel_driver
    s390/qdio: split up CCQ handling for EQBS / SQBS
    s390/qdio: don't retry EQBS after CCQ 96
    s390/qdio: restrict buffer merging to eligible devices
    s390/qdio: don't merge ERROR output buffers
    s390/qdio: simplify math in get_*_buffer_frontier()
    s390/decompressor: trim uncompressed image head during the build
    s390/crypto: Fix kernel crash on aes_s390 module remove.
    s390/defkeymap: fix global init to zero
    ...

    Linus Torvalds
     

09 Apr, 2018

2 commits


08 Apr, 2018

8 commits

  • memory-barriers.txt has been updated with the following requirement.

    "When using writel(), a prior wmb() is not needed to guarantee that the
    cache coherent memory writes have completed before writing to the MMIO
    region."

    Current writeX() and iowriteX() implementations on alpha are not
    satisfying this requirement as the barrier is after the register write.

    Move mb() in writeX() and iowriteX() functions to guarantee that HW
    observes memory changes before performing register operations.

    Signed-off-by: Sinan Kaya
    Reported-by: Arnd Bergmann
    Signed-off-by: Matt Turner

    Sinan Kaya
     
  • Implement the CPU vulnerabilty show functions for meltdown, spectre_v1
    and spectre_v2 on Alpha.

    Tests on XP1000 (EV67/667MHz) and ES45 (EV68CB/1.25GHz) show them
    to be vulnerable to Meltdown and Spectre V1. In the case of
    Meltdown I saw a 1 to 2% success rate in reading bytes on the
    XP1000 and 50 to 60% success rate on the ES45. (This compares to
    99.97% success reported for Intel CPUs.) Report EV6 and later
    CPUs as vulnerable.

    Tests on PWS600au (EV56/600MHz) for Spectre V1 attack were
    unsuccessful (though I did not try particularly hard) so mark EV4
    through to EV56 as not vulnerable.

    Signed-off-by: Michael Cree
    Signed-off-by: Matt Turner

    Michael Cree
     
  • The RTC core is always calling rtc_valid_tm after the read_time callback.
    It is not necessary to call it just before returning from the callback.

    Signed-off-by: Alexandre Belloni
    Signed-off-by: Matt Turner

    Alexandre Belloni
     
  • The .set_mmss and .setmmss64 ops are only called when the RTC is not
    providing an implementation for the .set_time callback.

    On alpha, .set_time is provided so .set_mmss64 is never called. Remove the
    unused code.

    Signed-off-by: Alexandre Belloni
    Signed-off-by: Matt Turner

    Alexandre Belloni
     
  • Pull alpha syscall cleanups from Al Viro:
    "A couple of SYSCALL_DEFINE conversions and removal of pointless (and
    bitrotted) piece stuck in ret_from_kernel_thread since the
    kernel_exceve/kernel_thread conversions six years ago"

    * 'misc.compat' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
    alpha: get rid of pointless insn in ret_from_kernel_thread
    alpha: switch pci syscalls to SYSCALL_DEFINE

    Linus Torvalds
     
  • Pull sparc syscall cleanups from Al Viro:
    "sparc syscall stuff - killing pointless wrappers, conversions to
    {COMPAT_,}SYSCALL_DEFINE"

    * 'misc.sparc' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
    sparc: get rid of asm wrapper for nis_syscall()
    sparc: switch compat {f,}truncate64() to COMPAT_SYSCALL_DEFINE
    sparc: switch compat pread64 and pwrite64 to COMPAT_SYSCALL_DEFINE
    convert compat sync_file_range() to COMPAT_SYSCALL_DEFINE
    switch sparc_remap_file_pages() to SYSCALL_DEFINE
    sparc: get rid of memory_ordering(2) wrapper
    sparc: trivial conversions to {COMPAT_,}SYSCALL_DEFINE()
    sparc: bury a zombie extern that had been that way for twenty years
    sparc: get rid of remaining SIGN... wrappers
    sparc: kill useless SIGN... wrappers
    sparc: get rid of sys_sparc_pipe() wrappers

    Linus Torvalds
     
  • Pull i2c updates from Wolfram Sang:

    -I2C core now reports proper OF style module alias. I'd like to repeat
    the note from the commit msg here (Thanks, Javier!):

    NOTE: This patch may break out-of-tree drivers that were relying
    on this behavior, and only had an I2C device ID table even
    when the device was registered via OF.

    There are no remaining drivers in mainline that do this, but
    out-of-tree drivers have to be fixed and define a proper OF
    device ID table to have module auto-loading working.

    - new driver for the SynQuacer I2C controller

    - major refactoring of the QUP driver

    - the piix4 driver now uses request_muxed_region which should fix a
    long standing resource conflict with the sp5100_tco watchdog

    - a bunch of small core & driver improvements

    * 'i2c/for-4.17' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux: (53 commits)
    i2c: add support for Socionext SynQuacer I2C controller
    dt-bindings: i2c: add binding for Socionext SynQuacer I2C
    i2c: Update i2c_trace_msg static key to modern api
    i2c: fix parameter of trace_i2c_result
    i2c: imx: avoid taking clk_prepare mutex in PM callbacks
    i2c: imx: use clk notifier for rate changes
    i2c: make i2c_check_addr_validity() static
    i2c: rcar: fix mask value of prohibited bit
    dt-bindings: i2c: document R8A77965 bindings
    i2c: pca-platform: drop gpio from platform data
    i2c: pca-platform: use device_property_read_u32
    i2c: pca-platform: unconditionally use devm_gpiod_get_optional
    sh: sh7785lcr: add GPIO lookup table for i2c controller reset
    i2c: qup: reorganization of driver code to remove polling for qup v2
    i2c: qup: reorganization of driver code to remove polling for qup v1
    i2c: qup: send NACK for last read sub transfers
    i2c: qup: fix buffer overflow for multiple msg of maximum xfer len
    i2c: qup: change completion timeout according to transfer length
    i2c: qup: use the complete transfer length to choose DMA mode
    i2c: qup: proper error handling for i2c error in BAM mode
    ...

    Linus Torvalds
     
  • Pull powerpc updates from Michael Ellerman:
    "Notable changes:

    - Support for 4PB user address space on 64-bit, opt-in via mmap().

    - Removal of POWER4 support, which was accidentally broken in 2016
    and no one noticed, and blocked use of some modern instructions.

    - Workarounds so that the hypervisor can enable Transactional Memory
    on Power9.

    - A series to disable the DAWR (Data Address Watchpoint Register) on
    Power9.

    - More information displayed in the meltdown/spectre_v1/v2 sysfs
    files.

    - A vpermxor (Power8 Altivec) implementation for the raid6 Q
    Syndrome.

    - A big series to make the allocation of our pacas (per cpu area),
    kernel page tables, and per-cpu stacks NUMA aware when using the
    Radix MMU on Power9.

    And as usual many fixes, reworks and cleanups.

    Thanks to: Aaro Koskinen, Alexandre Belloni, Alexey Kardashevskiy,
    Alistair Popple, Andy Shevchenko, Aneesh Kumar K.V, Anshuman Khandual,
    Balbir Singh, Benjamin Herrenschmidt, Christophe Leroy, Christophe
    Lombard, Cyril Bur, Daniel Axtens, Dave Young, Finn Thain, Frederic
    Barrat, Gustavo Romero, Horia Geantă, Jonathan Neuschäfer, Kees Cook,
    Larry Finger, Laurent Dufour, Laurent Vivier, Logan Gunthorpe,
    Madhavan Srinivasan, Mark Greer, Mark Hairgrove, Markus Elfring,
    Mathieu Malaterre, Matt Brown, Matt Evans, Mauricio Faria de Oliveira,
    Michael Neuling, Naveen N. Rao, Nicholas Piggin, Paul Mackerras,
    Philippe Bergheaud, Ram Pai, Rob Herring, Sam Bobroff, Segher
    Boessenkool, Simon Guo, Simon Horman, Stewart Smith, Sukadev
    Bhattiprolu, Suraj Jitindar Singh, Thiago Jung Bauermann, Vaibhav
    Jain, Vaidyanathan Srinivasan, Vasant Hegde, Wei Yongjun"

    * tag 'powerpc-4.17-1' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux: (207 commits)
    powerpc/64s/idle: Fix restore of AMOR on POWER9 after deep sleep
    powerpc/64s: Fix POWER9 DD2.2 and above in cputable features
    powerpc/64s: Fix pkey support in dt_cpu_ftrs, add CPU_FTR_PKEY bit
    powerpc/64s: Fix dt_cpu_ftrs to have restore_cpu clear unwanted LPCR bits
    Revert "powerpc/64s/idle: POWER9 ESL=0 stop avoid save/restore overhead"
    powerpc: iomap.c: introduce io{read|write}64_{lo_hi|hi_lo}
    powerpc: io.h: move iomap.h include so that it can use readq/writeq defs
    cxl: Fix possible deadlock when processing page faults from cxllib
    powerpc/hw_breakpoint: Only disable hw breakpoint if cpu supports it
    powerpc/mm/radix: Update command line parsing for disable_radix
    powerpc/mm/radix: Parse disable_radix commandline correctly.
    powerpc/mm/hugetlb: initialize the pagetable cache correctly for hugetlb
    powerpc/mm/radix: Update pte fragment count from 16 to 256 on radix
    powerpc/mm/keys: Update documentation and remove unnecessary check
    powerpc/64s/idle: POWER9 ESL=0 stop avoid save/restore overhead
    powerpc/64s/idle: Consolidate power9_offline_stop()/power9_idle_stop()
    powerpc/powernv: Always stop secondaries before reboot/shutdown
    powerpc: hard disable irqs in smp_send_stop loop
    powerpc: use NMI IPI for smp_send_stop
    powerpc/powernv: Fix SMT4 forcing idle code
    ...

    Linus Torvalds
     

07 Apr, 2018

6 commits

  • Scan the devicetree for an nvdimm-bus compatible and create
    a platform device for them.

    Signed-off-by: Oliver O'Halloran
    Signed-off-by: Dan Williams

    Oliver O'Halloran
     
  • Pull PCI updates from Bjorn Helgaas:

    - move pci_uevent_ers() out of pci.h (Michael Ellerman)

    - skip ASPM common clock warning if BIOS already configured it (Sinan
    Kaya)

    - fix ASPM Coverity warning about threshold_ns (Gustavo A. R. Silva)

    - remove last user of pci_get_bus_and_slot() and the function itself
    (Sinan Kaya)

    - add decoding for 16 GT/s link speed (Jay Fang)

    - add interfaces to get max link speed and width (Tal Gilboa)

    - add pcie_bandwidth_capable() to compute max supported link bandwidth
    (Tal Gilboa)

    - add pcie_bandwidth_available() to compute bandwidth available to
    device (Tal Gilboa)

    - add pcie_print_link_status() to log link speed and whether it's
    limited (Tal Gilboa)

    - use PCI core interfaces to report when device performance may be
    limited by its slot instead of doing it in each driver (Tal Gilboa)

    - fix possible cpqphp NULL pointer dereference (Shawn Lin)

    - rescan more of the hierarchy on ACPI hotplug to fix Thunderbolt/xHCI
    hotplug (Mika Westerberg)

    - add support for PCI I/O port space that's neither directly accessible
    via CPU in/out instructions nor directly mapped into CPU physical
    memory space. This is fairly intrusive and includes minor changes to
    interfaces used for I/O space on most platforms (Zhichang Yuan, John
    Garry)

    - add support for HiSilicon Hip06/Hip07 LPC I/O space (Zhichang Yuan,
    John Garry)

    - use PCI_EXP_DEVCTL2_COMP_TIMEOUT in rapidio/tsi721 (Bjorn Helgaas)

    - remove possible NULL pointer dereference in of_pci_bus_find_domain_nr()
    (Shawn Lin)

    - report quirk timings with dev_info (Bjorn Helgaas)

    - report quirks that take longer than 10ms (Bjorn Helgaas)

    - add and use Altera Vendor ID (Johannes Thumshirn)

    - tidy Makefiles and comments (Bjorn Helgaas)

    - don't set up INTx if MSI or MSI-X is enabled to align cris, frv,
    ia64, and mn10300 with x86 (Bjorn Helgaas)

    - move pcieport_if.h to drivers/pci/pcie/ to encapsulate it (Frederick
    Lawler)

    - merge pcieport_if.h into portdrv.h (Bjorn Helgaas)

    - move workaround for BIOS PME issue from portdrv to PCI core (Bjorn
    Helgaas)

    - completely disable portdrv with "pcie_ports=compat" (Bjorn Helgaas)

    - remove portdrv link order dependency (Bjorn Helgaas)

    - remove support for unused VC portdrv service (Bjorn Helgaas)

    - simplify portdrv feature permission checking (Bjorn Helgaas)

    - remove "pcie_hp=nomsi" parameter (use "pci=nomsi" instead) (Bjorn
    Helgaas)

    - remove unnecessary "pcie_ports=auto" parameter (Bjorn Helgaas)

    - use cached AER capability offset (Frederick Lawler)

    - don't enable DPC if BIOS hasn't granted AER control (Mika Westerberg)

    - rename pcie-dpc.c to dpc.c (Bjorn Helgaas)

    - use generic pci_mmap_resource_range() instead of powerpc and xtensa
    arch-specific versions (David Woodhouse)

    - support arbitrary PCI host bridge offsets on sparc (Yinghai Lu)

    - remove System and Video ROM reservations on sparc (Bjorn Helgaas)

    - probe for device reset support during enumeration instead of runtime
    (Bjorn Helgaas)

    - add ACS quirk for Ampere (née APM) root ports (Feng Kan)

    - add function 1 DMA alias quirk for Marvell 88SE9220 (Thomas
    Vincent-Cross)

    - protect device restore with device lock (Sinan Kaya)

    - handle failure of FLR gracefully (Sinan Kaya)

    - handle CRS (config retry status) after device resets (Sinan Kaya)

    - skip various config reads for SR-IOV VFs as an optimization
    (KarimAllah Ahmed)

    - consolidate VPD code in vpd.c (Bjorn Helgaas)

    - add Tegra dependency on PCI_MSI_IRQ_DOMAIN (Arnd Bergmann)

    - add DT support for R-Car r8a7743 (Biju Das)

    - fix a PCI_EJECT vs PCI_BUS_RELATIONS race condition in Hyper-V host
    bridge driver that causes a general protection fault (Dexuan Cui)

    - fix Hyper-V host bridge hang in MSI setup on 1-vCPU VMs with SR-IOV
    (Dexuan Cui)

    - fix Hyper-V host bridge hang when ejecting a VF before setting up MSI
    (Dexuan Cui)

    - make several structures static (Fengguang Wu)

    - increase number of MSI IRQs supported by Synopsys DesignWare bridges
    from 32 to 256 (Gustavo Pimentel)

    - implemented multiplexed IRQ domain API and remove obsolete MSI IRQ
    API from DesignWare drivers (Gustavo Pimentel)

    - add Tegra power management support (Manikanta Maddireddy)

    - add Tegra loadable module support (Manikanta Maddireddy)

    - handle 64-bit BARs correctly in endpoint support (Niklas Cassel)

    - support optional regulator for HiSilicon STB (Shawn Guo)

    - use regulator bulk API for Qualcomm apq8064 (Srinivas Kandagatla)

    - support power supplies for Qualcomm msm8996 (Srinivas Kandagatla)

    * tag 'pci-v4.17-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci: (123 commits)
    MAINTAINERS: Add John Garry as maintainer for HiSilicon LPC driver
    HISI LPC: Add ACPI support
    ACPI / scan: Do not enumerate Indirect IO host children
    ACPI / scan: Rename acpi_is_serial_bus_slave() for more general use
    HISI LPC: Support the LPC host on Hip06/Hip07 with DT bindings
    of: Add missing I/O range exception for indirect-IO devices
    PCI: Apply the new generic I/O management on PCI IO hosts
    PCI: Add fwnode handler as input param of pci_register_io_range()
    PCI: Remove __weak tag from pci_register_io_range()
    MAINTAINERS: Add missing /drivers/pci/cadence directory entry
    fm10k: Report PCIe link properties with pcie_print_link_status()
    net/mlx5e: Use pcie_bandwidth_available() to compute bandwidth
    net/mlx5: Report PCIe link properties with pcie_print_link_status()
    net/mlx4_core: Report PCIe link properties with pcie_print_link_status()
    PCI: Add pcie_print_link_status() to log link speed and whether it's limited
    PCI: Add pcie_bandwidth_available() to compute bandwidth available to device
    misc: pci_endpoint_test: Handle 64-bit BARs properly
    PCI: designware-ep: Make dw_pcie_ep_reset_bar() handle 64-bit BARs properly
    PCI: endpoint: Make sure that BAR_5 does not have 64-bit flag set when clearing
    PCI: endpoint: Make epc->ops->clear_bar()/pci_epc_clear_bar() take struct *epf_bar
    ...

    Linus Torvalds
     
  • The original patch submitted for support of the Luxul XWR-1750 used a
    non-standard button handler for the reset button. This patch will allow
    using the standard KEY_RESTART

    Signed-off-by: Dan Haab
    Cc: Ralf Baechle
    Cc: Hauke Mehrtens
    Cc: linux-mips@linux-mips.org
    Patchwork: https://patchwork.linux-mips.org/patch/18981/
    Signed-off-by: James Hogan

    Dan Haab
     
  • Merge updates from Andrew Morton:

    - a few misc things

    - ocfs2 updates

    - the v9fs maintainers have been missing for a long time. I've taken
    over v9fs patch slinging.

    - most of MM

    * emailed patches from Andrew Morton : (116 commits)
    mm,oom_reaper: check for MMF_OOM_SKIP before complaining
    mm/ksm: fix interaction with THP
    mm/memblock.c: cast constant ULLONG_MAX to phys_addr_t
    headers: untangle kmemleak.h from mm.h
    include/linux/mmdebug.h: make VM_WARN* non-rvals
    mm/page_isolation.c: make start_isolate_page_range() fail if already isolated
    mm: change return type to vm_fault_t
    mm, oom: remove 3% bonus for CAP_SYS_ADMIN processes
    mm, page_alloc: wakeup kcompactd even if kswapd cannot free more memory
    kernel/fork.c: detect early free of a live mm
    mm: make counting of list_lru_one::nr_items lockless
    mm/swap_state.c: make bool enable_vma_readahead and swap_vma_readahead() static
    block_invalidatepage(): only release page if the full page was invalidated
    mm: kernel-doc: add missing parameter descriptions
    mm/swap.c: remove @cold parameter description for release_pages()
    mm/nommu: remove description of alloc_vm_area
    zram: drop max_zpage_size and use zs_huge_class_size()
    zsmalloc: introduce zs_huge_class_size()
    mm: fix races between swapoff and flush dcache
    fs/direct-io.c: minor cleanups in do_blockdev_direct_IO
    ...

    Linus Torvalds
     
  • Pull misc vfs updates from Al Viro:
    "Assorted stuff, including Christoph's I_DIRTY patches"

    * 'work.misc' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
    fs: move I_DIRTY_INODE to fs.h
    ubifs: fix bogus __mark_inode_dirty(I_DIRTY_SYNC | I_DIRTY_DATASYNC) call
    ntfs: fix bogus __mark_inode_dirty(I_DIRTY_SYNC | I_DIRTY_DATASYNC) call
    gfs2: fix bogus __mark_inode_dirty(I_DIRTY_SYNC | I_DIRTY_DATASYNC) calls
    fs: fold open_check_o_direct into do_dentry_open
    vfs: Replace stray non-ASCII homoglyph characters with their ASCII equivalents
    vfs: make sure struct filename->iname is word-aligned
    get rid of pointless includes of fs_struct.h
    [poll] annotate SAA6588_CMD_POLL users

    Linus Torvalds
     
  • Make the function static to avoid a

    warning: no previous prototype for ‘vmx_enable_tdp’

    Signed-off-by: Peng Hao
    Signed-off-by: Paolo Bonzini

    Peng Hao
     

06 Apr, 2018

5 commits

  • Switch simpad's CF implementation to use the gpiod APIs. The inverted
    detection is handled using gpiolib's native inversion abilities.

    Signed-off-by: Russell King

    Russell King
     
  • Convert shannon to use the generic CF socket support.

    Signed-off-by: Russell King

    Russell King
     
  • Convert nanoengine to use the generic CF socket support.
    Makefile fix from Arnd Bergmann .

    Signed-off-by: Russell King

    Russell King
     
  • Currently #includes for no obvious
    reason. It looks like it's only a convenience, so remove kmemleak.h
    from slab.h and add to any users of kmemleak_* that
    don't already #include it. Also remove from source
    files that do not use it.

    This is tested on i386 allmodconfig and x86_64 allmodconfig. It would
    be good to run it through the 0day bot for other $ARCHes. I have
    neither the horsepower nor the storage space for the other $ARCHes.

    Update: This patch has been extensively build-tested by both the 0day
    bot & kisskb/ozlabs build farms. Both of them reported 2 build failures
    for which patches are included here (in v2).

    [ slab.h is the second most used header file after module.h; kernel.h is
    right there with slab.h. There could be some minor error in the
    counting due to some #includes having comments after them and I didn't
    combine all of those. ]

    [akpm@linux-foundation.org: security/keys/big_key.c needs vmalloc.h, per sfr]
    Link: http://lkml.kernel.org/r/e4309f98-3749-93e1-4bb7-d9501a39d015@infradead.org
    Link: http://kisskb.ellerman.id.au/kisskb/head/13396/
    Signed-off-by: Randy Dunlap
    Reviewed-by: Ingo Molnar
    Reported-by: Michael Ellerman [2 build failures]
    Reported-by: Fengguang Wu [2 build failures]
    Reviewed-by: Andrew Morton
    Cc: Wei Yongjun
    Cc: Luis R. Rodriguez
    Cc: Greg Kroah-Hartman
    Cc: Mimi Zohar
    Cc: John Johansen
    Cc: Stephen Rothwell
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Randy Dunlap
     
  • Thanks to commit 4b3ef9daa4fc ("mm/swap: split swap cache into 64MB
    trunks"), after swapoff the address_space associated with the swap
    device will be freed. So page_mapping() users which may touch the
    address_space need some kind of mechanism to prevent the address_space
    from being freed during accessing.

    The dcache flushing functions (flush_dcache_page(), etc) in architecture
    specific code may access the address_space of swap device for anonymous
    pages in swap cache via page_mapping() function. But in some cases
    there are no mechanisms to prevent the swap device from being swapoff,
    for example,

    CPU1 CPU2
    __get_user_pages() swapoff()
    flush_dcache_page()
    mapping = page_mapping()
    ... exit_swap_address_space()
    ... kvfree(spaces)
    mapping_mapped(mapping)

    The address space may be accessed after being freed.

    But from cachetlb.txt and Russell King, flush_dcache_page() only care
    about file cache pages, for anonymous pages, flush_anon_page() should be
    used. The implementation of flush_dcache_page() in all architectures
    follows this too. They will check whether page_mapping() is NULL and
    whether mapping_mapped() is true to determine whether to flush the
    dcache immediately. And they will use interval tree (mapping->i_mmap)
    to find all user space mappings. While mapping_mapped() and
    mapping->i_mmap isn't used by anonymous pages in swap cache at all.

    So, to fix the race between swapoff and flush dcache, __page_mapping()
    is add to return the address_space for file cache pages and NULL
    otherwise. All page_mapping() invoking in flush dcache functions are
    replaced with page_mapping_file().

    [akpm@linux-foundation.org: simplify page_mapping_file(), per Mike]
    Link: http://lkml.kernel.org/r/20180305083634.15174-1-ying.huang@intel.com
    Signed-off-by: "Huang, Ying"
    Reviewed-by: Andrew Morton
    Cc: Minchan Kim
    Cc: Michal Hocko
    Cc: Johannes Weiner
    Cc: Mel Gorman
    Cc: Dave Hansen
    Cc: Chen Liqin
    Cc: Russell King
    Cc: Yoshinori Sato
    Cc: "James E.J. Bottomley"
    Cc: Guan Xuetao
    Cc: "David S. Miller"
    Cc: Chris Zankel
    Cc: Vineet Gupta
    Cc: Ley Foon Tan
    Cc: Ralf Baechle
    Cc: Andi Kleen
    Cc: Mike Rapoport
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Huang Ying