1. 24 Apr, 2022 3 commits
    • Linus Torvalds's avatar
      kvmalloc: use vmalloc_huge for vmalloc allocations · 9becb688
      Linus Torvalds authored
      Since commit 559089e0 ("vmalloc: replace VM_NO_HUGE_VMAP with
      VM_ALLOW_HUGE_VMAP"), the use of hugepage mappings for vmalloc is an
      opt-in strategy, because it caused a number of problems that weren't
      noticed until x86 enabled it too.
      
      One of the issues was fixed by Nick Piggin in commit 3b8000ae
      ("mm/vmalloc: huge vmalloc backing pages should be split rather than
      compound"), but I'm still worried about page protection issues, and
      VM_FLUSH_RESET_PERMS in particular.
      
      However, like the hash table allocation case (commit f2edd118:
      "page_alloc: use vmalloc_huge for large system hash"), the use of
      kvmalloc() should be safe from any such games, since the returned
      pointer might be a SLUB allocation, and as such no user should
      reasonably be using it in any odd ways.
      
      We also know that the allocations are fairly large, since it falls back
      to the vmalloc case only when a kmalloc() fails.  So using a hugepage
      mapping seems both safe and relevant.
      
      This patch does show a weakness in the opt-in strategy: since the opt-in
      flag is in the 'vm_flags', not the usual gfp_t allocation flags, very
      few of the usual interfaces actually expose it.
      
      That's not much of an issue in this case that already used one of the
      fairly specialized low-level vmalloc interfaces for the allocation, but
      for a lot of other vmalloc() users that might want to opt in, it's going
      to be very inconvenient.
      
      We'll either have to fix any compatibility problems, or expose it in the
      gfp flags (__GFP_COMP would have made a lot of sense) to allow normal
      vmalloc() users to use hugepage mappings.  That said, the cases that
      really matter were probably already taken care of by the hash tabel
      allocation.
      
      Link: https://lore.kernel.org/all/20220415164413.2727220-1-song@kernel.org/
      Link: https://lore.kernel.org/all/CAHk-=whao=iosX1s5Z4SF-ZGa-ebAukJoAdUJFk5SPwnofV+Vg@mail.gmail.com/
      Cc: Nicholas Piggin <npiggin@gmail.com>
      Cc: Paul Menzel <pmenzel@molgen.mpg.de>
      Cc: Song Liu <songliubraving@fb.com>
      Cc: Rick Edgecombe <rick.p.edgecombe@intel.com>
      Cc: Andrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      9becb688
    • Song Liu's avatar
      page_alloc: use vmalloc_huge for large system hash · f2edd118
      Song Liu authored
      Use vmalloc_huge() in alloc_large_system_hash() so that large system
      hash (>= PMD_SIZE) could benefit from huge pages.
      
      Note that vmalloc_huge only allocates huge pages for systems with
      HAVE_ARCH_HUGE_VMALLOC.
      Signed-off-by: default avatarSong Liu <song@kernel.org>
      Reviewed-by: default avatarChristoph Hellwig <hch@lst.de>
      Reviewed-by: default avatarRik van Riel <riel@surriel.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      f2edd118
    • Linus Torvalds's avatar
      Merge tag '5.18-rc3-ksmbd-fixes' of git://git.samba.org/ksmbd · 22da5264
      Linus Torvalds authored
      Pull ksmbd server fixes from Steve French:
      
       - cap maximum sector size reported to avoid mount problems
      
       - reference count fix
      
       - fix filename rename race
      
      * tag '5.18-rc3-ksmbd-fixes' of git://git.samba.org/ksmbd:
        ksmbd: set fixed sector size to FS_SECTOR_SIZE_INFORMATION
        ksmbd: increment reference count of parent fp
        ksmbd: remove filename in ksmbd_file
      22da5264
  2. 23 Apr, 2022 13 commits
    • Linus Torvalds's avatar
      Merge tag 'arc-5.18-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/vgupta/arc · f3935926
      Linus Torvalds authored
      Pull ARC fixes from Vineet Gupta:
      
       - Assorted fixes
      
      * tag 'arc-5.18-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/vgupta/arc:
        ARC: remove redundant READ_ONCE() in cmpxchg loop
        ARC: atomic: cleanup atomic-llsc definitions
        arc: drop definitions of pgd_index() and pgd_offset{, _k}() entirely
        ARC: dts: align SPI NOR node name with dtschema
        ARC: Remove a redundant memset()
        ARC: fix typos in comments
        ARC: entry: fix syscall_trace_exit argument
      f3935926
    • Linus Torvalds's avatar
      Merge tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi · 6fc2586d
      Linus Torvalds authored
      Pull SCSI fix from James Bottomley:
       "One fix for an information leak caused by copying a buffer to
        userspace without checking for error first in the sr driver"
      
      * tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi:
        scsi: sr: Do not leak information in ioctl
      6fc2586d
    • Linus Torvalds's avatar
      Merge tag 'for-linus-5.18-rc4-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip · b51bd23c
      Linus Torvalds authored
      Pull xen fixes from Juergen Gross:
       "A simple cleanup patch and a refcount fix for Xen on Arm"
      
      * tag 'for-linus-5.18-rc4-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip:
        arm/xen: Fix some refcount leaks
        xen: Convert kmap() to kmap_local_page()
      b51bd23c
    • Linus Torvalds's avatar
      Merge tag 'drm-fixes-2022-04-23' of git://anongit.freedesktop.org/drm/drm · 13bc32ba
      Linus Torvalds authored
      Pull more drm fixes from Dave Airlie:
       "Maarten was away, so Maxine stepped up and sent me the drm-fixes
        merge, so no point leaving it for another week.
      
        The big change is an OF revert around bridge/panels, it may have some
        driver fallout, but hopefully this revert gets them shook out in the
        next week easier.
      
        Otherwise it's a bunch of locking/refcounts across drivers, a radeon
        dma_resv logic fix and some raspberry pi panel fixes.
      
        panel:
         - revert of patch that broke panel/bridge issues
      
        dma-buf:
         - remove unused header file.
      
        amdgpu:
         - partial revert of locking change
      
        radeon:
         - fix dma_resv logic inversion
      
        panel:
         - pi touchscreen panel init fixes
      
        vc4:
         - build fix
         - runtime pm refcount fix
      
        vmwgfx:
         - refcounting fix"
      
      * tag 'drm-fixes-2022-04-23' of git://anongit.freedesktop.org/drm/drm:
        drm/amdgpu: partial revert "remove ctx->lock" v2
        Revert "drm: of: Lookup if child node has panel or bridge"
        Revert "drm: of: Properly try all possible cases for bridge/panel detection"
        drm/vc4: Use pm_runtime_resume_and_get to fix pm_runtime_get_sync() usage
        drm/vmwgfx: Fix gem refcounting and memory evictions
        drm/vc4: Fix build error when CONFIG_DRM_VC4=y && CONFIG_RASPBERRYPI_FIRMWARE=m
        drm/panel/raspberrypi-touchscreen: Initialise the bridge in prepare
        drm/panel/raspberrypi-touchscreen: Avoid NULL deref if not initialised
        dma-buf-map: remove renamed header file
        drm/radeon: fix logic inversion in radeon_sync_resv
      13bc32ba
    • Linus Torvalds's avatar
      Merge tag 'input-for-v5.18-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input · 0fe86b27
      Linus Torvalds authored
      Pull input fixes from Dmitry Torokhov:
      
       - a new set of keycodes to be used by marine navigation systems
      
       - minor fixes to omap4-keypad and cypress-sf drivers
      
      * tag 'input-for-v5.18-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input:
        Input: add Marine Navigation Keycodes
        Input: omap4-keypad - fix pm_runtime_get_sync() error checking
        Input: cypress-sf - register a callback to disable the regulators
      0fe86b27
    • Linus Torvalds's avatar
      Merge tag 'block-5.18-2022-04-22' of git://git.kernel.dk/linux-block · 8467f9e3
      Linus Torvalds authored
      Pull block fixes from Jens Axboe:
       "Just two small regression fixes for bcache"
      
      * tag 'block-5.18-2022-04-22' of git://git.kernel.dk/linux-block:
        bcache: fix wrong bdev parameter when calling bio_alloc_clone() in do_bio_hook()
        bcache: put bch_bio_map() back to correct location in journal_write_unlocked()
      8467f9e3
    • Linus Torvalds's avatar
      Merge tag 'io_uring-5.18-2022-04-22' of git://git.kernel.dk/linux-block · 1f5e98e7
      Linus Torvalds authored
      Pull io_uring fixes from Jens Axboe:
       "Just two small fixes - one fixing a potential leak for the iovec for
        larger requests added in this cycle, and one fixing a theoretical leak
        with CQE_SKIP and IOPOLL"
      
      * tag 'io_uring-5.18-2022-04-22' of git://git.kernel.dk/linux-block:
        io_uring: fix leaks on IOPOLL and CQE_SKIP
        io_uring: free iovec if file assignment fails
      1f5e98e7
    • Linus Torvalds's avatar
      Merge tag 'perf-tools-fixes-for-v5.18-2022-04-22' of... · 45ab9400
      Linus Torvalds authored
      Merge tag 'perf-tools-fixes-for-v5.18-2022-04-22' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux
      
      Pull perf tools fixes from Arnaldo Carvalho de Melo:
      
       - Fix header include for LLVM >= 14 when building with libclang.
      
       - Allow access to 'data_src' for auxtrace in 'perf script' with ARM SPE
         perf.data files, fixing processing data with such attributes.
      
       - Fix error message for test case 71 ("Convert perf time to TSC") on
         s390, where it is not supported.
      
      * tag 'perf-tools-fixes-for-v5.18-2022-04-22' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux:
        perf test: Fix error message for test case 71 on s390, where it is not supported
        perf report: Set PERF_SAMPLE_DATA_SRC bit for Arm SPE event
        perf script: Always allow field 'data_src' for auxtrace
        perf clang: Fix header include for LLVM >= 14
      45ab9400
    • Randy Dunlap's avatar
      sparc: cacheflush_32.h needs struct page · 9423edfc
      Randy Dunlap authored
      Add a struct page forward declaration to cacheflush_32.h.
      Fixes this build warning:
      
          CC      drivers/crypto/xilinx/zynqmp-sha.o
        In file included from arch/sparc/include/asm/cacheflush.h:11,
                         from include/linux/cacheflush.h:5,
                         from drivers/crypto/xilinx/zynqmp-sha.c:6:
        arch/sparc/include/asm/cacheflush_32.h:38:37: warning: 'struct page' declared inside parameter list will not be visible outside of this definition or declaration
           38 | void sparc_flush_page_to_ram(struct page *page);
      
      Exposed by commit 0e03b8fd ("crypto: xilinx - Turn SHA into a
      tristate and allow COMPILE_TEST") but not Fixes: that commit because the
      underlying problem is older.
      Signed-off-by: default avatarRandy Dunlap <rdunlap@infradead.org>
      Reported-by: default avatarkernel test robot <lkp@intel.com>
      Cc: Herbert Xu <herbert@gondor.apana.org.au>
      Cc: David S. Miller <davem@davemloft.net>
      Cc: Sam Ravnborg <sam@ravnborg.org>
      Cc: sparclinux@vger.kernel.org
      Acked-by: default avatarSam Ravnborg <sam@ravnborg.org>
      Acked-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      9423edfc
    • Dave Airlie's avatar
      Merge tag 'drm-misc-fixes-2022-04-22' of git://anongit.freedesktop.org/drm/drm-misc into drm-fixes · c18a2a28
      Dave Airlie authored
      Two fixes for the raspberrypi panel initialisation, one fix for a logic
      inversion in radeon, a build and pm refcounting fix for vc4, two reverts
      for drm_of_get_bridge that caused a number of regression and a locking
      regression for amdgpu.
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      
      From: Maxime Ripard <maxime@cerno.tech>
      Link: https://patchwork.freedesktop.org/patch/msgid/20220422084403.2xrhf3jusdej5yo4@houat
      c18a2a28
    • Linus Torvalds's avatar
      Merge tag 'ext4_for_linus_stable' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4 · c00c5e1d
      Linus Torvalds authored
      Pull ext4 fixes from Ted Ts'o:
       "Fix some syzbot-detected bugs, as well as other bugs found by I/O
        injection testing.
      
        Change ext4's fallocate to consistently drop set[ug]id bits when an
        fallocate operation might possibly change the user-visible contents of
        a file.
      
        Also, improve handling of potentially invalid values in the the
        s_overhead_cluster superblock field to avoid ext4 returning a negative
        number of free blocks"
      
      * tag 'ext4_for_linus_stable' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4:
        jbd2: fix a potential race while discarding reserved buffers after an abort
        ext4: update the cached overhead value in the superblock
        ext4: force overhead calculation if the s_overhead_cluster makes no sense
        ext4: fix overhead calculation to account for the reserved gdt blocks
        ext4, doc: fix incorrect h_reserved size
        ext4: limit length to bitmap_maxbytes - blocksize in punch_hole
        ext4: fix use-after-free in ext4_search_dir
        ext4: fix bug_on in start_this_handle during umount filesystem
        ext4: fix symlink file size not match to file content
        ext4: fix fallocate to use file_modified to update permissions consistently
      c00c5e1d
    • Linus Torvalds's avatar
      Merge tag 'ata-5.18-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/dlemoal/libata · 2e5991fa
      Linus Torvalds authored
      Pull ATA fix from Damien Le Moal:
       "A single fix to avoid a NULL pointer dereference in the pata_marvell
        driver with adapters not supporting DMA, from Zheyu"
      
      * tag 'ata-5.18-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/dlemoal/libata:
        ata: pata_marvell: Check the 'bmdma_addr' beforing reading
      2e5991fa
    • Linus Torvalds's avatar
      Merge tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm · bb4ce2c6
      Linus Torvalds authored
      Pull kvm fixes from Paolo Bonzini:
       "The main and larger change here is a workaround for AMD's lack of
        cache coherency for encrypted-memory guests.
      
        I have another patch pending, but it's waiting for review from the
        architecture maintainers.
      
        RISC-V:
      
         - Remove 's' & 'u' as valid ISA extension
      
         - Do not allow disabling the base extensions 'i'/'m'/'a'/'c'
      
        x86:
      
         - Fix NMI watchdog in guests on AMD
      
         - Fix for SEV cache incoherency issues
      
         - Don't re-acquire SRCU lock in complete_emulated_io()
      
         - Avoid NULL pointer deref if VM creation fails
      
         - Fix race conditions between APICv disabling and vCPU creation
      
         - Bugfixes for disabling of APICv
      
         - Preserve BSP MSR_KVM_POLL_CONTROL across suspend/resume
      
        selftests:
      
         - Do not use bitfields larger than 32-bits, they differ between GCC
           and clang"
      
      * tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm:
        kvm: selftests: introduce and use more page size-related constants
        kvm: selftests: do not use bitfields larger than 32-bits for PTEs
        KVM: SEV: add cache flush to solve SEV cache incoherency issues
        KVM: SVM: Flush when freeing encrypted pages even on SME_COHERENT CPUs
        KVM: SVM: Simplify and harden helper to flush SEV guest page(s)
        KVM: selftests: Silence compiler warning in the kvm_page_table_test
        KVM: x86/pmu: Update AMD PMC sample period to fix guest NMI-watchdog
        x86/kvm: Preserve BSP MSR_KVM_POLL_CONTROL across suspend/resume
        KVM: SPDX style and spelling fixes
        KVM: x86: Skip KVM_GUESTDBG_BLOCKIRQ APICv update if APICv is disabled
        KVM: x86: Pend KVM_REQ_APICV_UPDATE during vCPU creation to fix a race
        KVM: nVMX: Defer APICv updates while L2 is active until L1 is active
        KVM: x86: Tag APICv DISABLE inhibit, not ABSENT, if APICv is disabled
        KVM: Initialize debugfs_dentry when a VM is created to avoid NULL deref
        KVM: Add helpers to wrap vcpu->srcu_idx and yell if it's abused
        KVM: RISC-V: Use kvm_vcpu.srcu_idx, drop RISC-V's unnecessary copy
        KVM: x86: Don't re-acquire SRCU lock in complete_emulated_io()
        RISC-V: KVM: Restrict the extensions that can be disabled
        RISC-V: KVM: Remove 's' & 'u' as valid ISA extension
      bb4ce2c6
  3. 22 Apr, 2022 24 commits