23 Aug, 2018

3 commits

  • Same story: I have WIP patch to make it faster, so better have a test
    as well.

    Link: http://lkml.kernel.org/r/20180627195209.GC18113@avx2
    Signed-off-by: Alexey Dobriyan
    Cc: Shuah Khan
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Alexey Dobriyan
     
  • There are plans to change how /proc/self result is calculated,
    for that a test is necessary.

    Use direct system call because of this whole getpid caching story.

    Link: http://lkml.kernel.org/r/20180627195103.GB18113@avx2
    Signed-off-by: Alexey Dobriyan
    Cc: Shuah Khan
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Alexey Dobriyan
     
  • As with many other projects, we use some shmalloc allocator. At some
    point we need to make a part of allocated pages back private to process.
    And it should be populated straight away. Check that (MAP_PRIVATE |
    MAP_POPULATE) actually copies the private page.

    [akpm@linux-foundation.org: change message, per review discussion]
    Link: http://lkml.kernel.org/r/20180801233636.29354-1-dima@arista.com
    Signed-off-by: Dmitry Safonov
    Reviewed-by: Andrew Morton
    Cc: Dmitry Safonov
    Cc: Hua Zhong
    Cc: Shuah Khan
    Cc: Stuart Ritchie
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Dmitry Safonov
     

21 Aug, 2018

2 commits

  • …l/git/shuah/linux-kselftest

    Pull Kselftest update from Shuah Khan:

    - add cgroup core selftests

    - fix compile warnings in android ion test

    - fix to bugs in exclude and skip paths in vDSO test

    - remove obsolete config options

    - add missing .gitignore file

    * tag 'linux-kselftest-4.19-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest:
    selftests/ftrace: Fix kprobe string testcase to not probe notrace function
    selftests: mount: remove no longer needed config option
    selftests: cgroup: add gitignore file
    Add cgroup core selftests
    selftests: vDSO - fix to return KSFT_SKIP when test couldn't be run
    selftests: vDSO - fix to exclude x86 test on non-x86 platforms
    selftests/android: initialize heap_type to avoid compiling warning

    Linus Torvalds
     
  • 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
     

20 Aug, 2018

2 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
     

19 Aug, 2018

4 commits

  • 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 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
     

18 Aug, 2018

5 commits

  • 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
     
  • Add a flag which causes page-types to use the kernels's idle page
    tracking to mark pages idle. As the tool already prints the idle flag
    if set, subsequent runs will show which pages have been accessed since
    last run.

    [akpm@linux-foundation.org: simplify mark_page_idle()]
    [chansen3@cisco.com: reorganize mark_page_idle() logic, add docs]
    Link: http://lkml.kernel.org/r/20180706172237.21691-1-chansen3@cisco.com
    Link: http://lkml.kernel.org/r/20180612153223.13174-1-chansen3@cisco.com
    Signed-off-by: Christian Hansen
    Reviewed-by: Andrew Morton
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Christian Hansen
     
  • Add a new flag that will read kpagecount for each PFN and print out the
    number of times the page is mapped along with the flags in the listing
    view.

    This information is useful in understanding and optimizing memory usage.
    Identifying pages which are not shared allows us to focus on adjusting
    the memory layout or access patterns for the sole owning process.
    Knowing the number of processes that share a page tells us how many
    other times we must make the same adjustments or how many processes to
    potentially disable.

    Truncated sample output:

    voffset map-cnt offset len flags
    561a3591e 1 15fe8 1 ___U_lA____Ma_b___________________________
    561a3591f 1 2b103 1 ___U_lA____Ma_b___________________________
    561a36ca4 1 2cc78 1 ___U_lA____Ma_b___________________________
    7f588bb4e 14 2273c 1 __RU_lA____M______________________________

    [akpm@linux-foundation.org: coding-style fixes]
    [chansen3@cisco.com: add documentation, tweak whitespace]
    Link: http://lkml.kernel.org/r/20180705181204.5529-1-chansen3@cisco.com
    Link: http://lkml.kernel.org/r/20180612153205.12879-1-chansen3@cisco.com
    Signed-off-by: Christian Hansen
    Reviewed-by: Andrew Morton
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Christian Hansen
     
  • The bpf selftest test_cgroup_storage failed in one of
    our production test servers.
    # sudo ./test_cgroup_storage
    Failed to create map: Operation not permitted

    It turns out this is due to insufficient locked memory
    with system default 16KB.

    Similar to other self tests, let us arm the process
    with unlimited locked memory. With this change,
    the test passed.
    # sudo ./test_cgroup_storage
    test_cgroup_storage:PASS

    Fixes: 68cfa3ac6b8d ("selftests/bpf: add a cgroup storage test")
    Cc: Roman Gushchin
    Signed-off-by: Yonghong Song
    Acked-by: Roman Gushchin
    Signed-off-by: Alexei Starovoitov

    Yonghong Song
     
  • Pull powerpc updates from Michael Ellerman:
    "Notable changes:

    - A fix for a bug in our page table fragment allocator, where a page
    table page could be freed and reallocated for something else while
    still in use, leading to memory corruption etc. The fix reuses
    pt_mm in struct page (x86 only) for a powerpc only refcount.

    - Fixes to our pkey support. Several are user-visible changes, but
    bring us in to line with x86 behaviour and/or fix outright bugs.
    Thanks to Florian Weimer for reporting many of these.

    - A series to improve the hvc driver & related OPAL console code,
    which have been seen to cause hardlockups at times. The hvc driver
    changes in particular have been in linux-next for ~month.

    - Increase our MAX_PHYSMEM_BITS to 128TB when SPARSEMEM_VMEMMAP=y.

    - Remove Power8 DD1 and Power9 DD1 support, neither chip should be in
    use anywhere other than as a paper weight.

    - An optimised memcmp implementation using Power7-or-later VMX
    instructions

    - Support for barrier_nospec on some NXP CPUs.

    - Support for flushing the count cache on context switch on some IBM
    CPUs (controlled by firmware), as a Spectre v2 mitigation.

    - A series to enhance the information we print on unhandled signals
    to bring it into line with other arches, including showing the
    offending VMA and dumping the instructions around the fault.

    Thanks to: Aaro Koskinen, Akshay Adiga, Alastair D'Silva, Alexey
    Kardashevskiy, Alexey Spirkov, Alistair Popple, Andrew Donnellan,
    Aneesh Kumar K.V, Anju T Sudhakar, Arnd Bergmann, Bartosz Golaszewski,
    Benjamin Herrenschmidt, Bharat Bhushan, Bjoern Noetel, Boqun Feng,
    Breno Leitao, Bryant G. Ly, Camelia Groza, Christophe Leroy, Christoph
    Hellwig, Cyril Bur, Dan Carpenter, Daniel Klamt, Darren Stevens, Dave
    Young, David Gibson, Diana Craciun, Finn Thain, Florian Weimer,
    Frederic Barrat, Gautham R. Shenoy, Geert Uytterhoeven, Geoff Levand,
    Guenter Roeck, Gustavo Romero, Haren Myneni, Hari Bathini, Joel
    Stanley, Jonathan Neuschäfer, Kees Cook, Madhavan Srinivasan, Mahesh
    Salgaonkar, Markus Elfring, Mathieu Malaterre, Mauro S. M. Rodrigues,
    Michael Hanselmann, Michael Neuling, Michael Schmitz, Mukesh Ojha,
    Murilo Opsfelder Araujo, Nicholas Piggin, Parth Y Shah, Paul
    Mackerras, Paul Menzel, Ram Pai, Randy Dunlap, Rashmica Gupta, Reza
    Arbab, Rodrigo R. Galvao, Russell Currey, Sam Bobroff, Scott Wood,
    Shilpasri G Bhat, Simon Guo, Souptick Joarder, Stan Johnson, Thiago
    Jung Bauermann, Tyrel Datwyler, Vaibhav Jain, Vasant Hegde, Venkat
    Rao, zhong jiang"

    * tag 'powerpc-4.19-1' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux: (234 commits)
    powerpc/mm/book3s/radix: Add mapping statistics
    powerpc/uaccess: Enable get_user(u64, *p) on 32-bit
    powerpc/mm/hash: Remove unnecessary do { } while(0) loop
    powerpc/64s: move machine check SLB flushing to mm/slb.c
    powerpc/powernv/idle: Fix build error
    powerpc/mm/tlbflush: update the mmu_gather page size while iterating address range
    powerpc/mm: remove warning about ‘type’ being set
    powerpc/32: Include setup.h header file to fix warnings
    powerpc: Move `path` variable inside DEBUG_PROM
    powerpc/powermac: Make some functions static
    powerpc/powermac: Remove variable x that's never read
    cxl: remove a dead branch
    powerpc/powermac: Add missing include of header pmac.h
    powerpc/kexec: Use common error handling code in setup_new_fdt()
    powerpc/xmon: Add address lookup for percpu symbols
    powerpc/mm: remove huge_pte_offset_and_shift() prototype
    powerpc/lib: Use patch_site to patch copy_32 functions once cache is enabled
    powerpc/pseries: Fix endianness while restoring of r3 in MCE handler.
    powerpc/fadump: merge adjacent memory ranges to reduce PT_LOAD segements
    powerpc/fadump: handle crash memory ranges array index overflow
    ...

    Linus Torvalds
     

