1. 09 May, 2018 1 commit
    • Konrad Rzeszutek Wilk's avatar
      x86/bugs: Rename _RDS to _SSBD · 9f65fb29
      Konrad Rzeszutek Wilk authored
      Intel collateral will reference the SSB mitigation bit in IA32_SPEC_CTL[2]
      as SSBD (Speculative Store Bypass Disable).
      
      Hence changing it.
      
      It is unclear yet what the MSR_IA32_ARCH_CAPABILITIES (0x10a) Bit(4) name
      is going to be. Following the rename it would be SSBD_NO but that rolls out
      to Speculative Store Bypass Disable No.
      
      Also fixed the missing space in X86_FEATURE_AMD_SSBD.
      
      [ tglx: Fixup x86_amd_rds_enable() and rds_tif_to_amd_ls_cfg() as well ]
      Signed-off-by: default avatarKonrad Rzeszutek Wilk <konrad.wilk@oracle.com>
      Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
      9f65fb29
  2. 04 May, 2018 6 commits
  3. 03 May, 2018 19 commits
  4. 02 May, 2018 1 commit
    • Thomas Gleixner's avatar
      x86/cpu: Restore CPUID_8000_0008_EBX reload · c65732e4
      Thomas Gleixner authored
      The recent commt which addresses the x86_phys_bits corruption with
      encrypted memory on CPUID reload after a microcode update lost the reload
      of CPUID_8000_0008_EBX as well.
      
      As a consequence IBRS and IBRS_FW are not longer detected
      
      Restore the behaviour by bringing the reload of CPUID_8000_0008_EBX
      back. This restore has a twist due to the convoluted way the cpuid analysis
      works:
      
      CPUID_8000_0008_EBX is used by AMD to enumerate IBRB, IBRS, STIBP. On Intel
      EBX is not used. But the speculation control code sets the AMD bits when
      running on Intel depending on the Intel specific speculation control
      bits. This was done to use the same bits for alternatives.
      
      The change which moved the 8000_0008 evaluation out of get_cpu_cap() broke
      this nasty scheme due to ordering. So that on Intel the store to
      CPUID_8000_0008_EBX clears the IBRB, IBRS, STIBP bits which had been set
      before by software.
      
      So the actual CPUID_8000_0008_EBX needs to go back to the place where it
      was and the phys/virt address space calculation cannot touch it.
      
      In hindsight this should have used completely synthetic bits for IBRB,
      IBRS, STIBP instead of reusing the AMD bits, but that's for 4.18.
      
      /me needs to find time to cleanup that steaming pile of ...
      
      Fixes: d94a155c ("x86/cpu: Prevent cpuinfo_x86::x86_phys_bits adjustment corruption")
      Reported-by: default avatarJörg Otte <jrg.otte@gmail.com>
      Reported-by: default avatarTim Chen <tim.c.chen@linux.intel.com>
      Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
      Tested-by: default avatarJörg Otte <jrg.otte@gmail.com>
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      Cc: kirill.shutemov@linux.intel.com
      Cc: Borislav Petkov <bp@alien8.de
      Link: https://lkml.kernel.org/r/alpine.DEB.2.21.1805021043510.1668@nanos.tec.linutronix.de
      c65732e4
  5. 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
  6. 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
  7. 27 Apr, 2018 1 commit
    • 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