1. 12 Feb, 2022 9 commits
    • Linus Torvalds's avatar
      Merge tag 's390-5.17-4' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux · a4fd49cd
      Linus Torvalds authored
      Pull s390 updates from Vasily Gorbik:
       "Maintainers and reviewers changes:
      
          - Add Alexander Gordeev as maintainer for s390.
      
          - Christian Borntraeger will focus on s390 KVM maintainership and
            stays as s390 reviewer.
      
        Fixes:
      
         - Fix clang build of modules loader KUnit test.
      
         - Fix kernel panic in CIO code on FCES path-event when no driver is
           attached to a device or the driver does not provide the path_event
           function"
      
      * tag 's390-5.17-4' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux:
        s390/cio: verify the driver availability for path_event call
        s390/module: fix building test_modules_helpers.o with clang
        MAINTAINERS: downgrade myself to Reviewer for s390
        MAINTAINERS: add Alexander Gordeev as maintainer for s390
      a4fd49cd
    • Linus Torvalds's avatar
      Merge tag 'for-linus-5.17a-rc4-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip · 4a387c98
      Linus Torvalds authored
      Pull xen fixes from Juergen Gross:
      
       - Two small cleanups
      
       - Another fix for addressing the EFI framebuffer above 4GB when running
         as Xen dom0
      
       - A patch to let Xen guests use reserved bits in MSI- and IO-APIC-
         registers for extended APIC-IDs the same way KVM guests are doing it
         already
      
      * tag 'for-linus-5.17a-rc4-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip:
        xen/pci: Make use of the helper macro LIST_HEAD()
        xen/x2apic: Fix inconsistent indenting
        xen/x86: detect support for extended destination ID
        xen/x86: obtain full video frame buffer address for Dom0 also under EFI
      4a387c98
    • Linus Torvalds's avatar
      Merge tag 'seccomp-v5.17-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux · eef8cffc
      Linus Torvalds authored
      Pull seccomp fixes from Kees Cook:
       "This fixes a corner case of fatal SIGSYS being ignored since v5.15.
        Along with the signal fix is a change to seccomp so that seeing
        another syscall after a fatal filter result will cause seccomp to kill
        the process harder.
      
        Summary:
      
         - Force HANDLER_EXIT even for SIGNAL_UNKILLABLE
      
         - Make seccomp self-destruct after fatal filter results
      
         - Update seccomp samples for easier behavioral demonstration"
      
      * tag 'seccomp-v5.17-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux:
        samples/seccomp: Adjust sample to also provide kill option
        seccomp: Invalidate seccomp mode to catch death failures
        signal: HANDLER_EXIT should clear SIGNAL_UNKILLABLE
      eef8cffc
    • Linus Torvalds's avatar
      Merge branch 'akpm' (patches from Andrew) · 9917ff5f
      Linus Torvalds authored
      Merge misc fixes from Andrew Morton:
       "5 patches.
      
        Subsystems affected by this patch series: binfmt, procfs, and mm
        (vmscan, memcg, and kfence)"
      
      * emailed patches from Andrew Morton <akpm@linux-foundation.org>:
        kfence: make test case compatible with run time set sample interval
        mm: memcg: synchronize objcg lists with a dedicated spinlock
        mm: vmscan: remove deadlock due to throttling failing to make progress
        fs/proc: task_mmu.c: don't read mapcount for migration entry
        fs/binfmt_elf: fix PT_LOAD p_align values for loaders
      9917ff5f
    • Peng Liu's avatar
      kfence: make test case compatible with run time set sample interval · 8913c610
      Peng Liu authored
      The parameter kfence_sample_interval can be set via boot parameter and
      late shell command, which is convenient for automated tests and KFENCE
      parameter optimization.  However, KFENCE test case just uses
      compile-time CONFIG_KFENCE_SAMPLE_INTERVAL, which will make KFENCE test
      case not run as users desired.  Export kfence_sample_interval, so that
      KFENCE test case can use run-time-set sample interval.
      
      Link: https://lkml.kernel.org/r/20220207034432.185532-1-liupeng256@huawei.comSigned-off-by: default avatarPeng Liu <liupeng256@huawei.com>
      Reviewed-by: default avatarMarco Elver <elver@google.com>
      Cc: Alexander Potapenko <glider@google.com>
      Cc: Dmitry Vyukov <dvyukov@google.com>
      Cc: Jonathan Corbet <corbet@lwn.net>
      Cc: Sumit Semwal <sumit.semwal@linaro.org>
      Cc: Christian Knig <christian.koenig@amd.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      8913c610
    • Roman Gushchin's avatar
      mm: memcg: synchronize objcg lists with a dedicated spinlock · 0764db9b
      Roman Gushchin authored
      Alexander reported a circular lock dependency revealed by the mmap1 ltp
      test:
      
        LOCKDEP_CIRCULAR (suite: ltp, case: mtest06 (mmap1))
                WARNING: possible circular locking dependency detected
                5.17.0-20220113.rc0.git0.f2211f194038.300.fc35.s390x+debug #1 Not tainted
                ------------------------------------------------------
                mmap1/202299 is trying to acquire lock:
                00000001892c0188 (css_set_lock){..-.}-{2:2}, at: obj_cgroup_release+0x4a/0xe0
                but task is already holding lock:
                00000000ca3b3818 (&sighand->siglock){-.-.}-{2:2}, at: force_sig_info_to_task+0x38/0x180
                which lock already depends on the new lock.
                the existing dependency chain (in reverse order) is:
                -> #1 (&sighand->siglock){-.-.}-{2:2}:
                       __lock_acquire+0x604/0xbd8
                       lock_acquire.part.0+0xe2/0x238
                       lock_acquire+0xb0/0x200
                       _raw_spin_lock_irqsave+0x6a/0xd8
                       __lock_task_sighand+0x90/0x190
                       cgroup_freeze_task+0x2e/0x90
                       cgroup_migrate_execute+0x11c/0x608
                       cgroup_update_dfl_csses+0x246/0x270
                       cgroup_subtree_control_write+0x238/0x518
                       kernfs_fop_write_iter+0x13e/0x1e0
                       new_sync_write+0x100/0x190
                       vfs_write+0x22c/0x2d8
                       ksys_write+0x6c/0xf8
                       __do_syscall+0x1da/0x208
                       system_call+0x82/0xb0
                -> #0 (css_set_lock){..-.}-{2:2}:
                       check_prev_add+0xe0/0xed8
                       validate_chain+0x736/0xb20
                       __lock_acquire+0x604/0xbd8
                       lock_acquire.part.0+0xe2/0x238
                       lock_acquire+0xb0/0x200
                       _raw_spin_lock_irqsave+0x6a/0xd8
                       obj_cgroup_release+0x4a/0xe0
                       percpu_ref_put_many.constprop.0+0x150/0x168
                       drain_obj_stock+0x94/0xe8
                       refill_obj_stock+0x94/0x278
                       obj_cgroup_charge+0x164/0x1d8
                       kmem_cache_alloc+0xac/0x528
                       __sigqueue_alloc+0x150/0x308
                       __send_signal+0x260/0x550
                       send_signal+0x7e/0x348
                       force_sig_info_to_task+0x104/0x180
                       force_sig_fault+0x48/0x58
                       __do_pgm_check+0x120/0x1f0
                       pgm_check_handler+0x11e/0x180
                other info that might help us debug this:
                 Possible unsafe locking scenario:
                       CPU0                    CPU1
                       ----                    ----
                  lock(&sighand->siglock);
                                               lock(css_set_lock);
                                               lock(&sighand->siglock);
                  lock(css_set_lock);
                 *** DEADLOCK ***
                2 locks held by mmap1/202299:
                 #0: 00000000ca3b3818 (&sighand->siglock){-.-.}-{2:2}, at: force_sig_info_to_task+0x38/0x180
                 #1: 00000001892ad560 (rcu_read_lock){....}-{1:2}, at: percpu_ref_put_many.constprop.0+0x0/0x168
                stack backtrace:
                CPU: 15 PID: 202299 Comm: mmap1 Not tainted 5.17.0-20220113.rc0.git0.f2211f194038.300.fc35.s390x+debug #1
                Hardware name: IBM 3906 M04 704 (LPAR)
                Call Trace:
                  dump_stack_lvl+0x76/0x98
                  check_noncircular+0x136/0x158
                  check_prev_add+0xe0/0xed8
                  validate_chain+0x736/0xb20
                  __lock_acquire+0x604/0xbd8
                  lock_acquire.part.0+0xe2/0x238
                  lock_acquire+0xb0/0x200
                  _raw_spin_lock_irqsave+0x6a/0xd8
                  obj_cgroup_release+0x4a/0xe0
                  percpu_ref_put_many.constprop.0+0x150/0x168
                  drain_obj_stock+0x94/0xe8
                  refill_obj_stock+0x94/0x278
                  obj_cgroup_charge+0x164/0x1d8
                  kmem_cache_alloc+0xac/0x528
                  __sigqueue_alloc+0x150/0x308
                  __send_signal+0x260/0x550
                  send_signal+0x7e/0x348
                  force_sig_info_to_task+0x104/0x180
                  force_sig_fault+0x48/0x58
                  __do_pgm_check+0x120/0x1f0
                  pgm_check_handler+0x11e/0x180
                INFO: lockdep is turned off.
      
      In this example a slab allocation from __send_signal() caused a
      refilling and draining of a percpu objcg stock, resulted in a releasing
      of another non-related objcg.  Objcg release path requires taking the
      css_set_lock, which is used to synchronize objcg lists.
      
      This can create a circular dependency with the sighandler lock, which is
      taken with the locked css_set_lock by the freezer code (to freeze a
      task).
      
      In general it seems that using css_set_lock to synchronize objcg lists
      makes any slab allocations and deallocation with the locked css_set_lock
      and any intervened locks risky.
      
      To fix the problem and make the code more robust let's stop using
      css_set_lock to synchronize objcg lists and use a new dedicated spinlock
      instead.
      
      Link: https://lkml.kernel.org/r/Yfm1IHmoGdyUR81T@carbon.dhcp.thefacebook.com
      Fixes: bf4f0599 ("mm: memcg/slab: obj_cgroup API")
      Signed-off-by: default avatarRoman Gushchin <guro@fb.com>
      Reported-by: default avatarAlexander Egorenkov <egorenar@linux.ibm.com>
      Tested-by: default avatarAlexander Egorenkov <egorenar@linux.ibm.com>
      Reviewed-by: default avatarWaiman Long <longman@redhat.com>
      Acked-by: default avatarTejun Heo <tj@kernel.org>
      Reviewed-by: default avatarShakeel Butt <shakeelb@google.com>
      Reviewed-by: default avatarJeremy Linton <jeremy.linton@arm.com>
      Tested-by: default avatarJeremy Linton <jeremy.linton@arm.com>
      Cc: Johannes Weiner <hannes@cmpxchg.org>
      Cc: <stable@vger.kernel.org>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      0764db9b
    • Mel Gorman's avatar
      mm: vmscan: remove deadlock due to throttling failing to make progress · b485c6f1
      Mel Gorman authored
      A soft lockup bug in kcompactd was reported in a private bugzilla with
      the following visible in dmesg;
      
        watchdog: BUG: soft lockup - CPU#33 stuck for 26s! [kcompactd0:479]
        watchdog: BUG: soft lockup - CPU#33 stuck for 52s! [kcompactd0:479]
        watchdog: BUG: soft lockup - CPU#33 stuck for 78s! [kcompactd0:479]
        watchdog: BUG: soft lockup - CPU#33 stuck for 104s! [kcompactd0:479]
      
      The machine had 256G of RAM with no swap and an earlier failed
      allocation indicated that node 0 where kcompactd was run was potentially
      unreclaimable;
      
        Node 0 active_anon:29355112kB inactive_anon:2913528kB active_file:0kB
          inactive_file:0kB unevictable:64kB isolated(anon):0kB isolated(file):0kB
          mapped:8kB dirty:0kB writeback:0kB shmem:26780kB shmem_thp:
          0kB shmem_pmdmapped: 0kB anon_thp: 23480320kB writeback_tmp:0kB
          kernel_stack:2272kB pagetables:24500kB all_unreclaimable? yes
      
      Vlastimil Babka investigated a crash dump and found that a task
      migrating pages was trying to drain PCP lists;
      
        PID: 52922  TASK: ffff969f820e5000  CPU: 19  COMMAND: "kworker/u128:3"
        Call Trace:
           __schedule
           schedule
           schedule_timeout
           wait_for_completion
           __flush_work
           __drain_all_pages
           __alloc_pages_slowpath.constprop.114
           __alloc_pages
           alloc_migration_target
           migrate_pages
           migrate_to_node
           do_migrate_pages
           cpuset_migrate_mm_workfn
           process_one_work
           worker_thread
           kthread
           ret_from_fork
      
      This failure is specific to CONFIG_PREEMPT=n builds.  The root of the
      problem is that kcompact0 is not rescheduling on a CPU while a task that
      has isolated a large number of the pages from the LRU is waiting on
      kcompact0 to reschedule so the pages can be released.  While
      shrink_inactive_list() only loops once around too_many_isolated, reclaim
      can continue without rescheduling if sc->skipped_deactivate == 1 which
      could happen if there was no file LRU and the inactive anon list was not
      low.
      
      Link: https://lkml.kernel.org/r/20220203100326.GD3301@suse.de
      Fixes: d818fca1 ("mm/vmscan: throttle reclaim and compaction when too may pages are isolated")
      Signed-off-by: default avatarMel Gorman <mgorman@suse.de>
      Debugged-by: default avatarVlastimil Babka <vbabka@suse.cz>
      Reviewed-by: default avatarVlastimil Babka <vbabka@suse.cz>
      Acked-by: default avatarMichal Hocko <mhocko@suse.com>
      Acked-by: default avatarDavid Rientjes <rientjes@google.com>
      Cc: Hugh Dickins <hughd@google.com>
      Cc: Michal Hocko <mhocko@suse.com>
      Cc: Rik van Riel <riel@surriel.com>
      Cc: <stable@vger.kernel.org>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      b485c6f1
    • Yang Shi's avatar
      fs/proc: task_mmu.c: don't read mapcount for migration entry · 24d7275c
      Yang Shi authored
      The syzbot reported the below BUG:
      
        kernel BUG at include/linux/page-flags.h:785!
        invalid opcode: 0000 [#1] PREEMPT SMP KASAN
        CPU: 1 PID: 4392 Comm: syz-executor560 Not tainted 5.16.0-rc6-syzkaller #0
        Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011
        RIP: 0010:PageDoubleMap include/linux/page-flags.h:785 [inline]
        RIP: 0010:__page_mapcount+0x2d2/0x350 mm/util.c:744
        Call Trace:
          page_mapcount include/linux/mm.h:837 [inline]
          smaps_account+0x470/0xb10 fs/proc/task_mmu.c:466
          smaps_pte_entry fs/proc/task_mmu.c:538 [inline]
          smaps_pte_range+0x611/0x1250 fs/proc/task_mmu.c:601
          walk_pmd_range mm/pagewalk.c:128 [inline]
          walk_pud_range mm/pagewalk.c:205 [inline]
          walk_p4d_range mm/pagewalk.c:240 [inline]
          walk_pgd_range mm/pagewalk.c:277 [inline]
          __walk_page_range+0xe23/0x1ea0 mm/pagewalk.c:379
          walk_page_vma+0x277/0x350 mm/pagewalk.c:530
          smap_gather_stats.part.0+0x148/0x260 fs/proc/task_mmu.c:768
          smap_gather_stats fs/proc/task_mmu.c:741 [inline]
          show_smap+0xc6/0x440 fs/proc/task_mmu.c:822
          seq_read_iter+0xbb0/0x1240 fs/seq_file.c:272
          seq_read+0x3e0/0x5b0 fs/seq_file.c:162
          vfs_read+0x1b5/0x600 fs/read_write.c:479
          ksys_read+0x12d/0x250 fs/read_write.c:619
          do_syscall_x64 arch/x86/entry/common.c:50 [inline]
          do_syscall_64+0x35/0xb0 arch/x86/entry/common.c:80
          entry_SYSCALL_64_after_hwframe+0x44/0xae
      
      The reproducer was trying to read /proc/$PID/smaps when calling
      MADV_FREE at the mean time.  MADV_FREE may split THPs if it is called
      for partial THP.  It may trigger the below race:
      
                 CPU A                         CPU B
                 -----                         -----
        smaps walk:                      MADV_FREE:
        page_mapcount()
          PageCompound()
                                         split_huge_page()
          page = compound_head(page)
          PageDoubleMap(page)
      
      When calling PageDoubleMap() this page is not a tail page of THP anymore
      so the BUG is triggered.
      
      This could be fixed by elevated refcount of the page before calling
      mapcount, but that would prevent it from counting migration entries, and
      it seems overkilling because the race just could happen when PMD is
      split so all PTE entries of tail pages are actually migration entries,
      and smaps_account() does treat migration entries as mapcount == 1 as
      Kirill pointed out.
      
      Add a new parameter for smaps_account() to tell this entry is migration
      entry then skip calling page_mapcount().  Don't skip getting mapcount
      for device private entries since they do track references with mapcount.
      
      Pagemap also has the similar issue although it was not reported.  Fixed
      it as well.
      
      [shy828301@gmail.com: v4]
        Link: https://lkml.kernel.org/r/20220203182641.824731-1-shy828301@gmail.com
      [nathan@kernel.org: avoid unused variable warning in pagemap_pmd_range()]
        Link: https://lkml.kernel.org/r/20220207171049.1102239-1-nathan@kernel.org
      Link: https://lkml.kernel.org/r/20220120202805.3369-1-shy828301@gmail.com
      Fixes: e9b61f19 ("thp: reintroduce split_huge_page()")
      Signed-off-by: default avatarYang Shi <shy828301@gmail.com>
      Signed-off-by: default avatarNathan Chancellor <nathan@kernel.org>
      Reported-by: syzbot+1f52b3a18d5633fa7f82@syzkaller.appspotmail.com
      Acked-by: default avatarDavid Hildenbrand <david@redhat.com>
      Cc: "Kirill A. Shutemov" <kirill.shutemov@linux.intel.com>
      Cc: Jann Horn <jannh@google.com>
      Cc: Matthew Wilcox <willy@infradead.org>
      Cc: Alexey Dobriyan <adobriyan@gmail.com>
      Cc: <stable@vger.kernel.org>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      24d7275c
    • Mike Rapoport's avatar
      fs/binfmt_elf: fix PT_LOAD p_align values for loaders · 925346c1
      Mike Rapoport authored
      Rui Salvaterra reported that Aisleroit solitaire crashes with "Wrong
      __data_start/_end pair" assertion from libgc after update to v5.17-rc1.
      
      Bisection pointed to commit 9630f0d6 ("fs/binfmt_elf: use PT_LOAD
      p_align values for static PIE") that fixed handling of static PIEs, but
      made the condition that guards load_bias calculation to exclude loader
      binaries.
      
      Restoring the check for presence of interpreter fixes the problem.
      
      Link: https://lkml.kernel.org/r/20220202121433.3697146-1-rppt@kernel.org
      Fixes: 9630f0d6 ("fs/binfmt_elf: use PT_LOAD p_align values for static PIE")
      Signed-off-by: default avatarMike Rapoport <rppt@linux.ibm.com>
      Reported-by: default avatarRui Salvaterra <rsalvaterra@gmail.com>
      Tested-by: default avatarRui Salvaterra <rsalvaterra@gmail.com>
      Cc: Alexander Viro <viro@zeniv.linux.org.uk>
      Cc: Eric Biederman <ebiederm@xmission.com>
      Cc: "H.J. Lu" <hjl.tools@gmail.com>
      Cc: Kees Cook <keescook@chromium.org>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      925346c1
  2. 11 Feb, 2022 24 commits
    • Linus Torvalds's avatar
      Merge tag 'soc-fixes-5.17-1' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc · 83e39664
      Linus Torvalds authored
      Pull ARM SoC fixes from Arnd Bergmann:
       "This is a fairly large set of bugfixes, most of which had been sent a
        while ago but only now made it into the soc tree:
      
        Maintainer file updates:
      
         - Claudiu Beznea now co-maintains the at91 soc family, replacing
           Ludovic Desroches.
      
         - Michael Walle maintains the sl28cpld drivers
      
         - Alain Volmat and Raphael Gallais-Pou take over some drivers for ST
           platforms
      
         - Alim Akhtar is an additional reviewer for Samsung platforms
      
        Code fixes:
      
         - Op-tee had a problem with object lifetime that needs a slightly
           complex fix, as well as another bug with error handling.
      
         - Several minor issues for the OMAP platform, including a regression
           with the timer
      
         - A Kconfig change to fix a build-time issue on Intel SoCFPGA
      
        Device tree fixes:
      
         - The Amlogic Meson platform fixes a boot regression on am1-odroid, a
           spurious interrupt, and a problem with reserved memory regions
      
         - In the i.MX platform, several bug fixes are needed to make devices
           work correctly: SD card detection, alarmtimer, and sound card on
           some board. One patch for the GPU got in there by accident and gets
           reverted again.
      
         - TI K3 needs a fix for J721S2 serial port numbers
      
         - ux500 needs a fix to mount the SD card as root on the Skomer phone"
      
      * tag 'soc-fixes-5.17-1' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc: (46 commits)
        Revert "arm64: dts: imx8mn-venice-gw7902: disable gpu"
        arm64: Remove ARCH_VULCAN
        MAINTAINERS: add myself as a maintainer for the sl28cpld
        MAINTAINERS: add IRC to ARM sub-architectures and Devicetree
        MAINTAINERS: arm: samsung: add Git tree and IRC
        ARM: dts: Fix boot regression on Skomer
        ARM: dts: spear320: Drop unused and undocumented 'irq-over-gpio' property
        soc: aspeed: lpc-ctrl: Block error printing on probe defer cases
        docs/ABI: testing: aspeed-uart-routing: Escape asterisk
        MAINTAINERS: update drm/stm drm/sti and cec/sti maintainers
        MAINTAINERS: Update Benjamin Gaignard maintainer status
        ARM: socfpga: fix missing RESET_CONTROLLER
        arm64: dts: meson-sm1-odroid: fix boot loop after reboot
        arm64: dts: meson-g12: drop BL32 region from SEI510/SEI610
        arm64: dts: meson-g12: add ATF BL32 reserved-memory region
        arm64: dts: meson-gx: add ATF BL32 reserved-memory region
        arm64: dts: meson-sm1-bananapi-m5: fix wrong GPIO domain for GPIOE_2
        arm64: dts: meson-sm1-odroid: use correct enable-gpio pin for tf-io regulator
        arm64: dts: meson-g12b-odroid-n2: fix typo 'dio2133'
        optee: use driver internal tee_context for some rpc
        ...
      83e39664
    • Linus Torvalds's avatar
      Merge tag 'pci-v5.17-fixes-4' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci · adccc16e
      Linus Torvalds authored
      Pull pci fix from Bjorn Helgaas:
       "Revert a commit that reduced the number of IRQs used but resulted in
        interrupt storms (Bjorn Helgaas)"
      
      * tag 'pci-v5.17-fixes-4' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci:
        Revert "PCI/portdrv: Do not setup up IRQs if there are no users"
      adccc16e
    • Bjorn Helgaas's avatar
      Revert "PCI/portdrv: Do not setup up IRQs if there are no users" · 075b7d36
      Bjorn Helgaas authored
      This reverts commit 0e8ae5a6.
      
      0e8ae5a6 ("PCI/portdrv: Do not setup up IRQs if there are no users")
      reduced usage of IRQs when we don't think we need them.  But Joey, Sergiu,
      and David reported choppy GUI rendering, systems that became unresponsive
      every few seconds, incorrect values reported by cpufreq, and high IRQ 16
      CPU usage.
      
      Joey bisected the issues to 0e8ae5a6, so revert it until we figure out
      a better solution.
      
      Link: https://lore.kernel.org/r/20220210222717.GA658201@bhelgaas
      Link: https://bugzilla.kernel.org/show_bug.cgi?id=215533
      Link: https://bugzilla.kernel.org/show_bug.cgi?id=215546Reported-by: default avatarJoey Corleone <joey.corleone@mail.ru>
      Reported-by: default avatarSergiu Deitsch <sergiu.deitsch@gmail.com>
      Reported-by: default avatarDavid Spencer <dspencer577@gmail.com>
      Signed-off-by: default avatarBjorn Helgaas <bhelgaas@google.com>
      Cc: stable@vger.kernel.org	# v5.16+
      Cc: Jan Kiszka <jan.kiszka@siemens.com>
      075b7d36
    • Linus Torvalds's avatar
      Merge tag 'riscv-for-linus-5.17-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/riscv/linux · 1d41d2e8
      Linus Torvalds authored
      Pull RISC-V fixes from Palmer Dabbelt:
      
       - A fix to avoid undefined behavior when stack backtracing, which
         manifests in GCC as incorrect stack addresses
      
       - A few fixes for the XIP kernels
      
       - A fix to tracking NUMA state on CPU hotplug
      
       - Support for the recently relesaed binutils-2.38, which changed the
         default ISA version to one without CSRs or fence.i in 'I' extension
      
      * tag 'riscv-for-linus-5.17-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/riscv/linux:
        riscv: fix build with binutils 2.38
        riscv: cpu-hotplug: clear cpu from numa map when teardown
        riscv: extable: fix err reg writing in dedicated uaccess handler
        riscv/mm: Add XIP_FIXUP for riscv_pfn_base
        riscv/mm: Add XIP_FIXUP for phys_ram_base
        riscv: Fix XIP_FIXUP_FLASH_OFFSET
        riscv: eliminate unreliable __builtin_frame_address(1)
      1d41d2e8
    • Linus Torvalds's avatar
      Merge tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux · e47ca403
      Linus Torvalds authored
      Pull arm64 fixes from Catalin Marinas:
      
       - Enable Cortex-A510 erratum 2051678 by default as we do with other
         errata.
      
       - arm64 IORT: Check the node revision for PMCG resources to cope with
         old firmware based on a broken revision of the spec that had no way
         to describe the second register page (when an implementation is using
         the recommended RELOC_CTRS feature).
      
      * tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux:
        ACPI/IORT: Check node revision for PMCG resources
        arm64: Enable Cortex-A510 erratum 2051678 by default
      e47ca403
    • Linus Torvalds's avatar
      Merge tag 'acpi-5.17-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · 883fd0ab
      Linus Torvalds authored
      Pull ACPI fixes from Rafael Wysocki:
       "These revert two commits that turned out to be problematic and fix two
        issues related to wakeup from suspend-to-idle on x86.
      
        Specifics:
      
         - Revert a recent change that attempted to avoid issues with
           conflicting address ranges during PCI initialization, because it
           turned out to introduce a regression (Hans de Goede).
      
         - Revert a change that limited EC GPE wakeups from suspend-to-idle to
           systems based on Intel hardware, because it turned out that systems
           based on hardware from other vendors depended on that functionality
           too (Mario Limonciello).
      
         - Fix two issues related to the handling of wakeup interrupts and
           wakeup events signaled through the EC GPE during suspend-to-idle on
           x86 (Rafael Wysocki)"
      
      * tag 'acpi-5.17-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
        x86/PCI: revert "Ignore E820 reservations for bridge windows on newer systems"
        PM: s2idle: ACPI: Fix wakeup interrupts handling
        ACPI: PM: s2idle: Cancel wakeup before dispatching EC GPE
        ACPI: PM: Revert "Only mark EC GPE for wakeup on Intel systems"
      883fd0ab
    • Linus Torvalds's avatar
      Merge tag 'gfs2-v5.16-rc3-fixes2' of git://git.kernel.org/pub/scm/linux/kernel/git/gfs2/linux-gfs2 · 8ce964b5
      Linus Torvalds authored
      Pull gfs2 fixes from Andreas Gruenbacher:
      
       - Revert debug commit that causes unexpected data corruption
      
       - Fix muti-block reservation regression
      
      * tag 'gfs2-v5.16-rc3-fixes2' of git://git.kernel.org/pub/scm/linux/kernel/git/gfs2/linux-gfs2:
        gfs2: Fix gfs2_release for non-writers regression
        Revert "gfs2: check context in gfs2_glock_put"
      8ce964b5
    • Linus Torvalds's avatar
      Merge tag 'block-5.17-2022-02-11' of git://git.kernel.dk/linux-block · cf26a236
      Linus Torvalds authored
      Pull block fixes from Jens Axboe:
      
       - NVMe pull request
            - nvme-tcp: fix bogus request completion when failing to send AER
              (Sagi Grimberg)
            - add the missing nvme_complete_req tracepoint for batched
              completion (Bean Huo)
      
       - Revert of the loop async autoclear issue that has continued to plague
         us this release. A few patchsets exists to improve this, but they are
         too invasive to be considered at this point (Tetsuo)
      
      * tag 'block-5.17-2022-02-11' of git://git.kernel.dk/linux-block:
        loop: revert "make autoclear operation asynchronous"
        nvme-tcp: fix bogus request completion when failing to send AER
        nvme: add nvme_complete_req tracepoint for batched completion
      cf26a236
    • Linus Torvalds's avatar
      Merge tag 'io_uring-5.17-2022-02-11' of git://git.kernel.dk/linux-block · 199b7f84
      Linus Torvalds authored
      Pull io_uring fixes from Jens Axboe:
      
       - Fix a false-positive warning from an older gcc (Alviro)
      
       - Allow oom killer invocations from io_uring_setup (Shakeel)
      
      * tag 'io_uring-5.17-2022-02-11' of git://git.kernel.dk/linux-block:
        mm: io_uring: allow oom-killer from io_uring_setup
        io_uring: Clean up a false-positive warning from GCC 9.3.0
      199b7f84
    • Linus Torvalds's avatar
      Merge tag 'gpio-fixes-for-v5.17-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/brgl/linux · 0b9df436
      Linus Torvalds authored
      Pull gpio fixes from Bartosz Golaszewski:
      
       - use sleeping variants of GPIO accessors where needed
         in gpio-aggregator
      
       - never return kernel's internal error codes to user-space
         in gpiolib core
      
       - use the correct register for reading output values in
         gpio-sifive
      
       - fix line hogging in gpio-sim
      
      * tag 'gpio-fixes-for-v5.17-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/brgl/linux:
        gpio: sim: fix hogs with custom chip labels
        gpio: sifive: use the correct register to read output values
        gpiolib: Never return internal error codes to user space
        gpio: aggregator: Fix calling into sleeping GPIO controllers
      0b9df436
    • Linus Torvalds's avatar
      Merge tag 'ata-5.17-rc4-2' of git://git.kernel.org/pub/scm/linux/kernel/git/dlemoal/libata · 284fce04
      Linus Torvalds authored
      Pull ata fixes from Damien Le Moal:
       "A couple of additional fixes for 5.17-rc4:
      
         - Fix compilation warnings in the sata_fsl driver (powerpc) (me)
      
         - Disable TRIM commands on M88V29 devices as these commands are
           failing despite the device reporting it supports TRIM (Zoltan)"
      
      * tag 'ata-5.17-rc4-2' of git://git.kernel.org/pub/scm/linux/kernel/git/dlemoal/libata:
        ata: libata-core: Disable TRIM on M88V29
        ata: sata_fsl: fix sscanf() and sysfs_emit() format strings
      284fce04
    • Linus Torvalds's avatar
      Merge tag 'drm-fixes-2022-02-11' of git://anongit.freedesktop.org/drm/drm · c3ee3a9e
      Linus Torvalds authored
      Pull drm fixes from Dave Airlie:
       "Regular fixes pull, mostly i915 and amd fixes, along with a
        maintainers update for fbdev core.
      
        Otherwise just some build fixes and vc4 HDMI fixes.
      
        fbdev:
         - MAINTAINERS: add Daniel as fbdev core module maintainer
         - build warning fix
         - implicit type cast fix
      
        panel:
         - simple: Fix assignments from panel_dpi_probe()
      
        privacy-screen:
         - fix docs warning
      
        i915:
         - non-x86 build fix
         - ttm error propogation fix
         - drrs on hsw/ivb disabled
         - BIOS readout fixes
         - missing stackdepot oops fix
      
        amd:
         - DCN 3.1 display fixes
         - GC 10.3.1 harvest fix
         - Page flip irq fix
         - hwmon label fix
         - DCN 2.0 display fix
      
        rockchip:
         - fix HDMI error cleanup
         - fix RK3399 VOP register fields
      
        vc4:
         - HDMI fixes
         - remove redundant code"
      
      * tag 'drm-fixes-2022-02-11' of git://anongit.freedesktop.org/drm/drm: (25 commits)
        drm/amdgpu/display: change pipe policy for DCN 2.0
        drm/amd/pm: fix hwmon node of power1_label create issue
        drm/amd/display: keep eDP Vdd on when eDP stream is already enabled
        drm/amd/display: fix yellow carp wm clamping
        drm/amd/display: Cap pflip irqs per max otg number
        drm/amdgpu: add utcl2_harvest to gc 10.3.1
        display/amd: decrease message verbosity about watermarks table failure
        drm/rockchip: vop: Correct RK3399 VOP register fields
        drm/rockchip: dw_hdmi: Do not leave clock enabled in error case
        MAINTAINERS: Add entry for fbdev core
        fbcon: Avoid 'cap' set but not used warning
        drm/privacy-screen: Fix sphinx warning
        drm/i915: Workaround broken BIOS DBUF configuration on TGL/RKL
        drm/i915: Populate pipe dbuf slices more accurately during readout
        drm/i915: Allow !join_mbus cases for adlp+ dbuf configuration
        drm/i915: Fix header test for !CONFIG_X86
        drm/i915/ttm: Return some errors instead of trying memcpy move
        drm/i915: Disable DRRS on IVB/HSW port != A
        drm/i915: Fix oops due to missing stack depot
        drm/vc4: crtc: Fix redundant variable assignment
        ...
      c3ee3a9e
    • Linus Torvalds's avatar
      Merge tag 'trace-v5.17-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace · 32f6c5d0
      Linus Torvalds authored
      Pull tracing fixes from Steven Rostedt:
      
       - Fixes to the RTLA tooling
      
       - A fix to a tp_printk overriding tp_printk_stop_on_boot on the
         command line
      
      * tag 'trace-v5.17-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace:
        tracing: Fix tp_printk option related with tp_printk_stop_on_boot
        MAINTAINERS: Add RTLA entry
        rtla: Fix segmentation fault when failing to enable -t
        rtla/trace: Error message fixup
        rtla/utils: Fix session duration parsing
        rtla: Follow kernel version
      32f6c5d0
    • Bob Peterson's avatar
      gfs2: Fix gfs2_release for non-writers regression · d3add1a9
      Bob Peterson authored
      When a file is opened for writing, the vfs code (do_dentry_open)
      calls get_write_access for the inode, thus incrementing the inode's write
      count. That writer normally then creates a multi-block reservation for
      the inode (i_res) that can be re-used by other writers, which speeds up
      writes for applications that stupidly loop on open/write/close.
      When the writes are all done, the multi-block reservation should be
      deleted when the file is closed by the last "writer."
      
      Commit 0ec9b9ea broke that concept when it moved the call to
      gfs2_rs_delete before the check for FMODE_WRITE.  Non-writers have no
      business removing the multi-block reservations of writers. In fact, if
      someone opens and closes the file for RO while a writer has a
      multi-block reservation, the RO closer will delete the reservation
      midway through the write, and this results in:
      
      kernel BUG at fs/gfs2/rgrp.c:677! (or thereabouts) which is:
      BUG_ON(rs->rs_requested); from function gfs2_rs_deltree.
      
      This patch moves the check back inside the check for FMODE_WRITE.
      
      Fixes: 0ec9b9ea ("gfs2: Check for active reservation in gfs2_release")
      Cc: stable@vger.kernel.org # v5.12+
      Signed-off-by: default avatarBob Peterson <rpeterso@redhat.com>
      Signed-off-by: default avatarAndreas Gruenbacher <agruenba@redhat.com>
      d3add1a9
    • Andreas Gruenbacher's avatar
      Revert "gfs2: check context in gfs2_glock_put" · 356b8103
      Andreas Gruenbacher authored
      It turns out that the might_sleep() call that commit 660a6126 adds
      is triggering occasional data corruption in testing.  We're not sure
      about the root cause yet, but since this commit was added as a debugging
      aid only, revert it for now.
      
      This reverts commit 660a6126.
      
      Fixes: 660a6126 ("gfs2: check context in gfs2_glock_put")
      Cc: stable@vger.kernel.org # v5.16+
      Signed-off-by: default avatarAndreas Gruenbacher <agruenba@redhat.com>
      356b8103
    • Rafael J. Wysocki's avatar
      Merge branch 'acpi-x86' · 27a98fe6
      Rafael J. Wysocki authored
      Merge a revert of a problematic commit for 5.17-rc4.
      
      * acpi-x86:
        x86/PCI: revert "Ignore E820 reservations for bridge windows on newer systems"
      27a98fe6
    • Tetsuo Handa's avatar
      loop: revert "make autoclear operation asynchronous" · bf23747e
      Tetsuo Handa authored
      The kernel test robot is reporting that xfstest which does
      
        umount ext2 on xfs
        umount xfs
      
      sequence started failing, for commit 322c4293 ("loop: make
      autoclear operation asynchronous") removed a guarantee that fput() of
      backing file is processed before lo_release() from close() returns to
      user mode.
      
      And syzbot is reporting that deferring destroy_workqueue() from
      __loop_clr_fd() to a WQ context did not help [1]. Revert that commit.
      
      Link: https://syzkaller.appspot.com/bug?extid=831661966588c802aae9 [1]
      Reported-by: default avatarkernel test robot <oliver.sang@intel.com>
      Acked-by: default avatarJan Kara <jack@suse.cz>
      Reviewed-by: default avatarChristoph Hellwig <hch@lst.de>
      Reported-by: default avatarsyzbot <syzbot+831661966588c802aae9@syzkaller.appspotmail.com>
      Signed-off-by: default avatarTetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
      Link: https://lore.kernel.org/r/20220211071554.3424-1-penguin-kernel@I-love.SAKURA.ne.jpSigned-off-by: default avatarJens Axboe <axboe@kernel.dk>
      bf23747e
    • Kees Cook's avatar
      samples/seccomp: Adjust sample to also provide kill option · eed09ad2
      Kees Cook authored
      As a quick way to test SECCOMP_RET_KILL, have a negative errno mean to
      kill the process.
      
      While we're in here, also swap the arch and syscall arguments so they're
      ordered more like how seccomp filters order them.
      Signed-off-by: default avatarKees Cook <keescook@chromium.org>
      eed09ad2
    • Kees Cook's avatar
      seccomp: Invalidate seccomp mode to catch death failures · 495ac306
      Kees Cook authored
      If seccomp tries to kill a process, it should never see that process
      again. To enforce this proactively, switch the mode to something
      impossible. If encountered: WARN, reject all syscalls, and attempt to
      kill the process again even harder.
      
      Cc: Andy Lutomirski <luto@amacapital.net>
      Cc: Will Drewry <wad@chromium.org>
      Fixes: 8112c4f1 ("seccomp: remove 2-phase API")
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarKees Cook <keescook@chromium.org>
      495ac306
    • Kees Cook's avatar
      signal: HANDLER_EXIT should clear SIGNAL_UNKILLABLE · 5c72263e
      Kees Cook authored
      Fatal SIGSYS signals (i.e. seccomp RET_KILL_* syscall filter actions)
      were not being delivered to ptraced pid namespace init processes. Make
      sure the SIGNAL_UNKILLABLE doesn't get set for these cases.
      Reported-by: default avatarRobert Święcki <robert@swiecki.net>
      Suggested-by: default avatar"Eric W. Biederman" <ebiederm@xmission.com>
      Fixes: 00b06da2 ("signal: Add SA_IMMUTABLE to ensure forced siganls do not get changed")
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarKees Cook <keescook@chromium.org>
      Reviewed-by: default avatar"Eric W. Biederman" <ebiederm@xmission.com>
      Link: https://lore.kernel.org/lkml/878rui8u4a.fsf@email.froward.int.ebiederm.org
      5c72263e
    • Dave Airlie's avatar
      Merge tag 'amd-drm-fixes-5.17-2022-02-09' of... · 95e875bd
      Dave Airlie authored
      Merge tag 'amd-drm-fixes-5.17-2022-02-09' of https://gitlab.freedesktop.org/agd5f/linux into drm-fixes
      
      amd-drm-fixes-5.17-2022-02-09:
      
      amdgpu:
      - DCN 3.1 display fixes
      - GC 10.3.1 harvest fix
      - Page flip irq fix
      - hwmon label fix
      - DCN 2.0 display fix
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      From: Alex Deucher <alexander.deucher@amd.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20220210041137.5926-1-alexander.deucher@amd.com
      95e875bd
    • Dave Airlie's avatar
      Merge tag 'drm-intel-fixes-2022-02-10' of... · 78306438
      Dave Airlie authored
      Merge tag 'drm-intel-fixes-2022-02-10' of git://anongit.freedesktop.org/drm/drm-intel into drm-fixes
      
      - Build fix for non-x86 platforms after remap_io_mmapping changes. (Lucas De Marchi)
      - Correctly propagate errors during object migration blits. (Thomas Hellström)
      - Disable DRRS support on HSW/IVB where it is not implemented yet. (Ville Syrjälä)
      - Correct pipe dbuf BIOS configuration during readout. (Ville Syrjälä)
      - Properly sanitise BIOS buf configuration on ADL-P+ for !join_mbus cases. (Ville Syrjälä)
      - Fix oops due to missing stack depot. (Ville Syrjälä)
      - Workaround broken BIOS DBUF configuration on TGL/RKL. (Ville Syrjälä)
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      From: Tvrtko Ursulin <tvrtko.ursulin@linux.intel.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/YgTuYAtpaV3XAGmx@tursulin-mobl2
      78306438
    • Dave Airlie's avatar
      Merge tag 'drm-misc-fixes-2022-02-10' of git://anongit.freedesktop.org/drm/drm-misc into drm-fixes · df2bb4dc
      Dave Airlie authored
       * drm/panel: simple: Fix assignments from panel_dpi_probe()
       * drm/privacy-screen: Cleanups
       * drm/rockchip: Fix HDMI error cleanup; Fix RK3399 VOP register fields
       * drm/vc4: HDMI fixes; Cleanups
       * fbdev: Add fbdev core module with Daniel as maintainer; Cleanups
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      
      From: Thomas Zimmermann <tzimmermann@suse.de>
      Link: https://patchwork.freedesktop.org/patch/msgid/YgTf1Zsflzq3JSFo@linux-uq9g
      df2bb4dc
    • Linus Torvalds's avatar
      Merge tag 'net-5.17-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net · f1baf68e
      Linus Torvalds authored
      Pull networking fixes from Jakub Kicinski:
       "Including fixes from netfilter and can.
      
      Current release - new code bugs:
      
         - sparx5: fix get_stat64 out-of-bound access and crash
      
         - smc: fix netdev ref tracker misuse
      
        Previous releases - regressions:
      
         - eth: ixgbevf: require large buffers for build_skb on 82599VF, avoid
           overflows
      
         - eth: ocelot: fix all IP traffic getting trapped to CPU with PTP
           over IP
      
         - bonding: fix rare link activation misses in 802.3ad mode
      
        Previous releases - always broken:
      
         - tcp: fix tcp sock mem accounting in zero-copy corner cases
      
         - remove the cached dst when uncloning an skb dst and its metadata,
           since we only have one ref it'd lead to an UaF
      
         - netfilter:
            - conntrack: don't refresh sctp entries in closed state
            - conntrack: re-init state for retransmitted syn-ack, avoid
              connection establishment getting stuck with strange stacks
            - ctnetlink: disable helper autoassign, avoid it getting lost
            - nft_payload: don't allow transport header access for fragments
      
         - dsa: fix use of devres for mdio throughout drivers
      
         - eth: amd-xgbe: disable interrupts during pci removal
      
         - eth: dpaa2-eth: unregister netdev before disconnecting the PHY
      
         - eth: ice: fix IPIP and SIT TSO offload"
      
      * tag 'net-5.17-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net: (53 commits)
        net: dsa: mv88e6xxx: fix use-after-free in mv88e6xxx_mdios_unregister
        net: mscc: ocelot: fix mutex lock error during ethtool stats read
        ice: Avoid RTNL lock when re-creating auxiliary device
        ice: Fix KASAN error in LAG NETDEV_UNREGISTER handler
        ice: fix IPIP and SIT TSO offload
        ice: fix an error code in ice_cfg_phy_fec()
        net: mpls: Fix GCC 12 warning
        dpaa2-eth: unregister the netdev before disconnecting from the PHY
        skbuff: cleanup double word in comment
        net: macb: Align the dma and coherent dma masks
        mptcp: netlink: process IPv6 addrs in creating listening sockets
        selftests: mptcp: add missing join check
        net: usb: qmi_wwan: Add support for Dell DW5829e
        vlan: move dev_put into vlan_dev_uninit
        vlan: introduce vlan_dev_free_egress_priority
        ax25: fix UAF bugs of net_device caused by rebinding operation
        net: dsa: fix panic when DSA master device unbinds on shutdown
        net: amd-xgbe: disable interrupts during pci removal
        tipc: rate limit warning for received illegal binding update
        net: mdio: aspeed: Add missing MODULE_DEVICE_TABLE
        ...
      f1baf68e
  3. 10 Feb, 2022 7 commits