22 Aug, 2018

4 commits

  • Pull overlayfs updates from Miklos Szeredi:
    "This contains two new features:

    - Stack file operations: this allows removal of several hacks from
    the VFS, proper interaction of read-only open files with copy-up,
    possibility to implement fs modifying ioctls properly, and others.

    - Metadata only copy-up: when file is on lower layer and only
    metadata is modified (except size) then only copy up the metadata
    and continue to use the data from the lower file"

    * tag 'ovl-update-4.19' of git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/vfs: (66 commits)
    ovl: Enable metadata only feature
    ovl: Do not do metacopy only for ioctl modifying file attr
    ovl: Do not do metadata only copy-up for truncate operation
    ovl: add helper to force data copy-up
    ovl: Check redirect on index as well
    ovl: Set redirect on upper inode when it is linked
    ovl: Set redirect on metacopy files upon rename
    ovl: Do not set dentry type ORIGIN for broken hardlinks
    ovl: Add an inode flag OVL_CONST_INO
    ovl: Treat metacopy dentries as type OVL_PATH_MERGE
    ovl: Check redirects for metacopy files
    ovl: Move some dir related ovl_lookup_single() code in else block
    ovl: Do not expose metacopy only dentry from d_real()
    ovl: Open file with data except for the case of fsync
    ovl: Add helper ovl_inode_realdata()
    ovl: Store lower data inode in ovl_inode
    ovl: Fix ovl_getattr() to get number of blocks from lower
    ovl: Add helper ovl_dentry_lowerdata() to get lower data dentry
    ovl: Copy up meta inode data from lowest data inode
    ovl: Modify ovl_lookup() and friends to lookup metacopy dentry
    ...

    Linus Torvalds
     
  • Pull power supply and reset updates from Sebastian Reichel:

    - Improve support for TI bq20z75 in sbs-battery

    - Add Qualcomm PM8xxx reboot driver

    - Add cros-ec USBPD charger driver

    - Move ds2760 battery driver from w1 to power-supply and add DT support

    - Misc fixes

    * tag 'for-v4.19' of git://git.kernel.org/pub/scm/linux/kernel/git/sre/linux-power-supply: (28 commits)
    power: supply: bq27xxx: Update comments
    power: supply: max77693_charger: fix unintentional fall-through
    power: supply: mark expected switch fall-throughs
    power: supply: lego_ev3_battery: fix Vce offset
    power: supply: lego_ev3_battery: Don't ignore iio_read_channel_processed() return value
    power: supply: ds2760_battery: add devicetree probing
    power: supply: ds2760_battery: merge ds2760 supply driver with its w1 slave companion
    w1: core: match sub-nodes of bus masters in devicetree
    dt-bindings: w1: document bindings for ds2760 battery monitor
    dt-bindings: w1: document generic onewire bindings
    power: supply: adp5061: Fix a couple off by ones
    dt-bindings: power: reset: qcom: Add resin binding
    adp5061: New driver for ADP5061 I2C battery charger
    power: generic-adc-battery: check for duplicate properties copied from iio channels
    power: generic-adc-battery: fix out-of-bounds write when copying channel properties
    power: supply: axp288_charger: Fix initial constant_charge_current value
    power: supply: ab8500: stop using getnstimeofday64()
    power: gemini-poweroff: Avoid more spurious poweroffs
    power: vexpress: fix corruption in notifier registration
    power: remove possible deadlock when unregistering power_supply
    ...

    Linus Torvalds
     
  • Pull i2c updates from Wolfram Sang:

    - the core has now a lockless variant of i2c_smbus_xfer. Some open
    coded versions of this got removed in drivers. This also enables
    proper SCCB support in regmap.

    - locking got a more precise naming. i2c_{un}lock_adapter() had to go,
    and we know use i2c_lock_bus() consistently with flags like
    I2C_LOCK_ROOT_ADAPTER and I2C_LOCK_SEGMENT to avoid ambiguity.

    - the gpio fault injector got a new delicate testcase

    - the bus recovery procedure got fixed to handle the new testcase
    correctly

    - a new quirk flag for controllers not able to handle zero length
    messages together with driver updates to use it

    - new drivers: FSI bus attached I2C masters, GENI I2C controller, Owl
    family S900

    - and a good set of driver improvements and bugfixes

    * 'i2c/for-4.19' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux: (77 commits)
    i2c: rcar: implement STOP and REP_START according to docs
    i2c: rcar: refactor private flags
    i2c: core: ACPI: Make acpi_gsb_i2c_read_bytes() check i2c_transfer return value
    i2c: core: ACPI: Properly set status byte to 0 for multi-byte writes
    dt-bindings: i2c: rcar: Add r8a774a1 support
    dt-bindings: i2c: sh_mobile: Add r8a774a1 support
    i2c: imx: Simplify stopped state tracking
    i2c: imx: Fix race condition in dma read
    i2c: pasemi: remove hardcoded bus numbers on smbus
    i2c: designware: Add SPDX license tag
    i2c: designware: Convert to use struct i2c_timings
    i2c: core: Parse SDA hold time from firmware
    i2c: designware-pcidrv: Mark expected switch fall-through
    i2c: amd8111: Mark expected switch fall-through
    i2c: sh_mobile: use core to detect 'no zero length read' quirk
    i2c: xlr: use core to detect 'no zero length' quirk
    i2c: rcar: use core to detect 'no zero length' quirk
    i2c: stu300: use core to detect 'no zero length' quirk
    i2c: pmcmsp: use core to detect 'no zero length' quirk
    i2c: mxs: use core to detect 'no zero length' quirk
    ...

    Linus Torvalds
     
  • …iederm/user-namespace

    Pull core signal handling updates from Eric Biederman:
    "It was observed that a periodic timer in combination with a
    sufficiently expensive fork could prevent fork from every completing.
    This contains the changes to remove the need for that restart.

    This set of changes is split into several parts:

    - The first part makes PIDTYPE_TGID a proper pid type instead
    something only for very special cases. The part starts using
    PIDTYPE_TGID enough so that in __send_signal where signals are
    actually delivered we know if the signal is being sent to a a group
    of processes or just a single process.

    - With that prep work out of the way the logic in fork is modified so
    that fork logically makes signals received while it is running
    appear to be received after the fork completes"

    * 'siginfo-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace: (22 commits)
    signal: Don't send signals to tasks that don't exist
    signal: Don't restart fork when signals come in.
    fork: Have new threads join on-going signal group stops
    fork: Skip setting TIF_SIGPENDING in ptrace_init_task
    signal: Add calculate_sigpending()
    fork: Unconditionally exit if a fatal signal is pending
    fork: Move and describe why the code examines PIDNS_ADDING
    signal: Push pid type down into complete_signal.
    signal: Push pid type down into __send_signal
    signal: Push pid type down into send_signal
    signal: Pass pid type into do_send_sig_info
    signal: Pass pid type into send_sigio_to_task & send_sigurg_to_task
    signal: Pass pid type into group_send_sig_info
    signal: Pass pid and pid type into send_sigqueue
    posix-timers: Noralize good_sigevent
    signal: Use PIDTYPE_TGID to clearly store where file signals will be sent
    pid: Implement PIDTYPE_TGID
    pids: Move the pgrp and session pid pointers from task_struct to signal_struct
    kvm: Don't open code task_pid in kvm_vcpu_ioctl
    pids: Compute task_tgid using signal->leader_pid
    ...

    Linus Torvalds
     

21 Aug, 2018

