Skip to content
  1. Jan 03, 2022
  2. Jan 02, 2022
    • yaowenbin's avatar
      perf top: Fix TUI exit screen refresh race condition · 64f18d2d
      yaowenbin authored
      
      
      When the following command is executed several times, a coredump file is
      generated.
      
      	$ timeout -k 9 5 perf top -e task-clock
      	*******
      	*******
      	*******
      	0.01%  [kernel]                  [k] __do_softirq
      	0.01%  libpthread-2.28.so        [.] __pthread_mutex_lock
      	0.01%  [kernel]                  [k] __ll_sc_atomic64_sub_return
      	double free or corruption (!prev) perf top --sort comm,dso
      	timeout: the monitored command dumped core
      
      When we terminate "perf top" using sending signal method,
      SLsmg_reset_smg() called. SLsmg_reset_smg() resets the SLsmg screen
      management routines by freeing all memory allocated while it was active.
      
      However SLsmg_reinit_smg() maybe be called by another thread.
      
      SLsmg_reinit_smg() will free the same memory accessed by
      SLsmg_reset_smg(), thus it results in a double free.
      
      SLsmg_reinit_smg() is called already protected by ui__lock, so we fix
      the problem by adding pthread_mutex_trylock of ui__lock when calling
      SLsmg_reset_smg().
      
      Signed-off-by: default avatarWenyu Liu <liuwenyu7@huawei.com>
      Tested-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
      Cc: Jiri Olsa <jolsa@redhat.com>
      Cc: Mark Rutland <mark.rutland@arm.com>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: wuxu.wu@huawei.com
      Link: http://lore.kernel.org/lkml/a91e3943-7ddc-f5c0-a7f5-360f073c20e6@huawei.com
      Signed-off-by: default avatarHewenliang <hewenliang4@huawei.com>
      Signed-off-by: default avataryaowenbin <yaowenbin1@huawei.com>
      Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      64f18d2d
    • John Garry's avatar
      perf pmu: Fix alias events list · e0257a01
      John Garry authored
      Commit 0e0ae874 ("perf list: Display hybrid PMU events with cpu
      type") changes the event list for uncore PMUs or arm64 heterogeneous CPU
      systems, such that duplicate aliases are incorrectly listed per PMU
      (which they should not be), like:
      
        # perf list
        ...
        unc_cbo_cache_lookup.any_es
        [Unit: uncore_cbox L3 Lookup any request that access cache and found
        line in E or S-state]
        unc_cbo_cache_lookup.any_es
        [Unit: uncore_cbox L3 Lookup any request that access cache and found
        line in E or S-state]
        unc_cbo_cache_lookup.any_i
        [Unit: uncore_cbox L3 Lookup any request that access cache and found
        line in I-state]
        unc_cbo_cache_lookup.any_i
        [Unit: uncore_cbox L3 Lookup any request that access cache and found
        line in I-state]
        ...
      
      Notice how the events are listed twice.
      
      The named commit changed how we remove duplicate events, in that events
      for different PMUs are not treated as duplicates. I suppose this is to
      handle how "Each hybrid pmu event has been assigned with a pmu name".
      
      Fix PMU alias listing by restoring behaviour to remove duplicates for
      non-hybrid PMUs.
      
      Fixes: 0e0ae874
      
       ("perf list: Display hybrid PMU events with cpu type")
      Signed-off-by: default avatarJohn Garry <john.garry@huawei.com>
      Tested-by: default avatarZhengjun Xing <zhengjun.xing@linux.intel.com>
      Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
      Cc: Ian Rogers <irogers@google.com>
      Cc: Ingo Molnar <mingo@redhat.com>
      Cc: Jiri Olsa <jolsa@redhat.com>
      Cc: Kan Liang <kan.liang@linux.intel.com>
      Cc: Mark Rutland <mark.rutland@arm.com>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Link: https://lore.kernel.org/r/1640103090-140490-1-git-send-email-john.garry@huawei.com
      Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      e0257a01
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input · 278218f6
      Linus Torvalds authored
      Pull input fixes from Dmitry Torokhov:
       "Two small fixups for spaceball joystick driver and appletouch touchpad
        driver"
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input:
        Input: spaceball - fix parsing of movement data packets
        Input: appletouch - initialize work before device registration
      278218f6
  3. Jan 01, 2022
    • Mel Gorman's avatar
      mm: vmscan: reduce throttling due to a failure to make progress -fix · 80082938
      Mel Gorman authored
      Hugh Dickins reported the following
      
      	My tmpfs swapping load (tweaked to use huge pages more heavily
      	than in real life) is far from being a realistic load: but it was
      	notably slowed down by your throttling mods in 5.16-rc, and this
      	patch makes it well again - thanks.
      
      	But: it very quickly hit NULL pointer until I changed that last
      	line to
      
              if (first_pgdat)
                      consider_reclaim_throttle(first_pgdat, sc);
      
      The likely issue is that huge pages are a major component of the test
      workload.  When this is the case, first_pgdat may never get set if
      compaction is ready to continue due to this check
      
              if (IS_ENABLED(CONFIG_COMPACTION) &&
                  sc->order > PAGE_ALLOC_COSTLY_ORDER &&
                  compaction_ready(zone, sc)) {
                      sc->compaction_ready = true;
                      continue;
              }
      
      If this was true for every zone in the zonelist, first_pgdat would never
      get set resulting in a NULL pointer exception.
      
      Link: https://lkml.kernel.org/r/20211209095453.GM3366@techsingularity.net
      Fixes: 1b4e3f26
      
       ("mm: vmscan: Reduce throttling due to a failure to make progress")
      Signed-off-by: default avatarMel Gorman <mgorman@techsingularity.net>
      Reported-by: default avatarHugh Dickins <hughd@google.com>
      Cc: Michal Hocko <mhocko@suse.com>
      Cc: Vlastimil Babka <vbabka@suse.cz>
      Cc: Rik van Riel <riel@surriel.com>
      Cc: Mike Galbraith <efault@gmx.de>
      Cc: Darrick J. Wong <djwong@kernel.org>
      Cc: Shakeel Butt <shakeelb@google.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      80082938
    • Mel Gorman's avatar
      mm: vmscan: Reduce throttling due to a failure to make progress · 1b4e3f26
      Mel Gorman authored
      Mike Galbraith, Alexey Avramov and Darrick Wong all reported similar
      problems due to reclaim throttling for excessive lengths of time.  In
      Alexey's case, a memory hog that should go OOM quickly stalls for
      several minutes before stalling.  In Mike and Darrick's cases, a small
      memcg environment stalled excessively even though the system had enough
      memory overall.
      
      Commit 69392a40 ("mm/vmscan: throttle reclaim when no progress is
      being made") introduced the problem although commit a19594ca
      
      
      ("mm/vmscan: increase the timeout if page reclaim is not making
      progress") made it worse.  Systems at or near an OOM state that cannot
      be recovered must reach OOM quickly and memcg should kill tasks if a
      memcg is near OOM.
      
      To address this, only stall for the first zone in the zonelist, reduce
      the timeout to 1 tick for VMSCAN_THROTTLE_NOPROGRESS and only stall if
      the scan control nr_reclaimed is 0, kswapd is still active and there
      were excessive pages pending for writeback.  If kswapd has stopped
      reclaiming due to excessive failures, do not stall at all so that OOM
      triggers relatively quickly.  Similarly, if an LRU is simply congested,
      only lightly throttle similar to NOPROGRESS.
      
      Alexey's original case was the most straight forward
      
      	for i in {1..3}; do tail /dev/zero; done
      
      On vanilla 5.16-rc1, this test stalled heavily, after the patch the test
      completes in a few seconds similar to 5.15.
      
      Alexey's second test case added watching a youtube video while tail runs
      10 times.  On 5.15, playback only jitters slightly, 5.16-rc1 stalls a
      lot with lots of frames missing and numerous audio glitches.  With this
      patch applies, the video plays similarly to 5.15.
      
      [lkp@intel.com: Fix W=1 build warning]
      
      Link: https://lore.kernel.org/r/99e779783d6c7fce96448a3402061b9dc1b3b602.camel@gmx.de
      Link: https://lore.kernel.org/r/20211124011954.7cab9bb4@mail.inbox.lv
      Link: https://lore.kernel.org/r/20211022144651.19914-1-mgorman@techsingularity.net
      Link: https://lore.kernel.org/r/20211202150614.22440-1-mgorman@techsingularity.net
      Link: https://linux-regtracking.leemhuis.info/regzbot/regression/20211124011954.7cab9bb4@mail.inbox.lv/
      Reported-and-tested-by: default avatarAlexey Avramov <hakavlad@inbox.lv>
      Reported-and-tested-by: default avatarMike Galbraith <efault@gmx.de>
      Reported-and-tested-by: default avatarDarrick J. Wong <djwong@kernel.org>
      Reported-by: default avatarkernel test robot <lkp@intel.com>
      Acked-by: default avatarHugh Dickins <hughd@google.com>
      Tracked-by: default avatarThorsten Leemhuis <regressions@leemhuis.info>
      Fixes: 69392a40
      
       ("mm/vmscan: throttle reclaim when no progress is being made")
      Signed-off-by: default avatarMel Gorman <mgorman@techsingularity.net>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      1b4e3f26
    • Linus Torvalds's avatar
      Merge branch 'akpm' (patches from Andrew) · f87bcc88
      Linus Torvalds authored
      Merge misc mm fixes from Andrew Morton:
       "2 patches.
      
        Subsystems affected by this patch series: mm (userfaultfd and damon)"
      
      * akpm:
        mm/damon/dbgfs: fix 'struct pid' leaks in 'dbgfs_target_ids_write()'
        userfaultfd/selftests: fix hugetlb area allocations
      f87bcc88
    • Linus Torvalds's avatar
      Merge tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi · e46227bf
      Linus Torvalds authored
      Pull SCSI fixes from James Bottomley:
       "Three fixes, all in drivers. The lpfc one doesn't look exploitable,
        but nasty things could happen in string operations if mybuf ends up
        with an on stack unterminated string"
      
      * tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi:
        scsi: vmw_pvscsi: Set residual data length conditionally
        scsi: libiscsi: Fix UAF in iscsi_conn_get_param()/iscsi_conn_teardown()
        scsi: lpfc: Terminate string in lpfc_debugfs_nvmeio_trc_write()
      e46227bf
    • SeongJae Park's avatar
      mm/damon/dbgfs: fix 'struct pid' leaks in 'dbgfs_target_ids_write()' · ebb3f994
      SeongJae Park authored
      DAMON debugfs interface increases the reference counts of 'struct pid's
      for targets from the 'target_ids' file write callback
      ('dbgfs_target_ids_write()'), but decreases the counts only in DAMON
      monitoring termination callback ('dbgfs_before_terminate()').
      
      Therefore, when 'target_ids' file is repeatedly written without DAMON
      monitoring start/termination, the reference count is not decreased and
      therefore memory for the 'struct pid' cannot be freed.  This commit
      fixes this issue by decreasing the reference counts when 'target_ids' is
      written.
      
      Link: https://lkml.kernel.org/r/20211229124029.23348-1-sj@kernel.org
      Fixes: 4bc05954
      
       ("mm/damon: implement a debugfs-based user space interface")
      Signed-off-by: default avatarSeongJae Park <sj@kernel.org>
      Cc: <stable@vger.kernel.org>	[5.15+]
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      ebb3f994
    • Mike Kravetz's avatar
      userfaultfd/selftests: fix hugetlb area allocations · f5c73297
      Mike Kravetz authored
      Currently, userfaultfd selftest for hugetlb as run from run_vmtests.sh
      or any environment where there are 'just enough' hugetlb pages will
      always fail with:
      
        testing events (fork, remap, remove):
      		ERROR: UFFDIO_COPY error: -12 (errno=12, line=616)
      
      The ENOMEM error code implies there are not enough hugetlb pages.
      However, there are free hugetlb pages but they are all reserved.  There
      is a basic problem with the way the test allocates hugetlb pages which
      has existed since the test was originally written.
      
      Due to the way 'cleanup' was done between different phases of the test,
      this issue was masked until recently.  The issue was uncovered by commit
      8ba6e864
      
       ("userfaultfd/selftests: reinitialize test context in each
      test").
      
      For the hugetlb test, src and dst areas are allocated as PRIVATE
      mappings of a hugetlb file.  This means that at mmap time, pages are
      reserved for the src and dst areas.  At the start of event testing (and
      other tests) the src area is populated which results in allocation of
      huge pages to fill the area and consumption of reserves associated with
      the area.  Then, a child is forked to fault in the dst area.  Note that
      the dst area was allocated in the parent and hence the parent owns the
      reserves associated with the mapping.  The child has normal access to
      the dst area, but can not use the reserves created/owned by the parent.
      Thus, if there are no other huge pages available allocation of a page
      for the dst by the child will fail.
      
      Fix by not creating reserves for the dst area.  In this way the child
      can use free (non-reserved) pages.
      
      Also, MAP_PRIVATE of a file only makes sense if you are interested in
      the contents of the file before making a COW copy.  The test does not do
      this.  So, just use MAP_ANONYMOUS | MAP_HUGETLB to create an anonymous
      hugetlb mapping.  There is no need to create a hugetlb file in the
      non-shared case.
      
      Link: https://lkml.kernel.org/r/20211217172919.7861-1-mike.kravetz@oracle.com
      Signed-off-by: default avatarMike Kravetz <mike.kravetz@oracle.com>
      Cc: Axel Rasmussen <axelrasmussen@google.com>
      Cc: Peter Xu <peterx@redhat.com>
      Cc: Andrea Arcangeli <aarcange@redhat.com>
      Cc: Mina Almasry <almasrymina@google.com>
      Cc: Shuah Khan <shuah@kernel.org>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      f5c73297
  4. Dec 31, 2021
    • Deep Majumder's avatar
      Docs: Fixes link to I2C specification · c116fe1e
      Deep Majumder authored
      
      
      The link to the I2C specification is broken. Although
      "https://www.nxp.com" hosts Rev 7 (2021) of this specification, it is
      behind a login-wall. Thus, an additional link has been added (which
      doesn't require a login) and the NXP official docs link has been
      updated.
      
      Signed-off-by: default avatarDeep Majumder <deep@fastmail.in>
      [wsa: minor updates to text and commit message]
      Signed-off-by: default avatarWolfram Sang <wsa@kernel.org>
      c116fe1e
    • Pavel Skripkin's avatar
      i2c: validate user data in compat ioctl · bb436283
      Pavel Skripkin authored
      
      
      Wrong user data may cause warning in i2c_transfer(), ex: zero msgs.
      Userspace should not be able to trigger warnings, so this patch adds
      validation checks for user data in compact ioctl to prevent reported
      warnings
      
      Reported-and-tested-by: default avatar <syzbot+e417648b303855b91d8a@syzkaller.appspotmail.com>
      Fixes: 7d5cb456
      
       ("i2c compat ioctls: move to ->compat_ioctl()")
      Signed-off-by: default avatarPavel Skripkin <paskripkin@gmail.com>
      Signed-off-by: default avatarWolfram Sang <wsa@kernel.org>
      bb436283
    • Leo L. Schwab's avatar
      Input: spaceball - fix parsing of movement data packets · bc7ec917
      Leo L. Schwab authored
      
      
      The spaceball.c module was not properly parsing the movement reports
      coming from the device.  The code read axis data as signed 16-bit
      little-endian values starting at offset 2.
      
      In fact, axis data in Spaceball movement reports are signed 16-bit
      big-endian values starting at offset 3.  This was determined first by
      visually inspecting the data packets, and later verified by consulting:
      http://spacemice.org/pdf/SpaceBall_2003-3003_Protocol.pdf
      
      If this ever worked properly, it was in the time before Git...
      
      Signed-off-by: default avatarLeo L. Schwab <ewhac@ewhac.org>
      Link: https://lore.kernel.org/r/20211221101630.1146385-1-ewhac@ewhac.org
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarDmitry Torokhov <dmitry.torokhov@gmail.com>
      bc7ec917
    • Pavel Skripkin's avatar
      Input: appletouch - initialize work before device registration · 9f3ccdc3
      Pavel Skripkin authored
      Syzbot has reported warning in __flush_work(). This warning is caused by
      work->func == NULL, which means missing work initialization.
      
      This may happen, since input_dev->close() calls
      cancel_work_sync(&dev->work), but dev->work initalization happens _after_
      input_register_device() call.
      
      So this patch moves dev->work initialization before registering input
      device
      
      Fixes: 5a6eb676
      
       ("Input: appletouch - improve powersaving for Geyser3 devices")
      Reported-and-tested-by: default avatar <syzbot+b88c5eae27386b252bbd@syzkaller.appspotmail.com>
      Signed-off-by: default avatarPavel Skripkin <paskripkin@gmail.com>
      Link: https://lore.kernel.org/r/20211230141151.17300-1-paskripkin@gmail.com
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarDmitry Torokhov <dmitry.torokhov@gmail.com>
      9f3ccdc3
    • Linus Torvalds's avatar
      Merge tag 'drm-fixes-2021-12-31' of git://anongit.freedesktop.org/drm/drm · 4f3d93c6
      Linus Torvalds authored
      Pull drm fixes from Dave Airlie:
       "This is a bit bigger than I'd like, however it has two weeks of amdgpu
        fixes in it, since they missed last week, which was very small.
      
        The nouveau regression is probably the biggest fix in here, and it
        needs to go into 5.15 as well, two i915 fixes, and then a scattering
        of amdgpu fixes. The biggest fix in there is for a fencing NULL
        pointer dereference, the rest are pretty minor.
      
        For the misc team, I've pulled the two misc fixes manually since I'm
        not sure what is happening at this time of year!
      
        The amdgpu maintainers have the outstanding runpm regression to fix
        still, they are just working through the last bits of it now.
      
        Summary:
      
        nouveau:
         - fencing regression fix
      
        i915:
         - Fix possible uninitialized variable
         - Fix composite fence seqno icrement on each fence creation
      
        amdgpu:
         - Fencing fix
         - XGMI fix
         - VCN regression fix
         - IP discovery regression fixes
         - Fix runpm documentation
         - Suspend/resume fixes
         - Yellow Carp display fixes
         - MCLK power management fix
         - dma-buf fix"
      
      * tag 'drm-fixes-2021-12-31' of git://anongit.freedesktop.org/drm/drm:
        drm/amd/display: Changed pipe split policy to allow for multi-display pipe split
        drm/amd/display: Fix USB4 null pointer dereference in update_psp_stream_config
        drm/amd/display: Set optimize_pwr_state for DCN31
        drm/amd/display: Send s0i2_rdy in stream_count == 0 optimization
        drm/amd/display: Added power down for DCN10
        drm/amd/display: fix B0 TMDS deepcolor no dislay issue
        drm/amdgpu: no DC support for headless chips
        drm/amdgpu: put SMU into proper state on runpm suspending for BOCO capable platform
        drm/amdgpu: always reset the asic in suspend (v2)
        drm/amd/pm: skip setting gfx cgpg in the s0ix suspend-resume
        drm/i915: Increment composite fence seqno
        drm/i915: Fix possible uninitialized variable in parallel extension
        drm/amdgpu: fix runpm documentation
        drm/nouveau: wait for the exclusive fence after the shared ones v2
        drm/amdgpu: add support for IP discovery gc_info table v2
        drm/amdgpu: When the VCN(1.0) block is suspended, powergating is explicitly enabled
        drm/amd/pm: Fix xgmi link control on aldebaran
        drm/amdgpu: introduce new amdgpu_fence object to indicate the job embedded fence
        drm/amdgpu: fix dropped backing store handling in amdgpu_dma_buf_move_notify
      4f3d93c6
    • Dave Airlie's avatar
      Merge branch 'drm-misc-fixes' of ssh://git.freedesktop.org/git/drm/drm-misc into drm-fixes · ce9b333c
      Dave Airlie authored
      
      
      This merges two fixes that haven't been sent to me yet, but I wanted to get in.
      
      One amdgpu fix, but one nouveau regression fixer.
      
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      ce9b333c
    • Christian Brauner's avatar
      fs/mount_setattr: always cleanup mount_kattr · 012e3322
      Christian Brauner authored
      Make sure that finish_mount_kattr() is called after mount_kattr was
      succesfully built in both the success and failure case to prevent
      leaking any references we took when we built it.  We returned early if
      path lookup failed thereby risking to leak an additional reference we
      took when building mount_kattr when an idmapped mount was requested.
      
      Cc: linux-fsdevel@vger.kernel.org
      Cc: stable@vger.kernel.org
      Fixes: 9caccd41
      
       ("fs: introduce MOUNT_ATTR_IDMAP")
      Signed-off-by: default avatarChristian Brauner <christian.brauner@ubuntu.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      012e3322
    • Linus Torvalds's avatar
      Merge tag 'net-5.16-rc8' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net · 74c78b42
      Linus Torvalds authored
      Pull networking fixes from Jakub Kicinski:
       "Including fixes from.. Santa?
      
        No regressions on our radar at this point. The igc problem fixed here
        was the last one I was tracking but it was broken in previous
        releases, anyway. Mostly driver fixes and a couple of largish SMC
        fixes.
      
        Current release - regressions:
      
         - xsk: initialise xskb free_list_node, fixup for a -rc7 fix
      
        Current release - new code bugs:
      
         - mlx5: handful of minor fixes:
      
         - use first online CPU instead of hard coded CPU
      
         - fix some error handling paths in 'mlx5e_tc_add_fdb_flow()'
      
         - fix skb memory leak when TC classifier action offloads are disabled
      
         - fix memory leak with rules with internal OvS port
      
        Previous releases - regressions:
      
         - igc: do not enable crosstimestamping for i225-V models
      
        Previous releases - always broken:
      
         - udp: use datalen to cap ipv6 udp max gso segments
      
         - fix use-after-free in tw_timer_handler due to early free of stats
      
         - smc: fix kernel panic caused by race of smc_sock
      
         - smc: don't send CDC/LLC message if link not ready, avoid timeouts
      
         - sctp: use call_rcu to free endpoint, avoid UAF in sock diag
      
         - bridge: mcast: add and enforce query interval minimum
      
         - usb: pegasus: do not drop long Ethernet frames
      
         - mlx5e: fix ICOSQ recovery flow for XSK
      
         - nfc: uapi: use kernel size_t to fix user-space builds"
      
      * tag 'net-5.16-rc8' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net: (47 commits)
        fsl/fman: Fix missing put_device() call in fman_port_probe
        selftests: net: using ping6 for IPv6 in udpgro_fwd.sh
        Documentation: fix outdated interpretation of ip_no_pmtu_disc
        net/ncsi: check for error return from call to nla_put_u32
        net: bridge: mcast: fix br_multicast_ctx_vlan_global_disabled helper
        net: fix use-after-free in tw_timer_handler
        selftests: net: Fix a typo in udpgro_fwd.sh
        selftests/net: udpgso_bench_tx: fix dst ip argument
        net: bridge: mcast: add and enforce startup query interval minimum
        net: bridge: mcast: add and enforce query interval minimum
        ipv6: raw: check passed optlen before reading
        xsk: Initialise xskb free_list_node
        net/mlx5e: Fix wrong features assignment in case of error
        net/mlx5e: TC, Fix memory leak with rules with internal port
        ionic: Initialize the 'lif->dbid_inuse' bitmap
        igc: Fix TX timestamp support for non-MSI-X platforms
        igc: Do not enable crosstimestamping for i225-V models
        net/smc: fix kernel panic caused by race of smc_sock
        net/smc: don't send CDC/LLC message if link not ready
        NFC: st21nfca: Fix memory leak in device probe and remove
        ...
      74c78b42
    • Linus Torvalds's avatar
      Merge tag 'char-misc-5.16' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc · 9bad743e
      Linus Torvalds authored
      Pull char/misc fixes from Greg KH:
       "Here are two misc driver fixes for 5.16-final:
      
         - binder accounting fix to resolve reported problem
      
         - nitro_enclaves fix for mmap assert warning output
      
        Both of these have been for over a week with no reported issues"
      
      * tag 'char-misc-5.16' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc:
        nitro_enclaves: Use get_user_pages_unlocked() call to handle mmap assert
        binder: fix async_free_space accounting for empty parcels
      9bad743e
    • Linus Torvalds's avatar
      Merge tag 'usb-5.16' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb · 2d40060b
      Linus Torvalds authored
      Pull USB fixes from Greg KH:
       "Here are some small USB driver fixes for 5.16 to resolve some reported
        problems:
      
         - mtu3 driver fixes
      
         - typec ucsi driver fix
      
         - xhci driver quirk added
      
         - usb gadget f_fs fix for reported crash
      
        All of these have been in linux-next for a while with no reported
        problems"
      
      * tag 'usb-5.16' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb:
        usb: typec: ucsi: Only check the contract if there is a connection
        xhci: Fresco FL1100 controller should not have BROKEN_MSI quirk set.
        usb: mtu3: set interval of FS intr and isoc endpoint
        usb: mtu3: fix list_head check warning
        usb: mtu3: add memory barrier before set GPD's HWO
        usb: mtu3: fix interval value for intr and isoc
        usb: gadget: f_fs: Clear ffs_eventfd in ffs_data_clear.
      2d40060b
  5. Dec 30, 2021
    • Miaoqian Lin's avatar
      fsl/fman: Fix missing put_device() call in fman_port_probe · bf2b09fe
      Miaoqian Lin authored
      The reference taken by 'of_find_device_by_node()' must be released when
      not needed anymore.
      Add the corresponding 'put_device()' in the and error handling paths.
      
      Fixes: 18a6c85f
      
       ("fsl/fman: Add FMan Port Support")
      Signed-off-by: default avatarMiaoqian Lin <linmq006@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      bf2b09fe
    • Jianguo Wu's avatar
      selftests: net: using ping6 for IPv6 in udpgro_fwd.sh · 8b3170e0
      Jianguo Wu authored
      udpgro_fwd.sh output following message:
        ping: 2001:db8:1::100: Address family for hostname not supported
      
      Using ping6 when pinging IPv6 addresses.
      
      Fixes: a062260a
      
       ("selftests: net: add UDP GRO forwarding self-tests")
      Signed-off-by: default avatarJianguo Wu <wujianguo@chinatelecom.cn>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      8b3170e0
    • xu xin's avatar
      Documentation: fix outdated interpretation of ip_no_pmtu_disc · be1c5b53
      xu xin authored
      The updating way of pmtu has changed, but documentation is still in the
      old way. So this patch updates the interpretation of ip_no_pmtu_disc and
      min_pmtu.
      
      See commit 28d35bcd
      
       ("net: ipv4: don't let PMTU updates increase
      route MTU")
      
      Reported-by: default avatarZeal Robot <zealci@zte.com.cn>
      Signed-off-by: default avatarxu xin <xu.xin16@zte.com.cn>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      be1c5b53
    • Dave Airlie's avatar
      Merge tag 'amd-drm-fixes-5.16-2021-12-29' of... · aeeb82fd
      Dave Airlie authored
      
      Merge tag 'amd-drm-fixes-5.16-2021-12-29' of https://gitlab.freedesktop.org/agd5f/linux into drm-fixes
      
      amd-drm-fixes-5.16-2021-12-29:
      
      amdgpu:
      - Fencing fix
      - XGMI fix
      - VCN regression fix
      - IP discovery regression fixes
      - Fix runpm documentation
      - Suspend/resume fixes
      - Yellow Carp display fixes
      - MCLK power management fix
      
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      From: Alex Deucher <alexander.deucher@amd.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20211229155129.5789-1-alexander.deucher@amd.com
      aeeb82fd
    • Jakub Kicinski's avatar
      Merge tag 'mlx5-fixes-2021-12-28' of git://git.kernel.org/pub/scm/linux/kernel/git/saeed/linux · ccc0c9be
      Jakub Kicinski authored
      
      
      Saeed Mahameed says:
      
      ====================
      mlx5 fixes 2021-12-28
      
      This series provides bug fixes to mlx5 driver.
      
      * tag 'mlx5-fixes-2021-12-28' of git://git.kernel.org/pub/scm/linux/kernel/git/saeed/linux:
        net/mlx5e: Fix wrong features assignment in case of error
        net/mlx5e: TC, Fix memory leak with rules with internal port
      ====================
      
      Link: https://lore.kernel.org/r/20211229065352.30178-1-saeed@kernel.org
      Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      ccc0c9be
    • Dave Airlie's avatar
      Merge tag 'drm-intel-fixes-2021-12-29' of... · 05097b19
      Dave Airlie authored
      
      Merge tag 'drm-intel-fixes-2021-12-29' of git://anongit.freedesktop.org/drm/drm-intel into drm-fixes
      
      drm/i915 fixes for v5.16:
      - Fix possible uninitialized variable
      - Fix composite fence seqno icrement on each fence creation
      
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      From: Jani Nikula <jani.nikula@intel.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/87h7ark5r5.fsf@intel.com
      05097b19
    • 蒋家盛's avatar
      net/ncsi: check for error return from call to nla_put_u32 · 92a34ab1
      蒋家盛 authored
      As we can see from the comment of the nla_put() that it could return
      -EMSGSIZE if the tailroom of the skb is insufficient.
      Therefore, it should be better to check the return value of the
      nla_put_u32 and return the error code if error accurs.
      Also, there are many other functions have the same problem, and if this
      patch is correct, I will commit a new version to fix all.
      
      Fixes: 955dc68c
      
       ("net/ncsi: Add generic netlink family")
      Signed-off-by: default avatarJiasheng Jiang <jiasheng@iscas.ac.cn>
      Link: https://lore.kernel.org/r/20211229032118.1706294-1-jiasheng@iscas.ac.cn
      Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      92a34ab1
    • Nikolay Aleksandrov's avatar
      net: bridge: mcast: fix br_multicast_ctx_vlan_global_disabled helper · 168fed98
      Nikolay Aleksandrov authored
      We need to first check if the context is a vlan one, then we need to
      check the global bridge multicast vlan snooping flag, and finally the
      vlan's multicast flag, otherwise we will unnecessarily enable vlan mcast
      processing (e.g. querier timers).
      
      Fixes: 7b54aaaf
      
       ("net: bridge: multicast: add vlan state initialization and control")
      Signed-off-by: default avatarNikolay Aleksandrov <nikolay@nvidia.com>
      Link: https://lore.kernel.org/r/20211228153142.536969-1-nikolay@nvidia.com
      Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      168fed98
    • Muchun Song's avatar
      net: fix use-after-free in tw_timer_handler · e22e45fc
      Muchun Song authored
      A real world panic issue was found as follow in Linux 5.4.
      
          BUG: unable to handle page fault for address: ffffde49a863de28
          PGD 7e6fe62067 P4D 7e6fe62067 PUD 7e6fe63067 PMD f51e064067 PTE 0
          RIP: 0010:tw_timer_handler+0x20/0x40
          Call Trace:
           <IRQ>
           call_timer_fn+0x2b/0x120
           run_timer_softirq+0x1ef/0x450
           __do_softirq+0x10d/0x2b8
           irq_exit+0xc7/0xd0
           smp_apic_timer_interrupt+0x68/0x120
           apic_timer_interrupt+0xf/0x20
      
      This issue was also reported since 2017 in the thread [1],
      unfortunately, the issue was still can be reproduced after fixing
      DCCP.
      
      The ipv4_mib_exit_net is called before tcp_sk_exit_batch when a net
      namespace is destroyed since tcp_sk_ops is registered befrore
      ipv4_mib_ops, which means tcp_sk_ops is in the front of ipv4_mib_ops
      in the list of pernet_list. There will be a use-after-free on
      net->mib.net_statistics in tw_timer_handler after ipv4_mib_exit_net
      if there are some inflight time-wait timers.
      
      This bug is not introduced by commit f2bf415c ("mib: add net to
      NET_ADD_STATS_BH") since the net_statistics is a global variable
      instead of dynamic allocation and freeing. Actually, commit
      61a7e260 ("mib: put net statistics on struct net") introduces
      the bug since it put net statistics on struct net and free it when
      net namespace is destroyed.
      
      Moving init_ipv4_mibs() to the front of tcp_init() to fix this bug
      and replace pr_crit() with panic() since continuing is meaningless
      when init_ipv4_mibs() fails.
      
      [1] https://groups.google.com/g/syzkaller/c/p1tn-_Kc6l4/m/smuL_FMAAgAJ?pli=1
      
      Fixes: 61a7e260
      
       ("mib: put net statistics on struct net")
      Signed-off-by: default avatarMuchun Song <songmuchun@bytedance.com>
      Cc: Cong Wang <cong.wang@bytedance.com>
      Cc: Fam Zheng <fam.zheng@bytedance.com>
      Cc: <stable@vger.kernel.org>
      Link: https://lore.kernel.org/r/20211228104145.9426-1-songmuchun@bytedance.com
      Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      e22e45fc
    • Jianguo Wu's avatar
      selftests: net: Fix a typo in udpgro_fwd.sh · add25d6d
      Jianguo Wu authored
      $rvs -> $rcv
      
      Fixes: a062260a
      
       ("selftests: net: add UDP GRO forwarding self-tests")
      Signed-off-by: default avatarJianguo Wu <wujianguo@chinatelecom.cn>
      Link: https://lore.kernel.org/r/d247d7c8-a03a-0abf-3c71-4006a051d133@163.com
      Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      add25d6d
    • wujianguo's avatar
      selftests/net: udpgso_bench_tx: fix dst ip argument · 9c1952ae
      wujianguo authored
      udpgso_bench_tx call setup_sockaddr() for dest address before
      parsing all arguments, if we specify "-p ${dst_port}" after "-D ${dst_ip}",
      then ${dst_port} will be ignored, and using default cfg_port 8000.
      
      This will cause test case "multiple GRO socks" failed in udpgro.sh.
      
      Setup sockaddr after parsing all arguments.
      
      Fixes: 3a687bef
      
       ("selftests: udp gso benchmark")
      Signed-off-by: default avatarJianguo Wu <wujianguo@chinatelecom.cn>
      Reviewed-by: default avatarWillem de Bruijn <willemb@google.com>
      Link: https://lore.kernel.org/r/ff620d9f-5b52-06ab-5286-44b945453002@163.com
      Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      9c1952ae
    • Lukas Bulwahn's avatar
      x86/build: Use the proper name CONFIG_FW_LOADER · d6f12f83
      Lukas Bulwahn authored
      Commit in Fixes intends to add the expression regex only when FW_LOADER
      is enabled - not FW_LOADER_BUILTIN. Latter is a leftover from a previous
      patchset and not a valid config item.
      
      So, adjust the condition to the actual name of the config.
      
        [ bp: Cleanup commit message. ]
      
      Fixes: c8dcf655
      
       ("x86/build: Tuck away built-in firmware under FW_LOADER")
      Signed-off-by: default avatarLukas Bulwahn <lukas.bulwahn@gmail.com>
      Signed-off-by: default avatarBorislav Petkov <bp@suse.de>
      Reviewed-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      Link: https://lore.kernel.org/r/20211229111553.5846-1-lukas.bulwahn@gmail.com
      d6f12f83
    • Jakub Kicinski's avatar
      Merge branch 'net-bridge-mcast-add-and-enforce-query-interval-minimum' · f7397cd2
      Jakub Kicinski authored
      
      
      Nikolay Aleksandrov says:
      
      ====================
      net: bridge: mcast: add and enforce query interval minimum
      
      This set adds and enforces 1 second minimum value for bridge multicast
      query and startup query intervals in order to avoid rearming the timers
      too often which could lock and crash the host. I doubt anyone is using
      such low values or anything lower than 1 second, so it seems like a good
      minimum. In order to be compatible if the value is lower then it is
      overwritten and a log message is emitted, since we can't return an error
      at this point.
      
      Eric, I looked for the syzbot reports in its dashboard but couldn't find
      them so I've added you as the reporter.
      
      I've prepared a global bridge igmp rate limiting patch but wasn't
      sure if it's ok for -net. It adds a static limit of 32k packets per
      second, I plan to send it for net-next with added drop counters for
      each bridge so it can be easily debugged.
      
      Original report can be seen at:
      https://lore.kernel.org/netdev/e8b9ce41-57b9-b6e2-a46a-ff9c791cf0ba@gmail.com/
      ====================
      
      Link: https://lore.kernel.org/r/20211227172116.320768-1-nikolay@nvidia.com
      Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      f7397cd2
    • Nikolay Aleksandrov's avatar
      net: bridge: mcast: add and enforce startup query interval minimum · f83a112b
      Nikolay Aleksandrov authored
      As reported[1] if startup query interval is set too low in combination with
      large number of startup queries and we have multiple bridges or even a
      single bridge with multiple querier vlans configured we can crash the
      machine. Add a 1 second minimum which must be enforced by overwriting the
      value if set lower (i.e. without returning an error) to avoid breaking
      user-space. If that happens a log message is emitted to let the admin know
      that the startup interval has been set to the minimum. It doesn't make
      sense to make the startup interval lower than the normal query interval
      so use the same value of 1 second. The issue has been present since these
      intervals could be user-controlled.
      
      [1] https://lore.kernel.org/netdev/e8b9ce41-57b9-b6e2-a46a-ff9c791cf0ba@gmail.com/
      
      Fixes: d902eee4
      
       ("bridge: Add multicast count/interval sysfs entries")
      Reported-by: default avatarEric Dumazet <eric.dumazet@gmail.com>
      Signed-off-by: default avatarNikolay Aleksandrov <nikolay@nvidia.com>
      Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      f83a112b
    • Nikolay Aleksandrov's avatar
      net: bridge: mcast: add and enforce query interval minimum · 99b40610
      Nikolay Aleksandrov authored
      As reported[1] if query interval is set too low and we have multiple
      bridges or even a single bridge with multiple querier vlans configured
      we can crash the machine. Add a 1 second minimum which must be enforced
      by overwriting the value if set lower (i.e. without returning an error) to
      avoid breaking user-space. If that happens a log message is emitted to let
      the administrator know that the interval has been set to the minimum.
      The issue has been present since these intervals could be user-controlled.
      
      [1] https://lore.kernel.org/netdev/e8b9ce41-57b9-b6e2-a46a-ff9c791cf0ba@gmail.com/
      
      Fixes: d902eee4
      
       ("bridge: Add multicast count/interval sysfs entries")
      Reported-by: default avatarEric Dumazet <eric.dumazet@gmail.com>
      Signed-off-by: default avatarNikolay Aleksandrov <nikolay@nvidia.com>
      Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      99b40610