1. 02 Mar, 2023 5 commits
    • Al Viro's avatar
      alpha: fix livelock in uaccess · dce45493
      Al Viro authored
      alpha equivalent of 26178ec1 "x86: mm: consolidate VM_FAULT_RETRY handling"
      If e.g. get_user() triggers a page fault and a fatal signal is caught, we might
      end up with handle_mm_fault() returning VM_FAULT_RETRY and not doing anything
      to page tables.  In such case we must *not* return to the faulting insn -
      that would repeat the entire thing without making any progress; what we need
      instead is to treat that as failed (user) memory access.
      Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
      dce45493
    • Al Viro's avatar
      parisc: fix livelock in uaccess · 15261678
      Al Viro authored
      parisc equivalent of 26178ec1 "x86: mm: consolidate VM_FAULT_RETRY handling"
      If e.g. get_user() triggers a page fault and a fatal signal is caught, we might
      end up with handle_mm_fault() returning VM_FAULT_RETRY and not doing anything
      to page tables.  In such case we must *not* return to the faulting insn -
      that would repeat the entire thing without making any progress; what we need
      instead is to treat that as failed (user) memory access.
      Tested-by: default avatarHelge Deller <deller@gmx.de>
      Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
      15261678
    • Al Viro's avatar
      hexagon: fix livelock in uaccess · 0b92ed09
      Al Viro authored
      hexagon equivalent of 26178ec1 "x86: mm: consolidate VM_FAULT_RETRY handling"
      If e.g. get_user() triggers a page fault and a fatal signal is caught, we might
      end up with handle_mm_fault() returning VM_FAULT_RETRY and not doing anything
      to page tables.  In such case we must *not* return to the faulting insn -
      that would repeat the entire thing without making any progress; what we need
      instead is to treat that as failed (user) memory access.
      Acked-by: default avatarBrian Cain <bcain@quicinc.com>
      Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
      0b92ed09
    • Al Viro's avatar
      riscv: fix livelock in uaccess · d835eb3a
      Al Viro authored
      riscv equivalent of 26178ec1 "x86: mm: consolidate VM_FAULT_RETRY handling"
      If e.g. get_user() triggers a page fault and a fatal signal is caught, we might
      end up with handle_mm_fault() returning VM_FAULT_RETRY and not doing anything
      to page tables.  In such case we must *not* return to the faulting insn -
      that would repeat the entire thing without making any progress; what we need
      instead is to treat that as failed (user) memory access.
      Tested-by: default avatarBjörn Töpel <bjorn@kernel.org>
      Tested-by: default avatarGeert Uytterhoeven <geert+renesas@glider.be>
      Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
      d835eb3a
    • Al Viro's avatar
      m68k: fix livelock in uaccess · bd75497a
      Al Viro authored
      m68k equivalent of 26178ec1 "x86: mm: consolidate VM_FAULT_RETRY handling"
      If e.g. get_user() triggers a page fault and a fatal signal is caught, we might
      end up with handle_mm_fault() returning VM_FAULT_RETRY and not doing anything
      to page tables.  In such case we must *not* return to the faulting insn -
      that would repeat the entire thing without making any progress; what we need
      instead is to treat that as failed (user) memory access.
      Tested-by: default avatarFinn Thain <fthain@linux-m68k.org>
      Tested-by: default avatarGeert Uytterhoeven <geert@linux-m68k.org>
      Acked-by: default avatarGeert Uytterhoeven <geert@linux-m68k.org>
      Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
      bd75497a
  2. 19 Feb, 2023 4 commits
  3. 18 Feb, 2023 4 commits
    • Linus Torvalds's avatar
      Merge tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm · 5e725d11
      Linus Torvalds authored
      Pull kvm/x86 fixes from Paolo Bonzini:
      
       - zero all padding for KVM_GET_DEBUGREGS
      
       - fix rST warning
      
       - disable vPMU support on hybrid CPUs
      
      * tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm:
        kvm: initialize all of the kvm_debugregs structure before sending it to userspace
        perf/x86: Refuse to export capabilities for hybrid PMUs
        KVM: x86/pmu: Disable vPMU support on hybrid CPUs (host PMUs)
        Documentation/hw-vuln: Fix rST warning
      5e725d11
    • Linus Torvalds's avatar
      Merge tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux · 0c2822b1
      Linus Torvalds authored
      Pull arm64 regression fix from Will Deacon:
       "Apologies for the _extremely_ late pull request here, but we had a
        'perf' (i.e. CPU PMU) regression on the Apple M1 reported on Wednesday
        [1] which was introduced by bd275681 ("perf: Rewrite core context
        handling") during the merge window.
      
        Mark and I looked into this and noticed an additional problem caused
        by the same patch, where the 'CHAIN' event (used to combine two
        adjacent 32-bit counters into a single 64-bit counter) was not being
        filtered correctly. Mark posted a series on Thursday [2] which
        addresses both of these regressions and I queued it the same day.
      
        The changes are small, self-contained and have been confirmed to fix
        the original regression.
      
        Summary:
      
         - Fix 'perf' regression for non-standard CPU PMU hardware (i.e. Apple
           M1)"
      
      * tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux:
        arm64: perf: reject CHAIN events at creation time
        arm_pmu: fix event CPU filtering
      0c2822b1
    • Linus Torvalds's avatar
      Merge tag 'block-6.2-2023-02-17' of git://git.kernel.dk/linux · 0e9fd589
      Linus Torvalds authored
      Pull block fix from Jens Axboe:
       "I guess this is what can happen when you prep things early for going
        away, something else comes in last minute. This one fixes another
        regression in 6.2 for NVMe, from this release, and hence we should
        probably get it submitted for 6.2.
      
        Still waiting for the original reporter (see bugzilla linked in the
        commit) to test this, but Keith managed to setup and recreate the
        issue and tested the patch that way"
      
      * tag 'block-6.2-2023-02-17' of git://git.kernel.dk/linux:
        nvme-pci: refresh visible attrs for cmb attributes
      0e9fd589
    • Linus Torvalds's avatar
      Merge tag 'mm-hotfixes-stable-2023-02-17-15-16-2' of... · 38f8ccde
      Linus Torvalds authored
      Merge tag 'mm-hotfixes-stable-2023-02-17-15-16-2' of git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm
      
      Pull misc fixes from Andrew Morton:
       "Six hotfixes. Five are cc:stable: four for MM, one for nilfs2.
      
        Also a MAINTAINERS update"
      
      * tag 'mm-hotfixes-stable-2023-02-17-15-16-2' of git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm:
        nilfs2: fix underflow in second superblock position calculations
        hugetlb: check for undefined shift on 32 bit architectures
        mm/migrate: fix wrongly apply write bit after mkdirty on sparc64
        MAINTAINERS: update FPU EMULATOR web page
        mm/MADV_COLLAPSE: set EAGAIN on unexpected page refcount
        mm/filemap: fix page end in filemap_get_read_batch
      38f8ccde
  4. 17 Feb, 2023 20 commits
  5. 16 Feb, 2023 7 commits
    • Dave Airlie's avatar
      Merge tag 'drm-intel-fixes-2023-02-16' of... · f7597e3c
      Dave Airlie authored
      Merge tag 'drm-intel-fixes-2023-02-16' of git://anongit.freedesktop.org/drm/drm-intel into drm-fixes
      
      - Moving gen11 hw wa to the right place. (Matt)
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      
      From: Rodrigo Vivi <rodrigo.vivi@intel.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/Y+47eUvwbafER35/@intel.com
      f7597e3c
    • Dave Airlie's avatar
      Merge tag 'drm-misc-fixes-2023-02-16' of git://anongit.freedesktop.org/drm/drm-misc into drm-fixes · a2a04b51
      Dave Airlie authored
      Multiple fixes in vc4 to address issues with YUV planes, HDMI and CRTC;
      an invalid page access fix for fbdev, mark dynamic debug as broken, a
      double free and refcounting fix for vmwgfx.
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      
      From: Maxime Ripard <maxime@cerno.tech>
      Link: https://patchwork.freedesktop.org/patch/msgid/20230216091905.i5wswy4dd74x4br5@houat
      a2a04b51
    • Dave Airlie's avatar
      Merge tag 'amd-drm-fixes-6.2-2023-02-15' of... · caa068c9
      Dave Airlie authored
      Merge tag 'amd-drm-fixes-6.2-2023-02-15' of https://gitlab.freedesktop.org/agd5f/linux into drm-fixes
      
      amd-drm-fixes-6.2-2023-02-15:
      
      amdgpu:
      - Fix GC11.x suspend warning
      - Fix display warning
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      From: Alex Deucher <alexander.deucher@amd.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20230216041122.7714-1-alexander.deucher@amd.com
      caa068c9
    • Mark Rutland's avatar
      arm64: perf: reject CHAIN events at creation time · 853e2dac
      Mark Rutland authored
      Currently it's possible for a user to open CHAIN events arbitrarily,
      which we previously tried to rule out in commit:
      
        ca2b4972 ("arm64: perf: Reject stand-alone CHAIN events for PMUv3")
      
      Which allowed the events to be opened, but prevented them from being
      scheduled by by using an arm_pmu::filter_match hook to reject the
      relevant events.
      
      The CHAIN event filtering in the arm_pmu::filter_match hook was silently
      removed in commit:
      
        bd275681 ("perf: Rewrite core context handling")
      
      As a result, it's now possible for users to open CHAIN events, and for
      these to be installed arbitrarily.
      
      Fix this by rejecting CHAIN events at creation time. This avoids the
      creation of events which will never count, and doesn't require using the
      dynamic filtering.
      
      Attempting to open a CHAIN event (0x1e) will now be rejected:
      
      | # ./perf stat -e armv8_pmuv3/config=0x1e/ ls
      | perf
      |
      |  Performance counter stats for 'ls':
      |
      |    <not supported>      armv8_pmuv3/config=0x1e/
      |
      |        0.002197470 seconds time elapsed
      |
      |        0.000000000 seconds user
      |        0.002294000 seconds sys
      
      Other events (e.g. CPU_CYCLES / 0x11) will open as usual:
      
      | # ./perf stat -e armv8_pmuv3/config=0x11/ ls
      | perf
      |
      |  Performance counter stats for 'ls':
      |
      |            2538761      armv8_pmuv3/config=0x11/
      |
      |        0.002227330 seconds time elapsed
      |
      |        0.002369000 seconds user
      |        0.000000000 seconds sys
      
      Fixes: bd275681 ("perf: Rewrite core context handling")
      Signed-off-by: default avatarMark Rutland <mark.rutland@arm.com>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Ravi Bangoria <ravi.bangoria@amd.com>
      Cc: Will Deacon <will@kernel.org>
      Link: https://lore.kernel.org/r/20230216141240.3833272-3-mark.rutland@arm.comSigned-off-by: default avatarWill Deacon <will@kernel.org>
      853e2dac
    • Mark Rutland's avatar
      arm_pmu: fix event CPU filtering · 61d03862
      Mark Rutland authored
      Janne reports that perf has been broken on Apple M1 as of commit:
      
        bd275681 ("perf: Rewrite core context handling")
      
      That commit replaced the pmu::filter_match() callback with
      pmu::filter(), whose return value has the opposite polarity, with true
      implying events should be ignored rather than scheduled. While an
      attempt was made to update the logic in armv8pmu_filter() and
      armpmu_filter() accordingly, the return value remains inverted in a
      couple of cases:
      
      * If the arm_pmu does not have an arm_pmu::filter() callback,
        armpmu_filter() will always return whether the CPU is supported rather
        than whether the CPU is not supported.
      
        As a result, the perf core will not schedule events on supported CPUs,
        resulting in a loss of events. Additionally, the perf core will
        attempt to schedule events on unsupported CPUs, but this will be
        rejected by armpmu_add(), which may result in a loss of events from
        other PMUs on those unsupported CPUs.
      
      * If the arm_pmu does have an arm_pmu::filter() callback, and
        armpmu_filter() is called on a CPU which is not supported by the
        arm_pmu, armpmu_filter() will return false rather than true.
      
        As a result, the perf core will attempt to schedule events on
        unsupported CPUs, but this will be rejected by armpmu_add(), which may
        result in a loss of events from other PMUs on those unsupported CPUs.
      
      This means a loss of events can be seen with any arm_pmu driver, but
      with the ARMv8 PMUv3 driver (which is the only arm_pmu driver with an
      arm_pmu::filter() callback) the event loss will be more limited and may
      go unnoticed, which is how this issue evaded testing so far.
      
      Fix the CPU filtering by performing this consistently in
      armpmu_filter(), and remove the redundant arm_pmu::filter() callback and
      armv8pmu_filter() implementation.
      
      Commit bd275681 also silently removed the CHAIN event filtering from
      armv8pmu_filter(), which will be addressed by a separate patch without
      using the filter callback.
      
      Fixes: bd275681 ("perf: Rewrite core context handling")
      Reported-by: default avatarJanne Grunau <j@jannau.net>
      Link: https://lore.kernel.org/asahi/20230215-arm_pmu_m1_regression-v1-1-f5a266577c8d@jannau.net/Signed-off-by: default avatarMark Rutland <mark.rutland@arm.com>
      Cc: Will Deacon <will@kernel.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Ravi Bangoria <ravi.bangoria@amd.com>
      Cc: Asahi Lina <lina@asahilina.net>
      Cc: Eric Curtin <ecurtin@redhat.com>
      Tested-by: default avatarJanne Grunau <j@jannau.net>
      Link: https://lore.kernel.org/r/20230216141240.3833272-2-mark.rutland@arm.comSigned-off-by: default avatarWill Deacon <will@kernel.org>
      61d03862
    • Linus Torvalds's avatar
      Merge tag 'net-6.2-final' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net · 3ac88fa4
      Linus Torvalds authored
      Pull networking fixes from Jakub Kicinski:
       "Fixes from the main networking tree only, probably because all
        sub-trees have backed off and haven't submitted their changes.
      
        None of the fixes here are particularly scary and no outstanding
        regressions. In an ideal world the "current release" sections would be
        empty at this stage but that never happens.
      
        Current release - regressions:
      
         - fix unwanted sign extension in netdev_stats_to_stats64()
      
        Current release - new code bugs:
      
         - initialize net->notrefcnt_tracker earlier
      
         - devlink: fix netdev notifier chain corruption
      
         - nfp: make sure mbox accesses in IPsec code are atomic
      
         - ice: fix check for weight and priority of a scheduling node
      
        Previous releases - regressions:
      
         - ice: xsk: fix cleaning of XDP_TX frame, prevent inf loop
      
         - igb: fix I2C bit banging config with external thermal sensor
      
        Previous releases - always broken:
      
         - sched: tcindex: update imperfect hash filters respecting rcu
      
         - mpls: fix stale pointer if allocation fails during device rename
      
         - dccp/tcp: avoid negative sk_forward_alloc by ipv6_pinfo.pktoptions
      
         - remove WARN_ON_ONCE(sk->sk_forward_alloc) from
           sk_stream_kill_queues()
      
         - af_key: fix heap information leak
      
         - ipv6: fix socket connection with DSCP (correct interpretation of
           the tclass field vs fib rule matching)
      
         - tipc: fix kernel warning when sending SYN message
      
         - vmxnet3: read RSS information from the correct descriptor (eop)"
      
      * tag 'net-6.2-final' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net: (35 commits)
        devlink: Fix netdev notifier chain corruption
        igb: conditionalize I2C bit banging on external thermal sensor support
        net: mpls: fix stale pointer if allocation fails during device rename
        net/sched: tcindex: search key must be 16 bits
        tipc: fix kernel warning when sending SYN message
        igb: Fix PPS input and output using 3rd and 4th SDP
        net: use a bounce buffer for copying skb->mark
        ixgbe: add double of VLAN header when computing the max MTU
        i40e: add double of VLAN header when computing the max MTU
        ixgbe: allow to increase MTU to 3K with XDP enabled
        net: stmmac: Restrict warning on disabling DMA store and fwd mode
        net/sched: act_ctinfo: use percpu stats
        net: stmmac: fix order of dwmac5 FlexPPS parametrization sequence
        ice: fix lost multicast packets in promisc mode
        ice: Fix check for weight and priority of a scheduling node
        bnxt_en: Fix mqprio and XDP ring checking logic
        net: Fix unwanted sign extension in netdev_stats_to_stats64()
        net/usb: kalmia: Don't pass act_len in usb_bulk_msg error path
        net: openvswitch: fix possible memory leak in ovs_meter_cmd_set()
        af_key: Fix heap information leak
        ...
      3ac88fa4
    • Linus Torvalds's avatar
      Merge tag 'block-6.2-2023-02-16' of git://git.kernel.dk/linux · d3d6f0eb
      Linus Torvalds authored
      Pull block fixes from Jens Axboe:
       "Just a few NVMe fixes that should go into the 6.2 release, adding a
        quirk and fixing two issues introduced in this release:
      
         - NVMe fixes via Christoph:
             - Always return an ERR_PTR from nvme_pci_alloc_dev (Irvin Cote)
             - Add bogus ID quirk for ADATA SX6000PNP (Daniel Wagner)
             - Set the DMA mask earlier (Christoph Hellwig)"
      
      * tag 'block-6.2-2023-02-16' of git://git.kernel.dk/linux:
        nvme-pci: always return an ERR_PTR from nvme_pci_alloc_dev
        nvme-pci: set the DMA mask earlier
        nvme-pci: add bogus ID quirk for ADATA SX6000PNP
      d3d6f0eb