9 commits

  • Pull tracing updates from Steven Rostedt:

    - Restructure of lockdep and latency tracers

    This is the biggest change. Joel Fernandes restructured the hooks
    from irqs and preemption disabling and enabling. He got rid of a lot
    of the preprocessor #ifdef mess that they caused.

    He turned both lockdep and the latency tracers to use trace events
    inserted in the preempt/irqs disabling paths. But unfortunately,
    these started to cause issues in corner cases. Thus, parts of the
    code was reverted back to where lockdep and the latency tracers just
    get called directly (without using the trace events). But because the
    original change cleaned up the code very nicely we kept that, as well
    as the trace events for preempt and irqs disabling, but they are
    limited to not being called in NMIs.

    - Have trace events use SRCU for "rcu idle" calls. This was required
    for the preempt/irqs off trace events. But it also had to not allow
    them to be called in NMI context. Waiting till Paul makes an NMI safe
    SRCU API.

    - New notrace SRCU API to allow trace events to use SRCU.

    - Addition of mcount-nop option support

    - SPDX headers replacing GPL templates.

    - Various other fixes and clean ups.

    - Some fixes are marked for stable, but were not fully tested before
    the merge window opened.

    * tag 'trace-v4.19' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace: (44 commits)
    tracing: Fix SPDX format headers to use C++ style comments
    tracing: Add SPDX License format tags to tracing files
    tracing: Add SPDX License format to bpf_trace.c
    blktrace: Add SPDX License format header
    s390/ftrace: Add -mfentry and -mnop-mcount support
    tracing: Add -mcount-nop option support
    tracing: Avoid calling cc-option -mrecord-mcount for every Makefile
    tracing: Handle CC_FLAGS_FTRACE more accurately
    Uprobe: Additional argument arch_uprobe to uprobe_write_opcode()
    Uprobes: Simplify uprobe_register() body
    tracepoints: Free early tracepoints after RCU is initialized
    uprobes: Use synchronize_rcu() not synchronize_sched()
    tracing: Fix synchronizing to event changes with tracepoint_synchronize_unregister()
    ftrace: Remove unused pointer ftrace_swapper_pid
    tracing: More reverting of "tracing: Centralize preemptirq tracepoints and unify their usage"
    tracing/irqsoff: Handle preempt_count for different configs
    tracing: Partial revert of "tracing: Centralize preemptirq tracepoints and unify their usage"
    tracing: irqsoff: Account for additional preempt_disable
    trace: Use rcu_dereference_raw for hooks from trace-event subsystem
    tracing/kprobes: Fix within_notrace_func() to check only notrace functions
    ...

    Linus Torvalds
     
  • Pull ceph updates from Ilya Dryomov:
    "The main things are support for cephx v2 authentication protocol and
    basic support for rbd images within namespaces (myself).

    Also included are y2038 conversion patches from Arnd, a pile of
    miscellaneous fixes from Chengguang and Zheng's feature bit
    infrastructure for the filesystem"

    * tag 'ceph-for-4.19-rc1' of git://github.com/ceph/ceph-client: (40 commits)
    ceph: don't drop message if it contains more data than expected
    ceph: support cephfs' own feature bits
    crush: fix using plain integer as NULL warning
    libceph: remove unnecessary non NULL check for request_key
    ceph: refactor error handling code in ceph_reserve_caps()
    ceph: refactor ceph_unreserve_caps()
    ceph: change to void return type for __do_request()
    ceph: compare fsc->max_file_size and inode->i_size for max file size limit
    ceph: add additional size check in ceph_setattr()
    ceph: add additional offset check in ceph_write_iter()
    ceph: add additional range check in ceph_fallocate()
    ceph: add new field max_file_size in ceph_fs_client
    libceph: weaken sizeof check in ceph_x_verify_authorizer_reply()
    libceph: check authorizer reply/challenge length before reading
    libceph: implement CEPHX_V2 calculation mode
    libceph: add authorizer challenge
    libceph: factor out encrypt_authorizer()
    libceph: factor out __ceph_x_decrypt()
    libceph: factor out __prepare_write_connect()
    libceph: store ceph_auth_handshake pointer in ceph_connection
    ...

    Linus Torvalds
     
  • Pull RTC updates from Alexandre Belloni:
    "It is now possible to add custom sysfs attributes while avoiding a
    possible race condition. Unused code has been removed resulting in a
    nice reduction of the code base. And more drivers have been switched
    to SPDX by their maintainers.

    Summary:

    Subsystem:
    - new helpers to add custom sysfs attributes
    - struct rtc_task removal along with rtc_irq_[un]register()
    - rtc_irq_set_state and rtc_irq_set_freq are not exported anymore

    Drivers:
    - armada38x: reset after rtc power loss
    - ds1307: now supports m41t11
    - isl1208: now supports isl1219 and tamper detection
    - pcf2127: internal SRAM support"

    * tag 'rtc-4.19' of git://git.kernel.org/pub/scm/linux/kernel/git/abelloni/linux: (34 commits)
    rtc: ds1307: simplify hwmon config
    rtc: s5m: Add SPDX license identifier
    rtc: maxim: Add SPDX license identifiers
    rtc: isl1219: add device tree documentation
    rtc: isl1208: set ev-evienb bit from device tree
    rtc: isl1208: Add "evdet" interrupt source for isl1219
    rtc: isl1208: add support for isl1219 with tamper detection
    rtc: sysfs: facilitate attribute add to rtc device
    rtc: remove struct rtc_task
    char: rtc: remove task handling
    rtc: pcf85063: preserve control register value between stop and start
    rtc: sh: remove unused variable rtc_dev
    rtc: unexport rtc_irq_set_*
    rtc: simplify rtc_irq_set_state/rtc_irq_set_freq
    rtc: remove irq_task and irq_task_lock
    rtc: remove rtc_irq_register/rtc_irq_unregister
    rtc: sh: remove dead code
    rtc: sa1100: don't set PIE frequency
    rtc: ds1307: support m41t11 variant
    rtc: ds1307: fix data pointer to m41t0
    ...

    Linus Torvalds
     
  • Pull HID updates from Jiri Kosina:

    - touch_max detection improvements and quirk handling fixes in wacom
    driver from Jason Gerecke and Ping Cheng

    - Palm rejection from Dmitry Torokhov and _dial support from Benjamin
    Tissoires for hid-multitouch driver

    - Low voltage support for i2c-hid driver from Stephen Boyd

    - Guitar-Hero support from Nicolas Adenis-Lamarre

    - other assorted small fixes and device ID additions

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid: (40 commits)
    HID: intel_ish-hid: tx_buf memory leak on probe/remove
    HID: intel-ish-hid: Prevent loading of driver on Mehlow
    HID: cougar: Add support for the Cougar 500k Gaming Keyboard
    HID: cougar: make compare_device_paths reusable
    HID: intel-ish-hid: remove redundant variable num_frags
    HID: multitouch: handle palm for touchscreens
    HID: multitouch: touchscreens also use confidence reports
    HID: multitouch: report MT_TOOL_PALM for non-confident touches
    HID: microsoft: support the Surface Dial
    HID: core: do not upper bound the collection stack
    HID: input: enable Totem on the Dell Canvas 27
    HID: multitouch: remove one copy of values
    HID: multitouch: ditch mt_report_id
    HID: multitouch: store a per application quirks value
    HID: multitouch: Store per collection multitouch data
    HID: multitouch: make sure the static list of class is not changed
    input: add MT_TOOL_DIAL
    HID: elan: Add support for touchpad on the Toshiba Click Mini L9W
    HID: elan: Add USB-id for HP x2 10-n000nd touchpad
    HID: elan: Add a flag for selecting if the touchpad has a LED
    ...

    Linus Torvalds
     
  • Pull backlight updates from Lee Jones:
    "Core Framework:
    - Remove unused/obsolete code/comments

    New Functionality:
    - Allow less granular brightness specification for high-res PWMs; pwm_bl
    - Align brightness {inc,dec}rements with that perceived by the human-eye; pwm_bl

    Fix-ups:
    - Prepare for the introduction of -Wimplicit-fall-through; adp8860_bl

    Bug Fixes:
    - Fix uninitialised variable; pwm_bl"

    * tag 'backlight-next-4.19' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/backlight:
    backlight: pwm_bl: Fix uninitialized variable
    backlight: adp8860: Mark expected switch fall-through
    backlight: Remove obsolete comment for ->state
    dt-bindings: pwm-backlight: Move brightness-levels to optional
    backlight: pwm_bl: Compute brightness of LED linearly to human eye
    dt-bindings: pwm-backlight: Add a num-interpolation-steps property
    backlight: pwm_bl: Linear interpolation between brightness-levels

    Linus Torvalds
     
  • Pull MFD updates from Lee Jones:
    "New Drivers:
    - Add Cirrus Logic Madera Codec (CS47L35, CS47L85 and CS47L90/91) driver
    - Add ChromeOS EC CEC driver
    - Add ROHM BD71837 PMIC driver

    New Device Support:
    - Add support for Dialog Semi DA9063L PMIC variant to DA9063
    - Add support for Intel Ice Lake to Intel-PLSS-PCI
    - Add support for X-Powers AXP806 to AXP20x

    New Functionality:
    - Add support for USB Charging to the ChromeOS Embedded Controller
    - Add support for HDMI CEC to the ChromeOS Embedded Controller
    - Add support for HDMI CEC to Intel HDMI
    - Add support for accessory detection to Madera devices
    - Allow individual pins to be configured via DT' wlf,csnaddr-pd
    - Provide legacy platform specific EEPROM/Watchdog commands; rave-sp

    Fix-upsL
    - Trivial renaming/spelling fixes; cros_ec, da9063-*
    - Convert to Managed Resources (devm_*); da9063-*, ti_am335x_tscadc
    - Transition to helper macros/functions; da9063-*
    - Constify; kempld-core
    - Improve error path/messages; wm8994-core
    - Disable IRQs locally instead of relying on USB subsystem; dln2
    - Remove unused code; rave-sp
    - New exports; sec-core

    Bug Fixes:
    - Fix possible false I2C transaction error; arizona-core
    - Fix declared memory area size; hi655x-pmic
    - Fix checksum type; rave-sp
    - Fix incorrect default serial port configuration: rave-sp
    - Fix incorrect coherent DMA mask for sub-devices; sm501"

    * tag 'mfd-next-4.19' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd: (60 commits)
    mfd: madera: Add register definitions for accessory detect
    mfd: sm501: Set coherent_dma_mask when creating subdevices
    mfd: bd71837: Devicetree bindings for ROHM BD71837 PMIC
    mfd: bd71837: Core driver for ROHM BD71837 PMIC
    media: platform: cros-ec-cec: Fix dependency on MFD_CROS_EC
    mfd: sec-core: Export OF module alias table
    mfd: as3722: Disable auto-power-on when AC OK
    mfd: axp20x: Support AXP806 in I2C mode
    mfd: axp20x: Add self-working mode support for AXP806
    dt-bindings: mfd: axp20x: Add "self-working" mode for AXP806
    mfd: wm8994: Allow to configure CS/ADDR Pulldown from dts
    mfd: wm8994: Allow to configure Speaker Mode Pullup from dts
    mfd: rave-sp: Emulate CMD_GET_STATUS on device that don't support it
    mfd: rave-sp: Add legacy watchdog ping command translation
    mfd: rave-sp: Add legacy EEPROM access command translation
    mfd: rave-sp: Initialize flow control and parity of the port
    mfd: rave-sp: Fix incorrectly specified checksum type
    mfd: rave-sp: Remove unused defines
    mfd: hi655x: Fix regmap area declared size for hi655x
    mfd: ti_am335x_tscadc: Fix struct clk memory leak
    ...

    Linus Torvalds
     
  • Various architectures fail to build properly with older versions of the
    gcc compiler.

    An example from Guenter Roeck in thread [1]:
    >
    > In file included from ./include/linux/mm.h:17:0,
    > from ./include/linux/pid_namespace.h:7,
    > from ./include/linux/ptrace.h:10,
    > from arch/openrisc/kernel/asm-offsets.c:32:
    > ./include/linux/mm_types.h:497:16: error: flexible array member in otherwise empty struct
    >
    > This is just an example with gcc 4.5.1 for or32. I have seen the problem
    > with gcc 4.4 (for unicore32) as well.

    So update the minimum required version of gcc to 4.6.

    [1] https://lore.kernel.org/lkml/20180814170904.GA12768@roeck-us.net/

    Miscellanea:

    - Update Documentation/process/changes.rst

    - Remove and consolidate version test blocks in compiler-gcc.h for
    versions lower than 4.6

    Signed-off-by: Joe Perches
    Reviewed-by: Kees Cook
    Reviewed-by: Nick Desaulniers
    Signed-off-by: Linus Torvalds

    Joe Perches
     
  • Multitouch updates:

    - Dial support
    - Palm rejection for touchscreens
    - a few small assorted fixes

    Jiri Kosina
     
  • Low voltage support for i2c-hid

    Jiri Kosina
     

