Changelog in Linux kernel 6.1.104

 
ALSA: hda/realtek: Add quirk for Acer Aspire E5-574G [+ + +]
Author: Mavroudis Chatzilazaridis <[email protected]>
Date:   Sun Jul 28 12:36:04 2024 +0000

    ALSA: hda/realtek: Add quirk for Acer Aspire E5-574G
    
    commit 3c0b6f924e1259ade38587ea719b693f6f6f2f3e upstream.
    
    ALC255_FIXUP_ACER_LIMIT_INT_MIC_BOOST fixes combo jack detection and
    limits the internal microphone boost that causes clipping on this model.
    
    Signed-off-by: Mavroudis Chatzilazaridis <[email protected]>
    Cc: <[email protected]>
    Link: https://patch.msgid.link/[email protected]
    Signed-off-by: Takashi Iwai <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>

ALSA: hda: Conditionally use snooping for AMD HDMI [+ + +]
Author: Takashi Iwai <[email protected]>
Date:   Wed Jul 31 19:05:15 2024 +0200

    ALSA: hda: Conditionally use snooping for AMD HDMI
    
    [ Upstream commit 478689b5990deb626a0b3f1ebf165979914d6be4 ]
    
    The recent regression report revealed that the use of WC pages for AMD
    HDMI device together with AMD IOMMU leads to unexpected truncation or
    noises.  The issue seems triggered by the change in the kernel core
    memory allocation that enables IOMMU driver to use always S/G
    buffers.  Meanwhile, the use of WC pages has been a workaround for the
    similar issue with standard pages in the past.  So, now we need to
    apply the workaround conditionally, namely, only when IOMMU isn't in
    place.
    
    This patch modifies the workaround code to check the DMA ops at first
    and apply the snoop-off only when needed.
    
    Fixes: f5ff79fddf0e ("dma-mapping: remove CONFIG_DMA_REMAP")
    Link: https://bugzilla.kernel.org/show_bug.cgi?id=219087
    Link: https://patch.msgid.link/[email protected]
    Signed-off-by: Takashi Iwai <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>

ALSA: hda: conexant: Fix headset auto detect fail in the polling mode [+ + +]
Author: songxiebing <[email protected]>
Date:   Fri Jul 26 18:07:26 2024 +0800

    ALSA: hda: conexant: Fix headset auto detect fail in the polling mode
    
    [ Upstream commit e60dc98122110594d0290845160f12916192fc6d ]
    
    The previous fix (7aeb25908648) only handles the unsol_event reporting
    during interrupts and does not include the polling mode used to set
    jackroll_ms, so now we are replacing it with
    snd_hda_jack_detect_enable_callback.
    
    Fixes: 7aeb25908648 ("ALSA: hda/conexant: Fix headset auto detect fail in cx8070 and SN6140")
    Co-developed-by: bo liu <[email protected]>
    Signed-off-by: bo liu <[email protected]>
    Signed-off-by: songxiebing <[email protected]>
    Link: https://patch.msgid.link/[email protected]
    Signed-off-by: Takashi Iwai <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>

ALSA: usb-audio: Correct surround channels in UAC1 channel map [+ + +]
Author: Takashi Iwai <[email protected]>
Date:   Wed Jul 31 16:19:41 2024 +0200

    ALSA: usb-audio: Correct surround channels in UAC1 channel map
    
    commit b7b7e1ab7619deb3b299b5e5c619c3e6f183a12d upstream.
    
    USB-audio driver puts SNDRV_CHMAP_SL and _SR as left and right
    surround channels for UAC1 channel map, respectively.  But they should
    have been SNDRV_CHMAP_RL and _RR; the current value *_SL and _SR are
    rather "side" channels, not "surround".  I guess I took those
    mistakenly when I read the spec mentioning "surround left".
    
    This patch corrects those entries to be the right channels.
    
    Suggested-by: Sylvain BERTRAND <[email protected]>
    Closes: https://lore.kernel.orgZ/qIyJD8lhd8hFhlC@freedom
    Fixes: 04324ccc75f9 ("ALSA: usb-audio: add channel map support")
    Cc: <[email protected]>
    Link: https://patch.msgid.link/[email protected]
    Signed-off-by: Takashi Iwai <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>

 
arm64: dts: qcom: ipq8074: Disable SS instance in Parkmode for USB [+ + +]
Author: Krishna Kurapati <[email protected]>
Date:   Thu Jul 4 20:58:42 2024 +0530

    arm64: dts: qcom: ipq8074: Disable SS instance in Parkmode for USB
    
    [ Upstream commit dc6ba95c6c4400a84cca5b419b34ae852a08cfb5 ]
    
    For Gen-1 targets like IPQ8074, it is seen that stressing out the
    controller in host mode results in HC died error:
    
     xhci-hcd.12.auto: xHCI host not responding to stop endpoint command
     xhci-hcd.12.auto: xHCI host controller not responding, assume dead
     xhci-hcd.12.auto: HC died; cleaning up
    
    And at this instant only restarting the host mode fixes it. Disable
    SuperSpeed instance in park mode for IPQ8074 to mitigate this issue.
    
    Cc: [email protected]
    Fixes: 5e09bc51d07b ("arm64: dts: ipq8074: enable USB support")
    Signed-off-by: Krishna Kurapati <[email protected]>
    Reviewed-by: Konrad Dybcio <[email protected]>
    Link: https://lore.kernel.org/r/[email protected]
    Signed-off-by: Bjorn Andersson <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>

arm64: dts: qcom: msm8998: Disable SS instance in Parkmode for USB [+ + +]
Author: Krishna Kurapati <[email protected]>
Date:   Thu Jul 4 20:58:43 2024 +0530

    arm64: dts: qcom: msm8998: Disable SS instance in Parkmode for USB
    
    [ Upstream commit 0046325ae52079b46da13a7f84dd7b2a6f7c38f8 ]
    
    For Gen-1 targets like MSM8998, it is seen that stressing out the
    controller in host mode results in HC died error:
    
     xhci-hcd.12.auto: xHCI host not responding to stop endpoint command
     xhci-hcd.12.auto: xHCI host controller not responding, assume dead
     xhci-hcd.12.auto: HC died; cleaning up
    
    And at this instant only restarting the host mode fixes it. Disable
    SuperSpeed instance in park mode for MSM8998 to mitigate this issue.
    
    Cc: [email protected]
    Fixes: 026dad8f5873 ("arm64: dts: qcom: msm8998: Add USB-related nodes")
    Signed-off-by: Krishna Kurapati <[email protected]>
    Reviewed-by: Konrad Dybcio <[email protected]>
    Link: https://lore.kernel.org/r/[email protected]
    Signed-off-by: Bjorn Andersson <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>

arm64: dts: qcom: msm8998: switch USB QMP PHY to new style of bindings [+ + +]
Author: Dmitry Baryshkov <[email protected]>
Date:   Fri Aug 25 00:19:46 2023 +0300

    arm64: dts: qcom: msm8998: switch USB QMP PHY to new style of bindings
    
    [ Upstream commit b7efebfeb2e8ad8187cdabba5f0212ba2e6c1069 ]
    
    Change the USB QMP PHY to use newer style of QMP PHY bindings (single
    resource region, no per-PHY subnodes).
    
    Signed-off-by: Dmitry Baryshkov <[email protected]>
    Link: https://lore.kernel.org/r/[email protected]
    Signed-off-by: Bjorn Andersson <[email protected]>
    Stable-dep-of: 0046325ae520 ("arm64: dts: qcom: msm8998: Disable SS instance in Parkmode for USB")
    Signed-off-by: Sasha Levin <[email protected]>
