Skip to content
  1. Sep 25, 2022
  2. Sep 24, 2022
    • Linus Torvalds's avatar
      Merge tag 'tty-6.0-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty · 7e2cd21e
      Linus Torvalds authored
      Pull tty/serial driver fixes from Greg KH:
       "Here are some small, and late, serial driver fixes for 6.0-rc7 to
        resolve some reported problems.
      
        Included in here are:
      
         - tegra icount accounting fixes, including a framework function that
           other drivers will be converted over to using in 6.1-rc1.
      
         - fsl_lpuart reset bugfix
      
         - 8250 omap 485 bugfix
      
         - sifive serial clock bugfix
      
        The last three patches have not shown up in linux-next due to them
        being added to my tree only 2 days ago, but they are tiny and
        self-contained and the developers say they resolve issues that they
        have with 6.0-rc. The other three have been in linux-next for a while
        with no reported issues"
      
      * tag 'tty-6.0-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty:
        serial: sifive: enable clocks for UART when probed
        serial: 8250: omap: Use serial8250_em485_supported
        serial: fsl_lpuart: Reset prior to registration
        serial: tegra-tcu: Use uart_xmit_advance(), fixes icount.tx accounting
        serial: tegra: Use uart_xmit_advance(), fixes icount.tx accounting
        serial: Create uart_xmit_advance()
      7e2cd21e
    • Linus Torvalds's avatar
      Merge tag 'cgroup-for-6.0-rc6-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup · 1772094f
      Linus Torvalds authored
      Pull cgroup fixes from Tejun Heo:
      
       - Add Waiman Long as a cpuset maintainer
      
       - cgroup_get_from_id() could be fed a kernfs ID which doesn't point to
         a cgroup directory but a knob file and then crash. Error out if the
         lookup kernfs_node isn't a directory.
      
      * tag 'cgroup-for-6.0-rc6-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup:
        cgroup: cgroup_get_from_id() must check the looked-up kn is a directory
        cpuset: Add Waiman Long as a cpuset maintainer
      1772094f
    • Linus Torvalds's avatar
      Merge tag 'wq-for-6.0-rc6-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq · aae8dda5
      Linus Torvalds authored
      Pull workqueue fix from Tejun Heo:
       "Just one patch to improve flush lockdep coverage"
      
      * tag 'wq-for-6.0-rc6-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq:
        workqueue: don't skip lockdep work dependency in cancel_work_sync()
      aae8dda5
    • Linus Torvalds's avatar
      Merge tag 'io_uring-6.0-2022-09-23' of git://git.kernel.dk/linux · 3db61221
      Linus Torvalds authored
      Pull io_uring fix from Jens Axboe:
       "Just a single fix for an issue with un-reaped IOPOLL requests on ring
        exit"
      
      * tag 'io_uring-6.0-2022-09-23' of git://git.kernel.dk/linux:
        io_uring: ensure that cached task references are always put on exit
      3db61221
    • Linus Torvalds's avatar
      Merge tag 'block-6.0-2022-09-22' of git://git.kernel.dk/linux · 0be27f7b
      Linus Torvalds authored
      Pull block fixes from Jens Axboe:
       "Fix a regression that's been plaguing us by reverting the offending
        commit, as attempts to both reproduce the issue and fix it in a saner
        fashion have failed.
      
        Fix for a potential oops condition in the s390 dasd block driver"
      
      * tag 'block-6.0-2022-09-22' of git://git.kernel.dk/linux:
        Revert "block: freeze the queue earlier in del_gendisk"
        s390/dasd: fix Oops in dasd_alias_get_start_dev due to missing pavgroup
      0be27f7b
    • Sergiu Moga's avatar
      MAINTAINERS: Solve warning regarding inexistent atmel-usart binding · 4c892885
      Sergiu Moga authored
      
      
      After the conversion to json-schema, what was previously known as
      `Documentation/devicetree/bindings/mfd/atmel-usart.txt`
      has been moved to another bindings directory and renamed to
      `Documentation/devicetree/bindings/serial/atmel,at91-usart.yaml`.
      Thus, make `MAINTAINERS` reflect this change.
      
      Fixes: b9e947fb ("dt-bindings: serial: atmel,at91-usart: convert to json-schema")
      Reported-by: default avatarkernel test robot <lkp@intel.com>
      Acked-by: default avatarNicolas Ferre <nicolas.ferre@microchip.com>
      Signed-off-by: default avatarSergiu Moga <sergiu.moga@microchip.com>
      Link: https://lore.kernel.org/r/20220923113415.90236-1-sergiu.moga@microchip.com
      
      
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      4c892885
    • Jens Axboe's avatar
      io_uring: ensure that cached task references are always put on exit · e775f93f
      Jens Axboe authored
      
      
      io_uring caches task references to avoid doing atomics for each of them
      per request. If a request is put from the same task that allocated it,
      then we can maintain a per-ctx cache of them. This obviously relies
      on io_uring always pruning caches in a reliable way, and there's
      currently a case off io_uring fd release where we can miss that.
      
      One example is a ring setup with IOPOLL, which relies on the task
      polling for completions, which will free them. However, if such a task
      submits a request and then exits or closes the ring without reaping
      the completion, then ring release will reap and put. If release happens
      from that very same task, the completed request task refs will get
      put back into the cache pool. This is problematic, as we're now beyond
      the point of pruning caches.
      
      Manually drop these caches after doing an IOPOLL reap. This releases
      references from the current task, which is enough. If another task
      happens to be doing the release, then the caching will not be
      triggered and there's no issue.
      
      Cc: stable@vger.kernel.org
      Fixes: e98e49b2 ("io_uring: extend task put optimisations")
      Reported-by: default avatarHomin Rhee <hominlab@gmail.com>
      Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
      e775f93f
    • Linus Torvalds's avatar
      Merge tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux · a63f2e7c
      Linus Torvalds authored
      Pull arm64 fixes from Will Deacon:
       "These are all very simple and self-contained, although the CFI
        jump-table fix touches the generic linker script as that's where the
        problematic macro lives.
      
         - Fix false positive "sleeping while atomic" warning resulting from
           the kPTI rework taking a mutex too early.
      
         - Fix possible overflow in AMU frequency calculation
      
         - Fix incorrect shift in CMN PMU driver which causes problems with
           newer versions of the IP
      
         - Reduce alignment of the CFI jump table to avoid huge kernel images
           and link errors with !4KiB page size configurations"
      
      * tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux:
        vmlinux.lds.h: CFI: Reduce alignment of jump-table to function alignment
        perf/arm-cmn: Add more bits to child node address offset field
        arm64: topology: fix possible overflow in amu_fie_setup()
        arm64: mm: don't acquire mutex when rewriting swapper
      a63f2e7c
    • Ming Lei's avatar
      cgroup: cgroup_get_from_id() must check the looked-up kn is a directory · df02452f
      Ming Lei authored
      
      
      cgroup has to be one kernfs dir, otherwise kernel panic is caused,
      especially cgroup id is provide from userspace.
      
      Reported-by: default avatarMarco Patalano <mpatalan@redhat.com>
      Fixes: 6b658c48 ("scsi: cgroup: Add cgroup_get_from_id()")
      Cc: Muneendra <muneendra.kumar@broadcom.com>
      Signed-off-by: default avatarMing Lei <ming.lei@redhat.com>
      Acked-by: default avatarMukesh Ojha <quic_mojha@quicinc.com>
      Cc: stable@vger.kernel.org # v5.14+
      Signed-off-by: default avatarTejun Heo <tj@kernel.org>
      df02452f
    • Linus Torvalds's avatar
      Merge tag 'driver-core-6.0-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core · 1707c39a
      Linus Torvalds authored
      Pull driver core fixes from Greg KH:
       "Here are two tiny driver core fixes for 6.0-rc7 that resolve some
        oft-reported problems.
      
        The first is a revert of the "fw_devlink.strict=1" default option that
        we keep trying to enable, but we keep finding platforms that this just
        breaks everything on. So again, we need it reverted and hopefully it
        can be worked on in future releases.
      
        The second is a sysfs file-size bugfix that resolves an issue that
        many people are starting to hit as the fix it is fixing also was
        backported to stable kernels. The util-linux developers are starting
        to get bugreports about sysfs files that contain no data because of
        this problem, and this fix which has been in linux-next in the
        bitfield tree for a long time, resolves it. I'm submitting it here as
        it needs to be merged for 6.0-final, not for 6.1-rc1.
      
        Both of these have been in linux-next with no reported issues, only
        reports were that these fixed problems"
      
      * tag 'driver-core-6.0-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core:
        drivers/base: Fix unsigned comparison to -1 in CPUMAP_FILE_MAX_BYTES
        Revert "driver core: Set fw_devlink.strict=1 by default"
      1707c39a
    • Linus Torvalds's avatar
      Merge tag 'usb-6.0-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb · 33a4e37e
      Linus Torvalds authored
      Pull USB / Thunderbolt driver fixes and ids from Greg KH:
       "Here are a few small USB and Thunderbolt driver fixes and new device
        ids for 6.0-rc7.
      
        They contain:
      
         - new usb-serial driver ids
      
         - documentation build warning fix in USB hub code
      
         - flexcop-usb long-posted bugfix (the v4l maintainer for this is MIA
           so I have finally picked this up as it is a fix for a reported
           problem.)
      
         - dwc3 64bit DMA bugfix
      
         - new thunderbolt device ids
      
         - typec build error fix
      
        All of these have been in linux-next with no reported issues"
      
      * tag 'usb-6.0-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb:
        usb: typec: anx7411: Fix build error without CONFIG_POWER_SUPPLY
        media: flexcop-usb: fix endpoint type check
        USB: serial: option: add Quectel RM520N
        USB: serial: option: add Quectel BG95 0x0203 composition
        thunderbolt: Add support for Intel Maple Ridge single port controller
        usb: dwc3: core: leave default DMA if the controller does not support 64-bit DMA
        USB: core: Fix RST error in hub.c
      33a4e37e
  3. Sep 23, 2022
    • Linus Torvalds's avatar
      Merge tag 'landlock-6.0-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/mic/linux · 9395cd7c
      Linus Torvalds authored
      Pull landlock fix from Mickaël Salaün:
       "Fix out-of-tree builds for Landlock tests"
      
      * tag 'landlock-6.0-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/mic/linux:
        selftests/landlock: Fix out-of-tree builds
      9395cd7c
    • Linus Torvalds's avatar
      Merge tag 'riscv-for-linus-6.0-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/riscv/linux · a7b7751a
      Linus Torvalds authored
      Pull RISC-V fixes from Palmer Dabbelt:
      
       - A handful of build fixes for the T-Head errata, including some
         functional issues the compilers found
      
       - A fix for a nasty sigreturn bug
      
      * tag 'riscv-for-linus-6.0-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/riscv/linux:
        RISC-V: Avoid coupling the T-Head CMOs and Zicbom
        riscv: fix a nasty sigreturn bug...
        riscv: make t-head erratas depend on MMU
        riscv: fix RISCV_ISA_SVPBMT kconfig dependency warning
        RISC-V: Clean up the Zicbom block size probing
      a7b7751a
    • Linus Torvalds's avatar
      Merge tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm · 317fab7e
      Linus Torvalds authored
      Pull kvm fixes from Paolo Bonzini:
       "As everyone back came back from conferences, here are the pending
        patches for Linux 6.0.
      
        ARM:
      
         - Fix for kmemleak with pKVM
      
        s390:
      
         - Fixes for VFIO with zPCI
      
         - smatch fix
      
        x86:
      
         - Ensure XSAVE-capable hosts always allow FP and SSE state to be
           saved and restored via KVM_{GET,SET}_XSAVE
      
         - Fix broken max_mmu_rmap_size stat
      
         - Fix compile error with old glibc that doesn't have gettid()"
      
      * tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm:
        KVM: x86: Inject #UD on emulated XSETBV if XSAVES isn't enabled
        KVM: x86: Always enable legacy FP/SSE in allowed user XFEATURES
        KVM: x86: Reinstate kvm_vcpu_arch.guest_supported_xcr0
        KVM: x86/mmu: add missing update to max_mmu_rmap_size
        selftests: kvm: Fix a compile error in selftests/kvm/rseq_test.c
        KVM: s390: pci: register pci hooks without interpretation
        KVM: s390: pci: fix GAIT physical vs virtual pointers usage
        KVM: s390: Pass initialized arg even if unused
        KVM: s390: pci: fix plain integer as NULL pointer warnings
        KVM: arm64: Use kmemleak_free_part_phys() to unregister hyp_mem_base
      317fab7e
    • Linus Torvalds's avatar
      Merge tag 'for-linus-6.0-rc7-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip · 526e8262
      Linus Torvalds authored
      Pull xen fix from Juergen Gross:
       "A single fix for an issue in the xenbus driver (initialization of
        multi-page rings for Xen PV devices)"
      
      * tag 'for-linus-6.0-rc7-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip:
        xen/xenbus: fix xenbus_setup_ring()
      526e8262
    • Linus Torvalds's avatar
      Merge tag 'drm-fixes-2022-09-23-1' of git://anongit.freedesktop.org/drm/drm · 22565ae7
      Linus Torvalds authored
      Pull drm fixes from Dave Airlie:
       "Regular fixes for the week, i915, mediatek, hisilicon, mgag200 and
        panel have some small fixes.
      
        amdgpu has more stack size fixes for clang build, and fixes for new
        IPs, but all with low regression chances since they are for stuff new
        in v6.0.
      
        i915:
         - avoid a general protection failure when using perf/OA
         - avoid kernel warnings on driver release
      
        amdgpu:
         - SDMA 6.x fix
         - GPUVM TF fix
         - DCN 3.2.x fixes
         - DCN 3.1.x fixes
         - SMU 13.x fixes
         - Clang stack size fixes for recently enabled DML code
         - Fix drm dirty callback change on non-atomic cases
         - USB4 display fix
      
        mediatek:
         - dsi: Add atomic {destroy,duplicate}_state, reset callbacks
         - dsi: Move mtk_dsi_stop() call back to mtk_dsi_poweroff()
         - Fix wrong dither settings
      
        hisilicon:
         - Depend on MMU
      
        mgag200:
         - Fix console on G200ER
      
        panel:
         - Fix innolux_g121i1_l01 bus format"
      
      * tag 'drm-fixes-2022-09-23-1' of git://anongit.freedesktop.org/drm/drm: (30 commits)
        MAINTAINERS: switch graphics to airlied other addresses
        drm/mediatek: dsi: Move mtk_dsi_stop() call back to mtk_dsi_poweroff()
        drm/amd/display: Reduce number of arguments of dml314's CalculateFlipSchedule()
        drm/amd/display: Reduce number of arguments of dml314's CalculateWatermarksAndDRAMSpeedChangeSupport()
        drm/amdgpu: don't register a dirty callback for non-atomic
        drm/amd/pm: drop the pptable related workarounds for SMU 13.0.0
        drm/amd/pm: add support for 3794 pptable for SMU13.0.0
        drm/amd/display: correct num_dsc based on HW cap
        drm/amd/display: Disable OTG WA for the plane_state NULL case on DCN314
        drm/amd/display: Add shift and mask for ICH_RESET_AT_END_OF_LINE
        drm/amd/display: increase dcn315 pstate change latency
        drm/amd/display: Fix DP MST timeslot issue when fallback happened
        drm/amd/display: Display distortion after hotplug 5K tiled display
        drm/amd/display: Update dummy P-state search to use DCN32 DML
        drm/amd/display: skip audio setup when audio stream is enabled
        drm/amd/display: update gamut remap if plane has changed
        drm/amd/display: Assume an LTTPR is always present on fixed_vs links
        drm/amd/display: fix dcn315 memory channel count and width read
        drm/amd/display: Fix double cursor on non-video RGB MPO
        drm/amd/display: Only consider pixle rate div policy for DCN32+
        ...
      22565ae7
    • Paolo Bonzini's avatar
      Merge tag 'kvm-s390-master-6.0-2' of... · 69604fe7
      Paolo Bonzini authored
      Merge tag 'kvm-s390-master-6.0-2' of https://git.kernel.org/pub/scm/linux/kernel/git/kvms390/linux into HEAD
      
      More pci fixes
      Fix for a code analyser warning
      69604fe7
    • Will Deacon's avatar
      vmlinux.lds.h: CFI: Reduce alignment of jump-table to function alignment · 13b05669
      Will Deacon authored
      Due to undocumented, hysterical raisins on x86, the CFI jump-table
      sections in .text are needlessly aligned to PMD_SIZE in the vmlinux
      linker script. When compiling a CFI-enabled arm64 kernel with a 64KiB
      page-size, a PMD maps 512MiB of virtual memory and so the .text section
      increases to a whopping 940MiB and blows the final Image up to 960MiB.
      Others report a link failure.
      
      Since the CFI jump-table requires only instruction alignment, reduce the
      alignment directives to function alignment for parity with other parts
      of the .text section. This reduces the size of the .text section for the
      aforementioned 64KiB page size arm64 kernel to 19MiB for a much more
      reasonable total Image size of 39MiB.
      
      Cc: Sami Tolvanen <samitolvanen@google.com>
      Cc: Mark Rutland <mark.rutland@arm.com>
      Cc: "Mohan Rao .vanimina" <mailtoc.mohanrao@gmail.com>
      Cc: Kees Cook <keescook@chromium.org>
      Cc: Nathan Chancellor <nathan@kernel.org>
      Cc: <stable@vger.kernel.org>
      Link: https://lore.kernel.org/all/CAL_GTzigiNOMYkOPX1KDnagPhJtFNqSK=1USNbS0wUL4PW6-Uw@mail.gmail.com/
      
      
      Fixes: cf68fffb ("add support for Clang CFI")
      Reviewed-by: default avatarMark Rutland <mark.rutland@arm.com>
      Tested-by: default avatarMark Rutland <mark.rutland@arm.com>
      Reviewed-by: default avatarSami Tolvanen <samitolvanen@google.com>
      Reviewed-by: default avatarKees Cook <keescook@chromium.org>
      Link: https://lore.kernel.org/r/20220922215715.13345-1-will@kernel.org
      
      
      Signed-off-by: default avatarWill Deacon <will@kernel.org>
      13b05669
    • Dave Airlie's avatar
      MAINTAINERS: switch graphics to airlied other addresses · 8288206c
      Dave Airlie authored
      
      
      My linux.ie address is in a bad place.
      also add dri-devel for agpgart.
      
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      8288206c
    • Dave Airlie's avatar
      Merge tag 'drm-misc-fixes-2022-09-22' of git://anongit.freedesktop.org/drm/drm-misc into drm-fixes · 3b38b65e
      Dave Airlie authored
      
      
      Short summary of fixes pull
      
       * drm/hisilicon: Depend on MMU
       * drm/mgag200: Fix console on G200ER
       * drm/panel: Fix innolux_g121i1_l01 bus format
      
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      
      From: Thomas Zimmermann <tzimmermann@suse.de>
      Link: https://patchwork.freedesktop.org/patch/msgid/YyxtXS588at6S4wg@linux-uq9g
      3b38b65e
    • Dave Airlie's avatar
      Merge tag 'mediatek-drm-fixes-6.0' of... · 73646baf
      Dave Airlie authored
      Merge tag 'mediatek-drm-fixes-6.0' of https://git.kernel.org/pub/scm/linux/kernel/git/chunkuang.hu/linux
      
       into drm-fixes
      
      Mediatek DRM Fixes for Linux 6.0
      
      1. dsi: Add atomic {destroy,duplicate}_state, reset callbacks
      2. drm/mediatek: Fix wrong dither settings
      3. dsi: Move mtk_dsi_stop() call back to mtk_dsi_poweroff()
      
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      
      From: Chun-Kuang Hu <chunkuang.hu@kernel.org>
      Link: https://patchwork.freedesktop.org/patch/msgid/20220921235624.23580-1-chunkuang.hu@kernel.org
      73646baf
    • Dave Airlie's avatar
      Merge tag 'amd-drm-fixes-6.0-2022-09-21' of... · 387df878
      Dave Airlie authored
      Merge tag 'amd-drm-fixes-6.0-2022-09-21' of https://gitlab.freedesktop.org/agd5f/linux
      
       into drm-fixes
      
      amd-drm-fixes-6.0-2022-09-21:
      
      amdgpu:
      - SDMA 6.x fix
      - GPUVM TF fix
      - DCN 3.2.x fixes
      - DCN 3.1.x fixes
      - SMU 13.x fixes
      - Clang stack size fixes for recently enabled DML code
      - Fix drm dirty callback change on non-atomic cases
      - USB4 display fix
      
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      From: Alex Deucher <alexander.deucher@amd.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20220921220605.6136-1-alexander.deucher@amd.com
      387df878
    • Linus Torvalds's avatar
      Merge tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi · bf682942
      Linus Torvalds authored
      Pull SCSI fixes from James Bottomley:
       "Three small and pretty obvious fixes, all in drivers"
      
      * tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi:
        scsi: mpt3sas: Fix return value check of dma_get_required_mask()
        scsi: qla2xxx: Fix memory leak in __qlt_24xx_handle_abts()
        scsi: qedf: Fix a UAF bug in __qedf_probe()
      bf682942
    • Linus Torvalds's avatar
      Merge tag 'slab-for-6.0-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/vbabka/slab · 3c0f396a
      Linus Torvalds authored
      Pull slab fixes from Vlastimil Babka:
      
       - Fix a possible use-after-free in SLUB's kmem_cache removal,
         introduced in this cycle, by Feng Tang.
      
       - WQ_MEM_RECLAIM dependency fix for the workqueue-based cpu slab
         flushing introduced in 5.15, by Maurizio Lombardi.
      
       - Add missing KASAN hooks in two kmalloc entry paths, by Peter
         Collingbourne.
      
       - A BUG_ON() removal in SLUB's kmem_cache creation when allocation
         fails (too small to possibly happen in practice, syzbot used fault
         injection), by Chao Yu.
      
      * tag 'slab-for-6.0-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/vbabka/slab:
        mm: slub: fix flush_cpu_slab()/__free_slab() invocations in task context.
        mm/slab_common: fix possible double free of kmem_cache
        kasan: call kasan_malloc() from __kmalloc_*track_caller()
        mm/slub: fix to return errno if kmalloc() fails
      3c0f396a
    • Sean Christopherson's avatar
      KVM: x86: Inject #UD on emulated XSETBV if XSAVES isn't enabled · 50b2d49b
      Sean Christopherson authored
      
      
      Inject #UD when emulating XSETBV if CR4.OSXSAVE is not set.  This also
      covers the "XSAVE not supported" check, as setting CR4.OSXSAVE=1 #GPs if
      XSAVE is not supported (and userspace gets to keep the pieces if it
      forces incoherent vCPU state).
      
      Add a comment to kvm_emulate_xsetbv() to call out that the CPU checks
      CR4.OSXSAVE before checking for intercepts.  AMD'S APM implies that #UD
      has priority (says that intercepts are checked before #GP exceptions),
      while Intel's SDM says nothing about interception priority.  However,
      testing on hardware shows that both AMD and Intel CPUs prioritize the #UD
      over interception.
      
      Fixes: 02d4160f ("x86: KVM: add xsetbv to the emulator")
      Cc: stable@vger.kernel.org
      Cc: Vitaly Kuznetsov <vkuznets@redhat.com>
      Signed-off-by: default avatarSean Christopherson <seanjc@google.com>
      Message-Id: <20220824033057.3576315-4-seanjc@google.com>
      Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
      50b2d49b
    • Dr. David Alan Gilbert's avatar
      KVM: x86: Always enable legacy FP/SSE in allowed user XFEATURES · a1020a25
      Dr. David Alan Gilbert authored
      Allow FP and SSE state to be saved and restored via KVM_{G,SET}_XSAVE on
      XSAVE-capable hosts even if their bits are not exposed to the guest via
      XCR0.
      
      Failing to allow FP+SSE first showed up as a QEMU live migration failure,
      where migrating a VM from a pre-XSAVE host, e.g. Nehalem, to an XSAVE
      host failed due to KVM rejecting KVM_SET_XSAVE.  However, the bug also
      causes problems even when migrating between XSAVE-capable hosts as
      KVM_GET_SAVE won't set any bits in user_xfeatures if XSAVE isn't exposed
      to the guest, i.e. KVM will fail to actually migrate FP+SSE.
      
      Because KVM_{G,S}ET_XSAVE are designed to allowing migrating between
      hosts with and without XSAVE, KVM_GET_XSAVE on a non-XSAVE (by way of
      fpu_copy_guest_fpstate_to_uabi()) always sets the FP+SSE bits in the
      header so that KVM_SET_XSAVE will work even if the new host supports
      XSAVE.
      
      Fixes: ad856280 ("x86/kvm/fpu: Limit guest user_xfeatures to supported bits of XCR0")
      bz: https://bugzilla.redhat.com/show_bug.cgi?id=2079311
      
      
      Cc: stable@vger.kernel.org
      Cc: Leonardo Bras <leobras@redhat.com>
      Signed-off-by: default avatarDr. David Alan Gilbert <dgilbert@redhat.com>
      [sean: add comment, massage changelog]
      Signed-off-by: default avatarSean Christopherson <seanjc@google.com>
      Message-Id: <20220824033057.3576315-3-seanjc@google.com>
      Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
      a1020a25
    • Sean Christopherson's avatar
      KVM: x86: Reinstate kvm_vcpu_arch.guest_supported_xcr0 · ee519b3a
      Sean Christopherson authored
      
      
      Reinstate the per-vCPU guest_supported_xcr0 by partially reverting
      commit 988896bb; the implicit assessment that guest_supported_xcr0 is
      always the same as guest_fpu.fpstate->user_xfeatures was incorrect.
      
      kvm_vcpu_after_set_cpuid() isn't the only place that sets user_xfeatures,
      as user_xfeatures is set to fpu_user_cfg.default_features when guest_fpu
      is allocated via fpu_alloc_guest_fpstate() => __fpstate_reset().
      guest_supported_xcr0 on the other hand is zero-allocated.  If userspace
      never invokes KVM_SET_CPUID2, supported XCR0 will be '0', whereas the
      allowed user XFEATURES will be non-zero.
      
      Practically speaking, the edge case likely doesn't matter as no sane
      userspace will live migrate a VM without ever doing KVM_SET_CPUID2. The
      primary motivation is to prepare for KVM intentionally and explicitly
      setting bits in user_xfeatures that are not set in guest_supported_xcr0.
      
      Because KVM_{G,S}ET_XSAVE can be used to svae/restore FP+SSE state even
      if the host doesn't support XSAVE, KVM needs to set the FP+SSE bits in
      user_xfeatures even if they're not allowed in XCR0, e.g. because XCR0
      isn't exposed to the guest.  At that point, the simplest fix is to track
      the two things separately (allowed save/restore vs. allowed XCR0).
      
      Fixes: 988896bb ("x86/kvm/fpu: Remove kvm_vcpu_arch.guest_supported_xcr0")
      Cc: stable@vger.kernel.org
      Cc: Leonardo Bras <leobras@redhat.com>
      Signed-off-by: default avatarSean Christopherson <seanjc@google.com>
      Message-Id: <20220824033057.3576315-2-seanjc@google.com>
      Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
      ee519b3a
    • Miaohe Lin's avatar
      KVM: x86/mmu: add missing update to max_mmu_rmap_size · 604f5332
      Miaohe Lin authored
      
      
      The update to statistic max_mmu_rmap_size is unintentionally removed by
      commit 4293ddb7 ("KVM: x86/mmu: Remove redundant spte present check
      in mmu_set_spte"). Add missing update to it or max_mmu_rmap_size will
      always be nonsensical 0.
      
      Fixes: 4293ddb7 ("KVM: x86/mmu: Remove redundant spte present check in mmu_set_spte")
      Signed-off-by: default avatarMiaohe Lin <linmiaohe@huawei.com>
      Message-Id: <20220907080657.42898-1-linmiaohe@huawei.com>
      Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
      604f5332
    • Jinrong Liang's avatar
      selftests: kvm: Fix a compile error in selftests/kvm/rseq_test.c · 561cafeb
      Jinrong Liang authored
      
      
      The following warning appears when executing:
      	make -C tools/testing/selftests/kvm
      
      rseq_test.c: In function ‘main’:
      rseq_test.c:237:33: warning: implicit declaration of function ‘gettid’; did you mean ‘getgid’? [-Wimplicit-function-declaration]
                (void *)(unsigned long)gettid());
                                       ^~~~~~
                                       getgid
      /usr/bin/ld: /tmp/ccr5mMko.o: in function `main':
      ../kvm/tools/testing/selftests/kvm/rseq_test.c:237: undefined reference to `gettid'
      collect2: error: ld returned 1 exit status
      make: *** [../lib.mk:173: ../kvm/tools/testing/selftests/kvm/rseq_test] Error 1
      
      Use the more compatible syscall(SYS_gettid) instead of gettid() to fix it.
      More subsequent reuse may cause it to be wrapped in a lib file.
      
      Signed-off-by: default avatarJinrong Liang <cloudliang@tencent.com>
      Message-Id: <20220802071240.84626-1-cloudliang@tencent.com>
      Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
      561cafeb
    • Paolo Bonzini's avatar
      Merge tag 'kvmarm-fixes-6.0-2' of... · b4ac28a3
      Paolo Bonzini authored
      Merge tag 'kvmarm-fixes-6.0-2' of git://git.kernel.org/pub/scm/linux/kernel/git/kvmarm/kvmarm into HEAD
      
      KVM/arm64 fixes for 6.0, take #2
      
      - Fix kmemleak usage in Protected KVM (again)
      b4ac28a3
    • Maurizio Lombardi's avatar
      mm: slub: fix flush_cpu_slab()/__free_slab() invocations in task context. · e45cc288
      Maurizio Lombardi authored
      
      
      Commit 5a836bf6 ("mm: slub: move flush_cpu_slab() invocations
      __free_slab() invocations out of IRQ context") moved all flush_cpu_slab()
      invocations to the global workqueue to avoid a problem related
      with deactivate_slab()/__free_slab() being called from an IRQ context
      on PREEMPT_RT kernels.
      
      When the flush_all_cpu_locked() function is called from a task context
      it may happen that a workqueue with WQ_MEM_RECLAIM bit set ends up
      flushing the global workqueue, this will cause a dependency issue.
      
       workqueue: WQ_MEM_RECLAIM nvme-delete-wq:nvme_delete_ctrl_work [nvme_core]
         is flushing !WQ_MEM_RECLAIM events:flush_cpu_slab
       WARNING: CPU: 37 PID: 410 at kernel/workqueue.c:2637
         check_flush_dependency+0x10a/0x120
       Workqueue: nvme-delete-wq nvme_delete_ctrl_work [nvme_core]
       RIP: 0010:check_flush_dependency+0x10a/0x120[  453.262125] Call Trace:
       __flush_work.isra.0+0xbf/0x220
       ? __queue_work+0x1dc/0x420
       flush_all_cpus_locked+0xfb/0x120
       __kmem_cache_shutdown+0x2b/0x320
       kmem_cache_destroy+0x49/0x100
       bioset_exit+0x143/0x190
       blk_release_queue+0xb9/0x100
       kobject_cleanup+0x37/0x130
       nvme_fc_ctrl_free+0xc6/0x150 [nvme_fc]
       nvme_free_ctrl+0x1ac/0x2b0 [nvme_core]
      
      Fix this bug by creating a workqueue for the flush operation with
      the WQ_MEM_RECLAIM bit set.
      
      Fixes: 5a836bf6 ("mm: slub: move flush_cpu_slab() invocations __free_slab() invocations out of IRQ context")
      Cc: <stable@vger.kernel.org>
      Signed-off-by: default avatarMaurizio Lombardi <mlombard@redhat.com>
      Reviewed-by: default avatarHyeonggon Yoo <42.hyeyoo@gmail.com>
      Signed-off-by: default avatarVlastimil Babka <vbabka@suse.cz>
      e45cc288
    • Linus Torvalds's avatar
      Merge tag 'soc-fixes-6.0-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc · c69cf88c
      Linus Torvalds authored
      Pull ARM SoC fixes from Arnd Bergmann:
       "Another set of fixes for fixes for the soc tree:
      
         - A fix for the interrupt number on at91/lan966 ethernet PHYs
      
         - A second round of fixes for NXP i.MX series, including a couple of
           build issues, and board specific DT corrections on TQMa8MPQL,
           imx8mp-venice-gw74xx and imx8mm-verdin for reliability and
           partially broken functionality
      
         - Several fixes for Rockchip SoCs, addressing a USB issue on
           BPI-R2-Pro, wakeup on Gru-Bob and reliability of high-speed SD
           cards, among other minor issues
      
         - A fix for a long-running naming mistake that prevented the moxart
           mmc driver from working at all
      
         - Multiple Arm SCMI firmware fixes for hardening some corner cases"
      
      * tag 'soc-fixes-6.0-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc: (30 commits)
        arm64: dts: imx8mp-venice-gw74xx: fix port/phy validation
        ARM: dts: lan966x: Fix the interrupt number for internal PHYs
        arm64: dts: imx8mp-venice-gw74xx: fix ksz9477 cpu port
        arm64: dts: imx8mp-venice-gw74xx: fix CAN STBY polarity
        dt-bindings: memory-controllers: fsl,imx8m-ddrc: drop Leonard Crestez
        arm64: dts: tqma8mqml: Include phy-imx8-pcie.h header
        arm64: defconfig: enable ARCH_NXP
        arm64: dts: imx8mp-tqma8mpql-mba8mpxl: add missing pinctrl for RTC alarm
        ARM: dts: fix Moxa SDIO 'compatible', remove 'sdhci' misnomer
        arm64: dts: imx8mm-verdin: extend pmic voltages
        arm64: dts: rockchip: Remove 'enable-active-low' from rk3566-quartz64-a
        arm64: dts: rockchip: Remove 'enable-active-low' from rk3399-puma
        arm64: dts: rockchip: fix property for usb2 phy supply on rk3568-evb1-v10
        arm64: dts: rockchip: fix property for usb2 phy supply on rock-3a
        arm64: dts: imx8ulp: add #reset-cells for pcc
        arm64: dts: tqma8mpxl-ba8mpxl: Fix button GPIOs
        arm64: dts: imx8mn: remove GPU power domain reset
        arm64: dts: rockchip: Set RK3399-Gru PCLK_EDP to 24 MHz
        arm64: dts: imx8mm: Reverse CPLD_Dn GPIO label mapping on MX8Menlo
        arm64: dts: rockchip: fix upper usb port on BPI-R2-Pro
        ...
      c69cf88c
    • Linus Torvalds's avatar
      Merge tag 'net-6.0-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net · 504c25cb
      Linus Torvalds authored
      Pull networking fixes from Jakub Kicinski:
       "Including fixes from wifi, netfilter and can.
      
        A handful of awaited fixes here - revert of the FEC changes, bluetooth
        fix, fixes for iwlwifi spew.
      
        We added a warning in PHY/MDIO code which is triggering on a couple of
        platforms in a false-positive-ish way. If we can't iron that out over
        the week we'll drop it and re-add for 6.1.
      
        I've added a new "follow up fixes" section for fixes to fixes in
        6.0-rcs but it may actually give the false impression that those are
        problematic or that more testing time would have caught them. So
        likely a one time thing.
      
        Follow up fixes:
      
         - nf_tables_addchain: fix nft_counters_enabled underflow
      
         - ebtables: fix memory leak when blob is malformed
      
         - nf_ct_ftp: fix deadlock when nat rewrite is needed
      
        Current release - regressions:
      
         - Revert "fec: Restart PPS after link state change" and the related
           "net: fec: Use a spinlock to guard `fep->ptp_clk_on`"
      
         - Bluetooth: fix HCIGETDEVINFO regression
      
         - wifi: mt76: fix 5 GHz connection regression on mt76x0/mt76x2
      
         - mptcp: fix fwd memory accounting on coalesce
      
         - rwlock removal fall out:
            - ipmr: always call ip{,6}_mr_forward() from RCU read-side
              critical section
            - ipv6: fix crash when IPv6 is administratively disabled
      
         - tcp: read multiple skbs in tcp_read_skb()
      
         - mdio_bus_phy_resume state warning fallout:
            - eth: ravb: fix PHY state warning splat during system resume
            - eth: sh_eth: fix PHY state warning splat during system resume
      
        Current release - new code bugs:
      
         - wifi: iwlwifi: don't spam logs with NSS>2 messages
      
         - eth: mtk_eth_soc: enable XDP support just for MT7986 SoC
      
        Previous releases - regressions:
      
         - bonding: fix NULL deref in bond_rr_gen_slave_id
      
         - wifi: iwlwifi: mark IWLMEI as broken
      
        Previous releases - always broken:
      
         - nf_conntrack helpers:
            - irc: tighten matching on DCC message
            - sip: fix ct_sip_walk_headers
            - osf: fix possible bogus match in nf_osf_find()
      
         - ipvlan: fix out-of-bound bugs caused by unset skb->mac_header
      
         - core: fix flow symmetric hash
      
         - bonding, team: unsync device addresses on ndo_stop
      
         - phy: micrel: fix shared interrupt on LAN8814"
      
      * tag 'net-6.0-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net: (83 commits)
        selftests: forwarding: add shebang for sch_red.sh
        bnxt: prevent skb UAF after handing over to PTP worker
        net: marvell: Fix refcounting bugs in prestera_port_sfp_bind()
        net: sched: fix possible refcount leak in tc_new_tfilter()
        net: sunhme: Fix packet reception for len < RX_COPY_THRESHOLD
        udp: Use WARN_ON_ONCE() in udp_read_skb()
        selftests: bonding: cause oops in bond_rr_gen_slave_id
        bonding: fix NULL deref in bond_rr_gen_slave_id
        net: phy: micrel: fix shared interrupt on LAN8814
        net/smc: Stop the CLC flow if no link to map buffers on
        ice: Fix ice_xdp_xmit() when XDP TX queue number is not sufficient
        net: atlantic: fix potential memory leak in aq_ndev_close()
        can: gs_usb: gs_usb_set_phys_id(): return with error if identify is not supported
        can: gs_usb: gs_can_open(): fix race dev->can.state condition
        can: flexcan: flexcan_mailbox_read() fix return value for drop = true
        net: sh_eth: Fix PHY state warning splat during system resume
        net: ravb: Fix PHY state warning splat during system resume
        netfilter: nf_ct_ftp: fix deadlock when nat rewrite is needed
        netfilter: ebtables: fix memory leak when blob is malformed
        netfilter: nf_tables: fix percpu memory leak at nf_tables_addchain()
        ...
      504c25cb
    • Linus Torvalds's avatar
      Merge tag 'efi-urgent-for-v6.0-2' of git://git.kernel.org/pub/scm/linux/kernel/git/efi/efi · 129e7152
      Linus Torvalds authored
      Pull EFI fixes from Ard Biesheuvel:
      
       - Use the right variable to check for shim insecure mode
      
       - Wipe setup_data field when booting via EFI
      
       - Add missing error check to efibc driver
      
      * tag 'efi-urgent-for-v6.0-2' of git://git.kernel.org/pub/scm/linux/kernel/git/efi/efi:
        efi: libstub: check Shim mode using MokSBStateRT
        efi: x86: Wipe setup_data on pure EFI boot
        efi: efibc: Guard against allocation failure
      129e7152
    • Linus Torvalds's avatar
      Merge tag 'gpio-fixes-for-v6.0-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/brgl/linux · 5e0a93e4
      Linus Torvalds authored
      Pull gpio fixes from Bartosz Golaszewski:
      
       - fix a NULL-pointer dereference at driver unbind and a potential
         resource leak in error path in gpio-mockup
      
       - make the irqchip immutable in gpio-ftgpio010
      
       - fix dereferencing a potentially uninitialized variable in gpio-tqmx86
      
       - fix interrupt registering in gpiolib's character device code
      
      * tag 'gpio-fixes-for-v6.0-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/brgl/linux:
        gpiolib: cdev: Set lineevent_state::irq after IRQ register successfully
        gpio: tqmx86: fix uninitialized variable girq
        gpio: ftgpio010: Make irqchip immutable
        gpio: mockup: Fix potential resource leakage when register a chip
        gpio: mockup: fix NULL pointer dereference when removing debugfs
      5e0a93e4
    • Linus Torvalds's avatar
      Merge tag 'perf-tools-fixes-for-v6.0-2022-09-21' of... · 9597f088
      Linus Torvalds authored
      Merge tag 'perf-tools-fixes-for-v6.0-2022-09-21' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux
      
      Pull perf tools fixes from Arnaldo Carvalho de Melo:
      
       - Fix polling of system-wide events related to mixing per-cpu and
         per-thread events.
      
       - Do not check if /proc/modules is unchanged when copying /proc/kcore,
         that doesn't get in the way of post processing analysis.
      
       - Include program header in ELF files generated for JIT files, so that
         they can be opened by tools using elfutils libraries.
      
       - Enter namespaces when synthesizing build-ids.
      
       - Fix some bugs related to a recent cpu_map overhaul where we should be
         using an index and not the cpu number.
      
       - Fix BPF program ELF section name, using the naming expected by libbpf
         when using BPF counters in 'perf stat'.
      
       - Add a new test for perf stat cgroup BPF counter.
      
       - Adjust check on 'perf test wp' for older kernels, where the
         PERF_EVENT_IOC_MODIFY_ATTRIBUTES ioctl isn't supported.
      
       - Sync x86 cpufeatures with the kernel sources, no changes in tooling.
      
      * tag 'perf-tools-fixes-for-v6.0-2022-09-21' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux:
        perf tools: Honor namespace when synthesizing build-ids
        tools headers cpufeatures: Sync with the kernel sources
        perf kcore_copy: Do not check /proc/modules is unchanged
        libperf evlist: Fix polling of system-wide events
        perf record: Fix cpu mask bit setting for mixed mmaps
        perf test: Skip wp modify test on old kernels
        perf jit: Include program header in ELF files
        perf test: Add a new test for perf stat cgroup BPF counter
        perf stat: Use evsel->core.cpus to iterate cpus in BPF cgroup counters
        perf stat: Fix cpu map index in bperf cgroup code
        perf stat: Fix BPF program section name
      9597f088