20 Aug, 2018

3 commits

  • Pull networking fixes from David Miller:

    1) Fix races in IPVS, from Tan Hu.

    2) Missing unbind in matchall classifier, from Hangbin Liu.

    3) Missing act_ife action release, from Vlad Buslov.

    4) Cure lockdep splats in ila, from Cong Wang.

    5) veth queue leak on link delete, from Toshiaki Makita.

    6) Disable isdn's IIOCDBGVAR ioctl, it exposes kernel addresses. From
    Kees Cook.

    7) RCU usage fixup in XDP, from Tariq Toukan.

    8) Two TCP ULP fixes from Daniel Borkmann.

    9) r8169 needs REALTEK_PHY as a Kconfig dependency, from Heiner
    Kallweit.

    10) Always take tcf_lock with BH disabled, otherwise we can deadlock
    with rate estimator code paths. From Vlad Buslov.

    11) Don't use MSI-X on RTL8106e r8169 chips, they don't resume properly.
    From Jian-Hong Pan.

    * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (41 commits)
    ip6_vti: fix creating fallback tunnel device for vti6
    ip_vti: fix a null pointer deferrence when create vti fallback tunnel
    r8169: don't use MSI-X on RTL8106e
    net: lan743x_ptp: convert to ktime_get_clocktai_ts64
    net: sched: always disable bh when taking tcf_lock
    ip6_vti: simplify stats handling in vti6_xmit
    bpf: fix redirect to map under tail calls
    r8169: add missing Kconfig dependency
    tools/bpf: fix bpf selftest test_cgroup_storage failure
    bpf, sockmap: fix sock_map_ctx_update_elem race with exist/noexist
    bpf, sockmap: fix map elem deletion race with smap_stop_sock
    bpf, sockmap: fix leakage of smap_psock_map_entry
    tcp, ulp: fix leftover icsk_ulp_ops preventing sock from reattach
    tcp, ulp: add alias for all ulp modules
    bpf: fix a rcu usage warning in bpf_prog_array_copy_core()
    samples/bpf: all XDP samples should unload xdp/bpf prog on SIGTERM
    net/xdp: Fix suspicious RCU usage warning
    net/mlx5e: Delete unneeded function argument
    Documentation: networking: ti-cpsw: correct cbs parameters for Eth1 100Mb
    isdn: Disable IIOCDBGVAR
    ...

    Linus Torvalds
     
  • Pull first set of KVM updates from Paolo Bonzini:
    "PPC:
    - minor code cleanups

    x86:
    - PCID emulation and CR3 caching for shadow page tables
    - nested VMX live migration
    - nested VMCS shadowing
    - optimized IPI hypercall
    - some optimizations

    ARM will come next week"

    * tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm: (85 commits)
    kvm: x86: Set highest physical address bits in non-present/reserved SPTEs
    KVM/x86: Use CC_SET()/CC_OUT in arch/x86/kvm/vmx.c
    KVM: X86: Implement PV IPIs in linux guest
    KVM: X86: Add kvm hypervisor init time platform setup callback
    KVM: X86: Implement "send IPI" hypercall
    KVM/x86: Move X86_CR4_OSXSAVE check into kvm_valid_sregs()
    KVM: x86: Skip pae_root shadow allocation if tdp enabled
    KVM/MMU: Combine flushing remote tlb in mmu_set_spte()
    KVM: vmx: skip VMWRITE of HOST_{FS,GS}_BASE when possible
    KVM: vmx: skip VMWRITE of HOST_{FS,GS}_SEL when possible
    KVM: vmx: always initialize HOST_{FS,GS}_BASE to zero during setup
    KVM: vmx: move struct host_state usage to struct loaded_vmcs
    KVM: vmx: compute need to reload FS/GS/LDT on demand
    KVM: nVMX: remove a misleading comment regarding vmcs02 fields
    KVM: vmx: rename __vmx_load_host_state() and vmx_save_host_state()
    KVM: vmx: add dedicated utility to access guest's kernel_gs_base
    KVM: vmx: track host_state.loaded using a loaded_vmcs pointer
    KVM: vmx: refactor segmentation code in vmx_save_host_state()
    kvm: nVMX: Fix fault priority for VMX operations
    kvm: nVMX: Fix fault vector for VMX operation at CPL > 0
    ...

    Linus Torvalds
     
  • …l/git/palmer/riscv-linux

    Pull RISC-V updates from Palmer Dabbelt:
    "This contains some major improvements to the RISC-V port, including
    the necessary interrupt controller and timer support to actually make
    it to userspace. Support for three devices has been added:

    - the ISA-mandated timers on RISC-V systems.

    - the ISA-mandated first-level interrupt controller on RISC-V
    systems, which is handled as part of our core arch code because
    it's very small and tightly tied to the ISA.

    - SiFive's platform-level interrupt controller, which talks to the
    actual devices.

    In addition to these new devices, there are a handful of cleanups all
    over the RISC-V tree:

    - build fixes for various configurations:
    * A fix to the vDSO build's makefile so it respects CFLAGS.
    * The addition of __lshrti3, a libgcc derived function necessary
    for some 32-bit configurations.
    * !SMP && PERF_EVENTS

    - Cleanups to the arch code to remove the remnants of old versions of
    the drivers that were just properly submitted.
    * Some dead code from the timer driver, most of which wasn't ever
    even compiled.
    * Cleanups of some interrupt #defines, which are now local to the
    interrupt handling code.

    - Fixes to ptrace(), which while not being sufficient to fully make
    GDB work are at least sufficient to get simple GDB tasks to work.

    - Early printk support via RISC-V's architecturally mandated SBI
    console device.

    - A fix to our early debug trap handler to ensure it's always
    aligned.

    These patches have all been through a fairly extensive review process,
    but as this enables a whole pile of functionality (ie, userspace) I'm
    confident we'll need to submit a few more patches. The only concrete
    issues I know about are the sys_riscv_flush_icache patches, but as I
    managed to screw those up on Friday I figured it'd be best to let them
    bake another week.

    This tag boots a Fedora root filesystem on QEMU's master branch for
    me, and before this morning's rebase (from 4.18-rc8 to 4.18) it booted
    on the HiFive Unleashed.

    Thanks to Christoph Hellwig and the other guys at WD for getting the
    new drivers in shape!"

    * tag 'riscv-for-linus-4.19-mw0' of git://git.kernel.org/pub/scm/linux/kernel/git/palmer/riscv-linux:
    dt-bindings: interrupt-controller: SiFive Plaform Level Interrupt Controller
    dt-bindings: interrupt-controller: RISC-V local interrupt controller
    RISC-V: Fix !CONFIG_SMP compilation error
    irqchip: add a SiFive PLIC driver
    RISC-V: Add the directive for alignment of stvec's value
    clocksource: new RISC-V SBI timer driver
    RISC-V: implement low-level interrupt handling
    RISC-V: add a definition for the SIE SEIE bit
    RISC-V: remove INTERRUPT_CAUSE_* defines from asm/irq.h
    RISC-V: simplify software interrupt / IPI code
    RISC-V: remove timer leftovers
    RISC-V: Add early printk support via the SBI console
    RISC-V: Don't increment sepc after breakpoint.
    RISC-V: implement __lshrti3.
    RISC-V: Use KBUILD_CFLAGS instead of KCFLAGS when building the vDSO

    Linus Torvalds
     