17 Aug, 2018

1 commit

  • Pull pci updates from Bjorn Helgaas:

    - Decode AER errors with names similar to "lspci" (Tyler Baicar)

    - Expose AER statistics in sysfs (Rajat Jain)

    - Clear AER status bits selectively based on the type of recovery (Oza
    Pawandeep)

    - Honor "pcie_ports=native" even if HEST sets FIRMWARE_FIRST (Alexandru
    Gagniuc)

    - Don't clear AER status bits if we're using the "Firmware-First"
    strategy where firmware owns the registers (Alexandru Gagniuc)

    - Use sysfs_match_string() to simplify ASPM sysfs parsing (Andy
    Shevchenko)

    - Remove unnecessary includes of (Bjorn Helgaas)

    - Defer DPC event handling to work queue (Keith Busch)

    - Use threaded IRQ for DPC bottom half (Keith Busch)

    - Print AER status while handling DPC events (Keith Busch)

    - Work around IDT switch ACS Source Validation erratum (James
    Puthukattukaran)

    - Emit diagnostics for all cases of PCIe Link downtraining (Links
    operating slower than they're capable of) (Alexandru Gagniuc)

    - Skip VFs when configuring Max Payload Size (Myron Stowe)

    - Reduce Root Port Max Payload Size if necessary when hot-adding a
    device below it (Myron Stowe)

    - Simplify SHPC existence/permission checks (Bjorn Helgaas)

    - Remove hotplug sample skeleton driver (Lukas Wunner)

    - Convert pciehp to threaded IRQ handling (Lukas Wunner)

    - Improve pciehp tolerance of missed events and initially unstable
    links (Lukas Wunner)

    - Clear spurious pciehp events on resume (Lukas Wunner)

    - Add pciehp runtime PM support, including for Thunderbolt controllers
    (Lukas Wunner)

    - Support interrupts from pciehp bridges in D3hot (Lukas Wunner)

    - Mark fall-through switch cases before enabling -Wimplicit-fallthrough
    (Gustavo A. R. Silva)

    - Move DMA-debug PCI init from arch code to PCI core (Christoph
    Hellwig)

    - Fix pci_request_irq() usage of IRQF_ONESHOT when no handler is
    supplied (Heiner Kallweit)

    - Unify PCI and DMA direction #defines (Shunyong Yang)

    - Add PCI_DEVICE_DATA() macro (Andy Shevchenko)

    - Check for VPD completion before checking for timeout (Bert Kenward)

    - Limit Netronome NFP5000 config space size to work around erratum
    (Jakub Kicinski)

    - Set IRQCHIP_ONESHOT_SAFE for PCI MSI irqchips (Heiner Kallweit)

    - Document ACPI description of PCI host bridges (Bjorn Helgaas)

    - Add "pci=disable_acs_redir=" parameter to disable ACS redirection for
    peer-to-peer DMA support (we don't have the peer-to-peer support yet;
    this is just one piece) (Logan Gunthorpe)

    - Clean up devm_of_pci_get_host_bridge_resources() resource allocation
    (Jan Kiszka)

    - Fixup resizable BARs after suspend/resume (Christian König)

    - Make "pci=earlydump" generic (Sinan Kaya)

    - Fix ROM BAR access routines to stay in bounds and check for signature
    correctly (Rex Zhu)

    - Add DMA alias quirk for Microsemi Switchtec NTB (Doug Meyer)

    - Expand documentation for pci_add_dma_alias() (Logan Gunthorpe)

    - To avoid bus errors, enable PASID only if entire path supports
    End-End TLP prefixes (Sinan Kaya)

    - Unify slot and bus reset functions and remove hotplug knowledge from
    callers (Sinan Kaya)

    - Add Function-Level Reset quirks for Intel and Samsung NVMe devices to
    fix guest reboot issues (Alex Williamson)

    - Add function 1 DMA alias quirk for Marvell 88SS9183 PCIe SSD
    Controller (Bjorn Helgaas)

    - Remove Xilinx AXI-PCIe host bridge arch dependency (Palmer Dabbelt)

    - Remove Aardvark outbound window configuration (Evan Wang)

    - Fix Aardvark bridge window sizing issue (Zachary Zhang)

    - Convert Aardvark to use pci_host_probe() to reduce code duplication
    (Thomas Petazzoni)

    - Correct the Cadence cdns_pcie_writel() signature (Alan Douglas)

    - Add Cadence support for optional generic PHYs (Alan Douglas)

    - Add Cadence power management ops (Alan Douglas)

    - Remove redundant variable from Cadence driver (Colin Ian King)

    - Add Kirin MSI support (Xiaowei Song)

    - Drop unnecessary root_bus_nr setting from exynos, imx6, keystone,
    armada8k, artpec6, designware-plat, histb, qcom, spear13xx (Shawn
    Guo)

    - Move link notification settings from DesignWare core to individual
    drivers (Gustavo Pimentel)

    - Add endpoint library MSI-X interfaces (Gustavo Pimentel)

    - Correct signature of endpoint library IRQ interfaces (Gustavo
    Pimentel)

    - Add DesignWare endpoint library MSI-X callbacks (Gustavo Pimentel)

    - Add endpoint library MSI-X test support (Gustavo Pimentel)

    - Remove unnecessary GFP_ATOMIC from Hyper-V "new child" allocation
    (Jia-Ju Bai)

    - Add more devices to Broadcom PAXC quirk (Ray Jui)

    - Work around corrupted Broadcom PAXC config space to enable SMMU and
    GICv3 ITS (Ray Jui)

    - Disable MSI parsing to work around broken Broadcom PAXC logic in some
    devices (Ray Jui)

    - Hide unconfigured functions to work around a Broadcom PAXC defect
    (Ray Jui)

    - Lower iproc log level to reduce console output during boot (Ray Jui)

    - Fix mobiveil iomem/phys_addr_t type usage (Lorenzo Pieralisi)

    - Fix mobiveil missing include file (Lorenzo Pieralisi)

    - Add mobiveil Kconfig/Makefile support (Lorenzo Pieralisi)

    - Fix mvebu I/O space remapping issues (Thomas Petazzoni)

    - Use generic pci_host_bridge in mvebu instead of ARM-specific API
    (Thomas Petazzoni)

    - Whitelist VMD devices with fast interrupt handlers to avoid sharing
    vectors with slow handlers (Keith Busch)

    * tag 'pci-v4.19-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci: (153 commits)
    PCI/AER: Don't clear AER bits if error handling is Firmware-First
    PCI: Limit config space size for Netronome NFP5000
    PCI/MSI: Set IRQCHIP_ONESHOT_SAFE for PCI-MSI irqchips
    PCI/VPD: Check for VPD access completion before checking for timeout
    PCI: Add PCI_DEVICE_DATA() macro to fully describe device ID entry
    PCI: Match Root Port's MPS to endpoint's MPSS as necessary
    PCI: Skip MPS logic for Virtual Functions (VFs)
    PCI: Add function 1 DMA alias quirk for Marvell 88SS9183
    PCI: Check for PCIe Link downtraining
    PCI: Add ACS Redirect disable quirk for Intel Sunrise Point
    PCI: Add device-specific ACS Redirect disable infrastructure
    PCI: Convert device-specific ACS quirks from NULL termination to ARRAY_SIZE
    PCI: Add "pci=disable_acs_redir=" parameter for peer-to-peer support
    PCI: Allow specifying devices using a base bus and path of devfns
    PCI: Make specifying PCI devices in kernel parameters reusable
    PCI: Hide ACS quirk declarations inside PCI core
    PCI: Delay after FLR of Intel DC P3700 NVMe
    PCI: Disable Samsung SM961/PM961 NVMe before FLR
    PCI: Export pcie_has_flr()
    PCI: mvebu: Drop bogus comment above mvebu_pcie_map_registers()
    ...

    Linus Torvalds
     

16 Aug, 2018

3 commits

  • Pull GPIO updates from Linus Walleij:
    "This is the bulk of GPIO changes for the v4.19 kernel cycle.

    I don't know if anything in particular stands out. Maybe the Aspeed
    coprocessor thing from Benji: Aspeed is doing baseboard management
    chips (BMC's) for servers etc.

    These Aspeed's are ARM processors that exist inside (I guess) Intel
    servers, and they are moving forward to using mainline Linux in those.
    This is one of the pieces of the puzzle to achive that. They are doing
    OpenBMC, it's pretty cool: https://lwn.net/Articles/683320/

    Summary:

    Core changes:

    - Add a new API for explicitly naming GPIO consumers, when needed.

    - Don't let userspace set values on input lines. While we do not
    think anyone would do this crazy thing we better plug the hole
    before someone uses it and think it's a nifty feature.

    - Avoid calling chip->request() for unused GPIOs.

    New drivers/subdrivers:

    - The Mediatek MT7621 is supported which is a big win for OpenWRT and
    similar router distributions using this chip, as it seems every
    major router manufacturer on the planet has made products using
    this chip: https://wikidevi.com/wiki/MediaTek_MT7621

    - The Tegra 194 is now supported.

    - The IT87 driver now supports IT8786E and IT8718F super-IO chips.

    - Add support for Rockchip RK3328 in the syscon GPIO driver.

    Driver changes:

    - Handle the get/set_multiple() properly on MMIO chips with inverted
    direction registers. We didn't have this problem until a new chip
    appear that has get/set registers AND inverted direction bits, OK
    now we handle it.

    - A patch series making more error codes percolate upward properly
    for different errors on gpiochip_lock_as_irq().

    - Get/set multiple for the OMAP driver, accelerating these multiple
    line operations if possible.

    - A coprocessor interface for the Aspeed driver. Sometimes a few GPIO
    lines need to be grabbed by a co-processor for doing automated
    tasks, sometimes they are available as GPIO lines. By adding an
    explicit API in this driver we make it possible for the two line
    consumers to coexist. (This work was made available on the
    ib-aspeed branch, which may be appearing in other pull requests.)

    - Implemented .get_direction() and open drain in the SCH311x driver.

    - Continuing cleanup of included headers in GPIO drivers"

    * tag 'gpio-v4.19-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio: (80 commits)
    gpio: it87: Add support for IT8613
    gpio: it87: add support for IT8718F Super I/O.
    gpiolib: Avoid calling chip->request() for unused gpios
    gpio: tegra: Include the right header
    gpio: mmio: Fix up inverted direction registers
    gpio: xilinx: Use the right include
    gpio: timberdale: Include the right header
    gpio: tb10x: Use the right include
    gpiolib: Fix of_node inconsistency
    gpio: vr41xx: Bail out on gpiochip_lock_as_irq() error
    gpio: uniphier: Bail out on gpiochip_lock_as_irq() error
    gpio: xgene-sb: Don't shadow error code of gpiochip_lock_as_irq()
    gpio: em: Don't shadow error code of gpiochip_lock_as_irq()
    gpio: dwapb: Don't shadow error code of gpiochip_lock_as_irq()
    gpio: bcm-kona: Don't shadow error code of gpiochip_lock_as_irq()
    gpiolib: Don't shadow error code of gpiochip_lock_as_irq()
    gpio: syscon: rockchip: add GRF GPIO support for rk3328
    gpio: omap: Add get/set_multiple() callbacks
    gpio: pxa: remove set but not used variable 'gpio_offset'
    gpio-it87: add support for IT8786E Super I/O
    ...

    Linus Torvalds
     
  • Pull networking updates from David Miller:
    "Highlights:

    - Gustavo A. R. Silva keeps working on the implicit switch fallthru
    changes.

    - Support 802.11ax High-Efficiency wireless in cfg80211 et al, From
    Luca Coelho.

    - Re-enable ASPM in r8169, from Kai-Heng Feng.

    - Add virtual XFRM interfaces, which avoids all of the limitations of
    existing IPSEC tunnels. From Steffen Klassert.

    - Convert GRO over to use a hash table, so that when we have many
    flows active we don't traverse a long list during accumluation.

    - Many new self tests for routing, TC, tunnels, etc. Too many
    contributors to mention them all, but I'm really happy to keep
    seeing this stuff.

    - Hardware timestamping support for dpaa_eth/fsl-fman from Yangbo Lu.

    - Lots of cleanups and fixes in L2TP code from Guillaume Nault.

    - Add IPSEC offload support to netdevsim, from Shannon Nelson.

    - Add support for slotting with non-uniform distribution to netem
    packet scheduler, from Yousuk Seung.

    - Add UDP GSO support to mlx5e, from Boris Pismenny.

    - Support offloading of Team LAG in NFP, from John Hurley.

    - Allow to configure TX queue selection based upon RX queue, from
    Amritha Nambiar.

    - Support ethtool ring size configuration in aquantia, from Anton
    Mikaev.

    - Support DSCP and flowlabel per-transport in SCTP, from Xin Long.

    - Support list based batching and stack traversal of SKBs, this is
    very exciting work. From Edward Cree.

    - Busyloop optimizations in vhost_net, from Toshiaki Makita.

    - Introduce the ETF qdisc, which allows time based transmissions. IGB
    can offload this in hardware. From Vinicius Costa Gomes.

    - Add parameter support to devlink, from Moshe Shemesh.

    - Several multiplication and division optimizations for BPF JIT in
    nfp driver, from Jiong Wang.

    - Lots of prepatory work to make more of the packet scheduler layer
    lockless, when possible, from Vlad Buslov.

    - Add ACK filter and NAT awareness to sch_cake packet scheduler, from
    Toke Høiland-Jørgensen.

    - Support regions and region snapshots in devlink, from Alex Vesker.

    - Allow to attach XDP programs to both HW and SW at the same time on
    a given device, with initial support in nfp. From Jakub Kicinski.

    - Add TLS RX offload and support in mlx5, from Ilya Lesokhin.

    - Use PHYLIB in r8169 driver, from Heiner Kallweit.

    - All sorts of changes to support Spectrum 2 in mlxsw driver, from
    Ido Schimmel.

    - PTP support in mv88e6xxx DSA driver, from Andrew Lunn.

    - Make TCP_USER_TIMEOUT socket option more accurate, from Jon
    Maxwell.

    - Support for templates in packet scheduler classifier, from Jiri
    Pirko.

    - IPV6 support in RDS, from Ka-Cheong Poon.

    - Native tproxy support in nf_tables, from Máté Eckl.

    - Maintain IP fragment queue in an rbtree, but optimize properly for
    in-order frags. From Peter Oskolkov.

    - Improvde handling of ACKs on hole repairs, from Yuchung Cheng"

    * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next: (1996 commits)
    bpf: test: fix spelling mistake "REUSEEPORT" -> "REUSEPORT"
    hv/netvsc: Fix NULL dereference at single queue mode fallback
    net: filter: mark expected switch fall-through
    xen-netfront: fix warn message as irq device name has '/'
    cxgb4: Add new T5 PCI device ids 0x50af and 0x50b0
    net: dsa: mv88e6xxx: missing unlock on error path
    rds: fix building with IPV6=m
    inet/connection_sock: prefer _THIS_IP_ to current_text_addr
    net: dsa: mv88e6xxx: bitwise vs logical bug
    net: sock_diag: Fix spectre v1 gadget in __sock_diag_cmd()
    ieee802154: hwsim: using right kind of iteration
    net: hns3: Add vlan filter setting by ethtool command -K
    net: hns3: Set tx ring' tc info when netdev is up
    net: hns3: Remove tx ring BD len register in hns3_enet
    net: hns3: Fix desc num set to default when setting channel
    net: hns3: Fix for phy link issue when using marvell phy driver
    net: hns3: Fix for information of phydev lost problem when down/up
    net: hns3: Fix for command format parsing error in hclge_is_all_function_id_zero
    net: hns3: Add support for serdes loopback selftest
    bnxt_en: take coredump_record structure off stack
    ...

    Linus Torvalds
     
  • Pull Kbuild updates from Masahiro Yamada:

    - verify depmod is installed before modules_install

    - support build salt in case build ids must be unique between builds

    - allow users to specify additional host compiler flags via HOST*FLAGS,
    and rename internal variables to KBUILD_HOST*FLAGS

    - update buildtar script to drop vax support, add arm64 support

    - update builddeb script for better debarch support

    - document the pit-fall of if_changed usage

    - fix parallel build of UML with O= option

    - make 'samples' target depend on headers_install to fix build errors

    - remove deprecated host-progs variable

    - add a new coccinelle script for refcount_t vs atomic_t check

    - improve double-test coccinelle script

    - misc cleanups and fixes

    * tag 'kbuild-v4.19' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild: (41 commits)
    coccicheck: return proper error code on fail
    Coccinelle: doubletest: reduce side effect false positives
    kbuild: remove deprecated host-progs variable
    kbuild: make samples really depend on headers_install
    um: clean up archheaders recipe
    kbuild: add %asm-generic to no-dot-config-targets
    um: fix parallel building with O= option
    scripts: Add Python 3 support to tracing/draw_functrace.py
    builddeb: Add automatic support for sh{3,4}{,eb} architectures
    builddeb: Add automatic support for riscv* architectures
    builddeb: Add automatic support for m68k architecture
    builddeb: Add automatic support for or1k architecture
    builddeb: Add automatic support for sparc64 architecture
    builddeb: Add automatic support for mips{,64}r6{,el} architectures
    builddeb: Add automatic support for mips64el architecture
    builddeb: Add automatic support for ppc64 and powerpcspe architectures
    builddeb: Introduce functions to simplify kconfig tests in set_debarch
    builddeb: Drop check for 32-bit s390
    builddeb: Change architecture detection fallback to use dpkg-architecture
    builddeb: Skip architecture detection when KBUILD_DEBARCH is set
    ...

    Linus Torvalds
     

15 Aug, 2018

3 commits

  • Pull arm64 updates from Will Deacon:
    "A bunch of good stuff in here. Worth noting is that we've pulled in
    the x86/mm branch from -tip so that we can make use of the core
    ioremap changes which allow us to put down huge mappings in the
    vmalloc area without screwing up the TLB. Much of the positive
    diffstat is because of the rseq selftest for arm64.

    Summary:

    - Wire up support for qspinlock, replacing our trusty ticket lock
    code

    - Add an IPI to flush_icache_range() to ensure that stale
    instructions fetched into the pipeline are discarded along with the
    I-cache lines

    - Support for the GCC "stackleak" plugin

    - Support for restartable sequences, plus an arm64 port for the
    selftest

    - Kexec/kdump support on systems booting with ACPI

    - Rewrite of our syscall entry code in C, which allows us to zero the
    GPRs on entry from userspace

    - Support for chained PMU counters, allowing 64-bit event counters to
    be constructed on current CPUs

    - Ensure scheduler topology information is kept up-to-date with CPU
    hotplug events

    - Re-enable support for huge vmalloc/IO mappings now that the core
    code has the correct hooks to use break-before-make sequences

    - Miscellaneous, non-critical fixes and cleanups"

    * tag 'arm64-upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux: (90 commits)
    arm64: alternative: Use true and false for boolean values
    arm64: kexec: Add comment to explain use of __flush_icache_range()
    arm64: sdei: Mark sdei stack helper functions as static
    arm64, kaslr: export offset in VMCOREINFO ELF notes
    arm64: perf: Add cap_user_time aarch64
    efi/libstub: Only disable stackleak plugin for arm64
    arm64: drop unused kernel_neon_begin_partial() macro
    arm64: kexec: machine_kexec should call __flush_icache_range
    arm64: svc: Ensure hardirq tracing is updated before return
    arm64: mm: Export __sync_icache_dcache() for xen-privcmd
    drivers/perf: arm-ccn: Use devm_ioremap_resource() to map memory
    arm64: Add support for STACKLEAK gcc plugin
    arm64: Add stack information to on_accessible_stack
    drivers/perf: hisi: update the sccl_id/ccl_id when MT is supported
    arm64: fix ACPI dependencies
    rseq/selftests: Add support for arm64
    arm64: acpi: fix alignment fault in accessing ACPI
    efi/arm: map UEFI memory map even w/o runtime services enabled
    efi/arm: preserve early mapping of UEFI memory map longer for BGRT
    drivers: acpi: add dependency of EFI for arm64
    ...

    Linus Torvalds
     
  • Trivial fix to spelling mistake in error message

    Signed-off-by: Colin Ian King
    Acked-by: Alexei Starovoitov
    Signed-off-by: David S. Miller

    Colin Ian King
     
  • Merge L1 Terminal Fault fixes from Thomas Gleixner:
    "L1TF, aka L1 Terminal Fault, is yet another speculative hardware
    engineering trainwreck. It's a hardware vulnerability which allows
    unprivileged speculative access to data which is available in the
    Level 1 Data Cache when the page table entry controlling the virtual
    address, which is used for the access, has the Present bit cleared or
    other reserved bits set.

    If an instruction accesses a virtual address for which the relevant
    page table entry (PTE) has the Present bit cleared or other reserved
    bits set, then speculative execution ignores the invalid PTE and loads
    the referenced data if it is present in the Level 1 Data Cache, as if
    the page referenced by the address bits in the PTE was still present
    and accessible.

    While this is a purely speculative mechanism and the instruction will
    raise a page fault when it is retired eventually, the pure act of
    loading the data and making it available to other speculative
    instructions opens up the opportunity for side channel attacks to
    unprivileged malicious code, similar to the Meltdown attack.

    While Meltdown breaks the user space to kernel space protection, L1TF
    allows to attack any physical memory address in the system and the
    attack works across all protection domains. It allows an attack of SGX
    and also works from inside virtual machines because the speculation
    bypasses the extended page table (EPT) protection mechanism.

    The assoicated CVEs are: CVE-2018-3615, CVE-2018-3620, CVE-2018-3646

    The mitigations provided by this pull request include:

    - Host side protection by inverting the upper address bits of a non
    present page table entry so the entry points to uncacheable memory.

    - Hypervisor protection by flushing L1 Data Cache on VMENTER.

    - SMT (HyperThreading) control knobs, which allow to 'turn off' SMT
    by offlining the sibling CPU threads. The knobs are available on
    the kernel command line and at runtime via sysfs

    - Control knobs for the hypervisor mitigation, related to L1D flush
    and SMT control. The knobs are available on the kernel command line
    and at runtime via sysfs

    - Extensive documentation about L1TF including various degrees of
    mitigations.

    Thanks to all people who have contributed to this in various ways -
    patches, review, testing, backporting - and the fruitful, sometimes
    heated, but at the end constructive discussions.

    There is work in progress to provide other forms of mitigations, which
    might be less horrible performance wise for a particular kind of
    workloads, but this is not yet ready for consumption due to their
    complexity and limitations"

    * 'l1tf-final' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (75 commits)
    x86/microcode: Allow late microcode loading with SMT disabled
    tools headers: Synchronise x86 cpufeatures.h for L1TF additions
    x86/mm/kmmio: Make the tracer robust against L1TF
    x86/mm/pat: Make set_memory_np() L1TF safe
    x86/speculation/l1tf: Make pmd/pud_mknotpresent() invert
    x86/speculation/l1tf: Invert all not present mappings
    cpu/hotplug: Fix SMT supported evaluation
    KVM: VMX: Tell the nested hypervisor to skip L1D flush on vmentry
    x86/speculation: Use ARCH_CAPABILITIES to skip L1D flush on vmentry
    x86/speculation: Simplify sysfs report of VMX L1TF vulnerability
    Documentation/l1tf: Remove Yonah processors from not vulnerable list
    x86/KVM/VMX: Don't set l1tf_flush_l1d from vmx_handle_external_intr()
    x86/irq: Let interrupt handlers set kvm_cpu_l1tf_flush_l1d
    x86: Don't include linux/irq.h from asm/hardirq.h
    x86/KVM/VMX: Introduce per-host-cpu analogue of l1tf_flush_l1d
    x86/irq: Demote irq_cpustat_t::__softirq_pending to u16
    x86/KVM/VMX: Move the l1tf_flush_l1d test to vmx_l1d_flush()
    x86/KVM/VMX: Replace 'vmx_l1d_flush_always' with 'vmx_l1d_flush_cond'
    x86/KVM/VMX: Don't set l1tf_flush_l1d to true from vmx_l1d_flush()
    cpu/hotplug: detect SMT disabled by BIOS
    ...

    Linus Torvalds
     

14 Aug, 2018

8 commits

  • Pull parisc updates from Helge Deller:

    - parisc now uses the generic dma_noncoherent_ops implementation
    (Christoph Hellwig)

    - further memory barrier and spinlock improvements (John David Anglin)

    - prepare removal of current_text_addr() functions (Nick Desaulniers)

    - improve kernel stack unwinding on parisc (me)

    - drop ENOTSUP which was defined on parisc only (me)

    * 'parisc-4.19-1' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux:
    parisc: Fix and improve kernel stack unwinding
    parisc: Remove unnecessary barriers from spinlock.h
    parisc: Remove ordered stores from syscall.S
    parisc: prefer _THIS_IP_ and _RET_IP_ statement expressions
    parisc: Add HAVE_REGS_AND_STACK_ACCESS_API feature
    parisc: Drop architecture-specific ENOTSUP define
    parisc: use generic dma_noncoherent_ops
    parisc: always use flush_kernel_dcache_range for DMA cache maintainance
    parisc: merge pcx_dma_ops and pcxl_dma_ops

    Linus Torvalds
     
  • Pull s390 updates from Heiko Carstens:
    "Since Martin is on vacation you get the s390 pull request from me:

    - Host large page support for KVM guests. As the patches have large
    impact on arch/s390/mm/ this series goes out via both the KVM and
    the s390 tree.

    - Add an option for no compression to the "Kernel compression mode"
    menu, this will come in handy with the rework of the early boot
    code.

    - A large rework of the early boot code that will make life easier
    for KASAN and KASLR. With the rework the bootable uncompressed
    image is not generated anymore, only the bzImage is available. For
    debuggung purposes the new "no compression" option is used.

    - Re-enable the gcc plugins as the issue with the latent entropy
    plugin is solved with the early boot code rework.

    - More spectre relates changes:
    + Detect the etoken facility and remove expolines automatically.
    + Add expolines to a few more indirect branches.

    - A rewrite of the common I/O layer trace points to make them
    consumable by 'perf stat'.

    - Add support for format-3 PCI function measurement blocks.

    - Changes for the zcrypt driver:
    + Add attributes to indicate the load of cards and queues.
    + Restructure some code for the upcoming AP device support in KVM.

    - Build flags improvements in various Makefiles.

    - A few fixes for the kdump support.

    - A couple of patches for gcc 8 compile warning cleanup.

    - Cleanup s390 specific proc handlers.

    - Add s390 support to the restartable sequence self tests.

    - Some PTR_RET vs PTR_ERR_OR_ZERO cleanup.

    - Lots of bug fixes"

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux: (107 commits)
    s390/dasd: fix hanging offline processing due to canceled worker
    s390/dasd: fix panic for failed online processing
    s390/mm: fix addressing exception after suspend/resume
    rseq/selftests: add s390 support
    s390: fix br_r1_trampoline for machines without exrl
    s390/lib: use expoline for all bcr instructions
    s390/numa: move initial setup of node_to_cpumask_map
    s390/kdump: Fix elfcorehdr size calculation
    s390/cpum_sf: save TOD clock base in SDBs for time conversion
    KVM: s390: Add huge page enablement control
    s390/mm: Add huge page gmap linking support
    s390/mm: hugetlb pages within a gmap can not be freed
    KVM: s390: Add skey emulation fault handling
    s390/mm: Add huge pmd storage key handling
    s390/mm: Clear skeys for newly mapped huge guest pmds
    s390/mm: Clear huge page storage keys on enable_skey
    s390/mm: Add huge page dirty sync support
    s390/mm: Add gmap pmd invalidation and clearing
    s390/mm: Add gmap pmd notification bit setting
    s390/mm: Add gmap pmd linking
    ...

    Linus Torvalds
     
  • Pull x86 asm updates from Thomas Gleixner:
    "The lowlevel and ASM code updates for x86:

    - Make stack trace unwinding more reliable

    - ASM instruction updates for better code generation

    - Various cleanups"

    * 'x86-asm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    x86/entry/64: Add two more instruction suffixes
    x86/asm/64: Use 32-bit XOR to zero registers
    x86/build/vdso: Simplify 'cmd_vdso2c'
    x86/build/vdso: Remove unused vdso-syms.lds
    x86/stacktrace: Enable HAVE_RELIABLE_STACKTRACE for the ORC unwinder
    x86/unwind/orc: Detect the end of the stack
    x86/stacktrace: Do not fail for ORC with regs on stack
    x86/stacktrace: Clarify the reliable success paths
    x86/stacktrace: Remove STACKTRACE_DUMP_ONCE
    x86/stacktrace: Do not unwind after user regs
    x86/asm: Use CC_SET/CC_OUT in percpu_cmpxchg8b_double() to micro-optimize code generation

    Linus Torvalds
     
  • Pull timer updates from Thomas Gleixner:
    "The timers departement more or less proudly presents:

    - More Y2038 timekeeping work mostly in the core code. The work is
    slowly, but steadily targeting the actuall syscalls.

    - Enhanced timekeeping suspend/resume support by utilizing
    clocksources which do not stop during suspend, but are otherwise
    not the main timekeeping clocksources.

    - Make NTP adjustmets more accurate and immediate when the frequency
    is set directly and not incrementally.

    - Sanitize the overrung handing of posix timers

    - A new timer driver for Mediatek SoCs

    - The usual pile of fixes and updates all over the place"

    * 'timers-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (32 commits)
    clockevents: Warn if cpu_all_mask is used as cpumask
    tick/broadcast-hrtimer: Use cpu_possible_mask for ce_broadcast_hrtimer
    clocksource/drivers/arm_arch_timer: Fix bogus cpu_all_mask usage
    clocksource: ti-32k: Remove CLOCK_SOURCE_SUSPEND_NONSTOP flag
    timers: Clear timer_base::must_forward_clk with timer_base::lock held
    clocksource/drivers/sprd: Register one always-on timer to compensate suspend time
    clocksource/drivers/timer-mediatek: Add support for system timer
    clocksource/drivers/timer-mediatek: Convert the driver to timer-of
    clocksource/drivers/timer-mediatek: Use specific prefix for GPT
    clocksource/drivers/timer-mediatek: Rename mtk_timer to timer-mediatek
    clocksource/drivers/timer-mediatek: Add system timer bindings
    clocksource/drivers: Set clockevent device cpumask to cpu_possible_mask
    time: Introduce one suspend clocksource to compensate the suspend time
    time: Fix extra sleeptime injection when suspend fails
    timekeeping/ntp: Constify some function arguments
    ntp: Use kstrtos64 for s64 variable
    ntp: Remove redundant arguments
    timer: Fix coding style
    ktime: Provide typesafe ktime_to_ns()
    hrtimer: Improve kernel message printing
    ...

    Linus Torvalds
     
  • Pull perf update from Thomas Gleixner:
    "The perf crowd presents:

    Kernel updates:

    - Removal of jprobes

    - Cleanup and consolidatation the handling of kprobes

    - Cleanup and consolidation of hardware breakpoints

    - The usual pile of fixes and updates to PMUs and event descriptors

    Tooling updates:

    - Updates and improvements all over the place. Nothing outstanding,
    just the (good) boring incremental grump work"

    * 'perf-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (103 commits)
    perf trace: Do not require --no-syscalls to suppress strace like output
    perf bpf: Include uapi/linux/bpf.h from the 'perf trace' script's bpf.h
    perf tools: Allow overriding MAX_NR_CPUS at compile time
    perf bpf: Show better message when failing to load an object
    perf list: Unify metric group description format with PMU event description
    perf vendor events arm64: Update ThunderX2 implementation defined pmu core events
    perf cs-etm: Generate branch sample for CS_ETM_TRACE_ON packet
    perf cs-etm: Generate branch sample when receiving a CS_ETM_TRACE_ON packet
    perf cs-etm: Support dummy address value for CS_ETM_TRACE_ON packet
    perf cs-etm: Fix start tracing packet handling
    perf build: Fix installation directory for eBPF
    perf c2c report: Fix crash for empty browser
    perf tests: Fix indexing when invoking subtests
    perf trace: Beautify the AF_INET & AF_INET6 'socket' syscall 'protocol' args
    perf trace beauty: Add beautifiers for 'socket''s 'protocol' arg
    perf trace beauty: Do not print NULL strarray entries
    perf beauty: Add a generator for IPPROTO_ socket's protocol constants
    tools include uapi: Grab a copy of linux/in.h
    perf tests: Fix complex event name parsing
    perf evlist: Fix error out while applying initial delay and LBR
    ...

    Linus Torvalds
     
  • Pull locking/atomics update from Thomas Gleixner:
    "The locking, atomics and memory model brains delivered:

    - A larger update to the atomics code which reworks the ordering
    barriers, consolidates the atomic primitives, provides the new
    atomic64_fetch_add_unless() primitive and cleans up the include
    hell.

    - Simplify cmpxchg() instrumentation and add instrumentation for
    xchg() and cmpxchg_double().

    - Updates to the memory model and documentation"

    * 'locking-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (48 commits)
    locking/atomics: Rework ordering barriers
    locking/atomics: Instrument cmpxchg_double*()
    locking/atomics: Instrument xchg()
    locking/atomics: Simplify cmpxchg() instrumentation
    locking/atomics/x86: Reduce arch_cmpxchg64*() instrumentation
    tools/memory-model: Rename litmus tests to comply to norm7
    tools/memory-model/Documentation: Fix typo, smb->smp
    sched/Documentation: Update wake_up() & co. memory-barrier guarantees
    locking/spinlock, sched/core: Clarify requirements for smp_mb__after_spinlock()
    sched/core: Use smp_mb() in wake_woken_function()
    tools/memory-model: Add informal LKMM documentation to MAINTAINERS
    locking/atomics/Documentation: Describe atomic_set() as a write operation
    tools/memory-model: Make scripts executable
    tools/memory-model: Remove ACCESS_ONCE() from model
    tools/memory-model: Remove ACCESS_ONCE() from recipes
    locking/memory-barriers.txt/kokr: Update Korean translation to fix broken DMA vs. MMIO ordering example
    MAINTAINERS: Add Daniel Lustig as an LKMM reviewer
    tools/memory-model: Fix ISA2+pooncelock+pooncelock+pombonce name
    tools/memory-model: Add litmus test for full multicopy atomicity
    locking/refcount: Always allow checked forms
    ...

    Linus Torvalds
     
  • Pull RCU updates from Thomas Gleixner:
    "A large update to RCU:

    Preparatory work for consolidating the RCU flavors:

    - Introduce grace-period sequence numbers to the RCU-bh, RCU-preempt,
    and RCU-sched flavors, replacing the old ->gpnum and ->completed
    pair of fields.

    This change allows lockless code to obtain the complete
    grace-period state with a single READ_ONCE(), which is needed to
    maintain tolerable lock contention during the upcoming
    consolidation of the three RCU flavors.

    Note that grace-period sequence numbers are already used by
    rcu_barrier(), expedited RCU grace periods, and SRCU, and are thus
    already heavily used and well-tested. Joel Fernandes contributed a
    number of excellent fixes and improvements.

    - Clean up some grace-period-reporting loose ends, including
    improving the handling of quiescent states from offline CPUs and
    fixing some false-positive WARN_ON_ONCE() invocations.

    (Strictly speaking, the WARN_ON_ONCE() invocations were quite
    correct, but their invariants were (harmlessly) violated by the
    earlier sloppy handling of quiescent states from offline CPUs.)

    In addition, improve grace-period forward-progress guarantees so as
    to allow removal of fail-safe checks that required otherwise
    needless lock acquisitions. Finally, add more diagnostics to help
    debug the upcoming consolidation of the RCU-bh, RCU-preempt, and
    RCU-sched flavors.

    The rest:

    - SRCU updates

    - Updates to rcutorture and associated scripting.

    - The usual pile of miscellaneous fixes"

    * 'core-rcu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (118 commits)
    rcutorture: Fix rcu_barrier successes counter
    rcutorture: Add support to detect if boost kthread prio is too low
    rcutorture: Use monotonic timestamp for stall detection
    rcutorture: Make boost test more robust
    rcutorture: Disable RT throttling for boost tests
    rcutorture: Emphasize testing of single reader protection type
    rcutorture: Handle extended read-side critical sections
    rcutorture: Make rcu_torture_timer() use rcu_torture_one_read()
    rcutorture: Use per-CPU random state for rcu_torture_timer()
    rcutorture: Use atomic increment for n_rcu_torture_timers
    rcutorture: Extract common code from rcu_torture_reader()
    rcuperf: Remove unused torturing_tasks() function
    rcu: Remove rcutorture test version and sequence number
    rcutorture: Change units of onoff_interval to jiffies
    rcu: Assign higher prio to RCU threads if rcutorture is built-in
    rculist: Improve documentation for list_for_each_entry_from_rcu()
    srcu: Add grace-period number to rcutorture statistics printout
    rcu: Print stall-warning NMI dyntick state in hexadecimal
    MAINTAINERS: Update RCU, SRCU, and TORTURE-TEST entries
    rcu: Make rcu_seq_diff() more exact
    ...

    Linus Torvalds
     
  • Daniel Borkmann says:

    ====================
    pull-request: bpf-next 2018-08-13

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

    The main changes are:

    1) Add driver XDP support for veth. This can be used in conjunction with
    redirect of another XDP program e.g. sitting on NIC so the xdp_frame
    can be forwarded to the peer veth directly without modification,
    from Toshiaki.

    2) Add a new BPF map type REUSEPORT_SOCKARRAY and prog type SK_REUSEPORT
    in order to provide more control and visibility on where a SO_REUSEPORT
    sk should be located, and the latter enables to directly select a sk
    from the bpf map. This also enables map-in-map for application migration
    use cases, from Martin.

    3) Add a new BPF helper bpf_skb_ancestor_cgroup_id() that returns the id
    of cgroup v2 that is the ancestor of the cgroup associated with the
    skb at the ancestor_level, from Andrey.

    4) Implement BPF fs map pretty-print support based on BTF data for regular
    hash table and LRU map, from Yonghong.

    5) Decouple the ability to attach BTF for a map from the key and value
    pretty-printer in BPF fs, and enable further support of BTF for maps for
    percpu and LPM trie, from Daniel.

    6) Implement a better BPF sample of using XDP's CPU redirect feature for
    load balancing SKB processing to remote CPU. The sample implements the
    same XDP load balancing as Suricata does which is symmetric hash based
    on IP and L4 protocol, from Jesper.

    7) Revert adding NULL pointer check with WARN_ON_ONCE() in __xdp_return()'s
    critical path as it is ensured that the allocator is present, from Björn.
    ====================

    Signed-off-by: David S. Miller

    David S. Miller
     

