Skip to content
  1. Mar 19, 2021
  2. Mar 18, 2021
  3. Mar 17, 2021
    • Manaf Meethalavalappu Pallikunhi's avatar
      thermal/core: Add NULL pointer check before using cooling device stats · 2046a24a
      Manaf Meethalavalappu Pallikunhi authored
      
      
      There is a possible chance that some cooling device stats buffer
      allocation fails due to very high cooling device max state value.
      Later cooling device update sysfs can try to access stats data
      for the same cooling device. It will lead to NULL pointer
      dereference issue.
      
      Add a NULL pointer check before accessing thermal cooling device
      stats data. It fixes the following bug
      
      [ 26.812833] Unable to handle kernel NULL pointer dereference at virtual address 0000000000000004
      [ 27.122960] Call trace:
      [ 27.122963] do_raw_spin_lock+0x18/0xe8
      [ 27.122966] _raw_spin_lock+0x24/0x30
      [ 27.128157] thermal_cooling_device_stats_update+0x24/0x98
      [ 27.128162] cur_state_store+0x88/0xb8
      [ 27.128166] dev_attr_store+0x40/0x58
      [ 27.128169] sysfs_kf_write+0x50/0x68
      [ 27.133358] kernfs_fop_write+0x12c/0x1c8
      [ 27.133362] __vfs_write+0x54/0x160
      [ 27.152297] vfs_write+0xcc/0x188
      [ 27.157132] ksys_write+0x78/0x108
      [ 27.162050] ksys_write+0xf8/0x108
      [ 27.166968] __arm_smccc_hvc+0x158/0x4b0
      [ 27.166973] __arm_smccc_hvc+0x9c/0x4b0
      [ 27.186005] el0_svc+0x8/0xc
      
      Signed-off-by: default avatarManaf Meethalavalappu Pallikunhi <manafm@codeaurora.org>
      Signed-off-by: default avatarDaniel Lezcano <daniel.lezcano@linaro.org>
      Link: https://lore.kernel.org/r/1607367181-24589-1-git-send-email-manafm@codeaurora.org
      2046a24a
    • Paul Cercueil's avatar
      MIPS: vmlinux.lds.S: Fix appended dtb not properly aligned · 3f6c515d
      Paul Cercueil authored
      Commit 6654111c ("MIPS: vmlinux.lds.S: align raw appended dtb to 8
      bytes") changed the alignment from STRUCT_ALIGNMENT bytes to 8 bytes.
      
      The commit's message makes it sound like it was actually done on
      purpose, but this is not the case. The commit was written when raw
      appended dtb were not aligned at all. The STRUCT_ALIGN() was added a few
      days before, in commit 7a05293a ("MIPS: boot/compressed: Copy DTB to
      aligned address"). The true purpose of the commit was not to align
      specifically to 8 bytes, but to make sure that the generated vmlinux'
      size was properly padded to the alignment required for DTBs.
      
      While the switch to 8-byte alignment worked for vmlinux-appended dtb
      blobs, it broke vmlinuz-appended dtb blobs, as the decompress routine
      moves the blob to a STRUCT_ALIGNMENT aligned address.
      
      Fix this by changing the raw appended dtb blob alignment from 8 bytes
      back to STRUCT_ALIGNMENT bytes in vmlinux.lds.S.
      
      Fixes: 6654111c
      
       ("MIPS: vmlinux.lds.S: align raw appended dtb to 8 bytes")
      Cc: Bjørn Mork <bjorn@mork.no>
      Signed-off-by: default avatarPaul Cercueil <paul@crapouillou.net>
      Signed-off-by: default avatarThomas Bogendoerfer <tsbogend@alpha.franken.de>
      3f6c515d
    • Linus Torvalds's avatar
      Merge tag 'fuse-fixes-5.12-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/fuse · 1df27313
      Linus Torvalds authored
      Pull fuse fixes from Miklos Szeredi:
       "Fix a deadlock and a couple of other bugs"
      
      * tag 'fuse-fixes-5.12-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/fuse:
        fuse: 32-bit user space ioctl compat for fuse device
        virtiofs: Fail dax mount if device does not support it
        fuse: fix live lock in fuse_iget()
      1df27313
    • Linus Torvalds's avatar
      Merge tag 'nfsd-5.12-2' of git://git.kernel.org/pub/scm/linux/kernel/git/cel/linux · 4108e101
      Linus Torvalds authored
      Pull nfsd fixes from Chuck Lever:
       "Miscellaneous NFSD fixes for v5.12-rc"
      
      * tag 'nfsd-5.12-2' of git://git.kernel.org/pub/scm/linux/kernel/git/cel/linux:
        svcrdma: Revert "svcrdma: Reduce Receive doorbell rate"
        NFSD: fix error handling in NFSv4.0 callbacks
        NFSD: fix dest to src mount in inter-server COPY
        Revert "nfsd4: a client's own opens needn't prevent delegations"
        Revert "nfsd4: remove check_conflicting_opens warning"
        rpc: fix NULL dereference on kmalloc failure
        sunrpc: fix refcount leak for rpc auth modules
        NFSD: Repair misuse of sv_lock in 5.10.16-rt30.
        nfsd: don't abort copies early
        fs: nfsd: fix kconfig dependency warning for NFSD_V4
        svcrdma: disable timeouts on rdma backchannel
        nfsd: Don't keep looking up unhashed files in the nfsd file cache
      4108e101
  4. Mar 16, 2021
  5. Mar 15, 2021
    • Christoph Hellwig's avatar
      xfs: also reject BULKSTAT_SINGLE in a mount user namespace · 8723d5ba
      Christoph Hellwig authored
      BULKSTAT_SINGLE exposed the ondisk uids/gids just like bulkstat, and can
      be called on any inode, including ones not visible in the current mount.
      
      Fixes: f736d93d
      
       ("xfs: support idmapped mounts")
      Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
      Reviewed-by: default avatarDarrick J. Wong <djwong@kernel.org>
      Signed-off-by: default avatarDarrick J. Wong <djwong@kernel.org>
      8723d5ba
    • Bhaskar Chowdhury's avatar
    • Darrick J. Wong's avatar
      xfs: force log and push AIL to clear pinned inodes when aborting mount · d336f7eb
      Darrick J. Wong authored
      
      
      If we allocate quota inodes in the process of mounting a filesystem but
      then decide to abort the mount, it's possible that the quota inodes are
      sitting around pinned by the log.  Now that inode reclaim relies on the
      AIL to flush inodes, we have to force the log and push the AIL in
      between releasing the quota inodes and kicking off reclaim to tear down
      all the incore inodes.  Do this by extracting the bits we need from the
      unmount path and reusing them.  As an added bonus, failed writes during
      a failed mount will not retry forever now.
      
      This was originally found during a fuzz test of metadata directories
      (xfs/1546), but the actual symptom was that reclaim hung up on the quota
      inodes.
      
      Signed-off-by: default avatarDarrick J. Wong <djwong@kernel.org>
      Reviewed-by: default avatarChristoph Hellwig <hch@lst.de>
      Reviewed-by: default avatarDave Chinner <dchinner@redhat.com>
      d336f7eb
    • Stefano Garzarella's avatar
      vhost-vdpa: set v->config_ctx to NULL if eventfd_ctx_fdget() fails · 0bde59c1
      Stefano Garzarella authored
      In vhost_vdpa_set_config_call() if eventfd_ctx_fdget() fails the
      'v->config_ctx' contains an error instead of a valid pointer.
      
      Since we consider 'v->config_ctx' valid if it is not NULL, we should
      set it to NULL in this case to avoid to use an invalid pointer in
      other functions such as vhost_vdpa_config_put().
      
      Fixes: 776f3950
      
       ("vhost_vdpa: Support config interrupt in vdpa")
      Cc: lingshan.zhu@intel.com
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarStefano Garzarella <sgarzare@redhat.com>
      Link: https://lore.kernel.org/r/20210311135257.109460-3-sgarzare@redhat.com
      
      
      Signed-off-by: default avatarMichael S. Tsirkin <mst@redhat.com>
      Acked-by: default avatarJason Wang <jasowang@redhat.com>
      0bde59c1
    • Stefano Garzarella's avatar
      vhost-vdpa: fix use-after-free of v->config_ctx · f6bbf001
      Stefano Garzarella authored
      When the 'v->config_ctx' eventfd_ctx reference is released we didn't
      set it to NULL. So if the same character device (e.g. /dev/vhost-vdpa-0)
      is re-opened, the 'v->config_ctx' is invalid and calling again
      vhost_vdpa_config_put() causes use-after-free issues like the
      following refcount_t underflow:
      
          refcount_t: underflow; use-after-free.
          WARNING: CPU: 2 PID: 872 at lib/refcount.c:28 refcount_warn_saturate+0xae/0xf0
          RIP: 0010:refcount_warn_saturate+0xae/0xf0
          Call Trace:
           eventfd_ctx_put+0x5b/0x70
           vhost_vdpa_release+0xcd/0x150 [vhost_vdpa]
           __fput+0x8e/0x240
           ____fput+0xe/0x10
           task_work_run+0x66/0xa0
           exit_to_user_mode_prepare+0x118/0x120
           syscall_exit_to_user_mode+0x21/0x50
           ? __x64_sys_close+0x12/0x40
           do_syscall_64+0x45/0x50
           entry_SYSCALL_64_after_hwframe+0x44/0xae
      
      Fixes: 776f3950
      
       ("vhost_vdpa: Support config interrupt in vdpa")
      Cc: lingshan.zhu@intel.com
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarStefano Garzarella <sgarzare@redhat.com>
      Link: https://lore.kernel.org/r/20210311135257.109460-2-sgarzare@redhat.com
      
      
      Signed-off-by: default avatarMichael S. Tsirkin <mst@redhat.com>
      Reviewed-by: default avatarZhu Lingshan <lingshan.zhu@intel.com>
      Acked-by: default avatarJason Wang <jasowang@redhat.com>
      f6bbf001
    • Laurent Vivier's avatar
      vhost: Fix vhost_vq_reset() · beb691e6
      Laurent Vivier authored
      
      
      vhost_reset_is_le() is vhost_init_is_le(), and in the case of
      cross-endian legacy, vhost_init_is_le() depends on vq->user_be.
      
      vq->user_be is set by vhost_disable_cross_endian().
      
      But in vhost_vq_reset(), we have:
      
          vhost_reset_is_le(vq);
          vhost_disable_cross_endian(vq);
      
      And so user_be is used before being set.
      
      To fix that, reverse the lines order as there is no other dependency
      between them.
      
      Signed-off-by: default avatarLaurent Vivier <lvivier@redhat.com>
      Link: https://lore.kernel.org/r/20210312140913.788592-1-lvivier@redhat.com
      
      
      Signed-off-by: default avatarMichael S. Tsirkin <mst@redhat.com>
      beb691e6
    • Linus Torvalds's avatar
      Linux 5.12-rc3 · 1e28eed1
      Linus Torvalds authored
      1e28eed1
    • Alexey Dobriyan's avatar
      prctl: fix PR_SET_MM_AUXV kernel stack leak · c995f12a
      Alexey Dobriyan authored
      
      
      Doing a
      
      	prctl(PR_SET_MM, PR_SET_MM_AUXV, addr, 1);
      
      will copy 1 byte from userspace to (quite big) on-stack array
      and then stash everything to mm->saved_auxv.
      AT_NULL terminator will be inserted at the very end.
      
      /proc/*/auxv handler will find that AT_NULL terminator
      and copy original stack contents to userspace.
      
      This devious scheme requires CAP_SYS_RESOURCE.
      
      Signed-off-by: default avatarAlexey Dobriyan <adobriyan@gmail.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      c995f12a
    • Linus Torvalds's avatar
      Merge tag 'irq-urgent-2021-03-14' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 70404fe3
      Linus Torvalds authored
      Pull irq fixes from Thomas Gleixner:
       "A set of irqchip updates:
      
         - Make the GENERIC_IRQ_MULTI_HANDLER configuration correct
      
         - Add a missing DT compatible string for the Ingenic driver
      
         - Remove the pointless debugfs_file pointer from struct irqdomain"
      
      * tag 'irq-urgent-2021-03-14' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        irqchip/ingenic: Add support for the JZ4760
        dt-bindings/irq: Add compatible string for the JZ4760B
        irqchip: Do not blindly select CONFIG_GENERIC_IRQ_MULTI_HANDLER
        ARM: ep93xx: Select GENERIC_IRQ_MULTI_HANDLER directly
        irqdomain: Remove debugfs_file from struct irq_domain
      70404fe3
    • Linus Torvalds's avatar
      Merge tag 'timers-urgent-2021-03-14' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 802b31c0
      Linus Torvalds authored
      Pull timer fix from Thomas Gleixner:
       "A single fix in for hrtimers to prevent an interrupt storm caused by
        the lack of reevaluation of the timers which expire in softirq context
        under certain circumstances, e.g. when the clock was set"
      
      * tag 'timers-urgent-2021-03-14' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        hrtimer: Update softirq_expires_next correctly after __hrtimer_get_next_event()
      802b31c0
    • Linus Torvalds's avatar
      Merge tag 'sched-urgent-2021-03-14' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · c72cbc93
      Linus Torvalds authored
      Pull scheduler fixes from Thomas Gleixner:
       "A set of scheduler updates:
      
         - Prevent a NULL pointer dereference in the migration_stop_cpu()
           mechanims
      
         - Prevent self concurrency of affine_move_task()
      
         - Small fixes and cleanups related to task migration/affinity setting
      
         - Ensure that sync_runqueues_membarrier_state() is invoked on the
           current CPU when it is in the cpu mask"
      
      * tag 'sched-urgent-2021-03-14' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        sched/membarrier: fix missing local execution of ipi_sync_rq_state()
        sched: Simplify set_affinity_pending refcounts
        sched: Fix affine_move_task() self-concurrency
        sched: Optimize migration_cpu_stop()
        sched: Collate affine_move_task() stoppers
        sched: Simplify migration_cpu_stop()
        sched: Fix migration_cpu_stop() requeueing
      c72cbc93
    • Linus Torvalds's avatar
      Merge tag 'objtool-urgent-2021-03-14' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 19469d2a
      Linus Torvalds authored
      Pull objtool fix from Thomas Gleixner:
       "A single objtool fix to handle the PUSHF/POPF validation correctly for
        the paravirt changes which modified arch_local_irq_restore not to use
        popf"
      
      * tag 'objtool-urgent-2021-03-14' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        objtool,x86: Fix uaccess PUSHF/POPF validation
      19469d2a
    • Linus Torvalds's avatar
      Merge tag 'locking-urgent-2021-03-14' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · fa509ff8
      Linus Torvalds authored
      Pull locking fixes from Thomas Gleixner:
       "A couple of locking fixes:
      
         - A fix for the static_call mechanism so it handles unaligned
           addresses correctly.
      
         - Make u64_stats_init() a macro so every instance gets a seperate
           lockdep key.
      
         - Make seqcount_latch_init() a macro as well to preserve the static
           variable which is used for the lockdep key"
      
      * tag 'locking-urgent-2021-03-14' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        seqlock,lockdep: Fix seqcount_latch_init()
        u64_stats,lockdep: Fix u64_stats_init() vs lockdep
        static_call: Fix the module key fixup
      fa509ff8
    • Linus Torvalds's avatar
      Merge tag 'perf_urgent_for_v5.12-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 75013c6c
      Linus Torvalds authored
      Pull perf fixes from Borislav Petkov:
      
       - Make sure PMU internal buffers are flushed for per-CPU events too and
         properly handle PID/TID for large PEBS.
      
       - Handle the case properly when there's no PMU and therefore return an
         empty list of perf MSRs for VMX to switch instead of reading random
         garbage from the stack.
      
      * tag 'perf_urgent_for_v5.12-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/perf: Use RET0 as default for guest_get_msrs to handle "no PMU" case
        perf/x86/intel: Set PERF_ATTACH_SCHED_CB for large PEBS and LBR
        perf/core: Flush PMU internal buffers for per-CPU events
      75013c6c
    • Linus Torvalds's avatar
      Merge tag 'efi-urgent-for-v5.12-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 836d7f05
      Linus Torvalds authored
      Pull EFI fix from Ard Biesheuvel via Borislav Petkov:
       "Fix an oversight in the handling of EFI_RT_PROPERTIES_TABLE, which was
        added v5.10, but failed to take the SetVirtualAddressMap() RT service
        into account"
      
      * tag 'efi-urgent-for-v5.12-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        efi: stub: omit SetVirtualAddressMap() if marked unsupported in RT_PROP table
      836d7f05
    • Linus Torvalds's avatar
      Merge tag 'x86_urgent_for_v5.12_rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 0a7c10df
      Linus Torvalds authored
      Pull x86 fixes from Borislav Petkov:
      
       - A couple of SEV-ES fixes and robustifications: verify usermode stack
         pointer in NMI is not coming from the syscall gap, correctly track
         IRQ states in the #VC handler and access user insn bytes atomically
         in same handler as latter cannot sleep.
      
       - Balance 32-bit fast syscall exit path to do the proper work on exit
         and thus not confuse audit and ptrace frameworks.
      
       - Two fixes for the ORC unwinder going "off the rails" into KASAN
         redzones and when ORC data is missing.
      
      * tag 'x86_urgent_for_v5.12_rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/sev-es: Use __copy_from_user_inatomic()
        x86/sev-es: Correctly track IRQ states in runtime #VC handler
        x86/sev-es: Check regs->sp is trusted before adjusting #VC IST stack
        x86/sev-es: Introduce ip_within_syscall_gap() helper
        x86/entry: Fix entry/exit mismatch on failed fast 32-bit syscalls
        x86/unwind/orc: Silence warnings caused by missing ORC data
        x86/unwind/orc: Disable KASAN checking in the ORC unwinder, part 2
      0a7c10df
    • Linus Torvalds's avatar
      Merge tag 'powerpc-5.12-3' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux · c3c7579f
      Linus Torvalds authored
      Pull powerpc fixes from Michael Ellerman:
       "Some more powerpc fixes for 5.12:
      
         - Fix wrong instruction encoding for lis in ppc_function_entry(),
           which could potentially lead to missed kprobes.
      
         - Fix SET_FULL_REGS on 32-bit and 64e, which prevented ptrace of
           non-volatile GPRs immediately after exec.
      
         - Clean up a missed SRR specifier in the recent interrupt rework.
      
         - Don't treat unrecoverable_exception() as an interrupt handler, it's
           called from other handlers so shouldn't do the interrupt entry/exit
           accounting itself.
      
         - Fix build errors caused by missing declarations for
           [en/dis]able_kernel_vsx().
      
        Thanks to Christophe Leroy, Daniel Axtens, Geert Uytterhoeven, Jiri
        Olsa, Naveen N. Rao, and Nicholas Piggin"
      
      * tag 'powerpc-5.12-3' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux:
        powerpc/traps: unrecoverable_exception() is not an interrupt handler
        powerpc: Fix missing declaration of [en/dis]able_kernel_vsx()
        powerpc/64s/exception: Clean up a missed SRR specifier
        powerpc: Fix inverted SET_FULL_REGS bitop
        powerpc/64s: Use symbolic macros for function entry encoding
        powerpc/64s: Fix instruction encoding for lis in ppc_function_entry()
      c3c7579f
    • Linus Torvalds's avatar
      Merge tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm · 9d0c8e79
      Linus Torvalds authored
      Pull KVM fixes from Paolo Bonzini:
       "More fixes for ARM and x86"
      
      * tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm:
        KVM: LAPIC: Advancing the timer expiration on guest initiated write
        KVM: x86/mmu: Skip !MMU-present SPTEs when removing SP in exclusive mode
        KVM: kvmclock: Fix vCPUs > 64 can't be online/hotpluged
        kvm: x86: annotate RCU pointers
        KVM: arm64: Fix exclusive limit for IPA size
        KVM: arm64: Reject VM creation when the default IPA size is unsupported
        KVM: arm64: Ensure I-cache isolation between vcpus of a same VM
        KVM: arm64: Don't use cbz/adr with external symbols
        KVM: arm64: Fix range alignment when walking page tables
        KVM: arm64: Workaround firmware wrongly advertising GICv2-on-v3 compatibility
        KVM: arm64: Rename __vgic_v3_get_ich_vtr_el2() to __vgic_v3_get_gic_config()
        KVM: arm64: Don't access PMSELR_EL0/PMUSERENR_EL0 when no PMU is available
        KVM: arm64: Turn kvm_arm_support_pmu_v3() into a static key
        KVM: arm64: Fix nVHE hyp panic host context restore
        KVM: arm64: Avoid corrupting vCPU context register in guest exit
        KVM: arm64: nvhe: Save the SPE context early
        kvm: x86: use NULL instead of using plain integer as pointer
        KVM: SVM: Connect 'npt' module param to KVM's internal 'npt_enabled'
        KVM: x86: Ensure deadline timer has truly expired before posting its IRQ
      9d0c8e79
    • Linus Torvalds's avatar
      Merge branch 'akpm' (patches from Andrew) · 50eb842f
      Linus Torvalds authored
      Merge misc fixes from Andrew Morton:
       "28 patches.
      
        Subsystems affected by this series: mm (memblock, pagealloc, hugetlb,
        highmem, kfence, oom-kill, madvise, kasan, userfaultfd, memcg, and
        zram), core-kernel, kconfig, fork, binfmt, MAINTAINERS, kbuild, and
        ia64"
      
      * emailed patches from Andrew Morton <akpm@linux-foundation.org>: (28 commits)
        zram: fix broken page writeback
        zram: fix return value on writeback_store
        mm/memcg: set memcg when splitting page
        mm/memcg: rename mem_cgroup_split_huge_fixup to split_page_memcg and add nr_pages argument
        ia64: fix ptrace(PTRACE_SYSCALL_INFO_EXIT) sign
        ia64: fix ia64_syscall_get_set_arguments() for break-based syscalls
        mm/userfaultfd: fix memory corruption due to writeprotect
        kasan: fix KASAN_STACK dependency for HW_TAGS
        kasan, mm: fix crash with HW_TAGS and DEBUG_PAGEALLOC
        mm/madvise: replace ptrace attach requirement for process_madvise
        include/linux/sched/mm.h: use rcu_dereference in in_vfork()
        kfence: fix reports if constant function prefixes exist
        kfence, slab: fix cache_alloc_debugcheck_after() for bulk allocations
        kfence: fix printk format for ptrdiff_t
        linux/compiler-clang.h: define HAVE_BUILTIN_BSWAP*
        MAINTAINERS: exclude uapi directories in API/ABI section
        binfmt_misc: fix possible deadlock in bm_register_write
        mm/highmem.c: fix zero_user_segments() with start > end
        hugetlb: do early cow when page pinned on src mm
        mm: use is_cow_mapping() across tree where proper
        ...
      50eb842f
  6. Mar 14, 2021