19 Aug, 2018

14 commits

  • Pull input updates from Dmitry Torokhov:

    - a new driver for Rohm BU21029 touch controller

    - new bitmap APIs: bitmap_alloc, bitmap_zalloc and bitmap_free

    - updates to Atmel, eeti. pxrc and iforce drivers

    - assorted driver cleanups and fixes.

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input: (57 commits)
    MAINTAINERS: Add PhoenixRC Flight Controller Adapter
    Input: do not use WARN() in input_alloc_absinfo()
    Input: mark expected switch fall-throughs
    Input: raydium_i2c_ts - use true and false for boolean values
    Input: evdev - switch to bitmap API
    Input: gpio-keys - switch to bitmap_zalloc()
    Input: elan_i2c_smbus - cast sizeof to int for comparison
    bitmap: Add bitmap_alloc(), bitmap_zalloc() and bitmap_free()
    md: Avoid namespace collision with bitmap API
    dm: Avoid namespace collision with bitmap API
    Input: pm8941-pwrkey - add resin entry
    Input: pm8941-pwrkey - abstract register offsets and event code
    Input: iforce - reorganize joystick configuration lists
    Input: atmel_mxt_ts - move completion to after config crc is updated
    Input: atmel_mxt_ts - don't report zero pressure from T9
    Input: atmel_mxt_ts - zero terminate config firmware file
    Input: atmel_mxt_ts - refactor config update code to add context struct
    Input: atmel_mxt_ts - config CRC may start at T71
    Input: atmel_mxt_ts - remove unnecessary debug on ENOMEM
    Input: atmel_mxt_ts - remove duplicate setup of ABS_MT_PRESSURE
    ...

    Linus Torvalds
     
  • Pull hwspinlock updates from Bjorn Andersson:
    "This introduces devres helpers and an API to request a lock by name,
    then migrates the sprd SPI driver to use these"

    * tag 'hwlock-v4.19' of git://github.com/andersson/remoteproc:
    hwspinlock: Fix incorrect return pointers
    spi: sprd: Change to use devm_hwspin_lock_request_specific()
    spi: sprd: Replace of_hwspin_lock_get_id() with of_hwspin_lock_get_id_byname()
    hwspinlock: Fix one comment mistake
    hwspinlock: Remove redundant config
    hwspinlock: Add devm_xxx() APIs to register/unregister one hwlock controller
    hwspinlock: Add devm_xxx() APIs to request/free hwlock
    hwspinlock: Add one new API to support getting a specific hwlock by the name

    Linus Torvalds
     
  • Pull remoteproc updates from Bjorn Andersson:
    "This adds support for pre-start and post-shutdown hooks for remoteproc
    subdevices, refactors the Qualcomm Hexagon support to allow reuse
    between several drivers, makes authentication in the MDT file loader
    optional, migrates a few format strings to use %pK and migrates the
    Davinci driver to use the reset framework"

    * tag 'rproc-v4.19' of git://github.com/andersson/remoteproc:
    remoteproc/davinci: use the reset framework
    remoteproc/davinci: Mark error recovery as disabled
    remoteproc: st_slim: replace "%p" with "%pK"
    remoteproc: replace "%p" with "%pK"
    remoteproc: qcom: fix Q6V5_WCSS dependencies
    remoteproc: Reset table_ptr in rproc_start() failure paths
    remoteproc: qcom: q6v5-pil: fix modem hang on SDM845 after axis2 clk unvote
    remoteproc: qcom q6v5: fix modular build
    remoteproc: Introduce prepare and unprepare for subdevices
    remoteproc: rename subdev probe and remove functions
    remoteproc: Make client initialize ops in rproc_subdev
    remoteproc: Make start and stop in subdev optional
    remoteproc: Rename subdev functions to start/stop
    remoteproc: qcom: Introduce Hexagon V5 based WCSS driver
    remoteproc: qcom: q6v5-pil: Use common q6v5 helpers
    remoteproc: qcom: adsp: Use common q6v5 helpers
    remoteproc: q6v5: Extract common resource handling
    remoteproc: qcom: mdt_loader: Make the firmware authentication optional

    Linus Torvalds
     
  • Pull DMAengine updates from Vinod Koul:
    "This round brings couple of framework changes, a new driver and usual
    driver updates:

    - new managed helper for dmaengine framework registration

    - split dmaengine pause capability to pause and resume and allow
    drivers to report that individually

    - update dma_request_chan_by_mask() to handle deferred probing

    - move imx-sdma to use virt-dma

    - new driver for Actions Semi Owl family S900 controller

    - minor updates to intel, renesas, mv_xor, pl330 etc"

    * tag 'dmaengine-4.19-rc1' of git://git.infradead.org/users/vkoul/slave-dma: (46 commits)
    dmaengine: Add Actions Semi Owl family S900 DMA driver
    dt-bindings: dmaengine: Add binding for Actions Semi Owl SoCs
    dmaengine: sh: rcar-dmac: Should not stop the DMAC by rcar_dmac_sync_tcr()
    dmaengine: mic_x100_dma: use the new helper to simplify the code
    dmaengine: add a new helper dmaenginem_async_device_register
    dmaengine: imx-sdma: add memcpy interface
    dmaengine: imx-sdma: add SDMA_BD_MAX_CNT to replace '0xffff'
    dmaengine: dma_request_chan_by_mask() to handle deferred probing
    dmaengine: pl330: fix irq race with terminate_all
    dmaengine: Revert "dmaengine: mv_xor_v2: enable COMPILE_TEST"
    dmaengine: mv_xor_v2: use {lower,upper}_32_bits to configure HW descriptor address
    dmaengine: mv_xor_v2: enable COMPILE_TEST
    dmaengine: mv_xor_v2: move unmap to before callback
    dmaengine: mv_xor_v2: convert callback to helper function
    dmaengine: mv_xor_v2: kill the tasklets upon exit
    dmaengine: mv_xor_v2: explicitly freeup irq
    dmaengine: sh: rcar-dmac: Add dma_pause operation
    dmaengine: sh: rcar-dmac: add a new function to clear CHCR.DE with barrier
    dmaengine: idma64: Support dmaengine_terminate_sync()
    dmaengine: hsu: Support dmaengine_terminate_sync()
    ...

    Linus Torvalds
     
  • Pull MMC updates from Ulf Hansson:
    "Updates for MMC for v4.19.

    MMC core:
    - Add some fine-grained hooks to further support HS400 tuning
    - Improve error path for bus width setting for HS400es
    - Use a common method when checking R1 status

    MMC host:
    - renesas_sdhi: Add r8a77990 support
    - renesas_sdhi: Add eMMC HS400 mode support
    - tmio/renesas_sdhi: Improve tuning/clock management
    - tmio: Add eMMC HS400 mode support
    - sunxi: Add support for 3.3V eMMC DDR mode
    - mmci: Initial support to manage variant specific callbacks
    - sdhci: Don't try 3.3V I/O voltage if not supported
    - sdhci-pci-dwc-mshc: Add driver to support Synopsys dwc mshc SDHCI PCI
    - sdhci-of-dwcmshc: Add driver to support Synopsys DWC MSHC SDHCI
    - sdhci-msm: Add support for new version sdcc V5
    - sdhci-pci-o2micro: Add support for O2 eMMC HS200 mode
    - sdhci-pci-o2micro: Add support for O2 hardware tuning
    - sdhci-pci-o2micro: Add MSI interrupt support for O2 SD host
    - sdhci-pci: Add support for Intel ICP
    - sdhci-tegra: Prevent ACMD23 and HS200 mode on Tegra 3
    - sdhci-tegra: Fix eMMC DDR52 mode
    - sdhci-tegra: Improve clock management
    - dw_mmc-rockchip: Document compatible string for px30
    - sdhci-esdhc-imx: Add support for 3.3V eMMC DDR mode
    - sdhci-of-esdhc: Set proper DMA mask for ls104x chips
    - sdhci-of-esdhc: Improve clock management
    - sdhci-of-arasan: Add a quirk to manage unstable clocks
    - dw_mmc-exynos: Address potential external abort during system resume
    - pxamci: Add support for common MMC DT bindings
    - pxamci: Several cleanups and improvements
    - pxamci: Merge immutable branch for pxa to switch to DMA slave maps"

    * tag 'mmc-v4.19' of git://git.kernel.org/pub/scm/linux/kernel/git/ulfh/mmc: (56 commits)
    mmc: core: improve reasonableness of bus width setting for HS400es
    mmc: tmio: remove unneeded variable in tmio_mmc_start_command()
    mmc: renesas_sdhi: Fix sampling clock position selecting
    mmc: tmio: Fix tuning flow
    mmc: sunxi: remove output of virtual base address
    dt-bindings: mmc: rockchip-dw-mshc: add description for px30
    mmc: renesas_sdhi: Add r8a77990 support
    mmc: sunxi: allow 3.3V DDR when DDR is available
    mmc: mmci: Add and implement a ->dma_setup() callback for qcom dml
    mmc: mmci: Initial support to manage variant specific callbacks
    mmc: tegra: Force correct divider calculation on DDR50/52
    mmc: sdhci: Add MSI interrupt support for O2 SD host
    mmc: sdhci: Add support for O2 hardware tuning
    mmc: sdhci: Export sdhci tuning function symbol
    mmc: sdhci: Change O2 Host HS200 mode clock frequency to 200MHz
    mmc: sdhci: Add support for O2 eMMC HS200 mode
    mmc: tegra: Add and use tegra_sdhci_get_max_clock()
    mmc: sdhci-esdhc-imx: fix indent
    mmc: sdhci-esdhc-imx: disable clocks before changing frequency
    mmc: tegra: prevent ACMD23 on Tegra 3
    ...

    Linus Torvalds
     
  • This function was created as a deprecated fallback case back in 2010 by
    commit eb14120f743d ("pcmcia: re-work pcmcia_request_irq()") for legacy
    cases.

    Actual in-kernel users haven't been around for a long while. The last
    in-kernel user was apparently removed four years ago by commit
    5f5316fcd08e ("am2150: Update nmclan_cs.c to use update PCMCIA API").

    Just remove it entirely.

    Signed-off-by: Linus Torvalds

    Linus Torvalds
     
  • We haven't had lots of deprecation warnings lately, but the rdma use of
    it made them flare up again.

    They are not useful. They annoy everybody, and nobody ever does
    anything about them, because it's always "somebody elses problem". And
    when people start thinking that warnings are normal, they stop looking
    at them, and the real warnings that mean something go unnoticed.

    If you want to get rid of a function, just get rid of it. Convert every
    user to the new world order.

    And if you can't do that, then don't annoy everybody else with your
    marking that says "I couldn't be bothered to fix this, so I'll just spam
    everybody elses build logs with warnings about my laziness".

    Make a kernelnewbies wiki page about things that could be cleaned up,
    write a blog post about it, or talk to people on the mailing lists. But
    don't add warnings to the kernel build about cleanup that you think
    should happen but you aren't doing yourself.

    Don't. Just don't.

    Signed-off-by: Linus Torvalds

    Linus Torvalds
     
  • Pull driver core updates from Greg KH:
    "Here are all of the driver core and related patches for 4.19-rc1.

    Nothing huge here, just a number of small cleanups and the ability to
    now stop the deferred probing after init happens.

    All of these have been in linux-next for a while with only a merge
    issue reported"

    * tag 'driver-core-4.19-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core: (21 commits)
    base: core: Remove WARN_ON from link dependencies check
    drivers/base: stop new probing during shutdown
    drivers: core: Remove glue dirs from sysfs earlier
    driver core: remove unnecessary function extern declare
    sysfs.h: fix non-kernel-doc comment
    PM / Domains: Stop deferring probe at the end of initcall
    iommu: Remove IOMMU_OF_DECLARE
    iommu: Stop deferring probe at end of initcalls
    pinctrl: Support stopping deferred probe after initcalls
    dt-bindings: pinctrl: add a 'pinctrl-use-default' property
    driver core: allow stopping deferred probe after init
    driver core: add a debugfs entry to show deferred devices
    sysfs: Fix internal_create_group() for named group updates
    base: fix order of OF initialization
    linux/device.h: fix kernel-doc notation warning
    Documentation: update firmware loader fallback reference
    kobject: Replace strncpy with memcpy
    drivers: base: cacheinfo: use OF property_read_u32 instead of get_property,read_number
    kernfs: Replace strncpy with memcpy
    device: Add #define dev_fmt similar to #define pr_fmt
    ...

    Linus Torvalds
     
  • Pull char/misc driver updates from Greg KH:
    "Here is the bit set of char/misc drivers for 4.19-rc1

    There is a lot here, much more than normal, seems like everyone is
    writing new driver subsystems these days... Anyway, major things here
    are:

    - new FSI driver subsystem, yet-another-powerpc low-level hardware
    bus

    - gnss, finally an in-kernel GPS subsystem to try to tame all of the
    crazy out-of-tree drivers that have been floating around for years,
    combined with some really hacky userspace implementations. This is
    only for GNSS receivers, but you have to start somewhere, and this
    is great to see.

    Other than that, there are new slimbus drivers, new coresight drivers,
    new fpga drivers, and loads of DT bindings for all of these and
    existing drivers.

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

    * tag 'char-misc-4.19-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc: (255 commits)
    android: binder: Rate-limit debug and userspace triggered err msgs
    fsi: sbefifo: Bump max command length
    fsi: scom: Fix NULL dereference
    misc: mic: SCIF Fix scif_get_new_port() error handling
    misc: cxl: changed asterisk position
    genwqe: card_base: Use true and false for boolean values
    misc: eeprom: assignment outside the if statement
    uio: potential double frees if __uio_register_device() fails
    eeprom: idt_89hpesx: clean up an error pointer vs NULL inconsistency
    misc: ti-st: Fix memory leak in the error path of probe()
    android: binder: Show extra_buffers_size in trace
    firmware: vpd: Fix section enabled flag on vpd_section_destroy
    platform: goldfish: Retire pdev_bus
    goldfish: Use dedicated macros instead of manual bit shifting
    goldfish: Add missing includes to goldfish.h
    mux: adgs1408: new driver for Analog Devices ADGS1408/1409 mux
    dt-bindings: mux: add adi,adgs1408
    Drivers: hv: vmbus: Cleanup synic memory free path
    Drivers: hv: vmbus: Remove use of slow_virt_to_phys()
    Drivers: hv: vmbus: Reset the channel callback in vmbus_onoffer_rescind()
    ...

    Linus Torvalds
     
  • Pull staging and IIO updates from Greg KH:
    "Here are the big staging/iio patches for 4.19-rc1.

    Lots of churn here, with tons of cleanups happening in staging
    drivers, a removal of an old crypto driver that no one was using
    (skein), and the addition of some new IIO drivers. Also added was a
    "gasket" driver from Google that needs loads of work and the erofs
    filesystem.

    Even with adding all of the new drivers and a new filesystem, we are
    only adding about 1000 lines overall to the kernel linecount, which
    shows just how much cleanup happened, and how big the unused crypto
    driver was.

    All of these have been in the linux-next tree for a while now with no
    reported issues"

    * tag 'staging-4.19-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging: (903 commits)
    staging:rtl8192u: Remove unused macro definitions - Style
    staging:rtl8192u: Add spaces around '+' operator - Style
    staging:rtl8192u: Remove stale comment - Style
    staging: rtl8188eu: remove unused mp_custom_oid.h
    staging: fbtft: Add spaces around / - Style
    staging: fbtft: Erases some repetitive usage of function name - Style
    staging: fbtft: Adjust some empty-line problems - Style
    staging: fbtft: Removes one nesting level to help readability - Style
    staging: fbtft: Changes gamma table to define.
    staging: fbtft: A bit more information on dev_err.
    staging: fbtft: Fixes some alignment issues - Style
    staging: fbtft: Puts macro arguments in parenthesis to avoid precedence issues - Style
    staging: rtl8188eu: remove unused array dB_Invert_Table
    staging: rtl8188eu: remove whitespace, add missing blank line
    staging: rtl8188eu: use is_multicast_ether_addr in rtw_sta_mgt.c
    staging: rtl8188eu: remove whitespace - style
    staging: rtl8188eu: cleanup block comment - style
    staging: rtl8188eu: use is_multicast_ether_addr in rtl8188eu_xmit.c
    staging: rtl8188eu: use is_multicast_ether_addr in recv_linux.c
    staging: rtlwifi: refactor rtl_get_tcb_desc
    ...

    Linus Torvalds
     
  • Pull tty/serial driver updates from Greg KH:
    "Here is the big tty and serial driver pull request for 4.19-rc1.

    It's not all that big, just a number of small serial driver updates
    and fixes, along with some better vt handling for unicode characters
    for those using braille terminals.

    All of these patches have been in linux-next for a long time with no
    reported issues"

    * tag 'tty-4.19-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty: (73 commits)
    tty: serial: 8250: Revert NXP SC16C2552 workaround
    serial: 8250_exar: Read INT0 from slave device, too
    tty: rocket: Fix possible buffer overwrite on register_PCI
    serial: 8250_dw: Add ACPI support for uart on Broadcom SoC
    serial: 8250_dw: always set baud rate in dw8250_set_termios
    dt-bindings: serial: Add binding for uartlite
    tty: serial: uartlite: Add support for suspend and resume
    tty: serial: uartlite: Add clock adaptation
    tty: serial: uartlite: Add structure for private data
    serial: sh-sci: Improve support for separate TEI and DRI interrupts
    serial: sh-sci: Remove SCIx_RZ_SCIFA_REGTYPE
    serial: sh-sci: Allow for compressed SCIF address
    serial: sh-sci: Improve interrupts description
    serial: 8250: Use cached port name directly in messages
    serial: 8250_exar: Drop unused variable in pci_xr17v35x_setup()
    vt: drop unused struct vt_struct
    vt: avoid a VLA in the unicode screen scroll function
    vt: add /dev/vcsu* to devices.txt
    vt: coherence validation code for the unicode screen buffer
    vt: selection: take screen contents from uniscr if available
    ...

    Linus Torvalds
     
  • Pull USB/PHY updates from Greg KH:
    "Here is the big USB and phy driver patch set for 4.19-rc1.

    Nothing huge but there was a lot of work that happened this
    development cycle:

    - lots of type-c work, with drivers graduating out of staging, and
    displayport support being added.

    - new PHY drivers

    - the normal collection of gadget driver updates and fixes

    - code churn to work on the urb handling path, using irqsave()
    everywhere in anticipation of making this codepath a lot simpler in
    the future.

    - usbserial driver fixes and reworks

    - other misc changes

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

    * tag 'usb-4.19-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb: (159 commits)
    USB: serial: pl2303: add a new device id for ATEN
    usb: renesas_usbhs: Kconfig: convert to SPDX identifiers
    usb: dwc3: gadget: Check MaxPacketSize from descriptor
    usb: dwc2: Turn on uframe_sched on "stm32f4x9_fsotg" platforms
    usb: dwc2: Turn on uframe_sched on "amlogic" platforms
    usb: dwc2: Turn on uframe_sched on "his" platforms
    usb: dwc2: Turn on uframe_sched on "bcm" platforms
    usb: dwc2: gadget: ISOC's starting flow improvement
    usb: dwc2: Make dwc2_readl/writel functions endianness-agnostic.
    usb: dwc3: core: Enable AutoRetry feature in the controller
    usb: dwc3: Set default mode for dwc_usb31
    usb: gadget: udc: renesas_usb3: Add register of usb role switch
    usb: dwc2: replace ioread32/iowrite32_rep with dwc2_readl/writel_rep
    usb: dwc2: Modify dwc2_readl/writel functions prototype
    usb: dwc3: pci: Intel Merrifield can be host
    usb: dwc3: pci: Supply device properties via driver data
    arm64: dts: dwc3: description of incr burst type
    usb: dwc3: Enable undefined length INCR burst type
    usb: dwc3: add global soc bus configuration reg0
    usb: dwc3: Describe 'wakeup_work' field of struct dwc3_pci
    ...

    Linus Torvalds
     
  • Daniel Borkmann says:

    ====================
    pull-request: bpf 2018-08-18

    The following pull-request contains BPF updates for your *net* tree.

    The main changes are:

    1) Fix a BPF selftest failure in test_cgroup_storage due to rlimit
    restrictions, from Yonghong.

    2) Fix a suspicious RCU rcu_dereference_check() warning triggered
    from removing a device's XDP memory allocator by using the correct
    rhashtable lookup function, from Tariq.

    3) A batch of BPF sockmap and ULP fixes mainly fixing leaks and races
    as well as enforcing module aliases for ULPs. Another fix for BPF
    map redirect to make them work again with tail calls, from Daniel.

    4) Fix XDP BPF samples to unload their programs upon SIGTERM, from Jesper.
    ====================

    Signed-off-by: David S. Miller

    David S. Miller
     
  • Pablo Neira Ayuso says:

    ====================
    Netfilter/IPVS fixes for net

    The following patchset contains Netfilter/IPVS fixes for your net tree:

    1) Infinite loop in IPVS when net namespace is released, from
    Tan Hu.

    2) Do not show negative timeouts in ip_vs_conn by using the new
    jiffies_delta_to_msecs(), patches from Matteo Croce.

    3) Set F_IFACE flag for linklocal addresses in ip6t_rpfilter,
    from Florian Westphal.

    4) Fix overflow in set size allocation, from Taehee Yoo.

    5) Use netlink_dump_start() from ctnetlink to fix memleak from
    the error path, again from Florian.

    6) Register nfnetlink_subsys in last place, otherwise netns
    init path may lose race and see net->nft uninitialized data.
    This also reverts previous attempt to fix this by increase
    netns refcount, patches from Florian.

    7) Remove conntrack entries on layer 4 protocol tracker module
    removal, from Florian.

    8) Use GFP_KERNEL_ACCOUNT for xtables blob allocation, from
    Michal Hocko.

    9) Get tproxy documentation in sync with existing codebase,
    from Mate Eckl.

    10) Honor preset layer 3 protocol via ctx->family in the new nft_ct
    timeout infrastructure, from Harsha Sharma.

    11) Let uapi nfnetlink_osf.h compile standalone with no errors,
    from Dmitry V. Levin.

    12) Missing braces compilation warning in nft_tproxy, patch from
    Mate Eclk.

    13) Disregard bogus check to bail out on non-anonymous sets from
    the dynamic set update extension.
    ====================

    Signed-off-by: David S. Miller

    David S. Miller
     