13 Aug, 2018

4 commits

  • parisc is the only Linux architecture which has defined a value for ENOTSUP.
    All other architectures #define ENOTSUP as EOPNOTSUPP in their libc headers.

    Having an own value for ENOTSUP which is different than EOPNOTSUPP often gives
    problems with userspace programs which expect both to be the same. One such
    example is a build error in the libuv package, as can be seen in
    https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=900237.

    Since we dropped HP-UX support, there is no real benefit in keeping an own
    value for ENOTSUP. This patch drops the parisc value for ENOTSUP from the
    kernel sources. glibc needs no patch, it reuses the exported headers.

    Signed-off-by: Helge Deller

    Helge Deller
     
  • Add selftests for bpf_skb_ancestor_cgroup_id helper.

    test_skb_cgroup_id.sh prepares testing interface and adds tc qdisc and
    filter for it using BPF object compiled from test_skb_cgroup_id_kern.c
    program.

    BPF program in test_skb_cgroup_id_kern.c gets ancestor cgroup id using
    the new helper at different levels of cgroup hierarchy that skb belongs
    to, including root level and non-existing level, and saves it to the map
    where the key is the level of corresponding cgroup and the value is its
    id.

    To trigger BPF program, user space program test_skb_cgroup_id_user is
    run. It adds itself into testing cgroup and sends UDP datagram to
    link-local multicast address of testing interface. Then it reads cgroup
    ids saved in kernel for different levels from the BPF map and compares
    them with those in user space. They must be equal for every level of
    ancestry.

    Example of run:
    # ./test_skb_cgroup_id.sh
    Wait for testing link-local IP to become available ... OK
    Note: 8 bytes struct bpf_elf_map fixup performed due to size mismatch!
    [PASS]

    Signed-off-by: Andrey Ignatov
    Signed-off-by: Daniel Borkmann

    Andrey Ignatov
     
  • Add bpf_skb_cgroup_id and bpf_skb_ancestor_cgroup_id helpers to
    bpf_helpers.h to use them in tests and samples.

    Signed-off-by: Andrey Ignatov
    Signed-off-by: Daniel Borkmann

    Andrey Ignatov
     
  • Sync skb_ancestor_cgroup_id() related bpf UAPI changes to tools/.

    Signed-off-by: Andrey Ignatov
    Signed-off-by: Daniel Borkmann

    Andrey Ignatov
     

