1. 30 Mar, 2022 2 commits
    • Palmer Dabbelt's avatar
      RISC-V CPU Idle Support · bee7fbc3
      Palmer Dabbelt authored
      This series adds RISC-V CPU Idle support using SBI HSM suspend function.
      The RISC-V SBI CPU idle driver added by this series is highly inspired
      from the ARM PSCI CPU idle driver.
      
      Special thanks Sandeep Tripathy for providing early feeback on SBI HSM
      support in all above projects (RISC-V SBI specification, OpenSBI, and
      Linux RISC-V).
      
      * palmer/riscv-idle:
        RISC-V: Enable RISC-V SBI CPU Idle driver for QEMU virt machine
        dt-bindings: Add common bindings for ARM and RISC-V idle states
        cpuidle: Add RISC-V SBI CPU idle driver
        cpuidle: Factor-out power domain related code from PSCI domain driver
        RISC-V: Add SBI HSM suspend related defines
        RISC-V: Add arch functions for non-retentive suspend entry/exit
        RISC-V: Rename relocate() and make it global
        RISC-V: Enable CPU_IDLE drivers
      bee7fbc3
    • Kees Cook's avatar
      riscv: Rename "sp_in_global" to "current_stack_pointer" · fdecfea0
      Kees Cook authored
      To follow the existing per-arch conventions, rename "sp_in_global" to
      "current_stack_pointer". This will let it be used in non-arch places
      (like HARDENED_USERCOPY).
      Signed-off-by: default avatarKees Cook <keescook@chromium.org>
      Signed-off-by: default avatarPalmer Dabbelt <palmer@rivosinc.com>
      fdecfea0
  2. 29 Mar, 2022 1 commit
  3. 25 Mar, 2022 13 commits
    • Linus Torvalds's avatar
      Merge tag 'riscv-for-linus-5.18-mw0' of git://git.kernel.org/pub/scm/linux/kernel/git/riscv/linux · aa5b537b
      Linus Torvalds authored
      Pull RISC-V updates from Palmer Dabbelt:
      
       - Support for Sv57-based virtual memory.
      
       - Various improvements for the MicroChip PolarFire SOC and the
         associated Icicle dev board, which should allow upstream kernels to
         boot without any additional modifications.
      
       - An improved memmove() implementation.
      
       - Support for the new Ssconfpmf and SBI PMU extensions, which allows
         for a much more useful perf implementation on RISC-V systems.
      
       - Support for restartable sequences.
      
      * tag 'riscv-for-linus-5.18-mw0' of git://git.kernel.org/pub/scm/linux/kernel/git/riscv/linux: (36 commits)
        rseq/selftests: Add support for RISC-V
        RISC-V: Add support for restartable sequence
        MAINTAINERS: Add entry for RISC-V PMU drivers
        Documentation: riscv: Remove the old documentation
        RISC-V: Add sscofpmf extension support
        RISC-V: Add perf platform driver based on SBI PMU extension
        RISC-V: Add RISC-V SBI PMU extension definitions
        RISC-V: Add a simple platform driver for RISC-V legacy perf
        RISC-V: Add a perf core library for pmu drivers
        RISC-V: Add CSR encodings for all HPMCOUNTERS
        RISC-V: Remove the current perf implementation
        RISC-V: Improve /proc/cpuinfo output for ISA extensions
        RISC-V: Do no continue isa string parsing without correct XLEN
        RISC-V: Implement multi-letter ISA extension probing framework
        RISC-V: Extract multi-letter extension names from "riscv, isa"
        RISC-V: Minimal parser for "riscv, isa" strings
        RISC-V: Correctly print supported extensions
        riscv: Fixed misaligned memory access. Fixed pointer comparison.
        MAINTAINERS: update riscv/microchip entry
        riscv: dts: microchip: add new peripherals to icicle kit device tree
        ...
      aa5b537b
    • Linus Torvalds's avatar
      Merge tag 's390-5.18-1' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux · d710d370
      Linus Torvalds authored
      Pull s390 updates from Vasily Gorbik:
      
       - Raise minimum supported machine generation to z10, which comes with
         various cleanups and code simplifications (usercopy/spectre
         mitigation/etc).
      
       - Rework extables and get rid of anonymous out-of-line fixups.
      
       - Page table helpers cleanup. Add set_pXd()/set_pte() helper functions.
         Covert pte_val()/pXd_val() macros to functions.
      
       - Optimize kretprobe handling by avoiding extra kprobe on
         __kretprobe_trampoline.
      
       - Add support for CEX8 crypto cards.
      
       - Allow to trigger AP bus rescan via writing to /sys/bus/ap/scans.
      
       - Add CONFIG_EXPOLINE_EXTERN option to build the kernel without COMDAT
         group sections which simplifies kpatch support.
      
       - Always use the packed stack layout and extend kernel unwinder tests.
      
       - Add sanity checks for ftrace code patching.
      
       - Add s390dbf debug log for the vfio_ap device driver.
      
       - Various virtual vs physical address confusion fixes.
      
       - Various small fixes and improvements all over the code.
      
      * tag 's390-5.18-1' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux: (69 commits)
        s390/test_unwind: add kretprobe tests
        s390/kprobes: Avoid additional kprobe in kretprobe handling
        s390: convert ".insn" encoding to instruction names
        s390: assume stckf is always present
        s390/nospec: move to single register thunks
        s390: raise minimum supported machine generation to z10
        s390/uaccess: Add copy_from/to_user_key functions
        s390/nospec: align and size extern thunks
        s390/nospec: add an option to use thunk-extern
        s390/nospec: generate single register thunks if possible
        s390/pci: make zpci_set_irq()/zpci_clear_irq() static
        s390: remove unused expoline to BC instructions
        s390/irq: use assignment instead of cast
        s390/traps: get rid of magic cast for per code
        s390/traps: get rid of magic cast for program interruption code
        s390/signal: fix typo in comments
        s390/asm-offsets: remove unused defines
        s390/test_unwind: avoid build warning with W=1
        s390: remove .fixup section
        s390/bpf: encode register within extable entry
        ...
      d710d370
    • Linus Torvalds's avatar
      Merge tag 'xtensa-20220325' of https://github.com/jcmvbkbc/linux-xtensa · 744465da
      Linus Torvalds authored
      Pull Xtensa updates from Max Filippov:
      
       - remove dependency on the compiler's libgcc
      
       - allow selection of internal kernel ABI via Kconfig
      
       - enable compiler plugins support for gcc-12 or newer
      
       - various minor cleanups and fixes
      
      * tag 'xtensa-20220325' of https://github.com/jcmvbkbc/linux-xtensa:
        xtensa: define update_mmu_tlb function
        xtensa: fix xtensa_wsr always writing 0
        xtensa: enable plugin support
        xtensa: clean up kernel exit assembly code
        xtensa: rearrange NMI exit path
        xtensa: merge stack alignment definitions
        xtensa: fix DTC warning unit_address_format
        xtensa: fix stop_machine_cpuslocked call in patch_text
        xtensa: make secondary reset vector support conditional
        xtensa: add kernel ABI selection to Kconfig
        xtensa: don't link with libgcc
        xtensa: add helpers for division, remainder and shifts
        xtensa: add missing XCHAL_HAVE_WINDOWED check
        xtensa: use XCHAL_NUM_AREGS as pt_regs::areg size
        xtensa: rename PT_SIZE to PT_KERNEL_SIZE
        xtensa: Remove unused early_read_config_byte() et al declarations
        xtensa: use strscpy to copy strings
        net: xtensa: use strscpy to copy strings
      744465da
    • Linus Torvalds's avatar
      Merge tag 'powerpc-5.18-1' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux · 1f1c153e
      Linus Torvalds authored
      Pull powerpc updates from Michael Ellerman:
       "Livepatch support for 32-bit is probably the standout new feature,
        otherwise mostly just lots of bits and pieces all over the board.
      
        There's a series of commits cleaning up function descriptor handling,
        which touches a few other arches as well as LKDTM. It has acks from
        Arnd, Kees and Helge.
      
        Summary:
      
         - Enforce kernel RO, and implement STRICT_MODULE_RWX for 603.
      
         - Add support for livepatch to 32-bit.
      
         - Implement CONFIG_DYNAMIC_FTRACE_WITH_ARGS.
      
         - Merge vdso64 and vdso32 into a single directory.
      
         - Fix build errors with newer binutils.
      
         - Add support for UADDR64 relocations, which are emitted by some
           toolchains. This allows powerpc to build with the latest lld.
      
         - Fix (another) potential userspace r13 corruption in transactional
           memory handling.
      
         - Cleanups of function descriptor handling & related fixes to LKDTM.
      
        Thanks to Abdul Haleem, Alexey Kardashevskiy, Anders Roxell, Aneesh
        Kumar K.V, Anton Blanchard, Arnd Bergmann, Athira Rajeev, Bhaskar
        Chowdhury, Cédric Le Goater, Chen Jingwen, Christophe JAILLET,
        Christophe Leroy, Corentin Labbe, Daniel Axtens, Daniel Henrique
        Barboza, David Dai, Fabiano Rosas, Ganesh Goudar, Guo Zhengkui, Hangyu
        Hua, Haren Myneni, Hari Bathini, Igor Zhbanov, Jakob Koschel, Jason
        Wang, Jeremy Kerr, Joachim Wiberg, Jordan Niethe, Julia Lawall, Kajol
        Jain, Kees Cook, Laurent Dufour, Madhavan Srinivasan, Mamatha Inamdar,
        Maxime Bizon, Maxim Kiselev, Maxim Kochetkov, Michal Suchanek,
        Nageswara R Sastry, Nathan Lynch, Naveen N. Rao, Nicholas Piggin,
        Nour-eddine Taleb, Paul Menzel, Ping Fang, Pratik R. Sampat, Randy
        Dunlap, Ritesh Harjani, Rohan McLure, Russell Currey, Sachin Sant,
        Segher Boessenkool, Shivaprasad G Bhat, Sourabh Jain, Thierry Reding,
        Tobias Waldekranz, Tyrel Datwyler, Vaibhav Jain, Vladimir Oltean,
        Wedson Almeida Filho, and YueHaibing"
      
      * tag 'powerpc-5.18-1' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux: (179 commits)
        powerpc/pseries: Fix use after free in remove_phb_dynamic()
        powerpc/time: improve decrementer clockevent processing
        powerpc/time: Fix KVM host re-arming a timer beyond decrementer range
        powerpc/tm: Fix more userspace r13 corruption
        powerpc/xive: fix return value of __setup handler
        powerpc/64: Add UADDR64 relocation support
        powerpc: 8xx: fix a return value error in mpc8xx_pic_init
        powerpc/ps3: remove unneeded semicolons
        powerpc/64: Force inlining of prevent_user_access() and set_kuap()
        powerpc/bitops: Force inlining of fls()
        powerpc: declare unmodified attribute_group usages const
        powerpc/spufs: Fix build warning when CONFIG_PROC_FS=n
        powerpc/secvar: fix refcount leak in format_show()
        powerpc/64e: Tie PPC_BOOK3E_64 to PPC_FSL_BOOK3E
        powerpc: Move C prototypes out of asm-prototypes.h
        powerpc/kexec: Declare kexec_paca static
        powerpc/smp: Declare current_set static
        powerpc: Cleanup asm-prototypes.c
        powerpc/ftrace: Use STK_GOT in ftrace_mprofile.S
        powerpc/ftrace: Regroup PPC64 specific operations in ftrace_mprofile.S
        ...
      1f1c153e
    • Linus Torvalds's avatar
      Merge tag 'mips_5.18' of git://git.kernel.org/pub/scm/linux/kernel/git/mips/linux · 9a8b3d5f
      Linus Torvalds authored
      Pull MIPS updates from Thomas Bogendoerfer:
      
       - added support for QCN550x (ath79)
      
       - enabled KCSAN
      
       - removed TX39XX support
      
       - various cleanups and fixes
      
      * tag 'mips_5.18' of git://git.kernel.org/pub/scm/linux/kernel/git/mips/linux: (31 commits)
        MIPS: Fix build error for loongson64 and sgi-ip27
        MIPS: ingenic: correct unit node address
        MIPS: Fix wrong comments in asm/prom.h
        MIPS: Remove redundant definitions of device_tree_init()
        MIPS: Remove redundant check in device_tree_init()
        MIPS: pgalloc: fix memory leak caused by pgd_free()
        MIPS: RB532: fix return value of __setup handler
        MIPS: Only use current_stack_pointer on GCC
        MIPS: boot/compressed: Use array reference for image bounds
        mips: cdmm: Fix refcount leak in mips_cdmm_phys_base
        mips: remove reference to "newer Loongson-3"
        mips: Always permit to build u-boot images
        MIPS: Sanitise Cavium switch cases in TLB handler synthesizers
        DEC: Limit PMAX memory probing to R3k systems
        mips: DEC: honor CONFIG_MIPS_FP_SUPPORT=n
        MIPS: fix fortify panic when copying asm exception handlers
        mips: ralink: fix a refcount leak in ill_acc_of_setup()
        mips: Implement "current_stack_pointer"
        MIPS: Remove TX39XX support
        MIPS: Modernize READ_IMPLIES_EXEC
        ...
      9a8b3d5f
    • Linus Torvalds's avatar
      Merge tag 'iommu-updates-v5.18' of git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu · 34af78c4
      Linus Torvalds authored
      Pull iommu updates from Joerg Roedel:
      
       - IOMMU Core changes:
            - Removal of aux domain related code as it is basically dead and
              will be replaced by iommu-fd framework
            - Split of iommu_ops to carry domain-specific call-backs separatly
            - Cleanup to remove useless ops->capable implementations
            - Improve 32-bit free space estimate in iova allocator
      
       - Intel VT-d updates:
            - Various cleanups of the driver
            - Support for ATS of SoC-integrated devices listed in ACPI/SATC
              table
      
       - ARM SMMU updates:
            - Fix SMMUv3 soft lockup during continuous stream of events
            - Fix error path for Qualcomm SMMU probe()
            - Rework SMMU IRQ setup to prepare the ground for PMU support
            - Minor cleanups and refactoring
      
       - AMD IOMMU driver:
            - Some minor cleanups and error-handling fixes
      
       - Rockchip IOMMU driver:
            - Use standard driver registration
      
       - MSM IOMMU driver:
            - Minor cleanup and change to standard driver registration
      
       - Mediatek IOMMU driver:
            - Fixes for IOTLB flushing logic
      
      * tag 'iommu-updates-v5.18' of git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu: (47 commits)
        iommu/amd: Improve amd_iommu_v2_exit()
        iommu/amd: Remove unused struct fault.devid
        iommu/amd: Clean up function declarations
        iommu/amd: Call memunmap in error path
        iommu/arm-smmu: Account for PMU interrupts
        iommu/vt-d: Enable ATS for the devices in SATC table
        iommu/vt-d: Remove unused function intel_svm_capable()
        iommu/vt-d: Add missing "__init" for rmrr_sanity_check()
        iommu/vt-d: Move intel_iommu_ops to header file
        iommu/vt-d: Fix indentation of goto labels
        iommu/vt-d: Remove unnecessary prototypes
        iommu/vt-d: Remove unnecessary includes
        iommu/vt-d: Remove DEFER_DEVICE_DOMAIN_INFO
        iommu/vt-d: Remove domain and devinfo mempool
        iommu/vt-d: Remove iova_cache_get/put()
        iommu/vt-d: Remove finding domain in dmar_insert_one_dev_info()
        iommu/vt-d: Remove intel_iommu::domains
        iommu/mediatek: Always tlb_flush_all when each PM resume
        iommu/mediatek: Add tlb_lock in tlb_flush_all
        iommu/mediatek: Remove the power status checking in tlb flush all
        ...
      34af78c4
    • Linus Torvalds's avatar
      Merge tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi · 6f2689a7
      Linus Torvalds authored
      Pull SCSI updates from James Bottomley:
       "This series consists of the usual driver updates (qla2xxx, pm8001,
        libsas, smartpqi, scsi_debug, lpfc, iscsi, mpi3mr) plus minor updates
        and bug fixes.
      
        The high blast radius core update is the removal of write same, which
        affects block and several non-SCSI devices. The other big change,
        which is more local, is the removal of the SCSI pointer"
      
      * tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi: (281 commits)
        scsi: scsi_ioctl: Drop needless assignment in sg_io()
        scsi: bsg: Drop needless assignment in scsi_bsg_sg_io_fn()
        scsi: lpfc: Copyright updates for 14.2.0.0 patches
        scsi: lpfc: Update lpfc version to 14.2.0.0
        scsi: lpfc: SLI path split: Refactor BSG paths
        scsi: lpfc: SLI path split: Refactor Abort paths
        scsi: lpfc: SLI path split: Refactor SCSI paths
        scsi: lpfc: SLI path split: Refactor CT paths
        scsi: lpfc: SLI path split: Refactor misc ELS paths
        scsi: lpfc: SLI path split: Refactor VMID paths
        scsi: lpfc: SLI path split: Refactor FDISC paths
        scsi: lpfc: SLI path split: Refactor LS_RJT paths
        scsi: lpfc: SLI path split: Refactor LS_ACC paths
        scsi: lpfc: SLI path split: Refactor the RSCN/SCR/RDF/EDC/FARPR paths
        scsi: lpfc: SLI path split: Refactor PLOGI/PRLI/ADISC/LOGO paths
        scsi: lpfc: SLI path split: Refactor base ELS paths and the FLOGI path
        scsi: lpfc: SLI path split: Introduce lpfc_prep_wqe
        scsi: lpfc: SLI path split: Refactor fast and slow paths to native SLI4
        scsi: lpfc: SLI path split: Refactor lpfc_iocbq
        scsi: lpfc: Use kcalloc()
        ...
      6f2689a7
    • Linus Torvalds's avatar
      Merge tag 'for-5.18/dm-changes' of... · b1f8ccda
      Linus Torvalds authored
      Merge tag 'for-5.18/dm-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm
      
      Pull device mapper updates from Mike Snitzer:
      
       - Significant refactoring and fixing of how DM core does bio-based IO
         accounting with focus on fixing wildly inaccurate IO stats for
         dm-crypt (and other DM targets that defer bio submission in their own
         workqueues). End result is proper IO accounting, made possible by
         targets being updated to use the new dm_submit_bio_remap() interface.
      
       - Add hipri bio polling support (REQ_POLLED) to bio-based DM.
      
       - Reduce dm_io and dm_target_io structs so that a single dm_io (which
         contains dm_target_io and first clone bio) weighs in at 256 bytes.
         For reference the bio struct is 128 bytes.
      
       - Various other small cleanups, fixes or improvements in DM core and
         targets.
      
       - Update MAINTAINERS with my kernel.org email address to allow
         distinction between my "upstream" and "Red" Hats.
      
      * tag 'for-5.18/dm-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm: (46 commits)
        dm: consolidate spinlocks in dm_io struct
        dm: reduce size of dm_io and dm_target_io structs
        dm: switch dm_target_io booleans over to proper flags
        dm: switch dm_io booleans over to proper flags
        dm: update email address in MAINTAINERS
        dm: return void from __send_empty_flush
        dm: factor out dm_io_complete
        dm cache: use dm_submit_bio_remap
        dm: simplify dm_sumbit_bio_remap interface
        dm thin: use dm_submit_bio_remap
        dm: add WARN_ON_ONCE to dm_submit_bio_remap
        dm: support bio polling
        block: add ->poll_bio to block_device_operations
        dm mpath: use DMINFO instead of printk with KERN_INFO
        dm: stop using bdevname
        dm-zoned: remove the ->name field in struct dmz_dev
        dm: remove unnecessary local variables in __bind
        dm: requeue IO if mapping table not yet available
        dm io: remove stale comment block for dm_io()
        dm thin metadata: remove unused dm_thin_remove_block and __remove
        ...
      b1f8ccda
    • Linus Torvalds's avatar
      Merge tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma · 2dacc1e5
      Linus Torvalds authored
      Pull rdma updates from Jason Gunthorpe:
      
       - Minor bug fixes in mlx5, mthca, pvrdma, rtrs, mlx4, hfi1, hns
      
       - Minor cleanups: coding style, useless includes and documentation
      
       - Reorganize how multicast processing works in rxe
      
       - Replace a red/black tree with xarray in rxe which improves performance
      
       - DSCP support and HW address handle re-use in irdma
      
       - Simplify the mailbox command handling in hns
      
       - Simplify iser now that FMR is eliminated
      
      * tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma: (93 commits)
        RDMA/nldev: Prevent underflow in nldev_stat_set_counter_dynamic_doit()
        IB/iser: Fix error flow in case of registration failure
        IB/iser: Generalize map/unmap dma tasks
        IB/iser: Use iser_fr_desc as registration context
        IB/iser: Remove iser_reg_data_sg helper function
        RDMA/rxe: Use standard names for ref counting
        RDMA/rxe: Replace red-black trees by xarrays
        RDMA/rxe: Shorten pool names in rxe_pool.c
        RDMA/rxe: Move max_elem into rxe_type_info
        RDMA/rxe: Replace obj by elem in declaration
        RDMA/rxe: Delete _locked() APIs for pool objects
        RDMA/rxe: Reverse the sense of RXE_POOL_NO_ALLOC
        RDMA/rxe: Replace mr by rkey in responder resources
        RDMA/rxe: Fix ref error in rxe_av.c
        RDMA/hns: Use the reserved loopback QPs to free MR before destroying MPT
        RDMA/irdma: Add support for address handle re-use
        RDMA/qib: Fix typos in comments
        RDMA/mlx5: Fix memory leak in error flow for subscribe event routine
        Revert "RDMA/core: Fix ib_qp_usecnt_dec() called when error"
        RDMA/rxe: Remove useless argument for update_state()
        ...
      2dacc1e5
    • Linus Torvalds's avatar
      Merge tag 'ceph-for-5.18-rc1' of https://github.com/ceph/ceph-client · 85c7000f
      Linus Torvalds authored
      Pull ceph updates from Ilya Dryomov:
       "The highlights are:
      
         - several changes to how snap context and snap realms are tracked
           (Xiubo Li). In particular, this should resolve a long-standing
           issue of high kworker CPU usage and various stalls caused by
           needless iteration over all inodes in the snap realm.
      
         - async create fixes to address hangs in some edge cases (Jeff
           Layton)
      
         - support for getvxattr MDS op for querying server-side xattrs, such
           as file/directory layouts and ephemeral pins (Milind Changire)
      
         - average latency is now maintained for all metrics (Venky Shankar)
      
         - some tweaks around handling inline data to make it fit better with
           netfs helper library (David Howells)
      
        Also a couple of memory leaks got plugged along with a few assorted
        fixups. Last but not least, Xiubo has stepped up to serve as a CephFS
        co-maintainer"
      
      * tag 'ceph-for-5.18-rc1' of https://github.com/ceph/ceph-client: (27 commits)
        ceph: fix memory leak in ceph_readdir when note_last_dentry returns error
        ceph: uninitialized variable in debug output
        ceph: use tracked average r/w/m latencies to display metrics in debugfs
        ceph: include average/stdev r/w/m latency in mds metrics
        ceph: track average r/w/m latency
        ceph: use ktime_to_timespec64() rather than jiffies_to_timespec64()
        ceph: assign the ci only when the inode isn't NULL
        ceph: fix inode reference leakage in ceph_get_snapdir()
        ceph: misc fix for code style and logs
        ceph: allocate capsnap memory outside of ceph_queue_cap_snap()
        ceph: do not release the global snaprealm until unmounting
        ceph: remove incorrect and unused CEPH_INO_DOTDOT macro
        MAINTAINERS: add Xiubo Li as cephfs co-maintainer
        ceph: eliminate the recursion when rebuilding the snap context
        ceph: do not update snapshot context when there is no new snapshot
        ceph: zero the dir_entries memory when allocating it
        ceph: move to a dedicated slabcache for ceph_cap_snap
        ceph: add getvxattr op
        libceph: drop else branches in prepare_read_data{,_cont}
        ceph: fix comments mentioning i_mutex
        ...
      85c7000f
    • Linus Torvalds's avatar
      Merge tag 'xfs-5.18-merge-2' of git://git.kernel.org/pub/scm/fs/xfs/xfs-linux · b1b07ba3
      Linus Torvalds authored
      Pull xfs updates from Darrick Wong:
       "The biggest change this cycle is bringing XFS' inode attribute setting
        code back towards alignment with what the VFS does. IOWs, setgid bit
        handling should be a closer match with ext4 and btrfs behavior.
      
        The rest of the branch is bug fixes around the filesystem -- patching
        gaps in quota enforcement, removing bogus selinux audit messages, and
        fixing log corruption and problems with log recovery. There will be a
        second pull request later on in the merge window with more bug fixes.
      
        Dave Chinner will be taking over as XFS maintainer for one release
        cycle, starting from the day 5.18-rc1 drops until 5.19-rc1 is tagged
        so that I can focus on starting a massive design review for the
        (feature complete after five years) online repair feature.
      
        Summary:
      
         - Fix some incorrect mapping state being passed to iomap during COW
      
         - Don't create bogus selinux audit messages when deciding to degrade
           gracefully due to lack of privilege
      
         - Fix setattr implementation to use VFS helpers so that we drop
           setgid consistently with the other filesystems
      
         - Fix link/unlink/rename to check quota limits
      
         - Constify xfs_name_dotdot to prevent abuse of in-kernel symbols
      
         - Fix log livelock between the AIL and inodegc threads during
           recovery
      
         - Fix a log stall when the AIL races with pushers
      
         - Fix stalls in CIL flushes due to pinned inode cluster buffers
           during recovery
      
         - Fix log corruption due to incorrect usage of xfs_is_shutdown vs
           xlog_is_shutdown because during an induced fs shutdown, AIL
           writeback must continue until the log is shut down, even if the
           filesystem has already shut down"
      
      * tag 'xfs-5.18-merge-2' of git://git.kernel.org/pub/scm/fs/xfs/xfs-linux:
        xfs: xfs_is_shutdown vs xlog_is_shutdown cage fight
        xfs: AIL should be log centric
        xfs: log items should have a xlog pointer, not a mount
        xfs: async CIL flushes need pending pushes to be made stable
        xfs: xfs_ail_push_all_sync() stalls when racing with updates
        xfs: check buffer pin state after locking in delwri_submit
        xfs: log worker needs to start before intent/unlink recovery
        xfs: constify xfs_name_dotdot
        xfs: constify the name argument to various directory functions
        xfs: reserve quota for target dir expansion when renaming files
        xfs: reserve quota for dir expansion when linking/unlinking files
        xfs: refactor user/group quota chown in xfs_setattr_nonsize
        xfs: use setattr_copy to set vfs inode attributes
        xfs: don't generate selinux audit messages for capability testing
        xfs: add missing cmap->br_state = XFS_EXT_NORM update
      b1b07ba3
    • Linus Torvalds's avatar
      Merge tag 'dax-for-5.18' of git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm · f0614eef
      Linus Torvalds authored
      Pull DAX updates from Dan Williams:
       "Andrew has been shepherding major dax features that touch the core -mm
        through his tree, but I still collect the dax updates that are core-mm
        independent.
      
         - Fix a crash due to a missing rcu_barrier() in dax_fs_exit()
      
         - Fix two miscellaneous doc issues"
      
      * tag 'dax-for-5.18' of git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm:
        dax: Fix missing kdoc for dax_device
        dax: make sure inodes are flushed before destroy cache
        fsdax: fix function description
      f0614eef
    • Linus Torvalds's avatar
      Merge tag 'cxl-for-5.18' of git://git.kernel.org/pub/scm/linux/kernel/git/cxl/cxl · b9132c32
      Linus Torvalds authored
      Pull CXL (Compute Express Link) updates from Dan Williams:
       "This development cycle extends the subsystem to discover CXL resources
        throughout a CXL/PCIe switch topology and respond to hot add/remove
        events anywhere in that topology.
      
        This is more foundational infrastructure in preparation for dynamic
        memory region provisioning support. Recall that CXL memory regions, as
        the new "Theory of Operation" section of
        Documentation/driver-api/cxl/memory-devices.rst describes, bring
        storage volume striping semantics to memory.
      
        The hot add/remove behavior is validated with extensions to the
        cxl_test unit test environment and this test in the cxl-cli test
        suite:
      
            https://github.com/pmem/ndctl/blob/djbw/for-74/cxl/test/cxl-topology.sh
      
        Summary:
      
         - Add a driver for 'struct cxl_memdev' objects responsible for
           CXL.mem operation as distinct from 'cxl_pci' mailbox operations.
      
           Its primary responsibility is enumerating an endpoint 'struct
           cxl_port' and all the 'struct cxl_port' instances between an
           endpoint and the CXL platform root.
      
         - Add a driver for 'struct cxl_port' objects responsible for
           enumerating and operating all Host-managed Device Memory (HDM)
           decoder resources between the platform-level CXL memory
           description, all intervening host bridges / switches, and the HDM
           resources in endpoints.
      
         - Update the cxl_pci driver to validate CXL.mem operation precursors
           to HDM decoder operation like ready-polling, and legacy CXL 1.1
           DVSEC based CXL.mem configuration.
      
         - Add basic lockdep coverage for usage of device_lock() on CXL
           subsystem objects similar to what exists for LIBNVDIMM. Include a
           compile-time switch for which subsystem to validate at run-time.
      
         - Update cxl_test to emulate a one level switch topology.
      
         - Document a "Theory of Operation" for the subsystem.
      
         - Add 'numa_node' and 'serial' attributes to cxl_memdev sysfs
      
         - Include miscellaneous fixes for spec / QEMU CXL emulation
           compatibility and static analysis reports"
      
      * tag 'cxl-for-5.18' of git://git.kernel.org/pub/scm/linux/kernel/git/cxl/cxl: (48 commits)
        cxl/core/port: Fix NULL but dereferenced coccicheck error
        cxl/port: Hold port reference until decoder release
        cxl/port: Fix endpoint refcount leak
        cxl/core: Fix cxl_device_lock() class detection
        cxl/core/port: Fix unregister_port() lock assertion
        cxl/regs: Fix size of CXL Capability Header Register
        cxl/core/port: Handle invalid decoders
        cxl/core/port: Fix / relax decoder target enumeration
        tools/testing/cxl: Add a physical_node link
        tools/testing/cxl: Enumerate mock decoders
        tools/testing/cxl: Mock one level of switches
        tools/testing/cxl: Fix root port to host bridge assignment
        tools/testing/cxl: Mock dvsec_ranges()
        cxl/core/port: Add endpoint decoders
        cxl/core: Move target_list out of base decoder attributes
        cxl/mem: Add the cxl_mem driver
        cxl/core/port: Add switch port enumeration
        cxl/memdev: Add numa_node attribute
        cxl/pci: Emit device serial number
        cxl/pci: Implement wait for media active
        ...
      b9132c32
  4. 24 Mar, 2022 24 commits
    • Linus Torvalds's avatar
      Merge tag 'drm-next-2022-03-24' of git://anongit.freedesktop.org/drm/drm · b14ffae3
      Linus Torvalds authored
      Pull drm updates from Dave Airlie:
       "Lots of work all over, Intel improving DG2 support, amdkfd CRIU
        support, msm new hw support, and faster fbdev support.
      
        dma-buf:
         - rename dma-buf-map to iosys-map
      
        core:
         - move buddy allocator to core
         - add pci/platform init macros
         - improve EDID parser deep color handling
         - EDID timing type 7 support
         - add GPD Win Max quirk
         - add yes/no helpers to string_helpers
         - flatten syncobj chains
         - add nomodeset support to lots of drivers
         - improve fb-helper clipping support
         - add default property value interface
      
        fbdev:
         - improve fbdev ops speed
      
        ttm:
         - add a backpointer from ttm bo->ttm resource
      
        dp:
         - move displayport headers
         - add a dp helper module
      
        bridge:
         - anx7625 atomic support, HDCP support
      
        panel:
         - split out panel-lvds and lvds bindings
         - find panels in OF subnodes
      
        privacy:
         - add chromeos privacy screen support
      
        fb:
         - hot unplug fw fb on forced removal
      
        simpledrm:
         - request region instead of marking ioresource busy
         - add panel oreintation property
      
        udmabuf:
         - fix oops with 0 pages
      
        amdgpu:
         - power management code cleanup
         - Enable freesync video mode by default
         - RAS code cleanup
         - Improve VRAM access for debug using SDMA
         - SR-IOV rework special register access and fixes
         - profiling power state request ioctl
         - expose IP discovery via sysfs
         - Cyan skillfish updates
         - GC 10.3.7, SDMA 5.2.7, DCN 3.1.6 updates
         - expose benchmark tests via debugfs
         - add module param to disable XGMI for testing
         - GPU reset debugfs register dumping support
      
        amdkfd:
         - CRIU support
         - SDMA queue fixes
      
        radeon:
         - UVD suspend fix
         - iMac backlight fix
      
        i915:
         - minimal parallel submission for execlists
         - DG2-G12 subplatform added
         - DG2 programming workarounds
         - DG2 accelerated migration support
         - flat CCS and CCS engine support for XeHP
         - initial small BAR support
         - drop fake LMEM support
         - ADL-N PCH support
         - bigjoiner updates
         - introduce VMA resources and async unbinding
         - register definitions cleanups
         - multi-FBC refactoring
         - DG1 OPROM over SPI support
         - ADL-N platform enabling
         - opregion mailbox #5 support
         - DP MST ESI improvements
         - drm device based logging
         - async flip optimisation for DG2
         - CPU arch abstraction fixes
         - improve GuC ADS init to work on aarch64
         - tweak TTM LRU priority hint
         - GuC 69.0.3 support
         - remove short term execbuf pins
      
        nouveau:
         - higher DP/eDP bitrates
         - backlight fixes
      
        msm:
         - dpu + dp support for sc8180x
         - dp support for sm8350
         - dpu + dsi support for qcm2290
         - 10nm dsi phy tuning support
         - bridge support for dp encoder
         - gpu support for additional 7c3 SKUs
      
        ingenic:
         - HDMI support for JZ4780
         - aux channel EDID support
      
        ast:
         - AST2600 support
         - add wide screen support
         - create DP/DVI connectors
      
        omapdrm:
         - fix implicit dma_buf fencing
      
        vc4:
         - add CSC + full range support
         - better display firmware handoff
      
        panfrost:
         - add initial dual-core GPU support
      
        stm:
         - new revision support
         - fb handover support
      
        mediatek:
         - transfer display binding document to yaml format.
         - add mt8195 display device binding.
         - allow commands to be sent during video mode.
         - add wait_for_event for crtc disable by cmdq.
      
        tegra:
         - YUV format support
      
        rcar-du:
         - LVDS support for M3-W+ (R8A77961)
      
        exynos:
         - BGR pixel format for FIMD device"
      
      * tag 'drm-next-2022-03-24' of git://anongit.freedesktop.org/drm/drm: (1529 commits)
        drm/i915/display: Do not re-enable PSR after it was marked as not reliable
        drm/i915/display: Fix HPD short pulse handling for eDP
        drm/amdgpu: Use drm_mode_copy()
        drm/radeon: Use drm_mode_copy()
        drm/amdgpu: Use ternary operator in `vcn_v1_0_start()`
        drm/amdgpu: Remove pointless on stack mode copies
        drm/amd/pm: fix indenting in __smu_cmn_reg_print_error()
        drm/amdgpu/dc: fix typos in comments
        drm/amdgpu: fix typos in comments
        drm/amd/pm: fix typos in comments
        drm/amdgpu: Add stolen reserved memory for MI25 SRIOV.
        drm/amdgpu: Merge get_reserved_allocation to get_vbios_allocations.
        drm/amdkfd: evict svm bo worker handle error
        drm/amdgpu/vcn: fix vcn ring test failure in igt reload test
        drm/amdgpu: only allow secure submission on rings which support that
        drm/amdgpu: fixed the warnings reported by kernel test robot
        drm/amd/display: 3.2.177
        drm/amd/display: [FW Promotion] Release 0.0.108.0
        drm/amd/display: Add save/restore PANEL_PWRSEQ_REF_DIV2
        drm/amd/display: Wait for hubp read line for Pollock
        ...
      b14ffae3
    • Linus Torvalds's avatar
      Merge branch 'akpm' (patches from Andrew) · 52deda95
      Linus Torvalds authored
      Merge more updates from Andrew Morton:
       "Various misc subsystems, before getting into the post-linux-next
        material.
      
        41 patches.
      
        Subsystems affected by this patch series: procfs, misc, core-kernel,
        lib, checkpatch, init, pipe, minix, fat, cgroups, kexec, kdump,
        taskstats, panic, kcov, resource, and ubsan"
      
      * emailed patches from Andrew Morton <akpm@linux-foundation.org>: (41 commits)
        Revert "ubsan, kcsan: Don't combine sanitizer with kcov on clang"
        kernel/resource: fix kfree() of bootmem memory again
        kcov: properly handle subsequent mmap calls
        kcov: split ioctl handling into locked and unlocked parts
        panic: move panic_print before kmsg dumpers
        panic: add option to dump all CPUs backtraces in panic_print
        docs: sysctl/kernel: add missing bit to panic_print
        taskstats: remove unneeded dead assignment
        kasan: no need to unset panic_on_warn in end_report()
        ubsan: no need to unset panic_on_warn in ubsan_epilogue()
        panic: unset panic_on_warn inside panic()
        docs: kdump: add scp example to write out the dump file
        docs: kdump: update description about sysfs file system support
        arm64: mm: use IS_ENABLED(CONFIG_KEXEC_CORE) instead of #ifdef
        x86/setup: use IS_ENABLED(CONFIG_KEXEC_CORE) instead of #ifdef
        riscv: mm: init: use IS_ENABLED(CONFIG_KEXEC_CORE) instead of #ifdef
        kexec: make crashk_res, crashk_low_res and crash_notes symbols always visible
        cgroup: use irqsave in cgroup_rstat_flush_locked().
        fat: use pointer to simple type in put_user()
        minix: fix bug when opening a file with O_DIRECT
        ...
      52deda95
    • Linus Torvalds's avatar
      Merge tag 'net-next-5.18' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next · 169e7776
      Linus Torvalds authored
      Pull networking updates from Jakub Kicinski:
       "The sprinkling of SPI drivers is because we added a new one and Mark
        sent us a SPI driver interface conversion pull request.
      
        Core
        ----
      
         - Introduce XDP multi-buffer support, allowing the use of XDP with
           jumbo frame MTUs and combination with Rx coalescing offloads (LRO).
      
         - Speed up netns dismantling (5x) and lower the memory cost a little.
           Remove unnecessary per-netns sockets. Scope some lists to a netns.
           Cut down RCU syncing. Use batch methods. Allow netdev registration
           to complete out of order.
      
         - Support distinguishing timestamp types (ingress vs egress) and
           maintaining them across packet scrubbing points (e.g. redirect).
      
         - Continue the work of annotating packet drop reasons throughout the
           stack.
      
         - Switch netdev error counters from an atomic to dynamically
           allocated per-CPU counters.
      
         - Rework a few preempt_disable(), local_irq_save() and busy waiting
           sections problematic on PREEMPT_RT.
      
         - Extend the ref_tracker to allow catching use-after-free bugs.
      
        BPF
        ---
      
         - Introduce "packing allocator" for BPF JIT images. JITed code is
           marked read only, and used to be allocated at page granularity.
           Custom allocator allows for more efficient memory use, lower iTLB
           pressure and prevents identity mapping huge pages from getting
           split.
      
         - Make use of BTF type annotations (e.g. __user, __percpu) to enforce
           the correct probe read access method, add appropriate helpers.
      
         - Convert the BPF preload to use light skeleton and drop the
           user-mode-driver dependency.
      
         - Allow XDP BPF_PROG_RUN test infra to send real packets, enabling
           its use as a packet generator.
      
         - Allow local storage memory to be allocated with GFP_KERNEL if
           called from a hook allowed to sleep.
      
         - Introduce fprobe (multi kprobe) to speed up mass attachment (arch
           bits to come later).
      
         - Add unstable conntrack lookup helpers for BPF by using the BPF
           kfunc infra.
      
         - Allow cgroup BPF progs to return custom errors to user space.
      
         - Add support for AF_UNIX iterator batching.
      
         - Allow iterator programs to use sleepable helpers.
      
         - Support JIT of add, and, or, xor and xchg atomic ops on arm64.
      
         - Add BTFGen support to bpftool which allows to use CO-RE in kernels
           without BTF info.
      
         - Large number of libbpf API improvements, cleanups and deprecations.
      
        Protocols
        ---------
      
         - Micro-optimize UDPv6 Tx, gaining up to 5% in test on dummy netdev.
      
         - Adjust TSO packet sizes based on min_rtt, allowing very low latency
           links (data centers) to always send full-sized TSO super-frames.
      
         - Make IPv6 flow label changes (AKA hash rethink) more configurable,
           via sysctl and setsockopt. Distinguish between server and client
           behavior.
      
         - VxLAN support to "collect metadata" devices to terminate only
           configured VNIs. This is similar to VLAN filtering in the bridge.
      
         - Support inserting IPv6 IOAM information to a fraction of frames.
      
         - Add protocol attribute to IP addresses to allow identifying where
           given address comes from (kernel-generated, DHCP etc.)
      
         - Support setting socket and IPv6 options via cmsg on ping6 sockets.
      
         - Reject mis-use of ECN bits in IP headers as part of DSCP/TOS.
           Define dscp_t and stop taking ECN bits into account in fib-rules.
      
         - Add support for locked bridge ports (for 802.1X).
      
         - tun: support NAPI for packets received from batched XDP buffs,
           doubling the performance in some scenarios.
      
         - IPv6 extension header handling in Open vSwitch.
      
         - Support IPv6 control message load balancing in bonding, prevent
           neighbor solicitation and advertisement from using the wrong port.
           Support NS/NA monitor selection similar to existing ARP monitor.
      
         - SMC
            - improve performance with TCP_CORK and sendfile()
            - support auto-corking
            - support TCP_NODELAY
      
         - MCTP (Management Component Transport Protocol)
            - add user space tag control interface
            - I2C binding driver (as specified by DMTF DSP0237)
      
         - Multi-BSSID beacon handling in AP mode for WiFi.
      
         - Bluetooth:
            - handle MSFT Monitor Device Event
            - add MGMT Adv Monitor Device Found/Lost events
      
         - Multi-Path TCP:
            - add support for the SO_SNDTIMEO socket option
            - lots of selftest cleanups and improvements
      
         - Increase the max PDU size in CAN ISOTP to 64 kB.
      
        Driver API
        ----------
      
         - Add HW counters for SW netdevs, a mechanism for devices which
           offload packet forwarding to report packet statistics back to
           software interfaces such as tunnels.
      
         - Select the default NIC queue count as a fraction of number of
           physical CPU cores, instead of hard-coding to 8.
      
         - Expose devlink instance locks to drivers. Allow device layer of
           drivers to use that lock directly instead of creating their own
           which always runs into ordering issues in devlink callbacks.
      
         - Add header/data split indication to guide user space enabling of
           TCP zero-copy Rx.
      
         - Allow configuring completion queue event size.
      
         - Refactor page_pool to enable fragmenting after allocation.
      
         - Add allocation and page reuse statistics to page_pool.
      
         - Improve Multiple Spanning Trees support in the bridge to allow
           reuse of topologies across VLANs, saving HW resources in switches.
      
         - DSA (Distributed Switch Architecture):
            - replay and offload of host VLAN entries
            - offload of static and local FDB entries on LAG interfaces
            - FDB isolation and unicast filtering
      
        New hardware / drivers
        ----------------------
      
         - Ethernet:
            - LAN937x T1 PHYs
            - Davicom DM9051 SPI NIC driver
            - Realtek RTL8367S, RTL8367RB-VB switch and MDIO
            - Microchip ksz8563 switches
            - Netronome NFP3800 SmartNICs
            - Fungible SmartNICs
            - MediaTek MT8195 switches
      
         - WiFi:
            - mt76: MediaTek mt7916
            - mt76: MediaTek mt7921u USB adapters
            - brcmfmac: Broadcom BCM43454/6
      
         - Mobile:
            - iosm: Intel M.2 7360 WWAN card
      
        Drivers
        -------
      
         - Convert many drivers to the new phylink API built for split PCS
           designs but also simplifying other cases.
      
         - Intel Ethernet NICs:
            - add TTY for GNSS module for E810T device
            - improve AF_XDP performance
            - GTP-C and GTP-U filter offload
            - QinQ VLAN support
      
         - Mellanox Ethernet NICs (mlx5):
            - support xdp->data_meta
            - multi-buffer XDP
            - offload tc push_eth and pop_eth actions
      
         - Netronome Ethernet NICs (nfp):
            - flow-independent tc action hardware offload (police / meter)
            - AF_XDP
      
         - Other Ethernet NICs:
            - at803x: fiber and SFP support
            - xgmac: mdio: preamble suppression and custom MDC frequencies
            - r8169: enable ASPM L1.2 if system vendor flags it as safe
            - macb/gem: ZynqMP SGMII
            - hns3: add TX push mode
            - dpaa2-eth: software TSO
            - lan743x: multi-queue, mdio, SGMII, PTP
            - axienet: NAPI and GRO support
      
         - Mellanox Ethernet switches (mlxsw):
            - source and dest IP address rewrites
            - RJ45 ports
      
         - Marvell Ethernet switches (prestera):
            - basic routing offload
            - multi-chain TC ACL offload
      
         - NXP embedded Ethernet switches (ocelot & felix):
            - PTP over UDP with the ocelot-8021q DSA tagging protocol
            - basic QoS classification on Felix DSA switch using dcbnl
            - port mirroring for ocelot switches
      
         - Microchip high-speed industrial Ethernet (sparx5):
            - offloading of bridge port flooding flags
            - PTP Hardware Clock
      
         - Other embedded switches:
            - lan966x: PTP Hardward Clock
            - qca8k: mdio read/write operations via crafted Ethernet packets
      
         - Qualcomm 802.11ax WiFi (ath11k):
            - add LDPC FEC type and 802.11ax High Efficiency data in radiotap
            - enable RX PPDU stats in monitor co-exist mode
      
         - Intel WiFi (iwlwifi):
            - UHB TAS enablement via BIOS
            - band disablement via BIOS
            - channel switch offload
            - 32 Rx AMPDU sessions in newer devices
      
         - MediaTek WiFi (mt76):
            - background radar detection
            - thermal management improvements on mt7915
            - SAR support for more mt76 platforms
            - MBSSID and 6 GHz band on mt7915
      
         - RealTek WiFi:
            - rtw89: AP mode
            - rtw89: 160 MHz channels and 6 GHz band
            - rtw89: hardware scan
      
         - Bluetooth:
            - mt7921s: wake on Bluetooth, SCO over I2S, wide-band-speed (WBS)
      
         - Microchip CAN (mcp251xfd):
            - multiple RX-FIFOs and runtime configurable RX/TX rings
            - internal PLL, runtime PM handling simplification
            - improve chip detection and error handling after wakeup"
      
      * tag 'net-next-5.18' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next: (2521 commits)
        llc: fix netdevice reference leaks in llc_ui_bind()
        drivers: ethernet: cpsw: fix panic when interrupt coaleceing is set via ethtool
        ice: don't allow to run ice_send_event_to_aux() in atomic ctx
        ice: fix 'scheduling while atomic' on aux critical err interrupt
        net/sched: fix incorrect vlan_push_eth dest field
        net: bridge: mst: Restrict info size queries to bridge ports
        net: marvell: prestera: add missing destroy_workqueue() in prestera_module_init()
        drivers: net: xgene: Fix regression in CRC stripping
        net: geneve: add missing netlink policy and size for IFLA_GENEVE_INNER_PROTO_INHERIT
        net: dsa: fix missing host-filtered multicast addresses
        net/mlx5e: Fix build warning, detected write beyond size of field
        iwlwifi: mvm: Don't fail if PPAG isn't supported
        selftests/bpf: Fix kprobe_multi test.
        Revert "rethook: x86: Add rethook x86 implementation"
        Revert "arm64: rethook: Add arm64 rethook implementation"
        Revert "powerpc: Add rethook support"
        Revert "ARM: rethook: Add rethook arm implementation"
        netdevice: add missing dm_private kdoc
        net: bridge: mst: prevent NULL deref in br_mst_info_size()
        selftests: forwarding: Use same VRF for port and VLAN upper
        ...
      169e7776
    • Linus Torvalds's avatar
      Merge tag 'vfio-v5.18-rc1' of https://github.com/awilliam/linux-vfio · 7403e6d8
      Linus Torvalds authored
      Pull VFIO updates from Alex Williamson:
      
       - Introduce new device migration uAPI and implement device specific
         mlx5 vfio-pci variant driver supporting new protocol (Jason
         Gunthorpe, Yishai Hadas, Leon Romanovsky)
      
       - New HiSilicon acc vfio-pci variant driver, also supporting migration
         interface (Shameer Kolothum, Longfang Liu)
      
       - D3hot fixes for vfio-pci-core (Abhishek Sahu)
      
       - Document new vfio-pci variant driver acceptance criteria
         (Alex Williamson)
      
       - Fix UML build unresolved ioport_{un}map() functions
         (Alex Williamson)
      
       - Fix MAINTAINERS due to header movement (Lukas Bulwahn)
      
      * tag 'vfio-v5.18-rc1' of https://github.com/awilliam/linux-vfio: (31 commits)
        vfio-pci: Provide reviewers and acceptance criteria for variant drivers
        MAINTAINERS: adjust entry for header movement in hisilicon qm driver
        hisi_acc_vfio_pci: Use its own PCI reset_done error handler
        hisi_acc_vfio_pci: Add support for VFIO live migration
        crypto: hisilicon/qm: Set the VF QM state register
        hisi_acc_vfio_pci: Add helper to retrieve the struct pci_driver
        hisi_acc_vfio_pci: Restrict access to VF dev BAR2 migration region
        hisi_acc_vfio_pci: add new vfio_pci driver for HiSilicon ACC devices
        hisi_acc_qm: Move VF PCI device IDs to common header
        crypto: hisilicon/qm: Move few definitions to common header
        crypto: hisilicon/qm: Move the QM header to include/linux
        vfio/mlx5: Fix to not use 0 as NULL pointer
        PCI/IOV: Fix wrong kernel-doc identifier
        vfio/mlx5: Use its own PCI reset_done error handler
        vfio/pci: Expose vfio_pci_core_aer_err_detected()
        vfio/mlx5: Implement vfio_pci driver for mlx5 devices
        vfio/mlx5: Expose migration commands over mlx5 device
        vfio: Remove migration protocol v1 documentation
        vfio: Extend the device migration protocol with RUNNING_P2P
        vfio: Define device migration protocol v2
        ...
      7403e6d8
    • Linus Torvalds's avatar
      Merge tag 'hyperv-next-signed-20220322' of... · 66711cfe
      Linus Torvalds authored
      Merge tag 'hyperv-next-signed-20220322' of git://git.kernel.org/pub/scm/linux/kernel/git/hyperv/linux
      
      Pull hyperv updates from Wei Liu:
       "Minor patches from various people"
      
      * tag 'hyperv-next-signed-20220322' of git://git.kernel.org/pub/scm/linux/kernel/git/hyperv/linux:
        x86/hyperv: Output host build info as normal Windows version number
        hv_balloon: rate-limit "Unhandled message" warning
        drivers: hv: log when enabling crash_kexec_post_notifiers
        hv_utils: Add comment about max VMbus packet size in VSS driver
        Drivers: hv: Compare cpumasks and not their weights in init_vp_index()
        Drivers: hv: Rename 'alloced' to 'allocated'
        Drivers: hv: vmbus: Use struct_size() helper in kmalloc()
      66711cfe
    • Linus Torvalds's avatar
      Merge tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm · 1ebdbeb0
      Linus Torvalds authored
      Pull kvm updates from Paolo Bonzini:
       "ARM:
         - Proper emulation of the OSLock feature of the debug architecture
      
         - Scalibility improvements for the MMU lock when dirty logging is on
      
         - New VMID allocator, which will eventually help with SVA in VMs
      
         - Better support for PMUs in heterogenous systems
      
         - PSCI 1.1 support, enabling support for SYSTEM_RESET2
      
         - Implement CONFIG_DEBUG_LIST at EL2
      
         - Make CONFIG_ARM64_ERRATUM_2077057 default y
      
         - Reduce the overhead of VM exit when no interrupt is pending
      
         - Remove traces of 32bit ARM host support from the documentation
      
         - Updated vgic selftests
      
         - Various cleanups, doc updates and spelling fixes
      
        RISC-V:
         - Prevent KVM_COMPAT from being selected
      
         - Optimize __kvm_riscv_switch_to() implementation
      
         - RISC-V SBI v0.3 support
      
        s390:
         - memop selftest
      
         - fix SCK locking
      
         - adapter interruptions virtualization for secure guests
      
         - add Claudio Imbrenda as maintainer
      
         - first step to do proper storage key checking
      
        x86:
         - Continue switching kvm_x86_ops to static_call(); introduce
           static_call_cond() and __static_call_ret0 when applicable.
      
         - Cleanup unused arguments in several functions
      
         - Synthesize AMD 0x80000021 leaf
      
         - Fixes and optimization for Hyper-V sparse-bank hypercalls
      
         - Implement Hyper-V's enlightened MSR bitmap for nested SVM
      
         - Remove MMU auditing
      
         - Eager splitting of page tables (new aka "TDP" MMU only) when dirty
           page tracking is enabled
      
         - Cleanup the implementation of the guest PGD cache
      
         - Preparation for the implementation of Intel IPI virtualization
      
         - Fix some segment descriptor checks in the emulator
      
         - Allow AMD AVIC support on systems with physical APIC ID above 255
      
         - Better API to disable virtualization quirks
      
         - Fixes and optimizations for the zapping of page tables:
      
            - Zap roots in two passes, avoiding RCU read-side critical
              sections that last too long for very large guests backed by 4
              KiB SPTEs.
      
            - Zap invalid and defunct roots asynchronously via
              concurrency-managed work queue.
      
            - Allowing yielding when zapping TDP MMU roots in response to the
              root's last reference being put.
      
            - Batch more TLB flushes with an RCU trick. Whoever frees the
              paging structure now holds RCU as a proxy for all vCPUs running
              in the guest, i.e. to prolongs the grace period on their behalf.
              It then kicks the the vCPUs out of guest mode before doing
              rcu_read_unlock().
      
        Generic:
         - Introduce __vcalloc and use it for very large allocations that need
           memcg accounting"
      
      * tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm: (246 commits)
        KVM: use kvcalloc for array allocations
        KVM: x86: Introduce KVM_CAP_DISABLE_QUIRKS2
        kvm: x86: Require const tsc for RT
        KVM: x86: synthesize CPUID leaf 0x80000021h if useful
        KVM: x86: add support for CPUID leaf 0x80000021
        KVM: x86: do not use KVM_X86_OP_OPTIONAL_RET0 for get_mt_mask
        Revert "KVM: x86/mmu: Zap only TDP MMU leafs in kvm_zap_gfn_range()"
        kvm: x86/mmu: Flush TLB before zap_gfn_range releases RCU
        KVM: arm64: fix typos in comments
        KVM: arm64: Generalise VM features into a set of flags
        KVM: s390: selftests: Add error memop tests
        KVM: s390: selftests: Add more copy memop tests
        KVM: s390: selftests: Add named stages for memop test
        KVM: s390: selftests: Add macro as abstraction for MEM_OP
        KVM: s390: selftests: Split memop tests
        KVM: s390x: fix SCK locking
        RISC-V: KVM: Implement SBI HSM suspend call
        RISC-V: KVM: Add common kvm_riscv_vcpu_wfi() function
        RISC-V: Add SBI HSM suspend related defines
        RISC-V: KVM: Implement SBI v0.3 SRST extension
        ...
      1ebdbeb0
    • Linus Torvalds's avatar
      Merge tag 'tomoyo-pr-20220322' of git://git.osdn.net/gitroot/tomoyo/tomoyo-test1 · efee6c79
      Linus Torvalds authored
      Pull tomoyo update from Tetsuo Handa:
       "Avoid unnecessarily leaking kernel command line arguments"
      
      * tag 'tomoyo-pr-20220322' of git://git.osdn.net/gitroot/tomoyo/tomoyo-test1:
        TOMOYO: fix __setup handlers return values
      efee6c79
    • Linus Torvalds's avatar
      Merge tag 'flexible-array-transformations-5.18-rc1' of... · 3ce62cf4
      Linus Torvalds authored
      Merge tag 'flexible-array-transformations-5.18-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gustavoars/linux
      
      Pull flexible-array transformations from Gustavo Silva:
       "Treewide patch that replaces zero-length arrays with flexible-array
        members.
      
        This has been baking in linux-next for a whole development cycle"
      
      * tag 'flexible-array-transformations-5.18-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gustavoars/linux:
        treewide: Replace zero-length arrays with flexible-array members
      3ce62cf4
    • Linus Torvalds's avatar
      Merge tag 'prlimit-tasklist_lock-for-v5.18' of... · cd4699c5
      Linus Torvalds authored
      Merge tag 'prlimit-tasklist_lock-for-v5.18' of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace
      
      Pull tasklist_lock optimizations from Eric Biederman:
       "prlimit and getpriority tasklist_lock optimizations
      
        The tasklist_lock popped up as a scalability bottleneck on some
        testing workloads. The readlocks in do_prlimit and set/getpriority are
        not necessary in all cases.
      
        Based on a cycles profile, it looked like ~87% of the time was spent
        in the kernel, ~42% of which was just trying to get *some* spinlock
        (queued_spin_lock_slowpath, not necessarily the tasklist_lock).
      
        The big offenders (with rough percentages in cycles of the overall
        trace):
         - do_wait 11%
         - setpriority 8% (done previously in commit 7f8ca0ed)
         - kill 8%
         - do_exit 5%
         - clone 3%
         - prlimit64 2%   (this patchset)
         - getrlimit 1%   (this patchset)
      
        I can't easily test this patchset on the original workload for various
        reasons. Instead, I used the microbenchmark below to at least verify
        there was some improvement. This patchset had a 28% speedup (12% from
        baseline to set/getprio, then another 14% for prlimit).
      
        This series used to do the setpriority case, but an almost identical
        change was merged as commit 7f8ca0ed ("kernel/sys.c: only take
        tasklist_lock for get/setpriority(PRIO_PGRP)") so that has been
        dropped from here.
      
        One interesting thing is that my libc's getrlimit() was calling
        prlimit64, so hoisting the read_lock(tasklist_lock) into sys_prlimit64
        had no effect - it essentially optimized the older syscalls only. I
        didn't do that in this patchset, but figured I'd mention it since it
        was an option from the previous patch's discussion"
      
      micobenchmark.c:
      ---------------
      	int main(int argc, char **argv)
      	{
      		pid_t child;
      		struct rlimit rlim[1];
      
      		fork(); fork(); fork(); fork(); fork(); fork();
      
      		for (int i = 0; i < 5000; i++) {
      			child = fork();
      			if (child < 0)
      				exit(1);
      			if (child > 0) {
      				usleep(1000);
      				kill(child, SIGTERM);
      				waitpid(child, NULL, 0);
      			} else {
      				for (;;) {
      					setpriority(PRIO_PROCESS, 0,
      						    getpriority(PRIO_PROCESS, 0));
      					getrlimit(RLIMIT_CPU, rlim);
      				}
      			}
      		}
      
      		return 0;
      	}
      
      Link: https://lore.kernel.org/lkml/20211213220401.1039578-1-brho@google.com/ [v1]
      Link: https://lore.kernel.org/lkml/20220105212828.197013-1-brho@google.com/ [v2]
      Link: https://lore.kernel.org/lkml/20220106172041.522167-1-brho@google.com/ [v3]
      
      * tag 'prlimit-tasklist_lock-for-v5.18' of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace:
        prlimit: do not grab the tasklist_lock
        prlimit: make do_prlimit() static
      cd4699c5
    • Linus Torvalds's avatar
      Merge tag 'fs.rt.v5.18' of git://git.kernel.org/pub/scm/linux/kernel/git/brauner/linux · 2e2d4650
      Linus Torvalds authored
      Pull mount attributes PREEMPT_RT update from Christian Brauner:
       "This contains Sebastian's fix to make changing mount
        attributes/getting write access compatible with CONFIG_PREEMPT_RT.
      
        The change only applies when users explicitly opt-in to real-time via
        CONFIG_PREEMPT_RT otherwise things are exactly as before. We've waited
        quite a long time with this to make sure folks could take a good look"
      
      * tag 'fs.rt.v5.18' of git://git.kernel.org/pub/scm/linux/kernel/git/brauner/linux:
        fs/namespace: Boost the mount_lock.lock owner instead of spinning on PREEMPT_RT.
      2e2d4650
    • Linus Torvalds's avatar
      Merge tag 'fs.v5.18' of git://git.kernel.org/pub/scm/linux/kernel/git/brauner/linux · 15f2e3d6
      Linus Torvalds authored
      Pull mount_setattr updates from Christian Brauner:
       "This contains a few more patches to massage the mount_setattr()
        codepaths and one minor fix to reuse a helper we added some time back.
      
        The final two patches do similar cleanups in different ways. One patch
        is mine and the other is Al's who was nice enough to give me a branch
        for it.
      
        Since his came in later and my branch had been sitting in -next for
        quite some time we just put his on top instead of swap them"
      
      * tag 'fs.v5.18' of git://git.kernel.org/pub/scm/linux/kernel/git/brauner/linux:
        mount_setattr(): clean the control flow and calling conventions
        fs: clean up mount_setattr control flow
        fs: don't open-code mnt_hold_writers()
        fs: simplify check in mount_setattr_commit()
        fs: add mnt_allow_writers() and simplify mount_setattr_prepare()
      15f2e3d6
    • Feiyang Chen's avatar
      MIPS: Fix build error for loongson64 and sgi-ip27 · f8f9f21c
      Feiyang Chen authored
      Select HAVE_ARCH_NODEDATA_EXTENSION for loongson64 to fix build error
      when CONFIG_NUMA=y:
      
      mips64el-unknown-linux-gnu-ld: mm/page_alloc.o: in function `free_area_init':
      (.init.text+0x1714): undefined reference to `node_data'
      mips64el-unknown-linux-gnu-ld: (.init.text+0x1730): undefined reference to `node_data'
      
      Also, select HAVE_ARCH_NODEDATA_EXTENSION for sgi-ip27 to fix build error:
      
      mips64el-unknown-linux-gnu-ld: mm/page_alloc.o: in function `free_area_init':
      page_alloc.c:(.init.text+0x1ba8): undefined reference to `node_data'
      mips64el-unknown-linux-gnu-ld: page_alloc.c:(.init.text+0x1bcc): undefined reference to `node_data'
      mips64el-unknown-linux-gnu-ld: page_alloc.c:(.init.text+0x1be4): undefined reference to `node_data'
      mips64el-unknown-linux-gnu-ld: page_alloc.c:(.init.text+0x1bf4): undefined reference to `node_data'
      Signed-off-by: default avatarFeiyang Chen <chenfeiyang@loongson.cn>
      Reviewed-by: default avatarHuacai Chen <chenhuacai@kernel.org>
      Signed-off-by: default avatarThomas Bogendoerfer <tsbogend@alpha.franken.de>
      f8f9f21c
    • Marco Elver's avatar
      Revert "ubsan, kcsan: Don't combine sanitizer with kcov on clang" · b027471a
      Marco Elver authored
      This reverts commit ea91a1d4.
      
      Since df05c0e9 ("Documentation: Raise the minimum supported version
      of LLVM to 11.0.0") the minimum Clang version is now 11.0, which fixed
      the UBSAN/KCSAN vs. KCOV incompatibilities.
      
      Link: https://bugs.llvm.org/show_bug.cgi?id=45831
      Link: https://lkml.kernel.org/r/YaodyZzu0MTCJcvO@elver.google.com
      Link: https://lkml.kernel.org/r/20220128105631.509772-1-elver@google.comSigned-off-by: default avatarMarco Elver <elver@google.com>
      Reviewed-by: default avatarNathan Chancellor <nathan@kernel.org>
      Reviewed-by: default avatarKees Cook <keescook@chromium.org>
      Cc: Alexander Potapenko <glider@google.com>
      Cc: Dmitry Vyukov <dvyukov@google.com>
      Cc: Nathan Chancellor <nathan@kernel.org>
      Cc: Nick Desaulniers <ndesaulniers@google.com>
      Cc: Arnd Bergmann <arnd@arndb.de>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      b027471a
    • Miaohe Lin's avatar
      kernel/resource: fix kfree() of bootmem memory again · 0cbcc929
      Miaohe Lin authored
      Since commit ebff7d8f ("mem hotunplug: fix kfree() of bootmem
      memory"), we could get a resource allocated during boot via
      alloc_resource().  And it's required to release the resource using
      free_resource().  Howerver, many people use kfree directly which will
      result in kernel BUG.  In order to fix this without fixing every call
      site, just leak a couple of bytes in such corner case.
      
      Link: https://lkml.kernel.org/r/20220217083619.19305-1-linmiaohe@huawei.com
      Fixes: ebff7d8f ("mem hotunplug: fix kfree() of bootmem memory")
      Signed-off-by: default avatarMiaohe Lin <linmiaohe@huawei.com>
      Suggested-by: default avatarDavid Hildenbrand <david@redhat.com>
      Cc: Dan Williams <dan.j.williams@intel.com>
      Cc: Alistair Popple <apopple@nvidia.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      0cbcc929
    • Aleksandr Nogikh's avatar
      kcov: properly handle subsequent mmap calls · b3d7fe86
      Aleksandr Nogikh authored
      Allocate the kcov buffer during KCOV_MODE_INIT in order to untie mmapping
      of a kcov instance and the actual coverage collection process. Modify
      kcov_mmap, so that it can be reliably used any number of times once
      KCOV_MODE_INIT has succeeded.
      
      These changes to the user-facing interface of the tool only weaken the
      preconditions, so all existing user space code should remain compatible
      with the new version.
      
      Link: https://lkml.kernel.org/r/20220117153634.150357-3-nogikh@google.comSigned-off-by: default avatarAleksandr Nogikh <nogikh@google.com>
      Reviewed-by: default avatarDmitry Vyukov <dvyukov@google.com>
      Reviewed-by: default avatarAndrey Konovalov <andreyknvl@gmail.com>
      Cc: Alexander Potapenko <glider@google.com>
      Cc: Marco Elver <elver@google.com>
      Cc: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
      Cc: Taras Madan <tarasmadan@google.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      b3d7fe86
    • Aleksandr Nogikh's avatar
      kcov: split ioctl handling into locked and unlocked parts · 17581aa1
      Aleksandr Nogikh authored
      Patch series "kcov: improve mmap processing", v3.
      
      Subsequent mmaps of the same kcov descriptor currently do not update the
      virtual memory of the task and yet return 0 (success).  This is
      counter-intuitive and may lead to unexpected memory access errors.
      
      Also, this unnecessarily limits the functionality of kcov to only the
      simplest usage scenarios.  Kcov instances are effectively forever attached
      to their first address spaces and it becomes impossible to e.g.  reuse the
      same kcov handle in forked child processes without mmapping the memory
      first.  This is exactly what we tried to do in syzkaller and inadvertently
      came upon this behavior.
      
      This patch series addresses the problem described above.
      
      This patch (of 3):
      
      Currently all ioctls are de facto processed under a spinlock in order to
      serialise them.  This, however, prohibits the use of vmalloc and other
      memory management functions in the implementations of those ioctls,
      unnecessary complicating any further changes to the code.
      
      Let all ioctls first be processed inside the kcov_ioctl() function which
      should execute the ones that are not compatible with spinlock and then
      pass control to kcov_ioctl_locked() for all other ones.
      KCOV_REMOTE_ENABLE is processed both in kcov_ioctl() and
      kcov_ioctl_locked() as the steps are easily separable.
      
      Although it is still compatible with a spinlock, move KCOV_INIT_TRACE
      handling to kcov_ioctl(), so that the changes from the next commit are
      easier to follow.
      
      Link: https://lkml.kernel.org/r/20220117153634.150357-1-nogikh@google.com
      Link: https://lkml.kernel.org/r/20220117153634.150357-2-nogikh@google.comSigned-off-by: default avatarAleksandr Nogikh <nogikh@google.com>
      Reviewed-by: default avatarDmitry Vyukov <dvyukov@google.com>
      Reviewed-by: default avatarAndrey Konovalov <andreyknvl@gmail.com>
      Cc: Marco Elver <elver@google.com>
      Cc: Alexander Potapenko <glider@google.com>
      Cc: Taras Madan <tarasmadan@google.com>
      Cc: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      17581aa1
    • Guilherme G. Piccoli's avatar
      panic: move panic_print before kmsg dumpers · f953f140
      Guilherme G. Piccoli authored
      The panic_print setting allows users to collect more information in a
      panic event, like memory stats, tasks, CPUs backtraces, etc.  This is an
      interesting debug mechanism, but currently the print event happens *after*
      kmsg_dump(), meaning that pstore, for example, cannot collect a dmesg with
      the panic_print extra information.
      
      This patch changes that in 2 steps:
      
      (a) The panic_print setting allows to replay the existing kernel log
          buffer to the console (bit 5), besides the extra information dump.
          This functionality makes sense only at the end of the panic()
          function.  So, we hereby allow to distinguish the two situations by a
          new boolean parameter in the function panic_print_sys_info().
      
      (b) With the above change, we can safely call panic_print_sys_info()
          before kmsg_dump(), allowing to dump the extra information when using
          pstore or other kmsg dumpers.
      
      The additional messages from panic_print could overwrite the oldest
      messages when the buffer is full.  The only reasonable solution is to use
      a large enough log buffer, hence we added an advice into the kernel
      parameters documentation about that.
      
      Link: https://lkml.kernel.org/r/20220214141308.841525-1-gpiccoli@igalia.comSigned-off-by: default avatarGuilherme G. Piccoli <gpiccoli@igalia.com>
      Acked-by: default avatarBaoquan He <bhe@redhat.com>
      Reviewed-by: default avatarPetr Mladek <pmladek@suse.com>
      Reviewed-by: default avatarSergey Senozhatsky <senozhatsky@chromium.org>
      Cc: Feng Tang <feng.tang@intel.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      f953f140
    • Guilherme G. Piccoli's avatar
      panic: add option to dump all CPUs backtraces in panic_print · 8d470a45
      Guilherme G. Piccoli authored
      Currently the "panic_print" parameter/sysctl allows some interesting debug
      information to be printed during a panic event.  This is useful for
      example in cases the user cannot kdump due to resource limits, or if the
      user collects panic logs in a serial output (or pstore) and prefers a fast
      reboot instead of a kdump.
      
      Happens that currently there's no way to see all CPUs backtraces in a
      panic using "panic_print" on architectures that support that.  We do have
      "oops_all_cpu_backtrace" sysctl, but although partially overlapping in the
      functionality, they are orthogonal in nature: "panic_print" is a panic
      tuning (and we have panics without oopses, like direct calls to panic() or
      maybe other paths that don't go through oops_enter() function), and the
      original purpose of "oops_all_cpu_backtrace" is to provide more
      information on oopses for cases in which the users desire to continue
      running the kernel even after an oops, i.e., used in non-panic scenarios.
      
      So, we hereby introduce an additional bit for "panic_print" to allow
      dumping the CPUs backtraces during a panic event.
      
      Link: https://lkml.kernel.org/r/20211109202848.610874-3-gpiccoli@igalia.comSigned-off-by: default avatarGuilherme G. Piccoli <gpiccoli@igalia.com>
      Reviewed-by: default avatarFeng Tang <feng.tang@intel.com>
      Cc: Iurii Zaikin <yzaikin@google.com>
      Cc: Kees Cook <keescook@chromium.org>
      Cc: Luis Chamberlain <mcgrof@kernel.org>
      Cc: Samuel Iglesias Gonsalvez <siglesias@igalia.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      8d470a45
    • Guilherme G. Piccoli's avatar
      docs: sysctl/kernel: add missing bit to panic_print · a1ff1de0
      Guilherme G. Piccoli authored
      Patch series "Some improvements on panic_print".
      
      This is a mix of a documentation fix with some additions to the
      "panic_print" syscall / parameter.  The goal here is being able to collect
      all CPUs backtraces during a panic event and also to enable "panic_print"
      in a kdump event - details of the reasoning and design choices in the
      patches.
      
      This patch (of 3):
      
      Commit de6da1e8 ("panic: add an option to replay all the printk
      message in buffer") added a new bit to the sysctl/kernel parameter
      "panic_print", but the documentation was added only in
      kernel-parameters.txt, not in the sysctl guide.
      
      Fix it here by adding bit 5 to sysctl admin-guide documentation.
      
      [rdunlap@infradead.org: fix table format warning]
        Link: https://lkml.kernel.org/r/20220109055635.6999-1-rdunlap@infradead.org
      
      Link: https://lkml.kernel.org/r/20211109202848.610874-1-gpiccoli@igalia.com
      Link: https://lkml.kernel.org/r/20211109202848.610874-2-gpiccoli@igalia.com
      Fixes: de6da1e8 ("panic: add an option to replay all the printk message in buffer")
      Signed-off-by: default avatarGuilherme G. Piccoli <gpiccoli@igalia.com>
      Reviewed-by: default avatarFeng Tang <feng.tang@intel.com>
      Cc: Luis Chamberlain <mcgrof@kernel.org>
      Cc: Kees Cook <keescook@chromium.org>
      Cc: Iurii Zaikin <yzaikin@google.com>
      Cc: Samuel Iglesias Gonsalvez <siglesias@igalia.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      a1ff1de0
    • Lukas Bulwahn's avatar
      taskstats: remove unneeded dead assignment · 92333baa
      Lukas Bulwahn authored
      make clang-analyzer on x86_64 defconfig caught my attention with:
      
        kernel/taskstats.c:120:2: warning: Value stored to 'rc' is never read \
        [clang-analyzer-deadcode.DeadStores]
                rc = 0;
                ^
      
      Commit d94a0415 ("taskstats: free skb, avoid returns in
      send_cpu_listeners") made send_cpu_listeners() not return a value and
      hence, the rc variable remained only to be used within the loop where
      it is always assigned before read and it does not need any other
      initialisation.
      
      So, simply remove this unneeded dead initializing assignment.
      
      As compilers will detect this unneeded assignment and optimize this anyway,
      the resulting object code is identical before and after this change.
      
      No functional change. No change to object code.
      
      [akpm@linux-foundation.org: reduce scope of `rc']
      
      Link: https://lkml.kernel.org/r/20220307093942.21310-1-lukas.bulwahn@gmail.comSigned-off-by: default avatarLukas Bulwahn <lukas.bulwahn@gmail.com>
      Reviewed-by: default avatarNick Desaulniers <ndesaulniers@google.com>
      Cc: Balbir Singh <bsingharora@gmail.com>
      Cc: Tom Rix <trix@redhat.com>
      Cc: Nathan Chancellor <natechancellor@gmail.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      92333baa
    • Tiezhu Yang's avatar
      kasan: no need to unset panic_on_warn in end_report() · e7ce7500
      Tiezhu Yang authored
      panic_on_warn is unset inside panic(), so no need to unset it before
      calling panic() in end_report().
      
      Link: https://lkml.kernel.org/r/1644324666-15947-6-git-send-email-yangtiezhu@loongson.cnSigned-off-by: default avatarTiezhu Yang <yangtiezhu@loongson.cn>
      Reviewed-by: default avatarMarco Elver <elver@google.com>
      Cc: Andrey Ryabinin <ryabinin.a.a@gmail.com>
      Cc: Baoquan He <bhe@redhat.com>
      Cc: Jonathan Corbet <corbet@lwn.net>
      Cc: Xuefeng Li <lixuefeng@loongson.cn>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      e7ce7500
    • Tiezhu Yang's avatar
      ubsan: no need to unset panic_on_warn in ubsan_epilogue() · d83ce027
      Tiezhu Yang authored
      panic_on_warn is unset inside panic(), so no need to unset it before
      calling panic() in ubsan_epilogue().
      
      Link: https://lkml.kernel.org/r/1644324666-15947-5-git-send-email-yangtiezhu@loongson.cnSigned-off-by: default avatarTiezhu Yang <yangtiezhu@loongson.cn>
      Reviewed-by: default avatarMarco Elver <elver@google.com>
      Cc: Andrey Ryabinin <ryabinin.a.a@gmail.com>
      Cc: Baoquan He <bhe@redhat.com>
      Cc: Jonathan Corbet <corbet@lwn.net>
      Cc: Xuefeng Li <lixuefeng@loongson.cn>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      d83ce027
    • Tiezhu Yang's avatar
      panic: unset panic_on_warn inside panic() · 1a2383e8
      Tiezhu Yang authored
      In the current code, the following three places need to unset
      panic_on_warn before calling panic() to avoid recursive panics:
      
      kernel/kcsan/report.c: print_report()
      kernel/sched/core.c: __schedule_bug()
      mm/kfence/report.c: kfence_report_error()
      
      In order to avoid copy-pasting "panic_on_warn = 0" all over the places,
      it is better to move it inside panic() and then remove it from the other
      places.
      
      Link: https://lkml.kernel.org/r/1644324666-15947-4-git-send-email-yangtiezhu@loongson.cnSigned-off-by: default avatarTiezhu Yang <yangtiezhu@loongson.cn>
      Reviewed-by: default avatarMarco Elver <elver@google.com>
      Cc: Andrey Ryabinin <ryabinin.a.a@gmail.com>
      Cc: Baoquan He <bhe@redhat.com>
      Cc: Jonathan Corbet <corbet@lwn.net>
      Cc: Xuefeng Li <lixuefeng@loongson.cn>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      1a2383e8
    • Tiezhu Yang's avatar
      docs: kdump: add scp example to write out the dump file · ae6694c1
      Tiezhu Yang authored
      Except cp and makedumpfile, add scp example to write out the dump file.
      
      Link: https://lkml.kernel.org/r/1644324666-15947-3-git-send-email-yangtiezhu@loongson.cnSigned-off-by: default avatarTiezhu Yang <yangtiezhu@loongson.cn>
      Acked-by: default avatarBaoquan He <bhe@redhat.com>
      Cc: Andrey Ryabinin <ryabinin.a.a@gmail.com>
      Cc: Jonathan Corbet <corbet@lwn.net>
      Cc: Marco Elver <elver@google.com>
      Cc: Xuefeng Li <lixuefeng@loongson.cn>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      ae6694c1