Skip to content
  1. Nov 04, 2022
    • Maxime Ripard's avatar
      drm/connector: Set DDC pointer in drmm_connector_init · 45d33938
      Maxime Ripard authored
      Commit 35a3b82f ("drm/connector: Introduce drmm_connector_init")
      introduced the function drmm_connector_init() with a parameter for an
      optional ddc pointer to the i2c controller used to access the DDC bus.
      
      However, the underlying call to __drm_connector_init() was always
      setting it to NULL instead of passing the ddc argument around.
      
      This resulted in unexpected null pointer dereference on platforms
      expecting to get a DDC controller.
      
      Fixes: 35a3b82f
      
       ("drm/connector: Introduce drmm_connector_init")
      Signed-off-by: default avatarMaxime Ripard <maxime@cerno.tech>
      1.20221104
      45d33938
  2. Nov 02, 2022
  3. Nov 01, 2022
  4. Oct 29, 2022
    • Greg Kroah-Hartman's avatar
    • Seth Jenkins's avatar
      mm: /proc/pid/smaps_rollup: fix no vma's null-deref · 33fc9e26
      Seth Jenkins authored
      Commit 258f669e ("mm: /proc/pid/smaps_rollup: convert to single value
      seq_file") introduced a null-deref if there are no vma's in the task in
      show_smaps_rollup.
      
      Fixes: 258f669e
      
       ("mm: /proc/pid/smaps_rollup: convert to single value seq_file")
      Signed-off-by: default avatarSeth Jenkins <sethjenkins@google.com>
      Reviewed-by: default avatarAlexey Dobriyan <adobriyan@gmail.com>
      Tested-by: default avatarAlexey Dobriyan <adobriyan@gmail.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      33fc9e26
    • Avri Altman's avatar
      mmc: core: Add SD card quirk for broken discard · b9d8cbe9
      Avri Altman authored
      commit 07d2872b
      
       upstream.
      
      Some SD-cards from Sandisk that are SDA-6.0 compliant reports they supports
      discard, while they actually don't. This might cause mk2fs to fail while
      trying to format the card and revert it to a read-only mode.
      
      To fix this problem, let's add a card quirk (MMC_QUIRK_BROKEN_SD_DISCARD)
      to indicate that we shall fall-back to use the legacy erase command
      instead.
      
      Signed-off-by: default avatarAvri Altman <avri.altman@wdc.com>
      Cc: stable@vger.kernel.org
      Link: https://lore.kernel.org/r/20220928095744.16455-1-avri.altman@wdc.com
      
      
      [Ulf: Updated the commit message]
      Signed-off-by: default avatarUlf Hansson <ulf.hansson@linaro.org>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      b9d8cbe9
    • Nick Desaulniers's avatar
      Makefile.debug: re-enable debug info for .S files · 0ee2f056
      Nick Desaulniers authored
      This is _not_ an upstream commit and just for 5.15.y only. It is based
      on commit 32ef9e50 upstream.
      
      Alexey reported that the fraction of unknown filename instances in
      kallsyms grew from ~0.3% to ~10% recently; Bill and Greg tracked it down
      to assembler defined symbols, which regressed as a result of:
      
      commit b8a90923 ("Kbuild: do not emit debug info for assembly with LLVM_IAS=1")
      
      In that commit, I allude to restoring debug info for assembler defined
      symbols in a follow up patch, but it seems I forgot to do so in
      
      commit a66049e2 ("Kbuild: make DWARF version a choice")
      
      Fixes: b8a90923
      
       ("Kbuild: do not emit debug info for assembly with LLVM_IAS=1")
      Signed-off-by: default avatarNick Desaulniers <ndesaulniers@google.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      0ee2f056
    • Nathan Chancellor's avatar
      x86/Kconfig: Drop check for -mabi=ms for CONFIG_EFI_STUB · 117825e9
      Nathan Chancellor authored
      commit 33806e7c upstream.
      
      A recent change in LLVM made CONFIG_EFI_STUB unselectable because it no
      longer pretends to support -mabi=ms, breaking the dependency in
      Kconfig. Lack of CONFIG_EFI_STUB can prevent kernels from booting via
      EFI in certain circumstances.
      
      This check was added by
      
        8f24f8c2 ("efi/libstub: Annotate firmware routines as __efiapi")
      
      to ensure that __attribute__((ms_abi)) was available, as -mabi=ms is
      not actually used in any cflags.
      
      According to the GCC documentation, this attribute has been supported
      since GCC 4.4.7. The kernel currently requires GCC 5.1 so this check is
      not necessary; even when that change landed in 5.6, the kernel required
      GCC 4.9 so it was unnecessary then as well.
      
      Clang supports __attribute__((ms_abi)) for all versions that are
      supported for building the kernel so no additional check is needed.
      Remove the 'depends on' line altogether to allow CONFIG_EFI_STUB to be
      selected when CONFIG_EFI is enabled, regardless of compiler.
      
      Fixes: 8f24f8c2
      
       ("efi/libstub: Annotate firmware routines as __efiapi")
      Signed-off-by: default avatarNathan Chancellor <nathan@kernel.org>
      Signed-off-by: default avatarBorislav Petkov <bp@suse.de>
      Reviewed-by: default avatarNick Desaulniers <ndesaulniers@google.com>
      Acked-by: default avatarArd Biesheuvel <ardb@kernel.org>
      Cc: stable@vger.kernel.org
      Link: https://github.com/llvm/llvm-project/commit/d1ad006a8f64bdc17f618deffa9e7c91d82c444d
      [nathan: Fix conflict due to lack of c6dbd3e5
      
       in older trees]
      Signed-off-by: default avatarNathan Chancellor <nathan@kernel.org>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      117825e9
    • Werner Sembach's avatar
      ACPI: video: Force backlight native for more TongFang devices · 09832050
      Werner Sembach authored
      commit 3dbc80a3 upstream.
      
      This commit is very different from the upstream commit! It fixes the same
      issue by adding more quirks, rather then the general fix from the 6.1
      kernel, because the general fix from the 6.1 kernel is part of a larger
      refactoring of the backlight code which is not suitable for the stable
      series.
      
      As described in "ACPI: video: Drop NL5x?U, PF4NU1F and PF5?U??
      acpi_backlight=native quirks" (10212754) the upstream commit "ACPI:
      video: Make backlight class device registration a separate step (v2)"
      (3dbc80a3) makes these quirks unnecessary. However as mentioned in this
      bugtracker ticket https://bugzilla.kernel.org/show_bug.cgi?id=215683#c17
      
      
      the upstream fix is part of a larger patchset that is overall too complex
      for stable.
      
      The TongFang GKxNRxx, GMxNGxx, GMxZGxx, and GMxRGxx / TUXEDO
      Stellaris/Polaris Gen 1-4, have the same problem as the Clevo NL5xRU and
      NL5xNU / TUXEDO Aura 15 Gen1 and Gen2:
      They have a working native and video interface for screen backlight.
      However the default detection mechanism first registers the video interface
      before unregistering it again and switching to the native interface during
      boot. This results in a dangling SBIOS request for backlight change for
      some reason, causing the backlight to switch to ~2% once per boot on the
      first power cord connect or disconnect event. Setting the native interface
      explicitly circumvents this buggy behaviour by avoiding the unregistering
      process.
      
      Reviewed-by: default avatarHans de Goede <hdegoede@redhat.com>
      Signed-off-by: default avatarWerner Sembach <wse@tuxedocomputers.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      09832050
    • Rob Herring's avatar
      perf: Skip and warn on unknown format 'configN' attrs · 289b5671
      Rob Herring authored
      [ Upstream commit e552b7be
      
       ]
      
      If the kernel exposes a new perf_event_attr field in a format attr, perf
      will return an error stating the specified PMU can't be found. For
      example, a format attr with 'config3:0-63' causes an error as config3 is
      unknown to perf. This causes a compatibility issue between a newer
      kernel with older perf tool.
      
      Before this change with a kernel adding 'config3' I get:
      
        $ perf record -e arm_spe// -- true
        event syntax error: 'arm_spe//'
                             \___ Cannot find PMU `arm_spe'. Missing kernel support?
        Run 'perf list' for a list of valid events
      
         Usage: perf record [<options>] [<command>]
            or: perf record [<options>] -- <command> [<options>]
      
            -e, --event <event>   event selector. use 'perf list' to list
        available events
      
      After this change, I get:
      
        $ perf record -e arm_spe// -- true
        WARNING: 'arm_spe_0' format 'inv_event_filter' requires 'perf_event_attr::config3' which is not supported by this version of perf!
        [ perf record: Woken up 2 times to write data ]
        [ perf record: Captured and wrote 0.091 MB perf.data ]
      
      To support unknown configN formats, rework the YACC implementation to
      pass any config[0-9]+ format to perf_pmu__new_format() to handle with a
      warning.
      
      Reviewed-by: default avatarNamhyung Kim <namhyung@kernel.org>
      Signed-off-by: default avatarRob Herring <robh@kernel.org>
      Tested-by: default avatarLeo Yan <leo.yan@linaro.org>
      Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
      Cc: Ingo Molnar <mingo@redhat.com>
      Cc: James Clark <james.clark@arm.com>
      Cc: Jiri Olsa <jolsa@kernel.org>
      Cc: Mark Rutland <mark.rutland@arm.com>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: stable@vger.kernel.org
      Link: https://lore.kernel.org/r/20220914-arm-perf-tool-spe1-2-v2-v4-1-83c098e6212e@kernel.org
      
      
      Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      Signed-off-by: default avatarSasha Levin <sashal@kernel.org>
      289b5671
    • Prathamesh Shete's avatar
      mmc: sdhci-tegra: Use actual clock rate for SW tuning correction · 9d912a38
      Prathamesh Shete authored
      [ Upstream commit b78870e7 ]
      
      Ensure tegra_host member "curr_clk_rate" holds the actual clock rate
      instead of requested clock rate for proper use during tuning correction
      algorithm. Actual clk rate may not be the same as the requested clk
      frequency depending on the parent clock source set. Tuning correction
      algorithm depends on certain parameters which are sensitive to current
      clk rate. If the host clk is selected instead of the actual clock rate,
      tuning correction algorithm may end up applying invalid correction,
      which could result in errors
      
      Fixes: ea8fc595
      
       ("mmc: tegra: update hw tuning process")
      Signed-off-by: default avatarAniruddha TVS Rao <anrao@nvidia.com>
      Signed-off-by: default avatarPrathamesh Shete <pshete@nvidia.com>
      Acked-by: default avatarAdrian Hunter <adrian.hunter@intel.com>
      Acked-by: default avatarThierry Reding <treding@nvidia.com>
      Cc: stable@vger.kernel.org
      Link: https://lore.kernel.org/r/20221006130622.22900-4-pshete@nvidia.com
      
      
      Signed-off-by: default avatarUlf Hansson <ulf.hansson@linaro.org>
      Signed-off-by: default avatarSasha Levin <sashal@kernel.org>
      9d912a38
    • Steven Rostedt (Google)'s avatar
      tracing: Do not free snapshot if tracer is on cmdline · 7aeda811
      Steven Rostedt (Google) authored
      [ Upstream commit a541a955 ]
      
      The ftrace_boot_snapshot and alloc_snapshot cmdline options allocate the
      snapshot buffer at boot up for use later. The ftrace_boot_snapshot in
      particular requires the snapshot to be allocated because it will take a
      snapshot at the end of boot up allowing to see the traces that happened
      during boot so that it's not lost when user space takes over.
      
      When a tracer is registered (started) there's a path that checks if it
      requires the snapshot buffer or not, and if it does not and it was
      allocated it will do a synchronization and free the snapshot buffer.
      
      This is only required if the previous tracer was using it for "max
      latency" snapshots, as it needs to make sure all max snapshots are
      complete before freeing. But this is only needed if the previous tracer
      was using the snapshot buffer for latency (like irqoff tracer and
      friends). But it does not make sense to free it, if the previous tracer
      was not using it, and the snapshot was allocated by the cmdline
      parameters. This basically takes away the point of allocating it in the
      first place!
      
      Note, the allocated snapshot worked fine for just trace events, but fails
      when a tracer is enabled on the cmdline.
      
      Further investigation, this goes back even further and it does not require
      a tracer on the cmdline to fail. Simply enable snapshots and then enable a
      tracer, and it will remove the snapshot.
      
      Link: https://lkml.kernel.org/r/20221005113757.041df7fe@gandalf.local.home
      
      Cc: Masami Hiramatsu <mhiramat@kernel.org>
      Cc: Andrew Morton <akpm@linux-foundation.org>
      Cc: stable@vger.kernel.org
      Fixes: 45ad21ca
      
       ("tracing: Have trace_array keep track if snapshot buffer is allocated")
      Reported-by: default avatarRoss Zwisler <zwisler@kernel.org>
      Tested-by: default avatarRoss Zwisler <zwisler@kernel.org>
      Signed-off-by: default avatarSteven Rostedt (Google) <rostedt@goodmis.org>
      Signed-off-by: default avatarSasha Levin <sashal@kernel.org>
      7aeda811
    • sunliming's avatar
      tracing: Simplify conditional compilation code in tracing_set_tracer() · 57252e7b
      sunliming authored
      [ Upstream commit f4b0d318 ]
      
      Two conditional compilation directives "#ifdef CONFIG_TRACER_MAX_TRACE"
      are used consecutively, and no other code in between. Simplify conditional
      the compilation code and only use one "#ifdef CONFIG_TRACER_MAX_TRACE".
      
      Link: https://lkml.kernel.org/r/20220602140613.545069-1-sunliming@kylinos.cn
      
      
      
      Signed-off-by: default avatarsunliming <sunliming@kylinos.cn>
      Signed-off-by: default avatarSteven Rostedt (Google) <rostedt@goodmis.org>
      Stable-dep-of: a541a955
      
       ("tracing: Do not free snapshot if tracer is on cmdline")
      Signed-off-by: default avatarSasha Levin <sashal@kernel.org>
      57252e7b
    • Namjae Jeon's avatar
      ksmbd: fix incorrect handling of iterate_dir · 20bc6d23
      Namjae Jeon authored
      [ Upstream commit 88541cb4 ]
      
      if iterate_dir() returns non-negative value, caller has to treat it
      as normal and check there is any error while populating dentry
      information. ksmbd doesn't have to do anything because ksmbd already
      checks too small OutputBufferLength to store one file information.
      
      And because ctx->pos is set to file->f_pos when iterative_dir is called,
      remove restart_ctx(). And if iterate_dir() return -EIO, which mean
      directory entry is corrupted, return STATUS_FILE_CORRUPT_ERROR error
      response.
      
      This patch fixes some failure of SMB2_QUERY_DIRECTORY, which happens when
      ntfs3 is local filesystem.
      
      Fixes: e2f34481
      
       ("cifsd: add server-side procedures for SMB3")
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarHyunchul Lee <hyc.lee@gmail.com>
      Signed-off-by: default avatarNamjae Jeon <linkinjeon@kernel.org>
      Signed-off-by: default avatarSteve French <stfrench@microsoft.com>
      Signed-off-by: default avatarSasha Levin <sashal@kernel.org>
      20bc6d23
    • Namjae Jeon's avatar
      ksmbd: handle smb2 query dir request for OutputBufferLength that is too small · 3c8cfcaa
      Namjae Jeon authored
      [ Upstream commit 65ca7a3f
      
       ]
      
      We found the issue that ksmbd return STATUS_NO_MORE_FILES response
      even though there are still dentries that needs to be read while
      file read/write test using framtest utils.
      windows client send smb2 query dir request included
      OutputBufferLength(128) that is too small to contain even one entry.
      This patch make ksmbd immediately returns OutputBufferLength of response
      as zero to client.
      
      Signed-off-by: default avatarNamjae Jeon <linkinjeon@kernel.org>
      Reviewed-by: default avatarHyunchul Lee <hyc.lee@gmail.com>
      Signed-off-by: default avatarSteve French <stfrench@microsoft.com>
      Stable-dep-of: 88541cb4
      
       ("ksmbd: fix incorrect handling of iterate_dir")
      Signed-off-by: default avatarSasha Levin <sashal@kernel.org>
      3c8cfcaa
    • Peter Collingbourne's avatar
      arm64: mte: move register initialization to C · 8754fa5d
      Peter Collingbourne authored
      [ Upstream commit 973b9e37
      
       ]
      
      If FEAT_MTE2 is disabled via the arm64.nomte command line argument on a
      CPU that claims to support FEAT_MTE2, the kernel will use Tagged Normal
      in the MAIR. If we interpret arm64.nomte to mean that the CPU does not
      in fact implement FEAT_MTE2, setting the system register like this may
      lead to UNSPECIFIED behavior. Fix it by arranging for MAIR to be set
      in the C function cpu_enable_mte which is called based on the sanitized
      version of the system register.
      
      There is no need for the rest of the MTE-related system register
      initialization to happen from assembly, with the exception of TCR_EL1,
      which must be set to include at least TBI1 because the secondary CPUs
      access KASan-allocated data structures early. Therefore, make the TCR_EL1
      initialization unconditional and move the rest of the initialization to
      cpu_enable_mte so that we no longer have a dependency on the unsanitized
      ID register value.
      
      Co-developed-by: default avatarEvgenii Stepanov <eugenis@google.com>
      Signed-off-by: default avatarPeter Collingbourne <pcc@google.com>
      Signed-off-by: default avatarEvgenii Stepanov <eugenis@google.com>
      Suggested-by: default avatarCatalin Marinas <catalin.marinas@arm.com>
      Reported-by: default avatarkernel test robot <lkp@intel.com>
      Fixes: 3b714d24 ("arm64: mte: CPU feature detection and initial sysreg configuration")
      Cc: <stable@vger.kernel.org> # 5.10.x
      Link: https://lore.kernel.org/r/20220915222053.3484231-1-eugenis@google.com
      
      
      Signed-off-by: default avatarCatalin Marinas <catalin.marinas@arm.com>
      Signed-off-by: default avatarSasha Levin <sashal@kernel.org>
      8754fa5d
    • Alexander Aring's avatar
      fs: dlm: fix invalid derefence of sb_lvbptr · ea7be82f
      Alexander Aring authored
      [ Upstream commit 7175e131
      
       ]
      
      I experience issues when putting a lkbsb on the stack and have sb_lvbptr
      field to a dangled pointer while not using DLM_LKF_VALBLK. It will crash
      with the following kernel message, the dangled pointer is here
      0xdeadbeef as example:
      
      [  102.749317] BUG: unable to handle page fault for address: 00000000deadbeef
      [  102.749320] #PF: supervisor read access in kernel mode
      [  102.749323] #PF: error_code(0x0000) - not-present page
      [  102.749325] PGD 0 P4D 0
      [  102.749332] Oops: 0000 [#1] PREEMPT SMP PTI
      [  102.749336] CPU: 0 PID: 1567 Comm: lock_torture_wr Tainted: G        W         5.19.0-rc3+ #1565
      [  102.749343] Hardware name: Red Hat KVM/RHEL-AV, BIOS 1.16.0-2.module+el8.7.0+15506+033991b0 04/01/2014
      [  102.749344] RIP: 0010:memcpy_erms+0x6/0x10
      [  102.749353] Code: cc cc cc cc eb 1e 0f 1f 00 48 89 f8 48 89 d1 48 c1 e9 03 83 e2 07 f3 48 a5 89 d1 f3 a4 c3 66 0f 1f 44 00 00 48 89 f8 48 89 d1 <f3> a4 c3 0f 1f 80 00 00 00 00 48 89 f8 48 83 fa 20 72 7e 40 38 fe
      [  102.749355] RSP: 0018:ffff97a58145fd08 EFLAGS: 00010202
      [  102.749358] RAX: ffff901778b77070 RBX: 0000000000000000 RCX: 0000000000000040
      [  102.749360] RDX: 0000000000000040 RSI: 00000000deadbeef RDI: ffff901778b77070
      [  102.749362] RBP: ffff97a58145fd10 R08: ffff901760b67a70 R09: 0000000000000001
      [  102.749364] R10: ffff9017008e2cb8 R11: 0000000000000001 R12: ffff901760b67a70
      [  102.749366] R13: ffff901760b78f00 R14: 0000000000000003 R15: 0000000000000001
      [  102.749368] FS:  0000000000000000(0000) GS:ffff901876e00000(0000) knlGS:0000000000000000
      [  102.749372] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
      [  102.749374] CR2: 00000000deadbeef CR3: 000000017c49a004 CR4: 0000000000770ef0
      [  102.749376] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
      [  102.749378] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
      [  102.749379] PKRU: 55555554
      [  102.749381] Call Trace:
      [  102.749382]  <TASK>
      [  102.749383]  ? send_args+0xb2/0xd0
      [  102.749389]  send_common+0xb7/0xd0
      [  102.749395]  _unlock_lock+0x2c/0x90
      [  102.749400]  unlock_lock.isra.56+0x62/0xa0
      [  102.749405]  dlm_unlock+0x21e/0x330
      [  102.749411]  ? lock_torture_stats+0x80/0x80 [dlm_locktorture]
      [  102.749416]  torture_unlock+0x5a/0x90 [dlm_locktorture]
      [  102.749419]  ? preempt_count_sub+0xba/0x100
      [  102.749427]  lock_torture_writer+0xbd/0x150 [dlm_locktorture]
      [  102.786186]  kthread+0x10a/0x130
      [  102.786581]  ? kthread_complete_and_exit+0x20/0x20
      [  102.787156]  ret_from_fork+0x22/0x30
      [  102.787588]  </TASK>
      [  102.787855] Modules linked in: dlm_locktorture torture rpcsec_gss_krb5 intel_rapl_msr intel_rapl_common kvm_intel iTCO_wdt iTCO_vendor_support kvm vmw_vsock_virtio_transport qxl irqbypass vmw_vsock_virtio_transport_common drm_ttm_helper crc32_pclmul joydev crc32c_intel ttm vsock virtio_scsi virtio_balloon snd_pcm drm_kms_helper virtio_console snd_timer snd drm soundcore syscopyarea i2c_i801 sysfillrect sysimgblt i2c_smbus pcspkr fb_sys_fops lpc_ich serio_raw
      [  102.792536] CR2: 00000000deadbeef
      [  102.792930] ---[ end trace 0000000000000000 ]---
      
      This patch fixes the issue by checking also on DLM_LKF_VALBLK on exflags
      is set when copying the lvbptr array instead of if it's just null which
      fixes for me the issue.
      
      I think this patch can fix other dlm users as well, depending how they
      handle the init, freeing memory handling of sb_lvbptr and don't set
      DLM_LKF_VALBLK for some dlm_lock() calls. It might a there could be a
      hidden issue all the time. However with checking on DLM_LKF_VALBLK the
      user always need to provide a sb_lvbptr non-null value. There might be
      more intelligent handling between per ls lvblen, DLM_LKF_VALBLK and
      non-null to report the user the way how DLM API is used is wrong but can
      be added for later, this will only fix the current behaviour.
      
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarAlexander Aring <aahringo@redhat.com>
      Signed-off-by: default avatarDavid Teigland <teigland@redhat.com>
      Signed-off-by: default avatarSasha Levin <sashal@kernel.org>
      ea7be82f
    • Jerry Snitselaar's avatar
      iommu/vt-d: Clean up si_domain in the init_dmars() error path · 0365d6af
      Jerry Snitselaar authored
      [ Upstream commit 620bf9f9 ]
      
      A splat from kmem_cache_destroy() was seen with a kernel prior to
      commit ee2653bb ("iommu/vt-d: Remove domain and devinfo mempool")
      when there was a failure in init_dmars(), because the iommu_domain
      cache still had objects. While the mempool code is now gone, there
      still is a leak of the si_domain memory if init_dmars() fails. So
      clean up si_domain in the init_dmars() error path.
      
      Cc: Lu Baolu <baolu.lu@linux.intel.com>
      Cc: Joerg Roedel <joro@8bytes.org>
      Cc: Will Deacon <will@kernel.org>
      Cc: Robin Murphy <robin.murphy@arm.com>
      Fixes: 86080ccc
      
       ("iommu/vt-d: Allocate si_domain in init_dmars()")
      Signed-off-by: default avatarJerry Snitselaar <jsnitsel@redhat.com>
      Link: https://lore.kernel.org/r/20221010144842.308890-1-jsnitsel@redhat.com
      
      
      Signed-off-by: default avatarLu Baolu <baolu.lu@linux.intel.com>
      Signed-off-by: default avatarJoerg Roedel <jroedel@suse.de>
      Signed-off-by: default avatarSasha Levin <sashal@kernel.org>
      0365d6af
    • Charlotte Tan's avatar
      iommu/vt-d: Allow NVS regions in arch_rmrr_sanity_check() · 5c95d0c9
      Charlotte Tan authored
      [ Upstream commit 5566e68d ]
      
      arch_rmrr_sanity_check() warns if the RMRR is not covered by an ACPI
      Reserved region, but it seems like it should accept an NVS region as
      well. The ACPI spec
      https://uefi.org/specs/ACPI/6.5/15_System_Address_Map_Interfaces.html
      uses similar wording for "Reserved" and "NVS" region types; for NVS
      regions it says "This range of addresses is in use or reserved by the
      system and must not be used by the operating system."
      
      There is an old comment on this mailing list that also suggests NVS
      regions should pass the arch_rmrr_sanity_check() test:
      
       The warnings come from arch_rmrr_sanity_check() since it checks whether
       the region is E820_TYPE_RESERVED. However, if the purpose of the check
       is to detect RMRR has regions that may be used by OS as free memory,
       isn't  E820_TYPE_NVS safe, too?
      
      This patch overlaps with another proposed patch that would add the region
      type to the log since sometimes the bug reporter sees this log on the
      console but doesn't know to include the kernel log:
      
      https://lore.kernel.org/lkml/20220611204859.234975-3-atomlin@redhat.com/
      
      Here's an example of the "Firmware Bug" apparent false positive (wrapped
      for line length):
      
       DMAR: [Firmware Bug]: No firmware reserved region can cover this RMRR
             [0x000000006f760000-0x000000006f762fff], contact BIOS vendor for
             fixes
       DMAR: [Firmware Bug]: Your BIOS is broken; bad RMRR
             [0x000000006f760000-0x000000006f762fff]
      
      This is the snippet from the e820 table:
      
       BIOS-e820: [mem 0x0000000068bff000-0x000000006ebfefff] reserved
       BIOS-e820: [mem 0x000000006ebff000-0x000000006f9fefff] ACPI NVS
       BIOS-e820: [mem 0x000000006f9ff000-0x000000006fffefff] ACPI data
      
      Fixes: f036c7fa ("iommu/vt-d: Check VT-d RMRR region in BIOS is reported as reserved")
      Cc: Will Mortensen <will@extrahop.com>
      Link: https://lore.kernel.org/linux-iommu/64a5843d-850d-e58c-4fc2-0a0eeeb656dc@nec.com/
      Link: https://bugzilla.kernel.org/show_bug.cgi?id=216443
      
      
      Signed-off-by: default avatarCharlotte Tan <charlotte@extrahop.com>
      Reviewed-by: default avatarAaron Tomlin <atomlin@redhat.com>
      Link: https://lore.kernel.org/r/20220929044449.32515-1-charlotte@extrahop.com
      
      
      Signed-off-by: default avatarLu Baolu <baolu.lu@linux.intel.com>
      Signed-off-by: default avatarJoerg Roedel <jroedel@suse.de>
      Signed-off-by: default avatarSasha Levin <sashal@kernel.org>
      5c95d0c9
    • Felix Riemann's avatar
      net: phy: dp83822: disable MDI crossover status change interrupt · 209740fd
      Felix Riemann authored
      [ Upstream commit 7f378c03 ]
      
      If the cable is disconnected the PHY seems to toggle between MDI and
      MDI-X modes. With the MDI crossover status interrupt active this causes
      roughly 10 interrupts per second.
      
      As the crossover status isn't checked by the driver, the interrupt can
      be disabled to reduce the interrupt load.
      
      Fixes: 87461f7a
      
       ("net: phy: DP83822 initial driver submission")
      Signed-off-by: default avatarFelix Riemann <felix.riemann@sma.de>
      Reviewed-by: default avatarAndrew Lunn <andrew@lunn.ch>
      Link: https://lore.kernel.org/r/20221018104755.30025-1-svc.sw.rte.linux@sma.de
      
      
      Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      Signed-off-by: default avatarSasha Levin <sashal@kernel.org>
      209740fd
    • Eric Dumazet's avatar
      net: sched: fix race condition in qdisc_graft() · ce123457
      Eric Dumazet authored
      [ Upstream commit ebda44da ]
      
      We had one syzbot report [1] in syzbot queue for a while.
      I was waiting for more occurrences and/or a repro but
      Dmitry Vyukov spotted the issue right away.
      
      <quoting Dmitry>
      qdisc_graft() drops reference to qdisc in notify_and_destroy
      while it's still assigned to dev->qdisc
      </quoting>
      
      Indeed, RCU rules are clear when replacing a data structure.
      The visible pointer (dev->qdisc in this case) must be updated
      to the new object _before_ RCU grace period is started
      (qdisc_put(old) in this case).
      
      [1]
      BUG: KASAN: use-after-free in __tcf_qdisc_find.part.0+0xa3a/0xac0 net/sched/cls_api.c:1066
      Read of size 4 at addr ffff88802065e038 by task syz-executor.4/21027
      
      CPU: 0 PID: 21027 Comm: syz-executor.4 Not tainted 6.0.0-rc3-syzkaller-00363-g7726d4c3e60b #0
      Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 08/26/2022
      Call Trace:
      <TASK>
      __dump_stack lib/dump_stack.c:88 [inline]
      dump_stack_lvl+0xcd/0x134 lib/dump_stack.c:106
      print_address_description mm/kasan/report.c:317 [inline]
      print_report.cold+0x2ba/0x719 mm/kasan/report.c:433
      kasan_report+0xb1/0x1e0 mm/kasan/report.c:495
      __tcf_qdisc_find.part.0+0xa3a/0xac0 net/sched/cls_api.c:1066
      __tcf_qdisc_find net/sched/cls_api.c:1051 [inline]
      tc_new_tfilter+0x34f/0x2200 net/sched/cls_api.c:2018
      rtnetlink_rcv_msg+0x955/0xca0 net/core/rtnetlink.c:6081
      netlink_rcv_skb+0x153/0x420 net/netlink/af_netlink.c:2501
      netlink_unicast_kernel net/netlink/af_netlink.c:1319 [inline]
      netlink_unicast+0x543/0x7f0 net/netlink/af_netlink.c:1345
      netlink_sendmsg+0x917/0xe10 net/netlink/af_netlink.c:1921
      sock_sendmsg_nosec net/socket.c:714 [inline]
      sock_sendmsg+0xcf/0x120 net/socket.c:734
      ____sys_sendmsg+0x6eb/0x810 net/socket.c:2482
      ___sys_sendmsg+0x110/0x1b0 net/socket.c:2536
      __sys_sendmsg+0xf3/0x1c0 net/socket.c:2565
      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+0x63/0xcd
      RIP: 0033:0x7f5efaa89279
      Code: ff ff c3 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 40 00 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 c7 c1 b8 ff ff ff f7 d8 64 89 01 48
      RSP: 002b:00007f5efbc31168 EFLAGS: 00000246 ORIG_RAX: 000000000000002e
      RAX: ffffffffffffffda RBX: 00007f5efab9bf80 RCX: 00007f5efaa89279
      RDX: 0000000000000000 RSI: 0000000020000140 RDI: 0000000000000005
      RBP: 00007f5efaae32e9 R08: 0000000000000000 R09: 0000000000000000
      R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000000
      R13: 00007f5efb0cfb1f R14: 00007f5efbc31300 R15: 0000000000022000
      </TASK>
      
      Allocated by task 21027:
      kasan_save_stack+0x1e/0x40 mm/kasan/common.c:38
      kasan_set_track mm/kasan/common.c:45 [inline]
      set_alloc_info mm/kasan/common.c:437 [inline]
      ____kasan_kmalloc mm/kasan/common.c:516 [inline]
      ____kasan_kmalloc mm/kasan/common.c:475 [inline]
      __kasan_kmalloc+0xa9/0xd0 mm/kasan/common.c:525
      kmalloc_node include/linux/slab.h:623 [inline]
      kzalloc_node include/linux/slab.h:744 [inline]
      qdisc_alloc+0xb0/0xc50 net/sched/sch_generic.c:938
      qdisc_create_dflt+0x71/0x4a0 net/sched/sch_generic.c:997
      attach_one_default_qdisc net/sched/sch_generic.c:1152 [inline]
      netdev_for_each_tx_queue include/linux/netdevice.h:2437 [inline]
      attach_default_qdiscs net/sched/sch_generic.c:1170 [inline]
      dev_activate+0x760/0xcd0 net/sched/sch_generic.c:1229
      __dev_open+0x393/0x4d0 net/core/dev.c:1441
      __dev_change_flags+0x583/0x750 net/core/dev.c:8556
      rtnl_configure_link+0xee/0x240 net/core/rtnetlink.c:3189
      rtnl_newlink_create net/core/rtnetlink.c:3371 [inline]
      __rtnl_newlink+0x10b8/0x17e0 net/core/rtnetlink.c:3580
      rtnl_newlink+0x64/0xa0 net/core/rtnetlink.c:3593
      rtnetlink_rcv_msg+0x43a/0xca0 net/core/rtnetlink.c:6090
      netlink_rcv_skb+0x153/0x420 net/netlink/af_netlink.c:2501
      netlink_unicast_kernel net/netlink/af_netlink.c:1319 [inline]
      netlink_unicast+0x543/0x7f0 net/netlink/af_netlink.c:1345
      netlink_sendmsg+0x917/0xe10 net/netlink/af_netlink.c:1921
      sock_sendmsg_nosec net/socket.c:714 [inline]
      sock_sendmsg+0xcf/0x120 net/socket.c:734
      ____sys_sendmsg+0x6eb/0x810 net/socket.c:2482
      ___sys_sendmsg+0x110/0x1b0 net/socket.c:2536
      __sys_sendmsg+0xf3/0x1c0 net/socket.c:2565
      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+0x63/0xcd
      
      Freed by task 21020:
      kasan_save_stack+0x1e/0x40 mm/kasan/common.c:38
      kasan_set_track+0x21/0x30 mm/kasan/common.c:45
      kasan_set_free_info+0x20/0x30 mm/kasan/generic.c:370
      ____kasan_slab_free mm/kasan/common.c:367 [inline]
      ____kasan_slab_free+0x166/0x1c0 mm/kasan/common.c:329
      kasan_slab_free include/linux/kasan.h:200 [inline]
      slab_free_hook mm/slub.c:1754 [inline]
      slab_free_freelist_hook+0x8b/0x1c0 mm/slub.c:1780
      slab_free mm/slub.c:3534 [inline]
      kfree+0xe2/0x580 mm/slub.c:4562
      rcu_do_batch kernel/rcu/tree.c:2245 [inline]
      rcu_core+0x7b5/0x1890 kernel/rcu/tree.c:2505
      __do_softirq+0x1d3/0x9c6 kernel/softirq.c:571
      
      Last potentially related work creation:
      kasan_save_stack+0x1e/0x40 mm/kasan/common.c:38
      __kasan_record_aux_stack+0xbe/0xd0 mm/kasan/generic.c:348
      call_rcu+0x99/0x790 kernel/rcu/tree.c:2793
      qdisc_put+0xcd/0xe0 net/sched/sch_generic.c:1083
      notify_and_destroy net/sched/sch_api.c:1012 [inline]
      qdisc_graft+0xeb1/0x1270 net/sched/sch_api.c:1084
      tc_modify_qdisc+0xbb7/0x1a00 net/sched/sch_api.c:1671
      rtnetlink_rcv_msg+0x43a/0xca0 net/core/rtnetlink.c:6090
      netlink_rcv_skb+0x153/0x420 net/netlink/af_netlink.c:2501
      netlink_unicast_kernel net/netlink/af_netlink.c:1319 [inline]
      netlink_unicast+0x543/0x7f0 net/netlink/af_netlink.c:1345
      netlink_sendmsg+0x917/0xe10 net/netlink/af_netlink.c:1921
      sock_sendmsg_nosec net/socket.c:714 [inline]
      sock_sendmsg+0xcf/0x120 net/socket.c:734
      ____sys_sendmsg+0x6eb/0x810 net/socket.c:2482
      ___sys_sendmsg+0x110/0x1b0 net/socket.c:2536
      __sys_sendmsg+0xf3/0x1c0 net/socket.c:2565
      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+0x63/0xcd
      
      Second to last potentially related work creation:
      kasan_save_stack+0x1e/0x40 mm/kasan/common.c:38
      __kasan_record_aux_stack+0xbe/0xd0 mm/kasan/generic.c:348
      kvfree_call_rcu+0x74/0x940 kernel/rcu/tree.c:3322
      neigh_destroy+0x431/0x630 net/core/neighbour.c:912
      neigh_release include/net/neighbour.h:454 [inline]
      neigh_cleanup_and_release+0x1f8/0x330 net/core/neighbour.c:103
      neigh_del net/core/neighbour.c:225 [inline]
      neigh_remove_one+0x37d/0x460 net/core/neighbour.c:246
      neigh_forced_gc net/core/neighbour.c:276 [inline]
      neigh_alloc net/core/neighbour.c:447 [inline]
      ___neigh_create+0x18b5/0x29a0 net/core/neighbour.c:642
      ip6_finish_output2+0xfb8/0x1520 net/ipv6/ip6_output.c:125
      __ip6_finish_output net/ipv6/ip6_output.c:195 [inline]
      ip6_finish_output+0x690/0x1160 net/ipv6/ip6_output.c:206
      NF_HOOK_COND include/linux/netfilter.h:296 [inline]
      ip6_output+0x1ed/0x540 net/ipv6/ip6_output.c:227
      dst_output include/net/dst.h:451 [inline]
      NF_HOOK include/linux/netfilter.h:307 [inline]
      NF_HOOK include/linux/netfilter.h:301 [inline]
      mld_sendpack+0xa09/0xe70 net/ipv6/mcast.c:1820
      mld_send_cr net/ipv6/mcast.c:2121 [inline]
      mld_ifc_work+0x71c/0xdc0 net/ipv6/mcast.c:2653
      process_one_work+0x991/0x1610 kernel/workqueue.c:2289
      worker_thread+0x665/0x1080 kernel/workqueue.c:2436
      kthread+0x2e4/0x3a0 kernel/kthread.c:376
      ret_from_fork+0x1f/0x30 arch/x86/entry/entry_64.S:306
      
      The buggy address belongs to the object at ffff88802065e000
      which belongs to the cache kmalloc-1k of size 1024
      The buggy address is located 56 bytes inside of
      1024-byte region [ffff88802065e000, ffff88802065e400)
      
      The buggy address belongs to the physical page:
      page:ffffea0000819600 refcount:1 mapcount:0 mapping:0000000000000000 index:0x0 pfn:0x20658
      head:ffffea0000819600 order:3 compound_mapcount:0 compound_pincount:0
      flags: 0xfff00000010200(slab|head|node=0|zone=1|lastcpupid=0x7ff)
      raw: 00fff00000010200 0000000000000000 dead000000000001 ffff888011841dc0
      raw: 0000000000000000 0000000000100010 00000001ffffffff 0000000000000000
      page dumped because: kasan: bad access detected
      page_owner tracks the page as allocated
      page last allocated via order 3, migratetype Unmovable, gfp_mask 0xd20c0(__GFP_IO|__GFP_FS|__GFP_NOWARN|__GFP_NORETRY|__GFP_COMP|__GFP_NOMEMALLOC), pid 3523, tgid 3523 (sshd), ts 41495190986, free_ts 41417713212
      prep_new_page mm/page_alloc.c:2532 [inline]
      get_page_from_freelist+0x109b/0x2ce0 mm/page_alloc.c:4283
      __alloc_pages+0x1c7/0x510 mm/page_alloc.c:5515
      alloc_pages+0x1a6/0x270 mm/mempolicy.c:2270
      alloc_slab_page mm/slub.c:1824 [inline]
      allocate_slab+0x27e/0x3d0 mm/slub.c:1969
      new_slab mm/slub.c:2029 [inline]
      ___slab_alloc+0x7f1/0xe10 mm/slub.c:3031
      __slab_alloc.constprop.0+0x4d/0xa0 mm/slub.c:3118
      slab_alloc_node mm/slub.c:3209 [inline]
      __kmalloc_node_track_caller+0x2f2/0x380 mm/slub.c:4955
      kmalloc_reserve net/core/skbuff.c:358 [inline]
      __alloc_skb+0xd9/0x2f0 net/core/skbuff.c:430
      alloc_skb_fclone include/linux/skbuff.h:1307 [inline]
      tcp_stream_alloc_skb+0x38/0x580 net/ipv4/tcp.c:861
      tcp_sendmsg_locked+0xc36/0x2f80 net/ipv4/tcp.c:1325
      tcp_sendmsg+0x2b/0x40 net/ipv4/tcp.c:1483
      inet_sendmsg+0x99/0xe0 net/ipv4/af_inet.c:819
      sock_sendmsg_nosec net/socket.c:714 [inline]
      sock_sendmsg+0xcf/0x120 net/socket.c:734
      sock_write_iter+0x291/0x3d0 net/socket.c:1108
      call_write_iter include/linux/fs.h:2187 [inline]
      new_sync_write fs/read_write.c:491 [inline]
      vfs_write+0x9e9/0xdd0 fs/read_write.c:578
      ksys_write+0x1e8/0x250 fs/read_write.c:631
      page last free stack trace:
      reset_page_owner include/linux/page_owner.h:24 [inline]
      free_pages_prepare mm/page_alloc.c:1449 [inline]
      free_pcp_prepare+0x5e4/0xd20 mm/page_alloc.c:1499
      free_unref_page_prepare mm/page_alloc.c:3380 [inline]
      free_unref_page+0x19/0x4d0 mm/page_alloc.c:3476
      __unfreeze_partials+0x17c/0x1a0 mm/slub.c:2548
      qlink_free mm/kasan/quarantine.c:168 [inline]
      qlist_free_all+0x6a/0x170 mm/kasan/quarantine.c:187
      kasan_quarantine_reduce+0x180/0x200 mm/kasan/quarantine.c:294
      __kasan_slab_alloc+0xa2/0xc0 mm/kasan/common.c:447
      kasan_slab_alloc include/linux/kasan.h:224 [inline]
      slab_post_alloc_hook mm/slab.h:727 [inline]
      slab_alloc_node mm/slub.c:3243 [inline]
      slab_alloc mm/slub.c:3251 [inline]
      __kmem_cache_alloc_lru mm/slub.c:3258 [inline]
      kmem_cache_alloc+0x267/0x3b0 mm/slub.c:3268
      kmem_cache_zalloc include/linux/slab.h:723 [inline]
      alloc_buffer_head+0x20/0x140 fs/buffer.c:2974
      alloc_page_buffers+0x280/0x790 fs/buffer.c:829
      create_empty_buffers+0x2c/0xee0 fs/buffer.c:1558
      ext4_block_write_begin+0x1004/0x1530 fs/ext4/inode.c:1074
      ext4_da_write_begin+0x422/0xae0 fs/ext4/inode.c:2996
      generic_perform_write+0x246/0x560 mm/filemap.c:3738
      ext4_buffered_write_iter+0x15b/0x460 fs/ext4/file.c:270
      ext4_file_write_iter+0x44a/0x1660 fs/ext4/file.c:679
      call_write_iter include/linux/fs.h:2187 [inline]
      new_sync_write fs/read_write.c:491 [inline]
      vfs_write+0x9e9/0xdd0 fs/read_write.c:578
      
      Fixes: af356afa
      
       ("net_sched: reintroduce dev->qdisc for use by sch_api")
      Reported-by: default avatarsyzbot <syzkaller@googlegroups.com>
      Diagnosed-by: default avatarDmitry Vyukov <dvyukov@google.com>
      Signed-off-by: default avatarEric Dumazet <edumazet@google.com>
      Link: https://lore.kernel.org/r/20221018203258.2793282-1-edumazet@google.com
      
      
      Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      Signed-off-by: default avatarSasha Levin <sashal@kernel.org>
      ce123457
    • Yang Yingliang's avatar
      net: hns: fix possible memory leak in hnae_ae_register() · 91f8f534
      Yang Yingliang authored
      [ Upstream commit ff2f5ec5 ]
      
      Inject fault while probing module, if device_register() fails,
      but the refcount of kobject is not decreased to 0, the name
      allocated in dev_set_name() is leaked. Fix this by calling
      put_device(), so that name can be freed in callback function
      kobject_cleanup().
      
      unreferenced object 0xffff00c01aba2100 (size 128):
        comm "systemd-udevd", pid 1259, jiffies 4294903284 (age 294.152s)
        hex dump (first 32 bytes):
          68 6e 61 65 30 00 00 00 18 21 ba 1a c0 00 ff ff  hnae0....!......
          00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
        backtrace:
          [<0000000034783f26>] slab_post_alloc_hook+0xa0/0x3e0
          [<00000000748188f2>] __kmem_cache_alloc_node+0x164/0x2b0
          [<00000000ab0743e8>] __kmalloc_node_track_caller+0x6c/0x390
          [<000000006c0ffb13>] kvasprintf+0x8c/0x118
          [<00000000fa27bfe1>] kvasprintf_const+0x60/0xc8
          [<0000000083e10ed7>] kobject_set_name_vargs+0x3c/0xc0
          [<000000000b87affc>] dev_set_name+0x7c/0xa0
          [<000000003fd8fe26>] hnae_ae_register+0xcc/0x190 [hnae]
          [<00000000fe97edc9>] hns_dsaf_ae_init+0x9c/0x108 [hns_dsaf]
          [<00000000c36ff1eb>] hns_dsaf_probe+0x548/0x748 [hns_dsaf]
      
      Fixes: 6fe6611f
      
       ("net: add Hisilicon Network Subsystem hnae framework support")
      Signed-off-by: default avatarYang Yingliang <yangyingliang@huawei.com>
      Reviewed-by: default avatarLeon Romanovsky <leonro@nvidia.com>
      Link: https://lore.kernel.org/r/20221018122451.1749171-1-yangyingliang@huawei.com
      
      
      Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      Signed-off-by: default avatarSasha Levin <sashal@kernel.org>
      91f8f534
    • Yang Yingliang's avatar
      wwan_hwsim: fix possible memory leak in wwan_hwsim_dev_new() · 50c31fa9
      Yang Yingliang authored
      [ Upstream commit 258ad2fe ]
      
      Inject fault while probing module, if device_register() fails,
      but the refcount of kobject is not decreased to 0, the name
      allocated in dev_set_name() is leaked. Fix this by calling
      put_device(), so that name can be freed in callback function
      kobject_cleanup().
      
      unreferenced object 0xffff88810152ad20 (size 8):
        comm "modprobe", pid 252, jiffies 4294849206 (age 22.713s)
        hex dump (first 8 bytes):
          68 77 73 69 6d 30 00 ff                          hwsim0..
        backtrace:
          [<000000009c3504ed>] __kmalloc_node_track_caller+0x44/0x1b0
          [<00000000c0228a5e>] kvasprintf+0xb5/0x140
          [<00000000cff8c21f>] kvasprintf_const+0x55/0x180
          [<0000000055a1e073>] kobject_set_name_vargs+0x56/0x150
          [<000000000a80b139>] dev_set_name+0xab/0xe0
      
      Fixes: f36a111a
      
       ("wwan_hwsim: WWAN device simulator")
      Signed-off-by: default avatarYang Yingliang <yangyingliang@huawei.com>
      Reviewed-by: default avatarLoic Poulain <loic.poulain@linaro.org>
      Acked-by: default avatarSergey Ryazanov <ryazanov.s.a@gmail.com>
      Link: https://lore.kernel.org/r/20221018131607.1901641-1-yangyingliang@huawei.com
      
      
      Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      Signed-off-by: default avatarSasha Levin <sashal@kernel.org>
      50c31fa9
    • Pieter Jansen van Vuuren's avatar
      sfc: include vport_id in filter spec hash and equal() · d2fc83a6
      Pieter Jansen van Vuuren authored
      [ Upstream commit c2bf23e4 ]
      
      Filters on different vports are qualified by different implicit MACs and/or
      VLANs, so shouldn't be considered equal even if their other match fields
      are identical.
      
      Fixes: 7c460d9b
      
       ("sfc: Extend and abstract efx_filter_spec to cover Huntington/EF10")
      Co-developed-by: default avatarEdward Cree <ecree.xilinx@gmail.com>
      Signed-off-by: default avatarEdward Cree <ecree.xilinx@gmail.com>
      Signed-off-by: default avatarPieter Jansen van Vuuren <pieter.jansen-van-vuuren@amd.com>
      Reviewed-by: default avatarMartin Habets <habetsm.xilinx@gmail.com>
      Link: https://lore.kernel.org/r/20221018092841.32206-1-pieter.jansen-van-vuuren@amd.com
      
      
      Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      Signed-off-by: default avatarSasha Levin <sashal@kernel.org>
      d2fc83a6
    • Zhengchao Shao's avatar
      net: sched: sfb: fix null pointer access issue when sfb_init() fails · c2e1e59d
      Zhengchao Shao authored
      [ Upstream commit 2a3fc782 ]
      
      When the default qdisc is sfb, if the qdisc of dev_queue fails to be
      inited during mqprio_init(), sfb_reset() is invoked to clear resources.
      In this case, the q->qdisc is NULL, and it will cause gpf issue.
      
      The process is as follows:
      qdisc_create_dflt()
      	sfb_init()
      		tcf_block_get()          --->failed, q->qdisc is NULL
      	...
      	qdisc_put()
      		...
      		sfb_reset()
      			qdisc_reset(q->qdisc)    --->q->qdisc is NULL
      				ops = qdisc->ops
      
      The following is the Call Trace information:
      general protection fault, probably for non-canonical address
      0xdffffc0000000003: 0000 [#1] PREEMPT SMP KASAN
      KASAN: null-ptr-deref in range [0x0000000000000018-0x000000000000001f]
      RIP: 0010:qdisc_reset+0x2b/0x6f0
      Call Trace:
      <TASK>
      sfb_reset+0x37/0xd0
      qdisc_reset+0xed/0x6f0
      qdisc_destroy+0x82/0x4c0
      qdisc_put+0x9e/0xb0
      qdisc_create_dflt+0x2c3/0x4a0
      mqprio_init+0xa71/0x1760
      qdisc_create+0x3eb/0x1000
      tc_modify_qdisc+0x408/0x1720
      rtnetlink_rcv_msg+0x38e/0xac0
      netlink_rcv_skb+0x12d/0x3a0
      netlink_unicast+0x4a2/0x740
      netlink_sendmsg+0x826/0xcc0
      sock_sendmsg+0xc5/0x100
      ____sys_sendmsg+0x583/0x690
      ___sys_sendmsg+0xe8/0x160
      __sys_sendmsg+0xbf/0x160
      do_syscall_64+0x35/0x80
      entry_SYSCALL_64_after_hwframe+0x46/0xb0
      RIP: 0033:0x7f2164122d04
      </TASK>
      
      Fixes: e13e02a3
      
       ("net_sched: SFB flow scheduler")
      Signed-off-by: default avatarZhengchao Shao <shaozhengchao@huawei.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      Signed-off-by: default avatarSasha Levin <sashal@kernel.org>
      c2e1e59d
    • Zhengchao Shao's avatar
      net: sched: delete duplicate cleanup of backlog and qlen · 34f2a4ee
      Zhengchao Shao authored
      [ Upstream commit c19d893f
      
       ]
      
      qdisc_reset() is clearing qdisc->q.qlen and qdisc->qstats.backlog
      _after_ calling qdisc->ops->reset. There is no need to clear them
      again in the specific reset function.
      
      Signed-off-by: default avatarZhengchao Shao <shaozhengchao@huawei.com>
      Link: https://lore.kernel.org/r/20220824005231.345727-1-shaozhengchao@huawei.com
      
      
      Signed-off-by: default avatarPaolo Abeni <pabeni@redhat.com>
      Stable-dep-of: 2a3fc782
      
       ("net: sched: sfb: fix null pointer access issue when sfb_init() fails")
      Signed-off-by: default avatarSasha Levin <sashal@kernel.org>
      34f2a4ee
    • Zhengchao Shao's avatar
      net: sched: cake: fix null pointer access issue when cake_init() fails · 154f4c06
      Zhengchao Shao authored
      [ Upstream commit 51f9a892 ]
      
      When the default qdisc is cake, if the qdisc of dev_queue fails to be
      inited during mqprio_init(), cake_reset() is invoked to clear
      resources. In this case, the tins is NULL, and it will cause gpf issue.
      
      The process is as follows:
      qdisc_create_dflt()
      	cake_init()
      		q->tins = kvcalloc(...)        --->failed, q->tins is NULL
      	...
      	qdisc_put()
      		...
      		cake_reset()
      			...
      			cake_dequeue_one()
      				b = &q->tins[...]   --->q->tins is NULL
      
      The following is the Call Trace information:
      general protection fault, probably for non-canonical address
      0xdffffc0000000000: 0000 [#1] PREEMPT SMP KASAN
      KASAN: null-ptr-deref in range [0x0000000000000000-0x0000000000000007]
      RIP: 0010:cake_dequeue_one+0xc9/0x3c0
      Call Trace:
      <TASK>
      cake_reset+0xb1/0x140
      qdisc_reset+0xed/0x6f0
      qdisc_destroy+0x82/0x4c0
      qdisc_put+0x9e/0xb0
      qdisc_create_dflt+0x2c3/0x4a0
      mqprio_init+0xa71/0x1760
      qdisc_create+0x3eb/0x1000
      tc_modify_qdisc+0x408/0x1720
      rtnetlink_rcv_msg+0x38e/0xac0
      netlink_rcv_skb+0x12d/0x3a0
      netlink_unicast+0x4a2/0x740
      netlink_sendmsg+0x826/0xcc0
      sock_sendmsg+0xc5/0x100
      ____sys_sendmsg+0x583/0x690
      ___sys_sendmsg+0xe8/0x160
      __sys_sendmsg+0xbf/0x160
      do_syscall_64+0x35/0x80
      entry_SYSCALL_64_after_hwframe+0x46/0xb0
      RIP: 0033:0x7f89e5122d04
      </TASK>
      
      Fixes: 046f6fd5
      
       ("sched: Add Common Applications Kept Enhanced (cake) qdisc")
      Signed-off-by: default avatarZhengchao Shao <shaozhengchao@huawei.com>
      Acked-by: default avatarToke Høiland-Jørgensen <toke@toke.dk>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      Signed-off-by: default avatarSasha Levin <sashal@kernel.org>
      154f4c06
    • Sagi Grimberg's avatar
      nvmet: fix workqueue MEM_RECLAIM flushing dependency · 5efed757
      Sagi Grimberg authored
      [ Upstream commit ddd2b8de
      
       ]
      
      The keep alive timer needs to stay on nvmet_wq, and not
      modified to reschedule on the system_wq.
      
      This fixes a warning:
      ------------[ cut here ]------------
      workqueue: WQ_MEM_RECLAIM
      nvmet-wq:nvmet_rdma_release_queue_work [nvmet_rdma] is flushing
      !WQ_MEM_RECLAIM events:nvmet_keep_alive_timer [nvmet]
      WARNING: CPU: 3 PID: 1086 at kernel/workqueue.c:2628
      check_flush_dependency+0x16c/0x1e0
      
      Reported-by: default avatarYi Zhang <yi.zhang@redhat.com>
      Fixes: 8832cf92
      
       ("nvmet: use a private workqueue instead of the system workqueue")
      Signed-off-by: default avatarSagi Grimberg <sagi@grimberg.me>
      Reviewed-by: default avatarChaitanya Kulkarni <kch@nvidia.com>
      Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
      Signed-off-by: default avatarSasha Levin <sashal@kernel.org>
      5efed757
    • Serge Semin's avatar
      nvme-hwmon: kmalloc the NVME SMART log buffer · 2f2b84b0
      Serge Semin authored
      [ Upstream commit c94b7f9b ]
      
      Recent commit 52fde2c0 ("nvme: set dma alignment to dword") has
      caused a regression on our platform.
      
      It turned out that the nvme_get_log() method invocation caused the
      nvme_hwmon_data structure instance corruption.  In particular the
      nvme_hwmon_data.ctrl pointer was overwritten either with zeros or with
      garbage.  After some research we discovered that the problem happened
      even before the actual NVME DMA execution, but during the buffer mapping.
      Since our platform is DMA-noncoherent, the mapping implied the cache-line
      invalidations or write-backs depending on the DMA-direction parameter.
      In case of the NVME SMART log getting the DMA was performed
      from-device-to-memory, thus the cache-invalidation was activated during
      the buffer mapping.  Since the log-buffer isn't cache-line aligned, the
      cache-invalidation caused the neighbour data to be discarded.  The
      neighbouring data turned to be the data surrounding the buffer in the
      framework of the nvme_hwmon_data structure.
      
      In order to fix that we need to make sure that the whole log-buffer is
      defined within the cache-line-aligned memory region so the
      cache-invalidation procedure wouldn't involve the adjacent data. One of
      the option to guarantee that is to kmalloc the DMA-buffer [1]. Seeing the
      rest of the NVME core driver prefer that method it has been chosen to fix
      this problem too.
      
      Note after a deeper researches we found out that the denoted commit wasn't
      a root cause of the problem. It just revealed the invalidity by activating
      the DMA-based NVME SMART log getting performed in the framework of the
      NVME hwmon driver. The problem was here since the initial commit of the
      driver.
      
      [1] Documentation/core-api/dma-api-howto.rst
      
      Fixes: 400b6a7b
      
       ("nvme: Add hardware monitoring support")
      Signed-off-by: default avatarSerge Semin <Sergey.Semin@baikalelectronics.ru>
      Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
      Signed-off-by: default avatarSasha Levin <sashal@kernel.org>
      2f2b84b0
    • Christoph Hellwig's avatar
      nvme-hwmon: consistently ignore errors from nvme_hwmon_init · 66c56b23
      Christoph Hellwig authored
      [ Upstream commit 6b8cf940
      
       ]
      
      An NVMe controller works perfectly fine even when the hwmon
      initialization fails.  Stop returning errors that do not come from a
      controller reset from nvme_hwmon_init to handle this case consistently.
      
      Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
      Reviewed-by: default avatarGuenter Roeck <linux@roeck-us.net>
      Reviewed-by: default avatarSerge Semin <fancer.lancer@gmail.com>
      Stable-dep-of: c94b7f9b
      
       ("nvme-hwmon: kmalloc the NVME SMART log buffer")
      Signed-off-by: default avatarSasha Levin <sashal@kernel.org>
      66c56b23
    • Pablo Neira Ayuso's avatar
      netfilter: nf_tables: relax NFTA_SET_ELEM_KEY_END set flags requirements · d77f6908
      Pablo Neira Ayuso authored
      [ Upstream commit 96df8360 ]
      
      Otherwise EINVAL is bogusly reported to userspace when deleting a set
      element. NFTA_SET_ELEM_KEY_END does not need to be set in case of:
      
      - insertion: if not present, start key is used as end key.
      - deletion: only start key needs to be specified, end key is ignored.
      
      Hence, relax the sanity check.
      
      Fixes: 88cccd90
      
       ("netfilter: nf_tables: NFTA_SET_ELEM_KEY_END requires concat and interval flags")
      Signed-off-by: default avatarPablo Neira Ayuso <pablo@netfilter.org>
      Signed-off-by: default avatarSasha Levin <sashal@kernel.org>
      d77f6908
    • Brett Creeley's avatar
      ionic: catch NULL pointer issue on reconfig · efa9dd7e
      Brett Creeley authored
      [ Upstream commit aa1d7e12 ]
      
      It's possible that the driver will dereference a qcq that doesn't exist
      when calling ionic_reconfigure_queues(), which causes a page fault BUG.
      
      If a reduction in the number of queues is followed by a different
      reconfig such as changing the ring size, the driver can hit a NULL
      pointer when trying to clean up non-existent queues.
      
      Fix this by checking to make sure both the qcqs array and qcq entry
      exists bofore trying to use and free the entry.
      
      Fixes: 101b40a0
      
       ("ionic: change queue count with no reset")
      Signed-off-by: default avatarBrett Creeley <brett@pensando.io>
      Signed-off-by: default avatarShannon Nelson <snelson@pensando.io>
      Link: https://lore.kernel.org/r/20221017233123.15869-1-snelson@pensando.io
      
      
      Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      Signed-off-by: default avatarSasha Levin <sashal@kernel.org>
      efa9dd7e
    • Eric Dumazet's avatar
      net: hsr: avoid possible NULL deref in skb_clone() · 35ece858
      Eric Dumazet authored
      [ Upstream commit d8b57135 ]
      
      syzbot got a crash [1] in skb_clone(), caused by a bug
      in hsr_get_untagged_frame().
      
      When/if create_stripped_skb_hsr() returns NULL, we must
      not attempt to call skb_clone().
      
      While we are at it, replace a WARN_ONCE() by netdev_warn_once().
      
      [1]
      general protection fault, probably for non-canonical address 0xdffffc000000000f: 0000 [#1] PREEMPT SMP KASAN
      KASAN: null-ptr-deref in range [0x0000000000000078-0x000000000000007f]
      CPU: 1 PID: 754 Comm: syz-executor.0 Not tainted 6.0.0-syzkaller-02734-g0326074ff465 #0
      Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 09/22/2022
      RIP: 0010:skb_clone+0x108/0x3c0 net/core/skbuff.c:1641
      Code: 93 02 00 00 49 83 7c 24 28 00 0f 85 e9 00 00 00 e8 5d 4a 29 fa 4c 8d 75 7e 48 b8 00 00 00 00 00 fc ff df 4c 89 f2 48 c1 ea 03 <0f> b6 04 02 4c 89 f2 83 e2 07 38 d0 7f 08 84 c0 0f 85 9e 01 00 00
      RSP: 0018:ffffc90003ccf4e0 EFLAGS: 00010207
      
      RAX: dffffc0000000000 RBX: ffffc90003ccf5f8 RCX: ffffc9000c24b000
      RDX: 000000000000000f RSI: ffffffff8751cb13 RDI: 0000000000000000
      RBP: 0000000000000000 R08: 00000000000000f0 R09: 0000000000000140
      R10: fffffbfff181d972 R11: 0000000000000000 R12: ffff888161fc3640
      R13: 0000000000000a20 R14: 000000000000007e R15: ffffffff8dc5f620
      FS: 00007feb621e4700(0000) GS:ffff8880b9b00000(0000) knlGS:0000000000000000
      CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
      CR2: 00007feb621e3ff8 CR3: 00000001643a9000 CR4: 00000000003506e0
      DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
      DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
      Call Trace:
      <TASK>
      hsr_get_untagged_frame+0x4e/0x610 net/hsr/hsr_forward.c:164
      hsr_forward_do net/hsr/hsr_forward.c:461 [inline]
      hsr_forward_skb+0xcca/0x1d50 net/hsr/hsr_forward.c:623
      hsr_handle_frame+0x588/0x7c0 net/hsr/hsr_slave.c:69
      __netif_receive_skb_core+0x9fe/0x38f0 net/core/dev.c:5379
      __netif_receive_skb_one_core+0xae/0x180 net/core/dev.c:5483
      __netif_receive_skb+0x1f/0x1c0 net/core/dev.c:5599
      netif_receive_skb_internal net/core/dev.c:5685 [inline]
      netif_receive_skb+0x12f/0x8d0 net/core/dev.c:5744
      tun_rx_batched+0x4ab/0x7a0 drivers/net/tun.c:1544
      tun_get_user+0x2686/0x3a00 drivers/net/tun.c:1995
      tun_chr_write_iter+0xdb/0x200 drivers/net/tun.c:2025
      call_write_iter include/linux/fs.h:2187 [inline]
      new_sync_write fs/read_write.c:491 [inline]
      vfs_write+0x9e9/0xdd0 fs/read_write.c:584
      ksys_write+0x127/0x250 fs/read_write.c:637
      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+0x63/0xcd
      
      Fixes: f266a683
      
       ("net/hsr: Better frame dispatch")
      Reported-by: default avatarsyzbot <syzkaller@googlegroups.com>
      Signed-off-by: default avatarEric Dumazet <edumazet@google.com>
      Link: https://lore.kernel.org/r/20221017165928.2150130-1-edumazet@google.com
      
      
      Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      Signed-off-by: default avatarSasha Levin <sashal@kernel.org>
      35ece858
    • Genjian Zhang's avatar
      dm: remove unnecessary assignment statement in alloc_dev() · e326df21
      Genjian Zhang authored
      [ Upstream commit 99f4f5bc ]
      
      Fixes: 74fe6ba9
      
       ("dm: convert to blk_alloc_disk/blk_cleanup_disk")
      Signed-off-by: default avatarGenjian Zhang <zhanggenjian@kylinos.cn>
      Signed-off-by: default avatarMike Snitzer <snitzer@kernel.org>
      Signed-off-by: default avatarSasha Levin <sashal@kernel.org>
      e326df21
    • Zhang Xiaoxu's avatar
      cifs: Fix xid leak in cifs_ses_add_channel() · 847301f0
      Zhang Xiaoxu authored
      [ Upstream commit e909d054 ]
      
      Before return, should free the xid, otherwise, the
      xid will be leaked.
      
      Fixes: d70e9fa5
      
       ("cifs: try opening channels after mounting")
      Reviewed-by: default avatarPaulo Alcantara (SUSE) <pc@cjr.nz>
      Signed-off-by: default avatarZhang Xiaoxu <zhangxiaoxu5@huawei.com>
      Signed-off-by: default avatarSteve French <stfrench@microsoft.com>
      Signed-off-by: default avatarSasha Levin <sashal@kernel.org>
      847301f0
    • Zhang Xiaoxu's avatar
      cifs: Fix xid leak in cifs_flock() · 8905d13b
      Zhang Xiaoxu authored
      [ Upstream commit 575e079c ]
      
      If not flock, before return -ENOLCK, should free the xid,
      otherwise, the xid will be leaked.
      
      Fixes: d0677992
      
       ("cifs: add support for flock")
      Reviewed-by: default avatarPaulo Alcantara (SUSE) <pc@cjr.nz>
      Signed-off-by: default avatarZhang Xiaoxu <zhangxiaoxu5@huawei.com>
      Signed-off-by: default avatarSteve French <stfrench@microsoft.com>
      Signed-off-by: default avatarSasha Levin <sashal@kernel.org>
      8905d13b
    • Zhang Xiaoxu's avatar
      cifs: Fix xid leak in cifs_copy_file_range() · 27cfd3af
      Zhang Xiaoxu authored
      [ Upstream commit 9a97df40 ]
      
      If the file is used by swap, before return -EOPNOTSUPP, should
      free the xid, otherwise, the xid will be leaked.
      
      Fixes: 4e8aea30
      
       ("smb3: enable swap on SMB3 mounts")
      Reviewed-by: default avatarPaulo Alcantara (SUSE) <pc@cjr.nz>
      Signed-off-by: default avatarZhang Xiaoxu <zhangxiaoxu5@huawei.com>
      Signed-off-by: default avatarSteve French <stfrench@microsoft.com>
      Signed-off-by: default avatarSasha Levin <sashal@kernel.org>
      27cfd3af
    • Zhang Xiaoxu's avatar
      cifs: Fix xid leak in cifs_create() · 593d877c
      Zhang Xiaoxu authored
      [ Upstream commit fee0fb1f ]
      
      If the cifs already shutdown, we should free the xid before return,
      otherwise, the xid will be leaked.
      
      Fixes: 087f757b
      
       ("cifs: add shutdown support")
      Reviewed-by: default avatarPaulo Alcantara (SUSE) <pc@cjr.nz>
      Signed-off-by: default avatarZhang Xiaoxu <zhangxiaoxu5@huawei.com>
      Signed-off-by: default avatarSteve French <stfrench@microsoft.com>
      Signed-off-by: default avatarSasha Levin <sashal@kernel.org>
      593d877c
    • Kuniyuki Iwashima's avatar
      udp: Update reuse->has_conns under reuseport_lock. · a8df9d04
      Kuniyuki Iwashima authored
      [ Upstream commit 69421bf9 ]
      
      When we call connect() for a UDP socket in a reuseport group, we have
      to update sk->sk_reuseport_cb->has_conns to 1.  Otherwise, the kernel
      could select a unconnected socket wrongly for packets sent to the
      connected socket.
      
      However, the current way to set has_conns is illegal and possible to
      trigger that problem.  reuseport_has_conns() changes has_conns under
      rcu_read_lock(), which upgrades the RCU reader to the updater.  Then,
      it must do the update under the updater's lock, reuseport_lock, but
      it doesn't for now.
      
      For this reason, there is a race below where we fail to set has_conns
      resulting in the wrong socket selection.  To avoid the race, let's split
      the reader and updater with proper locking.
      
       cpu1                               cpu2
      +----+                             +----+
      
      __ip[46]_datagram_connect()        reuseport_grow()
      .                                  .
      |- reuseport_has_conns(sk, true)   |- more_reuse = __reuseport_alloc(more_socks_size)
      |  .                               |
      |  |- rcu_read_lock()
      |  |- reuse = rcu_dereference(sk->sk_reuseport_cb)
      |  |
      |  |                               |  /* reuse->has_conns == 0 here */
      |  |                               |- more_reuse->has_conns = reuse->has_conns
      |  |- reuse->has_conns = 1         |  /* more_reuse->has_conns SHOULD BE 1 HERE */
      |  |                               |
      |  |                               |- rcu_assign_pointer(reuse->socks[i]->sk_reuseport_cb,
      |  |                               |                     more_reuse)
      |  `- rcu_read_unlock()            `- kfree_rcu(reuse, rcu)
      |
      |- sk->sk_state = TCP_ESTABLISHED
      
      Note the likely(reuse) in reuseport_has_conns_set() is always true,
      but we put the test there for ease of review.  [0]
      
      For the record, usually, sk_reuseport_cb is changed under lock_sock().
      The only exception is reuseport_grow() & TCP reqsk migration case.
      
        1) shutdown() TCP listener, which is moved into the latter part of
           reuse->socks[] to migrate reqsk.
      
        2) New listen() overflows reuse->socks[] and call reuseport_grow().
      
        3) reuse->max_socks overflows u16 with the new listener.
      
        4) reuseport_grow() pops the old shutdown()ed listener from the array
           and update its sk->sk_reuseport_cb as NULL without lock_sock().
      
      shutdown()ed TCP sk->sk_reuseport_cb can be changed without lock_sock(),
      but, reuseport_has_conns_set() is called only for UDP under lock_sock(),
      so likely(reuse) never be false in reuseport_has_conns_set().
      
      [0]: https://lore.kernel.org/netdev/CANn89iLja=eQHbsM_Ta2sQF0tOGU8vAGrh_izRuuHjuO1ouUag@mail.gmail.com/
      
      Fixes: acdcecc6
      
       ("udp: correct reuseport selection with connected sockets")
      Signed-off-by: default avatarKuniyuki Iwashima <kuniyu@amazon.com>
      Link: https://lore.kernel.org/r/20221014182625.89913-1-kuniyu@amazon.com
      
      
      Signed-off-by: default avatarPaolo Abeni <pabeni@redhat.com>
      Signed-off-by: default avatarSasha Levin <sashal@kernel.org>
      a8df9d04