12 Aug, 2018

2 commits


11 Aug, 2018

3 commits

  • This patch add tests for the new BPF_PROG_TYPE_SK_REUSEPORT.

    The tests cover:
    - IPv4/IPv6 + TCP/UDP
    - TCP syncookie
    - TCP fastopen
    - Cases when the bpf_sk_select_reuseport() returning errors
    - Cases when the bpf prog returns SK_DROP
    - Values from sk_reuseport_md
    - outer_map => reuseport_array

    The test depends on
    commit 3eee1f75f2b9 ("bpf: fix bpf_skb_load_bytes_relative pkt length check")

    Signed-off-by: Martin KaFai Lau
    Acked-by: Alexei Starovoitov
    Signed-off-by: Daniel Borkmann

    Martin KaFai Lau
     
  • This patch adds tests for the new BPF_MAP_TYPE_REUSEPORT_SOCKARRAY.

    Signed-off-by: Martin KaFai Lau
    Acked-by: Alexei Starovoitov
    Signed-off-by: Daniel Borkmann

    Martin KaFai Lau
     
  • This patch sync include/uapi/linux/bpf.h to
    tools/include/uapi/linux/

    Signed-off-by: Martin KaFai Lau
    Acked-by: Alexei Starovoitov
    Signed-off-by: Daniel Borkmann

    Martin KaFai Lau