1. 05 5月, 2017 1 次提交
  2. 04 5月, 2017 3 次提交
  3. 03 5月, 2017 18 次提交
    • R
      CIFS: fix oplock break deadlocks · 3998e6b8
      Rabin Vincent 提交于
      When the final cifsFileInfo_put() is called from cifsiod and an oplock
      break work is queued, lockdep complains loudly:
      
       =============================================
       [ INFO: possible recursive locking detected ]
       4.11.0+ #21 Not tainted
       ---------------------------------------------
       kworker/0:2/78 is trying to acquire lock:
        ("cifsiod"){++++.+}, at: flush_work+0x215/0x350
      
       but task is already holding lock:
        ("cifsiod"){++++.+}, at: process_one_work+0x255/0x8e0
      
       other info that might help us debug this:
        Possible unsafe locking scenario:
      
              CPU0
              ----
         lock("cifsiod");
         lock("cifsiod");
      
        *** DEADLOCK ***
      
        May be due to missing lock nesting notation
      
       2 locks held by kworker/0:2/78:
        #0:  ("cifsiod"){++++.+}, at: process_one_work+0x255/0x8e0
        #1:  ((&wdata->work)){+.+...}, at: process_one_work+0x255/0x8e0
      
       stack backtrace:
       CPU: 0 PID: 78 Comm: kworker/0:2 Not tainted 4.11.0+ #21
       Workqueue: cifsiod cifs_writev_complete
       Call Trace:
        dump_stack+0x85/0xc2
        __lock_acquire+0x17dd/0x2260
        ? match_held_lock+0x20/0x2b0
        ? trace_hardirqs_off_caller+0x86/0x130
        ? mark_lock+0xa6/0x920
        lock_acquire+0xcc/0x260
        ? lock_acquire+0xcc/0x260
        ? flush_work+0x215/0x350
        flush_work+0x236/0x350
        ? flush_work+0x215/0x350
        ? destroy_worker+0x170/0x170
        __cancel_work_timer+0x17d/0x210
        ? ___preempt_schedule+0x16/0x18
        cancel_work_sync+0x10/0x20
        cifsFileInfo_put+0x338/0x7f0
        cifs_writedata_release+0x2a/0x40
        ? cifs_writedata_release+0x2a/0x40
        cifs_writev_complete+0x29d/0x850
        ? preempt_count_sub+0x18/0xd0
        process_one_work+0x304/0x8e0
        worker_thread+0x9b/0x6a0
        kthread+0x1b2/0x200
        ? process_one_work+0x8e0/0x8e0
        ? kthread_create_on_node+0x40/0x40
        ret_from_fork+0x31/0x40
      
      This is a real warning.  Since the oplock is queued on the same
      workqueue this can deadlock if there is only one worker thread active
      for the workqueue (which will be the case during memory pressure when
      the rescuer thread is handling it).
      
      Furthermore, there is at least one other kind of hang possible due to
      the oplock break handling if there is only worker.  (This can be
      reproduced without introducing memory pressure by having passing 1 for
      the max_active parameter of cifsiod.) cifs_oplock_break() can wait
      indefintely in the filemap_fdatawait() while the cifs_writev_complete()
      work is blocked:
      
       sysrq: SysRq : Show Blocked State
         task                        PC stack   pid father
       kworker/0:1     D    0    16      2 0x00000000
       Workqueue: cifsiod cifs_oplock_break
       Call Trace:
        __schedule+0x562/0xf40
        ? mark_held_locks+0x4a/0xb0
        schedule+0x57/0xe0
        io_schedule+0x21/0x50
        wait_on_page_bit+0x143/0x190
        ? add_to_page_cache_lru+0x150/0x150
        __filemap_fdatawait_range+0x134/0x190
        ? do_writepages+0x51/0x70
        filemap_fdatawait_range+0x14/0x30
        filemap_fdatawait+0x3b/0x40
        cifs_oplock_break+0x651/0x710
        ? preempt_count_sub+0x18/0xd0
        process_one_work+0x304/0x8e0
        worker_thread+0x9b/0x6a0
        kthread+0x1b2/0x200
        ? process_one_work+0x8e0/0x8e0
        ? kthread_create_on_node+0x40/0x40
        ret_from_fork+0x31/0x40
       dd              D    0   683    171 0x00000000
       Call Trace:
        __schedule+0x562/0xf40
        ? mark_held_locks+0x29/0xb0
        schedule+0x57/0xe0
        io_schedule+0x21/0x50
        wait_on_page_bit+0x143/0x190
        ? add_to_page_cache_lru+0x150/0x150
        __filemap_fdatawait_range+0x134/0x190
        ? do_writepages+0x51/0x70
        filemap_fdatawait_range+0x14/0x30
        filemap_fdatawait+0x3b/0x40
        filemap_write_and_wait+0x4e/0x70
        cifs_flush+0x6a/0xb0
        filp_close+0x52/0xa0
        __close_fd+0xdc/0x150
        SyS_close+0x33/0x60
        entry_SYSCALL_64_fastpath+0x1f/0xbe
      
       Showing all locks held in the system:
       2 locks held by kworker/0:1/16:
        #0:  ("cifsiod"){.+.+.+}, at: process_one_work+0x255/0x8e0
        #1:  ((&cfile->oplock_break)){+.+.+.}, at: process_one_work+0x255/0x8e0
      
       Showing busy workqueues and worker pools:
       workqueue cifsiod: flags=0xc
         pwq 0: cpus=0 node=0 flags=0x0 nice=0 active=1/1
           in-flight: 16:cifs_oplock_break
           delayed: cifs_writev_complete, cifs_echo_request
       pool 0: cpus=0 node=0 flags=0x0 nice=0 hung=0s workers=3 idle: 750 3
      
      Fix these problems by creating a a new workqueue (with a rescuer) for
      the oplock break work.
      Signed-off-by: NRabin Vincent <rabinv@axis.com>
      Signed-off-by: NSteve French <smfrench@gmail.com>
      CC: Stable <stable@vger.kernel.org>
      3998e6b8
    • D
      cifs: fix CIFS_ENUMERATE_SNAPSHOTS oops · 6026685d
      David Disseldorp 提交于
      As with 61876395, an open directory may have a NULL private_data
      pointer prior to readdir. CIFS_ENUMERATE_SNAPSHOTS must check for this
      before dereference.
      
      Fixes: 834170c8 ("Enable previous version support")
      Signed-off-by: NDavid Disseldorp <ddiss@suse.de>
      CC: Stable <stable@vger.kernel.org>
      Signed-off-by: NSteve French <smfrench@gmail.com>
      6026685d
    • D
      cifs: fix leak in FSCTL_ENUM_SNAPS response handling · 0e5c7955
      David Disseldorp 提交于
      The server may respond with success, and an output buffer less than
      sizeof(struct smb_snapshot_array) in length. Do not leak the output
      buffer in this case.
      
      Fixes: 834170c8 ("Enable previous version support")
      Signed-off-by: NDavid Disseldorp <ddiss@suse.de>
      CC: Stable <stable@vger.kernel.org>
      Signed-off-by: NSteve French <smfrench@gmail.com>
      0e5c7955
    • S
      Set unicode flag on cifs echo request to avoid Mac error · 26c9cb66
      Steve French 提交于
      Mac requires the unicode flag to be set for cifs, even for the smb
      echo request (which doesn't have strings).
      
      Without this Mac rejects the periodic echo requests (when mounting
      with cifs) that we use to check if server is down
      Signed-off-by: NSteve French <smfrench@gmail.com>
      CC: Stable <stable@vger.kernel.org>
      26c9cb66
    • P
      CIFS: Add asynchronous write support through kernel AIO · c610c4b6
      Pavel Shilovsky 提交于
      This patch adds support to process write calls passed by io_submit()
      asynchronously. It based on the previously introduced async context
      that allows to process i/o responses in a separate thread and
      return the caller immediately for asynchronous calls.
      
      This improves writing performance of single threaded applications
      with increasing of i/o queue depth size.
      Signed-off-by: NPavel Shilovsky <pshilov@microsoft.com>
      Signed-off-by: NSteve French <smfrench@gmail.com>
      c610c4b6
    • P
      CIFS: Add asynchronous read support through kernel AIO · 6685c5e2
      Pavel Shilovsky 提交于
      This patch adds support to process read calls passed by io_submit()
      asynchronously. It based on the previously introduced async context
      that allows to process i/o responses in a separate thread and
      return the caller immediately for asynchronous calls.
      
      This improves reading performance of single threaded applications
      with increasing of i/o queue depth size.
      Signed-off-by: NPavel Shilovsky <pshilov@microsoft.com>
      Signed-off-by: NSteve French <smfrench@gmail.com>
      6685c5e2
    • P
      CIFS: Add asynchronous context to support kernel AIO · ccf7f408
      Pavel Shilovsky 提交于
      Currently the code doesn't recognize asynchronous calls passed
      by io_submit() and processes all calls synchronously. This is not
      what kernel AIO expects. This patch introduces a new async context
      that keeps track of all issued i/o requests and moves a response
      collecting procedure to a separate thread. This allows to return
      to a caller immediately for async calls and call iocb->ki_complete()
      once all requests are completed. For sync calls the current thread
      simply waits until all requests are completed.
      Signed-off-by: NPavel Shilovsky <pshilov@microsoft.com>
      Signed-off-by: NSteve French <smfrench@gmail.com>
      ccf7f408
    • D
      cifs: fix IPv6 link local, with scope id, address parsing · 29bb3158
      Daniel N Pettersson 提交于
      When the IP address is gotten from the UNC, use only the address part
      of the UNC. Else all after the percent sign in an IPv6 link local
      address is interpreted as a scope id. This includes the slash and
      share name. A scope id is expected to be an integer and any trailing
      characters makes the conversion to integer fail.
      Example of mount command that fails:
      mount -i -t cifs //fe80::6a05:caff:fe3e:8ffc%2/test /mnt/t -o sec=none
      Signed-off-by: NDaniel N Pettersson <danielnp@axis.com>
      Signed-off-by: NSteve French <smfrench@gmail.com>
      29bb3158
    • D
      cifs: small underflow in cnvrtDosUnixTm() · 564277ec
      Dan Carpenter 提交于
      January is month 1.  There is no zero-th month.  If someone passes a
      zero month then it means we read from one space before the start of the
      total_days_of_prev_months[] array.
      
      We may as well also be strict about days as well.
      
      Fixes: 1bd5bbcb ("[CIFS] Legacy time handling for Win9x and OS/2 part 1")
      Signed-off-by: NDan Carpenter <dan.carpenter@oracle.com>
      Signed-off-by: NSteve French <smfrench@gmail.com>
      564277ec
    • L
      Merge branch 'work.compat' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs · 204f144c
      Linus Torvalds 提交于
      Pull fs/compat.c cleanups from Al Viro:
       "More moving of compat syscalls from fs/compat.c to fs/*.c where the
        native counterparts live.
      
        And death to compat_sys_getdents64() - the only architecture that used
        to need it was ia64, and _that_ has lost biarch support quite a few
        years ago"
      
      * 'work.compat' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
        fs/compat.c: trim unused includes
        move compat_rw_copy_check_uvector() over to fs/read_write.c
        fhandle: move compat syscalls from compat.c
        open: move compat syscalls from compat.c
        stat: move compat syscalls from compat.c
        fcntl: move compat syscalls from compat.c
        readdir: move compat syscalls from compat.c
        statfs: move compat syscalls from compat.c
        utimes: move compat syscalls from compat.c
        move compat select-related syscalls to fs/select.c
        Remove compat_sys_getdents64()
      204f144c
    • L
      Merge branch 'work.splice' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs · da7b66ff
      Linus Torvalds 提交于
      Pull splice updates from Al Viro:
       "These actually missed the last cycle; the branch itself is from last
        December"
      
      * 'work.splice' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
        make nr_pages calculation in default_file_splice_read() a bit less ugly
        splice/tee/vmsplice: validate flags
        splice_pipe_desc: kill ->flags
        remove spd_release_page()
      da7b66ff
    • L
      Merge branch 'work.iov_iter' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs · 5b13475a
      Linus Torvalds 提交于
      Pull iov_iter updates from Al Viro:
       "Cleanups that sat in -next + -stable fodder that has just missed 4.11.
      
        There's more iov_iter work in my local tree, but I'd prefer to push
        the stuff that had been in -next first"
      
      * 'work.iov_iter' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
        iov_iter: don't revert iov buffer if csum error
        generic_file_read_iter(): make use of iov_iter_revert()
        generic_file_direct_write(): make use of iov_iter_revert()
        orangefs: use iov_iter_revert()
        sctp: switch to copy_from_iter_full()
        net/9p: switch to copy_from_iter_full()
        switch memcpy_from_msg() to copy_from_iter_full()
        rds: make use of iov_iter_revert()
      5b13475a
    • L
      Merge branch 'for-next' of git://git.samba.org/sfrench/cifs-2.6 · 6fd4e7f7
      Linus Torvalds 提交于
      Pull CIFS fixes from Steve French:
       "Three cifs/smb3 fixes - including two for stable"
      
      * 'for-next' of git://git.samba.org/sfrench/cifs-2.6:
        cifs: don't check for failure from mempool_alloc()
        Do not return number of bytes written for ioctl CIFS_IOC_COPYCHUNK_FILE
        Fix match_prepath()
      6fd4e7f7
    • L
      Merge tag 'usercopy-v4.12-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux · 5958cc49
      Linus Torvalds 提交于
      Pull hardened usercopy updates from Kees Cook:
       "A couple hardened usercopy changes:
      
         - drop now unneeded is_vmalloc_or_module() check (Laura Abbott)
      
         - use enum instead of literals for stack frame API (Sahara)"
      
      * tag 'usercopy-v4.12-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux:
        mm/usercopy: Drop extra is_vmalloc_or_module() check
        usercopy: Move enum for arch_within_stack_frames()
      5958cc49
    • L
      Merge tag 'pstore-v4.12-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux · 2575be8a
      Linus Torvalds 提交于
      Pull pstore updates from Kees Cook:
       "This has a large internal refactoring along with several smaller
        fixes.
      
         - constify compression structures; Bhumika Goyal
      
         - restore powerpc dumping; Ankit Kumar
      
         - fix more bugs in the rarely exercises module unloading logic
      
         - reorganize filesystem locking to fix problems noticed by lockdep
      
         - refactor internal pstore APIs to make development and review
           easier:
            - improve error reporting
            - add kernel-doc structure and function comments
            - avoid insane argument passing by using a common record
              structure"
      
      * tag 'pstore-v4.12-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux: (23 commits)
        pstore: Solve lockdep warning by moving inode locks
        pstore: Fix flags to enable dumps on powerpc
        pstore: Remove unused vmalloc.h in pmsg
        pstore: simplify write_user_compat()
        pstore: Remove write_buf() callback
        pstore: Replace arguments for write_buf_user() API
        pstore: Replace arguments for write_buf() API
        pstore: Replace arguments for erase() API
        pstore: Do not duplicate record metadata
        pstore: Allocate records on heap instead of stack
        pstore: Pass record contents instead of copying
        pstore: Always allocate buffer for decompression
        pstore: Replace arguments for write() API
        pstore: Replace arguments for read() API
        pstore: Switch pstore_mkfile to pass record
        pstore: Move record decompression to function
        pstore: Extract common arguments into structure
        pstore: Add kernel-doc for struct pstore_info
        pstore: Improve register_pstore() error reporting
        pstore: Avoid race in module unloading
        ...
      2575be8a
    • L
      Merge tag 'docs-4.12' of git://git.lwn.net/linux · c58d4055
      Linus Torvalds 提交于
      Pull documentation update from Jonathan Corbet:
       "A reasonably busy cycle for documentation this time around. There is a
        new guide for user-space API documents, rather sparsely populated at
        the moment, but it's a start. Markus improved the infrastructure for
        converting diagrams. Mauro has converted much of the USB documentation
        over to RST. Plus the usual set of fixes, improvements, and tweaks.
      
        There's a bit more than the usual amount of reaching out of
        Documentation/ to fix comments elsewhere in the tree; I have acks for
        those where I could get them"
      
      * tag 'docs-4.12' of git://git.lwn.net/linux: (74 commits)
        docs: Fix a couple typos
        docs: Fix a spelling error in vfio-mediated-device.txt
        docs: Fix a spelling error in ioctl-number.txt
        MAINTAINERS: update file entry for HSI subsystem
        Documentation: allow installing man pages to a user defined directory
        Doc/PM: Sync with intel_powerclamp code behavior
        zr364xx.rst: usb/devices is now at /sys/kernel/debug/
        usb.rst: move documentation from proc_usb_info.txt to USB ReST book
        convert philips.txt to ReST and add to media docs
        docs-rst: usb: update old usbfs-related documentation
        arm: Documentation: update a path name
        docs: process/4.Coding.rst: Fix a couple of document refs
        docs-rst: fix usb cross-references
        usb: gadget.h: be consistent at kernel doc macros
        usb: composite.h: fix two warnings when building docs
        usb: get rid of some ReST doc build errors
        usb.rst: get rid of some Sphinx errors
        usb/URB.txt: convert to ReST and update it
        usb/persist.txt: convert to ReST and add to driver-api book
        usb/hotplug.txt: convert to ReST and add to driver-api book
        ...
      c58d4055
    • L
      Merge tag 'm68k-for-v4.12-tag1' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/linux-m68k · ceb198bb
      Linus Torvalds 提交于
      Pull m68k updates from Geert Uytterhoeven:
      
        - more kernel message modernizations and cleanups
      
        - Mac and Nubus improvements and cleanups.
      
      * tag 'm68k-for-v4.12-tag1' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/linux-m68k:
        nubus: Add MVC and VSC video card definitions
        nubus: Clean up whitespace
        nubus: Clean up printk calls
        nubus: Fix nubus_rewinddir
        m68k/mac: Clarify IOP message alloc/free confusion
        m68k/mac: Adopt platform_device_register_simple()
        m68k/mac: Modernize printing of kernel messages
        m68k/mac: IOP - Modernize printing of kernel messages
      ceb198bb
    • L
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux · b68e7e95
      Linus Torvalds 提交于
      Pull s390 updates from Martin Schwidefsky:
      
       - three merges for KVM/s390 with changes for vfio-ccw and cpacf. The
         patches are included in the KVM tree as well, let git sort it out.
      
       - add the new 'trng' random number generator
      
       - provide the secure key verification API for the pkey interface
      
       - introduce the z13 cpu counters to perf
      
       - add a new system call to set up the guarded storage facility
      
       - simplify TASK_SIZE and arch_get_unmapped_area
      
       - export the raw STSI data related to CPU topology to user space
      
       - ... and the usual churn of bug-fixes and cleanups.
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux: (74 commits)
        s390/crypt: use the correct module alias for paes_s390.
        s390/cpacf: Introduce kma instruction
        s390/cpacf: query instructions use unique parameters for compatibility with KMA
        s390/trng: Introduce s390 TRNG device driver.
        s390/crypto: Provide s390 specific arch random functionality.
        s390/crypto: Add new subfunctions to the cpacf PRNO function.
        s390/crypto: Renaming PPNO to PRNO.
        s390/pageattr: avoid unnecessary page table splitting
        s390/mm: simplify arch_get_unmapped_area[_topdown]
        s390/mm: make TASK_SIZE independent from the number of page table levels
        s390/gs: add regset for the guarded storage broadcast control block
        s390/kvm: Add use_cmma field to mm_context_t
        s390/kvm: Add PGSTE manipulation functions
        vfio: ccw: improve error handling for vfio_ccw_mdev_remove
        vfio: ccw: remove unnecessary NULL checks of a pointer
        s390/spinlock: remove compare and delay instruction
        s390/spinlock: use atomic primitives for spinlocks
        s390/cpumf: simplify detection of guest samples
        s390/pci: remove forward declaration
        s390/pci: increase the PCI_NR_FUNCTIONS default
        ...
      b68e7e95
  4. 02 5月, 2017 18 次提交
    • L
      Merge branch 'x86-mm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · d3b5d352
      Linus Torvalds 提交于
      Pull x86 mm updates from Ingo Molnar:
       "The main x86 MM changes in this cycle were:
      
         - continued native kernel PCID support preparation patches to the TLB
           flushing code (Andy Lutomirski)
      
         - various fixes related to 32-bit compat syscall returning address
           over 4Gb in applications, launched from 64-bit binaries - motivated
           by C/R frameworks such as Virtuozzo. (Dmitry Safonov)
      
         - continued Intel 5-level paging enablement: in particular the
           conversion of x86 GUP to the generic GUP code. (Kirill A. Shutemov)
      
         - x86/mpx ABI corner case fixes/enhancements (Joerg Roedel)
      
         - ... plus misc updates, fixes and cleanups"
      
      * 'x86-mm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (62 commits)
        mm, zone_device: Replace {get, put}_zone_device_page() with a single reference to fix pmem crash
        x86/mm: Fix flush_tlb_page() on Xen
        x86/mm: Make flush_tlb_mm_range() more predictable
        x86/mm: Remove flush_tlb() and flush_tlb_current_task()
        x86/vm86/32: Switch to flush_tlb_mm_range() in mark_screen_rdonly()
        x86/mm/64: Fix crash in remove_pagetable()
        Revert "x86/mm/gup: Switch GUP to the generic get_user_page_fast() implementation"
        x86/boot/e820: Remove a redundant self assignment
        x86/mm: Fix dump pagetables for 4 levels of page tables
        x86/mpx, selftests: Only check bounds-vs-shadow when we keep shadow
        x86/mpx: Correctly report do_mpx_bt_fault() failures to user-space
        Revert "x86/mm/numa: Remove numa_nodemask_from_meminfo()"
        x86/espfix: Add support for 5-level paging
        x86/kasan: Extend KASAN to support 5-level paging
        x86/mm: Add basic defines/helpers for CONFIG_X86_5LEVEL=y
        x86/paravirt: Add 5-level support to the paravirt code
        x86/mm: Define virtual memory map for 5-level paging
        x86/asm: Remove __VIRTUAL_MASK_SHIFT==47 assert
        x86/boot: Detect 5-level paging support
        x86/mm/numa: Remove numa_nodemask_from_meminfo()
        ...
      d3b5d352
    • L
      Merge branch 'x86-vdso-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · aa2a4b65
      Linus Torvalds 提交于
      Pull x86 vdso updates from Ingo Molnar:
       "Add support for vDSO acceleration of the "Hyper-V TSC page", to speed
        up clock reading on Hyper-V guests"
      
      * 'x86-vdso-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/vdso: Add VCLOCK_HVCLOCK vDSO clock read method
        x86/hyperv: Move TSC reading method to asm/mshyperv.h
        x86/hyperv: Implement hv_get_tsc_page()
      aa2a4b65
    • L
      Merge branch 'x86-platform-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · d19458a4
      Linus Torvalds 提交于
      Pull x86 platform updates from Ingo Molnar:
       "Most of the commits are continued SGI UV4 hardware-enablement changes,
        plus there's also new Bluetooth support for the Intel Edison platform"
      
      * 'x86-platform-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/platform/intel-mid: Enable Bluetooth support on Intel Edison
        x86/platform/uv/BAU: Implement uv4_wait_completion with read_status
        x86/platform/uv/BAU: Add wait_completion to bau_operations
        x86/platform/uv/BAU: Add status mmr location fields to bau_control
        x86/platform/uv/BAU: Cleanup bau_operations declaration and instances
        x86/platform/uv/BAU: Add payload descriptor qualifier
        x86/platform/uv/BAU: Add uv_bau_version enumerated constants
      d19458a4
    • L
      Merge branch 'x86-irq-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 888411be
      Linus Torvalds 提交于
      Pull x86 irq update from Ingo Molnar:
       "A single commit that micro-optimizes an IRQ vectors code path in the
        CPU offlining code"
      
      * 'x86-irq-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/irq: Optimize free vector check in the CPU offline path
      888411be
    • L
      Merge branch 'x86-debug-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 7d6a31c3
      Linus Torvalds 提交于
      Pull x86 debug updates from Ingo Molnar:
       "The biggest update is the addition of USB3 debug port based
        early-console.
      
        Greg was fine with the USB changes and with the routing of these
        patches:
      
          https://www.spinics.net/lists/linux-usb/msg155093.html"
      
      * 'x86-debug-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        usb/doc: Add document for USB3 debug port usage
        usb/serial: Add DBC debug device support to usb_debug
        x86/earlyprintk: Add support for earlyprintk via USB3 debug port
        usb/early: Add driver for xhci debug capability
        x86/timers: Add simple udelay calibration
      7d6a31c3
    • L
      Merge branch 'x86-cleanups-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 2cc12e2e
      Linus Torvalds 提交于
      Pull x86 cleanups from Ingo Molnar:
       "A handful of small cleanups"
      
      * 'x86-cleanups-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/irq: Remove a redundant #ifdef directive
        x86/smp: Remove the redundant #ifdef CONFIG_SMP directive
        x86/smp: Reduce code duplication
        x86/pci-calgary: Use setup_timer() instead of open coding it.
      2cc12e2e
    • L
      Merge branch 'x86-build-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 66acd7fc
      Linus Torvalds 提交于
      Pull x86 build update from Ingo Molnar:
       "A single CLang support related fix"
      
      * 'x86-build-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/kbuild: Use cc-option to enable -falign-{jumps/loops}
      66acd7fc
    • L
      Merge branch 'x86-asm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 3fb9268e
      Linus Torvalds 提交于
      Pull x86 asm updates from Ingo Molnar:
       "The main changes in this cycle were:
      
         - unwinder fixes and enhancements
      
         - improve ftrace interaction with the unwinder
      
         - optimize the code footprint of WARN() and related debugging
           constructs
      
         - ... plus misc updates, cleanups and fixes"
      
      * 'x86-asm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (24 commits)
        x86/unwind: Dump all stacks in unwind_dump()
        x86/unwind: Silence more entry-code related warnings
        x86/ftrace: Fix ebp in ftrace_regs_caller that screws up unwinder
        x86/unwind: Remove unused 'sp' parameter in unwind_dump()
        x86/unwind: Prepend hex mask value with '0x' in unwind_dump()
        x86/unwind: Properly zero-pad 32-bit values in unwind_dump()
        x86/unwind: Ensure stack pointer is aligned
        debug: Avoid setting BUGFLAG_WARNING twice
        x86/unwind: Silence entry-related warnings
        x86/unwind: Read stack return address in update_stack_state()
        x86/unwind: Move common code into update_stack_state()
        debug: Fix __bug_table[] in arch linker scripts
        debug: Add _ONCE() logic to report_bug()
        x86/debug: Define BUG() again for !CONFIG_BUG
        x86/debug: Implement __WARN() using UD0
        x86/ftrace: Use Makefile logic instead of #ifdef for compiling ftrace_*.o
        x86/ftrace: Add -mfentry support to x86_32 with DYNAMIC_FTRACE set
        x86/ftrace: Clean up ftrace_regs_caller
        x86/ftrace: Add stack frame pointer to ftrace_caller
        x86/ftrace: Move the ftrace specific code out of entry_32.S
        ...
      3fb9268e
    • L
      Merge branch 'x86-apic-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 12ca7c8d
      Linus Torvalds 提交于
      Pull x86 apic updates from Ingo Molnar:
       "Two small cleanups"
      
      * 'x86-apic-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/apic: Fix a comment in init_apic_mappings()
        x86/apic: Remove the SET_APIC_ID(x) macro
      12ca7c8d
    • L
      Merge branch 'x86-cpu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · a52bbaf4
      Linus Torvalds 提交于
      Pull x86 cpu updates from Ingo Molnar:
       "The biggest changes are an extension of the Intel RDT code to extend
        it with Intel Memory Bandwidth Allocation CPU support: MBA allows
        bandwidth allocation between cores, while CBM (already upstream)
        allows CPU cache partitioning.
      
        There's also misc smaller fixes and updates"
      
      * 'x86-cpu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (23 commits)
        x86/intel_rdt: Return error for incorrect resource names in schemata
        x86/intel_rdt: Trim whitespace while parsing schemata input
        x86/intel_rdt: Fix padding when resource is enabled via mount
        x86/intel_rdt: Get rid of anon union
        x86/cpu: Keep model defines sorted by model number
        x86/intel_rdt/mba: Add schemata file support for MBA
        x86/intel_rdt: Make schemata file parsers resource specific
        x86/intel_rdt/mba: Add info directory files for Memory Bandwidth Allocation
        x86/intel_rdt: Make information files resource specific
        x86/intel_rdt/mba: Add primary support for Memory Bandwidth Allocation (MBA)
        x86/intel_rdt/mba: Memory bandwith allocation feature detect
        x86/intel_rdt: Add resource specific msr update function
        x86/intel_rdt: Move CBM specific data into a struct
        x86/intel_rdt: Cleanup namespace to support multiple resource types
        Documentation, x86: Intel Memory bandwidth allocation
        x86/intel_rdt: Organize code properly
        x86/intel_rdt: Init padding only if a device exists
        x86/intel_rdt: Add cpus_list rdtgroup file
        x86/intel_rdt: Cleanup kernel-doc
        x86/intel_rdt: Update schemata read to show data in tabular format
        ...
      a52bbaf4
    • L
      Merge branch 'x86-boot-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 16b76293
      Linus Torvalds 提交于
      Pull x86 boot updates from Ingo Molnar:
       "The biggest changes in this cycle were:
      
         - reworking of the e820 code: separate in-kernel and boot-ABI data
           structures and apply a whole range of cleanups to the kernel side.
      
           No change in functionality.
      
         - enable KASLR by default: it's used by all major distros and it's
           out of the experimental stage as well.
      
         - ... misc fixes and cleanups"
      
      * 'x86-boot-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (63 commits)
        x86/KASLR: Fix kexec kernel boot crash when KASLR randomization fails
        x86/reboot: Turn off KVM when halting a CPU
        x86/boot: Fix BSS corruption/overwrite bug in early x86 kernel startup
        x86: Enable KASLR by default
        boot/param: Move next_arg() function to lib/cmdline.c for later reuse
        x86/boot: Fix Sparse warning by including required header file
        x86/boot/64: Rename start_cpu()
        x86/xen: Update e820 table handling to the new core x86 E820 code
        x86/boot: Fix pr_debug() API braindamage
        xen, x86/headers: Add <linux/device.h> dependency to <asm/xen/page.h>
        x86/boot/e820: Simplify e820__update_table()
        x86/boot/e820: Separate the E820 ABI structures from the in-kernel structures
        x86/boot/e820: Fix and clean up e820_type switch() statements
        x86/boot/e820: Rename the remaining E820 APIs to the e820__*() prefix
        x86/boot/e820: Remove unnecessary #include's
        x86/boot/e820: Rename e820_mark_nosave_regions() to e820__register_nosave_regions()
        x86/boot/e820: Rename e820_reserve_resources*() to e820__reserve_resources*()
        x86/boot/e820: Use bool in query APIs
        x86/boot/e820: Document e820__reserve_setup_data()
        x86/boot/e820: Clean up __e820__update_table() et al
        ...
      16b76293
    • L
      Merge branch 'ras-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 3dee9fb2
      Linus Torvalds 提交于
      Pull RAS updates from Ingo Molnar:
       "The main changes in this cycle were:
      
         - add the 'Corrected Errors Collector' kernel feature which collect
           and monitor correctable errors statistics and will preemptively
           (soft-)offline physical pages that have a suspiciously high error
           count.
      
         - handle MCE errors during kexec() more gracefully
      
         - factor out and deprecate the /dev/mcelog driver
      
         - ... plus misc fixes and cleanpus"
      
      * 'ras-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/mce: Check MCi_STATUS[MISCV] for usable addr on Intel only
        ACPI/APEI: Use setup_deferrable_timer()
        x86/mce: Update notifier priority check
        x86/mce: Enable PPIN for Knights Landing/Mill
        x86/mce: Do not register notifiers with invalid prio
        x86/mce: Factor out and deprecate the /dev/mcelog driver
        RAS: Add a Corrected Errors Collector
        x86/mce: Rename mce_log to mce_log_buffer
        x86/mce: Rename mce_log()'s argument
        x86/mce: Init some CPU features early
        x86/mce: Handle broadcasted MCE gracefully with kexec
      3dee9fb2
    • L
      Merge branch 'perf-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 7c8c03bf
      Linus Torvalds 提交于
      Pull perf updates from Ingo Molnar:
       "The main changes in this cycle were:
      
        Kernel side changes:
      
         - Kprobes and uprobes changes:
            - Make their trampolines read-only while they are used
            - Make UPROBES_EVENTS default-y which is the distro practice
            - Apply misc fixes and robustization to probe point insertion.
      
         - add support for AMD IOMMU events
      
         - extend hw events on Intel Goldmont CPUs
      
         - ... plus misc fixes and updates.
      
        Tooling side changes:
      
         - support s390 jump instructions in perf annotate (Christian
           Borntraeger)
      
         - vendor hardware events updates (Andi Kleen)
      
         - add argument support for SDT events in powerpc (Ravi Bangoria)
      
         - beautify the statx syscall arguments in 'perf trace' (Arnaldo
           Carvalho de Melo)
      
         - handle inline functions in callchains (Jin Yao)
      
         - enable sorting by srcline as key (Milian Wolff)
      
         - add 'brstackinsn' field in 'perf script' to reuse the x86
           instruction decoder used in the Intel PT code to study hot paths to
           samples (Andi Kleen)
      
         - add PERF_RECORD_NAMESPACES so that the kernel can record
           information required to associate samples to namespaces, helping in
           container problem characterization. (Hari Bathini)
      
         - allow sorting by symbol_size in 'perf report' and 'perf top'
           (Charles Baylis)
      
         - in perf stat, make system wide (-a) the default option if no target
           was specified and one of following conditions is met:
            - no workload specified (current behaviour)
            - a workload is specified but all requested events are system wide
              ones, like uncore ones. (Jiri Olsa)
      
         - ... plus lots of other updates, enhancements, cleanups and fixes"
      
      * 'perf-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (235 commits)
        perf tools: Fix the code to strip command name
        tools arch x86: Sync cpufeatures.h
        tools arch: Sync arch/x86/lib/memcpy_64.S with the kernel
        tools: Update asm-generic/mman-common.h copy from the kernel
        perf tools: Use just forward declarations for struct thread where possible
        perf tools: Add the right header to obtain PERF_ALIGN()
        perf tools: Remove poll.h and wait.h from util.h
        perf tools: Remove string.h, unistd.h and sys/stat.h from util.h
        perf tools: Remove stale prototypes from builtin.h
        perf tools: Remove string.h from util.h
        perf tools: Remove sys/ioctl.h from util.h
        perf tools: Remove a few more needless includes from util.h
        perf tools: Include sys/param.h where needed
        perf callchain: Move callchain specific routines from util.[ch]
        perf tools: Add compress.h for the *_decompress_to_file() headers
        perf mem: Fix display of data source snoop indication
        perf debug: Move dump_stack() and sighandler_dump_stack() to debug.h
        perf kvm: Make function only used by 'perf kvm' static
        perf tools: Move timestamp routines from util.h to time-utils.h
        perf tools: Move units conversion/formatting routines to separate object
        ...
      7c8c03bf
    • L
      Merge branch 'x86-process-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 6dc2cce9
      Linus Torvalds 提交于
      Pul x86/process updates from Ingo Molnar:
       "The main change in this cycle was to add the ARCH_[GET|SET]_CPUID
        prctl() ABI extension to control the availability of the CPUID
        instruction, analogously to the existing PR_GET|SET_TSC ABI that
        controls RDTSC.
      
        Motivation: the 'rr' user-space record-and-replay execution debugger
        would like to trap and emulate the CPUID instruction - which
        instruction is normally unprivileged.
      
        Trapping CPUID is possible on IvyBridge and later Intel CPUs - expose
        this hardware capability"
      
      * 'x86-process-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/syscalls/32: Ignore arch_prctl for other architectures
        um/arch_prctl: Fix fallout from x86 arch_prctl() rework
        x86/arch_prctl: Add ARCH_[GET|SET]_CPUID
        x86/cpufeature: Detect CPUID faulting support
        x86/syscalls/32: Wire up arch_prctl on x86-32
        x86/arch_prctl: Add do_arch_prctl_common()
        x86/arch_prctl/64: Rename do_arch_prctl() to do_arch_prctl_64()
        x86/arch_prctl/64: Use SYSCALL_DEFINE2 to define sys_arch_prctl()
        x86/arch_prctl: Rename 'code' argument to 'option'
        x86/msr: Rename MISC_FEATURE_ENABLES to MISC_FEATURES_ENABLES
        x86/process: Optimize TIF_NOTSC switch
        x86/process: Correct and optimize TIF_BLOCKSTEP switch
        x86/process: Optimize TIF checks in __switch_to_xtra()
      6dc2cce9
    • L
      Merge branch 'locking-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 207fb8c3
      Linus Torvalds 提交于
      Pull locking updates from Ingo Molnar:
       "The main changes in this cycle were:
      
         - a big round of FUTEX_UNLOCK_PI improvements, fixes, cleanups and
           general restructuring
      
         - lockdep updates such as new checks for lock_downgrade()
      
         - introduce the new atomic_try_cmpxchg() locking API and use it to
           optimize refcount code generation
      
         - ... plus misc fixes, updates and cleanups"
      
      * 'locking-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (38 commits)
        MAINTAINERS: Add FUTEX SUBSYSTEM
        futex: Clarify mark_wake_futex memory barrier usage
        futex: Fix small (and harmless looking) inconsistencies
        futex: Avoid freeing an active timer
        rtmutex: Plug preempt count leak in rt_mutex_futex_unlock()
        rtmutex: Fix more prio comparisons
        rtmutex: Fix PI chain order integrity
        sched,tracing: Update trace_sched_pi_setprio()
        sched/rtmutex: Refactor rt_mutex_setprio()
        rtmutex: Clean up
        sched/deadline/rtmutex: Dont miss the dl_runtime/dl_period update
        sched/rtmutex/deadline: Fix a PI crash for deadline tasks
        rtmutex: Deboost before waking up the top waiter
        locking/ww-mutex: Limit stress test to 2 seconds
        locking/atomic: Fix atomic_try_cmpxchg() semantics
        lockdep: Fix per-cpu static objects
        futex: Drop hb->lock before enqueueing on the rtmutex
        futex: Futex_unlock_pi() determinism
        futex: Rework futex_lock_pi() to use rt_mutex_*_proxy_lock()
        futex,rt_mutex: Restructure rt_mutex_finish_proxy_lock()
        ...
      207fb8c3
    • L
      Merge branch 'sched-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 3527d3e9
      Linus Torvalds 提交于
      Pull scheduler updates from Ingo Molnar:
       "The main changes in this cycle were:
      
         - another round of rq-clock handling debugging, robustization and
           fixes
      
         - PELT accounting improvements
      
         - CPU hotplug related ->cpus_allowed affinity handling fixes all
           around the tree
      
         - ... plus misc fixes, cleanups and updates"
      
      * 'sched-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (35 commits)
        sched/x86: Update reschedule warning text
        crypto: N2 - Replace racy task affinity logic
        cpufreq/sparc-us2e: Replace racy task affinity logic
        cpufreq/sparc-us3: Replace racy task affinity logic
        cpufreq/sh: Replace racy task affinity logic
        cpufreq/ia64: Replace racy task affinity logic
        ACPI/processor: Replace racy task affinity logic
        ACPI/processor: Fix error handling in __acpi_processor_start()
        sparc/sysfs: Replace racy task affinity logic
        powerpc/smp: Replace open coded task affinity logic
        ia64/sn/hwperf: Replace racy task affinity logic
        ia64/salinfo: Replace racy task affinity logic
        workqueue: Provide work_on_cpu_safe()
        ia64/topology: Remove cpus_allowed manipulation
        sched/fair: Move the PELT constants into a generated header
        sched/fair: Increase PELT accuracy for small tasks
        sched/fair: Fix comments
        sched/Documentation: Add 'sched-pelt' tool
        sched/fair: Fix corner case in __accumulate_sum()
        sched/core: Remove 'task' parameter and rename tsk_restore_flags() to current_restore_flags()
        ...
      3527d3e9
    • L
      Merge branch 'efi-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 3711c94f
      Linus Torvalds 提交于
      Pull EFI updates from Ingo Molnar:
       "The main changes in this cycle were:
      
         - move BGRT handling to drivers/acpi so it can be shared between x86
           and ARM
      
         - bring the EFI stub's initrd and FDT allocation logic in line with
           the latest changes to the arm64 boot protocol
      
         - improvements and fixes to the EFI stub's command line parsing
           routines
      
         - randomize the virtual mapping of the UEFI runtime services on
           ARM/arm64
      
         - ... and other misc enhancements, cleanups and fixes"
      
      * 'efi-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        efi/libstub/arm: Don't use TASK_SIZE when randomizing the RT space
        ef/libstub/arm/arm64: Randomize the base of the UEFI rt services region
        efi/libstub/arm/arm64: Disable debug prints on 'quiet' cmdline arg
        efi/libstub: Unify command line param parsing
        efi/libstub: Fix harmless command line parsing bug
        efi/arm32-stub: Allow boot-time allocations in the vmlinux region
        x86/efi: Clean up a minor mistake in comment
        efi/pstore: Return error code (if any) from efi_pstore_write()
        efi/bgrt: Enable ACPI BGRT handling on arm64
        x86/efi/bgrt: Move efi-bgrt handling out of arch/x86
        efi/arm-stub: Round up FDT allocation to mapping size
        efi/arm-stub: Correct FDT and initrd allocation rules for arm64
      3711c94f
    • L
      Merge branch 'timers-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 174ddfd5
      Linus Torvalds 提交于
      Pull timer updates from Thomas Gleixner:
       "The timer departement delivers:
      
         - more year 2038 rework
      
         - a massive rework of the arm achitected timer
      
         - preparatory patches to allow NTP correction of clock event devices
           to avoid early expiry
      
         - the usual pile of fixes and enhancements all over the place"
      
      * 'timers-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (91 commits)
        timer/sysclt: Restrict timer migration sysctl values to 0 and 1
        arm64/arch_timer: Mark errata handlers as __maybe_unused
        Clocksource/mips-gic: Remove redundant non devicetree init
        MIPS/Malta: Probe gic-timer via devicetree
        clocksource: Use GENMASK_ULL in definition of CLOCKSOURCE_MASK
        acpi/arm64: Add SBSA Generic Watchdog support in GTDT driver
        clocksource: arm_arch_timer: add GTDT support for memory-mapped timer
        acpi/arm64: Add memory-mapped timer support in GTDT driver
        clocksource: arm_arch_timer: simplify ACPI support code.
        acpi/arm64: Add GTDT table parse driver
        clocksource: arm_arch_timer: split MMIO timer probing.
        clocksource: arm_arch_timer: add structs to describe MMIO timer
        clocksource: arm_arch_timer: move arch_timer_needs_of_probing into DT init call
        clocksource: arm_arch_timer: refactor arch_timer_needs_probing
        clocksource: arm_arch_timer: split dt-only rate handling
        x86/uv/time: Set ->min_delta_ticks and ->max_delta_ticks
        unicore32/time: Set ->min_delta_ticks and ->max_delta_ticks
        um/time: Set ->min_delta_ticks and ->max_delta_ticks
        tile/time: Set ->min_delta_ticks and ->max_delta_ticks
        score/time: Set ->min_delta_ticks and ->max_delta_ticks
        ...
      174ddfd5