19 Nov, 2018

4 commits

  • Jarkko's e-mail address hasn't worked for a long time. We still want to
    keep this driver working as it is critical for some of the OMAP boards.
    I use and test this driver frequently, so change myself as a maintainer
    with "Odd Fixes" status.

    Link: http://lkml.kernel.org/r/20181106222750.12939-1-aaro.koskinen@iki.fi
    Signed-off-by: Aaro Koskinen
    Acked-by: Tony Lindgren
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Aaro Koskinen
     
  • This bug has been experienced several times by the Oracle DB team. The
    BUG is in remove_inode_hugepages() as follows:

    /*
    * If page is mapped, it was faulted in after being
    * unmapped in caller. Unmap (again) now after taking
    * the fault mutex. The mutex will prevent faults
    * until we finish removing the page.
    *
    * This race can only happen in the hole punch case.
    * Getting here in a truncate operation is a bug.
    */
    if (unlikely(page_mapped(page))) {
    BUG_ON(truncate_op);

    In this case, the elevated map count is not the result of a race.
    Rather it was incorrectly incremented as the result of a bug in the huge
    pmd sharing code. Consider the following:

    - Process A maps a hugetlbfs file of sufficient size and alignment
    (PUD_SIZE) that a pmd page could be shared.

    - Process B maps the same hugetlbfs file with the same size and
    alignment such that a pmd page is shared.

    - Process B then calls mprotect() to change protections for the mapping
    with the shared pmd. As a result, the pmd is 'unshared'.

    - Process B then calls mprotect() again to chage protections for the
    mapping back to their original value. pmd remains unshared.

    - Process B then forks and process C is created. During the fork
    process, we do dup_mm -> dup_mmap -> copy_page_range to copy page
    tables. Copying page tables for hugetlb mappings is done in the
    routine copy_hugetlb_page_range.

    In copy_hugetlb_page_range(), the destination pte is obtained by:

    dst_pte = huge_pte_alloc(dst, addr, sz);

    If pmd sharing is possible, the returned pointer will be to a pte in an
    existing page table. In the situation above, process C could share with
    either process A or process B. Since process A is first in the list,
    the returned pte is a pointer to a pte in process A's page table.

    However, the check for pmd sharing in copy_hugetlb_page_range is:

    /* If the pagetables are shared don't copy or take references */
    if (dst_pte == src_pte)
    continue;

    Since process C is sharing with process A instead of process B, the
    above test fails. The code in copy_hugetlb_page_range which follows
    assumes dst_pte points to a huge_pte_none pte. It copies the pte entry
    from src_pte to dst_pte and increments this map count of the associated
    page. This is how we end up with an elevated map count.

    To solve, check the dst_pte entry for huge_pte_none. If !none, this
    implies PMD sharing so do not copy.

    Link: http://lkml.kernel.org/r/20181105212315.14125-1-mike.kravetz@oracle.com
    Fixes: c5c99429fa57 ("fix hugepages leak due to pagetable page sharing")
    Signed-off-by: Mike Kravetz
    Reviewed-by: Naoya Horiguchi
    Cc: Michal Hocko
    Cc: Hugh Dickins
    Cc: Andrea Arcangeli
    Cc: "Kirill A . Shutemov"
    Cc: Davidlohr Bueso
    Cc: Prakash Sangappa
    Cc:
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Mike Kravetz
     
  • The existing code triggered an invalid warning about 'rq' possibly being
    used uninitialized. Instead of doing the silly warning suppression by
    initializa it to NULL, refactor the code to bail out early instead.

    Warning was:

    kernel/sched/psi.c: In function `cgroup_move_task':
    kernel/sched/psi.c:639:13: warning: `rq' may be used uninitialized in this function [-Wmaybe-uninitialized]

    Link: http://lkml.kernel.org/r/20181103183339.8669-1-olof@lixom.net
    Fixes: 2ce7135adc9ad ("psi: cgroup support")
    Signed-off-by: Olof Johansson
    Reviewed-by: Andrew Morton
    Acked-by: Johannes Weiner
    Cc: Ingo Molnar
    Cc: Peter Zijlstra
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Olof Johansson
     
  • Reclaim and free can race on an object which is basically fine but in
    order for reclaim to be able to map "freed" object we need to encode
    object length in the handle. handle_to_chunks() is then introduced to
    extract object length from a handle and use it during mapping.

    Moreover, to avoid racing on a z3fold "headless" page release, we should
    not try to free that page in z3fold_free() if the reclaim bit is set.
    Also, in the unlikely case of trying to reclaim a page being freed, we
    should not proceed with that page.

    While at it, fix the page accounting in reclaim function.

    This patch supersedes "[PATCH] z3fold: fix reclaim lock-ups".

    Link: http://lkml.kernel.org/r/20181105162225.74e8837d03583a9b707cf559@gmail.com
    Signed-off-by: Vitaly Wool
    Signed-off-by: Jongseok Kim
    Reported-by-by: Jongseok Kim
    Reviewed-by: Snild Dolkow
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Vitaly Wool
     

17 Nov, 2018

7 commits

  • Pull fsnotify fix from Jan Kara:
    "One small fsnotify fix for duplicate events"

    * tag 'fsnotify_for_v4.20-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs:
    fanotify: fix handling of events on child sub-directory

    Linus Torvalds
     
  • Pull bfs2 fixes from Andreas Gruenbacher:
    "Fix two bugs leading to leaked buffer head references:

    - gfs2: Put bitmap buffers in put_super
    - gfs2: Fix iomap buffer head reference counting bug

    And one bug leading to significant slow-downs when deleting large
    files:

    - gfs2: Fix metadata read-ahead during truncate (2)"

    * tag 'gfs2-4.20.fixes3' of git://git.kernel.org/pub/scm/linux/kernel/git/gfs2/linux-gfs2:
    gfs2: Fix iomap buffer head reference counting bug
    gfs2: Fix metadata read-ahead during truncate (2)
    gfs2: Put bitmap buffers in put_super

    Linus Torvalds
     
  • GFS2 passes the inode buffer head (dibh) from gfs2_iomap_begin to
    gfs2_iomap_end in iomap->private. It sets that private pointer in
    gfs2_iomap_get. Users of gfs2_iomap_get other than gfs2_iomap_begin
    would have to release iomap->private, but this isn't done correctly,
    leading to a leak of buffer head references.

    To fix this, move the code for setting iomap->private from
    gfs2_iomap_get to gfs2_iomap_begin.

    Fixes: 64bc06bb32 ("gfs2: iomap buffered write support")
    Cc: stable@vger.kernel.org # v4.19+
    Signed-off-by: Andreas Gruenbacher
    Signed-off-by: Linus Torvalds

    Andreas Gruenbacher
     
  • Pull crypto fixes from Herbert Xu:
    "This fixes the following issues:

    - Potential memory overwrite in simd

    - Kernel info leaks in crypto_user

    - NULL dereference and use-after-free in hisilicon"

    * 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6:
    crypto: user - Zeroize whole structure given to user space
    crypto: user - fix leaking uninitialized memory to userspace
    crypto: simd - correctly take reqsize of wrapped skcipher into account
    crypto: hisilicon - Fix reference after free of memories on error path
    crypto: hisilicon - Fix NULL dereference for same dst and src

    Linus Torvalds
     
  • Pull drm fixes from Dave Airlie:
    "Live from Vancouver, SoC maintainer talk, this weeks drm fixes pull
    for rc3:

    omapdrm:
    - regression fixes for the reordering bridge stuff that went into rc1

    i915:
    - incorrect EU count fix
    - HPD storm fix
    - MST fix
    - relocation fix for gen4/5

    amdgpu:
    - huge page handling fix
    - IH ring setup
    - XGMI aperture setup
    - watermark setup fix

    misc:
    - docs and MST fix"

    * tag 'drm-fixes-2018-11-16' of git://anongit.freedesktop.org/drm/drm: (23 commits)
    drm/i915: Account for scale factor when calculating initial phase
    drm/i915: Clean up skl_program_scaler()
    drm/i915: Move programming plane scaler to its own function.
    drm/i915/icl: Drop spurious register read from icl_dbuf_slices_update
    drm/i915: fix broadwell EU computation
    drm/amdgpu: fix huge page handling on Vega10
    drm/amd/pp: Fix truncated clock value when set watermark
    drm/amdgpu: fix bug with IH ring setup
    drm/meson: venc: dmt mode must use encp
    drm/amdgpu: set system aperture to cover whole FB region
    drm/i915: Fix hpd handling for pins with two encoders
    drm/i915/execlists: Force write serialisation into context image vs execution
    drm/i915/icl: Fix power well 2 wrt. DC-off toggling order
    drm/i915: Fix NULL deref when re-enabling HPD IRQs on systems with MST
    drm/i915: Fix possible race in intel_dp_add_mst_connector()
    drm/i915/ringbuffer: Delay after EMIT_INVALIDATE for gen4/gen5
    drm/omap: dsi: Fix missing of_platform_depopulate()
    drm/omap: Move DISPC runtime PM handling to omapdrm
    drm/omap: dsi: Ensure the device is active during probe
    drm/omap: hdmi4: Ensure the device is active during bind
    ...

    Linus Torvalds
     
  • Pull powerpc fixes from Michael Ellerman:
    "Two weeks worth of fixes since rc1.

    - I broke 16-byte alignment of the stack when we moved PPR into
    pt_regs. Despite being required by the ABI this broke almost
    nothing, we eventually hit it in code where GCC does arithmetic on
    the stack pointer assuming the bottom 4 bits are clear. Fix it by
    padding the in-kernel pt_regs by 8 bytes.

    - A couple of commits fixing minor bugs in the recent SLB rewrite.

    - A build fix related to tracepoints in KVM in some configurations.

    - Our old "IO workarounds" code written for Cell couldn't coexist in
    a kernel that runs on Power9 with the Radix MMU, fix that.

    - Remove the NPU DMA ops, these just printed a warning and should
    never have been called.

    - Suppress an overly chatty message triggered by CPU hotplug in some
    configs.

    - Two small selftest fixes.

    Thanks to: Alistair Popple, Gustavo Romero, Nicholas Piggin, Satheesh
    Rajendran, Scott Wood"

    * tag 'powerpc-4.20-3' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux:
    selftests/powerpc: Adjust wild_bctr to build with old binutils
    powerpc/64: Fix kernel stack 16-byte alignment
    powerpc/numa: Suppress "VPHN is not supported" messages
    selftests/powerpc: Fix wild_bctr test to work on ppc64
    powerpc/io: Fix the IO workarounds code to work with Radix
    powerpc/mm/64s: Fix preempt warning in slb_allocate_kernel()
    KVM: PPC: Move and undef TRACE_INCLUDE_PATH/FILE
    powerpc/mm/64s: Only use slbfee on CPUs that support it
    powerpc/mm/64s: Use PPC_SLBFEE macro
    powerpc/mm/64s: Consolidate SLB assertions
    powerpc/powernv/npu: Remove NPU DMA ops

    Linus Torvalds
     
  • Pull Xtensa fixes from Max Filippov:

    - fix stack alignment for bFLT binaries.

    - fix physical-to-virtual address translation for boot parameters in
    MMUv3 256+256 and 512+512 virtual memory layouts.

    * tag 'xtensa-20181115' of git://github.com/jcmvbkbc/linux-xtensa:
    xtensa: fix boot parameters address translation
    xtensa: make sure bFLT stack is 16 byte aligned

    Linus Torvalds
     

16 Nov, 2018

8 commits

  • Pull block fixes from Jens Axboe:

    - Discard loop fix, caused by integer overflow (Dave)

    - Blacklist of Samsung drive that hangs with power management (Diego)

    - Copy bio priority when cloning it (Hannes)

    - Fix race condition exposed in floppy (me)

    - Fix SCSI queue cleanup regression. While elusive, it caused oopses in
    queue running (Ming)

    - Fix bad string copy in kyber tracing (Omar)

    * tag 'for-linus-20181115' of git://git.kernel.dk/linux-block:
    SCSI: fix queue cleanup race before queue initialization is done
    block: fix 32 bit overflow in __blkdev_issue_discard()
    libata: blacklist SAMSUNG MZ7TD256HAFV-000L9 SSD
    block: copy ioprio in __bio_clone_fast() and bounce
    kyber: fix wrong strlcpy() size in trace_kyber_latency()
    floppy: fix race condition in __floppy_read_block_0()

    Linus Torvalds
     
  • Pull fuse fixes from Miklos Szeredi:
    "A couple of fixes, all bound for -stable (i.e. not regressions in this
    cycle)"

    * tag 'fuse-fixes-4.20-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/fuse:
    fuse: fix use-after-free in fuse_direct_IO()
    fuse: fix possibly missed wake-up after abort
    fuse: fix leaked notify reply

    Linus Torvalds
     
  • - Fix Bugzilla #108712: Fix incorrect EU count report from kernel
    - Fix to account for scale factor when calculating initial phase on scaled output
    - Avoid too trigger-happy HPD storm detection and fix a race and an OOPS for MST systems.
    - Relocation race fix for Gen4/5
    - A couple ICL fixes and dependencies for above Fixes:.

    Signed-off-by: Dave Airlie
    From: Joonas Lahtinen
    Link: https://patchwork.freedesktop.org/patch/msgid/20181115164709.GA13430@jlahtine-desk.ger.corp.intel.com

    Dave Airlie
     
  • Pull SELinux fixes from Paul Moore:
    "Two small SELinux fixes for v4.20.

    Ondrej's patch adds a check on user input, and my patch ensures we
    don't look past the end of a buffer.

    Both patches are quite small and pass the selinux-testsuite"

    * tag 'selinux-pr-20181115' of git://git.kernel.org/pub/scm/linux/kernel/git/pcmoore/selinux:
    selinux: fix non-MLS handling in mls_context_to_sid()
    selinux: check length properly in SCTP bind hook

    Linus Torvalds
     
  • Pull pin control fixes from Linus Walleij:

    - A bunch of fixes for the Allwinner meson platform

    - Establish a git repo for Intel pin control in MAINTAINERS

    * tag 'pinctrl-v4.20-2' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl:
    MAINTAINERS: Add tree link for Intel pin control driver
    pinctrl: meson: fix meson8b ao pull register bits
    pinctrl: meson: fix meson8 ao pull register bits
    pinctrl: meson: fix gxl ao pull register bits
    pinctrl: meson: fix gxbb ao pull register bits
    pinctrl: meson: fix pinconf bias disable

    Linus Torvalds
     
  • Pull NFS client bugfixes from Trond Myklebust:
    "Highlights include:

    Stable fixes:

    - Don't exit the NFSv4 state manager without clearing
    NFS4CLNT_MANAGER_RUNNING

    Bugfixes:

    - Fix an Oops when destroying the RPCSEC_GSS credential cache

    - Fix an Oops during delegation callbacks

    - Ensure that the NFSv4 state manager exits the loop on SIGKILL

    - Fix a bogus get/put in generic_key_to_expire()"

    * tag 'nfs-for-4.20-3' of git://git.linux-nfs.org/projects/trondmy/linux-nfs:
    NFSv4: Fix an Oops during delegation callbacks
    SUNRPC: Fix a bogus get/put in generic_key_to_expire()
    SUNRPC: Fix a Oops when destroying the RPCSEC_GSS credential cache
    NFSv4: Ensure that the state manager exits the loop on SIGKILL
    NFSv4: Don't exit the state manager without clearing NFS4CLNT_MANAGER_RUNNING

    Linus Torvalds
     
  • Fixes for 4.20:
    - Fix for huge page handling that caused a GPUVM fault in some cases
    - Fix IH ring setup
    - Fix for xgmi aperture setup
    - Fix for watermark setup for SMU

    Signed-off-by: Dave Airlie
    From: Alex Deucher
    Link: https://patchwork.freedesktop.org/patch/msgid/20181114171853.2866-1-alexander.deucher@amd.com

    Dave Airlie
     
  • Cross-subsystem:
    - omap: Instantiate dss children in omapdss instead of mach (Laurent)

    Other:
    - htmldocs build warning (Sean)
    - MST NULL deref fix (Stanislav)
    - omap: Various runtime ref gets on probe/bind (Laurent)
    - omap: Fix to the above dss children patch (Tony)

    Cc: Sean Paul
    Cc: Stanislav Lisovskiy
    Cc: Laurent Pinchart
    Cc: Tony Lindgren
    Signed-off-by: Dave Airlie
    From: Sean Paul
    Link: https://patchwork.freedesktop.org/patch/msgid/20181114204542.GA52569@art_vandelay

    Dave Airlie
     

