1. 10 4月, 2018 4 次提交
    • L
      x86/apic: Fix signedness bug in APIC ID validity checks · a774635d
      Li RongQing 提交于
      The APIC ID as parsed from ACPI MADT is validity checked with the
      apic->apic_id_valid() callback, which depends on the selected APIC type.
      
      For non X2APIC types APIC IDs >= 0xFF are invalid, but values > 0x7FFFFFFF
      are detected as valid. This happens because the 'apicid' argument of the
      apic_id_valid() callback is type 'int'. So the resulting comparison
      
         apicid < 0xFF
      
      evaluates to true for all unsigned int values > 0x7FFFFFFF which are handed
      to default_apic_id_valid(). As a consequence, invalid APIC IDs in !X2APIC
      mode are considered valid and accounted as possible CPUs.
      
      Change the apicid argument type of the apic_id_valid() callback to u32 so
      the evaluation is unsigned and returns the correct result.
      
      [ tglx: Massaged changelog ]
      Signed-off-by: NLi RongQing <lirongqing@baidu.com>
      Signed-off-by: NThomas Gleixner <tglx@linutronix.de>
      Cc: stable@vger.kernel.org
      Cc: jgross@suse.com
      Cc: Dou Liyang <douly.fnst@cn.fujitsu.com>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: hpa@zytor.com
      Link: https://lkml.kernel.org/r/1523322966-10296-1-git-send-email-lirongqing@baidu.com
      a774635d
    • K
      x86/cpu: Prevent cpuinfo_x86::x86_phys_bits adjustment corruption · d94a155c
      Kirill A. Shutemov 提交于
      Some features (Intel MKTME, AMD SME) reduce the number of effectively
      available physical address bits. cpuinfo_x86::x86_phys_bits is adjusted
      accordingly during the early cpu feature detection.
      
      Though if get_cpu_cap() is called later again then this adjustement is
      overwritten. That happens in setup_pku(), which is called after
      detect_tme().
      
      To address this, extract the address sizes enumeration into a separate
      function, which is only called only from early_identify_cpu() and from
      generic_identify().
      
      This makes get_cpu_cap() safe to be called later during boot proccess
      without overwriting cpuinfo_x86::x86_phys_bits.
      
      [ tglx: Massaged changelog ]
      
      Fixes: cb06d8e3 ("x86/tme: Detect if TME and MKTME is activated by BIOS")
      Reported-by: NKai Huang <kai.huang@linux.intel.com>
      Signed-off-by: NKirill A. Shutemov <kirill.shutemov@linux.intel.com>
      Signed-off-by: NThomas Gleixner <tglx@linutronix.de>
      Cc: Tom Lendacky <thomas.lendacky@amd.com>
      Cc: Dave Hansen <dave.hansen@intel.com>
      Cc: linux-mm@kvack.org
      Cc: "H. Peter Anvin" <hpa@zytor.com>
      Link: https://lkml.kernel.org/r/20180410092704.41106-1-kirill.shutemov@linux.intel.com
      d94a155c
    • A
      x86/olpc: Fix inconsistent MFD_CS5535 configuration · 92e830f2
      Arnd Bergmann 提交于
      This Kconfig warning appeared after a fix to the Kconfig validation.
      The GPIO_CS5535 driver depends on the MFD_CS5535 driver, but the former
      is selected in places where the latter is not:
      
      WARNING: unmet direct dependencies detected for GPIO_CS5535
        Depends on [m]: GPIOLIB [=y] && (X86 [=y] || MIPS || COMPILE_TEST [=y]) && MFD_CS5535 [=m]
        Selected by [y]:
        - OLPC_XO1_SCI [=y] && X86_32 [=y] && OLPC [=y] && OLPC_XO1_PM [=y] && INPUT [=y]=y
      
      The warning does seem appropriate, since the GPIO_CS5535 driver won't
      work unless MFD_CS5535 is also present. However, there is no link time
      dependency between the two, so this caused no problems during randconfig
      testing before.
      
      This changes the 'select GPIO_CS5535' to 'depends on GPIO_CS5535' to
      avoid the issue, at the expense of making it harder to configure the
      driver (one now has to select the dependencies first).
      
      The 'select MFD_CORE' part is completely redundant, since we already
      depend on MFD_CS5535 here, so I'm removing that as well.
      
      Ideally, the private symbols exported by that cs5535 gpio driver would
      just be converted to gpiolib interfaces so we could expletely avoid
      this dependency.
      Signed-off-by: NArnd Bergmann <arnd@arndb.de>
      Acked-by: NThomas Gleixner <tglx@linutronix.de>
      Cc: Andrew Morton <akpm@linux-foundation.org>
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      Cc: Masahiro Yamada <yamada.masahiro@socionext.com>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: linux-kbuild@vger.kernel.org
      Fixes: f622f827 ("kconfig: warn unmet direct dependency of tristate symbols selected by y")
      Link: http://lkml.kernel.org/r/20180404124539.3817101-1-arnd@arndb.deSigned-off-by: NIngo Molnar <mingo@kernel.org>
      92e830f2
    • C
      swiotlb: Use dma_direct_supported() for swiotlb_ops · 66bdb147
      Christoph Hellwig 提交于
      swiotlb_alloc() calls dma_direct_alloc(), which can satisfy lower than 32-bit
      DMA mask requests using GFP_DMA if the architecture supports it.  Various
      x86 drivers rely on that, so we need to support that.  At the same time
      the whole kernel expects a 32-bit DMA mask to just work, so the other magic
      in swiotlb_dma_supported() isn't actually needed either.
      Reported-by: NDominik Brodowski <linux@dominikbrodowski.net>
      Signed-off-by: NChristoph Hellwig <hch@lst.de>
      Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: iommu@lists.linux-foundation.org
      Fixes: 6e4bf586 ("x86/dma: Use generic swiotlb_ops")
      Link: http://lkml.kernel.org/r/20180409091517.6619-2-hch@lst.deSigned-off-by: NIngo Molnar <mingo@kernel.org>
      66bdb147
  2. 03 4月, 2018 1 次提交
  3. 08 3月, 2018 9 次提交
    • R
      x86/cpuid: Switch to 'static const' specifier · 52586b08
      Ralf Ramsauer 提交于
      This is the only spot where the 'const static' specifier is used;
      everywhere else 'static const' is preferred, as static should be the
      first specifier.
      
      This is just a cosmetic fix that aligns this, no functional change.
      Signed-off-by: NRalf Ramsauer <ralf.ramsauer@oth-regensburg.de>
      Signed-off-by: NThomas Gleixner <tglx@linutronix.de>
      Cc: Andi Kleen <ak@linux.intel.com>
      Cc: Gayatri Kammela <gayatri.kammela@intel.com>
      Link: https://lkml.kernel.org/r/20180307160734.6691-1-ralf.ramsauer@oth-regensburg.de
      52586b08
    • L
      Merge tag 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost · 1b88accf
      Linus Torvalds 提交于
      Pull virtio bugfix from Michael Tsirkin:
       "A bugfix for error handling in virtio"
      
      * tag 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost:
        virtio_ring: fix num_free handling in error case
      1b88accf
    • L
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input · 851710a8
      Linus Torvalds 提交于
      Pull input fixes from Dmitry Torokhov:
      
       - we are reverting patch that was switched touchpad on Lenovo T460P
         over to native RMI because on these boxes BIOS messes up with SMBus
         controller state. We might re-enable it later once SMBus issue is
         resolved
      
       - disabling interrupts in matrix_keypad driver was racy
      
       - mms114 now has SPDX header and matching MODULE_LICENSE
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input:
        Revert "Input: synaptics - Lenovo Thinkpad T460p devices should use RMI"
        Input: matrix_keypad - fix race when disabling interrupts
        Input: mms114 - add SPDX identifier
        Input: mms114 - fix license module information
      851710a8
    • A
      Revert "Input: synaptics - Lenovo Thinkpad T460p devices should use RMI" · 5444a992
      Arkadiusz Hiler 提交于
      This reverts commit 48282969 which
      caused the following issues:
      
      1. On T460p with BIOS version 2.22 touchpad and trackpoint stop working
      after suspend-resume cycle. Due to strange state of the device another
      suspend is impossible.
      
      The following dmesg errors can be observed:
      thinkpad_acpi: EC reports that Thermal Table has changed
      rmi4_smbus 7-002c: failed to get SMBus version number!
      rmi4_physical rmi4-00: rmi_driver_reset_handler: Failed to read current IRQ mask.
      rmi4_f01 rmi4-00.fn01: Failed to restore normal operation: -16.
      rmi4_f01 rmi4-00.fn01: Resume failed with code -16.
      rmi4_physical rmi4-00: Failed to suspend functions: -16
      rmi4_smbus 7-002c: Failed to resume device: -16
      PM: resume devices took 0.640 seconds
      rmi4_f03 rmi4-00.fn03: rmi_f03_pt_write: Failed to write to F03 TX register (-16).
      rmi4_physical rmi4-00: rmi_driver_clear_irq_bits: Failed to change enabled interrupts!
      rmi4_physical rmi4-00: rmi_driver_set_irq_bits: Failed to change enabled interrupts!
      psmouse: probe of serio3 failed with error -1
      
      2. On another T460p with BIOS version 2.15 two finger scrolling gesture
      on the touchpad stops working after suspend-resume cycle (about 75%
      reproducibility, when it still works, the scrolling gesture becomes
      laggy). Nothing suspicious appears in the dmesg.
      
      Analysis form Richard Schütz:
      
      "RMI is unreliable on the ThinkPad T460p because the device is affected
      by the firmware behavior addressed in a7ae8195 ("i2c: i801: Allow
      ACPI SystemIO OpRegion to conflict with PCI BAR")."
      
      The affected devices often show:
      
      i801_smbus 0000:00:1f.4: BIOS is accessing SMBus registers
      i801_smbus 0000:00:1f.4: Driver SMBus register access inhibited
      Reported-by: NRichard Schütz <rschuetz@uni-koblenz.de>
      Signed-off-by: NArkadiusz Hiler <arkadiusz.hiler@intel.com>
      Tested-by: NMartin Peres <martin.peres@linux.intel.com>
      Tested-by: NArkadiusz Hiler <arkadiusz.hiler@intel.com>
      Cc: stable@vger.kernel.org
      Signed-off-by: NDmitry Torokhov <dmitry.torokhov@gmail.com>
      5444a992
    • L
      Merge tag 'gfs2-4.16.rc4.fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/gfs2/linux-gfs2 · ea9b5ee3
      Linus Torvalds 提交于
      Pull gfs2 fix from Bob Peterson:
       "An additional patch from Andreas Gruenbacher that fixes another
        unfortunate GFS2 regression"
      
      * tag 'gfs2-4.16.rc4.fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/gfs2/linux-gfs2:
        gfs2: Fixes to "Implement iomap for block_map" (2)
      ea9b5ee3
    • L
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux · 69f39c57
      Linus Torvalds 提交于
      Pull s390 fixes from Martin Schwidefsky:
       "Nine bug fixes for s390:
      
         - Three fixes for the expoline code, one of them is strictly speaking
           a cleanup but as it relates to code added with 4.16 I would like to
           include the patch.
      
         - Three timer related fixes in the common I/O layer
      
         - A fix for the handling of internal DASD request which could cause
           panics.
      
         - One correction in regard to the accounting of pud page tables vs.
           compat tasks.
      
         - The register scrubbing in entry.S caused spurious crashes, this is
           fixed now as well"
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux:
        s390/entry.S: fix spurious zeroing of r0
        s390: Fix runtime warning about negative pgtables_bytes
        s390: do not bypass BPENTER for interrupt system calls
        s390/cio: clear timer when terminating driver I/O
        s390/cio: fix return code after missing interrupt
        s390/cio: fix ccw_device_start_timeout API
        s390/clean-up: use CFI_* macros in entry.S
        s390: Replace IS_ENABLED(EXPOLINE_*) with IS_ENABLED(CONFIG_EXPOLINE_*)
        s390/dasd: fix handling of internal requests
      69f39c57
    • L
      Merge tag 'regulator-fix-v4.16-rc4' of... · b910a918
      Linus Torvalds 提交于
      Merge tag 'regulator-fix-v4.16-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator
      
      Pull regulator fixes from Mark Brown:
       "A couple of fixes here:
      
         - another half of the supend to idle fix from Geert that went in
           earlier, both he and I are confused as to why he didn't notice that
           this was missing when his earlier fix was merged.
      
         - a simple fix for a test done the wrong way round in the
           stm32-vrefbuf driver"
      
      * tag 'regulator-fix-v4.16-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator:
        regulator: Fix resume from suspend to idle
        regulator: stm32-vrefbuf: fix check on ready flag
      b910a918
    • L
      Merge tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi · be75b1b8
      Linus Torvalds 提交于
      Pull SCSI fixes from James Bottomley:
       "This is mostly fixes for driver specific issues (nine of them) and the
        storvsc performance improvement with interrupt handling which was
        dropped from the previous fixes pull request.
      
        We also have two regressions: one is a double call_rcu() in ATA error
        handling and the other is a missed conversion to BLK_STS_OK in
        __scsi_error_from_host_byte()"
      
      * tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi:
        scsi: qedi: Fix kernel crash during port toggle
        scsi: qla2xxx: Fix FC-NVMe LUN discovery
        scsi: core: return BLK_STS_OK for DID_OK in __scsi_error_from_host_byte()
        scsi: core: Avoid that ATA error handling can trigger a kernel hang or oops
        scsi: qla2xxx: ensure async flags are reset correctly
        scsi: qla2xxx: do not check login_state if no loop id is assigned
        scsi: qla2xxx: Fixup locking for session deletion
        scsi: qla2xxx: Fix NULL pointer crash due to active timer for ABTS
        scsi: mpt3sas: wait for and flush running commands on shutdown/unload
        scsi: mpt3sas: fix oops in error handlers after shutdown/unload
        scsi: storvsc: Spread interrupts when picking a channel for I/O requests
        scsi: megaraid_sas: Do not use 32-bit atomic request descriptor for Ventura controllers
      be75b1b8
    • A
      gfs2: Fixes to "Implement iomap for block_map" (2) · 3b5da96e
      Andreas Gruenbacher 提交于
      It turns out that commit 3229c18c0d6b2 'Fixes to "Implement iomap for
      block_map"' introduced another bug in gfs2_iomap_begin that can cause
      gfs2_block_map to set bh->b_size of an actual buffer to 0.  This can
      lead to arbitrary incorrect behavior including crashes or disk
      corruption.  Revert the incorrect part of that commit.
      Signed-off-by: NAndreas Gruenbacher <agruenba@redhat.com>
      Signed-off-by: NBob Peterson <rpeterso@redhat.com>
      3b5da96e
  4. 07 3月, 2018 2 次提交
  5. 06 3月, 2018 11 次提交
  6. 05 3月, 2018 13 次提交