Skip to content
  1. Nov 17, 2022
    • Steven Rostedt (Google)'s avatar
      tracing/ring-buffer: Have polling block on watermark · 42fb0a1e
      Steven Rostedt (Google) authored
      Currently the way polling works on the ring buffer is broken. It will
      return immediately if there's any data in the ring buffer whereas a read
      will block until the watermark (defined by the tracefs buffer_percent file)
      is hit.
      
      That is, a select() or poll() will return as if there's data available,
      but then the following read will block. This is broken for the way
      select()s and poll()s are supposed to work.
      
      Have the polling on the ring buffer also block the same way reads and
      splice does on the ring buffer.
      
      Link: https://lkml.kernel.org/r/20221020231427.41be3f26@gandalf.local.home
      
      Cc: Linux Trace Kernel <linux-trace-kernel@vger.kernel.org>
      Cc: Masami Hiramatsu <mhiramat@kernel.org>
      Cc: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
      Cc: Primiano Tucci <primiano@google.com>
      Cc: stable@vger.kernel.org
      Fixes: 1e0d6714
      
       ("ring-buffer: Do not wake up a splice waiter when page is not full")
      Signed-off-by: default avatarSteven Rostedt (Google) <rostedt@goodmis.org>
      42fb0a1e
  2. Nov 14, 2022
  3. Nov 13, 2022
  4. Nov 12, 2022
    • Takashi Iwai's avatar
      ALSA: memalloc: Try dma_alloc_noncontiguous() at first · 9d8e536d
      Takashi Iwai authored
      The latest fix for the non-contiguous memalloc helper changed the
      allocation method for a non-IOMMU system to use only the fallback
      allocator.  This should have worked, but it caused a problem sometimes
      when too many non-contiguous pages are allocated that can't be treated
      by HD-audio controller.
      
      As a quirk workaround, go back to the original strategy: use
      dma_alloc_noncontiguous() at first, and apply the fallback only when
      it fails, but only for non-IOMMU case.
      
      We'll need a better fix in the fallback code as well, but this
      workaround should paper over most cases.
      
      Fixes: 9736a325
      
       ("ALSA: memalloc: Don't fall back for SG-buffer with IOMMU")
      Reported-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      Link: https://lore.kernel.org/r/CAHk-=wgSH5ubdvt76gNwa004ooZAEJL_1Q-Fyw5M2FDdqL==dg@mail.gmail.com
      Link: https://lore.kernel.org/r/20221112084718.3305-1-tiwai@suse.de
      
      
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      9d8e536d
    • Linus Torvalds's avatar
      Merge tag 'ata-6.1-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/dlemoal/libata · 8f2975c2
      Linus Torvalds authored
      Pull ata fixes from Damien Le Moal:
       "Several libata generic code fixes for rc5:
      
         - Add missing translation of the SYNCHRONIZE CACHE 16 scsi command as
           this command is mandatory for host-managed ZBC drives.
      
           The lack of support for it in libata-scsi was causing issues with
           some passthrough applications using ZBC drives (from Shin'ichiro).
      
         - Fix the error path of libata-transport host, port, link and device
           attributes initialization (from Yingliang).
      
         - Prevent issuing new commands to a drive that is in the NCQ error
           state and undergoing recovery (From Niklas).
      
           This bug went unnoticed for a long time as commands issued to a
           drive in error state are aborted immediately and retried by the
           scsi layer, hiding the useless abort-and-retry sequence"
      
      * tag 'ata-6.1-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/dlemoal/libata:
        ata: libata-core: do not issue non-internal commands once EH is pending
        ata: libata-transport: fix error handling in ata_tdev_add()
        ata: libata-transport: fix error handling in ata_tlink_add()
        ata: libata-transport: fix error handling in ata_tport_add()
        ata: libata-transport: fix double ata_host_put() in ata_tport_add()
        ata: libata-scsi: fix SYNCHRONIZE CACHE (16) command failure
      8f2975c2
    • Linus Torvalds's avatar
      Merge tag 'mm-hotfixes-stable-2022-11-11' of git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm · d7c2b1f6
      Linus Torvalds authored
      Pull misc hotfixes from Andrew Morton:
       "22 hotfixes.
      
        Eight are cc:stable and the remainder address issues which were
        introduced post-6.0 or which aren't considered serious enough to
        justify a -stable backport"
      
      * tag 'mm-hotfixes-stable-2022-11-11' of git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm: (22 commits)
        docs: kmsan: fix formatting of "Example report"
        mm/damon/dbgfs: check if rm_contexts input is for a real context
        maple_tree: don't set a new maximum on the node when not reusing nodes
        maple_tree: fix depth tracking in maple_state
        arch/x86/mm/hugetlbpage.c: pud_huge() returns 0 when using 2-level paging
        fs: fix leaked psi pressure state
        nilfs2: fix use-after-free bug of ns_writer on remount
        x86/traps: avoid KMSAN bugs originating from handle_bug()
        kmsan: make sure PREEMPT_RT is off
        Kconfig.debug: ensure early check for KMSAN in CONFIG_KMSAN_WARN
        x86/uaccess: instrument copy_from_user_nmi()
        kmsan: core: kmsan_in_runtime() should return true in NMI context
        mm: hugetlb_vmemmap: include missing linux/moduleparam.h
        mm/shmem: use page_mapping() to detect page cache for uffd continue
        mm/memremap.c: map FS_DAX device memory as decrypted
        Partly revert "mm/thp: carry over dirty bit when thp splits on pmd"
        nilfs2: fix deadlock in nilfs_count_free_blocks()
        mm/mmap: fix memory leak in mmap_region()
        hugetlbfs: don't delete error page from pagecache
        maple_tree: reorganize testing to restore module testing
        ...
      d7c2b1f6
    • Linus Torvalds's avatar
      Merge tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux · 5ad6e7ba
      Linus Torvalds authored
      Pull arm64 fixes from Catalin Marinas:
      
       - Another fix for rodata=full. Since rodata= is not a simple boolean on
         arm64 (accepting 'full' as well), it got inadvertently broken by
         changes in the core code. If rodata=on is the default and rodata=off
         is passed on the kernel command line, rodata_full is never disabled
      
       - Fix gcc compiler warning of shifting 0xc0 into bits 31:24 without an
         explicit conversion to u32 (triggered by the AMPERE1 MIDR definition)
      
       - Include asm/ptrace.h in asm/syscall_wrapper.h to fix an incomplete
         struct pt_regs type causing the BPF verifier to refuse to load a
         tracing program which accesses pt_regs
      
      * tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux:
        arm64/syscall: Include asm/ptrace.h in syscall_wrapper header.
        arm64: Fix bit-shifting UB in the MIDR_CPU_MODEL() macro
        arm64: fix rodata=full again
      5ad6e7ba
    • Niklas Cassel's avatar
      ata: libata-core: do not issue non-internal commands once EH is pending · e20e81a2
      Niklas Cassel authored
      While the ATA specification states that a device should return command
      aborted for all commands queued after the device has entered error state,
      since ATA only keeps the sense data for the latest command (in non-NCQ
      case), we really don't want to send block layer commands to the device
      after it has entered error state. (Only ATA EH commands should be sent,
      to read the sense data etc.)
      
      Currently, scsi_queue_rq() will check if scsi_host_in_recovery()
      (state is SHOST_RECOVERY), and if so, it will _not_ issue a command via:
      scsi_dispatch_cmd() -> host->hostt->queuecommand() (ata_scsi_queuecmd())
      -> __ata_scsi_queuecmd() -> ata_scsi_translate() -> ata_qc_issue()
      
      Before commit e494f6a7 ("[SCSI] improved eh timeout handler"),
      when receiving a TFES error IRQ, the call chain looked like this:
      ahci_error_intr() -> ata_port_abort() -> ata_do_link_abort() ->
      ata_qc_complete() -> ata_qc_schedule_eh() -> blk_abort_request() ->
      blk_rq_timed_out() -> q->rq_timed_out_fn() (scsi_times_out()) ->
      scsi_eh_scmd_add() -> scsi_host_set_state(shost, SHOST_RECOVERY)
      
      Which meant that as soon as an error IRQ was serviced, SHOST_RECOVERY
      would be set.
      
      However, after commit e494f6a7 ("[SCSI] improved eh timeout handler"),
      scsi_times_out() will instead call scsi_abort_command() which will queue
      delayed work, and the worker function scmd_eh_abort_handler() will call
      scsi_eh_scmd_add(), which calls scsi_host_set_state(shost, SHOST_RECOVERY).
      
      So now, after the TFES error IRQ has been serviced, we need to wait for
      the SCSI workqueue to run its work before SHOST_RECOVERY gets set.
      
      It is worth noting that, even before commit e494f6a7 ("[SCSI] improved
      eh timeout handler"), we could receive an error IRQ from the time when
      scsi_queue_rq() checks scsi_host_in_recovery(), to the time when
      ata_scsi_queuecmd() is actually called.
      
      In order to handle both the delayed setting of SHOST_RECOVERY and the
      window where we can receive an error IRQ, add a check against
      ATA_PFLAG_EH_PENDING (which gets set when servicing the error IRQ),
      inside ata_scsi_queuecmd() itself, while holding the ap->lock.
      (Since the ap->lock is held while servicing IRQs.)
      
      Fixes: e494f6a7
      
       ("[SCSI] improved eh timeout handler")
      Signed-off-by: default avatarNiklas Cassel <niklas.cassel@wdc.com>
      Tested-by: default avatarJohn Garry <john.g.garry@oracle.com>
      Signed-off-by: default avatarDamien Le Moal <damien.lemoal@opensource.wdc.com>
      e20e81a2
    • Linus Torvalds's avatar
      Merge tag 'block-6.1-2022-11-11' of git://git.kernel.dk/linux · b0b6e2c9
      Linus Torvalds authored
      Pull block fixes from Jens Axboe:
      
       - NVMe pull request via Christoph:
              - Quiet user passthrough command errors (Keith Busch)
              - Fix memory leak in nvmet_subsys_attr_model_store_locked
              - Fix a memory leak in nvmet-auth (Sagi Grimberg)
      
       - Fix a potential NULL point deref in bfq (Yu)
      
       - Allocate command/response buffers separately for DMA for sed-opal,
         rather than rely on embedded alignment (Serge)
      
      * tag 'block-6.1-2022-11-11' of git://git.kernel.dk/linux:
        nvmet: fix a memory leak
        nvmet: fix memory leak in nvmet_subsys_attr_model_store_locked
        nvme: quiet user passthrough command errors
        block: sed-opal: kmalloc the cmd/resp buffers
        block, bfq: fix null pointer dereference in bfq_bio_bfqg()
      b0b6e2c9
    • Linus Torvalds's avatar
      Merge tag 'io_uring-6.1-2022-11-11' of git://git.kernel.dk/linux · 4e6b2b2e
      Linus Torvalds authored
      Pull io_uring fixes from Jens Axboe:
       "Nothing major, just a few minor tweaks:
      
         - Tweak for the TCP zero-copy io_uring self test (Pavel)
      
         - Rather than use our internal cached value of number of CQ events
           available, use what the user can see (Dylan)
      
         - Fix a typo in a comment, added in this release (me)
      
         - Don't allow wrapping while adding provided buffers (me)
      
         - Fix a double poll race, and add a lockdep assertion for it too
           (Pavel)"
      
      * tag 'io_uring-6.1-2022-11-11' of git://git.kernel.dk/linux:
        io_uring/poll: lockdep annote io_poll_req_insert_locked
        io_uring/poll: fix double poll req->flags races
        io_uring: check for rollover of buffer ID when providing buffers
        io_uring: calculate CQEs from the user visible value
        io_uring: fix typo in io_uring.h comment
        selftests/net: don't tests batched TCP io_uring zc
      4e6b2b2e
    • Linus Torvalds's avatar
      Merge tag 's390-6.1-4' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux · f5020a08
      Linus Torvalds authored
      Pull s390 fixes from Alexander Gordeev:
      
       - fix memcpy warning about field-spanning write in zcrypt driver
      
       - minor updates to defconfigs
      
       - remove CONFIG_DEBUG_INFO_BTF from all defconfigs and add btf.config
         addon config file. It significantly decreases compile time and allows
         quickly enabling that option into the current kernel config
      
       - add kasan.config addon config file which allows to easily enable
         KASAN into the current kernel config
      
       - binutils commit 906f69cf65da ("IBM zSystems: Issue error for *DBL
         relocs on misaligned symbols") caused several link errors. Always
         build relocatable kernel to avoid this problem
      
       - raise the minimum clang version to 15.0.0 to avoid silent generation
         of a corrupted code
      
      * tag 's390-6.1-4' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux:
        scripts/min-tool-version.sh: raise minimum clang version to 15.0.0 for s390
        s390: always build relocatable kernel
        s390/configs: add kasan.config addon config file
        s390/configs: move CONFIG_DEBUG_INFO_BTF into btf.config addon config
        s390: update defconfigs
        s390/zcrypt: fix warning about field-spanning write
      f5020a08
    • Linus Torvalds's avatar
      Merge tag 'hardening-v6.1-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux · df65494f
      Linus Torvalds authored
      Pull kernel hardening fix from Kees Cook:
      
       - Fix !SMP placement of '.data..decrypted' section (Nathan Chancellor)
      
      * tag 'hardening-v6.1-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux:
        vmlinux.lds.h: Fix placement of '.data..decrypted' section
      df65494f
    • Linus Torvalds's avatar
      Merge tag 'nfsd-6.1-4' of git://git.kernel.org/pub/scm/linux/kernel/git/cel/linux · f9bbe0c9
      Linus Torvalds authored
      Pull nfsd fixes from Chuck Lever:
      
       - Fix an export leak
      
       - Fix a potential tracepoint crash
      
      * tag 'nfsd-6.1-4' of git://git.kernel.org/pub/scm/linux/kernel/git/cel/linux:
        nfsd: put the export reference in nfsd4_verify_deleg_dentry
        nfsd: fix use-after-free in nfsd_file_do_acquire tracepoint
      f9bbe0c9
    • Linus Torvalds's avatar
      Merge tag 'fixes_for_v6.1-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs · e2559b79
      Linus Torvalds authored
      Pull UDF fix from Jan Kara:
       "Fix a possible memory corruption with UDF"
      
      * tag 'fixes_for_v6.1-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs:
        udf: Fix a slab-out-of-bounds write bug in udf_find_entry()
      e2559b79
    • Linus Torvalds's avatar
      Merge tag 'perf-tools-fixes-for-v6.1-2-2022-11-10' of... · eb037f16
      Linus Torvalds authored
      Merge tag 'perf-tools-fixes-for-v6.1-2-2022-11-10' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux
      
      Pull perf tools fixes from Arnaldo Carvalho de Melo:
      
       - Fix 'perf stat' crash with --per-node --metric-only in CSV mode, due
         to the AGGR_NODE slot in the 'aggr_header_csv' array not being set.
      
       - Fix printing prefix in CSV output of 'perf stat' metrics in interval
         mode (-I), where an extra separator was being added to the start of
         some lines.
      
       - Fix skipping branch stack sampling 'perf test' entry, that was using
         both --branch-any and --branch-filter, which can't be used together.
      
      * tag 'perf-tools-fixes-for-v6.1-2-2022-11-10' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux:
        perf tools: Add the include/perf/ directory to .gitignore
        perf test: Fix skipping branch stack sampling test
        perf stat: Fix printing os->prefix in CSV metrics output
        perf stat: Fix crash with --per-node --metric-only in CSV mode
      eb037f16
    • Linus Torvalds's avatar
      Merge tag 'riscv-for-linus-6.1-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/riscv/linux · 991f173c
      Linus Torvalds authored
      Pull RISC-V fixes from Palmer Dabbelt:
      
       - A fix to add the missing PWM LEDs into the SiFive HiFive Unleashed
         device tree.
      
       - A fix to fully clear a task's registers on creation, as they end up
         in userspace and thus leak kernel memory.
      
       - A pair of VDSO-related build fixes that manifest on recent LLVM-based
         toolchains.
      
       - A fix to our early init to ensure the DT is adequately processed
         before reserved memory nodes are processed.
      
      * tag 'riscv-for-linus-6.1-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/riscv/linux:
        RISC-V: vdso: Do not add missing symbols to version section in linker script
        riscv: fix reserved memory setup
        riscv: vdso: fix build with llvm
        riscv: process: fix kernel info leakage
        riscv: dts: sifive unleashed: Add PWM controlled LEDs
      991f173c
    • Linus Torvalds's avatar
      Merge tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm · 74bd160f
      Linus Torvalds authored
      Pull kvm
       "This is a pretty large diffstat for this time of the release. The main
        culprit is a reorganization of the AMD assembly trampoline, allowing
        percpu variables to be accessed early.
      
        This is needed for the return stack depth tracking retbleed mitigation
        that will be in 6.2, but it also makes it possible to tighten the IBRS
        restore on vmexit. The latter change is a long tail of the
        spectrev2/retbleed patches (the corresponding Intel change was simpler
        and went in already last June), which is why I am including it right
        now instead of sharing a topic branch with tip.
      
        Being assembly and being rich in comments makes the line count balloon
        a bit, but I am pretty confident in the change (famous last words)
        because the reorganization actually makes everything simpler and more
        understandable than before. It has also had external review and has
        been tested on the aforementioned 6.2 changes, which explode quite
        brutally without the fix.
      
        Apart from this, things are pretty normal.
      
        s390:
      
         - PCI fix
      
         - PV clock fix
      
        x86:
      
         - Fix clash between PMU MSRs and other MSRs
      
         - Prepare SVM assembly trampoline for 6.2 retbleed mitigation and
           for...
      
         - ... tightening IBRS restore on vmexit, moving it before the first
           RET or indirect branch
      
         - Fix log level for VMSA dump
      
         - Block all page faults during kvm_zap_gfn_range()
      
        Tools:
      
         - kvm_stat: fix incorrect detection of debugfs
      
         - kvm_stat: update vmexit definitions"
      
      * tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm:
        KVM: x86/mmu: Block all page faults during kvm_zap_gfn_range()
        KVM: x86/pmu: Limit the maximum number of supported AMD GP counters
        KVM: x86/pmu: Limit the maximum number of supported Intel GP counters
        KVM: x86/pmu: Do not speculatively query Intel GP PMCs that don't exist yet
        KVM: SVM: Only dump VMSA to klog at KERN_DEBUG level
        tools/kvm_stat: update exit reasons for vmx/svm/aarch64/userspace
        tools/kvm_stat: fix incorrect detection of debugfs
        x86, KVM: remove unnecessary argument to x86_virt_spec_ctrl and callers
        KVM: SVM: move MSR_IA32_SPEC_CTRL save/restore to assembly
        KVM: SVM: restore host save area from assembly
        KVM: SVM: move guest vmsave/vmload back to assembly
        KVM: SVM: do not allocate struct svm_cpu_data dynamically
        KVM: SVM: remove dead field from struct svm_cpu_data
        KVM: SVM: remove unused field from struct vcpu_svm
        KVM: SVM: retrieve VMCB from assembly
        KVM: SVM: adjust register allocation for __svm_vcpu_run()
        KVM: SVM: replace regs argument of __svm_vcpu_run() with vcpu_svm
        KVM: x86: use a separate asm-offsets.c file
        KVM: s390: pci: Fix allocation size of aift kzdev elements
        KVM: s390: pv: don't allow userspace to set the clock under PV
      74bd160f
    • Linus Torvalds's avatar
      Merge tag 'hyperv-fixes-signed-20221110' of... · 5be07b3f
      Linus Torvalds authored
      Merge tag 'hyperv-fixes-signed-20221110' of git://git.kernel.org/pub/scm/linux/kernel/git/hyperv/linux
      
      Pull hyperv fixes from Wei Liu:
      
       - Fix TSC MSR write for root partition (Anirudh Rayabharam)
      
       - Fix definition of vector in pci-hyperv driver (Dexuan Cui)
      
       - A few other misc patches
      
      * tag 'hyperv-fixes-signed-20221110' of git://git.kernel.org/pub/scm/linux/kernel/git/hyperv/linux:
        PCI: hv: Fix the definition of vector in hv_compose_msi_msg()
        MAINTAINERS: remove sthemmin
        x86/hyperv: fix invalid writes to MSRs during root partition kexec
        clocksource/drivers/hyperv: add data structure for reference TSC MSR
        Drivers: hv: fix repeated words in comments
        x86/hyperv: Remove BUG_ON() for kmap_local_page()
      5be07b3f
    • Linus Torvalds's avatar
      Merge tag 'dmaengine-fix-6.1' of git://git.kernel.org/pub/scm/linux/kernel/git/vkoul/dmaengine · 91c77a6e
      Linus Torvalds authored
      Pull dmaengine fixes from Vinod Koul:
       "Misc minor driver fixes and a big pile of at_hdmac driver fixes. More
        work on this driver is done and sitting in next:
      
         - Pile of at_hdmac driver rework which fixes many long standing
           issues for this driver.
      
         - couple of stm32 driver fixes for clearing structure and race fix
      
         - idxd fixes for RO device state and batch size
      
         - ti driver mem leak fix
      
         - apple fix for grabbing channels in xlate
      
         - resource leak fix in mv xor"
      
      * tag 'dmaengine-fix-6.1' of git://git.kernel.org/pub/scm/linux/kernel/git/vkoul/dmaengine: (24 commits)
        dmaengine: at_hdmac: Check return code of dma_async_device_register
        dmaengine: at_hdmac: Fix impossible condition
        dmaengine: at_hdmac: Don't allow CPU to reorder channel enable
        dmaengine: at_hdmac: Fix completion of unissued descriptor in case of errors
        dmaengine: at_hdmac: Fix descriptor handling when issuing it to hardware
        dmaengine: at_hdmac: Fix concurrency over the active list
        dmaengine: at_hdmac: Free the memset buf without holding the chan lock
        dmaengine: at_hdmac: Fix concurrency over descriptor
        dmaengine: at_hdmac: Fix concurrency problems by removing atc_complete_all()
        dmaengine: at_hdmac: Protect atchan->status with the channel lock
        dmaengine: at_hdmac: Do not call the complete callback on device_terminate_all
        dmaengine: at_hdmac: Fix premature completion of desc in issue_pending
        dmaengine: at_hdmac: Start transfer for cyclic channels in issue_pending
        dmaengine: at_hdmac: Don't start transactions at tx_submit level
        dmaengine: at_hdmac: Fix at_lli struct definition
        dmaengine: stm32-dma: fix potential race between pause and resume
        dmaengine: ti: k3-udma-glue: fix memory leak when register device fail
        dmaengine: mv_xor_v2: Fix a resource leak in mv_xor_v2_remove()
        dmaengine: apple-admac: Fix grabbing of channels in of_xlate
        dmaengine: idxd: fix RO device state error after been disabled/reset
        ...
      91c77a6e
    • Linus Torvalds's avatar
      Merge tag 'spi-fix-v6.1-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi · a83e18cc
      Linus Torvalds authored
      Pull spi fixes from Mark Brown:
       "A relatively large batch of fixes here but all device specific, plus
        an update to MAINTAINERS.
      
        The summary print change to the STM32 driver is fixing an issue where
        the driver could easily end up spamming the logs with something that
        should be a debug message"
      
      * tag 'spi-fix-v6.1-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi:
        spi: amd: Fix SPI_SPD7 value
        spi: stm32: fix stm32_spi_prepare_mbr() that halves spi clk for every run
        spi: meson-spicc: fix do_div build error on non-arm64
        spi: intel: Use correct mask for flash and protected regions
        spi: mediatek: Fix package division error
        spi: tegra210-quad: Don't initialise DMA if not supported
        MAINTAINERS: Update HiSilicon SFC Driver maintainer
        spi: meson-spicc: move wait completion in driver to take bursts delay in account
        spi: stm32: Print summary 'callbacks suppressed' message
      a83e18cc
    • Linus Torvalds's avatar
      Merge tag 'mmc-v6.1-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/ulfh/mmc · 7c42d6f5
      Linus Torvalds authored
      Pull MMC fixes from Ulf Hansson:
      
       - Provide helper for resetting both SDHCI and CQHCI
      
       - Fix reset for CQHCI (am654, brcmstb, esdhc-imx, of-arasan, tegra)
      
       - Fixup support for MMC_CAP_8_BIT_DATA (esdhc-imx)
      
      * tag 'mmc-v6.1-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/ulfh/mmc:
        mmc: sdhci-esdhc-imx: use the correct host caps for MMC_CAP_8_BIT_DATA
        mmc: sdhci_am654: Fix SDHCI_RESET_ALL for CQHCI
        mmc: sdhci-tegra: Fix SDHCI_RESET_ALL for CQHCI
        mms: sdhci-esdhc-imx: Fix SDHCI_RESET_ALL for CQHCI
        mmc: sdhci-brcmstb: Fix SDHCI_RESET_ALL for CQHCI
        mmc: sdhci-of-arasan: Fix SDHCI_RESET_ALL for CQHCI
        mmc: cqhci: Provide helper for resetting both SDHCI and CQHCI
      7c42d6f5
    • Linus Torvalds's avatar
      Merge tag 'for-linus-2022111101' of git://git.kernel.org/pub/scm/linux/kernel/git/hid/hid · 9c730fe1
      Linus Torvalds authored
      Pull HID fixes from Jiri Kosina:
      
       - fix for memory leak (on error path) in Hyper-V driver (Yang
         Yingliang)
      
       - regression fix for handling 3rd barrel switch emulation in Wacom
         driver (Jason Gerecke)
      
      * tag 'for-linus-2022111101' of git://git.kernel.org/pub/scm/linux/kernel/git/hid/hid:
        HID: wacom: Fix logic used for 3rd barrel switch emulation
        HID: hyperv: fix possible memory leak in mousevsc_probe()
        HID: asus: Remove unused variable in asus_report_tool_width()
      9c730fe1
    • Pavel Begunkov's avatar
    • Pavel Begunkov's avatar
      io_uring/poll: fix double poll req->flags races · 30a33669
      Pavel Begunkov authored
      io_poll_double_prepare()            | io_poll_wake()
                                          | poll->head = NULL
      smp_load(&poll->head); /* NULL */   |
      flags = req->flags;                 |
                                          | req->flags &= ~SINGLE_POLL;
      req->flags = flags | DOUBLE_POLL    |
      
      The idea behind io_poll_double_prepare() is to serialise with the
      first poll entry by taking the wq lock. However, it's not safe to assume
      that io_poll_wake() is not running when we can't grab the lock and so we
      may race modifying req->flags.
      
      Skip double poll setup if that happens. It's ok because the first poll
      entry will only be removed when it's definitely completing, e.g.
      pollfree or oneshot with a valid mask.
      
      Fixes: 49f1c68e
      
       ("io_uring: optimise submission side poll_refs")
      Signed-off-by: default avatarPavel Begunkov <asml.silence@gmail.com>
      Link: https://lore.kernel.org/r/b7fab2d502f6121a7d7b199fe4d914a43ca9cdfd.1668184658.git.asml.silence@gmail.com
      
      
      Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
      30a33669
    • Linus Torvalds's avatar
      Merge tag 'sound-6.1-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound · 64b4aef1
      Linus Torvalds authored
      Pull sound fixes from Takashi Iwai:
       "Things look calming down, as this contains only a few small fixes:
      
         - Fix for a corner-case bug with SG-buffer page allocation helper
      
         - A regression fix for Roland USB-audio device probe
      
         - A potential memory leak fix at the error path
      
         - Handful quirks and device-specific fixes for HD- and USB-audio"
      
      * tag 'sound-6.1-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound:
        ALSA: hda: fix potential memleak in 'add_widget_node'
        ALSA: memalloc: Don't fall back for SG-buffer with IOMMU
        ALSA: usb-audio: add quirk to fix Hamedal C20 disconnect issue
        ALSA: hda/realtek: Add Positivo C6300 model quirk
        ALSA: usb-audio: Add DSD support for Accuphase DAC-60
        ALSA: usb-audio: Add quirk entry for M-Audio Micro
        ALSA: hda/hdmi - enable runtime pm for more AMD display audio
        ALSA: usb-audio: Remove redundant workaround for Roland quirk
        ALSA: usb-audio: Yet more regression for for the delayed card registration
        ALSA: hda/ca0132: add quirk for EVGA Z390 DARK
        ALSA: hda: clarify comments on SCF changes
        ALSA: arm: pxa: pxa2xx-ac97-lib: fix return value check of platform_get_irq()
        ALSA: hda/realtek: Add quirk for ASUS Zenbook using CS35L41
      64b4aef1
    • Linus Torvalds's avatar
      Merge tag 'drm-fixes-2022-11-11' of git://anongit.freedesktop.org/drm/drm · fd979ca6
      Linus Torvalds authored
      Pull drm fixes from Dave Airlie:
       "Weekly pull request for graphics, mostly amdgpu and i915, with a
        couple of fixes for vc4 and panfrost, panel quirks and a kconfig
        change for rcar-du. Nothing seems to be too strange at this stage.
      
        amdgpu:
         - Fix s/r in amdgpu_vram_mgr_new
         - SMU 13.0.4 update
         - GPUVM TLB race fix
         - DCN 3.1.4 fixes
         - DCN 3.2.x fixes
         - Vega10 fan fix
         - BACO fix for Beige Goby board
         - PSR fix
         - GPU VM PT locking fixes
      
        amdkfd:
         - CRIU fixes
      
        vc4:
         - HDMI fixes to vc4.
      
        panfrost:
         - Make panfrost's uapi header compile with C++.
         - Handle 1 gb boundary correctly in panfrost mmu code.
      
        panel:
         - Add rotation quirks for 2 panels.
      
        rcar-du:
         - DSI Kconfig fix
      
        i915:
         - Fix sg_table handling in map_dma_buf
         - Send PSR update also on invalidate
         - Do not set cache_dirty for DGFX
         - Restore userptr probe_range behaviour"
      
      * tag 'drm-fixes-2022-11-11' of git://anongit.freedesktop.org/drm/drm: (29 commits)
        drm/amd/display: only fill dirty rectangles when PSR is enabled
        drm/amdgpu: disable BACO on special BEIGE_GOBY card
        drm/amdgpu: Drop eviction lock when allocating PT BO
        drm/amdgpu: Unlock bo_list_mutex after error handling
        Revert "drm/amdgpu: Revert "drm/amdgpu: getting fan speed pwm for vega10 properly""
        drm/amd/display: Enforce minimum prefetch time for low memclk on DCN32
        drm/amd/display: Fix gpio port mapping issue
        drm/amd/display: Fix reg timeout in enc314_enable_fifo
        drm/amd/display: Fix FCLK deviation and tool compile issues
        drm/amd/display: Zeromem mypipe heap struct before using it
        drm/amd/display: Update SR watermarks for DCN314
        drm/amdgpu: workaround for TLB seq race
        drm/amdkfd: Fix error handling in criu_checkpoint
        drm/amdkfd: Fix error handling in kfd_criu_restore_events
        drm/amd/pm: update SMU IP v13.0.4 msg interface header
        drm: rcar-du: Fix Kconfig dependency between RCAR_DU and RCAR_MIPI_DSI
        drm/panfrost: Split io-pgtable requests properly
        drm/amdgpu: Fix the lpfn checking condition in drm buddy
        drm: panel-orientation-quirks: Add quirk for Acer Switch V 10 (SW5-017)
        drm: panel-orientation-quirks: Add quirk for Nanote UMPC-01
        ...
      fd979ca6
  5. Nov 11, 2022
    • Jason A. Donenfeld's avatar
      MIPS: pic32: treat port as signed integer · 64806090
      Jason A. Donenfeld authored
      
      
      get_port_from_cmdline() returns an int, yet is assigned to a char, which
      is wrong in its own right, but also, with char becoming unsigned, this
      poses problems, because -1 is used as an error value. Further
      complicating things, fw_init_early_console() is only ever called with a
      -1 argument. Fix this up by removing the unused argument from
      fw_init_early_console() and treating port as a proper signed integer.
      
      Cc: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
      Signed-off-by: default avatarJason A. Donenfeld <Jason@zx2c4.com>
      Signed-off-by: default avatarThomas Bogendoerfer <tsbogend@alpha.franken.de>
      64806090
    • Jiaxun Yang's avatar
      MIPS: jump_label: Fix compat branch range check · 64ac0bef
      Jiaxun Yang authored
      Cast upper bound of branch range to long to do signed compare,
      avoid negative offset trigger this warning.
      
      Fixes: 9b6584e3
      
       ("MIPS: jump_label: Use compact branches for >= r6")
      Signed-off-by: default avatarJiaxun Yang <jiaxun.yang@flygoat.com>
      Cc: stable@vger.kernel.org
      Reviewed-by: default avatarPhilippe Mathieu-Daudé <philmd@linaro.org>
      Signed-off-by: default avatarThomas Bogendoerfer <tsbogend@alpha.franken.de>
      64ac0bef
    • Linus Walleij's avatar
      mips: alchemy: gpio: Include the right header · 2a296157
      Linus Walleij authored
      
      
      The local GPIO driver in the MIPS Alchemy is including the legacy
      <linux/gpio.h> header but what it wants is to implement a GPIO
      driver so include <linux/gpio/driver.h> instead.
      
      Cc: Bartosz Golaszewski <brgl@bgdev.pl>
      Cc: linux-gpio@vger.kernel.org
      Reviewed-by: default avatarPhilippe Mathieu-Daudé <philmd@linaro.org>
      Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
      Signed-off-by: default avatarThomas Bogendoerfer <tsbogend@alpha.franken.de>
      2a296157
    • Liao Chang's avatar
      MIPS: Loongson64: Add WARN_ON on kexec related kmalloc failed · fa706927
      Liao Chang authored
      Add WARN_ON on kexec related kmalloc failed, avoid to pass NULL pointer
      to following memcpy and loongson_kexec_prepare.
      
      Fixes: 6ce48897
      
       ("MIPS: Loongson64: Add kexec/kdump support")
      Signed-off-by: default avatarLiao Chang <liaochang1@huawei.com>
      Signed-off-by: default avatarThomas Bogendoerfer <tsbogend@alpha.franken.de>
      fa706927
    • Rongwei Zhang's avatar
      MIPS: fix duplicate definitions for exported symbols · 612d8078
      Rongwei Zhang authored
      Building with clang-14 fails with:
      
      AS      arch/mips/kernel/relocate_kernel.o
      <unknown>:0: error: symbol 'kexec_args' is already defined
      <unknown>:0: error: symbol 'secondary_kexec_args' is already defined
      <unknown>:0: error: symbol 'kexec_start_address' is already defined
      <unknown>:0: error: symbol 'kexec_indirection_page' is already defined
      <unknown>:0: error: symbol 'relocate_new_kernel_size' is already defined
      
      It turns out EXPORT defined in asm/asm.h expands to a symbol definition,
      so there is no need to define these symbols again. Remove duplicated
      symbol definitions.
      
      Fixes: 7aa1c8f4
      
       ("MIPS: kdump: Add support")
      Signed-off-by: default avatarRongwei Zhang <pudh4418@gmail.com>
      Reviewed-by: default avatarNathan Chancellor <nathan@kernel.org>
      Signed-off-by: default avatarThomas Bogendoerfer <tsbogend@alpha.franken.de>
      612d8078
    • John Thomson's avatar
      mips: boot/compressed: use __NO_FORTIFY · 62776e43
      John Thomson authored
      In the mips CONFIG_SYS_SUPPORTS_ZBOOT kernel, fix the compile error
      when using CONFIG_FORTIFY_SOURCE=y
      
      LD      vmlinuz
      mipsel-openwrt-linux-musl-ld: arch/mips/boot/compressed/decompress.o: in
      function `decompress_kernel':
      ./include/linux/decompress/mm.h:(.text.decompress_kernel+0x177c):
      undefined reference to `warn_slowpath_fmt'
      
      kernel test robot helped identify this as related to fortify. The error
      appeared with commit 54d9469b ("fortify: Add run-time WARN for
      cross-field memcpy()")
      Link: https://lore.kernel.org/r/202209161144.x9xSqNQZ-lkp@intel.com/
      
      Resolve this in the same style as commit cfecea6e
      
       ("lib/string:
      Move helper functions out of string.c")
      
      Reported-by: default avatarkernel test robot <lkp@intel.com>
      Fixes: 54d9469b
      
       ("fortify: Add run-time WARN for cross-field memcpy()")
      Reviewed-by: default avatarKees Cook <keescook@chromium.org>
      Signed-off-by: default avatarJohn Thomson <git@johnthomson.fastmail.com.au>
      Signed-off-by: default avatarThomas Bogendoerfer <tsbogend@alpha.franken.de>
      62776e43
    • Sean Christopherson's avatar
      KVM: x86/mmu: Block all page faults during kvm_zap_gfn_range() · 6d3085e4
      Sean Christopherson authored
      When zapping a GFN range, pass 0 => ALL_ONES for the to-be-invalidated
      range to effectively block all page faults while the zap is in-progress.
      The invalidation helpers take a host virtual address, whereas zapping a
      GFN obviously provides a guest physical address and with the wrong unit
      of measurement (frame vs. byte).
      
      Alternatively, KVM could walk all memslots to get the associated HVAs,
      but thanks to SMM, that would require multiple lookups.  And practically
      speaking, kvm_zap_gfn_range() usage is quite rare and not a hot path,
      e.g. MTRR and CR0.CD are almost guaranteed to be done only on vCPU0
      during boot, and APICv inhibits are similarly infrequent operations.
      
      Fixes: edb298c6
      
       ("KVM: x86/mmu: bump mmu notifier count in kvm_zap_gfn_range")
      Reported-by: default avatarChao Peng <chao.p.peng@linux.intel.com>
      Cc: stable@vger.kernel.org
      Cc: Maxim Levitsky <mlevitsk@redhat.com>
      Signed-off-by: default avatarSean Christopherson <seanjc@google.com>
      Message-Id: <20221111001841.2412598-1-seanjc@google.com>
      Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
      6d3085e4
    • Yang Yingliang's avatar
      ata: libata-transport: fix error handling in ata_tdev_add() · 1ff36351
      Yang Yingliang authored
      In ata_tdev_add(), the return value of transport_add_device() is
      not checked. As a result, it causes null-ptr-deref while removing
      the module, because transport_remove_device() is called to remove
      the device that was not added.
      
      Unable to handle kernel NULL pointer dereference at virtual address 00000000000000d0
      CPU: 13 PID: 13603 Comm: rmmod Kdump: loaded Tainted: G        W          6.1.0-rc3+ #36
      pstate: 60400009 (nZCv daif +PAN -UAO -TCO -DIT -SSBS BTYPE=--)
      pc : device_del+0x48/0x3a0
      lr : device_del+0x44/0x3a0
      Call trace:
       device_del+0x48/0x3a0
       attribute_container_class_device_del+0x28/0x40
       transport_remove_classdev+0x60/0x7c
       attribute_container_device_trigger+0x118/0x120
       transport_remove_device+0x20/0x30
       ata_tdev_delete+0x24/0x50 [libata]
       ata_tlink_delete+0x40/0xa0 [libata]
       ata_tport_delete+0x2c/0x60 [libata]
       ata_port_detach+0x148/0x1b0 [libata]
       ata_pci_remove_one+0x50/0x80 [libata]
       ahci_remove_one+0x4c/0x8c [ahci]
      
      Fix this by checking and handling return value of transport_add_device()
      in ata_tdev_add(). In the error path, device_del() is called to delete
      the device which was added earlier in this function, and ata_tdev_free()
      is called to free ata_dev.
      
      Fixes: d9027470
      
       ("[libata] Add ATA transport class")
      Signed-off-by: default avatarYang Yingliang <yangyingliang@huawei.com>
      Signed-off-by: default avatarDamien Le Moal <damien.lemoal@opensource.wdc.com>
      1ff36351
    • Yang Yingliang's avatar
      ata: libata-transport: fix error handling in ata_tlink_add() · cf0816f6
      Yang Yingliang authored
      In ata_tlink_add(), the return value of transport_add_device() is
      not checked. As a result, it causes null-ptr-deref while removing
      the module, because transport_remove_device() is called to remove
      the device that was not added.
      
      Unable to handle kernel NULL pointer dereference at virtual address 00000000000000d0
      CPU: 33 PID: 13850 Comm: rmmod Kdump: loaded Tainted: G        W          6.1.0-rc3+ #12
      pstate: 60400009 (nZCv daif +PAN -UAO -TCO -DIT -SSBS BTYPE=--)
      pc : device_del+0x48/0x39c
      lr : device_del+0x44/0x39c
      Call trace:
       device_del+0x48/0x39c
       attribute_container_class_device_del+0x28/0x40
       transport_remove_classdev+0x60/0x7c
       attribute_container_device_trigger+0x118/0x120
       transport_remove_device+0x20/0x30
       ata_tlink_delete+0x88/0xb0 [libata]
       ata_tport_delete+0x2c/0x60 [libata]
       ata_port_detach+0x148/0x1b0 [libata]
       ata_pci_remove_one+0x50/0x80 [libata]
       ahci_remove_one+0x4c/0x8c [ahci]
      
      Fix this by checking and handling return value of transport_add_device()
      in ata_tlink_add().
      
      Fixes: d9027470
      
       ("[libata] Add ATA transport class")
      Signed-off-by: default avatarYang Yingliang <yangyingliang@huawei.com>
      Signed-off-by: default avatarDamien Le Moal <damien.lemoal@opensource.wdc.com>
      cf0816f6
    • Yang Yingliang's avatar
      ata: libata-transport: fix error handling in ata_tport_add() · 3613dbe3
      Yang Yingliang authored
      In ata_tport_add(), the return value of transport_add_device() is
      not checked. As a result, it causes null-ptr-deref while removing
      the module, because transport_remove_device() is called to remove
      the device that was not added.
      
      Unable to handle kernel NULL pointer dereference at virtual address 00000000000000d0
      CPU: 12 PID: 13605 Comm: rmmod Kdump: loaded Tainted: G        W          6.1.0-rc3+ #8
      pstate: 60400009 (nZCv daif +PAN -UAO -TCO -DIT -SSBS BTYPE=--)
      pc : device_del+0x48/0x39c
      lr : device_del+0x44/0x39c
      Call trace:
       device_del+0x48/0x39c
       attribute_container_class_device_del+0x28/0x40
       transport_remove_classdev+0x60/0x7c
       attribute_container_device_trigger+0x118/0x120
       transport_remove_device+0x20/0x30
       ata_tport_delete+0x34/0x60 [libata]
       ata_port_detach+0x148/0x1b0 [libata]
       ata_pci_remove_one+0x50/0x80 [libata]
       ahci_remove_one+0x4c/0x8c [ahci]
      
      Fix this by checking and handling return value of transport_add_device()
      in ata_tport_add().
      
      Fixes: d9027470
      
       ("[libata] Add ATA transport class")
      Signed-off-by: default avatarYang Yingliang <yangyingliang@huawei.com>
      Signed-off-by: default avatarDamien Le Moal <damien.lemoal@opensource.wdc.com>
      3613dbe3
    • Yang Yingliang's avatar
      ata: libata-transport: fix double ata_host_put() in ata_tport_add() · 8c763107
      Yang Yingliang authored
      In the error path in ata_tport_add(), when calling put_device(),
      ata_tport_release() is called, it will put the refcount of 'ap->host'.
      
      And then ata_host_put() is called again, the refcount is decreased
      to 0, ata_host_release() is called, all ports are freed and set to
      null.
      
      When unbinding the device after failure, ata_host_stop() is called
      to release the resources, it leads a null-ptr-deref(), because all
      the ports all freed and null.
      
      Unable to handle kernel NULL pointer dereference at virtual address 0000000000000008
      CPU: 7 PID: 18671 Comm: modprobe Kdump: loaded Tainted: G            E      6.1.0-rc3+ #8
      pstate: 80400009 (Nzcv daif +PAN -UAO -TCO -DIT -SSBS BTYPE=--)
      pc : ata_host_stop+0x3c/0x84 [libata]
      lr : release_nodes+0x64/0xd0
      Call trace:
       ata_host_stop+0x3c/0x84 [libata]
       release_nodes+0x64/0xd0
       devres_release_all+0xbc/0x1b0
       device_unbind_cleanup+0x20/0x70
       really_probe+0x158/0x320
       __driver_probe_device+0x84/0x120
       driver_probe_device+0x44/0x120
       __driver_attach+0xb4/0x220
       bus_for_each_dev+0x78/0xdc
       driver_attach+0x2c/0x40
       bus_add_driver+0x184/0x240
       driver_register+0x80/0x13c
       __pci_register_driver+0x4c/0x60
       ahci_pci_driver_init+0x30/0x1000 [ahci]
      
      Fix this by removing redundant ata_host_put() in the error path.
      
      Fixes: 2623c7a5
      
       ("libata: add refcounting to ata_host")
      Signed-off-by: default avatarYang Yingliang <yangyingliang@huawei.com>
      Signed-off-by: default avatarDamien Le Moal <damien.lemoal@opensource.wdc.com>
      8c763107