arm64: jump_label: Ensure patched jump_labels are visible to all CPUs [+ + +]
Author: Will Deacon <[email protected]>
Date:   Wed Jul 31 14:36:01 2024 +0100

    arm64: jump_label: Ensure patched jump_labels are visible to all CPUs
    
    [ Upstream commit cfb00a35786414e7c0e6226b277d9f09657eae74 ]
    
    Although the Arm architecture permits concurrent modification and
    execution of NOP and branch instructions, it still requires some
    synchronisation to ensure that other CPUs consistently execute the newly
    written instruction:
    
     >  When the modified instructions are observable, each PE that is
     >  executing the modified instructions must execute an ISB or perform a
     >  context synchronizing event to ensure execution of the modified
     >  instructions
    
    Prior to commit f6cc0c501649 ("arm64: Avoid calling stop_machine() when
    patching jump labels"), the arm64 jump_label patching machinery
    performed synchronisation using stop_machine() after each modification,
    however this was problematic when flipping static keys from atomic
    contexts (namely, the arm_arch_timer CPU hotplug startup notifier) and
    so we switched to the _nosync() patching routines to avoid "scheduling
    while atomic" BUG()s during boot.
    
    In hindsight, the analysis of the issue in f6cc0c501649 isn't quite
    right: it cites the use of IPIs in the default patching routines as the
    cause of the lockup, whereas stop_machine() does not rely on IPIs and
    the I-cache invalidation is performed using __flush_icache_range(),
    which elides the call to kick_all_cpus_sync(). In fact, the blocking
    wait for other CPUs is what triggers the BUG() and the problem remains
    even after f6cc0c501649, for example because we could block on the
    jump_label_mutex. Eventually, the arm_arch_timer driver was fixed to
    avoid the static key entirely in commit a862fc2254bd
    ("clocksource/arm_arch_timer: Remove use of workaround static key").
    
    This all leaves the jump_label patching code in a funny situation on
    arm64 as we do not synchronise with other CPUs to reduce the likelihood
    of a bug which no longer exists. Consequently, toggling a static key on
    one CPU cannot be assumed to take effect on other CPUs, leading to
    potential issues, for example with missing preempt notifiers.
    
    Rather than revert f6cc0c501649 and go back to stop_machine() for each
    patch site, implement arch_jump_label_transform_apply() and kick all
    the other CPUs with an IPI at the end of patching.
    
    Cc: Alexander Potapenko <[email protected]>
    Cc: Mark Rutland <[email protected]>
    Cc: Marc Zyngier <[email protected]>
    Fixes: f6cc0c501649 ("arm64: Avoid calling stop_machine() when patching jump labels")
    Signed-off-by: Will Deacon <[email protected]>
    Reviewed-by: Catalin Marinas <[email protected]>
    Reviewed-by: Marc Zyngier <[email protected]>
    Link: https://lore.kernel.org/r/[email protected]
    Signed-off-by: Catalin Marinas <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>

 
Bluetooth: hci_sync: Fix suspending with wrong filter policy [+ + +]
Author: Luiz Augusto von Dentz <[email protected]>
Date:   Mon Jul 15 10:40:03 2024 -0400

    Bluetooth: hci_sync: Fix suspending with wrong filter policy
    
    [ Upstream commit 96b82af36efaa1787946e021aa3dc5410c05beeb ]
    
    When suspending the scan filter policy cannot be 0x00 (no acceptlist)
    since that means the host has to process every advertisement report
    waking up the system, so this attempts to check if hdev is marked as
    suspended and if the resulting filter policy would be 0x00 (no
    acceptlist) then skip passive scanning if thre no devices in the
    acceptlist otherwise reset the filter policy to 0x01 so the acceptlist
    is used since the devices programmed there can still wakeup be system.
    
    Fixes: 182ee45da083 ("Bluetooth: hci_sync: Rework hci_suspend_notifier")
    Signed-off-by: Luiz Augusto von Dentz <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>

 
btrfs: zoned: fix zone_unusable accounting on making block group read-write again [+ + +]
Author: Naohiro Aota <[email protected]>
Date:   Wed Feb 15 09:18:02 2023 +0900

    btrfs: zoned: fix zone_unusable accounting on making block group read-write again
    
    commit 8cd44dd1d17a23d5cc8c443c659ca57aa76e2fa5 upstream.
    
    When btrfs makes a block group read-only, it adds all free regions in the
    block group to space_info->bytes_readonly. That free space excludes
    reserved and pinned regions. OTOH, when btrfs makes the block group
    read-write again, it moves all the unused regions into the block group's
    zone_unusable. That unused region includes reserved and pinned regions.
    As a result, it counts too much zone_unusable bytes.
    
    Fortunately (or unfortunately), having erroneous zone_unusable does not
    affect the calculation of space_info->bytes_readonly, because free
    space (num_bytes in btrfs_dec_block_group_ro) calculation is done based on
    the erroneous zone_unusable and it reduces the num_bytes just to cancel the
    error.
    
    This behavior can be easily discovered by adding a WARN_ON to check e.g,
    "bg->pinned > 0" in btrfs_dec_block_group_ro(), and running fstests test
    case like btrfs/282.
    
    Fix it by properly considering pinned and reserved in
    btrfs_dec_block_group_ro(). Also, add a WARN_ON and introduce
    btrfs_space_info_update_bytes_zone_unusable() to catch a similar mistake.
    
    Fixes: 169e0da91a21 ("btrfs: zoned: track unusable bytes for zones")
    CC: [email protected] # 5.15+
    Signed-off-by: Naohiro Aota <[email protected]>
    Reviewed-by: Josef Bacik <[email protected]>
    Reviewed-by: Johannes Thumshirn <[email protected]>
    Signed-off-by: David Sterba <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>

 
cpufreq: qcom-nvmem: Convert to platform remove callback returning void [+ + +]
Author: Yangtao Li <[email protected]>
Date:   Wed Jul 12 17:33:18 2023 +0800

    cpufreq: qcom-nvmem: Convert to platform remove callback returning void
    
    [ Upstream commit 402732324b17a31f7e5dce9659d1b1f049fd65d3 ]
    
    The .remove() callback for a platform driver returns an int which makes
    many driver authors wrongly assume it's possible to do error handling by
    returning an error code. However the value returned is (mostly) ignored
    and this typically results in resource leaks. To improve here there is a
    quest to make the remove callback return void. In the first step of this
    quest all drivers are converted to .remove_new() which already returns
    void.
    
    Trivially convert this driver from always returning zero in the remove
    callback to the void returning variant.
    
    Cc: Uwe Kleine-König <[email protected]>
    Signed-off-by: Yangtao Li <[email protected]>
    Signed-off-by: Viresh Kumar <[email protected]>
    Stable-dep-of: d01c84b97f19 ("cpufreq: qcom-nvmem: fix memory leaks in probe error paths")
    Signed-off-by: Sasha Levin <[email protected]>

cpufreq: qcom-nvmem: fix memory leaks in probe error paths [+ + +]
Author: Javier Carrasco <[email protected]>
Date:   Thu May 23 23:24:59 2024 +0200

    cpufreq: qcom-nvmem: fix memory leaks in probe error paths
    
    [ Upstream commit d01c84b97f19f1137211e90b0a910289a560019e ]
    
    The code refactoring added new error paths between the np device node
    allocation and the call to of_node_put(), which leads to memory leaks if
    any of those errors occur.
    
    Add the missing of_node_put() in the error paths that require it.
    
    Cc: [email protected]
    Fixes: 57f2f8b4aa0c ("cpufreq: qcom: Refactor the driver to make it easier to extend")
    Signed-off-by: Javier Carrasco <[email protected]>
    Signed-off-by: Viresh Kumar <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>

cpufreq: qcom-nvmem: Simplify driver data allocation [+ + +]
Author: Stephan Gerhold <[email protected]>
Date:   Wed Oct 18 10:06:02 2023 +0200

    cpufreq: qcom-nvmem: Simplify driver data allocation
    
    [ Upstream commit 2a5d46c3ad6b0e62d2b04356ad999d504fb564e0 ]
    
    Simplify the allocation and cleanup of driver data by using devm
    together with a flexible array. Prepare for adding additional per-CPU
    data by defining a struct qcom_cpufreq_drv_cpu instead of storing the
    opp_tokens directly.
    
    Signed-off-by: Stephan Gerhold <[email protected]>
    Reviewed-by: Konrad Dybcio <[email protected]>
    Signed-off-by: Viresh Kumar <[email protected]>
    Stable-dep-of: d01c84b97f19 ("cpufreq: qcom-nvmem: fix memory leaks in probe error paths")
    Signed-off-by: Sasha Levin <[email protected]>

 
drm/i915/dp: Don't switch the LTTPR mode on an active link [+ + +]
Author: Imre Deak <[email protected]>
Date:   Mon Jul 8 22:00:25 2024 +0300

    drm/i915/dp: Don't switch the LTTPR mode on an active link
    
    [ Upstream commit 509580fad7323b6a5da27e8365cd488f3b57210e ]
    
    Switching to transparent mode leads to a loss of link synchronization,
    so prevent doing this on an active link. This happened at least on an
    Intel N100 system / DELL UD22 dock, the LTTPR residing either on the
    host or the dock. To fix the issue, keep the current mode on an active
    link, adjusting the LTTPR count accordingly (resetting it to 0 in
    transparent mode).
    
    v2: Adjust code comment during link training about reiniting the LTTPRs.
       (Ville)
    
    Fixes: 7b2a4ab8b0ef ("drm/i915: Switch to LTTPR transparent mode link training")
    Reported-and-tested-by: Gareth Yu <[email protected]>
    Closes: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10902
    Cc: <[email protected]> # v5.15+
    Cc: Ville Syrjälä <[email protected]>
    Reviewed-by: Ville Syrjälä <[email protected]>
    Reviewed-by: Ankit Nautiyal <[email protected]>
    Signed-off-by: Imre Deak <[email protected]>
    Link: https://patchwork.freedesktop.org/patch/msgid/[email protected]
    (cherry picked from commit 211ad49cf8ccfdc798a719b4d1e000d0a8a9e588)
    Signed-off-by: Tvrtko Ursulin <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>

 
drm/i915/hdcp: Fix HDCP2_STREAM_STATUS macro [+ + +]
Author: Suraj Kandpal <[email protected]>
Date:   Tue Jul 30 09:25:05 2024 +0530

    drm/i915/hdcp: Fix HDCP2_STREAM_STATUS macro
    
    [ Upstream commit 555069117390a5d581863bc797fb546bb4417c31 ]
    
    Fix HDCP2_STREAM_STATUS macro, it called pipe instead of port never
    threw a compile error as no one used it.
    
    --v2
    -Add Fixes [Jani]
    
    Fixes: d631b984cc90 ("drm/i915/hdcp: Add HDCP 2.2 stream register")
    Signed-off-by: Suraj Kandpal <[email protected]>
    Reviewed-by: Jani Nikula <[email protected]>
    Link: https://patchwork.freedesktop.org/patch/msgid/[email protected]
    (cherry picked from commit 73d7cd542bbd0a7c6881ea0df5255f190a1e7236)
    Signed-off-by: Joonas Lahtinen <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>

 
drm/i915: Fix possible int overflow in skl_ddi_calculate_wrpll() [+ + +]
Author: Nikita Zhandarovich <[email protected]>
Date:   Mon Jul 29 10:40:35 2024 -0700

    drm/i915: Fix possible int overflow in skl_ddi_calculate_wrpll()
    
    commit 5b511572660190db1dc8ba412efd0be0d3781ab6 upstream.
    
    On the off chance that clock value ends up being too high (by means
    of skl_ddi_calculate_wrpll() having been called with big enough
    value of crtc_state->port_clock * 1000), one possible consequence
    may be that the result will not be able to fit into signed int.
    
    Fix this issue by moving conversion of clock parameter from kHz to Hz
    into the body of skl_ddi_calculate_wrpll(), as well as casting the
    same parameter to u64 type while calculating the value for AFE clock.
    This both mitigates the overflow problem and avoids possible erroneous
    integer promotion mishaps.
    
    Found by Linux Verification Center (linuxtesting.org) with static
    analysis tool SVACE.
    
    Fixes: 82d354370189 ("drm/i915/skl: Implementation of SKL DPLL programming")
    Cc: [email protected]
    Signed-off-by: Nikita Zhandarovich <[email protected]>
    Reviewed-by: Jani Nikula <[email protected]>
    Signed-off-by: Jani Nikula <[email protected]>
    Link: https://patchwork.freedesktop.org/patch/msgid/[email protected]
    (cherry picked from commit 833cf12846aa19adf9b76bc79c40747726f3c0c1)
    Signed-off-by: Joonas Lahtinen <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>

 
drm/nouveau: prime: fix refcount underflow [+ + +]
Author: Danilo Krummrich <[email protected]>
Date:   Thu Jul 18 18:58:46 2024 +0200

    drm/nouveau: prime: fix refcount underflow
    
    [ Upstream commit a9bf3efc33f1fbf88787a277f7349459283c9b95 ]
    
    Calling nouveau_bo_ref() on a nouveau_bo without initializing it (and
    hence the backing ttm_bo) leads to a refcount underflow.
    
    Instead of calling nouveau_bo_ref() in the unwind path of
    drm_gem_object_init(), clean things up manually.
    
    Fixes: ab9ccb96a6e6 ("drm/nouveau: use prime helpers")
    Reviewed-by: Ben Skeggs <[email protected]>
    Reviewed-by: Christian König <[email protected]>
    Signed-off-by: Danilo Krummrich <[email protected]>
    Link: https://patchwork.freedesktop.org/patch/msgid/[email protected]
    (cherry picked from commit 1b93f3e89d03cfc576636e195466a0d728ad8de5)
    Signed-off-by: Danilo Krummrich <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>

 
drm/udl: Move connector to modesetting code [+ + +]
Author: Thomas Zimmermann <[email protected]>
Date:   Thu Oct 6 11:53:44 2022 +0200

    drm/udl: Move connector to modesetting code
    
    [ Upstream commit 0862cfd3e22f3f936927f2f7381c2519ba034c6e ]
    
    Move the connector next to the rest of the modesetting code. No
    functional changes.
    
    Signed-off-by: Thomas Zimmermann <[email protected]>
    Reviewed-by: Javier Martinez Canillas <[email protected]>
    Link: https://patchwork.freedesktop.org/patch/msgid/[email protected]
    Stable-dep-of: 5aed213c7c6c ("drm/udl: Remove DRM_CONNECTOR_POLL_HPD")
    Signed-off-by: Sasha Levin <[email protected]>

drm/udl: Remove DRM_CONNECTOR_POLL_HPD [+ + +]
Author: Thomas Zimmermann <[email protected]>
Date:   Fri May 10 17:47:08 2024 +0200

    drm/udl: Remove DRM_CONNECTOR_POLL_HPD
    
    [ Upstream commit 5aed213c7c6c4f5dcb1a3ef146f493f18fe703dc ]
    
    DisplayLink devices do not generate hotplug events. Remove the poll
    flag DRM_CONNECTOR_POLL_HPD, as it may not be specified together with
    DRM_CONNECTOR_POLL_CONNECT or DRM_CONNECTOR_POLL_DISCONNECT.
    
    Signed-off-by: Thomas Zimmermann <[email protected]>
    Fixes: afdfc4c6f55f ("drm/udl: Fixed problem with UDL adpater reconnection")
    Reviewed-by: Jani Nikula <[email protected]>
    Cc: Robert Tarasov <[email protected]>
    Cc: Alex Deucher <[email protected]>
    Cc: Dave Airlie <[email protected]>
    Cc: Sean Paul <[email protected]>
    Cc: Thomas Zimmermann <[email protected]>
    Cc: [email protected]
    Cc: <[email protected]> # v4.15+
    Link: https://patchwork.freedesktop.org/patch/msgid/[email protected]
    Signed-off-by: Sasha Levin <[email protected]>

drm/udl: Rename struct udl_drm_connector to struct udl_connector [+ + +]
Author: Thomas Zimmermann <[email protected]>
Date:   Thu Oct 6 11:53:40 2022 +0200

    drm/udl: Rename struct udl_drm_connector to struct udl_connector
    
    [ Upstream commit 59a811faa74f4326fe2d48d2b334c0ee95922628 ]
    
    Remove the _drm_ infix from struct udl_drm_connector and introduce a
    macro for upcasting from struct drm_connector. No functional changes.
    
    Signed-off-by: Thomas Zimmermann <[email protected]>
    Reviewed-by: Javier Martinez Canillas <[email protected]>
    Link: https://patchwork.freedesktop.org/patch/msgid/[email protected]
    Stable-dep-of: 5aed213c7c6c ("drm/udl: Remove DRM_CONNECTOR_POLL_HPD")
    Signed-off-by: Sasha Levin <[email protected]>

drm/udl: Test pixel limit in mode-config's mode-valid function [+ + +]
Author: Thomas Zimmermann <[email protected]>
Date:   Thu Oct 6 11:53:41 2022 +0200

    drm/udl: Test pixel limit in mode-config's mode-valid function
    
    [ Upstream commit c020f66013b6136a68a3a4ad74cc7af3b3310586 ]
    
    The sku_pixel_limit is a per-device property, similar to the amount
    of available video memory. Move the respective mode-valid test from
    the connector to the mode-config structure.
    
    Signed-off-by: Thomas Zimmermann <[email protected]>
    Reviewed-by: Javier Martinez Canillas <[email protected]>
    Link: https://patchwork.freedesktop.org/patch/msgid/[email protected]
    Stable-dep-of: 5aed213c7c6c ("drm/udl: Remove DRM_CONNECTOR_POLL_HPD")
    Signed-off-by: Sasha Levin <[email protected]>

drm/udl: Use USB timeout constant when reading EDID [+ + +]
Author: Thomas Zimmermann <[email protected]>
Date:   Thu Oct 6 11:53:42 2022 +0200

    drm/udl: Use USB timeout constant when reading EDID
    
    [ Upstream commit 2c1eafc40e53312864bf2fdccb55052dcbd9e8b2 ]
    
    Set the USB control-message timeout to the USB default of 5 seconds.
    Done for consistency with other uses of usb_control_msg() in udl and
    other drivers.
    
    Signed-off-by: Thomas Zimmermann <[email protected]>
    Reviewed-by: Javier Martinez Canillas <[email protected]>
    Link: https://patchwork.freedesktop.org/patch/msgid/[email protected]
    Stable-dep-of: 5aed213c7c6c ("drm/udl: Remove DRM_CONNECTOR_POLL_HPD")
    Signed-off-by: Sasha Levin <[email protected]>

drm/udl: Various improvements to the connector [+ + +]
Author: Thomas Zimmermann <[email protected]>
Date:   Thu Oct 6 11:53:43 2022 +0200

    drm/udl: Various improvements to the connector
    
    [ Upstream commit 43858eb41e0dde6e48565c13cdabac95b5d9df90 ]
    
    Add style fixes, better error handling and reporting, and minor
    clean-up changes to the connector code before moving the code to
    the rest of the modesetting pipeline.
    
    Signed-off-by: Thomas Zimmermann <[email protected]>
    Reviewed-by: Javier Martinez Canillas <[email protected]>
    Link: https://patchwork.freedesktop.org/patch/msgid/[email protected]
    Stable-dep-of: 5aed213c7c6c ("drm/udl: Remove DRM_CONNECTOR_POLL_HPD")
    Signed-off-by: Sasha Levin <[email protected]>

 
drm/vmwgfx: Fix a deadlock in dma buf fence polling [+ + +]
Author: Zack Rusin <[email protected]>
Date:   Mon Jul 22 14:41:13 2024 -0400

    drm/vmwgfx: Fix a deadlock in dma buf fence polling
    
    commit e58337100721f3cc0c7424a18730e4f39844934f upstream.
    
    Introduce a version of the fence ops that on release doesn't remove
    the fence from the pending list, and thus doesn't require a lock to
    fix poll->fence wait->fence unref deadlocks.
    
    vmwgfx overwrites the wait callback to iterate over the list of all
    fences and update their status, to do that it holds a lock to prevent
    the list modifcations from other threads. The fence destroy callback
    both deletes the fence and removes it from the list of pending
    fences, for which it holds a lock.
    
    dma buf polling cb unrefs a fence after it's been signaled: so the poll
    calls the wait, which signals the fences, which are being destroyed.
    The destruction tries to acquire the lock on the pending fences list
    which it can never get because it's held by the wait from which it
    was called.
    
    Old bug, but not a lot of userspace apps were using dma-buf polling
    interfaces. Fix those, in particular this fixes KDE stalls/deadlock.
    
    Signed-off-by: Zack Rusin <[email protected]>
    Fixes: 2298e804e96e ("drm/vmwgfx: rework to new fence interface, v2")
    Cc: Broadcom internal kernel review list <[email protected]>
    Cc: [email protected]
    Cc: <[email protected]> # v6.2+
    Reviewed-by: Maaz Mombasawala <[email protected]>
    Reviewed-by: Martin Krastev <[email protected]>
    Link: https://patchwork.freedesktop.org/patch/msgid/[email protected]
    Signed-off-by: Greg Kroah-Hartman <[email protected]>

drm/vmwgfx: Fix overlay when using Screen Targets [+ + +]
Author: Ian Forbes <[email protected]>
Date:   Fri Jul 19 11:36:27 2024 -0500

    drm/vmwgfx: Fix overlay when using Screen Targets
    
    [ Upstream commit cb372a505a994cb39aa75acfb8b3bcf94787cf94 ]
    
    This code was never updated to support Screen Targets.
    Fixes a bug where Xv playback displays a green screen instead of actual
    video contents when 3D acceleration is disabled in the guest.
    
    Fixes: c8261a961ece ("vmwgfx: Major KMS refactoring / cleanup in preparation of screen targets")
    Reported-by: Doug Brown <[email protected]>
    Closes: https://lore.kernel.org/all/[email protected]
    Signed-off-by: Ian Forbes <[email protected]>
    Tested-by: Doug Brown <[email protected]>
    Signed-off-by: Zack Rusin <[email protected]>
    Link: https://patchwork.freedesktop.org/patch/msgid/[email protected]
    Signed-off-by: Sasha Levin <[email protected]>

drm/vmwgfx: Trigger a modeset when the screen moves [+ + +]
Author: Ian Forbes <[email protected]>
Date:   Mon Jun 24 15:59:51 2024 -0500

    drm/vmwgfx: Trigger a modeset when the screen moves
    
    [ Upstream commit 75c3e8a26a35d4f3eee299b3cc7e465f166f4e2d ]
    
    When multi-monitor is cycled the X,Y position of the Screen Target will
    likely change but the resolution will not. We need to trigger a modeset
    when this occurs in order to recreate the Screen Target with the correct
    X,Y position.
    
    Fixes a bug where multiple displays are shown in a single scrollable
    host window rather than in 2+ windows on separate host displays.
    
    Fixes: 426826933109 ("drm/vmwgfx: Filter modes which exceed graphics memory")
    Signed-off-by: Ian Forbes <[email protected]>
    Signed-off-by: Zack Rusin <[email protected]>
    Link: https://patchwork.freedesktop.org/patch/msgid/[email protected]
    Signed-off-by: Sasha Levin <[email protected]>

 
ext4: check the extent status again before inserting delalloc block [+ + +]
Author: Zhang Yi <[email protected]>
Date:   Fri May 17 20:39:57 2024 +0800

    ext4: check the extent status again before inserting delalloc block
    
    [ Upstream commit 0ea6560abb3bac1ffcfa4bf6b2c4d344fdc27b3c ]
    
    ext4_da_map_blocks looks up for any extent entry in the extent status
    tree (w/o i_data_sem) and then the looks up for any ondisk extent
    mapping (with i_data_sem in read mode).
    
    If it finds a hole in the extent status tree or if it couldn't find any
    entry at all, it then takes the i_data_sem in write mode to add a da
    entry into the extent status tree. This can actually race with page
    mkwrite & fallocate path.
    
    Note that this is ok between
    1. ext4 buffered-write path v/s ext4_page_mkwrite(), because of the
       folio lock
    2. ext4 buffered write path v/s ext4 fallocate because of the inode
       lock.
    
    But this can race between ext4_page_mkwrite() & ext4 fallocate path
    
    ext4_page_mkwrite()             ext4_fallocate()
     block_page_mkwrite()
      ext4_da_map_blocks()
       //find hole in extent status tree
                                     ext4_alloc_file_blocks()
                                      ext4_map_blocks()
                                       //allocate block and unwritten extent
       ext4_insert_delayed_block()
        ext4_da_reserve_space()
         //reserve one more block
        ext4_es_insert_delayed_block()
         //drop unwritten extent and add delayed extent by mistake
    
    Then, the delalloc extent is wrong until writeback and the extra
    reserved block can't be released any more and it triggers below warning:
    
     EXT4-fs (pmem2): Inode 13 (00000000bbbd4d23): i_reserved_data_blocks(1) not cleared!
    
    Fix the problem by looking up extent status tree again while the
    i_data_sem is held in write mode. If it still can't find any entry, then
    we insert a new da entry into the extent status tree.
    
    Cc: [email protected]
    Signed-off-by: Zhang Yi <[email protected]>
    Reviewed-by: Jan Kara <[email protected]>
    Link: https://patch.msgid.link/[email protected]
    Signed-off-by: Theodore Ts'o <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>

ext4: convert to exclusive lock while inserting delalloc extents [+ + +]
Author: Zhang Yi <[email protected]>
Date:   Sat Jan 27 09:58:01 2024 +0800

    ext4: convert to exclusive lock while inserting delalloc extents
    
    [ Upstream commit acf795dc161f3cf481db20f05db4250714e375e5 ]
    
    ext4_da_map_blocks() only hold i_data_sem in shared mode and i_rwsem
    when inserting delalloc extents, it could be raced by another querying
    path of ext4_map_blocks() without i_rwsem, .e.g buffered read path.
    Suppose we buffered read a file containing just a hole, and without any
    cached extents tree, then it is raced by another delayed buffered write
    to the same area or the near area belongs to the same hole, and the new
    delalloc extent could be overwritten to a hole extent.
    
     pread()                           pwrite()
      filemap_read_folio()
       ext4_mpage_readpages()
        ext4_map_blocks()
         down_read(i_data_sem)
         ext4_ext_determine_hole()
         //find hole
         ext4_ext_put_gap_in_cache()
          ext4_es_find_extent_range()
          //no delalloc extent
                                        ext4_da_map_blocks()
                                         down_read(i_data_sem)
                                         ext4_insert_delayed_block()
                                         //insert delalloc extent
          ext4_es_insert_extent()
          //overwrite delalloc extent to hole
    
    This race could lead to inconsistent delalloc extents tree and
    incorrect reserved space counter. Fix this by converting to hold
    i_data_sem in exclusive mode when adding a new delalloc extent in
    ext4_da_map_blocks().
    
    Cc: [email protected]
    Signed-off-by: Zhang Yi <[email protected]>
    Suggested-by: Jan Kara <[email protected]>
    Reviewed-by: Jan Kara <[email protected]>
    Link: https://lore.kernel.org/r/[email protected]
    Signed-off-by: Theodore Ts'o <[email protected]>
    Stable-dep-of: 0ea6560abb3b ("ext4: check the extent status again before inserting delalloc block")
    Signed-off-by: Sasha Levin <[email protected]>

ext4: factor out a common helper to query extent map [+ + +]
Author: Zhang Yi <[email protected]>
Date:   Fri May 17 20:39:56 2024 +0800

    ext4: factor out a common helper to query extent map
    
    [ Upstream commit 8e4e5cdf2fdeb99445a468b6b6436ad79b9ecb30 ]
    
    Factor out a new common helper ext4_map_query_blocks() from the
    ext4_da_map_blocks(), it query and return the extent map status on the
    inode's extent path, no logic changes.
    
    Signed-off-by: Zhang Yi <[email protected]>
    Reviewed-by: Jan Kara <[email protected]>
    Reviewed-by: Ritesh Harjani (IBM) <[email protected]>
    Link: https://patch.msgid.link/[email protected]
    Signed-off-by: Theodore Ts'o <[email protected]>
    Stable-dep-of: 0ea6560abb3b ("ext4: check the extent status again before inserting delalloc block")
    Signed-off-by: Sasha Levin <[email protected]>

ext4: make ext4_es_insert_extent() return void [+ + +]
Author: Baokun Li <[email protected]>
Date:   Mon Apr 24 11:38:45 2023 +0800

    ext4: make ext4_es_insert_extent() return void
    
    [ Upstream commit 6c120399cde6b1b5cf65ce403765c579fb3d3e50 ]
    
    Now ext4_es_insert_extent() never return error, so make it return void.
    
    Signed-off-by: Baokun Li <[email protected]>
    Reviewed-by: Jan Kara <[email protected]>
    Link: https://lore.kernel.org/r/[email protected]
    Signed-off-by: Theodore Ts'o <[email protected]>
    Stable-dep-of: 0ea6560abb3b ("ext4: check the extent status again before inserting delalloc block")
    Signed-off-by: Sasha Levin <[email protected]>

ext4: refactor ext4_da_map_blocks() [+ + +]
Author: Zhang Yi <[email protected]>
Date:   Sat Jan 27 09:58:00 2024 +0800

    ext4: refactor ext4_da_map_blocks()
    
    [ Upstream commit 3fcc2b887a1ba4c1f45319cd8c54daa263ecbc36 ]
    
    Refactor and cleanup ext4_da_map_blocks(), reduce some unnecessary
    parameters and branches, no logic changes.
    
    Signed-off-by: Zhang Yi <[email protected]>
    Reviewed-by: Jan Kara <[email protected]>
    Link: https://lore.kernel.org/r/[email protected]
    Signed-off-by: Theodore Ts'o <[email protected]>
    Stable-dep-of: 0ea6560abb3b ("ext4: check the extent status again before inserting delalloc block")
    Signed-off-by: Sasha Levin <[email protected]>

 
f2fs: assign CURSEG_ALL_DATA_ATGC if blkaddr is valid [+ + +]
Author: Jaegeuk Kim <[email protected]>
Date:   Tue Jun 18 02:15:38 2024 +0000

    f2fs: assign CURSEG_ALL_DATA_ATGC if blkaddr is valid
    
    [ Upstream commit 8cb1f4080dd91c6e6b01dbea013a3f42341cb6a1 ]
    
    mkdir /mnt/test/comp
    f2fs_io setflags compression /mnt/test/comp
    dd if=/dev/zero of=/mnt/test/comp/testfile bs=16k count=1
    truncate --size 13 /mnt/test/comp/testfile
    
    In the above scenario, we can get a BUG_ON.
     kernel BUG at fs/f2fs/segment.c:3589!
     Call Trace:
      do_write_page+0x78/0x390 [f2fs]
      f2fs_outplace_write_data+0x62/0xb0 [f2fs]
      f2fs_do_write_data_page+0x275/0x740 [f2fs]
      f2fs_write_single_data_page+0x1dc/0x8f0 [f2fs]
      f2fs_write_multi_pages+0x1e5/0xae0 [f2fs]
      f2fs_write_cache_pages+0xab1/0xc60 [f2fs]
      f2fs_write_data_pages+0x2d8/0x330 [f2fs]
      do_writepages+0xcf/0x270
      __writeback_single_inode+0x44/0x350
      writeback_sb_inodes+0x242/0x530
      __writeback_inodes_wb+0x54/0xf0
      wb_writeback+0x192/0x310
      wb_workfn+0x30d/0x400
    
    The reason is we gave CURSEG_ALL_DATA_ATGC to COMPR_ADDR where the
    page was set the gcing flag by set_cluster_dirty().
    
    Cc: [email protected]
    Fixes: 4961acdd65c9 ("f2fs: fix to tag gcing flag on page during block migration")
    Reviewed-by: Chao Yu <[email protected]>
    Tested-by: Will McVicker <[email protected]>
    Signed-off-by: Jaegeuk Kim <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>

f2fs: fix to avoid use SSR allocate when do defragment [+ + +]
Author: Zhiguo Niu <[email protected]>
Date:   Wed May 29 17:47:00 2024 +0800

    f2fs: fix to avoid use SSR allocate when do defragment
    
    [ Upstream commit 21327a042dd94bc73181d7300e688699cb1f467e ]
    
    SSR allocate mode will be used when doing file defragment
    if ATGC is working at the same time, that is because
    set_page_private_gcing may make CURSEG_ALL_DATA_ATGC segment
    type got in f2fs_allocate_data_block when defragment page
    is writeback, which may cause file fragmentation is worse.
    
    A file with 2 fragmentations is changed as following after defragment:
    
    ----------------file info-------------------
    sensorsdata :
    --------------------------------------------
    dev       [254:48]
    ino       [0x    3029 : 12329]
    mode      [0x    81b0 : 33200]
    nlink     [0x       1 : 1]
    uid       [0x    27e6 : 10214]
    gid       [0x    27e6 : 10214]
    size      [0x  242000 : 2367488]
    blksize   [0x    1000 : 4096]
    blocks    [0x    1210 : 4624]
    --------------------------------------------
    
    file_pos   start_blk     end_blk        blks
           0    11361121    11361207          87
      356352    11361215    11361216           2
      364544    11361218    11361218           1
      368640    11361220    11361221           2
      376832    11361224    11361225           2
      385024    11361227    11361238          12
      434176    11361240    11361252          13
      487424    11361254    11361254           1
      491520    11361271    11361279           9
      528384     3681794     3681795           2
      536576     3681797     3681797           1
      540672     3681799     3681799           1
      544768     3681803     3681803           1
      548864     3681805     3681805           1
      552960     3681807     3681807           1
      557056     3681809     3681809           1
    
    Signed-off-by: Zhiguo Niu <[email protected]>
    Reviewed-by: Chao Yu <[email protected]>
    Signed-off-by: Jaegeuk Kim <[email protected]>
    Stable-dep-of: 8cb1f4080dd9 ("f2fs: assign CURSEG_ALL_DATA_ATGC if blkaddr is valid")
    Signed-off-by: Sasha Levin <[email protected]>

 
HID: amd_sfh: Move sensor discovery before HID device initialization [+ + +]
Author: Basavaraj Natikar <[email protected]>
Date:   Thu Jul 18 16:46:16 2024 +0530

    HID: amd_sfh: Move sensor discovery before HID device initialization
    
    [ Upstream commit 8031b001da700474c11d28629581480b12a0d8d4 ]
    
    Sensors discovery is independent of HID device initialization. If sensor
    discovery fails after HID initialization, then the HID device needs to be
    deinitialized. Therefore, sensors discovery should be moved before HID
    device initialization.
    
    Fixes: 7bcfdab3f0c6 ("HID: amd_sfh: if no sensors are enabled, clean up")
    Tested-by: Aurinko <[email protected]>
    Signed-off-by: Basavaraj Natikar <[email protected]>
    Link: https://patch.msgid.link/[email protected]
    Signed-off-by: Benjamin Tissoires <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>

HID: amd_sfh: Remove duplicate cleanup [+ + +]
Author: Basavaraj Natikar <[email protected]>
Date:   Tue May 9 12:28:54 2023 +0530

    HID: amd_sfh: Remove duplicate cleanup
    
    [ Upstream commit e295709054d59e35be44794dd125efee528ccceb ]
    
    A number of duplicate cleanups are performed that are not necessary. As a
    result, remove duplicate cleanups and use common cleanup.
    
    Signed-off-by: Basavaraj Natikar <[email protected]>
    Signed-off-by: Jiri Kosina <[email protected]>
    Stable-dep-of: 8031b001da70 ("HID: amd_sfh: Move sensor discovery before HID device initialization")
    Signed-off-by: Sasha Levin <[email protected]>

HID: amd_sfh: Split sensor and HID initialization [+ + +]
Author: Basavaraj Natikar <[email protected]>
Date:   Tue May 9 12:28:55 2023 +0530

    HID: amd_sfh: Split sensor and HID initialization
    
    [ Upstream commit 5ca505c6b0259606361d8f95b0811b783d4e78f7 ]
    
    Sensors are enabled independently of HID device initialization. Sensor
    initialization should be kept separate in this case, while HID devices
    should be initialized according to the sensor state. Hence split sensor
    initialization and HID initialization into separate blocks.
    
    Signed-off-by: Basavaraj Natikar <[email protected]>
    Signed-off-by: Jiri Kosina <[email protected]>
    Stable-dep-of: 8031b001da70 ("HID: amd_sfh: Move sensor discovery before HID device initialization")
    Signed-off-by: Sasha Levin <[email protected]>

HID: wacom: Modify pen IDs [+ + +]
Author: Tatsunosuke Tobita <[email protected]>
Date:   Tue Jul 9 14:57:28 2024 +0900

    HID: wacom: Modify pen IDs
    
    commit f0d17d696dfce77c9abc830e4ac2d677890a2dad upstream.
    
    The pen ID, 0x80842, was not the correct ID for wacom driver to
    treat. The ID was corrected to 0x8842.
    Also, 0x4200 was not the expected ID used on any Wacom device.
    Therefore, 0x4200 was removed.
    
    Signed-off-by: Tatsunosuke Tobita <[email protected]>
    Signed-off-by: Tatsunosuke Tobita <[email protected]>
    Fixes: bfdc750c4cb2 ("HID: wacom: add three styli to wacom_intuos_get_tool_type")
    Cc: [email protected] #6.2
    Reviewed-by: Ping Cheng <[email protected]>
    Link: https://patch.msgid.link/[email protected]
    Signed-off-by: Benjamin Tissoires <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>

 
ice: add missing WRITE_ONCE when clearing ice_rx_ring::xdp_prog [+ + +]
Author: Maciej Fijalkowski <[email protected]>
Date:   Fri Jul 26 20:17:15 2024 +0200

    ice: add missing WRITE_ONCE when clearing ice_rx_ring::xdp_prog
    
    [ Upstream commit 6044ca26210ba72b3dcc649fae1cbedd9e6ab018 ]
    
    It is read by data path and modified from process context on remote cpu
    so it is needed to use WRITE_ONCE to clear the pointer.
    
    Fixes: efc2214b6047 ("ice: Add support for XDP")
    Reviewed-by: Shannon Nelson <[email protected]>
    Tested-by: Chandan Kumar Rout <[email protected]> (A Contingent Worker at Intel)
    Signed-off-by: Maciej Fijalkowski <[email protected]>
    Signed-off-by: Tony Nguyen <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>

ice: don't busy wait for Rx queue disable in ice_qp_dis() [+ + +]
Author: Maciej Fijalkowski <[email protected]>
Date:   Fri Jul 26 20:17:10 2024 +0200

    ice: don't busy wait for Rx queue disable in ice_qp_dis()
    
    [ Upstream commit 1ff72a2f67791cd4ddad19ed830445f57b30e992 ]
    
    When ice driver is spammed with multiple xdpsock instances and flow
    control is enabled, there are cases when Rx queue gets stuck and unable
    to reflect the disable state in QRX_CTRL register. Similar issue has
    previously been addressed in commit 13a6233b033f ("ice: Add support to
    enable/disable all Rx queues before waiting").
    
    To workaround this, let us simply not wait for a disabled state as later
    patch will make sure that regardless of the encountered error in the
    process of disabling a queue pair, the Rx queue will be enabled.
    
    Fixes: 2d4238f55697 ("ice: Add support for AF_XDP")
    Reviewed-by: Shannon Nelson <[email protected]>
    Tested-by: Chandan Kumar Rout <[email protected]> (A Contingent Worker at Intel)
    Signed-off-by: Maciej Fijalkowski <[email protected]>
    Signed-off-by: Tony Nguyen <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>

ice: replace synchronize_rcu with synchronize_net [+ + +]
Author: Maciej Fijalkowski <[email protected]>
Date:   Fri Jul 26 20:17:11 2024 +0200

    ice: replace synchronize_rcu with synchronize_net
    
    [ Upstream commit 405d9999aa0b4ae467ef391d1d9c7e0d30ad0841 ]
    
    Given that ice_qp_dis() is called under rtnl_lock, synchronize_net() can
    be called instead of synchronize_rcu() so that XDP rings can finish its
    job in a faster way. Also let us do this as earlier in XSK queue disable
    flow.
    
    Additionally, turn off regular Tx queue before disabling irqs and NAPI.
    
    Fixes: 2d4238f55697 ("ice: Add support for AF_XDP")
    Reviewed-by: Shannon Nelson <[email protected]>
    Tested-by: Chandan Kumar Rout <[email protected]> (A Contingent Worker at Intel)
    Signed-off-by: Maciej Fijalkowski <[email protected]>
    Signed-off-by: Tony Nguyen <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>

ice: respect netif readiness in AF_XDP ZC related ndo's [+ + +]
Author: Michal Kubiak <[email protected]>
Date:   Fri Jul 26 20:17:09 2024 +0200

    ice: respect netif readiness in AF_XDP ZC related ndo's
    
    [ Upstream commit ec145a18687fec8dd97eeb4f30057fa4debef577 ]
    
    Address a scenario in which XSK ZC Tx produces descriptors to XDP Tx
    ring when link is either not yet fully initialized or process of
    stopping the netdev has already started. To avoid this, add checks
    against carrier readiness in ice_xsk_wakeup() and in ice_xmit_zc().
    One could argue that bailing out early in ice_xsk_wakeup() would be
    sufficient but given the fact that we produce Tx descriptors on behalf
    of NAPI that is triggered for Rx traffic, the latter is also needed.
    
    Bringing link up is an asynchronous event executed within
    ice_service_task so even though interface has been brought up there is
    still a time frame where link is not yet ok.
    
    Without this patch, when AF_XDP ZC Tx is used simultaneously with stack
    Tx, Tx timeouts occur after going through link flap (admin brings
    interface down then up again). HW seem to be unable to transmit
    descriptor to the wire after HW tail register bump which in turn causes
    bit __QUEUE_STATE_STACK_XOFF to be set forever as
    netdev_tx_completed_queue() sees no cleaned bytes on the input.
    
    Fixes: 126cdfe1007a ("ice: xsk: Improve AF_XDP ZC Tx and use batching API")
    Fixes: 2d4238f55697 ("ice: Add support for AF_XDP")
    Reviewed-by: Shannon Nelson <[email protected]>
    Tested-by: Chandan Kumar Rout <[email protected]> (A Contingent Worker at Intel)
    Signed-off-by: Michal Kubiak <[email protected]>
    Signed-off-by: Maciej Fijalkowski <[email protected]>
    Signed-off-by: Tony Nguyen <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>

 
ipv6: fix ndisc_is_useropt() handling for PIO [+ + +]
Author: Maciej Żenczykowski <[email protected]>
Date:   Mon Jul 29 17:17:48 2024 -0700

    ipv6: fix ndisc_is_useropt() handling for PIO
    
    [ Upstream commit a46c68debf3be3a477a69ccbf0a1d050df841676 ]
    
    The current logic only works if the PIO is between two
    other ND user options.  This fixes it so that the PIO
    can also be either before or after other ND user options
    (for example the first or last option in the RA).
    
    side note: there's actually Android tests verifying
    a portion of the old broken behaviour, so:
      https://android-review.googlesource.com/c/kernel/tests/+/3196704
    fixes those up.
    
    Cc: Jen Linkova <[email protected]>
    Cc: Lorenzo Colitti <[email protected]>
    Cc: Patrick Rohr <[email protected]>
    Cc: David Ahern <[email protected]>
    Cc: YOSHIFUJI Hideaki / 吉藤英明 <[email protected]>
    Cc: Jakub Kicinski <[email protected]>
    Signed-off-by: Maciej Żenczykowski <[email protected]>
    Fixes: 048c796beb6e ("ipv6: adjust ndisc_is_useropt() to also return true for PIO")
    Link: https://patch.msgid.link/[email protected]
    Signed-off-by: Paolo Abeni <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>

 
irqdomain: Fixed unbalanced fwnode get and put [+ + +]
Author: Herve Codina <[email protected]>
Date:   Fri Jun 14 19:32:04 2024 +0200

    irqdomain: Fixed unbalanced fwnode get and put
    
    [ Upstream commit 6ce3e98184b625d2870991880bf9586ded7ea7f9 ]
    
    fwnode_handle_get(fwnode) is called when a domain is created with fwnode
    passed as a function parameter. fwnode_handle_put(domain->fwnode) is called
    when the domain is destroyed but during the creation a path exists that
    does not set domain->fwnode.
    
    If this path is taken, the fwnode get will never be put.
    
    To avoid the unbalanced get and put, set domain->fwnode unconditionally.
    
    Fixes: d59f6617eef0 ("genirq: Allow fwnode to carry name information only")
    Signed-off-by: Herve Codina <[email protected]>
    Signed-off-by: Thomas Gleixner <[email protected]>
    Cc: [email protected]
    Link: https://lore.kernel.org/r/[email protected]
    Signed-off-by: Sasha Levin <[email protected]>

 
leds: trigger: Call synchronize_rcu() before calling trig->activate() [+ + +]
Author: Hans de Goede <[email protected]>
Date:   Fri May 31 14:01:24 2024 +0200

    leds: trigger: Call synchronize_rcu() before calling trig->activate()
    
    [ Upstream commit b1bbd20f35e19774ea01989320495e09ac44fba3 ]
    
    Some triggers call led_trigger_event() from their activate() callback
    to initialize the brightness of the LED for which the trigger is being
    activated.
    
    In order for the LED's initial state to be set correctly this requires that
    the led_trigger_event() call uses the new version of trigger->led_cdevs,
    which has the new LED.
    
    AFAICT led_trigger_event() will always use the new version when it is
    running on the same CPU as where the list_add_tail_rcu() call was made,
    which is why the missing synchronize_rcu() has not lead to bug reports.
    But if activate() is pre-empted, sleeps or uses a worker then
    the led_trigger_event() call may run on another CPU which may still use
    the old trigger->led_cdevs list.
    
    Add a synchronize_rcu() call to ensure that any led_trigger_event() calls
    done from activate() always use the new list.
    
    Triggers using led_trigger_event() from their activate() callback are:
    net/bluetooth/leds.c, net/rfkill/core.c and drivers/tty/vt/keyboard.c.
    
    Signed-off-by: Hans de Goede <[email protected]>
    Link: https://lore.kernel.org/r/[email protected]
    Signed-off-by: Lee Jones <[email protected]>
    Stable-dep-of: ab477b766edd ("leds: triggers: Flush pending brightness before activating trigger")
    Signed-off-by: Sasha Levin <[email protected]>

leds: trigger: Remove unused function led_trigger_rename_static() [+ + +]
Author: Heiner Kallweit <[email protected]>
Date:   Fri Dec 8 23:56:41 2023 +0100

    leds: trigger: Remove unused function led_trigger_rename_static()
    
    [ Upstream commit c82a1662d4548c454de5343b88f69b9fc82266b3 ]
    
    This function was added with a8df7b1ab70b ("leds: add led_trigger_rename
    function") 11 yrs ago, but it has no users. So remove it.
    
    Signed-off-by: Heiner Kallweit <[email protected]>
    Link: https://lore.kernel.org/r/[email protected]
    Signed-off-by: Lee Jones <[email protected]>
    Stable-dep-of: ab477b766edd ("leds: triggers: Flush pending brightness before activating trigger")
    Signed-off-by: Sasha Levin <[email protected]>

leds: trigger: Store brightness set by led_trigger_event() [+ + +]
Author: Heiner Kallweit <[email protected]>
Date:   Mon Mar 4 21:57:30 2024 +0100

    leds: trigger: Store brightness set by led_trigger_event()
    
    [ Upstream commit 822c91e72eac568ed8d83765634f00decb45666c ]
    
    If a simple trigger is assigned to a LED, then the LED may be off until
    the next led_trigger_event() call. This may be an issue for simple
    triggers with rare led_trigger_event() calls, e.g. power supply
    charging indicators (drivers/power/supply/power_supply_leds.c).
    Therefore persist the brightness value of the last led_trigger_event()
    call and use this value if the trigger is assigned to a LED.
    In addition add a getter for the trigger brightness value.
    
    Signed-off-by: Heiner Kallweit <[email protected]>
    Reviewed-by: Takashi Iwai <[email protected]>
    Link: https://lore.kernel.org/r/[email protected]
    Signed-off-by: Lee Jones <[email protected]>
    Stable-dep-of: ab477b766edd ("leds: triggers: Flush pending brightness before activating trigger")
    Signed-off-by: Sasha Levin <[email protected]>

leds: triggers: Flush pending brightness before activating trigger [+ + +]
Author: Thomas Weißschuh <[email protected]>
Date:   Thu Jun 13 17:24:51 2024 +0200

    leds: triggers: Flush pending brightness before activating trigger
    
    [ Upstream commit ab477b766edd3bfb6321a6e3df4c790612613fae ]
    
    The race fixed in timer_trig_activate() between a blocking
    set_brightness() call and trigger->activate() can affect any trigger.
    So move the call to flush_work() into led_trigger_set() where it can
    avoid the race for all triggers.
    
    Fixes: 0db37915d912 ("leds: avoid races with workqueue")
    Fixes: 8c0f693c6eff ("leds: avoid flush_work in atomic context")
    Cc: [email protected]
    Tested-by: Dustin L. Howett <[email protected]>
    Signed-off-by: Thomas Weißschuh <[email protected]>
    Link: https://lore.kernel.org/r/[email protected]
    Signed-off-by: Lee Jones <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>

 
Linux: Linux 6.1.104 [+ + +]
Author: Greg Kroah-Hartman <[email protected]>
Date:   Sun Aug 11 12:36:02 2024 +0200

    Linux 6.1.104
    
    Link: https://lore.kernel.org/r/[email protected]
    Tested-by: Pavel Machek (CIP) <[email protected]>
    Tested-by: Shuah Khan <[email protected]>
    Link: https://lore.kernel.org/r/[email protected]
    Tested-by: Miguel Ojeda <[email protected]>
    Tested-by: ChromeOS CQ Test <[email protected]>
    Tested-by: Pavel Machek (CIP) <[email protected]>
    Tested-by: Linux Kernel Functional Testing <[email protected]>
    Tested-by: Peter Schneider <[email protected]>
    Tested-by: Jon Hunter <[email protected]>
    Tested-by: kernelci.org bot <[email protected]>
    Tested-by: Florian Fainelli <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>

 
MIPS: dts: loongson: Fix liointc IRQ polarity [+ + +]
Author: Jiaxun Yang <[email protected]>
Date:   Fri Jun 14 16:40:10 2024 +0100

    MIPS: dts: loongson: Fix liointc IRQ polarity
    
    [ Upstream commit dbb69b9d6234aad23b3ecd33e5bc8a8ae1485b7d ]
    
    All internal liointc interrupts are high level triggered.
    
    Fixes: b1a792601f26 ("MIPS: Loongson64: DeviceTree for Loongson-2K1000")
    Cc: [email protected]
    Signed-off-by: Jiaxun Yang <[email protected]>
    Signed-off-by: Thomas Bogendoerfer <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>

MIPS: dts: loongson: Fix ls2k1000-rtc interrupt [+ + +]
Author: Jiaxun Yang <[email protected]>
Date:   Fri Jun 14 16:40:11 2024 +0100

    MIPS: dts: loongson: Fix ls2k1000-rtc interrupt
    
    [ Upstream commit f70fd92df7529e7283e02a6c3a2510075f13ba30 ]
    
    The correct interrupt line for RTC is line 8 on liointc1.
    
    Fixes: e47084e116fc ("MIPS: Loongson64: DTS: Add RTC support to Loongson-2K1000")
    Cc: [email protected]
    Signed-off-by: Jiaxun Yang <[email protected]>
    Signed-off-by: Thomas Bogendoerfer <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>

MIPS: Loongson64: DTS: Add RTC support to Loongson-2K1000 [+ + +]
Author: Binbin Zhou <[email protected]>
Date:   Fri Jun 2 17:50:50 2023 +0800

    MIPS: Loongson64: DTS: Add RTC support to Loongson-2K1000
    
    [ Upstream commit e47084e116fccaa43644360d7c0b997979abce3e ]
    
    The module is now supported, enable it.
    
    Acked-by: Jiaxun Yang <[email protected]>
    Signed-off-by: Binbin Zhou <[email protected]>
    Signed-off-by: WANG Xuerui <[email protected]>
    Signed-off-by: Thomas Bogendoerfer <[email protected]>
    Stable-dep-of: dbb69b9d6234 ("MIPS: dts: loongson: Fix liointc IRQ polarity")
    Signed-off-by: Sasha Levin <[email protected]>

MIPS: Loongson64: DTS: Fix PCIe port nodes for ls7a [+ + +]
Author: Jiaxun Yang <[email protected]>
Date:   Tue May 7 19:51:22 2024 +0100

    MIPS: Loongson64: DTS: Fix PCIe port nodes for ls7a
    
    [ Upstream commit d89a415ff8d5e0aad4963f2d8ebb0f9e8110b7fa ]
    
    Add various required properties to silent warnings:
    
    arch/mips/boot/dts/loongson/loongson64-2k1000.dtsi:116.16-297.5: Warning (interrupt_provider): /bus@10000000/pci@1a000000: '#interrupt-cells' found, but node is not an interrupt provider
    arch/mips/boot/dts/loongson/loongson64_2core_2k1000.dtb: Warning (interrupt_map): Failed prerequisite 'interrupt_provider'
    
    Signed-off-by: Jiaxun Yang <[email protected]>
    Signed-off-by: Thomas Bogendoerfer <[email protected]>
    Stable-dep-of: dbb69b9d6234 ("MIPS: dts: loongson: Fix liointc IRQ polarity")
    Signed-off-by: Sasha Levin <[email protected]>

 
mm/page_alloc: fix pcp->count race between drain_pages_zone() vs __rmqueue_pcplist() [+ + +]
Author: Li Zhijian <[email protected]>
Date:   Tue Jul 23 14:44:28 2024 +0800

    mm/page_alloc: fix pcp->count race between drain_pages_zone() vs __rmqueue_pcplist()
    
    [ Upstream commit 66eca1021a42856d6af2a9802c99e160278aed91 ]
    
    It's expected that no page should be left in pcp_list after calling
    zone_pcp_disable() in offline_pages().  Previously, it's observed that
    offline_pages() gets stuck [1] due to some pages remaining in pcp_list.
    
    Cause:
    There is a race condition between drain_pages_zone() and __rmqueue_pcplist()
    involving the pcp->count variable. See below scenario:
    
             CPU0                              CPU1
        ----------------                    ---------------
                                          spin_lock(&pcp->lock);
                                          __rmqueue_pcplist() {
    zone_pcp_disable() {
                                            /* list is empty */
                                            if (list_empty(list)) {
                                              /* add pages to pcp_list */
                                              alloced = rmqueue_bulk()
      mutex_lock(&pcp_batch_high_lock)
      ...
      __drain_all_pages() {
        drain_pages_zone() {
          /* read pcp->count, it's 0 here */
          count = READ_ONCE(pcp->count)
          /* 0 means nothing to drain */
                                              /* update pcp->count */
                                              pcp->count += alloced << order;
          ...
                                          ...
                                          spin_unlock(&pcp->lock);
    
    In this case, after calling zone_pcp_disable() though, there are still some
    pages in pcp_list. And these pages in pcp_list are neither movable nor
    isolated, offline_pages() gets stuck as a result.
    
    Solution:
    Expand the scope of the pcp->lock to also protect pcp->count in
    drain_pages_zone(), to ensure no pages are left in the pcp list after
    zone_pcp_disable()
    
    [1] https://lore.kernel.org/linux-mm/[email protected]/
    
    Link: https://lkml.kernel.org/r/[email protected]
    Fixes: 4b23a68f9536 ("mm/page_alloc: protect PCP lists with a spinlock")
    Signed-off-by: Li Zhijian <[email protected]>
    Reported-by: Yao Xingtao <[email protected]>
    Reviewed-by: Vlastimil Babka <[email protected]>
    Cc: David Hildenbrand <[email protected]>
    Cc: <[email protected]>
    Signed-off-by: Andrew Morton <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>

 
mm: page_alloc: control latency caused by zone PCP draining [+ + +]
Author: Lucas Stach <[email protected]>
Date:   Mon Mar 18 21:07:36 2024 +0100

    mm: page_alloc: control latency caused by zone PCP draining
    
    [ Upstream commit 55f77df7d715110299f12c27f4365bd6332d1adb ]
    
    Patch series "mm/treewide: Remove pXd_huge() API", v2.
    
    In previous work [1], we removed the pXd_large() API, which is arch
    specific.  This patchset further removes the hugetlb pXd_huge() API.
    
    Hugetlb was never special on creating huge mappings when compared with
    other huge mappings.  Having a standalone API just to detect such pgtable
    entries is more or less redundant, especially after the pXd_leaf() API set
    is introduced with/without CONFIG_HUGETLB_PAGE.
    
    When looking at this problem, a few issues are also exposed that we don't
    have a clear definition of the *_huge() variance API.  This patchset
    started by cleaning these issues first, then replace all *_huge() users to
    use *_leaf(), then drop all *_huge() code.
    
    On x86/sparc, swap entries will be reported "true" in pXd_huge(), while
    for all the rest archs they're reported "false" instead.  This part is
    done in patch 1-5, in which I suspect patch 1 can be seen as a bug fix,
    but I'll leave that to hmm experts to decide.
    
    Besides, there are three archs (arm, arm64, powerpc) that have slightly
    different definitions between the *_huge() v.s.  *_leaf() variances.  I
    tackled them separately so that it'll be easier for arch experts to chim
    in when necessary.  This part is done in patch 6-9.
    
    The final patches 10-14 do the rest on the final removal, since *_leaf()
    will be the ultimate API in the future, and we seem to have quite some
    confusions on how *_huge() APIs can be defined, provide a rich comment for
    *_leaf() API set to define them properly to avoid future misuse, and
    hopefully that'll also help new archs to start support huge mappings and
    avoid traps (like either swap entries, or PROT_NONE entry checks).
    
    [1] https://lore.kernel.org/r/[email protected]
    
    This patch (of 14):
    
    When the complete PCP is drained a much larger number of pages than the
    usual batch size might be freed at once, causing large IRQ and preemption
    latency spikes, as they are all freed while holding the pcp and zone
    spinlocks.
    
    To avoid those latency spikes, limit the number of pages freed in a single
    bulk operation to common batch limits.
    
    Link: https://lkml.kernel.org/r/[email protected]
    Link: https://lkml.kernel.org/r/[email protected]
    Signed-off-by: Lucas Stach <[email protected]>
    Signed-off-by: Peter Xu <[email protected]>
    Cc: Christophe Leroy <[email protected]>
    Cc: Jason Gunthorpe <[email protected]>
    Cc: "Matthew Wilcox (Oracle)" <[email protected]>
    Cc: Mike Rapoport (IBM) <[email protected]>
    Cc: Muchun Song <[email protected]>
    Cc: Alistair Popple <[email protected]>
    Cc: Andreas Larsson <[email protected]>
    Cc: "Aneesh Kumar K.V" <[email protected]>
    Cc: Arnd Bergmann <[email protected]>
    Cc: Bjorn Andersson <[email protected]>
    Cc: Borislav Petkov <[email protected]>
    Cc: Catalin Marinas <[email protected]>
    Cc: Dave Hansen <[email protected]>
    Cc: David S. Miller <[email protected]>
    Cc: Fabio Estevam <[email protected]>
    Cc: Ingo Molnar <[email protected]>
    Cc: Konrad Dybcio <[email protected]>
    Cc: Krzysztof Kozlowski <[email protected]>
    Cc: Mark Salter <[email protected]>
    Cc: Michael Ellerman <[email protected]>
    Cc: Naoya Horiguchi <[email protected]>
    Cc: "Naveen N. Rao" <[email protected]>
    Cc: Nicholas Piggin <[email protected]>
    Cc: Russell King <[email protected]>
    Cc: Shawn Guo <[email protected]>
    Cc: Thomas Gleixner <[email protected]>
    Cc: Will Deacon <[email protected]>
    Signed-off-by: Andrew Morton <[email protected]>
    Stable-dep-of: 66eca1021a42 ("mm/page_alloc: fix pcp->count race between drain_pages_zone() vs __rmqueue_pcplist()")
    Signed-off-by: Sasha Levin <[email protected]>

mm: restrict the pcp batch scale factor to avoid too long latency [+ + +]
Author: Huang Ying <[email protected]>
Date:   Mon Oct 16 13:29:57 2023 +0800

    mm: restrict the pcp batch scale factor to avoid too long latency
    
    [ Upstream commit 52166607ecc980391b1fffbce0be3074a96d0c7b ]
    
    In page allocator, PCP (Per-CPU Pageset) is refilled and drained in
    batches to increase page allocation throughput, reduce page
    allocation/freeing latency per page, and reduce zone lock contention.  But
    too large batch size will cause too long maximal allocation/freeing
    latency, which may punish arbitrary users.  So the default batch size is
    chosen carefully (in zone_batchsize(), the value is 63 for zone > 1GB) to
    avoid that.
    
    In commit 3b12e7e97938 ("mm/page_alloc: scale the number of pages that are
    batch freed"), the batch size will be scaled for large number of page
    freeing to improve page freeing performance and reduce zone lock
    contention.  Similar optimization can be used for large number of pages
    allocation too.
    
    To find out a suitable max batch scale factor (that is, max effective
    batch size), some tests and measurement on some machines were done as
    follows.
    
    A set of debug patches are implemented as follows,
    
    - Set PCP high to be 2 * batch to reduce the effect of PCP high
    
    - Disable free batch size scaling to get the raw performance.
    
    - The code with zone lock held is extracted from rmqueue_bulk() and
      free_pcppages_bulk() to 2 separate functions to make it easy to
      measure the function run time with ftrace function_graph tracer.
    
    - The batch size is hard coded to be 63 (default), 127, 255, 511,
      1023, 2047, 4095.
    
    Then will-it-scale/page_fault1 is used to generate the page
    allocation/freeing workload.  The page allocation/freeing throughput
    (page/s) is measured via will-it-scale.  The page allocation/freeing
    average latency (alloc/free latency avg, in us) and allocation/freeing
    latency at 99 percentile (alloc/free latency 99%, in us) are measured with
    ftrace function_graph tracer.
    
    The test results are as follows,
    
    Sapphire Rapids Server
    ======================
    Batch   throughput      free latency    free latency    alloc latency   alloc latency
            page/s          avg / us        99% / us        avg / us        99% / us
    -----   ----------      ------------    ------------    -------------   -------------
      63    513633.4         2.33            3.57            2.67             6.83
     127    517616.7         4.35            6.65            4.22            13.03
     255    520822.8         8.29           13.32            7.52            25.24
     511    524122.0        15.79           23.42           14.02            49.35
    1023    525980.5        30.25           44.19           25.36            94.88
    2047    526793.6        59.39           84.50           45.22           140.81
    
    Ice Lake Server
    ===============
    Batch   throughput      free latency    free latency    alloc latency   alloc latency
            page/s          avg / us        99% / us        avg / us        99% / us
    -----   ----------      ------------    ------------    -------------   -------------
      63    620210.3         2.21            3.68            2.02            4.35
     127    627003.0         4.09            6.86            3.51            8.28
     255    630777.5         7.70           13.50            6.17           15.97
     511    633651.5        14.85           22.62           11.66           31.08
    1023    637071.1        28.55           42.02           20.81           54.36
    2047    638089.7        56.54           84.06           39.28           91.68
    
    Cascade Lake Server
    ===================
    Batch   throughput      free latency    free latency    alloc latency   alloc latency
            page/s          avg / us        99% / us        avg / us        99% / us
    -----   ----------      ------------    ------------    -------------   -------------
      63    404706.7         3.29             5.03           3.53             4.75
     127    422475.2         6.12             9.09           6.36             8.76
     255    411522.2        11.68            16.97          10.90            16.39
     511    428124.1        22.54            31.28          19.86            32.25
    1023    414718.4        43.39            62.52          40.00            66.33
    2047    429848.7        86.64           120.34          71.14           106.08
    
    Commet Lake Desktop
    ===================
    Batch   throughput      free latency    free latency    alloc latency   alloc latency
            page/s          avg / us        99% / us        avg / us        99% / us
    -----   ----------      ------------    ------------    -------------   -------------
    
      63    795183.13        2.18            3.55            2.03            3.05
     127    803067.85        3.91            6.56            3.85            5.52
     255    812771.10        7.35           10.80            7.14           10.20
     511    817723.48       14.17           27.54           13.43           30.31
    1023    818870.19       27.72           40.10           27.89           46.28
    
    Coffee Lake Desktop
    ===================
    Batch   throughput      free latency    free latency    alloc latency   alloc latency
            page/s          avg / us        99% / us        avg / us        99% / us
    -----   ----------      ------------    ------------    -------------   -------------
      63    510542.8         3.13             4.40           2.48            3.43
     127    514288.6         5.97             7.89           4.65            6.04
     255    516889.7        11.86            15.58           8.96           12.55
     511    519802.4        23.10            28.81          16.95           26.19
    1023    520802.7        45.30            52.51          33.19           45.95
    2047    519997.1        90.63           104.00          65.26           81.74
    
    From the above data, to restrict the allocation/freeing latency to be less
    than 100 us in most times, the max batch scale factor needs to be less
    than or equal to 5.
    
    Although it is reasonable to use 5 as max batch scale factor for the
    systems tested, there are also slower systems.  Where smaller value should
    be used to constrain the page allocation/freeing latency.
    
    So, in this patch, a new kconfig option (PCP_BATCH_SCALE_MAX) is added to
    set the max batch scale factor.  Whose default value is 5, and users can
    reduce it when necessary.
    
    Link: https://lkml.kernel.org/r/[email protected]
    Signed-off-by: "Huang, Ying" <[email protected]>
    Acked-by: Andrew Morton <[email protected]>
    Acked-by: Mel Gorman <[email protected]>
    Cc: Vlastimil Babka <[email protected]>
    Cc: David Hildenbrand <[email protected]>
    Cc: Johannes Weiner <[email protected]>
    Cc: Dave Hansen <[email protected]>
    Cc: Michal Hocko <[email protected]>
    Cc: Pavel Tatashin <[email protected]>
    Cc: Matthew Wilcox <[email protected]>
    Cc: Christoph Lameter <[email protected]>
    Cc: Arjan van de Ven <[email protected]>
    Cc: Sudeep Holla <[email protected]>
    Signed-off-by: Andrew Morton <[email protected]>
    Stable-dep-of: 66eca1021a42 ("mm/page_alloc: fix pcp->count race between drain_pages_zone() vs __rmqueue_pcplist()")
    Signed-off-by: Sasha Levin <[email protected]>

 
mptcp: distinguish rcv vs sent backup flag in requests [+ + +]
Author: Matthieu Baerts (NGI0) <[email protected]>
Date:   Sat Jul 27 12:01:24 2024 +0200

    mptcp: distinguish rcv vs sent backup flag in requests
    
    commit efd340bf3d7779a3a8ec954d8ec0fb8a10f24982 upstream.
    
    When sending an MP_JOIN + SYN + ACK, it is possible to mark the subflow
    as 'backup' by setting the flag with the same name. Before this patch,
    the backup was set if the other peer set it in its MP_JOIN + SYN
    request.
    
    It is not correct: the backup flag should be set in the MPJ+SYN+ACK only
    if the host asks for it, and not mirroring what was done by the other
    peer. It is then required to have a dedicated bit for each direction,
    similar to what is done in the subflow context.
    
    Fixes: f296234c98a8 ("mptcp: Add handling of incoming MP_JOIN requests")
    Cc: [email protected]
    Reviewed-by: Mat Martineau <[email protected]>
    Signed-off-by: Matthieu Baerts (NGI0) <[email protected]>
    Signed-off-by: Paolo Abeni <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>

mptcp: fix bad RCVPRUNED mib accounting [+ + +]
Author: Paolo Abeni <[email protected]>
Date:   Wed Jul 31 12:10:14 2024 +0200

    mptcp: fix bad RCVPRUNED mib accounting
    
    commit 0a567c2a10033bf04ed618368d179bce6977984b upstream.
    
    Since its introduction, the mentioned MIB accounted for the wrong
    event: wake-up being skipped as not-needed on some edge condition
    instead of incoming skb being dropped after landing in the (subflow)
    receive queue.
    
    Move the increment in the correct location.
    
    Fixes: ce599c516386 ("mptcp: properly account bulk freed memory")
    Cc: [email protected]
    Signed-off-by: Paolo Abeni <[email protected]>
    Reviewed-by: Mat Martineau <[email protected]>
    Signed-off-by: Matthieu Baerts (NGI0) <[email protected]>
    Signed-off-by: Paolo Abeni <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>

mptcp: fix duplicate data handling [+ + +]
Author: Paolo Abeni <[email protected]>
Date:   Wed Jul 31 12:10:15 2024 +0200

    mptcp: fix duplicate data handling
    
    commit 68cc924729ffcfe90d0383177192030a9aeb2ee4 upstream.
    
    When a subflow receives and discards duplicate data, the mptcp
    stack assumes that the consumed offset inside the current skb is
    zero.
    
    With multiple subflows receiving data simultaneously such assertion
    does not held true. As a result the subflow-level copied_seq will
    be incorrectly increased and later on the same subflow will observe
    a bad mapping, leading to subflow reset.
    
    Address the issue taking into account the skb consumed offset in
    mptcp_subflow_discard_data().
    
    Fixes: 04e4cd4f7ca4 ("mptcp: cleanup mptcp_subflow_discard_data()")
    Cc: [email protected]
    Link: https://github.com/multipath-tcp/mptcp_net-next/issues/501
    Signed-off-by: Paolo Abeni <[email protected]>
    Reviewed-by: Mat Martineau <[email protected]>
    Signed-off-by: Matthieu Baerts (NGI0) <[email protected]>
    Signed-off-by: Paolo Abeni <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>

mptcp: fix NL PM announced address accounting [+ + +]
Author: Paolo Abeni <[email protected]>
Date:   Sat Jul 27 11:04:00 2024 +0200

    mptcp: fix NL PM announced address accounting
    
    commit 4b317e0eb287bd30a1b329513531157c25e8b692 upstream.
    
    Currently the per connection announced address counter is never
    decreased. As a consequence, after connection establishment, if
    the NL PM deletes an endpoint and adds a new/different one, no
    additional subflow is created for the new endpoint even if the
    current limits allow that.
    
    Address the issue properly updating the signaled address counter
    every time the NL PM removes such addresses.
    
    Fixes: 01cacb00b35c ("mptcp: add netlink-based PM")
    Cc: [email protected]
    Signed-off-by: Paolo Abeni <[email protected]>
    Reviewed-by: Matthieu Baerts (NGI0) <[email protected]>
    Signed-off-by: Matthieu Baerts (NGI0) <[email protected]>
    Signed-off-by: David S. Miller <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>

mptcp: fix user-space PM announced address accounting [+ + +]
Author: Paolo Abeni <[email protected]>
Date:   Sat Jul 27 11:03:59 2024 +0200

    mptcp: fix user-space PM announced address accounting
    
    commit 167b93258d1e2230ee3e8a97669b4db4cc9e90aa upstream.
    
    Currently the per-connection announced address counter is never
    decreased. When the user-space PM is in use, this just affect
    the information exposed via diag/sockopt, but it could still foul
    the PM to wrong decision.
    
    Add the missing accounting for the user-space PM's sake.
    
    Fixes: 8b1c94da1e48 ("mptcp: only send RM_ADDR in nl_cmd_remove")
    Cc: [email protected]
    Signed-off-by: Paolo Abeni <[email protected]>
    Reviewed-by: Matthieu Baerts (NGI0) <[email protected]>
    Signed-off-by: Matthieu Baerts (NGI0) <[email protected]>
    Signed-off-by: David S. Miller <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>

mptcp: pm: only set request_bkup flag when sending MP_PRIO [+ + +]
Author: Matthieu Baerts (NGI0) <[email protected]>
Date:   Sat Jul 27 12:01:25 2024 +0200

    mptcp: pm: only set request_bkup flag when sending MP_PRIO
    
    commit 4258b94831bb7ff28ab80e3c8d94db37db930728 upstream.
    
    The 'backup' flag from mptcp_subflow_context structure is supposed to be
    set only when the other peer flagged a subflow as backup, not the
    opposite.
    
    Fixes: 067065422fcd ("mptcp: add the outgoing MP_PRIO support")
    Cc: [email protected]
    Reviewed-by: Mat Martineau <[email protected]>
    Signed-off-by: Matthieu Baerts (NGI0) <[email protected]>
    Signed-off-by: Paolo Abeni <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>

mptcp: sched: check both directions for backup [+ + +]
Author: Matthieu Baerts (NGI0) <[email protected]>
Date:   Sat Jul 27 12:01:23 2024 +0200

    mptcp: sched: check both directions for backup
    
    commit b6a66e521a2032f7fcba2af5a9bcbaeaa19b7ca3 upstream.
    
    The 'mptcp_subflow_context' structure has two items related to the
    backup flags:
    
     - 'backup': the subflow has been marked as backup by the other peer
    
     - 'request_bkup': the backup flag has been set by the host
    
    Before this patch, the scheduler was only looking at the 'backup' flag.
    That can make sense in some cases, but it looks like that's not what we
    wanted for the general use, because either the path-manager was setting
    both of them when sending an MP_PRIO, or the receiver was duplicating
    the 'backup' flag in the subflow request.
    
    Note that the use of these two flags in the path-manager are going to be
    fixed in the next commits, but this change here is needed not to modify
    the behaviour.
    
    Fixes: f296234c98a8 ("mptcp: Add handling of incoming MP_JOIN requests")
    Cc: [email protected]
    Reviewed-by: Mat Martineau <[email protected]>
    Signed-off-by: Matthieu Baerts (NGI0) <[email protected]>
    Signed-off-by: Paolo Abeni <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>

 
net/iucv: fix use after free in iucv_sock_close() [+ + +]
Author: Alexandra Winter <[email protected]>
Date:   Mon Jul 29 14:28:16 2024 +0200

    net/iucv: fix use after free in iucv_sock_close()
    
    [ Upstream commit f558120cd709682b739207b48cf7479fd9568431 ]
    
    iucv_sever_path() is called from process context and from bh context.
    iucv->path is used as indicator whether somebody else is taking care of
    severing the path (or it is already removed / never existed).
    This needs to be done with atomic compare and swap, otherwise there is a
    small window where iucv_sock_close() will try to work with a path that has
    already been severed and freed by iucv_callback_connrej() called by
    iucv_tasklet_fn().
    
    Example:
    [452744.123844] Call Trace:
    [452744.123845] ([<0000001e87f03880>] 0x1e87f03880)
    [452744.123966]  [<00000000d593001e>] iucv_path_sever+0x96/0x138
    [452744.124330]  [<000003ff801ddbca>] iucv_sever_path+0xc2/0xd0 [af_iucv]
    [452744.124336]  [<000003ff801e01b6>] iucv_sock_close+0xa6/0x310 [af_iucv]
    [452744.124341]  [<000003ff801e08cc>] iucv_sock_release+0x3c/0xd0 [af_iucv]
    [452744.124345]  [<00000000d574794e>] __sock_release+0x5e/0xe8
    [452744.124815]  [<00000000d5747a0c>] sock_close+0x34/0x48
    [452744.124820]  [<00000000d5421642>] __fput+0xba/0x268
    [452744.124826]  [<00000000d51b382c>] task_work_run+0xbc/0xf0
    [452744.124832]  [<00000000d5145710>] do_notify_resume+0x88/0x90
    [452744.124841]  [<00000000d5978096>] system_call+0xe2/0x2c8
    [452744.125319] Last Breaking-Event-Address:
    [452744.125321]  [<00000000d5930018>] iucv_path_sever+0x90/0x138
    [452744.125324]
    [452744.125325] Kernel panic - not syncing: Fatal exception in interrupt
    
    Note that bh_lock_sock() is not serializing the tasklet context against
    process context, because the check for sock_owned_by_user() and
    corresponding handling is missing.
    
    Ideas for a future clean-up patch:
    A) Correct usage of bh_lock_sock() in tasklet context, as described in
    Link: https://lore.kernel.org/netdev/1280155406.2899.407.camel@edumazet-laptop/
    Re-enqueue, if needed. This may require adding return values to the
    tasklet functions and thus changes to all users of iucv.
    
    B) Change iucv tasklet into worker and use only lock_sock() in af_iucv.
    
    Fixes: 7d316b945352 ("af_iucv: remove IUCV-pathes completely")
    Reviewed-by: Halil Pasic <[email protected]>
    Signed-off-by: Alexandra Winter <[email protected]>
    Link: https://patch.msgid.link/[email protected]
    Signed-off-by: Paolo Abeni <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>

 
net/mlx5: Fix missing lock on sync reset reload [+ + +]
Author: Moshe Shemesh <[email protected]>
Date:   Tue Jul 30 09:16:34 2024 +0300

    net/mlx5: Fix missing lock on sync reset reload
    
    [ Upstream commit 572f9caa9e7295f8c8822e4122c7ae8f1c412ff9 ]
    
    On sync reset reload work, when remote host updates devlink on reload
    actions performed on that host, it misses taking devlink lock before
    calling devlink_remote_reload_actions_performed() which results in
    triggering lock assert like the following:
    
    WARNING: CPU: 4 PID: 1164 at net/devlink/core.c:261 devl_assert_locked+0x3e/0x50
    …
     CPU: 4 PID: 1164 Comm: kworker/u96:6 Tainted: G S      W          6.10.0-rc2+ #116
     Hardware name: Supermicro SYS-2028TP-DECTR/X10DRT-PT, BIOS 2.0 12/18/2015
     Workqueue: mlx5_fw_reset_events mlx5_sync_reset_reload_work [mlx5_core]
     RIP: 0010:devl_assert_locked+0x3e/0x50
    …
     Call Trace:
      <TASK>
      ? __warn+0xa4/0x210
      ? devl_assert_locked+0x3e/0x50
      ? report_bug+0x160/0x280
      ? handle_bug+0x3f/0x80
      ? exc_invalid_op+0x17/0x40
      ? asm_exc_invalid_op+0x1a/0x20
      ? devl_assert_locked+0x3e/0x50
      devlink_notify+0x88/0x2b0
      ? mlx5_attach_device+0x20c/0x230 [mlx5_core]
      ? __pfx_devlink_notify+0x10/0x10
      ? process_one_work+0x4b6/0xbb0
      process_one_work+0x4b6/0xbb0
    […]
    
    Fixes: 84a433a40d0e ("net/mlx5: Lock mlx5 devlink reload callbacks")
    Signed-off-by: Moshe Shemesh <[email protected]>
    Reviewed-by: Maor Gottlieb <[email protected]>
    Signed-off-by: Tariq Toukan <[email protected]>
    Reviewed-by: Wojciech Drewek <[email protected]>
    Link: https://patch.msgid.link/[email protected]
    Signed-off-by: Jakub Kicinski <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>

net/mlx5: Lag, don't use the hardcoded value of the first port [+ + +]
Author: Mark Bloch <[email protected]>
Date:   Tue Jul 30 09:16:33 2024 +0300

    net/mlx5: Lag, don't use the hardcoded value of the first port
    
    [ Upstream commit 3fda84dc090390573cfbd0b1d70372663315de21 ]
    
    The cited commit didn't change the body of the loop as it should.
    It shouldn't be using MLX5_LAG_P1.
    
    Fixes: 7e978e7714d6 ("net/mlx5: Lag, use actual number of lag ports")
    Signed-off-by: Mark Bloch <[email protected]>
    Signed-off-by: Tariq Toukan <[email protected]>
    Reviewed-by: Wojciech Drewek <[email protected]>
    Link: https://patch.msgid.link/[email protected]
    Signed-off-by: Jakub Kicinski <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>

 
net/mlx5e: Add a check for the return value from mlx5_port_set_eth_ptys [+ + +]
Author: Shahar Shitrit <[email protected]>
Date:   Tue Jul 30 09:16:37 2024 +0300

    net/mlx5e: Add a check for the return value from mlx5_port_set_eth_ptys
    
    [ Upstream commit 3f8e82a020a5c22f9b791f4ac499b8e18007fbda ]
    
    Since the documentation for mlx5_toggle_port_link states that it should
    only be used after setting the port register, we add a check for the
    return value from mlx5_port_set_eth_ptys to ensure the register was
    successfully set before calling it.
    
    Fixes: 667daedaecd1 ("net/mlx5e: Toggle link only after modifying port parameters")
    Signed-off-by: Shahar Shitrit <[email protected]>
    Reviewed-by: Carolina Jubran <[email protected]>
    Signed-off-by: Tariq Toukan <[email protected]>
    Reviewed-by: Wojciech Drewek <[email protected]>
    Link: https://patch.msgid.link/[email protected]
    Signed-off-by: Jakub Kicinski <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>

 
net: axienet: start napi before enabling Rx/Tx [+ + +]
Author: Andy Chiu <[email protected]>
Date:   Fri Jul 26 15:06:50 2024 +0800

    net: axienet: start napi before enabling Rx/Tx
    
    [ Upstream commit 799a829507506924add8a7620493adc1c3cfda30 ]
    
    softirq may get lost if an Rx interrupt comes before we call
    napi_enable. Move napi_enable in front of axienet_setoptions(), which
    turns on the device, to address the issue.
    
    Link: https://lists.gnu.org/archive/html/qemu-devel/2024-07/msg06160.html
    Fixes: cc37610caaf8 ("net: axienet: implement NAPI and GRO receive")
    Signed-off-by: Andy Chiu <[email protected]>
    Reviewed-by: Eric Dumazet <[email protected]>
    Signed-off-by: David S. Miller <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>

net: mvpp2: Don't re-use loop iterator [+ + +]
Author: Dan Carpenter <[email protected]>
Date:   Wed Jul 24 11:06:56 2024 -0500

    net: mvpp2: Don't re-use loop iterator
    
    [ Upstream commit 0aa3ca956c46d849775eae1816cef8fe4bc8b50e ]
    
    This function has a nested loop.  The problem is that both the inside
    and outside loop use the same variable as an iterator.  I found this
    via static analysis so I'm not sure the impact.  It could be that it
    loops forever or, more likely, the loop exits early.
    
    Fixes: 3a616b92a9d1 ("net: mvpp2: Add TX flow control support for jumbo frames")
    Signed-off-by: Dan Carpenter <[email protected]>
    Reviewed-by: Simon Horman <[email protected]>
    Link: https://patch.msgid.link/[email protected]
    Signed-off-by: Jakub Kicinski <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>

net: usb: sr9700: fix uninitialized variable use in sr_mdio_read [+ + +]
Author: Ma Ke <[email protected]>
Date:   Thu Jul 25 10:29:42 2024 +0800

    net: usb: sr9700: fix uninitialized variable use in sr_mdio_read
    
    commit 08f3a5c38087d1569e982a121aad1e6acbf145ce upstream.
    
    It could lead to error happen because the variable res is not updated if
    the call to sr_share_read_word returns an error. In this particular case
    error code was returned and res stayed uninitialized. Same issue also
    applies to sr_read_reg.
    
    This can be avoided by checking the return value of sr_share_read_word
    and sr_read_reg, and propagating the error if the read operation failed.
    
    Found by code review.
    
    Cc: [email protected]
    Fixes: c9b37458e956 ("USB2NET : SR9700 : One chip USB 1.1 USB2NET SR9700Device Driver Support")
    Signed-off-by: Ma Ke <[email protected]>
    Reviewed-by: Shigeru Yoshida <[email protected]>
    Reviewed-by: Hariprasad Kelam <[email protected]>
    Signed-off-by: David S. Miller <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>

 
netfilter: ipset: Add list flush to cancel_gc [+ + +]
Author: Alexander Maltsev <[email protected]>
Date:   Wed Apr 17 18:51:41 2024 +0500

    netfilter: ipset: Add list flush to cancel_gc
    
    [ Upstream commit c1193d9bbbd379defe9be3c6de566de684de8a6f ]
    
    Flushing list in cancel_gc drops references to other lists right away,
    without waiting for RCU to destroy list. Fixes race when referenced
    ipsets can't be destroyed while referring list is scheduled for destroy.
    
    Fixes: 97f7cf1cd80e ("netfilter: ipset: fix performance regression in swap operation")
    Signed-off-by: Alexander Maltsev <[email protected]>
    Acked-by: Jozsef Kadlecsik <[email protected]>
    Signed-off-by: Pablo Neira Ayuso <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>

netfilter: iptables: Fix null-ptr-deref in iptable_nat_table_init(). [+ + +]
Author: Kuniyuki Iwashima <[email protected]>
Date:   Thu Jul 25 12:28:20 2024 -0700

    netfilter: iptables: Fix null-ptr-deref in iptable_nat_table_init().
    
    [ Upstream commit 5830aa863981d43560748aa93589c0695191d95d ]
    
    We had a report that iptables-restore sometimes triggered null-ptr-deref
    at boot time. [0]
    
    The problem is that iptable_nat_table_init() is exposed to user space
    before the kernel fully initialises netns.
    
    In the small race window, a user could call iptable_nat_table_init()
    that accesses net_generic(net, iptable_nat_net_id), which is available
    only after registering iptable_nat_net_ops.
    
    Let's call register_pernet_subsys() before xt_register_template().
    
    [0]:
    bpfilter: Loaded bpfilter_umh pid 11702
    Started bpfilter
    BUG: kernel NULL pointer dereference, address: 0000000000000013
     PF: supervisor write access in kernel mode
     PF: error_code(0x0002) - not-present page
    PGD 0 P4D 0
    PREEMPT SMP NOPTI
    CPU: 2 PID: 11879 Comm: iptables-restor Not tainted 6.1.92-99.174.amzn2023.x86_64 #1
    Hardware name: Amazon EC2 c6i.4xlarge/, BIOS 1.0 10/16/2017
    RIP: 0010:iptable_nat_table_init (net/ipv4/netfilter/iptable_nat.c:87 net/ipv4/netfilter/iptable_nat.c:121) iptable_nat
    Code: 10 4c 89 f6 48 89 ef e8 0b 19 bb ff 41 89 c4 85 c0 75 38 41 83 c7 01 49 83 c6 28 41 83 ff 04 75 dc 48 8b 44 24 08 48 8b 0c 24 <48> 89 08 4c 89 ef e8 a2 3b a2 cf 48 83 c4 10 44 89 e0 5b 5d 41 5c
    RSP: 0018:ffffbef902843cd0 EFLAGS: 00010246
    RAX: 0000000000000013 RBX: ffff9f4b052caa20 RCX: ffff9f4b20988d80
    RDX: 0000000000000000 RSI: 0000000000000064 RDI: ffffffffc04201c0
    RBP: ffff9f4b29394000 R08: ffff9f4b07f77258 R09: ffff9f4b07f77240
    R10: 0000000000000000 R11: ffff9f4b09635388 R12: 0000000000000000
    R13: ffff9f4b1a3c6c00 R14: ffff9f4b20988e20 R15: 0000000000000004
    FS:  00007f6284340000(0000) GS:ffff9f51fe280000(0000) knlGS:0000000000000000
    CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
    CR2: 0000000000000013 CR3: 00000001d10a6005 CR4: 00000000007706e0
    DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
    DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
    PKRU: 55555554
    Call Trace:
     <TASK>
     ? show_trace_log_lvl (arch/x86/kernel/dumpstack.c:259)
     ? show_trace_log_lvl (arch/x86/kernel/dumpstack.c:259)
     ? xt_find_table_lock (net/netfilter/x_tables.c:1259)
     ? __die_body.cold (arch/x86/kernel/dumpstack.c:478 arch/x86/kernel/dumpstack.c:420)
     ? page_fault_oops (arch/x86/mm/fault.c:727)
     ? exc_page_fault (./arch/x86/include/asm/irqflags.h:40 ./arch/x86/include/asm/irqflags.h:75 arch/x86/mm/fault.c:1470 arch/x86/mm/fault.c:1518)
     ? asm_exc_page_fault (./arch/x86/include/asm/idtentry.h:570)
     ? iptable_nat_table_init (net/ipv4/netfilter/iptable_nat.c:87 net/ipv4/netfilter/iptable_nat.c:121) iptable_nat
     xt_find_table_lock (net/netfilter/x_tables.c:1259)
     xt_request_find_table_lock (net/netfilter/x_tables.c:1287)
     get_info (net/ipv4/netfilter/ip_tables.c:965)
     ? security_capable (security/security.c:809 (discriminator 13))
     ? ns_capable (kernel/capability.c:376 kernel/capability.c:397)
     ? do_ipt_get_ctl (net/ipv4/netfilter/ip_tables.c:1656)
     ? bpfilter_send_req (net/bpfilter/bpfilter_kern.c:52) bpfilter
     nf_getsockopt (net/netfilter/nf_sockopt.c:116)
     ip_getsockopt (net/ipv4/ip_sockglue.c:1827)
     __sys_getsockopt (net/socket.c:2327)
     __x64_sys_getsockopt (net/socket.c:2342 net/socket.c:2339 net/socket.c:2339)
     do_syscall_64 (arch/x86/entry/common.c:51 arch/x86/entry/common.c:81)
     entry_SYSCALL_64_after_hwframe (arch/x86/entry/entry_64.S:121)
    RIP: 0033:0x7f62844685ee
    Code: 48 8b 0d 45 28 0f 00 f7 d8 64 89 01 48 83 c8 ff c3 66 2e 0f 1f 84 00 00 00 00 00 90 f3 0f 1e fa 49 89 ca b8 37 00 00 00 0f 05 <48> 3d 00 f0 ff ff 77 0a c3 66 0f 1f 84 00 00 00 00 00 48 8b 15 09
    RSP: 002b:00007ffd1f83d638 EFLAGS: 00000246 ORIG_RAX: 0000000000000037
    RAX: ffffffffffffffda RBX: 00007ffd1f83d680 RCX: 00007f62844685ee
    RDX: 0000000000000040 RSI: 0000000000000000 RDI: 0000000000000004
    RBP: 0000000000000004 R08: 00007ffd1f83d670 R09: 0000558798ffa2a0
    R10: 00007ffd1f83d680 R11: 0000000000000246 R12: 00007ffd1f83e3b2
    R13: 00007f628455baa0 R14: 00007ffd1f83d7b0 R15: 00007f628457a008
     </TASK>
    Modules linked in: iptable_nat(+) bpfilter rpcsec_gss_krb5 auth_rpcgss nfsv4 dns_resolver nfs lockd grace fscache veth xt_state xt_connmark xt_nat xt_statistic xt_MASQUERADE xt_mark xt_addrtype ipt_REJECT nf_reject_ipv4 nft_chain_nat nf_nat xt_conntrack nf_conntrack nf_defrag_ipv6 nf_defrag_ipv4 xt_comment nft_compat nf_tables nfnetlink overlay nls_ascii nls_cp437 vfat fat ghash_clmulni_intel aesni_intel ena crypto_simd ptp cryptd i8042 pps_core serio button sunrpc sch_fq_codel configfs loop dm_mod fuse dax dmi_sysfs crc32_pclmul crc32c_intel efivarfs
    CR2: 0000000000000013
    
    Fixes: fdacd57c79b7 ("netfilter: x_tables: never register tables by default")
    Reported-by: Takahiro Kawahara <[email protected]>
    Signed-off-by: Kuniyuki Iwashima <[email protected]>
    Reviewed-by: Florian Westphal <[email protected]>
    Signed-off-by: Pablo Neira Ayuso <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>

netfilter: iptables: Fix potential null-ptr-deref in ip6table_nat_table_init(). [+ + +]
Author: Kuniyuki Iwashima <[email protected]>
Date:   Thu Jul 25 12:28:21 2024 -0700

    netfilter: iptables: Fix potential null-ptr-deref in ip6table_nat_table_init().
    
    [ Upstream commit c22921df777de5606f1047b1345b8d22ef1c0b34 ]
    
    ip6table_nat_table_init() accesses net->gen->ptr[ip6table_nat_net_ops.id],
    but the function is exposed to user space before the entry is allocated
    via register_pernet_subsys().
    
    Let's call register_pernet_subsys() before xt_register_template().
    
    Fixes: fdacd57c79b7 ("netfilter: x_tables: never register tables by default")
    Signed-off-by: Kuniyuki Iwashima <[email protected]>
    Reviewed-by: Florian Westphal <[email protected]>
    Signed-off-by: Pablo Neira Ayuso <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>

 
platform/chrome: cros_ec_proto: Lock device when updating MKBP version [+ + +]
Author: Patryk Duda <[email protected]>
Date:   Tue Jul 30 10:44:25 2024 +0000

    platform/chrome: cros_ec_proto: Lock device when updating MKBP version
    
    commit df615907f1bf907260af01ccb904d0e9304b5278 upstream.
    
    The cros_ec_get_host_command_version_mask() function requires that the
    caller must have ec_dev->lock mutex before calling it. This requirement
    was not met and as a result it was possible that two commands were sent
    to the device at the same time.
    
    The problem was observed while using UART backend which doesn't use any
    additional locks, unlike SPI backend which locks the controller until
    response is received.
    
    Fixes: f74c7557ed0d ("platform/chrome: cros_ec_proto: Update version on GET_NEXT_EVENT failure")
    Cc: [email protected]
    Signed-off-by: Patryk Duda <[email protected]>
    Link: https://lore.kernel.org/r/[email protected]
    Signed-off-by: Tzung-Bi Shih <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>

 
Linux: protect the fetch of ->fd[fd] in do_dup2() from mispredictions [+ + +]
Author: Al Viro <[email protected]>
Date:   Thu Aug 1 15:22:22 2024 -0400

    protect the fetch of ->fd[fd] in do_dup2() from mispredictions
    
    commit 8aa37bde1a7b645816cda8b80df4753ecf172bf1 upstream.
    
    both callers have verified that fd is not greater than ->max_fds;
    however, misprediction might end up with
            tofree = fdt->fd[fd];
    being speculatively executed.  That's wrong for the same reasons
    why it's wrong in close_fd()/file_close_fd_locked(); the same
    solution applies - array_index_nospec(fd, fdt->max_fds) could differ
    from fd only in case of speculative execution on mispredicted path.
    
    Cc: [email protected]
    Signed-off-by: Al Viro <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>

 
r8169: don't increment tx_dropped in case of NETDEV_TX_BUSY [+ + +]
Author: Heiner Kallweit <[email protected]>
Date:   Tue Jul 30 21:51:52 2024 +0200

    r8169: don't increment tx_dropped in case of NETDEV_TX_BUSY
    
    commit d516b187a9cc2e842030dd005be2735db3e8f395 upstream.
    
    The skb isn't consumed in case of NETDEV_TX_BUSY, therefore don't
    increment the tx_dropped counter.
    
    Fixes: 188f4af04618 ("r8169: use NETDEV_TX_{BUSY/OK}")
    Cc: [email protected]
    Suggested-by: Jakub Kicinski <[email protected]>
    Signed-off-by: Heiner Kallweit <[email protected]>
    Reviewed-by: Wojciech Drewek <[email protected]>
    Link: https://patch.msgid.link/[email protected]
    Signed-off-by: Jakub Kicinski <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>

 
Revert "ALSA: firewire-lib: obsolete workqueue for period update" [+ + +]
Author: Edmund Raile <[email protected]>
Date:   Tue Jul 30 19:53:26 2024 +0000

    Revert "ALSA: firewire-lib: obsolete workqueue for period update"
    
    commit 6ccf9984d6be3c2f804087b736db05c2ec42664b upstream.
    
    prepare resolution of AB/BA deadlock competition for substream lock:
    restore workqueue previously used for process context:
    
    revert commit b5b519965c4c ("ALSA: firewire-lib: obsolete workqueue
    for period update")
    
    Cc: [email protected]
    Link: https://lore.kernel.org/r/kwryofzdmjvzkuw6j3clftsxmoolynljztxqwg76hzeo4simnl@jn3eo7pe642q/
    Signed-off-by: Edmund Raile <[email protected]>
    Reviewed-by: Takashi Sakamoto <[email protected]>
    Signed-off-by: Takashi Iwai <[email protected]>
    Link: https://patch.msgid.link/[email protected]
    Signed-off-by: Greg Kroah-Hartman <[email protected]>

Revert "ALSA: firewire-lib: operate for period elapse event in process context" [+ + +]
Author: Edmund Raile <[email protected]>
Date:   Tue Jul 30 19:53:29 2024 +0000

    Revert "ALSA: firewire-lib: operate for period elapse event in process context"
    
    commit 3dab73ab925a51ab05543b491bf17463a48ca323 upstream.
    
    Commit 7ba5ca32fe6e ("ALSA: firewire-lib: operate for period elapse event
    in process context") removed the process context workqueue from
    amdtp_domain_stream_pcm_pointer() and update_pcm_pointers() to remove
    its overhead.
    
    With RME Fireface 800, this lead to a regression since
    Kernels 5.14.0, causing an AB/BA deadlock competition for the
    substream lock with eventual system freeze under ALSA operation:
    
    thread 0:
        * (lock A) acquire substream lock by
            snd_pcm_stream_lock_irq() in
            snd_pcm_status64()
        * (lock B) wait for tasklet to finish by calling
            tasklet_unlock_spin_wait() in
            tasklet_disable_in_atomic() in
            ohci_flush_iso_completions() of ohci.c
    
    thread 1:
        * (lock B) enter tasklet
        * (lock A) attempt to acquire substream lock,
            waiting for it to be released:
            snd_pcm_stream_lock_irqsave() in
            snd_pcm_period_elapsed() in
            update_pcm_pointers() in
            process_ctx_payloads() in
            process_rx_packets() of amdtp-stream.c
    
    ? tasklet_unlock_spin_wait
     </NMI>
     <TASK>
    ohci_flush_iso_completions firewire_ohci
    amdtp_domain_stream_pcm_pointer snd_firewire_lib
    snd_pcm_update_hw_ptr0 snd_pcm
    snd_pcm_status64 snd_pcm
    
    ? native_queued_spin_lock_slowpath
     </NMI>
     <IRQ>
    _raw_spin_lock_irqsave
    snd_pcm_period_elapsed snd_pcm
    process_rx_packets snd_firewire_lib
    irq_target_callback snd_firewire_lib
    handle_it_packet firewire_ohci
    context_tasklet firewire_ohci
    
    Restore the process context work queue to prevent deadlock
    AB/BA deadlock competition for ALSA substream lock of
    snd_pcm_stream_lock_irq() in snd_pcm_status64()
    and snd_pcm_stream_lock_irqsave() in snd_pcm_period_elapsed().
    
    revert commit 7ba5ca32fe6e ("ALSA: firewire-lib: operate for period
    elapse event in process context")
    
    Replace inline description to prevent future deadlock.
    
    Cc: [email protected]
    Fixes: 7ba5ca32fe6e ("ALSA: firewire-lib: operate for period elapse event in process context")
    Reported-by: edmund.raile <[email protected]>
    Closes: https://lore.kernel.org/r/kwryofzdmjvzkuw6j3clftsxmoolynljztxqwg76hzeo4simnl@jn3eo7pe642q/
    Signed-off-by: Edmund Raile <[email protected]>
    Reviewed-by: Takashi Sakamoto <[email protected]>
    Signed-off-by: Takashi Iwai <[email protected]>
    Link: https://patch.msgid.link/[email protected]
    Signed-off-by: Greg Kroah-Hartman <[email protected]>

 
riscv/mm: Add handling for VM_FAULT_SIGSEGV in mm_fault_error() [+ + +]
Author: Zhe Qiao <[email protected]>
Date:   Wed Jul 31 16:45:47 2024 +0800

    riscv/mm: Add handling for VM_FAULT_SIGSEGV in mm_fault_error()
    
    [ Upstream commit 0c710050c47d45eb77b28c271cddefc5c785cb40 ]
    
    Handle VM_FAULT_SIGSEGV in the page fault path so that we correctly
    kill the process and we don't BUG() the kernel.
    
    Fixes: 07037db5d479 ("RISC-V: Paging and MMU")
    Signed-off-by: Zhe Qiao <[email protected]>
    Reviewed-by: Alexandre Ghiti <[email protected]>
    Link: https://lore.kernel.org/r/[email protected]
    Signed-off-by: Palmer Dabbelt <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>

 
rtnetlink: Don't ignore IFLA_TARGET_NETNSID when ifname is specified in rtnl_dellink(). [+ + +]
Author: Kuniyuki Iwashima <[email protected]>
Date:   Fri Jul 26 17:19:53 2024 -0700

    rtnetlink: Don't ignore IFLA_TARGET_NETNSID when ifname is specified in rtnl_dellink().
    
    [ Upstream commit 9415d375d8520e0ed55f0c0b058928da9a5b5b3d ]
    
    The cited commit accidentally replaced tgt_net with net in rtnl_dellink().
    
    As a result, IFLA_TARGET_NETNSID is ignored if the interface is specified
    with IFLA_IFNAME or IFLA_ALT_IFNAME.
    
    Let's pass tgt_net to rtnl_dev_get().
    
    Fixes: cc6090e985d7 ("net: rtnetlink: introduce helper to get net_device instance by ifname")
    Signed-off-by: Kuniyuki Iwashima <[email protected]>
    Reviewed-by: Jakub Kicinski <[email protected]>
    Signed-off-by: David S. Miller <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>

 
rust: SHADOW_CALL_STACK is incompatible with Rust [+ + +]
Author: Alice Ryhl <[email protected]>
Date:   Mon Jul 29 14:22:49 2024 +0000

    rust: SHADOW_CALL_STACK is incompatible with Rust
    
    commit f126745da81783fb1d082e67bf14c6795e489a88 upstream.
    
    When using the shadow call stack sanitizer, all code must be compiled
    with the -ffixed-x18 flag, but this flag is not currently being passed
    to Rust. This results in crashes that are extremely difficult to debug.
    
    To ensure that nobody else has to go through the same debugging session
    that I had to, prevent configurations that enable both SHADOW_CALL_STACK
    and RUST.
    
    It is rather common for people to backport 724a75ac9542 ("arm64: rust:
    Enable Rust support for AArch64"), so I recommend applying this fix all
    the way back to 6.1.
    
    Cc: [email protected] # 6.1 and later
    Fixes: 724a75ac9542 ("arm64: rust: Enable Rust support for AArch64")
    Signed-off-by: Alice Ryhl <[email protected]>
    Acked-by: Miguel Ojeda <[email protected]>
    Link: https://lore.kernel.org/r/[email protected]
    Signed-off-by: Catalin Marinas <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>

 
sched: act_ct: take care of padding in struct zones_ht_key [+ + +]
Author: Eric Dumazet <[email protected]>
Date:   Thu Jul 25 09:27:45 2024 +0000

    sched: act_ct: take care of padding in struct zones_ht_key
    
    [ Upstream commit 2191a54f63225b548fd8346be3611c3219a24738 ]
    
    Blamed commit increased lookup key size from 2 bytes to 16 bytes,
    because zones_ht_key got a struct net pointer.
    
    Make sure rhashtable_lookup() is not using the padding bytes
    which are not initialized.
    
     BUG: KMSAN: uninit-value in rht_ptr_rcu include/linux/rhashtable.h:376 [inline]
     BUG: KMSAN: uninit-value in __rhashtable_lookup include/linux/rhashtable.h:607 [inline]
     BUG: KMSAN: uninit-value in rhashtable_lookup include/linux/rhashtable.h:646 [inline]
     BUG: KMSAN: uninit-value in rhashtable_lookup_fast include/linux/rhashtable.h:672 [inline]
     BUG: KMSAN: uninit-value in tcf_ct_flow_table_get+0x611/0x2260 net/sched/act_ct.c:329
      rht_ptr_rcu include/linux/rhashtable.h:376 [inline]
      __rhashtable_lookup include/linux/rhashtable.h:607 [inline]
      rhashtable_lookup include/linux/rhashtable.h:646 [inline]
      rhashtable_lookup_fast include/linux/rhashtable.h:672 [inline]
      tcf_ct_flow_table_get+0x611/0x2260 net/sched/act_ct.c:329
      tcf_ct_init+0xa67/0x2890 net/sched/act_ct.c:1408
      tcf_action_init_1+0x6cc/0xb30 net/sched/act_api.c:1425
      tcf_action_init+0x458/0xf00 net/sched/act_api.c:1488
      tcf_action_add net/sched/act_api.c:2061 [inline]
      tc_ctl_action+0x4be/0x19d0 net/sched/act_api.c:2118
      rtnetlink_rcv_msg+0x12fc/0x1410 net/core/rtnetlink.c:6647
      netlink_rcv_skb+0x375/0x650 net/netlink/af_netlink.c:2550
      rtnetlink_rcv+0x34/0x40 net/core/rtnetlink.c:6665
      netlink_unicast_kernel net/netlink/af_netlink.c:1331 [inline]
      netlink_unicast+0xf52/0x1260 net/netlink/af_netlink.c:1357
      netlink_sendmsg+0x10da/0x11e0 net/netlink/af_netlink.c:1901
      sock_sendmsg_nosec net/socket.c:730 [inline]
      __sock_sendmsg+0x30f/0x380 net/socket.c:745
      ____sys_sendmsg+0x877/0xb60 net/socket.c:2597
      ___sys_sendmsg+0x28d/0x3c0 net/socket.c:2651
      __sys_sendmsg net/socket.c:2680 [inline]
      __do_sys_sendmsg net/socket.c:2689 [inline]
      __se_sys_sendmsg net/socket.c:2687 [inline]
      __x64_sys_sendmsg+0x307/0x4a0 net/socket.c:2687
      x64_sys_call+0x2dd6/0x3c10 arch/x86/include/generated/asm/syscalls_64.h:47
      do_syscall_x64 arch/x86/entry/common.c:52 [inline]
      do_syscall_64+0xcd/0x1e0 arch/x86/entry/common.c:83
     entry_SYSCALL_64_after_hwframe+0x77/0x7f
    
    Local variable key created at:
      tcf_ct_flow_table_get+0x4a/0x2260 net/sched/act_ct.c:324
      tcf_ct_init+0xa67/0x2890 net/sched/act_ct.c:1408
    
    Fixes: 88c67aeb1407 ("sched: act_ct: add netns into the key of tcf_ct_flow_table")
    Reported-by: [email protected]
    Signed-off-by: Eric Dumazet <[email protected]>
    Cc: Xin Long <[email protected]>
    Reviewed-by: Simon Horman <[email protected]>
    Reviewed-by: Xin Long <[email protected]>
    Signed-off-by: David S. Miller <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>

 
selftests: mptcp: always close input's FD if opened [+ + +]
Author: Liu Jing <[email protected]>
Date:   Sat Jul 27 11:04:03 2024 +0200

    selftests: mptcp: always close input's FD if opened
    
    commit 7c70bcc2a84cf925f655ea1ac4b8088062b144a3 upstream.
    
    In main_loop_s function, when the open(cfg_input, O_RDONLY) function is
    run, the last fd is not closed if the "--cfg_repeat > 0" branch is not
    taken.
    
    Fixes: 05be5e273c84 ("selftests: mptcp: add disconnect tests")
    Cc: [email protected]
    Signed-off-by: Liu Jing <[email protected]>
    Reviewed-by: Matthieu Baerts (NGI0) <[email protected]>
    Signed-off-by: Matthieu Baerts (NGI0) <[email protected]>
    Signed-off-by: David S. Miller <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>

 
sysctl: allow change system v ipc sysctls inside ipc namespace [+ + +]
Author: Alexey Gladkov <[email protected]>
Date:   Mon Jan 15 15:46:41 2024 +0000

    sysctl: allow change system v ipc sysctls inside ipc namespace
    
    [ Upstream commit 50ec499b9a43e46200c9f7b7d723ab2e4af540b3 ]
    
    Patch series "Allow to change ipc/mq sysctls inside ipc namespace", v3.
    
    Right now ipc and mq limits count as per ipc namespace, but only real root
    can change them.  By default, the current values of these limits are such
    that it can only be reduced.  Since only root can change the values, it is
    impossible to reduce these limits in the rootless container.
    
    We can allow limit changes within ipc namespace because mq parameters are
    limited by RLIMIT_MSGQUEUE and ipc parameters are not limited to anything
    other than cgroups.
    
    This patch (of 3):
    
    Rootless containers are not allowed to modify kernel IPC parameters.
    
    All default limits are set to such high values that in fact there are no
    limits at all.  All limits are not inherited and are initialized to
    default values when a new ipc_namespace is created.
    
    For new ipc_namespace:
    
    size_t       ipc_ns.shm_ctlmax = SHMMAX; // (ULONG_MAX - (1UL << 24))
    size_t       ipc_ns.shm_ctlall = SHMALL; // (ULONG_MAX - (1UL << 24))
    int          ipc_ns.shm_ctlmni = IPCMNI; // (1 << 15)
    int          ipc_ns.shm_rmid_forced = 0;
    unsigned int ipc_ns.msg_ctlmax = MSGMAX; // 8192
    unsigned int ipc_ns.msg_ctlmni = MSGMNI; // 32000
    unsigned int ipc_ns.msg_ctlmnb = MSGMNB; // 16384
    
    The shm_tot (total amount of shared pages) has also ceased to be global,
    it is located in ipc_namespace and is not inherited from anywhere.
    
    In such conditions, it cannot be said that these limits limit anything.
    The real limiter for them is cgroups.
    
    If we allow rootless containers to change these parameters, then it can
    only be reduced.
    
    Link: https://lkml.kernel.org/r/[email protected]
    Link: https://lkml.kernel.org/r/d2f4603305cbfed58a24755aa61d027314b73a45.1705333426.git.legion@kernel.org
    Signed-off-by: Alexey Gladkov <[email protected]>
    Signed-off-by: Eric W. Biederman <[email protected]>
    Link: https://lkml.kernel.org/r/e2d84d3ec0172cfff759e6065da84ce0cc2736f8.1663756794.git.legion@kernel.org
    Cc: Christian Brauner <[email protected]>
    Cc: Joel Granados <[email protected]>
    Cc: Kees Cook <[email protected]>
    Cc: Luis Chamberlain <[email protected]>
    Cc: Manfred Spraul <[email protected]>
    Cc: Davidlohr Bueso <[email protected]>
    Signed-off-by: Andrew Morton <[email protected]>
    Stable-dep-of: 98ca62ba9e2b ("sysctl: always initialize i_uid/i_gid")
    Signed-off-by: Sasha Levin <[email protected]>

sysctl: allow to change limits for posix messages queues [+ + +]
Author: Alexey Gladkov <[email protected]>
Date:   Mon Jan 15 15:46:43 2024 +0000

    sysctl: allow to change limits for posix messages queues
    
    [ Upstream commit f9436a5d0497f759330d07e1189565edd4456be8 ]
    
    All parameters of posix messages queues (queues_max/msg_max/msgsize_max)
    end up being limited by RLIMIT_MSGQUEUE.  The code in mqueue_get_inode is
    where that limiting happens.
    
    The RLIMIT_MSGQUEUE is bound to the user namespace and is counted
    hierarchically.
    
    We can allow root in the user namespace to modify the posix messages
    queues parameters.
    
    Link: https://lkml.kernel.org/r/6ad67f23d1459a4f4339f74aa73bac0ecf3995e1.1705333426.git.legion@kernel.org
    Signed-off-by: Alexey Gladkov <[email protected]>
    Signed-off-by: Eric W. Biederman <[email protected]>
    Link: https://lkml.kernel.org/r/7eb21211c8622e91d226e63416b1b93c079f60ee.1663756794.git.legion@kernel.org
    Cc: Christian Brauner <[email protected]>
    Cc: Davidlohr Bueso <[email protected]>
    Cc: Joel Granados <[email protected]>
    Cc: Kees Cook <[email protected]>
    Cc: Luis Chamberlain <[email protected]>
    Cc: Manfred Spraul <[email protected]>
    Signed-off-by: Andrew Morton <[email protected]>
    Stable-dep-of: 98ca62ba9e2b ("sysctl: always initialize i_uid/i_gid")
    Signed-off-by: Sasha Levin <[email protected]>

sysctl: always initialize i_uid/i_gid [+ + +]
Author: Thomas Weißschuh <[email protected]>
Date:   Tue Apr 2 23:10:34 2024 +0200

    sysctl: always initialize i_uid/i_gid
    
    [ Upstream commit 98ca62ba9e2be5863c7d069f84f7166b45a5b2f4 ]
    
    Always initialize i_uid/i_gid inside the sysfs core so set_ownership()
    can safely skip setting them.
    
    Commit 5ec27ec735ba ("fs/proc/proc_sysctl.c: fix the default values of
    i_uid/i_gid on /proc/sys inodes.") added defaults for i_uid/i_gid when
    set_ownership() was not implemented. It also missed adjusting
    net_ctl_set_ownership() to use the same default values in case the
    computation of a better value failed.
    
    Fixes: 5ec27ec735ba ("fs/proc/proc_sysctl.c: fix the default values of i_uid/i_gid on /proc/sys inodes.")
    Cc: [email protected]
    Signed-off-by: Thomas Weißschuh <[email protected]>
    Signed-off-by: Joel Granados <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>

sysctl: treewide: drop unused argument ctl_table_root::set_ownership(table) [+ + +]
Author: Thomas Weißschuh <[email protected]>
Date:   Fri Mar 15 19:11:30 2024 +0100

    sysctl: treewide: drop unused argument ctl_table_root::set_ownership(table)
    
    [ Upstream commit 520713a93d550406dae14d49cdb8778d70cecdfd ]
    
    Remove the 'table' argument from set_ownership as it is never used. This
    change is a step towards putting "struct ctl_table" into .rodata and
    eventually having sysctl core only use "const struct ctl_table".
    
    The patch was created with the following coccinelle script:
    
      @@
      identifier func, head, table, uid, gid;
      @@
    
      void func(
        struct ctl_table_header *head,
      - struct ctl_table *table,
        kuid_t *uid, kgid_t *gid)
      { ... }
    
    No additional occurrences of 'set_ownership' were found after doing a
    tree-wide search.
    
    Reviewed-by: Joel Granados <[email protected]>
    Signed-off-by: Thomas Weißschuh <[email protected]>
    Signed-off-by: Joel Granados <[email protected]>
    Stable-dep-of: 98ca62ba9e2b ("sysctl: always initialize i_uid/i_gid")
    Signed-off-by: Sasha Levin <[email protected]>