1. 10 May, 2018 2 commits
    • Lyude Paul's avatar
      drm/nouveau: Fix deadlock in nv50_mstm_register_connector() · 352672db
      Lyude Paul authored
      Currently; we're grabbing all of the modesetting locks before adding MST
      connectors to fbdev. This isn't actually necessary, and causes a
      deadlock as well:
      
      ======================================================
      WARNING: possible circular locking dependency detected
      4.17.0-rc3Lyude-Test+ #1 Tainted: G           O
      ------------------------------------------------------
      kworker/1:0/18 is trying to acquire lock:
      00000000c832f62d (&helper->lock){+.+.}, at: drm_fb_helper_add_one_connector+0x2a/0x60 [drm_kms_helper]
      
      but task is already holding lock:
      00000000942e28e2 (crtc_ww_class_mutex){+.+.}, at: drm_modeset_backoff+0x8e/0x1c0 [drm]
      
      which lock already depends on the new lock.
      
      the existing dependency chain (in reverse order) is:
      
      -> #3 (crtc_ww_class_mutex){+.+.}:
             ww_mutex_lock+0x43/0x80
             drm_modeset_lock+0x71/0x130 [drm]
             drm_helper_probe_single_connector_modes+0x7d/0x6b0 [drm_kms_helper]
             drm_setup_crtcs+0x15e/0xc90 [drm_kms_helper]
             __drm_fb_helper_initial_config_and_unlock+0x29/0x480 [drm_kms_helper]
             nouveau_fbcon_init+0x138/0x1a0 [nouveau]
             nouveau_drm_load+0x173/0x7e0 [nouveau]
             drm_dev_register+0x134/0x1c0 [drm]
             drm_get_pci_dev+0x8e/0x160 [drm]
             nouveau_drm_probe+0x1a9/0x230 [nouveau]
             pci_device_probe+0xcd/0x150
             driver_probe_device+0x30b/0x480
             __driver_attach+0xbc/0xe0
             bus_for_each_dev+0x67/0x90
             bus_add_driver+0x164/0x260
             driver_register+0x57/0xc0
             do_one_initcall+0x4d/0x323
             do_init_module+0x5b/0x1f8
             load_module+0x20e5/0x2ac0
             __do_sys_finit_module+0xb7/0xd0
             do_syscall_64+0x60/0x1b0
             entry_SYSCALL_64_after_hwframe+0x49/0xbe
      
      -> #2 (crtc_ww_class_acquire){+.+.}:
             drm_helper_probe_single_connector_modes+0x58/0x6b0 [drm_kms_helper]
             drm_setup_crtcs+0x15e/0xc90 [drm_kms_helper]
             __drm_fb_helper_initial_config_and_unlock+0x29/0x480 [drm_kms_helper]
             nouveau_fbcon_init+0x138/0x1a0 [nouveau]
             nouveau_drm_load+0x173/0x7e0 [nouveau]
             drm_dev_register+0x134/0x1c0 [drm]
             drm_get_pci_dev+0x8e/0x160 [drm]
             nouveau_drm_probe+0x1a9/0x230 [nouveau]
             pci_device_probe+0xcd/0x150
             driver_probe_device+0x30b/0x480
             __driver_attach+0xbc/0xe0
             bus_for_each_dev+0x67/0x90
             bus_add_driver+0x164/0x260
             driver_register+0x57/0xc0
             do_one_initcall+0x4d/0x323
             do_init_module+0x5b/0x1f8
             load_module+0x20e5/0x2ac0
             __do_sys_finit_module+0xb7/0xd0
             do_syscall_64+0x60/0x1b0
             entry_SYSCALL_64_after_hwframe+0x49/0xbe
      
      -> #1 (&dev->mode_config.mutex){+.+.}:
             drm_setup_crtcs+0x10c/0xc90 [drm_kms_helper]
             __drm_fb_helper_initial_config_and_unlock+0x29/0x480 [drm_kms_helper]
             nouveau_fbcon_init+0x138/0x1a0 [nouveau]
             nouveau_drm_load+0x173/0x7e0 [nouveau]
             drm_dev_register+0x134/0x1c0 [drm]
             drm_get_pci_dev+0x8e/0x160 [drm]
             nouveau_drm_probe+0x1a9/0x230 [nouveau]
             pci_device_probe+0xcd/0x150
             driver_probe_device+0x30b/0x480
             __driver_attach+0xbc/0xe0
             bus_for_each_dev+0x67/0x90
             bus_add_driver+0x164/0x260
             driver_register+0x57/0xc0
             do_one_initcall+0x4d/0x323
             do_init_module+0x5b/0x1f8
             load_module+0x20e5/0x2ac0
             __do_sys_finit_module+0xb7/0xd0
             do_syscall_64+0x60/0x1b0
             entry_SYSCALL_64_after_hwframe+0x49/0xbe
      
      -> #0 (&helper->lock){+.+.}:
             __mutex_lock+0x70/0x9d0
             drm_fb_helper_add_one_connector+0x2a/0x60 [drm_kms_helper]
             nv50_mstm_register_connector+0x2c/0x50 [nouveau]
             drm_dp_add_port+0x2f5/0x420 [drm_kms_helper]
             drm_dp_send_link_address+0x155/0x1e0 [drm_kms_helper]
             drm_dp_add_port+0x33f/0x420 [drm_kms_helper]
             drm_dp_send_link_address+0x155/0x1e0 [drm_kms_helper]
             drm_dp_check_and_send_link_address+0x87/0xd0 [drm_kms_helper]
             drm_dp_mst_link_probe_work+0x4d/0x80 [drm_kms_helper]
             process_one_work+0x20d/0x650
             worker_thread+0x3a/0x390
             kthread+0x11e/0x140
             ret_from_fork+0x3a/0x50
      
      other info that might help us debug this:
      Chain exists of:
        &helper->lock --> crtc_ww_class_acquire --> crtc_ww_class_mutex
       Possible unsafe locking scenario:
             CPU0                    CPU1
             ----                    ----
        lock(crtc_ww_class_mutex);
                                     lock(crtc_ww_class_acquire);
                                     lock(crtc_ww_class_mutex);
        lock(&helper->lock);
      
       *** DEADLOCK ***
      5 locks held by kworker/1:0/18:
       #0: 000000004a05cd50 ((wq_completion)"events_long"){+.+.}, at: process_one_work+0x187/0x650
       #1: 00000000601c11d1 ((work_completion)(&mgr->work)){+.+.}, at: process_one_work+0x187/0x650
       #2: 00000000586ca0df (&dev->mode_config.mutex){+.+.}, at: drm_modeset_lock_all+0x3a/0x1b0 [drm]
       #3: 00000000d3ca0ffa (crtc_ww_class_acquire){+.+.}, at: drm_modeset_lock_all+0x44/0x1b0 [drm]
       #4: 00000000942e28e2 (crtc_ww_class_mutex){+.+.}, at: drm_modeset_backoff+0x8e/0x1c0 [drm]
      
      stack backtrace:
      CPU: 1 PID: 18 Comm: kworker/1:0 Tainted: G           O      4.17.0-rc3Lyude-Test+ #1
      Hardware name: Gateway FX6840/FX6840, BIOS P01-A3         05/17/2010
      Workqueue: events_long drm_dp_mst_link_probe_work [drm_kms_helper]
      Call Trace:
       dump_stack+0x85/0xcb
       print_circular_bug.isra.38+0x1ce/0x1db
       __lock_acquire+0x128f/0x1350
       ? lock_acquire+0x9f/0x200
       ? lock_acquire+0x9f/0x200
       ? __ww_mutex_lock.constprop.13+0x8f/0x1000
       lock_acquire+0x9f/0x200
       ? drm_fb_helper_add_one_connector+0x2a/0x60 [drm_kms_helper]
       ? drm_fb_helper_add_one_connector+0x2a/0x60 [drm_kms_helper]
       __mutex_lock+0x70/0x9d0
       ? drm_fb_helper_add_one_connector+0x2a/0x60 [drm_kms_helper]
       ? ww_mutex_lock+0x43/0x80
       ? _cond_resched+0x15/0x30
       ? ww_mutex_lock+0x43/0x80
       ? drm_modeset_lock+0xb2/0x130 [drm]
       ? drm_fb_helper_add_one_connector+0x2a/0x60 [drm_kms_helper]
       drm_fb_helper_add_one_connector+0x2a/0x60 [drm_kms_helper]
       nv50_mstm_register_connector+0x2c/0x50 [nouveau]
       drm_dp_add_port+0x2f5/0x420 [drm_kms_helper]
       ? mark_held_locks+0x50/0x80
       ? kfree+0xcf/0x2a0
       ? drm_dp_check_mstb_guid+0xd6/0x120 [drm_kms_helper]
       ? trace_hardirqs_on_caller+0xed/0x180
       ? drm_dp_check_mstb_guid+0xd6/0x120 [drm_kms_helper]
       drm_dp_send_link_address+0x155/0x1e0 [drm_kms_helper]
       drm_dp_add_port+0x33f/0x420 [drm_kms_helper]
       ? nouveau_connector_aux_xfer+0x7c/0xb0 [nouveau]
       ? find_held_lock+0x2d/0x90
       ? drm_dp_dpcd_access+0xd9/0xf0 [drm_kms_helper]
       ? __mutex_unlock_slowpath+0x3b/0x280
       ? drm_dp_dpcd_access+0xd9/0xf0 [drm_kms_helper]
       drm_dp_send_link_address+0x155/0x1e0 [drm_kms_helper]
       drm_dp_check_and_send_link_address+0x87/0xd0 [drm_kms_helper]
       drm_dp_mst_link_probe_work+0x4d/0x80 [drm_kms_helper]
       process_one_work+0x20d/0x650
       worker_thread+0x3a/0x390
       ? process_one_work+0x650/0x650
       kthread+0x11e/0x140
       ? kthread_create_worker_on_cpu+0x50/0x50
       ret_from_fork+0x3a/0x50
      
      Taking example from i915, the only time we need to hold any modesetting
      locks is when changing the port on the mstc, and in that case we only
      need to hold the connection mutex.
      Signed-off-by: default avatarLyude Paul <lyude@redhat.com>
      Cc: Karol Herbst <kherbst@redhat.com>
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarLyude Paul <lyude@redhat.com>
      Signed-off-by: default avatarBen Skeggs <bskeggs@redhat.com>
      352672db
    • Ben Skeggs's avatar
      drm/nouveau/ttm: don't dereference nvbo::cli, it can outlive client · 0d5a03c3
      Ben Skeggs authored
      Potentially responsible for some random OOPSes.
      Signed-off-by: default avatarBen Skeggs <bskeggs@redhat.com>
      Cc: stable@vger.kernel.org [v4.15+]
      0d5a03c3
  2. 04 May, 2018 1 commit
  3. 03 May, 2018 2 commits
  4. 02 May, 2018 1 commit
  5. 30 Apr, 2018 2 commits
  6. 29 Apr, 2018 6 commits
    • Linus Torvalds's avatar
      Linux v4.17-rc3 · 6da6c0db
      Linus Torvalds authored
      6da6c0db
    • Linus Torvalds's avatar
      Merge branch 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · c61a56ab
      Linus Torvalds authored
      Pull x86 fixes from Thomas Gleixner:
       "Another set of x86 related updates:
      
         - Fix the long broken x32 version of the IPC user space headers which
           was noticed by Arnd Bergman in course of his ongoing y2038 work.
           GLIBC seems to have non broken private copies of these headers so
           this went unnoticed.
      
         - Two microcode fixlets which address some more fallout from the
           recent modifications in that area:
      
            - Unconditionally save the microcode patch, which was only saved
              when CPU_HOTPLUG was enabled causing failures in the late
              loading mechanism
      
            - Make the later loader synchronization finally work under all
              circumstances. It was exiting early and causing timeout failures
              due to a missing synchronization point.
      
         - Do not use mwait_play_dead() on AMD systems to prevent excessive
           power consumption as the CPU cannot go into deep power states from
           there.
      
         - Address an annoying sparse warning due to lost type qualifiers of
           the vmemmap and vmalloc base address constants.
      
         - Prevent reserving crash kernel region on Xen PV as this leads to
           the wrong perception that crash kernels actually work there which
           is not the case. Xen PV has its own crash mechanism handled by the
           hypervisor.
      
         - Add missing TLB cpuid values to the table to make the printout on
           certain machines correct.
      
         - Enumerate the new CLDEMOTE instruction
      
         - Fix an incorrect SPDX identifier
      
         - Remove stale macros"
      
      * 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/ipc: Fix x32 version of shmid64_ds and msqid64_ds
        x86/setup: Do not reserve a crash kernel region if booted on Xen PV
        x86/cpu/intel: Add missing TLB cpuid values
        x86/smpboot: Don't use mwait_play_dead() on AMD systems
        x86/mm: Make vmemmap and vmalloc base address constants unsigned long
        x86/vector: Remove the unused macro FPU_IRQ
        x86/vector: Remove the macro VECTOR_OFFSET_START
        x86/cpufeatures: Enumerate cldemote instruction
        x86/microcode: Do not exit early from __reload_late()
        x86/microcode/intel: Save microcode patch unconditionally
        x86/jailhouse: Fix incorrect SPDX identifier
      c61a56ab
    • Linus Torvalds's avatar
      Merge branch 'x86-pti-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 65f4d6d0
      Linus Torvalds authored
      Pull x86 pti fixes from Thomas Gleixner:
       "A set of updates for the x86/pti related code:
      
         - Preserve r8-r11 in int $0x80. r8-r11 need to be preserved, but the
           int$80 entry code removed that quite some time ago. Make it correct
           again.
      
         - A set of fixes for the Global Bit work which went into 4.17 and
           caused a bunch of interesting regressions:
      
            - Triggering a BUG in the page attribute code due to a missing
              check for early boot stage
      
            - Warnings in the page attribute code about holes in the kernel
              text mapping which are caused by the freeing of the init code.
              Handle such holes gracefully.
      
            - Reduce the amount of kernel memory which is set global to the
              actual text and do not incidentally overlap with data.
      
            - Disable the global bit when RANDSTRUCT is enabled as it
              partially defeats the hardening.
      
            - Make the page protection setup correct for vma->page_prot
              population again. The adjustment of the protections fell through
              the crack during the Global bit rework and triggers warnings on
              machines which do not support certain features, e.g. NX"
      
      * 'x86-pti-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/entry/64/compat: Preserve r8-r11 in int $0x80
        x86/pti: Filter at vma->vm_page_prot population
        x86/pti: Disallow global kernel text with RANDSTRUCT
        x86/pti: Reduce amount of kernel text allowed to be Global
        x86/pti: Fix boot warning from Global-bit setting
        x86/pti: Fix boot problems from Global-bit setting
      65f4d6d0
    • Linus Torvalds's avatar
      Merge branch 'timers-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 810fb07a
      Linus Torvalds authored
      Pull timer fixes from Thomas Gleixner:
       "Two fixes from the timer departement:
      
         - Fix a long standing issue in the NOHZ tick code which causes RB
           tree corruption, delayed timers and other malfunctions. The cause
           for this is code which modifies the expiry time of an enqueued
           hrtimer.
      
         - Revert the CLOCK_MONOTONIC/CLOCK_BOOTTIME unification due to
           regression reports. Seems userspace _is_ relying on the documented
           behaviour despite our hope that it wont"
      
      * 'timers-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        Revert: Unify CLOCK_MONOTONIC and CLOCK_BOOTTIME
        tick/sched: Do not mess with an enqueued hrtimer
      810fb07a
    • Linus Torvalds's avatar
      Merge branch 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 7d9e55fe
      Linus Torvalds authored
      Pull perf fixes from Thomas Gleixner:
       "The perf update contains the following bits:
      
        x86:
         - Prevent setting freeze_on_smi on PerfMon V1 CPUs to avoid #GP
      
        perf stat:
         - Keep the '/' event modifier separator in fallback, for example when
           fallbacking from 'cpu/cpu-cycles/' to user level only, where it
           should become 'cpu/cpu-cycles/u' and not 'cpu/cpu-cycles/:u' (Jiri
           Olsa)
      
         - Fix PMU events parsing rule, improving error reporting for invalid
           events (Jiri Olsa)
      
         - Disable write_backward and other event attributes for !group events
           in a group, fixing, for instance this group: '{cycles,msr/aperf/}:S'
           that has leader sampling (:S) and where just the 'cycles', the
           leader event, should have the write_backward attribute set, in this
           case it all fails because the PMU where 'msr/aperf/' lives doesn't
           accepts write_backward style sampling (Jiri Olsa)
      
         - Only fall back group read for leader (Kan Liang)
      
         - Fix core PMU alias list for x86 platform (Kan Liang)
      
         - Print out hint for mixed PMU group error (Kan Liang)
      
         - Fix duplicate PMU name for interval print (Kan Liang)
      
        Core:
         - Set main kernel end address properly when reading kernel and module
           maps (Namhyung Kim)
      
        perf mem:
         - Fix incorrect entries and add missing man options (Sangwon Hong)
      
        s/390:
         - Remove s390 specific strcmp_cpuid_cmp function (Thomas Richter)
      
         - Adapt 'perf test' case record+probe_libc_inet_pton.sh for s390
      
         - Fix s390 undefined record__auxtrace_init() return value in 'perf
           record' (Thomas Richter)"
      
      * 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        perf/x86/intel: Don't enable freeze-on-smi for PerfMon V1
        perf stat: Fix duplicate PMU name for interval print
        perf evsel: Only fall back group read for leader
        perf stat: Print out hint for mixed PMU group error
        perf pmu: Fix core PMU alias list for X86 platform
        perf record: Fix s390 undefined record__auxtrace_init() return value
        perf mem: Document incorrect and missing options
        perf evsel: Disable write_backward for leader sampling group events
        perf pmu: Fix pmu events parsing rule
        perf stat: Keep the / modifier separator in fallback
        perf test: Adapt test case record+probe_libc_inet_pton.sh for s390
        perf list: Remove s390 specific strcmp_cpuid_cmp function
        perf machine: Set main kernel end address properly
      7d9e55fe
    • Linus Torvalds's avatar
      Merge tag 'for_linus_stable' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4 · cdface52
      Linus Torvalds authored
      Pull ext4 fixes from Ted Ts'o:
       "Fix misc bugs and a regression for ext4"
      
      * tag 'for_linus_stable' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4:
        ext4: add MODULE_SOFTDEP to ensure crc32c is included in the initramfs
        ext4: fix bitmap position validation
        ext4: set h_journal if there is a failure starting a reserved handle
        ext4: prevent right-shifting extents beyond EXT_MAX_BLOCKS
      cdface52
  7. 28 Apr, 2018 6 commits
    • Amir Goldstein's avatar
      <linux/stringhash.h>: fix end_name_hash() for 64bit long · 19b9ad67
      Amir Goldstein authored
      The comment claims that this helper will try not to loose bits, but for
      64bit long it looses the high bits before hashing 64bit long into 32bit
      int.  Use the helper hash_long() to do the right thing for 64bit long.
      For 32bit long, there is no change.
      
      All the callers of end_name_hash() either assign the result to
      qstr->hash, which is u32 or return the result as an int value (e.g.
      full_name_hash()).  Change the helper return type to int to conform to
      its users.
      
      [ It took me a while to apply this, because my initial reaction to it
        was - incorrectly - that it could make for slower code.
      
        After having looked more at it, I take back all my complaints about
        the patch, Amir was right and I was mis-reading things or just being
        stupid.
      
        I also don't worry too much about the possible performance impact of
        this on 64-bit, since most architectures that actually care about
        performance end up not using this very much (the dcache code is the
        most performance-critical, but the word-at-a-time case uses its own
        hashing anyway).
      
        So this ends up being mostly used for filesystems that do their own
        degraded hashing (usually because they want a case-insensitive
        comparison function).
      
        A _tiny_ worry remains, in that not everybody uses DCACHE_WORD_ACCESS,
        and then this potentially makes things more expensive on 64-bit
        architectures with slow or lacking multipliers even for the normal
        case.
      
        That said, realistically the only such architecture I can think of is
        PA-RISC. Nobody really cares about performance on that, it's more of a
        "look ma, I've got warts^W an odd machine" platform.
      
        So the patch is fine, and all my initial worries were just misplaced
        from not looking at this properly.   - Linus ]
      Signed-off-by: default avatarAmir Goldstein <amir73il@gmail.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      19b9ad67
    • David Sterba's avatar
      MAINTAINERS: add myself as maintainer of AFFS · bf8f5de1
      David Sterba authored
      The AFFS filesystem is still in use by m68k community (Link #2), but as
      there was no code activity and no maintainer, the filesystem appeared on
      the list of candidates for staging/removal (Link #1).
      
      I volunteer to act as a maintainer of AFFS to collect any fixes that
      might show up and to guard fs/affs/ against another spring cleaning.
      
      Link: https://lkml.kernel.org/r/20180425154602.GA8546@bombadil.infradead.org
      Link: https://lkml.kernel.org/r/1613268.lKBQxPXt8J@merkaba
      CC: Martin Steigerwald <martin@lichtvoll.de>
      CC: John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de>
      Signed-off-by: default avatarDavid Sterba <dsterba@suse.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      bf8f5de1
    • Linus Torvalds's avatar
      Merge branch 'i2c/for-current' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux · a97d8efd
      Linus Torvalds authored
      Pull i2c fixes from Wolfram Sang:
      
       - two driver fixes
      
       - better parameter check for the core
      
       - Documentation updates
      
       - part of a tree-wide HAS_DMA cleanup
      
      * 'i2c/for-current' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux:
        i2c: sprd: Fix the i2c count issue
        i2c: sprd: Prevent i2c accesses after suspend is called
        i2c: dev: prevent ZERO_SIZE_PTR deref in i2cdev_ioctl_rdwr()
        Documentation/i2c: adopt kernel commenting style in examples
        Documentation/i2c: sync docs with current state of i2c-tools
        Documentation/i2c: whitespace cleanup
        i2c: Remove depends on HAS_DMA in case of platform dependency
      a97d8efd
    • Linus Torvalds's avatar
      Merge branch 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6 · 6e041ffc
      Linus Torvalds authored
      Pull crypto fixes from Herbert Xu:
      
       - crypto API regression that may cause sporadic alloc failures
      
       - double-free bug in drbg
      
      * 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6:
        crypto: drbg - set freed buffers to NULL
        crypto: api - fix finding algorithm currently being tested
      6e041ffc
    • Linus Torvalds's avatar
      Merge tag '4.17-rc2-smb3' of git://git.samba.org/sfrench/cifs-2.6 · cac26428
      Linus Torvalds authored
      Pull cifs fixes from Steve French:
       "A few security related fixes for SMB3, most importantly for SMB3.11
        encryption"
      
      * tag '4.17-rc2-smb3' of git://git.samba.org/sfrench/cifs-2.6:
        cifs: smbd: Avoid allocating iov on the stack
        cifs: smbd: Don't use RDMA read/write when signing is used
        SMB311: Fix reconnect
        SMB3: Fix 3.11 encryption to Windows and handle encrypted smb3 tcon
        CIFS: set *resp_buf_type to NO_BUFFER on error
      cac26428
    • Linus Torvalds's avatar
      Merge tag 'powerpc-4.17-4' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux · 0d95cfa9
      Linus Torvalds authored
      Pull powerpc fixes from Michael Ellerman:
       "A bunch of fixes, mostly for existing code and going to stable.
      
        Our memory hot-unplug path wasn't flushing the cache before removing
        memory. That is a problem now that we are doing memory hotplug on bare
        metal.
      
        Three fixes for the NPU code that supports devices connected via
        NVLink (ie. GPUs). The main one tweaks the TLB flush algorithm to
        avoid soft lockups for large flushes.
      
        A fix for our memory error handling where we would loop infinitely,
        returning back to the bad access and hard lockup the CPU.
      
        Fixes for the OPAL RTC driver, which wasn't handling some error cases
        correctly.
      
        A fix for a hardlockup in the powernv cpufreq driver.
      
        And finally two fixes to our smp_send_stop(), required due to a recent
        change to use it on shutdown.
      
        Thanks to: Alistair Popple, Balbir Singh, Laurentiu Tudor, Mahesh
        Salgaonkar, Mark Hairgrove, Nicholas Piggin, Rashmica Gupta, Shilpasri
        G Bhat"
      
      * tag 'powerpc-4.17-4' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux:
        powerpc/kvm/booke: Fix altivec related build break
        powerpc: Fix deadlock with multiple calls to smp_send_stop
        cpufreq: powernv: Fix hardlockup due to synchronous smp_call in timer interrupt
        powerpc: Fix smp_send_stop NMI IPI handling
        rtc: opal: Fix OPAL RTC driver OPAL_BUSY loops
        powerpc/mce: Fix a bug where mce loops on memory UE.
        powerpc/powernv/npu: Do a PID GPU TLB flush when invalidating a large address range
        powerpc/powernv/npu: Prevent overwriting of pnv_npu2_init_contex() callback parameters
        powerpc/powernv/npu: Add lock to prevent race in concurrent context init/destroy
        powerpc/powernv/memtrace: Let the arch hotunplug code flush cache
        powerpc/mm: Flush cache on memory hot(un)plug
      0d95cfa9
  8. 27 Apr, 2018 20 commits
    • Linus Torvalds's avatar
      rMerge tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm · 46dc111d
      Linus Torvalds authored
      Pull KVM fixes from Radim Krčmář:
       "ARM:
         - PSCI selection API, a leftover from 4.16 (for stable)
         - Kick vcpu on active interrupt affinity change
         - Plug a VMID allocation race on oversubscribed systems
         - Silence debug messages
         - Update Christoffer's email address (linaro -> arm)
      
        x86:
         - Expose userspace-relevant bits of a newly added feature
         - Fix TLB flushing on VMX with VPID, but without EPT"
      
      * tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm:
        x86/headers/UAPI: Move DISABLE_EXITS KVM capability bits to the UAPI
        kvm: apic: Flush TLB after APIC mode/address change if VPIDs are in use
        arm/arm64: KVM: Add PSCI version selection API
        KVM: arm/arm64: vgic: Kick new VCPU on interrupt migration
        arm64: KVM: Demote SVE and LORegion warnings to debug only
        MAINTAINERS: Update e-mail address for Christoffer Dall
        KVM: arm/arm64: Close VMID generation race
      46dc111d
    • Linus Torvalds's avatar
      Merge tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux · 19b522db
      Linus Torvalds authored
      Pull arm64 fixes from Will Deacon:
       "Nothing too bad, but the spectre updates to smatch identified a few
        places that may need sanitising so we've got those covered.
      
        Details:
      
         - Close some potential spectre-v1 vulnerabilities found by smatch
      
         - Add missing list sentinel for CPUs that don't require KPTI
      
         - Removal of unused 'addr' parameter for I/D cache coherency
      
         - Removal of redundant set_fs(KERNEL_DS) calls in ptrace
      
         - Fix single-stepping state machine handling in response to kernel
           traps
      
         - Clang support for 128-bit integers
      
         - Avoid instrumenting our out-of-line atomics in preparation for
           enabling LSE atomics by default in 4.18"
      
      * tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux:
        arm64: avoid instrumenting atomic_ll_sc.o
        KVM: arm/arm64: vgic: fix possible spectre-v1 in vgic_mmio_read_apr()
        KVM: arm/arm64: vgic: fix possible spectre-v1 in vgic_get_irq()
        arm64: fix possible spectre-v1 in ptrace_hbp_get_event()
        arm64: support __int128 with clang
        arm64: only advance singlestep for user instruction traps
        arm64/kernel: rename module_emit_adrp_veneer->module_emit_veneer_for_adrp
        arm64: ptrace: remove addr_limit manipulation
        arm64: mm: drop addr parameter from sync icache and dcache
        arm64: add sentinel to kpti_safe_list
      19b522db
    • Linus Torvalds's avatar
      Merge tag 'modules-for-v4.17-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/jeyu/linux · 7b87308e
      Linus Torvalds authored
      Pull modules fix from Jessica Yu:
       "Fix display of module section addresses in sysfs, which were getting
        hashed with %pK and breaking tools like perf"
      
      * tag 'modules-for-v4.17-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/jeyu/linux:
        module: Fix display of wrong module .text address
      7b87308e
    • Linus Torvalds's avatar
      Merge tag 'ceph-for-4.17-rc3' of git://github.com/ceph/ceph-client · 64ebe312
      Linus Torvalds authored
      Pull ceph fixes from Ilya Dryomov:
       "A CephFS quota follow-up and fixes for two older issues in the
        messenger layer, marked for stable"
      
      * tag 'ceph-for-4.17-rc3' of git://github.com/ceph/ceph-client:
        libceph: validate con->state at the top of try_write()
        libceph: reschedule a tick in finish_hunting()
        libceph: un-backoff on tick when we have a authenticated session
        ceph: check if mds create snaprealm when setting quota
      64ebe312
    • Linus Torvalds's avatar
      Merge tag 'char-misc-4.17-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc · d8a33273
      Linus Torvalds authored
      Pull char/misc driver fixes from Greg KH:
       "Here are some small char and misc driver fixes for 4.17-rc3
      
        A variety of small things that have fallen out after 4.17-rc1 was out.
        Some vboxguest fixes for systems with lots of memory, amba bus fixes,
        some MAINTAINERS updates, uio_hv_generic driver fixes, and a few other
        minor things that resolve problems that people reported.
      
        The amba bus fixes took twice to get right, the first time I messed up
        applying the patches in the wrong order, hence the revert and later
        addition again with the correct fix, sorry about that.
      
        All of these have been in linux-next with no reported issues"
      
      * tag 'char-misc-4.17-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc:
        ARM: amba: Fix race condition with driver_override
        ARM: amba: Make driver_override output consistent with other buses
        Revert "ARM: amba: Fix race condition with driver_override"
        ARM: amba: Don't read past the end of sysfs "driver_override" buffer
        ARM: amba: Fix race condition with driver_override
        virt: vbox: Log an error when we fail to get the host version
        virt: vbox: Use __get_free_pages instead of kmalloc for DMA32 memory
        virt: vbox: Add vbg_req_free() helper function
        virt: vbox: Move declarations of vboxguest private functions to private header
        slimbus: Fix out-of-bounds access in slim_slicesize()
        MAINTAINERS: add dri-devel&linaro-mm for Android ION
        fpga-manager: altera-ps-spi: preserve nCONFIG state
        MAINTAINERS: update my email address
        uio_hv_generic: fix subchannel ring mmap
        uio_hv_generic: use correct channel in isr
        uio_hv_generic: make ring buffer attribute for primary channel
        uio_hv_generic: set size of ring buffer attribute
        ANDROID: binder: prevent transactions into own process.
      d8a33273
    • Linus Torvalds's avatar
      Merge tag 'driver-core-4.17-rc3' of... · ee3748be
      Linus Torvalds authored
      Merge tag 'driver-core-4.17-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core
      
      Pull driver core fixes from Greg Kroah-Hartman:
       "Here are some small driver core and firmware fixes for 4.17-rc3
      
        There's a kobject WARN() removal to make syzkaller a lot happier about
        some "normal" error paths that it keeps hitting, which should reduce
        the number of false-positives we have been getting recently.
      
        There's also some fimware test and documentation fixes, and the
        coredump() function signature change that needed to happen after -rc1
        before drivers started to take advantage of it.
      
        All of these have been in linux-next with no reported issues"
      
      * tag 'driver-core-4.17-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core:
        firmware: some documentation fixes
        selftests:firmware: fixes a call to a wrong function name
        kobject: don't use WARN for registration failures
        firmware: Fix firmware documentation for recent file renames
        test_firmware: fix setting old custom fw path back on exit, second try
        test_firmware: Install all scripts
        drivers: change struct device_driver::coredump() return type to void
      ee3748be
    • Linus Torvalds's avatar
      Merge tag 'tty-4.17-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty · b52c85a7
      Linus Torvalds authored
      Pull tty/serial fixes from Greg KH:
       "Here are some tty and serial driver fixes for reported issues for
        4.17-rc3.
      
        Nothing major, but a number of small things:
      
         - device tree fixes/updates for serial ports
      
         - earlycon fixes
      
         - n_gsm fixes
      
         - tty core change reverted to help resolve syszkaller reports
      
         - other serial driver small fixes
      
        All of these have been in linux-next with no reported issues"
      
      * tag 'tty-4.17-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty:
        tty: Use __GFP_NOFAIL for tty_ldisc_get()
        tty: serial: xuartps: Setup early console when uartclk is also passed
        tty: Don't call panic() at tty_ldisc_init()
        tty: Avoid possible error pointer dereference at tty_ldisc_restore().
        dt-bindings: mvebu-uart: DT fix s/interrupts-names/interrupt-names/
        tty: serial: qcom_geni_serial: Use signed variable to get IRQ
        earlycon: Use a pointer table to fix __earlycon_table stride
        serial: sh-sci: Document r8a77470 bindings
        dt-bindings: meson-uart: DT fix s/clocks-names/clock-names/
        serial: imx: fix cached UCR2 read on software reset
        serial: imx: warn user when using unsupported configuration
        serial: mvebu-uart: Fix local flags handling on termios update
        tty: n_gsm: Fix DLCI handling for ADM mode if debug & 2 is not set
        tty: n_gsm: Fix long delays with control frame timeouts in ADM mode
      b52c85a7
    • KarimAllah Ahmed's avatar
      x86/headers/UAPI: Move DISABLE_EXITS KVM capability bits to the UAPI · 5e62493f
      KarimAllah Ahmed authored
      Move DISABLE_EXITS KVM capability bits to the UAPI just like the rest of
      capabilities.
      
      Cc: Paolo Bonzini <pbonzini@redhat.com>
      Cc: Radim Krčmář <rkrcmar@redhat.com>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: Ingo Molnar <mingo@redhat.com>
      Cc: H. Peter Anvin <hpa@zytor.com>
      Cc: x86@kernel.org
      Cc: kvm@vger.kernel.org
      Cc: linux-kernel@vger.kernel.org
      Signed-off-by: default avatarKarimAllah Ahmed <karahmed@amazon.de>
      Signed-off-by: default avatarRadim Krčmář <rkrcmar@redhat.com>
      5e62493f
    • Linus Torvalds's avatar
      Merge tag 'staging-4.17-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging · 79a17dd9
      Linus Torvalds authored
      Pull staging fixes from Greg KH:
       "Here are two staging driver fixups for 4.17-rc3.
      
        The first is the remaining stragglers of the irda code removal that
        you pointed out during the merge window. The second is a fix for the
        wilc1000 driver due to a patch that got merged in 4.17-rc1.
      
        Both of these have been in linux-next for a while with no reported
        issues"
      
      * tag 'staging-4.17-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging:
        staging: wilc1000: fix NULL pointer exception in host_int_parse_assoc_resp_info()
        staging: irda: remove remaining remants of irda code removal
      79a17dd9
    • Linus Torvalds's avatar
      Merge tag 'usb-4.17-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb · 1993cbf0
      Linus Torvalds authored
      Pull USB fixes from Greg KH:
       "Here are a number of USB driver fixes for reported problems for
        4.17-rc3.
      
        The "largest" here is a number of phy core changes for reported
        problems with the -rc1 release. There's also the usual musb and xhci
        fixes, as well as new device id updates. There are also some usbip
        fixes for reported problems as more people start to use that code with
        containers.
      
        All of these have been in linux-next with no reported issues, except
        the last few new device ids, which are "obviously correct" :)"
      
      * tag 'usb-4.17-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb: (26 commits)
        USB: musb: dsps: drop duplicate phy initialisation
        USB: musb: host: prevent core phy initialisation
        usb: core: phy: add the SPDX-License-Identifier and include guard
        xhci: Fix Kernel oops in xhci dbgtty
        usb: select USB_COMMON for usb role switch config
        usb: core: phy: add missing forward declaration for "struct device"
        usb: core: phy: make it a no-op if CONFIG_GENERIC_PHY is disabled
        usb: core: use phy_exit during suspend if wake up is not supported
        usb: core: split usb_phy_roothub_{init,alloc}
        usb: core: phy: fix return value of usb_phy_roothub_exit()
        usb: typec: ucsi: Increase command completion timeout value
        Revert "xhci: plat: Register shutdown for xhci_plat"
        usb: core: Add quirk for HP v222w 16GB Mini
        Documentation: typec.rst: Use literal-block element with ascii art
        usb: typec: ucsi: fix tracepoint related build error
        usbip: usbip_event: fix to not print kernel pointer address
        usbip: usbip_host: fix to hold parent lock for device_attach() calls
        usbip: vhci_hcd: Fix usb device and sockfd leaks
        usbip: vhci_hcd: check rhport before using in vhci_hub_control()
        USB: Increment wakeup count on remote wakeup.
        ...
      1993cbf0
    • Linus Torvalds's avatar
      Merge tag 'sound-4.17-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound · 7ff50002
      Linus Torvalds authored
      Pull sound fixes from Takashi Iwai:
       "A significant amount of fixes have been piled up at this time.
      
         - Possible Spectre v1 coverage in OSS sequencer API, control API,
           HD-audio hwdep ioctl, ASIHPI hwdep ioctl, OPL3, and HDSPM/RME
           channel_info API.
      
         - A regression fix in PCM delay reporting that happened at the code
           refactoring for the set_fs() removal
      
         - The long-standing bug in PCM sync_ptr ioctl that missed the audio
           timestamp field
      
         - USB-audio regression fixes due to the recent UAC2 jack support
      
         - vm_fault_t conversions in a couple of places
      
         - ASoC topology API fixes
      
         - Assorted driver fixes:
            * ASoC rsnd, FSL, Intel SST, DMIC, AMD, ADAU17x1, Realtek codec
            * FireWire typo fix
            * HD-audio quirks and USB-audio Dell fixup
            * USB-audio UAC3 corrections"
      
      * tag 'sound-4.17-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: (35 commits)
        ALSA: dice: fix error path to destroy initialized stream data
        ALSA: hda - Skip jack and others for non-existing PCM streams
        ALSA: hda/realtek - change the location for one of two front mics
        ALSA: rme9652: Hardening for potential Spectre v1
        ALSA: hdspm: Hardening for potential Spectre v1
        ALSA: asihpi: Hardening for potential Spectre v1
        ALSA: opl3: Hardening for potential Spectre v1
        ALSA: hda: Hardening for potential Spectre v1
        ALSA: control: Hardening for potential Spectre v1
        ALSA: seq: oss: Hardening for potential Spectre v1
        ALSA: seq: oss: Fix unbalanced use lock for synth MIDI device
        ALSA: hda/realtek - Update ALC255 depop optimize
        ALSA: hda/realtek - Add some fixes for ALC233
        ALSA: pcm: Change return type to vm_fault_t
        ALSA: usx2y: Change return type to vm_fault_t
        ALSA: usb-audio: ADC3: Fix channel mapping conversion for ADC3.
        ALSA: dice: fix OUI for TC group
        ALSA: usb-audio: Skip broken EU on Dell dock USB-audio
        ALSA: usb-audio: Fix missing endian conversion
        ALSA: usb-audio: Fix forgotten conversion of control query functions
        ...
      7ff50002
    • Linus Torvalds's avatar
      Merge tag 'armsoc-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc · ee7141c9
      Linus Torvalds authored
      Pull ARM SoC fixes from Arnd Bergmann:
       "This round of fixes has two larger changes that came in last week:
      
         - a couple of patches all intended to finally turn on USB support on
           various Amlogic SoC based boards. The respective driver were not
           finalized until very late before the merge window and the DT
           portion is the last bit now.
      
         - a defconfig update for gemini that had repeatedly missed the cut
           but that is required to actually boot any real machines with the
           default build.
      
        The rest are the usual small changes:
      
         - a fix for a nasty build regression on the OMAP memory drivers
      
         - a fix for a boot problem on Intel/Altera SocFPGA
      
         - a MAINTAINER file update
      
         - a couple of fixes for issues found by automated testing (kernelci,
           coverity, sparse, ...)
      
         - a few incorrect DT entries are updated to match the hardware"
      
      * tag 'armsoc-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc:
        ARM: defconfig: Update Gemini defconfig
        ARM: s3c24xx: jive: Fix some GPIO names
        HISI LPC: Add Kconfig MFD_CORE dependency
        ARM: dts: Fix NAS4220B pin config
        MAINTAINERS: Remove myself as maintainer
        arm64: dts: correct SATA addresses for Stingray
        ARM64: dts: meson-gxm-khadas-vim2: enable the USB controller
        ARM64: dts: meson-gxl-nexbox-a95x: enable the USB controller
        ARM64: dts: meson-gxl-s905x-libretech-cc: enable the USB controller
        ARM64: dts: meson-gx-p23x-q20x: enable the USB controller
        ARM64: dts: meson-gxl-s905x-p212: enable the USB controller
        ARM64: dts: meson-gxm: add GXM specific USB host configuration
        ARM64: dts: meson-gxl: add USB host support
        ARM: OMAP2+: Fix build when using split object directories
        soc: bcm2835: Make !RASPBERRYPI_FIRMWARE dummies return failure
        soc: bcm: raspberrypi-power: Fix use of __packed
        ARM: dts: Fix cm2 and prm sizes for omap4
        ARM: socfpga_defconfig: Remove QSPI Sector 4K size force
        firmware: arm_scmi: remove redundant null check on array
        arm64: dts: juno: drop unnecessary address-cells and size-cells properties
      ee7141c9
    • Linus Torvalds's avatar
      Merge tag 'mtd/fixes-for-4.17-rc3' of git://git.infradead.org/linux-mtd · 245131e2
      Linus Torvalds authored
      Pull mtd fixes from Boris Brezillon:
      
       - Fix nanddev_mtd_erase() function to match the changes done in
         e7bfb3fd ("mtd: Stop updating erase_info->state and calling
         mtd_erase_callback()")
      
       - Fix a memory leak in the Tango NAND controller driver
      
       - Fix read/write to a suspended erase block in the CFI driver
      
       - Fix the DT parsing logic in the Marvell NAND controller driver
      
      * tag 'mtd/fixes-for-4.17-rc3' of git://git.infradead.org/linux-mtd:
        mtd: rawnand: marvell: fix the chip-select DT parsing logic
        mtd: cfi: cmdset_0002: Do not allow read/write to suspend erase block.
        mtd: cfi: cmdset_0001: Workaround Micron Erase suspend bug.
        mtd: cfi: cmdset_0001: Do not allow read/write to suspend erase block.
        mtd: spi-nor: cadence-quadspi: Fix page fault kernel panic
        mtd: nand: Fix nanddev_mtd_erase()
        mtd: rawnand: tango: Fix struct clk memory leak
      245131e2
    • Linus Torvalds's avatar
      Merge tag 'drm-fixes-for-v4.17-rc3' of git://people.freedesktop.org/~airlied/linux · 0f940fac
      Linus Torvalds authored
      Pull drm fixes from Dave Airlie:
       "Pretty run of the mill for this stage in the cycle: msm, i915, amdgpu,
        qxl, virtio-gpu, sun4i fixes.
      
        i915:
         - Black screen fixes
         - Display w/a fix
         - HDA codec interop fix
      
        sun4i:
         - tbsa711 tablet regression fix
      
        qxl:
         - Regression fixes due to changes in TTM
      
        virtio:
         - Fix wait event condition
      
        msm:
         - DSI display fixes
      
        amdgpu:
         - fix hang on Carrizo
         - DP MST hang fixes
         - irq handling deadlock in DC.
      
        amdkfd:
         - Fix Kconfig issue
         - Clock retrieval fix
         - Sparse fixes"
      
      * tag 'drm-fixes-for-v4.17-rc3' of git://people.freedesktop.org/~airlied/linux: (27 commits)
        drm/edid: Reset more of the display info
        drm/virtio: fix vq wait_event condition
        qxl: keep separate release_bo pointer
        qxl: fix qxl_release_{map,unmap}
        Revert "drm/sun4i: add lvds mode_valid function"
        drm/amd/display: Check dc_sink every time in MST hotplug
        drm/amd/display: Update MST edid property every time
        drm/amd/display: Don't read EDID in atomic_check
        drm/amd/display: Disallow enabling CRTC without primary plane with FB
        drm/amd/display: Fix deadlock when flushing irq
        drm/i915/fbdev: Enable late fbdev initial configuration
        drm/i915: Use ktime on wait_for
        drm/amdgpu: set COMPUTE_PGM_RSRC1 for SGPR/VGPR clearing shaders
        drm/amdkfd: fix build, select MMU_NOTIFIER
        drm/amdkfd: fix clock counter retrieval for node without GPU
        drm/amdkfd: Fix the error return code in kfd_ioctl_unmap_memory_from_gpu()
        drm/amdkfd: kfd_dev_is_large_bar() can be static
        drm/i915: Enable display WA#1183 from its correct spot
        drm/i915/audio: set minimum CD clock to twice the BCLK
        drm/msm: don't deref error pointer in the msm_fbdev_create error path
        ...
      0f940fac
    • Junaid Shahid's avatar
      kvm: apic: Flush TLB after APIC mode/address change if VPIDs are in use · a468f2db
      Junaid Shahid authored
      Currently, KVM flushes the TLB after a change to the APIC access page
      address or the APIC mode when EPT mode is enabled. However, even in
      shadow paging mode, a TLB flush is needed if VPIDs are being used, as
      specified in the Intel SDM Section 29.4.5.
      
      So replace vmx_flush_tlb_ept_only() with vmx_flush_tlb(), which will
      flush if either EPT or VPIDs are in use.
      Signed-off-by: default avatarJunaid Shahid <junaids@google.com>
      Reviewed-by: default avatarJim Mattson <jmattson@google.com>
      Signed-off-by: default avatarRadim Krčmář <rkrcmar@redhat.com>
      a468f2db
    • Andy Lutomirski's avatar
      x86/entry/64/compat: Preserve r8-r11 in int $0x80 · 8bb2610b
      Andy Lutomirski authored
      32-bit user code that uses int $80 doesn't care about r8-r11.  There is,
      however, some 64-bit user code that intentionally uses int $0x80 to invoke
      32-bit system calls.  From what I've seen, basically all such code assumes
      that r8-r15 are all preserved, but the kernel clobbers r8-r11.  Since I
      doubt that there's any code that depends on int $0x80 zeroing r8-r11,
      change the kernel to preserve them.
      
      I suspect that very little user code is broken by the old clobber, since
      r8-r11 are only rarely allocated by gcc, and they're clobbered by function
      calls, so they only way we'd see a problem is if the same function that
      invokes int $0x80 also spills something important to one of these
      registers.
      
      The current behavior seems to date back to the historical commit
      "[PATCH] x86-64 merge for 2.6.4".  Before that, all regs were
      preserved.  I can't find any explanation of why this change was made.
      
      Update the test_syscall_vdso_32 testcase as well to verify the new
      behavior, and it strengthens the test to make sure that the kernel doesn't
      accidentally permute r8..r15.
      Suggested-by: default avatarDenys Vlasenko <dvlasenk@redhat.com>
      Signed-off-by: default avatarAndy Lutomirski <luto@kernel.org>
      Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
      Cc: Borislav Petkov <bp@alien8.de>
      Cc: Dominik Brodowski <linux@dominikbrodowski.net>
      Link: https://lkml.kernel.org/r/d4c4d9985fbe64f8c9e19291886453914b48caee.1523975710.git.luto@kernel.org
      8bb2610b
    • Arnd Bergmann's avatar
      x86/ipc: Fix x32 version of shmid64_ds and msqid64_ds · 1a512c08
      Arnd Bergmann authored
      A bugfix broke the x32 shmid64_ds and msqid64_ds data structure layout
      (as seen from user space)  a few years ago: Originally, __BITS_PER_LONG
      was defined as 64 on x32, so we did not have padding after the 64-bit
      __kernel_time_t fields, After __BITS_PER_LONG got changed to 32,
      applications would observe extra padding.
      
      In other parts of the uapi headers we seem to have a mix of those
      expecting either 32 or 64 on x32 applications, so we can't easily revert
      the path that broke these two structures.
      
      Instead, this patch decouples x32 from the other architectures and moves
      it back into arch specific headers, partially reverting the even older
      commit 73a2d096 ("x86: remove all now-duplicate header files").
      
      It's not clear whether this ever made any difference, since at least
      glibc carries its own (correct) copy of both of these header files,
      so possibly no application has ever observed the definitions here.
      
      Based on a suggestion from H.J. Lu, I tried out the tool from
      https://github.com/hjl-tools/linux-header to find other such
      bugs, which pointed out the same bug in statfs(), which also has
      a separate (correct) copy in glibc.
      
      Fixes: f4b4aae1 ("x86/headers/uapi: Fix __BITS_PER_LONG value for x32 builds")
      Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
      Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
      Cc: "H . J . Lu" <hjl.tools@gmail.com>
      Cc: Jeffrey Walton <noloader@gmail.com>
      Cc: stable@vger.kernel.org
      Cc: "H. Peter Anvin" <hpa@zytor.com>
      Link: https://lkml.kernel.org/r/20180424212013.3967461-1-arnd@arndb.de
      1a512c08
    • Petr Tesarik's avatar
      x86/setup: Do not reserve a crash kernel region if booted on Xen PV · 3db3eb28
      Petr Tesarik authored
      Xen PV domains cannot shut down and start a crash kernel. Instead,
      the crashing kernel makes a SCHEDOP_shutdown hypercall with the
      reason code SHUTDOWN_crash, cf. xen_crash_shutdown() machine op in
      arch/x86/xen/enlighten_pv.c.
      
      A crash kernel reservation is merely a waste of RAM in this case. It
      may also confuse users of kexec_load(2) and/or kexec_file_load(2).
      When flags include KEXEC_ON_CRASH or KEXEC_FILE_ON_CRASH,
      respectively, these syscalls return success, which is technically
      correct, but the crash kexec image will never be actually used.
      Signed-off-by: default avatarPetr Tesarik <ptesarik@suse.com>
      Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
      Reviewed-by: default avatarJuergen Gross <jgross@suse.com>
      Cc: Tom Lendacky <thomas.lendacky@amd.com>
      Cc: Dou Liyang <douly.fnst@cn.fujitsu.com>
      Cc: Mikulas Patocka <mpatocka@redhat.com>
      Cc: Andy Lutomirski <luto@kernel.org>
      Cc: "H. Peter Anvin" <hpa@zytor.com>
      Cc: xen-devel@lists.xenproject.org
      Cc: Boris Ostrovsky <boris.ostrovsky@oracle.com>
      Cc: Borislav Petkov <bp@suse.de>
      Cc: Jean Delvare <jdelvare@suse.de>
      Link: https://lkml.kernel.org/r/20180425120835.23cef60c@ezekiel.suse.cz
      3db3eb28
    • Baolin Wang's avatar
      i2c: sprd: Fix the i2c count issue · 2a010461
      Baolin Wang authored
      We found the I2C controller count register is unreliable sometimes,
      that will cause I2C to lose data. Thus we can read the data count
      from 'i2c_dev->count' instead of the I2C controller count register.
      Signed-off-by: default avatarBaolin Wang <baolin.wang@linaro.org>
      Signed-off-by: default avatarWolfram Sang <wsa@the-dreams.de>
      2a010461
    • Baolin Wang's avatar
      i2c: sprd: Prevent i2c accesses after suspend is called · da33aa03
      Baolin Wang authored
      Add one flag to indicate if the i2c controller has been in suspend state,
      which can prevent i2c accesses after i2c controller is suspended following
      system suspend.
      Signed-off-by: default avatarBaolin Wang <baolin.wang@linaro.org>
      Signed-off-by: default avatarWolfram Sang <wsa@the-dreams.de>
      da33aa03