1. 26 Oct, 2018 1 commit
    • David Miller's avatar
      sparc64: Make corrupted user stacks more debuggable. · 5b4fc388
      David Miller authored
      Right now if we get a corrupted user stack frame we do a
      do_exit(SIGILL) which is not helpful.
      
      If under a debugger, this behavior causes the inferior process to
      exit.  So the register and other state cannot be examined at the time
      of the event.
      
      Instead, conditionally log a rate limited kernel log message and then
      force a SIGSEGV.
      
      With bits and ideas borrowed (as usual) from powerpc.
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      5b4fc388
  2. 25 Oct, 2018 1 commit
    • David S. Miller's avatar
      sparc: Fix VDSO build with older binutils. · caf539cd
      David S. Miller authored
      Older versions of bintutils do not allow symbol math across different
      segments on sparc:
      
      ====================
      Assembler messages:
      99: Error: operation combines symbols in different segments
      ====================
      
      This is controlled by whether or not DIFF_EXPR_OK is defined in
      gas/config/tc-*.h and for sparc this was not the case until mid-2017.
      
      So we have to patch between %stick and %tick another way.
      
      Do what powerpc does and emit two versions of the relevant functions,
      one using %tick and one using %stick, and patch the symbols in the
      dynamic symbol table.
      
      Fixes: 2f6c9bf3 ("sparc: Improve VDSO instruction patching.")
      Reported-by: default avatarMeelis Roos <mroos@linux.ee>
      Tested-by: default avatarMeelis Roos <mroos@linux.ee>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      caf539cd
  3. 24 Oct, 2018 9 commits
    • Linus Torvalds's avatar
      Merge branch 'work.tty-ioctl' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs · 44adbac8
      Linus Torvalds authored
      Pull tty ioctl updates from Al Viro:
       "This is the compat_ioctl work related to tty ioctls.
      
        Quite a bit of dead code taken out, all tty-related stuff gone from
        fs/compat_ioctl.c. A bunch of compat bugs fixed - some still remain,
        but all more or less generic tty-related ioctls should be covered
        (remaining issues are in things like driver-private ioctls in a pcmcia
        serial card driver not getting properly handled in 32bit processes on
        64bit host, etc)"
      
      * 'work.tty-ioctl' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: (53 commits)
        kill TIOCSERGSTRUCT
        change semantics of ldisc ->compat_ioctl()
        kill TIOCSER[SG]WILD
        synclink_gt(): fix compat_ioctl()
        pty: fix compat ioctls
        compat_ioctl - kill keyboard ioctl handling
        gigaset: add ->compat_ioctl()
        vt_compat_ioctl(): clean up, use compat_ptr() properly
        gigaset: don't try to printk userland buffer contents
        dgnc: don't bother with (empty) stub for TCXONC
        dgnc: leave TIOC[GS]SOFTCAR to ldisc
        remove fallback to drivers for TIOCGICOUNT
        dgnc: break-related ioctls won't reach ->ioctl()
        kill the rest of tty COMPAT_IOCTL() entries
        dgnc: TIOCM... won't reach ->ioctl()
        isdn_tty: TCSBRK{,P} won't reach ->ioctl()
        kill capinc_tty_ioctl()
        take compat TIOC[SG]SERIAL treatment into tty_compat_ioctl()
        synclink: reduce pointless checks in ->ioctl()
        complete ->[sg]et_serial() switchover
        ...
      44adbac8
    • Linus Torvalds's avatar
      Merge tag 'pstore-v4.20-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux · 08ffb584
      Linus Torvalds authored
      Pull pstore updates from Kees Cook:
       "pstore improvements:
      
         - refactor init to happen as early as possible again (Joel Fernandes)
      
         - improve resource reservation names"
      
      * tag 'pstore-v4.20-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux:
        pstore/ram: Clarify resource reservation labels
        pstore: Refactor compression initialization
        pstore: Allocate compression during late_initcall()
        pstore: Centralize init/exit routines
      08ffb584
    • Linus Torvalds's avatar
      Merge branch 'next-general' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security · 638820d8
      Linus Torvalds authored
      Pull security subsystem updates from James Morris:
       "In this patchset, there are a couple of minor updates, as well as some
        reworking of the LSM initialization code from Kees Cook (these prepare
        the way for ordered stackable LSMs, but are a valuable cleanup on
        their own)"
      
      * 'next-general' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security:
        LSM: Don't ignore initialization failures
        LSM: Provide init debugging infrastructure
        LSM: Record LSM name in struct lsm_info
        LSM: Convert security_initcall() into DEFINE_LSM()
        vmlinux.lds.h: Move LSM_TABLE into INIT_DATA
        LSM: Convert from initcall to struct lsm_info
        LSM: Remove initcall tracing
        LSM: Rename .security_initcall section to .lsm_info
        vmlinux.lds.h: Avoid copy/paste of security_init section
        LSM: Correctly announce start of LSM initialization
        security: fix LSM description location
        keys: Fix the use of the C++ keyword "private" in uapi/linux/keyctl.h
        seccomp: remove unnecessary unlikely()
        security: tomoyo: Fix obsolete function
        security/capabilities: remove check for -EINVAL
      638820d8
    • Linus Torvalds's avatar
      Merge tag 'selinux-pr-20181022' of git://git.kernel.org/pub/scm/linux/kernel/git/pcmoore/selinux · d5e4d81d
      Linus Torvalds authored
      Pull SELinux updates from Paul Moore:
       "Three SELinux patches for v4.20, all fall under the bug-fix or
        behave-better category, which is good. All three have pretty good
        descriptions too, which is even better"
      
      * tag 'selinux-pr-20181022' of git://git.kernel.org/pub/scm/linux/kernel/git/pcmoore/selinux:
        selinux: Add __GFP_NOWARN to allocation at str_read()
        selinux: refactor mls_context_to_sid() and make it stricter
        selinux: fix mounting of cgroup2 under older policies
      d5e4d81d
    • Linus Torvalds's avatar
      Merge branch 'siginfo-linus' of... · ba9f6f89
      Linus Torvalds authored
      Merge branch 'siginfo-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace
      
      Pull siginfo updates from Eric Biederman:
       "I have been slowly sorting out siginfo and this is the culmination of
        that work.
      
        The primary result is in several ways the signal infrastructure has
        been made less error prone. The code has been updated so that manually
        specifying SEND_SIG_FORCED is never necessary. The conversion to the
        new siginfo sending functions is now complete, which makes it
        difficult to send a signal without filling in the proper siginfo
        fields.
      
        At the tail end of the patchset comes the optimization of decreasing
        the size of struct siginfo in the kernel from 128 bytes to about 48
        bytes on 64bit. The fundamental observation that enables this is by
        definition none of the known ways to use struct siginfo uses the extra
        bytes.
      
        This comes at the cost of a small user space observable difference.
        For the rare case of siginfo being injected into the kernel only what
        can be copied into kernel_siginfo is delivered to the destination, the
        rest of the bytes are set to 0. For cases where the signal and the
        si_code are known this is safe, because we know those bytes are not
        used. For cases where the signal and si_code combination is unknown
        the bits that won't fit into struct kernel_siginfo are tested to
        verify they are zero, and the send fails if they are not.
      
        I made an extensive search through userspace code and I could not find
        anything that would break because of the above change. If it turns out
        I did break something it will take just the revert of a single change
        to restore kernel_siginfo to the same size as userspace siginfo.
      
        Testing did reveal dependencies on preferring the signo passed to
        sigqueueinfo over si->signo, so bit the bullet and added the
        complexity necessary to handle that case.
      
        Testing also revealed bad things can happen if a negative signal
        number is passed into the system calls. Something no sane application
        will do but something a malicious program or a fuzzer might do. So I
        have fixed the code that performs the bounds checks to ensure negative
        signal numbers are handled"
      
      * 'siginfo-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace: (80 commits)
        signal: Guard against negative signal numbers in copy_siginfo_from_user32
        signal: Guard against negative signal numbers in copy_siginfo_from_user
        signal: In sigqueueinfo prefer sig not si_signo
        signal: Use a smaller struct siginfo in the kernel
        signal: Distinguish between kernel_siginfo and siginfo
        signal: Introduce copy_siginfo_from_user and use it's return value
        signal: Remove the need for __ARCH_SI_PREABLE_SIZE and SI_PAD_SIZE
        signal: Fail sigqueueinfo if si_signo != sig
        signal/sparc: Move EMT_TAGOVF into the generic siginfo.h
        signal/unicore32: Use force_sig_fault where appropriate
        signal/unicore32: Generate siginfo in ucs32_notify_die
        signal/unicore32: Use send_sig_fault where appropriate
        signal/arc: Use force_sig_fault where appropriate
        signal/arc: Push siginfo generation into unhandled_exception
        signal/ia64: Use force_sig_fault where appropriate
        signal/ia64: Use the force_sig(SIGSEGV,...) in ia64_rt_sigreturn
        signal/ia64: Use the generic force_sigsegv in setup_frame
        signal/arm/kvm: Use send_sig_mceerr
        signal/arm: Use send_sig_fault where appropriate
        signal/arm: Use force_sig_fault where appropriate
        ...
      ba9f6f89
    • Linus Torvalds's avatar
      net/kconfig: Make QCOM_QMI_HELPERS available when COMPILE_TEST · a978a5b8
      Linus Torvalds authored
      The networking merge brought in the experimental support for the
      Qualcomm ath10k system NOC, which selects QCOM_QMI_HELPERS as a
      dependency.
      
      But the ATH10K_SNOC option (which selects QCOM_QMI_HELPERS) depends on
      ARCH_QCOM || COMPILE_TEST in order to get wider build testing than just
      the unusual QCOM architecture build, while the QCOM_QMI_HELPERS option
      doesn't have that COMPILE_TEST option and is limited to only ARCH_QCOM.
      
      As a result, a "make allmodconfig" complains
      
        WARNING: unmet direct dependencies detected for QCOM_QMI_HELPERS
          Depends on [n]: ARCH_QCOM && NET [=y]
          Selected by [m]:
          - ATH10K_SNOC [=m] && NETDEVICES [=y] && WLAN [=y] && WLAN_VENDOR_ATH [=y] && ATH10K [=m] && (ARCH_QCOM || COMPILE_TEST [=y])
      
      Fix the config-time warning by making QCOM_QMI_HELPERS available when
      COMPILE_TEST, since the result seems to build fine.
      
      Cc: Bjorn Andersson <bjorn.andersson@linaro.org>
      Cc: Govind Singh <govinds@codeaurora.org>
      Cc: Kalle Valo <kvalo@codeaurora.org>
      Cc: David Miller <davem@davemloft.net>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      a978a5b8
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next · 50b825d7
      Linus Torvalds authored
      Pull networking updates from David Miller:
      
       1) Add VF IPSEC offload support in ixgbe, from Shannon Nelson.
      
       2) Add zero-copy AF_XDP support to i40e, from Björn Töpel.
      
       3) All in-tree drivers are converted to {g,s}et_link_ksettings() so we
          can get rid of the {g,s}et_settings ethtool callbacks, from Michal
          Kubecek.
      
       4) Add software timestamping to veth driver, from Michael Walle.
      
       5) More work to make packet classifiers and actions lockless, from Vlad
          Buslov.
      
       6) Support sticky FDB entries in bridge, from Nikolay Aleksandrov.
      
       7) Add ipv6 version of IP_MULTICAST_ALL sockopt, from Andre Naujoks.
      
       8) Support batching of XDP buffers in vhost_net, from Jason Wang.
      
       9) Add flow dissector BPF hook, from Petar Penkov.
      
      10) i40e vf --> generic iavf conversion, from Jesse Brandeburg.
      
      11) Add NLA_REJECT netlink attribute policy type, to signal when users
          provide attributes in situations which don't make sense. From
          Johannes Berg.
      
      12) Switch TCP and fair-queue scheduler over to earliest departure time
          model. From Eric Dumazet.
      
      13) Improve guest receive performance by doing rx busy polling in tx
          path of vhost networking driver, from Tonghao Zhang.
      
      14) Add per-cgroup local storage to bpf
      
      15) Add reference tracking to BPF, from Joe Stringer. The verifier can
          now make sure that references taken to objects are properly released
          by the program.
      
      16) Support in-place encryption in TLS, from Vakul Garg.
      
      17) Add new taprio packet scheduler, from Vinicius Costa Gomes.
      
      18) Lots of selftests additions, too numerous to mention one by one here
          but all of which are very much appreciated.
      
      19) Support offloading of eBPF programs containing BPF to BPF calls in
          nfp driver, frm Quentin Monnet.
      
      20) Move dpaa2_ptp driver out of staging, from Yangbo Lu.
      
      21) Lots of u32 classifier cleanups and simplifications, from Al Viro.
      
      22) Add new strict versions of netlink message parsers, and enable them
          for some situations. From David Ahern.
      
      23) Evict neighbour entries on carrier down, also from David Ahern.
      
      24) Support BPF sk_msg verdict programs with kTLS, from Daniel Borkmann
          and John Fastabend.
      
      25) Add support for filtering route dumps, from David Ahern.
      
      26) New igc Intel driver for 2.5G parts, from Sasha Neftin et al.
      
      27) Allow vxlan enslavement to bridges in mlxsw driver, from Ido
          Schimmel.
      
      28) Add queue and stack map types to eBPF, from Mauricio Vasquez B.
      
      29) Add back byte-queue-limit support to r8169, with all the bug fixes
          in other areas of the driver it works now! From Florian Westphal and
          Heiner Kallweit.
      
      * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next: (2147 commits)
        tcp: add tcp_reset_xmit_timer() helper
        qed: Fix static checker warning
        Revert "be2net: remove desc field from be_eq_obj"
        Revert "net: simplify sock_poll_wait"
        net: socionext: Reset tx queue in ndo_stop
        net: socionext: Add dummy PHY register read in phy_write()
        net: socionext: Stop PHY before resetting netsec
        net: stmmac: Set OWN bit for jumbo frames
        arm64: dts: stratix10: Support Ethernet Jumbo frame
        tls: Add maintainers
        net: ethernet: ti: cpsw: unsync mcast entries while switch promisc mode
        octeontx2-af: Support for NIXLF's UCAST/PROMISC/ALLMULTI modes
        octeontx2-af: Support for setting MAC address
        octeontx2-af: Support for changing RSS algorithm
        octeontx2-af: NIX Rx flowkey configuration for RSS
        octeontx2-af: Install ucast and bcast pkt forwarding rules
        octeontx2-af: Add LMAC channel info to NIXLF_ALLOC response
        octeontx2-af: NPC MCAM and LDATA extract minimal configuration
        octeontx2-af: Enable packet length and csum validation
        octeontx2-af: Support for VTAG strip and capture
        ...
      50b825d7
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc · a97a2d4d
      Linus Torvalds authored
      Pull sparc updates from David Miller:
       "Mostly VDSO cleanups and optimizations"
      
      * git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc:
        sparc: Several small VDSO vclock_gettime.c improvements.
        sparc: Validate VDSO for undefined symbols.
        sparc: Really use linker with LDFLAGS.
        sparc: Improve VDSO CFLAGS.
        sparc: Set DISABLE_BRANCH_PROFILING in VDSO CFLAGS.
        sparc: Don't bother masking out TICK_PRIV_BIT in VDSO code.
        sparc: Inline VDSO gettime code aggressively.
        sparc: Improve VDSO instruction patching.
        sparc: Fix parport build warnings.
      a97a2d4d
    • Eric Dumazet's avatar
      tcp: add tcp_reset_xmit_timer() helper · 3f80e08f
      Eric Dumazet authored
      With EDT model, SRTT no longer is inflated by pacing delays.
      
      This means that RTO and some other xmit timers might be setup
      incorrectly. This is particularly visible with either :
      
      - Very small enforced pacing rates (SO_MAX_PACING_RATE)
      - Reduced rto (from the default 200 ms)
      
      This can lead to TCP flows aborts in the worst case,
      or spurious retransmits in other cases.
      
      For example, this session gets far more throughput
      than the requested 80kbit :
      
      $ netperf -H 127.0.0.2 -l 100 -- -q 10000
      MIGRATED TCP STREAM TEST from 0.0.0.0 (0.0.0.0) port 0 AF_INET to 127.0.0.2 () port 0 AF_INET
      Recv   Send    Send
      Socket Socket  Message  Elapsed
      Size   Size    Size     Time     Throughput
      bytes  bytes   bytes    secs.    10^6bits/sec
      
      540000 262144 262144    104.00      2.66
      
      With the fix :
      
      $ netperf -H 127.0.0.2 -l 100 -- -q 10000
      MIGRATED TCP STREAM TEST from 0.0.0.0 (0.0.0.0) port 0 AF_INET to 127.0.0.2 () port 0 AF_INET
      Recv   Send    Send
      Socket Socket  Message  Elapsed
      Size   Size    Size     Time     Throughput
      bytes  bytes   bytes    secs.    10^6bits/sec
      
      540000 262144 262144    104.00      0.12
      
      EDT allows for better control of rtx timers, since TCP has
      a better idea of the earliest departure time of each skb
      in the rtx queue. We only have to eventually add to the
      timer the difference of the EDT time with current time.
      Signed-off-by: default avatarEric Dumazet <edumazet@google.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      3f80e08f
  4. 23 Oct, 2018 29 commits
    • Linus Torvalds's avatar
      Merge branch 'parisc-4.20-1' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux · 44786880
      Linus Torvalds authored
      Pull parisc updates from Helge Deller:
       "Lots of small fixes and enhancements, most noteably:
      
         - Many TLB and cache flush optimizations (Dave)
      
         - Fixed HPMC/crash handler on 64-bit kernel (Dave and myself)
      
         - Added alternative infrastructre. The kernel now live-patches itself
           for various situations, e.g. replace SMP code when running on one
           CPU only or drop cache flushes when system has no cache installed.
      
         - vmlinuz now contains a full copy of the compressed vmlinux file.
           This simplifies debugging the currently booted kernel.
      
         - Unused driver removal (Christoph)
      
         - Reduced warnings of Dino PCI bridge when running in qemu
      
         - Removed gcc version check (Masahiro)"
      
      * 'parisc-4.20-1' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux: (23 commits)
        parisc: Retrieve and display the PDC PAT capabilities
        parisc: Optimze cache flush algorithms
        parisc: Remove pte_inserted define
        parisc: Add PDC PAT cell_info() and pd_get_pdc_revisions() functions
        parisc: Drop two instructions from pte lookup code
        parisc: Use zdep for shlw macro on PA1.1 and PA2.0
        parisc: Add alternative coding infrastructure
        parisc: Include compressed vmlinux file in vmlinuz boot kernel
        extract-vmlinux: Check for uncompressed image as fallback
        parisc: Fix address in HPMC IVA
        parisc: Fix exported address of os_hpmc handler
        parisc: Fix map_pages() to not overwrite existing pte entries
        parisc: Purge TLB entries after updating page table entry and set page accessed flag in TLB handler
        parisc: Release spinlocks using ordered store
        parisc: Ratelimit dino stuck interrupt warnings
        parisc: dino: Utilize DINO_MASK_IRQ() macro
        parisc: Clean up crash header output
        parisc: Add SYSTEM_INFO and REGISTER TOC PAT functions
        parisc: Remove PTE load and fault check from L2_ptep macro
        parisc: Reorder TLB flush timing calculation
        ...
      44786880
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.armlinux.org.uk/~rmk/linux-arm · 07171da2
      Linus Torvalds authored
      Pull ARM updates from Russell King:
       "The main item in this pull request are the Spectre variant 1.1 fixes
        from Julien Thierry.
      
        A few other patches to improve various areas, and removal of some
        obsolete mcount bits and a redundant kbuild conditional"
      
      * 'for-linus' of git://git.armlinux.org.uk/~rmk/linux-arm:
        ARM: 8802/1: Call syscall_trace_exit even when system call skipped
        ARM: 8797/1: spectre-v1.1: harden __copy_to_user
        ARM: 8796/1: spectre-v1,v1.1: provide helpers for address sanitization
        ARM: 8795/1: spectre-v1.1: use put_user() for __put_user()
        ARM: 8794/1: uaccess: Prevent speculative use of the current addr_limit
        ARM: 8793/1: signal: replace __put_user_error with __put_user
        ARM: 8792/1: oabi-compat: copy oabi events using __copy_to_user()
        ARM: 8791/1: vfp: use __copy_to_user() when saving VFP state
        ARM: 8790/1: signal: always use __copy_to_user to save iwmmxt context
        ARM: 8789/1: signal: copy registers using __copy_to_user()
        ARM: 8801/1: makefile: use ARMv3M mode for RiscPC
        ARM: 8800/1: use choice for kernel unwinders
        ARM: 8798/1: remove unnecessary KBUILD_SRC ifeq conditional
        ARM: 8788/1: ftrace: remove old mcount support
        ARM: 8786/1: Debug kernel copy by printing
      07171da2
    • Linus Torvalds's avatar
      Merge branch 'x86-vdso-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 034bda1c
      Linus Torvalds authored
      Pull x86 vdso updates from Ingo Molnar:
       "Two main changes:
      
         - Cleanups, simplifications and CLOCK_TAI support (Thomas Gleixner)
      
         - Improve code generation (Andy Lutomirski)"
      
      * 'x86-vdso-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/vdso: Rearrange do_hres() to improve code generation
        x86/vdso: Document vgtod_ts better
        x86/vdso: Remove "memory" clobbers in the vDSO syscall fallbacks
        x66/vdso: Add CLOCK_TAI support
        x86/vdso: Move cycle_last handling into the caller
        x86/vdso: Simplify the invalid vclock case
        x86/vdso: Replace the clockid switch case
        x86/vdso: Collapse coarse functions
        x86/vdso: Collapse high resolution functions
        x86/vdso: Introduce and use vgtod_ts
        x86/vdso: Use unsigned int consistently for vsyscall_gtod_data:: Seq
        x86/vdso: Enforce 64bit clocksource
        x86/time: Implement clocksource_arch_init()
        clocksource: Provide clocksource_arch_init()
      034bda1c
    • Rahul Verma's avatar
      qed: Fix static checker warning · 68203a67
      Rahul Verma authored
      	Static Checker Warnings:
      	drivers/net/ethernet/qlogic/qed/qed_main.c:1510 qed_fill_link_capability()
      	error: uninitialized symbol 'tcvr_state'.
      	drivers/net/ethernet/qlogic/qed/qed_mcp.c:1951 qed_mcp_trans_speed_mask()
      	error: uninitialized symbol 'transceiver_state'.
      	drivers/net/ethernet/qlogic/qed/qed_mcp.c:1951 qed_mcp_trans_speed_mask()
      	error: uninitialized symbol 'transceiver_type'.
      
      	Symbols tcvr_state, transceiver_state and transceiver_type
      	are initialized with respective default state.
      
      Fixes: c56a8be7 ("qed: Add supported link and advertise link to display in ethtool.")
      Reported-by: default avatarDan Carpenter <dan.carpenter@oracle.com>
      Signed-off-by: default avatarRahul Verma <Rahul.Verma@cavium.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      68203a67
    • Ivan Vecera's avatar
      Revert "be2net: remove desc field from be_eq_obj" · 5ef79151
      Ivan Vecera authored
      The mentioned commit needs to be reverted because we cannot pass
      string allocated on stack to request_irq(). This function stores
      uses this pointer for later use (e.g. /proc/interrupts) so we need
      to keep this string persistently.
      
      Fixes: d6d9704a ("be2net: remove desc field from be_eq_obj")
      Signed-off-by: default avatarIvan Vecera <ivecera@redhat.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      5ef79151
    • Karsten Graul's avatar
      Revert "net: simplify sock_poll_wait" · 89ab066d
      Karsten Graul authored
      This reverts commit dd979b4d.
      
      This broke tcp_poll for SMC fallback: An AF_SMC socket establishes an
      internal TCP socket for the initial handshake with the remote peer.
      Whenever the SMC connection can not be established this TCP socket is
      used as a fallback. All socket operations on the SMC socket are then
      forwarded to the TCP socket. In case of poll, the file->private_data
      pointer references the SMC socket because the TCP socket has no file
      assigned. This causes tcp_poll to wait on the wrong socket.
      Signed-off-by: default avatarKarsten Graul <kgraul@linux.ibm.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      89ab066d
    • David S. Miller's avatar
      Merge branch 'netsec-fixes' · 6b7a02f7
      David S. Miller authored
      Masahisa Kojima says:
      
      ====================
      Bugfix for the netsec driver
      
      This patch series include bugfix for the netsec ethernet
      controller driver, fix the problem in interface down/up.
      
      changes in v2:
       - change the place to perform the PHY power down
       - use the MACROs defiend in include/uapi/linux/mii.h
       - update commit comment
      ====================
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      6b7a02f7
    • Masahisa Kojima's avatar
      net: socionext: Reset tx queue in ndo_stop · 8d5b0bf6
      Masahisa Kojima authored
      We observed that packets and bytes count are not reset
      when user performs interface down. Eventually, tx queue is
      exhausted and packets will not be sent out.
      To avoid this problem, resets tx queue in ndo_stop.
      
      Fixes: 533dd11a ("net: socionext: Add Synquacer NetSec driver")
      Signed-off-by: default avatarMasahisa Kojima <masahisa.kojima@linaro.org>
      Signed-off-by: default avatarYoshitoyo Osaki <osaki.yoshitoyo@socionext.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      8d5b0bf6
    • Masahisa Kojima's avatar
      net: socionext: Add dummy PHY register read in phy_write() · a3241a91
      Masahisa Kojima authored
      There is a compatibility issue between RTL8211E implemented
      in Developerbox and netsec ethernet controller IP.
      
      Our MDIO controller stops MDC clock right after the write
      access, but RTL8211E expects MDC clock must be kept toggling
      for several clock cycle with MDIO high before entering
      the IDLE state. Without keeping clock after write access,
      write access is not correctly handled and register is not
      updated.
      
      To meet this requirement, netsec driver needs to issue dummy
      read(e.g. read PHYID1(offset 0x2) register) right after write
      access, to keep MDC clock.
      
      We think this compatibility issue is a problem specific to
      our MDIO controller and RTL8211E.
      
      Fixes: 533dd11a ("net: socionext: Add Synquacer NetSec driver")
      Signed-off-by: default avatarMasahisa Kojima <masahisa.kojima@linaro.org>
      Signed-off-by: default avatarYoshitoyo Osaki <osaki.yoshitoyo@socionext.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      a3241a91
    • Masahisa Kojima's avatar
      net: socionext: Stop PHY before resetting netsec · 8e850f25
      Masahisa Kojima authored
      In ndo_stop, driver resets the netsec ethernet controller IP.
      When the netsec IP is reset, HW running mode turns to NRM mode
      and driver has to wait until this mode transition completes.
      
      But mode transition to NRM will not complete if the PHY is
      in normal operation state. Netsec IP requires PHY is in
      power down state when it is reset.
      
      This modification stops the PHY before resetting netsec.
      
      Together with this modification, phy_addr is stored in netsec_priv
      structure because ndev->phydev is not yet ready in ndo_init.
      
      Fixes: 533dd11a ("net: socionext: Add Synquacer NetSec driver")
      Signed-off-by: default avatarMasahisa Kojima <masahisa.kojima@linaro.org>
      Signed-off-by: default avatarYoshitoyo Osaki <osaki.yoshitoyo@socionext.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      8e850f25
    • Linus Torvalds's avatar
      Merge branch 'x86-pti-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · d82924c3
      Linus Torvalds authored
      Pull x86 pti updates from Ingo Molnar:
       "The main changes:
      
         - Make the IBPB barrier more strict and add STIBP support (Jiri
           Kosina)
      
         - Micro-optimize and clean up the entry code (Andy Lutomirski)
      
         - ... plus misc other fixes"
      
      * 'x86-pti-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/speculation: Propagate information about RSB filling mitigation to sysfs
        x86/speculation: Enable cross-hyperthread spectre v2 STIBP mitigation
        x86/speculation: Apply IBPB more strictly to avoid cross-process data leak
        x86/speculation: Add RETPOLINE_AMD support to the inline asm CALL_NOSPEC variant
        x86/CPU: Fix unused variable warning when !CONFIG_IA32_EMULATION
        x86/pti/64: Remove the SYSCALL64 entry trampoline
        x86/entry/64: Use the TSS sp2 slot for SYSCALL/SYSRET scratch space
        x86/entry/64: Document idtentry
      d82924c3
    • Linus Torvalds's avatar
      Merge branch 'x86-platform-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · d7197a5a
      Linus Torvalds authored
      Pull x86 platform updates from Ingo Molnar:
       "Two minor OLPC changes: a build fix and a new quirk"
      
      * 'x86-platform-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/olpc: Fix build error with CONFIG_MFD_CS5535=m
        x86/olpc: Indicate that legacy PC XO-1 platform should not register RTC
      d7197a5a
    • Linus Torvalds's avatar
      Merge branch 'x86-paravirt-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · f682a792
      Linus Torvalds authored
      Pull x86 paravirt updates from Ingo Molnar:
       "Two main changes:
      
         - Remove no longer used parts of the paravirt infrastructure and put
           large quantities of paravirt ops under a new config option
           PARAVIRT_XXL=y, which is selected by XEN_PV only. (Joergen Gross)
      
         - Enable PV spinlocks on Hyperv (Yi Sun)"
      
      * 'x86-paravirt-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/hyperv: Enable PV qspinlock for Hyper-V
        x86/hyperv: Add GUEST_IDLE_MSR support
        x86/paravirt: Clean up native_patch()
        x86/paravirt: Prevent redefinition of SAVE_FLAGS macro
        x86/xen: Make xen_reservation_lock static
        x86/paravirt: Remove unneeded mmu related paravirt ops bits
        x86/paravirt: Move the Xen-only pv_mmu_ops under the PARAVIRT_XXL umbrella
        x86/paravirt: Move the pv_irq_ops under the PARAVIRT_XXL umbrella
        x86/paravirt: Move the Xen-only pv_cpu_ops under the PARAVIRT_XXL umbrella
        x86/paravirt: Move items in pv_info under PARAVIRT_XXL umbrella
        x86/paravirt: Introduce new config option PARAVIRT_XXL
        x86/paravirt: Remove unused paravirt bits
        x86/paravirt: Use a single ops structure
        x86/paravirt: Remove clobbers from struct paravirt_patch_site
        x86/paravirt: Remove clobbers parameter from paravirt patch functions
        x86/paravirt: Make paravirt_patch_call() and paravirt_patch_jmp() static
        x86/xen: Add SPDX identifier in arch/x86/xen files
        x86/xen: Link platform-pci-unplug.o only if CONFIG_XEN_PVHVM
        x86/xen: Move pv specific parts of arch/x86/xen/mmu.c to mmu_pv.c
        x86/xen: Move pv irq related functions under CONFIG_XEN_PV umbrella
      f682a792
    • Linus Torvalds's avatar
      Merge branch 'x86-mm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 99792e0c
      Linus Torvalds authored
      Pull x86 mm updates from Ingo Molnar:
       "Lots of changes in this cycle:
      
         - Lots of CPA (change page attribute) optimizations and related
           cleanups (Thomas Gleixner, Peter Zijstra)
      
         - Make lazy TLB mode even lazier (Rik van Riel)
      
         - Fault handler cleanups and improvements (Dave Hansen)
      
         - kdump, vmcore: Enable kdumping encrypted memory with AMD SME
           enabled (Lianbo Jiang)
      
         - Clean up VM layout documentation (Baoquan He, Ingo Molnar)
      
         - ... plus misc other fixes and enhancements"
      
      * 'x86-mm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (51 commits)
        x86/stackprotector: Remove the call to boot_init_stack_canary() from cpu_startup_entry()
        x86/mm: Kill stray kernel fault handling comment
        x86/mm: Do not warn about PCI BIOS W+X mappings
        resource: Clean it up a bit
        resource: Fix find_next_iomem_res() iteration issue
        resource: Include resource end in walk_*() interfaces
        x86/kexec: Correct KEXEC_BACKUP_SRC_END off-by-one error
        x86/mm: Remove spurious fault pkey check
        x86/mm/vsyscall: Consider vsyscall page part of user address space
        x86/mm: Add vsyscall address helper
        x86/mm: Fix exception table comments
        x86/mm: Add clarifying comments for user addr space
        x86/mm: Break out user address space handling
        x86/mm: Break out kernel address space handling
        x86/mm: Clarify hardware vs. software "error_code"
        x86/mm/tlb: Make lazy TLB mode lazier
        x86/mm/tlb: Add freed_tables element to flush_tlb_info
        x86/mm/tlb: Add freed_tables argument to flush_tlb_mm_range
        smp,cpumask: introduce on_each_cpu_cond_mask
        smp: use __cpumask_set_cpu in on_each_cpu_cond
        ...
      99792e0c
    • Linus Torvalds's avatar
      Merge branch 'x86-hyperv-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 382d72a9
      Linus Torvalds authored
      Pull x86 hyperv updates from Ingo Molnar:
       "Two small changes: a boot warning removal and a minor cleanup"
      
      * 'x86-hyperv-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/hyperv: Remove unused include
        x86/hyperv: Suppress "PCI: Fatal: No config space access function found"
      382d72a9
    • Linus Torvalds's avatar
      Merge branch 'x86-grub2-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · ac73e08e
      Linus Torvalds authored
      Pull x86 grub2 updates from Ingo Molnar:
       "This extends the x86 boot protocol to include an address for the RSDP
        table - utilized by Xen currently.
      
        Matching Grub2 patches are pending as well. (Juergen Gross)"
      
      * 'x86-grub2-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/acpi, x86/boot: Take RSDP address for boot params if available
        x86/boot: Add ACPI RSDP address to setup_header
        x86/xen: Fix boot loader version reported for PVH guests
      ac73e08e
    • Linus Torvalds's avatar
      Merge branch 'x86-cpu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · fec98069
      Linus Torvalds authored
      Pull x86 cpu updates from Ingo Molnar:
       "The main changes in this cycle were:
      
         - Add support for the "Dhyana" x86 CPUs by Hygon: these are licensed
           based on the AMD Zen architecture, and are built and sold in China,
           for domestic datacenter use. The code is pretty close to AMD
           support, mostly with a few quirks and enumeration differences. (Pu
           Wen)
      
         - Enable CPUID support on Cyrix 6x86/6x86L processors"
      
      * 'x86-cpu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        tools/cpupower: Add Hygon Dhyana support
        cpufreq: Add Hygon Dhyana support
        ACPI: Add Hygon Dhyana support
        x86/xen: Add Hygon Dhyana support to Xen
        x86/kvm: Add Hygon Dhyana support to KVM
        x86/mce: Add Hygon Dhyana support to the MCA infrastructure
        x86/bugs: Add Hygon Dhyana to the respective mitigation machinery
        x86/apic: Add Hygon Dhyana support
        x86/pci, x86/amd_nb: Add Hygon Dhyana support to PCI and northbridge
        x86/amd_nb: Check vendor in AMD-only functions
        x86/alternative: Init ideal_nops for Hygon Dhyana
        x86/events: Add Hygon Dhyana support to PMU infrastructure
        x86/smpboot: Do not use BSP INIT delay and MWAIT to idle on Dhyana
        x86/cpu/mtrr: Support TOP_MEM2 and get MTRR number
        x86/cpu: Get cache info and setup cache cpumap for Hygon Dhyana
        x86/cpu: Create Hygon Dhyana architecture support file
        x86/CPU: Change query logic so CPUID is enabled before testing
        x86/CPU: Use correct macros for Cyrix calls
      fec98069
    • Linus Torvalds's avatar
      Merge branch 'x86-build-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 04ce7fae
      Linus Torvalds authored
      Pull x86 build update from Ingo Molnar:
       "A small cleanup to x86 Kconfigs"
      
      * 'x86-build-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/kconfig: Remove redundant 'default n' lines from all x86 Kconfig's
      04ce7fae
    • Linus Torvalds's avatar
      Merge branch 'x86-boot-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 642116d4
      Linus Torvalds authored
      Pull x86 boot updates from Ingo Molnar:
       "Two cleanups and a bugfix for a rare boot option combination"
      
      * 'x86-boot-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/boot/KASLR: Remove return value from handle_mem_options()
        x86/corruption-check: Use pr_*() instead of printk()
        x86/corruption-check: Fix panic in memory_corruption_check() when boot option without value is provided
      642116d4
    • Linus Torvalds's avatar
      Merge branch 'x86-asm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · e1d20bea
      Linus Torvalds authored
      Pull x86 asm updates from Ingo Molnar:
       "The main changes in this cycle were the fsgsbase related preparatory
        patches from Chang S. Bae - but there's also an optimized
        memcpy_flushcache() and a cleanup for the __cmpxchg_double() assembly
        glue"
      
      * 'x86-asm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/fsgsbase/64: Clean up various details
        x86/segments: Introduce the 'CPUNODE' naming to better document the segment limit CPU/node NR trick
        x86/vdso: Initialize the CPU/node NR segment descriptor earlier
        x86/vdso: Introduce helper functions for CPU and node number
        x86/segments/64: Rename the GDT PER_CPU entry to CPU_NUMBER
        x86/fsgsbase/64: Factor out FS/GS segment loading from __switch_to()
        x86/fsgsbase/64: Convert the ELF core dump code to the new FSGSBASE helpers
        x86/fsgsbase/64: Make ptrace use the new FS/GS base helpers
        x86/fsgsbase/64: Introduce FS/GS base helper functions
        x86/fsgsbase/64: Fix ptrace() to read the FS/GS base accurately
        x86/asm: Use CC_SET()/CC_OUT() in __cmpxchg_double()
        x86/asm: Optimize memcpy_flushcache()
      e1d20bea
    • Linus Torvalds's avatar
      Merge branch 'x86-apic-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · cbbfb0ae
      Linus Torvalds authored
      Pull x86 apic updates from Ingo Molnar:
       "Improve the spreading of managed IRQs at allocation time"
      
      * 'x86-apic-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        irq/matrix: Spread managed interrupts on allocation
        irq/matrix: Split out the CPU selection code into a helper
      cbbfb0ae
    • Linus Torvalds's avatar
      Merge branch 'sched-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 42f52e1c
      Linus Torvalds authored
      Pull scheduler updates from Ingo Molnar:
       "The main changes are:
      
         - Migrate CPU-intense 'misfit' tasks on asymmetric capacity systems,
           to better utilize (much) faster 'big core' CPUs. (Morten Rasmussen,
           Valentin Schneider)
      
         - Topology handling improvements, in particular when CPU capacity
           changes and related load-balancing fixes/improvements (Morten
           Rasmussen)
      
         - ... plus misc other improvements, fixes and updates"
      
      * 'sched-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (28 commits)
        sched/completions/Documentation: Add recommendation for dynamic and ONSTACK completions
        sched/completions/Documentation: Clean up the document some more
        sched/completions/Documentation: Fix a couple of punctuation nits
        cpu/SMT: State SMT is disabled even with nosmt and without "=force"
        sched/core: Fix comment regarding nr_iowait_cpu() and get_iowait_load()
        sched/fair: Remove setting task's se->runnable_weight during PELT update
        sched/fair: Disable LB_BIAS by default
        sched/pelt: Fix warning and clean up IRQ PELT config
        sched/topology: Make local variables static
        sched/debug: Use symbolic names for task state constants
        sched/numa: Remove unused numa_stats::nr_running field
        sched/numa: Remove unused code from update_numa_stats()
        sched/debug: Explicitly cast sched_feat() to bool
        sched/core: Disable SD_PREFER_SIBLING on asymmetric CPU capacity domains
        sched/fair: Don't move tasks to lower capacity CPUs unless necessary
        sched/fair: Set rq->rd->overload when misfit
        sched/fair: Wrap rq->rd->overload accesses with READ/WRITE_ONCE()
        sched/core: Change root_domain->overload type to int
        sched/fair: Change 'prefer_sibling' type to bool
        sched/fair: Kick nohz balance if rq->misfit_task_load
        ...
      42f52e1c
    • Linus Torvalds's avatar
      Merge branch 'ras-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 0d1b82cd
      Linus Torvalds authored
      Pull RAS updates from Ingo Molnar:
       "Misc smaller fixes and cleanups"
      
      * 'ras-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/mcelog: Remove one mce_helper definition
        x86/mce: Add macros for the corrected error count bit field
        x86/mce: Use BIT_ULL(x) for bit mask definitions
        x86/mce-inject: Reset injection struct after injection
      0d1b82cd
    • Linus Torvalds's avatar
      Merge branch 'perf-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · c05f3642
      Linus Torvalds authored
      Pull perf updates from Ingo Molnar:
       "The main updates in this cycle were:
      
         - Lots of perf tooling changes too voluminous to list (big perf trace
           and perf stat improvements, lots of libtraceevent reorganization,
           etc.), so I'll list the authors and refer to the changelog for
           details:
      
             Benjamin Peterson, Jérémie Galarneau, Kim Phillips, Peter
             Zijlstra, Ravi Bangoria, Sangwon Hong, Sean V Kelley, Steven
             Rostedt, Thomas Gleixner, Ding Xiang, Eduardo Habkost, Thomas
             Richter, Andi Kleen, Sanskriti Sharma, Adrian Hunter, Tzvetomir
             Stoyanov, Arnaldo Carvalho de Melo, Jiri Olsa.
      
           ... with the bulk of the changes written by Jiri Olsa, Tzvetomir
           Stoyanov and Arnaldo Carvalho de Melo.
      
         - Continued intel_rdt work with a focus on playing well with perf
           events. This also imported some non-perf RDT work due to
           dependencies. (Reinette Chatre)
      
         - Implement counter freezing for Arch Perfmon v4 (Skylake and newer).
           This allows to speed up the PMI handler by avoiding unnecessary MSR
           writes and make it more accurate. (Andi Kleen)
      
         - kprobes cleanups and simplification (Masami Hiramatsu)
      
         - Intel Goldmont PMU updates (Kan Liang)
      
         - ... plus misc other fixes and updates"
      
      * 'perf-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (155 commits)
        kprobes/x86: Use preempt_enable() in optimized_callback()
        x86/intel_rdt: Prevent pseudo-locking from using stale pointers
        kprobes, x86/ptrace.h: Make regs_get_kernel_stack_nth() not fault on bad stack
        perf/x86/intel: Export mem events only if there's PEBS support
        x86/cpu: Drop pointless static qualifier in punit_dev_state_show()
        x86/intel_rdt: Fix initial allocation to consider CDP
        x86/intel_rdt: CBM overlap should also check for overlap with CDP peer
        x86/intel_rdt: Introduce utility to obtain CDP peer
        tools lib traceevent, perf tools: Move struct tep_handler definition in a local header file
        tools lib traceevent: Separate out tep_strerror() for strerror_r() issues
        perf python: More portable way to make CFLAGS work with clang
        perf python: Make clang_has_option() work on Python 3
        perf tools: Free temporary 'sys' string in read_event_files()
        perf tools: Avoid double free in read_event_file()
        perf tools: Free 'printk' string in parse_ftrace_printk()
        perf tools: Cleanup trace-event-info 'tdata' leak
        perf strbuf: Match va_{add,copy} with va_end
        perf test: S390 does not support watchpoints in test 22
        perf auxtrace: Include missing asm/bitsperlong.h to get BITS_PER_LONG
        tools include: Adopt linux/bits.h
        ...
      c05f3642
    • Linus Torvalds's avatar
      Merge branch 'locking-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 0200fbdd
      Linus Torvalds authored
      Pull locking and misc x86 updates from Ingo Molnar:
       "Lots of changes in this cycle - in part because locking/core attracted
        a number of related x86 low level work which was easier to handle in a
        single tree:
      
         - Linux Kernel Memory Consistency Model updates (Alan Stern, Paul E.
           McKenney, Andrea Parri)
      
         - lockdep scalability improvements and micro-optimizations (Waiman
           Long)
      
         - rwsem improvements (Waiman Long)
      
         - spinlock micro-optimization (Matthew Wilcox)
      
         - qspinlocks: Provide a liveness guarantee (more fairness) on x86.
           (Peter Zijlstra)
      
         - Add support for relative references in jump tables on arm64, x86
           and s390 to optimize jump labels (Ard Biesheuvel, Heiko Carstens)
      
         - Be a lot less permissive on weird (kernel address) uaccess faults
           on x86: BUG() when uaccess helpers fault on kernel addresses (Jann
           Horn)
      
         - macrofy x86 asm statements to un-confuse the GCC inliner. (Nadav
           Amit)
      
         - ... and a handful of other smaller changes as well"
      
      * 'locking-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (57 commits)
        locking/lockdep: Make global debug_locks* variables read-mostly
        locking/lockdep: Fix debug_locks off performance problem
        locking/pvqspinlock: Extend node size when pvqspinlock is configured
        locking/qspinlock_stat: Count instances of nested lock slowpaths
        locking/qspinlock, x86: Provide liveness guarantee
        x86/asm: 'Simplify' GEN_*_RMWcc() macros
        locking/qspinlock: Rework some comments
        locking/qspinlock: Re-order code
        locking/lockdep: Remove duplicated 'lock_class_ops' percpu array
        x86/defconfig: Enable CONFIG_USB_XHCI_HCD=y
        futex: Replace spin_is_locked() with lockdep
        locking/lockdep: Make class->ops a percpu counter and move it under CONFIG_DEBUG_LOCKDEP=y
        x86/jump-labels: Macrofy inline assembly code to work around GCC inlining bugs
        x86/cpufeature: Macrofy inline assembly code to work around GCC inlining bugs
        x86/extable: Macrofy inline assembly code to work around GCC inlining bugs
        x86/paravirt: Work around GCC inlining bugs when compiling paravirt ops
        x86/bug: Macrofy the BUG table section handling, to work around GCC inlining bugs
        x86/alternatives: Macrofy lock prefixes to work around GCC inlining bugs
        x86/refcount: Work around GCC inlining bug
        x86/objtool: Use asm macros to work around GCC inlining bugs
        ...
      0200fbdd
    • Linus Torvalds's avatar
      Merge branch 'efi-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · de3fbb2a
      Linus Torvalds authored
      Pull EFI updates from Ingo Molnar:
       "The main changes are:
      
         - Add support for enlisting the help of the EFI firmware to create
           memory reservations that persist across kexec.
      
         - Add page fault handling to the runtime services support code on x86
           so we can more gracefully recover from buggy EFI firmware.
      
         - Fix command line handling on x86 for the boot path that omits the
           stub's PE/COFF entry point.
      
         - Other assorted fixes and updates"
      
      * 'efi-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86: boot: Fix EFI stub alignment
        efi/x86: Call efi_parse_options() from efi_main()
        efi/x86: earlyprintk - Add 64bit efi fb address support
        efi/x86: drop task_lock() from efi_switch_mm()
        efi/x86: Handle page faults occurring while running EFI runtime services
        efi: Make efi_rts_work accessible to efi page fault handler
        efi/efi_test: add exporting ResetSystem runtime service
        efi/libstub: arm: support building with clang
        efi: add API to reserve memory persistently across kexec reboot
        efi/arm: libstub: add a root memreserve config table
        efi: honour memory reservations passed via a linux specific config table
      de3fbb2a
    • Linus Torvalds's avatar
      Merge branch 'core-rcu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · cee1352f
      Linus Torvalds authored
      Pull RCU updates from Ingo Molnar:
       "The biggest change in this cycle is the conclusion of the big
        'simplify RCU to two primary flavors' consolidation work - i.e.
        there's a single RCU flavor for any kernel variant (PREEMPT and
        !PREEMPT):
      
          - Consolidate the RCU-bh, RCU-preempt, and RCU-sched flavors into a
            single flavor similar to RCU-sched in !PREEMPT kernels and into a
            single flavor similar to RCU-preempt (but also waiting on
            preempt-disabled sequences of code) in PREEMPT kernels.
      
            This branch also includes a refactoring of
            rcu_{nmi,irq}_{enter,exit}() from Byungchul Park.
      
          - Now that there is only one RCU flavor in any given running kernel,
            the many "rsp" pointers are no longer required, and this cleanup
            series removes them.
      
          - This branch carries out additional cleanups made possible by the
            RCU flavor consolidation, including inlining now-trivial
            functions, updating comments and definitions, and removing
            now-unneeded rcutorture scenarios.
      
          - Now that there is only one flavor of RCU in any running kernel,
            there is also only on rcu_data structure per CPU. This means that
            the rcu_dynticks structure can be merged into the rcu_data
            structure, a task taken on by this branch. This branch also
            contains a -rt-related fix from Mike Galbraith.
      
        There were also other updates:
      
          - Documentation updates, including some good-eye catches from Joel
            Fernandes.
      
          - SRCU updates, most notably changes enabling call_srcu() to be
            invoked very early in the boot sequence.
      
          - Torture-test updates, including some preliminary work towards
            making rcutorture better able to find problems that result in
            insufficient grace-period forward progress.
      
          - Initial changes to RCU to better promote forward progress of grace
            periods, including fixing a bug found by Marius Hillenbrand and
            David Woodhouse, with the fix suggested by Peter Zijlstra"
      
      * 'core-rcu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (140 commits)
        srcu: Make early-boot call_srcu() reuse workqueue lists
        rcutorture: Test early boot call_srcu()
        srcu: Make call_srcu() available during very early boot
        rcu: Convert rcu_state.ofl_lock to raw_spinlock_t
        rcu: Remove obsolete ->dynticks_fqs and ->cond_resched_completed
        rcu: Switch ->dynticks to rcu_data structure, remove rcu_dynticks
        rcu: Switch dyntick nesting counters to rcu_data structure
        rcu: Switch urgent quiescent-state requests to rcu_data structure
        rcu: Switch lazy counts to rcu_data structure
        rcu: Switch last accelerate/advance to rcu_data structure
        rcu: Switch ->tick_nohz_enabled_snap to rcu_data structure
        rcu: Merge rcu_dynticks structure into rcu_data structure
        rcu: Remove unused rcu_dynticks_snap() from Tiny RCU
        rcu: Convert "1UL << x" to "BIT(x)"
        rcu: Avoid resched_cpu() when rescheduling the current CPU
        rcu: More aggressively enlist scheduler aid for nohz_full CPUs
        rcu: Compute jiffies_till_sched_qs from other kernel parameters
        rcu: Provide functions for determining if call_rcu() has been invoked
        rcu: Eliminate ->rcu_qs_ctr from the rcu_dynticks structure
        rcu: Motivate Tiny RCU forward progress
        ...
      cee1352f
    • Ingo Molnar's avatar
      dda93b45
    • Linus Torvalds's avatar
      Merge tag 's390-4.20-1' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux · e2b623fb
      Linus Torvalds authored
      Pull s390 updates from Martin Schwidefsky:
      
       - Improved access control for the zcrypt driver, multiple device nodes
         can now be created with different access control lists
      
       - Extend the pkey API to provide random protected keys, this is useful
         for encrypted swap device with ephemeral protected keys
      
       - Add support for virtually mapped kernel stacks
      
       - Rework the early boot code, this moves the memory detection into the
         boot code that runs prior to decompression.
      
       - Add KASAN support
      
       - Bug fixes and cleanups
      
      * tag 's390-4.20-1' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux: (83 commits)
        s390/pkey: move pckmo subfunction available checks away from module init
        s390/kasan: support preemptible kernel build
        s390/pkey: Load pkey kernel module automatically
        s390/perf: Return error when debug_register fails
        s390/sthyi: Fix machine name validity indication
        s390/zcrypt: fix broken zcrypt_send_cprb in-kernel api function
        s390/vmalloc: fix VMALLOC_START calculation
        s390/mem_detect: add missing include
        s390/dumpstack: print psw mask and address again
        s390/crypto: Enhance paes cipher to accept variable length key material
        s390/pkey: Introduce new API for transforming key blobs
        s390/pkey: Introduce new API for random protected key verification
        s390/pkey: Add sysfs attributes to emit secure key blobs
        s390/pkey: Add sysfs attributes to emit protected key blobs
        s390/pkey: Define protected key blob format
        s390/pkey: Introduce new API for random protected key generation
        s390/zcrypt: add ap_adapter_mask sysfs attribute
        s390/zcrypt: provide apfs failure code on type 86 error reply
        s390/zcrypt: zcrypt device driver cleanup
        s390/kasan: add support for mem= kernel parameter
        ...
      e2b623fb