18 Aug, 2018

10 commits

  • Pull 9p updates from Dominique Martinet:
    "This contains mostly fixes (6 to be backported to stable) and a few
    changes, here is the breakdown:

    - rework how fids are attributed by replacing some custom tracking in
    a list by an idr

    - for packet-based transports (virtio/rdma) validate that the packet
    length matches what the header says

    - a few race condition fixes found by syzkaller

    - missing argument check when NULL device is passed in sys_mount

    - a few virtio fixes

    - some spelling and style fixes"

    * tag '9p-for-4.19-2' of git://github.com/martinetd/linux: (21 commits)
    net/9p/trans_virtio.c: add null terminal for mount tag
    9p/virtio: fix off-by-one error in sg list bounds check
    9p: fix whitespace issues
    9p: fix multiple NULL-pointer-dereferences
    fs/9p/xattr.c: catch the error of p9_client_clunk when setting xattr failed
    9p: validate PDU length
    net/9p/trans_fd.c: fix race by holding the lock
    net/9p/trans_fd.c: fix race-condition by flushing workqueue before the kfree()
    net/9p/virtio: Fix hard lockup in req_done
    net/9p/trans_virtio.c: fix some spell mistakes in comments
    9p/net: Fix zero-copy path in the 9p virtio transport
    9p: Embed wait_queue_head into p9_req_t
    9p: Replace the fidlist with an IDR
    9p: Change p9_fid_create calling convention
    9p: Fix comment on smp_wmb
    net/9p/client.c: version pointer uninitialized
    fs/9p/v9fs.c: fix spelling mistake "Uknown" -> "Unknown"
    net/9p: fix error path of p9_virtio_probe
    9p/net/protocol.c: return -ENOMEM when kmalloc() failed
    net/9p/client.c: add missing '\n' at the end of p9_debug()
    ...

    Linus Torvalds
     
  • Merge updates from Andrew Morton:

    - a few misc things

    - a few Y2038 fixes

    - ntfs fixes

    - arch/sh tweaks

    - ocfs2 updates

    - most of MM

    * emailed patches from Andrew Morton : (111 commits)
    mm/hmm.c: remove unused variables align_start and align_end
    fs/userfaultfd.c: remove redundant pointer uwq
    mm, vmacache: hash addresses based on pmd
    mm/list_lru: introduce list_lru_shrink_walk_irq()
    mm/list_lru.c: pass struct list_lru_node* as an argument to __list_lru_walk_one()
    mm/list_lru.c: move locking from __list_lru_walk_one() to its caller
    mm/list_lru.c: use list_lru_walk_one() in list_lru_walk_node()
    mm, swap: make CONFIG_THP_SWAP depend on CONFIG_SWAP
    mm/sparse: delete old sparse_init and enable new one
    mm/sparse: add new sparse_init_nid() and sparse_init()
    mm/sparse: move buffer init/fini to the common place
    mm/sparse: use the new sparse buffer functions in non-vmemmap
    mm/sparse: abstract sparse buffer allocations
    mm/hugetlb.c: don't zero 1GiB bootmem pages
    mm, page_alloc: double zone's batchsize
    mm/oom_kill.c: document oom_lock
    mm/hugetlb: remove gigantic page support for HIGHMEM
    mm, oom: remove sleep from under oom_lock
    kernel/dma: remove unsupported gfp_mask parameter from dma_alloc_from_contiguous()
    mm/cma: remove unsupported gfp_mask parameter from cma_alloc()
    ...

    Linus Torvalds
     
  • When perf profiling a wide variety of different workloads, it was found
    that vmacache_find() had higher than expected cost: up to 0.08% of cpu
    utilization in some cases. This was found to rival other core VM
    functions such as alloc_pages_vma() with thp enabled and default
    mempolicy, and the conditionals in __get_vma_policy().

    VMACACHE_HASH() determines which of the four per-task_struct slots a vma
    is cached for a particular address. This currently depends on the pfn,
    so pfn 5212 occupies a different vmacache slot than its neighboring pfn
    5213.

    vmacache_find() iterates through all four of current's vmacache slots
    when looking up an address. Hashing based on pfn, an address has
    ~1/VMACACHE_SIZE chance of being cached in the first vmacache slot, or
    about 25%, *if* the vma is cached.

    This patch hashes an address by its pmd instead of pte to optimize for
    workloads with good spatial locality. This results in a higher
    probability of vmas being cached in the first slot that is checked:
    normally ~70% on the same workloads instead of 25%.

    [rientjes@google.com: various updates]
    Link: http://lkml.kernel.org/r/alpine.DEB.2.21.1807231532290.109445@chino.kir.corp.google.com
    Link: http://lkml.kernel.org/r/alpine.DEB.2.21.1807091749150.114630@chino.kir.corp.google.com
    Signed-off-by: David Rientjes
    Reviewed-by: Andrew Morton
    Cc: Davidlohr Bueso
    Cc: Alexey Dobriyan
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    David Rientjes
     
  • Provide list_lru_shrink_walk_irq() and let it behave like
    list_lru_walk_one() except that it locks the spinlock with
    spin_lock_irq(). This is used by scan_shadow_nodes() because its lock
    nests within the i_pages lock which is acquired with IRQ. This change
    allows to use proper locking promitives instead hand crafted
    lock_irq_disable() plus spin_lock().

    There is no EXPORT_SYMBOL provided because the current user is in-kernel
    only.

    Add list_lru_shrink_walk_irq() which acquires the spinlock with the
    proper locking primitives.

    Link: http://lkml.kernel.org/r/20180716111921.5365-5-bigeasy@linutronix.de
    Signed-off-by: Sebastian Andrzej Siewior
    Reviewed-by: Vladimir Davydov
    Cc: Thomas Gleixner
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Sebastian Andrzej Siewior
     
  • Rename new_sparse_init() to sparse_init() which enables it. Delete old
    sparse_init() and all the code that became obsolete with.

    [pasha.tatashin@oracle.com: remove unused sparse_mem_maps_populate_node()]
    Link: http://lkml.kernel.org/r/20180716174447.14529-6-pasha.tatashin@oracle.com
    Link: http://lkml.kernel.org/r/20180712203730.8703-6-pasha.tatashin@oracle.com
    Signed-off-by: Pavel Tatashin
    Tested-by: Michael Ellerman [powerpc]
    Tested-by: Oscar Salvador
    Reviewed-by: Oscar Salvador
    Cc: Pasha Tatashin
    Cc: Abdul Haleem
    Cc: Baoquan He
    Cc: Daniel Jordan
    Cc: Dan Williams
    Cc: Dave Hansen
    Cc: David Rientjes
    Cc: Greg Kroah-Hartman
    Cc: Ingo Molnar
    Cc: Jan Kara
    Cc: Jérôme Glisse
    Cc: "Kirill A. Shutemov"
    Cc: Michal Hocko
    Cc: Souptick Joarder
    Cc: Steven Sistare
    Cc: Vlastimil Babka
    Cc: Wei Yang
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Pavel Tatashin
     
  • Now that both variants of sparse memory use the same buffers to populate
    memory map, we can move sparse_buffer_init()/sparse_buffer_fini() to the
    common place.

    Link: http://lkml.kernel.org/r/20180712203730.8703-4-pasha.tatashin@oracle.com
    Signed-off-by: Pavel Tatashin
    Tested-by: Michael Ellerman [powerpc]
    Tested-by: Oscar Salvador
    Reviewed-by: Andrew Morton
    Cc: Pasha Tatashin
    Cc: Abdul Haleem
    Cc: Baoquan He
    Cc: Daniel Jordan
    Cc: Dan Williams
    Cc: Dave Hansen
    Cc: David Rientjes
    Cc: Greg Kroah-Hartman
    Cc: Ingo Molnar
    Cc: Jan Kara
    Cc: Jérôme Glisse
    Cc: "Kirill A. Shutemov"
    Cc: Michal Hocko
    Cc: Souptick Joarder
    Cc: Steven Sistare
    Cc: Vlastimil Babka
    Cc: Wei Yang
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Pavel Tatashin
     
  • Patch series "sparse_init rewrite", v6.

    In sparse_init() we allocate two large buffers to temporary hold usemap
    and memmap for the whole machine. However, we can avoid doing that if
    we changed sparse_init() to operated on per-node bases instead of doing
    it on the whole machine beforehand.

    As shown by Baoquan
    http://lkml.kernel.org/r/20180628062857.29658-1-bhe@redhat.com

    The buffers are large enough to cause machine stop to boot on small
    memory systems.

    Another benefit of these changes is that they also obsolete
    CONFIG_SPARSEMEM_ALLOC_MEM_MAP_TOGETHER.

    This patch (of 5):

    When struct pages are allocated for sparse-vmemmap VA layout, we first try
    to allocate one large buffer, and than if that fails allocate struct pages
    for each section as we go.

    The code that allocates buffer is uses global variables and is spread
    across several call sites.

    Cleanup the code by introducing three functions to handle the global
    buffer:

    sparse_buffer_init() initialize the buffer
    sparse_buffer_fini() free the remaining part of the buffer
    sparse_buffer_alloc() alloc from the buffer, and if buffer is empty
    return NULL

    Define these functions in sparse.c instead of sparse-vmemmap.c because
    later we will use them for non-vmemmap sparse allocations as well.

    [akpm@linux-foundation.org: use PTR_ALIGN()]
    [akpm@linux-foundation.org: s/BUG_ON/WARN_ON/]
    Link: http://lkml.kernel.org/r/20180712203730.8703-2-pasha.tatashin@oracle.com
    Signed-off-by: Pavel Tatashin
    Tested-by: Michael Ellerman [powerpc]
    Reviewed-by: Oscar Salvador
    Tested-by: Oscar Salvador
    Cc: Pasha Tatashin
    Cc: Steven Sistare
    Cc: Daniel Jordan
    Cc: "Kirill A. Shutemov"
    Cc: Michal Hocko
    Cc: Dan Williams
    Cc: Jan Kara
    Cc: Jérôme Glisse
    Cc: Souptick Joarder
    Cc: Baoquan He
    Cc: Greg Kroah-Hartman
    Cc: Vlastimil Babka
    Cc: Wei Yang
    Cc: Dave Hansen
    Cc: David Rientjes
    Cc: Ingo Molnar
    Cc: Abdul Haleem
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Pavel Tatashin
     
  • This reverts ee8f248d266e ("hugetlb: add phys addr to struct
    huge_bootmem_page").

    At one time powerpc used this field and supporting code. However that
    was removed with commit 79cc38ded1e1 ("powerpc/mm/hugetlb: Add support
    for reserving gigantic huge pages via kernel command line").

    There are no users of this field and supporting code, so remove it.

    Link: http://lkml.kernel.org/r/20180711195913.1294-1-mike.kravetz@oracle.com
    Signed-off-by: Mike Kravetz
    Reviewed-by: Andrew Morton
    Acked-by: Michal Hocko
    Cc: "Aneesh Kumar K . V"
    Cc: Michael Ellerman
    Cc: Benjamin Herrenschmidt
    Cc: Cannon Matthews
    Cc: Becky Bruce
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Mike Kravetz
     
  • The CMA memory allocator doesn't support standard gfp flags for memory
    allocation, so there is no point having it as a parameter for
    dma_alloc_from_contiguous() function. Replace it by a boolean no_warn
    argument, which covers all the underlaying cma_alloc() function
    supports.

    This will help to avoid giving false feeling that this function supports
    standard gfp flags and callers can pass __GFP_ZERO to get zeroed buffer,
    what has already been an issue: see commit dd65a941f6ba ("arm64:
    dma-mapping: clear buffers allocated with FORCE_CONTIGUOUS flag").

    Link: http://lkml.kernel.org/r/20180709122020eucas1p21a71b092975cb4a3b9954ffc63f699d1~-sqUFoa-h2939329393eucas1p2Y@eucas1p2.samsung.com
    Signed-off-by: Marek Szyprowski
    Acked-by: Michał Nazarewicz
    Acked-by: Vlastimil Babka
    Reviewed-by: Christoph Hellwig
    Cc: Laura Abbott
    Cc: Michal Hocko
    Cc: Joonsoo Kim
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Marek Szyprowski
     
  • cma_alloc() doesn't really support gfp flags other than __GFP_NOWARN, so
    convert gfp_mask parameter to boolean no_warn parameter.

    This will help to avoid giving false feeling that this function supports
    standard gfp flags and callers can pass __GFP_ZERO to get zeroed buffer,
    what has already been an issue: see commit dd65a941f6ba ("arm64:
    dma-mapping: clear buffers allocated with FORCE_CONTIGUOUS flag").

    Link: http://lkml.kernel.org/r/20180709122019eucas1p2340da484acfcc932537e6014f4fd2c29~-sqTPJKij2939229392eucas1p2j@eucas1p2.samsung.com
    Signed-off-by: Marek Szyprowski
    Acked-by: Michal Hocko
    Acked-by: Michał Nazarewicz
    Acked-by: Laura Abbott
    Acked-by: Vlastimil Babka
    Reviewed-by: Christoph Hellwig
    Cc: Joonsoo Kim
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Marek Szyprowski