15 Nov, 2018

17 commits

  • Currently the selftest wild_bctr can fail to build when an old gcc is
    used, notably on gcc using a binutils version
    [mpe: Wrap long line]
    Signed-off-by: Michael Ellerman

    Gustavo Romero
     
  • To get the initial phase correct we need to account for the scale
    factor as well. I forgot this initially and was mostly looking at
    heavily upscaled content where the minor difference between -0.5
    and the proper initial phase was not readily apparent.

    And let's toss in a comment that tries to explain the formula
    a little bit.

    v2: The initial phase upper limit is 1.5, not 24.0!

    Cc: Maarten Lankhorst
    Fixes: 0a59952b24e2 ("drm/i915: Configure SKL+ scaler initial phase correctly")
    Signed-off-by: Ville Syrjälä
    Link: https://patchwork.freedesktop.org/patch/msgid/20181029181820.21956-1-ville.syrjala@linux.intel.com
    Tested-by: Juha-Pekka Heikkila
    Tested-by: Maarten Lankhorst #irc
    Reviewed-by: Maarten Lankhorst #irc
    (cherry picked from commit e7a278a329dd8aa2c70c564849f164cb5673689c)
    Signed-off-by: Joonas Lahtinen

    Ville Syrjälä
     
  • Remove the "sizes are 0 based" stuff that is not even true for the
    scaler.

    v2: Rebase

    Signed-off-by: Ville Syrjälä
    Link: https://patchwork.freedesktop.org/patch/msgid/20181101151736.20522-1-ville.syrjala@linux.intel.com
    Reviewed-by: Rodrigo Vivi
    (cherry picked from commit d0105af939769393d6447a04cee2d1ae12e3f09a)
    Signed-off-by: Joonas Lahtinen

    Ville Syrjälä
     
  • This cleans the code up slightly, and will make other changes easier.

    Signed-off-by: Maarten Lankhorst
    Reviewed-by: Matt Roper
    Link: https://patchwork.freedesktop.org/patch/msgid/20180920102711.4184-8-maarten.lankhorst@linux.intel.com
    (cherry picked from commit ab5c60bf76755d24ae8de5c1c6ac594934656ace)
    Signed-off-by: Joonas Lahtinen

    Maarten Lankhorst
     
  • Commit 4c2de74cc869 ("powerpc/64: Interrupts save PPR on stack rather
    than thread_struct") changed sizeof(struct pt_regs) % 16 from 0 to 8,
    which causes the interrupt frame allocation on kernel entry to put the
    kernel stack out of alignment.

    Quadword (16-byte) alignment for the stack is required by both the
    64-bit v1 ABI (v1.9 § 3.2.2) and the 64-bit v2 ABI (v1.1 § 2.2.2.1).

    Add a pad field to fix alignment, and add a BUILD_BUG_ON to catch this
    in future.

    Fixes: 4c2de74cc869 ("powerpc/64: Interrupts save PPR on stack rather than thread_struct")
    Signed-off-by: Nicholas Piggin
    Signed-off-by: Michael Ellerman

    Nicholas Piggin
     
  • …l/git/palmer/riscv-linux

    Pull RISC-V fixes from Palmer Dabbelt:
    "This contains a few patches that fix various issues in the RISC-V
    port:

    - enable printk timestamps in the RISC-V defconfig.

    - a whitespace fix to "struct pt_regs".

    - add a "vdso_install" target for RISC-V.

    - a pair of build fixes: one to fix a typo in our makefile, and one
    to clean up some warnings.

    There will probably be more patches from us for 4.20, but I don't have
    anything that's ready to go right now so I'm going to hold off a bit.

    Right now the only concrete thing I know I want to make sure gets
    sorted out is our 32-bit stat interface, which I don't want sitting in
    limbo for another cycle as we have to get RV32I glibc sone"

    * tag 'riscv-for-linus-4.20-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/palmer/riscv-linux:
    RISC-V: Silence some module warnings on 32-bit
    RISC-V: lib: Fix build error for 64-bit
    riscv: add missing vdso_install target
    riscv: fix spacing in struct pt_regs
    RISC-V: defconfig: Enable printk timestamps

    Linus Torvalds
     
  • Pull kgdb fixes from Daniel Thompson:
    "The most important changes here are two fixes for kdb regressions
    causes by the hashing of %p pointers together with a fix for a
    potential overflow in kdb tab completion handling (and warning fix).

    Also included are a set of changes in preparation to (eventually)
    enable -Wimplicit-fallthrough"

    * tag 'kgdb-fixes-4.20-rc3' of https://git.linaro.org/people/daniel.thompson/linux:
    kdb: kdb_support: mark expected switch fall-throughs
    kdb: kdb_keyboard: mark expected switch fall-throughs
    kdb: kdb_main: refactor code in kdb_md_line
    kdb: Use strscpy with destination buffer size
    kdb: print real address of pointers instead of hashed addresses
    kdb: use correct pointer when 'btc' calls 'btt'

    Linus Torvalds
     
  • …jmorris/linux-security

    Pull integrity fix from James Morris:
    "Fix a bug introduced with in this merge window in 82f94f24475c ("KEYS:
    Provide software public key query function [ver #2]")"

    * 'fixes-v4.20-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security:
    integrity: support new struct public_key_signature encoding field

    Linus Torvalds
     
  • Pull ACPI fix from Rafael Wysocki:
    "Fix a recently introduced build issue in the xpower PMIC driver (Arnd
    Bergmann)"

    * tag 'acpi-4.20-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
    ACPI / PMIC: xpower: fix IOSF_MBI dependency

    Linus Torvalds
     
  • Pull power management fixes from Rafael Wysocki:
    "These remove a stale DT entry left behind after recent removal of a
    cpufreq driver without users, fix up error handling in the imx6q
    cpufreq driver, fix two issues in the cpufreq documentation, and
    update the ARM cpufreq driver.

    Specifics:

    - Drop stale DT binding for the arm_big_little_dt driver removed
    recently (Sudeep Holla).

    - Fix up error handling in the imx6q cpufreq driver to make it report
    voltage scaling failures (Anson Huang).

    - Fix two issues in the cpufreq documentation (Viresh Kumar, Zhao Wei
    Liew).

    - Fix ARM cpuidle driver initialization regression from the 4.19 time
    frame and rework the driver registration part of it to simplify
    code (Ulf Hansson)"

    * tag 'pm-4.20-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
    ARM: cpuidle: Convert to use cpuidle_register|unregister()
    ARM: cpuidle: Don't register the driver when back-end init returns -ENXIO
    dt-bindings: cpufreq: remove stale arm_big_little_dt entry
    Documentation: cpufreq: Correct a typo
    cpufreq: imx6q: add return value check for voltage scale
    Documentation: cpu-freq: Frequencies aren't always sorted

    Linus Torvalds
     
  • Pull nfsd fixes from Bruce Fields:
    "Three nfsd bugfixes.

    None are new bugs, but they all take a little effort to hit, which
    might explain why they weren't found sooner"

    * tag 'nfsd-4.20-1' of git://linux-nfs.org/~bfields/linux:
    SUNRPC: drop pointless static qualifier in xdr_get_next_encode_buffer()
    nfsd: COPY and CLONE operations require the saved filehandle to be set
    sunrpc: correct the computation for page_ptr when truncating

    Linus Torvalds
     
  • Pull PCI fix from Bjorn Helgaas:
    "Revert a _PXM change that causes silent early boot failure on some AMD
    ThreadRipper systems"

    * tag 'pci-v4.20-fixes-1' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci:
    Revert "ACPI/PCI: Pay attention to device-specific _PXM node values"

    Linus Torvalds
     
  • Pull SCSI fixes from James Bottomley:
    "This is mostly a set of minor and obvious fixes (three in one of the
    new drivers).

    The only substantial change is to move the ufs to the blk-mq now that
    the merge window fixed the suspend/resume issues with blk-mq"

    * tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi:
    scsi: qla2xxx: Initialize port speed to avoid setting lower speed
    Revert "scsi: ufs: Disable blk-mq for now"
    scsi: NCR5380: Return false instead of NULL
    scsi: qla2xxx: Fix a typo in MODULE_PARM_DESC
    scsi: hisi_sas: Remove set but not used variable 'dq_list'
    scsi: myrs: only build on little-endian platforms
    scsi: myrs: avoid stack overflow warning
    scsi: lpfc: fix remoteport access
    scsi: myrb: fix sprintf buffer overflow warning
    scsi: target/core: Avoid that a kernel oops is triggered when COMPARE AND WRITE fails

    Linus Torvalds
     
  • Pull RTC driver fixes from Alexandre Belloni:

    - cmos: stop exporting alarms when not supported

    - hctosys: correctly report range error

    - pcf2127: fix a memory leak

    * tag 'rtc-4.20-2' of git://git.kernel.org/pub/scm/linux/kernel/git/abelloni/linux:
    rtc: pcf2127: fix a kmemleak caused in pcf2127_i2c_gather_write
    rtc: hctosys: Add missing range error reporting
    rtc: cmos: Do not export alarm rtc_ops when we do not support alarms

    Linus Torvalds
     
  • Pull namespace fix from Eric Biederman:
    "Benjamin Coddington noticed an unkillable busy loop in the kernel that
    anyone who is sufficiently motivated can trigger. This bug did not
    exist in earlier kernels making this bug a regression.

    I have tested the change personally and confirmed that the bug exists
    and that the fix works. This fix has been picked up by linux-next and
    hopefully the automated testing bots and no problems have been
    reported from those sources.

    Ordinarily I would let something like this sit a little longer but I
    am going to be away at Linux Plumbers the rest of this week and I am
    afraid if I don't send the pull request now this fix will get lost"

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace:
    mnt: fix __detach_mounts infinite loop

    Linus Torvalds
     
  • Pull parisc fix from Helge Deller:
    "Revert one patch which changed how spinlocks get released. It breaks
    the rwlock implementation in glibc"

    * 'parisc-4.20-3' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux:
    parisc: Revert "Release spinlocks using ordered store"

    Linus Torvalds
     
  • Pull ARM fix from Russell King:
    "It was noticed that one of Julien's patches contained an error, this
    fixes that up"

    * 'spectre' of git://git.armlinux.org.uk/~rmk/linux-arm:
    ARM: 8810/1: vfp: Fix wrong assignement to ufp_exc

    Linus Torvalds
     

14 Nov, 2018

4 commits

  • c2856ae2f315d ("blk-mq: quiesce queue before freeing queue") has
    already fixed this race, however the implied synchronize_rcu()
    in blk_mq_quiesce_queue() can slow down LUN probe a lot, so caused
    performance regression.

    Then 1311326cf4755c7 ("blk-mq: avoid to synchronize rcu inside blk_cleanup_queue()")
    tried to quiesce queue for avoiding unnecessary synchronize_rcu()
    only when queue initialization is done, because it is usual to see
    lots of inexistent LUNs which need to be probed.

    However, turns out it isn't safe to quiesce queue only when queue
    initialization is done. Because when one SCSI command is completed,
    the user of sending command can be waken up immediately, then the
    scsi device may be removed, meantime the run queue in scsi_end_request()
    is still in-progress, so kernel panic can be caused.

    In Red Hat QE lab, there are several reports about this kind of kernel
    panic triggered during kernel booting.

    This patch tries to address the issue by grabing one queue usage
    counter during freeing one request and the following run queue.

    Fixes: 1311326cf4755c7 ("blk-mq: avoid to synchronize rcu inside blk_cleanup_queue()")
    Cc: Andrew Jones
    Cc: Bart Van Assche
    Cc: linux-scsi@vger.kernel.org
    Cc: Martin K. Petersen
    Cc: Christoph Hellwig
    Cc: James E.J. Bottomley
    Cc: stable
    Cc: jianchao.wang
    Signed-off-by: Ming Lei
    Signed-off-by: Jens Axboe

    Ming Lei
     
  • A discard cleanup merged into 4.20-rc2 causes fstests xfs/259 to
    fall into an endless loop in the discard code. The test is creating
    a device that is exactly 2^32 sectors in size to test mkfs boundary
    conditions around the 32 bit sector overflow region.

    mkfs issues a discard for the entire device size by default, and
    hence this throws a sector count of 2^32 into
    blkdev_issue_discard(). It takes the number of sectors to discard as
    a sector_t - a 64 bit value.

    The commit ba5d73851e71 ("block: cleanup __blkdev_issue_discard")
    takes this sector count and casts it to a 32 bit value before
    comapring it against the maximum allowed discard size the device
    has. This truncates away the upper 32 bits, and so if the lower 32
    bits of the sector count is zero, it starts issuing discards of
    length 0. This causes the code to fall into an endless loop, issuing
    a zero length discards over and over again on the same sector.

    Fixes: ba5d73851e71 ("block: cleanup __blkdev_issue_discard")
    Tested-by: Darrick J. Wong
    Reviewed-by: Darrick J. Wong
    Signed-off-by: Dave Chinner

    Killed pointless WARN_ON().

    Signed-off-by: Jens Axboe

    Dave Chinner
     
  • Register DBUF_CTL_S2 is read and it's value is not used. As
    there is no explanation why we should prime the hardware with
    read, remove it as spurious.

    Fixes: aa9664ffe863 ("drm/i915/icl: Enable 2nd DBuf slice only when needed")
    Cc: Mahesh Kumar
    Cc: Rodrigo Vivi
    Signed-off-by: Mika Kuoppala
    Reviewed-by: Imre Deak
    Link: https://patchwork.freedesktop.org/patch/msgid/20181109140924.2663-1-mika.kuoppala@linux.intel.com
    (cherry picked from commit 8577c319b6511fbc391f3775225fecd8b979bc26)
    Signed-off-by: Joonas Lahtinen

    Mika Kuoppala
     
  • subslice_mask is an array indexed by slice, not subslice.

    Signed-off-by: Lionel Landwerlin
    Fixes: 8cc7669355136f ("drm/i915: store all subslice masks")
    Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=108712
    Reviewed-by: Chris Wilson
    Reviewed-by: Tvrtko Ursulin
    Link: https://patchwork.freedesktop.org/patch/msgid/20181112123931.2815-1-lionel.g.landwerlin@intel.com
    (cherry picked from commit 63ac3328f0d1d37f286e397b14d9596ed09d7ca5)
    Signed-off-by: Joonas Lahtinen

    Lionel Landwerlin