Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Linux 6.9.8 for Noble #327

Open
wants to merge 1,306 commits into
base: master
Choose a base branch
from
Open

Linux 6.9.8 for Noble #327

wants to merge 1,306 commits into from
This pull request is big! We’re only showing the most recent 250 commits.

Commits on Jun 27, 2024

  1. hid: asus: asus_report_fixup: fix potential read out of bounds

    commit 89e1ee1 upstream.
    
    syzbot reported a potential read out of bounds in asus_report_fixup.
    
    this patch adds checks so that a read out of bounds will not occur
    
    Signed-off-by: Andrew Ballance <andrewjballance@gmail.com>
    Reported-by:  <syzbot+07762f019fd03d01f04c@syzkaller.appspotmail.com>
    Closes: https://syzkaller.appspot.com/bug?extid=07762f019fd03d01f04c
    Fixes: 59d2f5b ("HID: asus: fix more n-key report descriptors if n-key quirked")
    Link: https://lore.kernel.org/r/20240602085023.1720492-1-andrewjballance@gmail.com
    Signed-off-by: Benjamin Tissoires <bentiss@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    mrwigglewaffles authored and gregkh committed Jun 27, 2024
    Configuration menu
    Copy the full SHA
    5c117d5 View commit details
    Browse the repository at this point in the history
  2. Revert "mm: mmap: allow for the maximum number of bits for randomizin…

    …g mmap_base by default"
    
    commit 14d7c92 upstream.
    
    This reverts commit 3afb76a.
    
    This was a wrongheaded workaround for an issue that had already been
    fixed much better by commit 4ef9ad1 ("mm: huge_memory: don't force
    huge page alignment on 32 bit").
    
    Asking users questions at kernel compile time that they can't make sense
    of is not a viable strategy.  And the fact that even the kernel VM
    maintainers apparently didn't catch that this "fix" is not a fix any
    more pretty much proves the point that people can't be expected to
    understand the implications of the question.
    
    It may well be the case that we could improve things further, and that
    __thp_get_unmapped_area() should take the mapping randomization into
    account even for 64-bit kernels.  Maybe we should not be so eager to use
    THP mappings.
    
    But in no case should this be a kernel config option.
    
    Cc: Rafael Aquini <aquini@redhat.com>
    Cc: Andrew Morton <akpm@linux-foundation.org>
    Cc: Jiri Slaby <jirislaby@kernel.org>
    Cc: Suren Baghdasaryan <surenb@google.com>
    Cc: Matthew Wilcox (Oracle) <willy@infradead.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    torvalds authored and gregkh committed Jun 27, 2024
    Configuration menu
    Copy the full SHA
    095dfd9 View commit details
    Browse the repository at this point in the history
  3. Linux 6.9.7

    Link: https://lore.kernel.org/r/20240625085548.033507125@linuxfoundation.org
    Tested-by: Florian Fainelli <florian.fainelli@broadcom.com>
    Tested-by: Peter Schneider <pschneider1968@googlemail.com>
    Tested-by: Ronald Warsow <rwarsow@gmx.de>
    Tested-by: SeongJae Park <sj@kernel.org>
    Tested-by: Mark Brown <broonie@kernel.org>
    Tested-by: Shuah Khan <skhan@linuxfoundation.org>
    Tested-by: Justin M. Forbes <jforbes@fedoraproject.org>
    Tested-by: Bagas Sanjaya <bagasdotme@gmail.com>
    Tested-by: Jon Hunter <jonathanh@nvidia.com>
    Tested-by: Christian Heusel <christian@heusel.eu>
    Tested-by: Salvatore Bonaccorso <carnil@debian.org>
    Tested-by: Allen Pais <apais@linux.microsoft.com>
    Tested-by: Ron Economos <re@w6rz.net>
    Tested-by: Linux Kernel Functional Testing <lkft@linaro.org>
    Tested-by: Kelsey Steele <kelseysteele@linux.microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    gregkh committed Jun 27, 2024
    Configuration menu
    Copy the full SHA
    12c740d View commit details
    Browse the repository at this point in the history

Commits on Jul 5, 2024

  1. usb: typec: ucsi: Never send a lone connector change ack

    [ Upstream commit de52aca ]
    
    Some PPM implementation do not like UCSI_ACK_CONNECTOR_CHANGE
    without UCSI_ACK_COMMAND_COMPLETE. Moreover, doing this is racy
    as it requires sending two UCSI_ACK_CC_CI commands in a row and
    the second one will be started with UCSI_CCI_ACK_COMPLETE already
    set in CCI.
    
    Bundle the UCSI_ACK_CONNECTOR_CHANGE with the UCSI_ACK_COMMAND_COMPLETE
    for the UCSI_GET_CONNECTOR_STATUS command that is sent while
    handling a connector change event.
    
    Signed-off-by: Christian A. Ehrhardt <lk@c--e.de>
    Reviewed-by: Heikki Krogerus <heikki.krogerus@linux.intel.com>
    Tested-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
    Link: https://lore.kernel.org/r/20240327224554.1772525-3-lk@c--e.de
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Stable-dep-of: 8bdf8a4 ("usb: typec: ucsi: Ack also failed Get Error commands")
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    Christian A. Ehrhardt authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    4e9bf36 View commit details
    Browse the repository at this point in the history
  2. usb: typec: ucsi: Ack also failed Get Error commands

    [ Upstream commit 8bdf8a4 ]
    
    It is possible that also the GET_ERROR command fails. If
    that happens, the command completion still needs to be
    acknowledged. Otherwise the interface will be stuck until
    it's reset.
    
    Reported-by: Ammy Yi <ammy.yi@intel.com>
    Fixes: bdc62f2 ("usb: typec: ucsi: Simplified registration and I/O API")
    Cc: stable@vger.kernel.org
    Signed-off-by: Heikki Krogerus <heikki.krogerus@linux.intel.com>
    Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
    Link: https://lore.kernel.org/r/20240531104653.1303519-1-heikki.krogerus@linux.intel.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    Heikki Krogerus authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    98814a4 View commit details
    Browse the repository at this point in the history
  3. pinctrl: renesas: rzg2l: Use spin_{lock,unlock}_irq{save,restore}

    [ Upstream commit a39741d ]
    
    On PREEMPT_RT kernels the spinlock_t maps to an rtmutex. Using
    raw_spin_lock_irqsave()/raw_spin_unlock_irqrestore() on
    &pctrl->lock.rlock breaks the PREEMPT_RT builds. To fix this use
    spin_lock_irqsave()/spin_unlock_irqrestore() on &pctrl->lock.
    
    Fixes: 02cd2d3 ("pinctrl: renesas: rzg2l: Configure the interrupt type on resume")
    Reported-by: Diederik de Haas <didi.debian@cknow.org>
    Closes: https://lore.kernel.org/all/131999629.KQPSlr0Zke@bagend
    Signed-off-by: Claudiu Beznea <claudiu.beznea.uj@bp.renesas.com>
    Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>
    Link: https://lore.kernel.org/r/20240522055421.2842689-1-claudiu.beznea.uj@bp.renesas.com
    Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    claudiubeznea authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    6777add View commit details
    Browse the repository at this point in the history
  4. Input: ili210x - fix ili251x_read_touch_data() return value

    [ Upstream commit 9f0fad0 ]
    
    The caller of this function treats all non-zero values as an error, so
    the return value of i2c_master_recv() cannot be returned directly.
    
    This fixes touch reporting when there are more than 6 active touches.
    
    Fixes: ef536ab ("Input: ili210x - define and use chip operations structure")
    Signed-off-by: John Keeping <jkeeping@inmusicbrands.com>
    Link: https://lore.kernel.org/r/20240523085624.2295988-1-jkeeping@inmusicbrands.com
    Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    johnkeeping authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    bdaeca1 View commit details
    Browse the repository at this point in the history
  5. pinctrl: fix deadlock in create_pinctrl() when handling -EPROBE_DEFER

    [ Upstream commit adec57f ]
    
    In create_pinctrl(), pinctrl_maps_mutex is acquired before calling
    add_setting(). If add_setting() returns -EPROBE_DEFER, create_pinctrl()
    calls pinctrl_free(). However, pinctrl_free() attempts to acquire
    pinctrl_maps_mutex, which is already held by create_pinctrl(), leading to
    a potential deadlock.
    
    This patch resolves the issue by releasing pinctrl_maps_mutex before
    calling pinctrl_free(), preventing the deadlock.
    
    This bug was discovered and resolved using Coverity Static Analysis
    Security Testing (SAST) by Synopsys, Inc.
    
    Fixes: 42fed7b ("pinctrl: move subsystem mutex to pinctrl_dev struct")
    Suggested-by: Maximilian Heyne <mheyne@amazon.de>
    Signed-off-by: Hagar Hemdan <hagarhem@amazon.com>
    Link: https://lore.kernel.org/r/20240604085838.3344-1-hagarhem@amazon.com
    Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    hagarhem authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    48a7a7c View commit details
    Browse the repository at this point in the history
  6. pinctrl: rockchip: fix pinmux bits for RK3328 GPIO2-B pins

    [ Upstream commit e8448a6 ]
    
    The pinmux bits for GPIO2-B0 to GPIO2-B6 actually have 2 bits width,
    correct the bank flag for GPIO2-B. The pinmux bits for GPIO2-B7 is
    recalculated so it remain unchanged.
    
    The pinmux bits for those pins are not explicitly specified in RK3328
    TRM, however we can get hint from pad name and its correspinding IOMUX
    setting for pins in interface descriptions. The correspinding IOMIX
    settings for GPIO2-B0 to GPIO2-B6 can be found in the same row next to
    occurrences of following pad names in RK3328 TRM.
    
    GPIO2-B0: IO_SPIclkm0_GPIO2B0vccio5
    GPIO2-B1: IO_SPItxdm0_GPIO2B1vccio5
    GPIO2-B2: IO_SPIrxdm0_GPIO2B2vccio5
    GPIO2-B3: IO_SPIcsn0m0_GPIO2B3vccio5
    GPIO2-B4: IO_SPIcsn1m0_FLASHvol_sel_GPIO2B4vccio5
    GPIO2-B5: IO_ I2C2sda_TSADCshut_GPIO2B5vccio5
    GPIO2-B6: IO_ I2C2scl_GPIO2B6vccio5
    
    This fix has been tested on NanoPi R2S for fixing confliting pinmux bits
    between GPIO2-B7 with GPIO2-B5.
    
    Signed-off-by: Huang-Huang Bao <i@eh5.me>
    Reviewed-by: Heiko Stuebner <heiko@sntech.de>
    Fixes: 3818e4a ("pinctrl: rockchip: Add rk3328 pinctrl support")
    Link: https://lore.kernel.org/r/20240606125755.53778-2-i@eh5.me
    Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    EHfive authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    29d8101 View commit details
    Browse the repository at this point in the history
  7. pinctrl: rockchip: fix pinmux bits for RK3328 GPIO3-B pins

    [ Upstream commit 5ef6914 ]
    
    The pinmux bits for GPIO3-B1 to GPIO3-B6 pins are not explicitly
    specified in RK3328 TRM, however we can get hint from pad name and its
    correspinding IOMUX setting for pins in interface descriptions. The
    correspinding IOMIX settings for these pins can be found in the same
    row next to occurrences of following pad names in RK3328 TRM.
    
    GPIO3-B1:  IO_TSPd5m0_CIFdata5m0_GPIO3B1vccio6
    GPIO3-B2: IO_TSPd6m0_CIFdata6m0_GPIO3B2vccio6
    GPIO3-B3: IO_TSPd7m0_CIFdata7m0_GPIO3B3vccio6
    GPIO3-B4: IO_CARDclkm0_GPIO3B4vccio6
    GPIO3-B5: IO_CARDrstm0_GPIO3B5vccio6
    GPIO3-B6: IO_CARDdetm0_GPIO3B6vccio6
    
    Add pinmux data to rk3328_mux_recalced_data as mux register offset for
    these pins does not follow rockchip convention.
    
    Signed-off-by: Huang-Huang Bao <i@eh5.me>
    Reviewed-by: Heiko Stuebner <heiko@sntech.de>
    Fixes: 3818e4a ("pinctrl: rockchip: Add rk3328 pinctrl support")
    Link: https://lore.kernel.org/r/20240606125755.53778-3-i@eh5.me
    Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    EHfive authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    456447f View commit details
    Browse the repository at this point in the history
  8. pinctrl: rockchip: use dedicated pinctrl type for RK3328

    [ Upstream commit 01b4b1d ]
    
    rk3328_pin_ctrl uses type of RK3288 which has a hack in
    rockchip_pinctrl_suspend and rockchip_pinctrl_resume to restore GPIO6-C6
    at assume, the hack is not applicable to RK3328 as GPIO6 is not even
    exist in it. So use a dedicated pinctrl type to skip this hack.
    
    Fixes: 3818e4a ("pinctrl: rockchip: Add rk3328 pinctrl support")
    Reviewed-by: Heiko Stuebner <heiko@sntech.de>
    Signed-off-by: Huang-Huang Bao <i@eh5.me>
    Link: https://lore.kernel.org/r/20240606125755.53778-4-i@eh5.me
    Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    EHfive authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    7127c68 View commit details
    Browse the repository at this point in the history
  9. pinctrl: rockchip: fix pinmux reset in rockchip_pmx_set

    [ Upstream commit 4ea4d48 ]
    
    rockchip_pmx_set reset all pinmuxs in group to 0 in the case of error,
    add missing bank data retrieval in that code to avoid setting mux on
    unexpected pins.
    
    Fixes: 1479718 ("pinctrl: rockchip: add return value to rockchip_set_mux")
    Reviewed-by: Heiko Stuebner <heiko@sntech.de>
    Signed-off-by: Huang-Huang Bao <i@eh5.me>
    Link: https://lore.kernel.org/r/20240606125755.53778-5-i@eh5.me
    Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    EHfive authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    66ea238 View commit details
    Browse the repository at this point in the history
  10. MIPS: pci: lantiq: restore reset gpio polarity

    [ Upstream commit 277a036 ]
    
    Commit 90c2d2e ("MIPS: pci: lantiq: switch to using gpiod API") not
    only switched to the gpiod API, but also inverted / changed the polarity
    of the GPIO.
    
    According to the PCI specification, the RST# pin is an active-low
    signal. However, most of the device trees that have been widely used for
    a long time (mainly in the openWrt project) define this GPIO as
    active-high and the old driver code inverted the signal internally.
    
    Apparently there are actually boards where the reset gpio must be
    operated inverted. For this reason, we cannot use the GPIOD_OUT_LOW/HIGH
    flag for initialization. Instead, we must explicitly set the gpio to
    value 1 in order to take into account any "GPIO_ACTIVE_LOW" flag that
    may have been set.
    
    In order to remain compatible with all these existing device trees, we
    should therefore keep the logic as it was before the commit.
    
    Fixes: 90c2d2e ("MIPS: pci: lantiq: switch to using gpiod API")
    Cc: stable@vger.kernel.org
    Signed-off-by: Martin Schiller <ms@dev.tdt.de>
    Signed-off-by: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    sch-m authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    ad9ffd8 View commit details
    Browse the repository at this point in the history
  11. pwm: stm32: Improve precision of calculation in .apply()

    [ Upstream commit e419617 ]
    
    While mathematically it's ok to calculate the number of cyles for the
    duty cycle as:
    
    	duty_cycles = period_cycles * duty_ns / period_ns
    
    this doesn't always give the right result when doing integer math. This
    is best demonstrated using an example: With the input clock running at
    208877930 Hz a request for duty_cycle = 383 ns and period = 49996 ns
    results in
    
    	period_cycles = clkrate * period_ns / NSEC_PER_SEC = 10443.06098828
    
    Now calculating duty_cycles with the above formula gives:
    
    	duty_cycles = 10443.06098828 * 383 / 49996 = 80.00024719
    
    However with period_cycle truncated to an integer results in:
    
    	duty_cycles = 10443 * 383 / 49996 = 79.99977998239859
    
    So while a value of (a little more than) 80 would be the right result,
    only 79 is used here. The problem here is that 14443 is a rounded result
    that should better not be used to do further math. So to fix that use
    the exact formular similar to how period_cycles is calculated.
    
    Link: https://lore.kernel.org/r/7628ecd8a7538aa5a7397f0fc4199a077168e8a6.1710711976.git.u.kleine-koenig@pengutronix.de
    Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
    Stable-dep-of: c45fcf4 ("pwm: stm32: Refuse too small period requests")
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    Uwe Kleine-König authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    70b7eb9 View commit details
    Browse the repository at this point in the history
  12. pwm: stm32: Fix for settings using period > UINT32_MAX

    [ Upstream commit d44d635 ]
    
    stm32_pwm_config() took the duty_cycle and period values with the type
    int, however stm32_pwm_apply() passed u64 values there. Expand the
    function parameters to u64 to not discard relevant bits and adapt the
    calculations to the wider type.
    
    To ensure the calculations won't overflow, check in .probe() the input
    clk doesn't run faster than 1 GHz.
    
    Link: https://lore.kernel.org/r/06b4a650a608d0887d934c1b2b8919e0f78e4db2.1710711976.git.u.kleine-koenig@pengutronix.de
    Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
    Stable-dep-of: c45fcf4 ("pwm: stm32: Refuse too small period requests")
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    Uwe Kleine-König authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    131486f View commit details
    Browse the repository at this point in the history
  13. pwm: stm32: Calculate prescaler with a division instead of a loop

    [ Upstream commit 8002fbe ]
    
    Instead of looping over increasing values for the prescaler and testing
    if it's big enough, calculate the value using a single division.
    
    Link: https://lore.kernel.org/r/498a44b313a6c0a84ccddd03cd67aadaaaf7daf2.1710711976.git.u.kleine-koenig@pengutronix.de
    Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
    Stable-dep-of: c45fcf4 ("pwm: stm32: Refuse too small period requests")
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    Uwe Kleine-König authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    44ac934 View commit details
    Browse the repository at this point in the history
  14. pwm: stm32: Refuse too small period requests

    [ Upstream commit c45fcf4 ]
    
    If period_ns is small, prd might well become 0. Catch that case because
    otherwise with
    
    	regmap_write(priv->regmap, TIM_ARR, prd - 1);
    
    a few lines down quite a big period is configured.
    
    Fixes: 7edf736 ("pwm: Add driver for STM32 plaftorm")
    Cc: stable@vger.kernel.org
    Reviewed-by: Trevor Gamblin <tgamblin@baylibre.com>
    Signed-off-by: Uwe Kleine-König <u.kleine-koenig@baylibre.com>
    Link: https://lore.kernel.org/r/b86f62f099983646f97eeb6bfc0117bb2d0c340d.1718979150.git.u.kleine-koenig@baylibre.com
    Signed-off-by: Uwe Kleine-König <ukleinek@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    Uwe Kleine-König authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    8176e43 View commit details
    Browse the repository at this point in the history
  15. ASoC: cs42l43: Increase default type detect time and button delay

    [ Upstream commit afe3772 ]
    
    Some problematic headsets have been discovered, to help with correctly
    identifying these, the detect time must be increased. Also improve the
    reliability of the impedance value from the button detect by slightly
    increasing the button detect delay.
    
    Fixes: 686b8f7 ("ASoC: cs42l43: Lower default type detect time")
    Signed-off-by: Maciej Strozek <mstrozek@opensource.cirrus.com>
    Signed-off-by: Charles Keepax <ckeepax@opensource.cirrus.com>
    Link: https://msgid.link/r/20240604132843.3309114-1-ckeepax@opensource.cirrus.com
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    Maciej Strozek authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    0d9e3bf View commit details
    Browse the repository at this point in the history
  16. ASoC: rockchip: i2s-tdm: Fix trcm mode by setting clock on right mclk

    [ Upstream commit ccd8d75 ]
    
    When TRCM mode is enabled, I2S RX and TX clocks are synchronized through
    selected clock source. Without this fix BCLK and LRCK might get parented
    to an uninitialized MCLK and the DAI will receive data at wrong pace.
    
    However, unlike in original i2s-tdm driver, there is no need to manually
    synchronize mclk_rx and mclk_tx, as only one gets used anyway.
    
    Tested on a board with RK3568 SoC and Silergy SY24145S codec with enabled and
    disabled TRCM mode.
    
    Fixes: 9e2ab4b ("ASoC: rockchip: i2s-tdm: Fix inaccurate sampling rates")
    Signed-off-by: Alibek Omarov <a1ba.omarov@gmail.com>
    Reviewed-by: Luca Ceresoli <luca.ceresoli@bootlin.com>
    Link: https://msgid.link/r/20240604184752.697313-1-a1ba.omarov@gmail.com
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    a1batross authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    56f857e View commit details
    Browse the repository at this point in the history
  17. ASoC: mediatek: mt8183-da7219-max98357: Fix kcontrol name collision

    [ Upstream commit 97d8613 ]
    
    Since "Headphone Switch" kcontrol name has already been used by da7219,
    rename the control name from "Headphone" to "Headphones" to prevent the
    colision. Also, this change makes kcontrol name align with the one in
    mt8186-mt6366-da7219-max98357.c.
    
    Fixes: 9c7388b ("ASoC: mediatek: mt8183-da7219-max98357: Map missing jack kcontrols")
    Change-Id: I9ae69a4673cd04786b247cc514fdd20f878ef009
    Signed-off-by: Hsin-Te Yuan <yuanhsinte@chromium.org>
    Reviewed-by: Chen-Yu Tsai <wenst@chromium.org>
    Link: https://msgid.link/r/20240531-da7219-v1-1-ac3343f3ae6a@chromium.org
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    Hsin-Te Yuan authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    03fbe6f View commit details
    Browse the repository at this point in the history
  18. ASoC: atmel: atmel-classd: Re-add dai_link->platform to fix card init

    [ Upstream commit 2ed2216 ]
    
    The removed dai_link->platform component cause a fail which
    is exposed at runtime. (ex: when a sound tool is used)
    This patch re-adds the dai_link->platform component to have
    a full card registered.
    
    Before this patch:
    :~$ aplay -l
    **** List of PLAYBACK Hardware Devices ****
    card 0: CLASSD [CLASSD], device 0: CLASSD PCM snd-soc-dummy-dai-0 []
        Subdevices: 1/1
        Subdevice #0: subdevice #0
    
    :~$ speaker-test -t sine
    speaker-test 1.2.6
    Playback device is default
    Stream parameters are 48000Hz, S16_LE, 1 channels
    Sine wave rate is 440.0000Hz
    Playback open error: -22,Invalid argument
    
    After this patch which restores the platform component:
    :~$ aplay -l
    **** List of PLAYBACK Hardware Devices ****
    card 0: CLASSD [CLASSD], device 0: CLASSD PCM snd-soc-dummy-dai-0
    						[CLASSD PCM snd-soc-dummy-dai-0]
        Subdevices: 1/1
        Subdevice #0: subdevice #0
    -> Resolve the playback error.
    
    Fixes: 2f650f8 ("ASoC: atmel: remove unnecessary dai_link->platform")
    Signed-off-by: Andrei Simion <andrei.simion@microchip.com>
    Acked-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
    Link: https://msgid.link/r/20240604101030.237792-1-andrei.simion@microchip.com
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    asimion797 authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    598f10a View commit details
    Browse the repository at this point in the history
  19. workqueue: Increase worker desc's length to 32

    [ Upstream commit 231035f ]
    
    Commit 31c8900 ("workqueue.c: Increase workqueue name length")
    increased WQ_NAME_LEN from 24 to 32, but forget to increase
    WORKER_DESC_LEN, which would cause truncation when setting kworker's
    desc from workqueue_struct's name, process_one_work() for example.
    
    Fixes: 31c8900 ("workqueue.c: Increase workqueue name length")
    
    Signed-off-by: Wenchao Hao <haowenchao22@gmail.com>
    CC: Audra Mitchell <audra@redhat.com>
    Signed-off-by: Tejun Heo <tj@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    haowenchao authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    1929539 View commit details
    Browse the repository at this point in the history
  20. ASoC: q6apm-lpass-dai: close graph on prepare errors

    [ Upstream commit be1fae6 ]
    
    There is an issue around with error handling and graph management with
    the exising code, none of the error paths close the graph, which result in
    leaving the loaded graph in dsp, however the driver thinks otherwise.
    
    This can have a nasty side effect specially when we try to load the same
    graph to dsp, dsp returns error which leaves the board with no sound and
    requires restart.
    
    Fix this by properly closing the graph when we hit errors between
    open and close.
    
    Fixes: 30ad723 ("ASoC: qdsp6: audioreach: add q6apm lpass dai support")
    Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
    Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
    Tested-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> # X13s
    Link: https://lore.kernel.org/r/20240613-q6apm-fixes-v1-1-d88953675ab3@linaro.org
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    Srinivas-Kandagatla authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    ee211a8 View commit details
    Browse the repository at this point in the history
  21. bpf: Add missed var_off setting in set_sext32_default_val()

    [ Upstream commit 380d5f8 ]
    
    Zac reported a verification failure and Alexei reproduced the issue
    with a simple reproducer ([1]). The verification failure is due to missed
    setting for var_off.
    
    The following is the reproducer in [1]:
      0: R1=ctx() R10=fp0
      0: (71) r3 = *(u8 *)(r10 -387)        ;
         R3_w=scalar(smin=smin32=0,smax=umax=smax32=umax32=255,var_off=(0x0; 0xff)) R10=fp0
      1: (bc) w7 = (s8)w3                   ;
         R3_w=scalar(smin=smin32=0,smax=umax=smax32=umax32=255,var_off=(0x0; 0xff))
         R7_w=scalar(smin=smin32=0,smax=umax=smax32=umax32=127,var_off=(0x0; 0x7f))
      2: (36) if w7 >= 0x2533823b goto pc-3
         mark_precise: frame0: last_idx 2 first_idx 0 subseq_idx -1
         mark_precise: frame0: regs=r7 stack= before 1: (bc) w7 = (s8)w3
         mark_precise: frame0: regs=r3 stack= before 0: (71) r3 = *(u8 *)(r10 -387)
      2: R7_w=scalar(smin=smin32=0,smax=umax=smax32=umax32=127,var_off=(0x0; 0x7f))
      3: (b4) w0 = 0                        ; R0_w=0
      4: (95) exit
    
    Note that after insn 1, the var_off for R7 is (0x0; 0x7f). This is not correct
    since upper 24 bits of w7 could be 0 or 1. So correct var_off should be
    (0x0; 0xffffffff). Missing var_off setting in set_sext32_default_val() caused later
    incorrect analysis in zext_32_to_64(dst_reg) and reg_bounds_sync(dst_reg).
    
    To fix the issue, set var_off correctly in set_sext32_default_val(). The correct
    reg state after insn 1 becomes:
      1: (bc) w7 = (s8)w3                   ;
         R3_w=scalar(smin=smin32=0,smax=umax=smax32=umax32=255,var_off=(0x0; 0xff))
         R7_w=scalar(smin=0,smax=umax=0xffffffff,smin32=-128,smax32=127,var_off=(0x0; 0xffffffff))
    and at insn 2, the verifier correctly determines either branch is possible.
    
      [1] https://lore.kernel.org/bpf/CAADnVQLPU0Shz7dWV4bn2BgtGdxN3uFHPeobGBA72tpg5Xoykw@mail.gmail.com/
    
    Fixes: 8100928 ("bpf: Support new sign-extension mov insns")
    Reported-by: Zac Ecob <zacecob@protonmail.com>
    Signed-off-by: Yonghong Song <yonghong.song@linux.dev>
    Link: https://lore.kernel.org/r/20240615174626.3994813-1-yonghong.song@linux.dev
    Signed-off-by: Alexei Starovoitov <ast@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    Yonghong Song authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    bf97221 View commit details
    Browse the repository at this point in the history
  22. bpf: Add missed var_off setting in coerce_subreg_to_size_sx()

    [ Upstream commit 44b7f71 ]
    
    In coerce_subreg_to_size_sx(), for the case where upper
    sign extension bits are the same for smax32 and smin32
    values, we missed to setup properly. This is especially
    problematic if both smax32 and smin32's sign extension
    bits are 1.
    
    The following is a simple example illustrating the inconsistent
    verifier states due to missed var_off:
    
      0: (85) call bpf_get_prandom_u32#7    ; R0_w=scalar()
      1: (bf) r3 = r0                       ; R0_w=scalar(id=1) R3_w=scalar(id=1)
      2: (57) r3 &= 15                      ; R3_w=scalar(smin=smin32=0,smax=umax=smax32=umax32=15,var_off=(0x0; 0xf))
      3: (47) r3 |= 128                     ; R3_w=scalar(smin=umin=smin32=umin32=128,smax=umax=smax32=umax32=143,var_off=(0x80; 0xf))
      4: (bc) w7 = (s8)w3
      REG INVARIANTS VIOLATION (alu): range bounds violation u64=[0xffffff80, 0x8f] s64=[0xffffff80, 0x8f]
        u32=[0xffffff80, 0x8f] s32=[0x80, 0xffffff8f] var_off=(0x80, 0xf)
    
    The var_off=(0x80, 0xf) is not correct, and the correct one should
    be var_off=(0xffffff80; 0xf) since from insn 3, we know that at
    insn 4, the sign extension bits will be 1. This patch fixed this
    issue by setting var_off properly.
    
    Fixes: 8100928 ("bpf: Support new sign-extension mov insns")
    Signed-off-by: Yonghong Song <yonghong.song@linux.dev>
    Link: https://lore.kernel.org/r/20240615174632.3995278-1-yonghong.song@linux.dev
    Signed-off-by: Alexei Starovoitov <ast@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    Yonghong Song authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    58b11b4 View commit details
    Browse the repository at this point in the history
  23. s390/pci: Add missing virt_to_phys() for directed DIBV

    [ Upstream commit 4181b51 ]
    
    In commit 4e4dc65 ("s390/pci: use phys_to_virt() for AIBVs/DIBVs")
    the setting of dibv_addr was missed when adding virt_to_phys(). This
    only affects systems with directed interrupt delivery enabled which are
    not generally available.
    
    Fixes: 4e4dc65 ("s390/pci: use phys_to_virt() for AIBVs/DIBVs")
    Reviewed-by: Heiko Carstens <hca@linux.ibm.com>
    Signed-off-by: Niklas Schnelle <schnelle@linux.ibm.com>
    Signed-off-by: Vasily Gorbik <gor@linux.ibm.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    niklas88 authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    3c4c7bd View commit details
    Browse the repository at this point in the history
  24. s390/virtio_ccw: Fix config change notifications

    [ Upstream commit d8354a1 ]
    
    Commit e3e9bda ("s390/virtio_ccw: use DMA handle from DMA API")
    broke configuration change notifications for virtio-ccw by putting the
    DMA address of *indicatorp directly into ccw->cda disregarding the fact
    that if !!(vcdev->is_thinint) then the function
    virtio_ccw_register_adapter_ind() will overwrite that ccw->cda value
    with the address of the virtio_thinint_area so it can actually set up
    the adapter interrupts via CCW_CMD_SET_IND_ADAPTER.  Thus we end up
    pointing to the wrong object for both CCW_CMD_SET_IND if setting up the
    adapter interrupts fails, and for CCW_CMD_SET_CONF_IND regardless
    whether it succeeds or fails.
    
    To fix this, let us save away the dma address of *indicatorp in a local
    variable, and copy it to ccw->cda after the "vcdev->is_thinint" branch.
    
    Fixes: e3e9bda ("s390/virtio_ccw: use DMA handle from DMA API")
    Reported-by: Boqiao Fu <bfu@redhat.com>
    Reported-by: Sebastian Mitterle <smitterl@redhat.com>
    Closes: https://issues.redhat.com/browse/RHEL-39983
    Tested-by: Thomas Huth <thuth@redhat.com>
    Reviewed-by: Eric Farman <farman@linux.ibm.com>
    Signed-off-by: Halil Pasic <pasic@linux.ibm.com>
    Link: https://lore.kernel.org/r/20240611214716.1002781-1-pasic@linux.ibm.com
    Signed-off-by: Vasily Gorbik <gor@linux.ibm.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    halil-pasic authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    5c38abd View commit details
    Browse the repository at this point in the history
  25. bpf: Fix remap of arena.

    [ Upstream commit b90d77e ]
    
    The bpf arena logic didn't account for mremap operation. Add a refcnt for
    multiple mmap events to prevent use-after-free in arena_vm_close.
    
    Fixes: 3174603 ("bpf: Introduce bpf_arena.")
    Reported-by: Pengfei Xu <pengfei.xu@intel.com>
    Signed-off-by: Alexei Starovoitov <ast@kernel.org>
    Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
    Reviewed-by: Barret Rhoden <brho@google.com>
    Tested-by: Pengfei Xu <pengfei.xu@intel.com>
    Closes: https://lore.kernel.org/bpf/Zmuw29IhgyPNKnIM@xpf.sh.intel.com
    Link: https://lore.kernel.org/bpf/20240617171812.76634-1-alexei.starovoitov@gmail.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    Alexei Starovoitov authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    87496a1 View commit details
    Browse the repository at this point in the history
  26. ASoC: amd: acp: add a null check for chip_pdev structure

    [ Upstream commit 98d919d ]
    
    When acp platform device creation is skipped, chip->chip_pdev value will
    remain NULL. Add NULL check for chip->chip_pdev structure in
    snd_acp_resume() function to avoid null pointer dereference.
    
    Fixes: 088a409 ("ASoC: amd: acp: add pm ops support for acp pci driver")
    Signed-off-by: Vijendar Mukunda <Vijendar.Mukunda@amd.com>
    Link: https://msgid.link/r/20240617072844.871468-1-Vijendar.Mukunda@amd.com
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    vijendarmukunda authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    b0c39ae View commit details
    Browse the repository at this point in the history
  27. ASoC: amd: acp: remove i2s configuration check in acp_i2s_probe()

    [ Upstream commit 70fa390 ]
    
    ACP supports different pin configurations for I2S IO. Checking ACP pin
    configuration value against specific value breaks the functionality for
    other I2S pin configurations. This check is no longer required in i2s dai
    driver probe call as i2s configuration check will be verified during acp
    platform device creation sequence.
    Remove i2s_mode check in acp_i2s_probe() function.
    
    Fixes: b24484c ("ASoC: amd: acp: ACP code generic to support newer platforms")
    Signed-off-by: Vijendar Mukunda <Vijendar.Mukunda@amd.com>
    Link: https://msgid.link/r/20240617072844.871468-2-Vijendar.Mukunda@amd.com
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    vijendarmukunda authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    c33a142 View commit details
    Browse the repository at this point in the history
  28. ASoC: amd: acp: move chip->flag variable assignment

    [ Upstream commit 379bcd2 ]
    
    chip->flag variable assignment will be skipped when acp platform device
    creation is skipped. In this case chip>flag value will not be set.
    chip->flag variable should be assigned along with other structure
    variables for 'chip' structure. Move chip->flag variable assignment
    prior to acp platform device creation.
    
    Fixes: 3a94c8a ("ASoC: amd: acp: add code for scanning acp pdm controller")
    Signed-off-by: Vijendar Mukunda <Vijendar.Mukunda@amd.com>
    Link: https://msgid.link/r/20240617072844.871468-3-Vijendar.Mukunda@amd.com
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    vijendarmukunda authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    819ebcd View commit details
    Browse the repository at this point in the history
  29. ASoC: fsl-asoc-card: set priv->pdev before using it

    [ Upstream commit 90f3feb ]
    
    priv->pdev pointer was set after being used in
    fsl_asoc_card_audmux_init().
    Move this assignment at the start of the probe function, so
    sub-functions can correctly use pdev through priv.
    
    fsl_asoc_card_audmux_init() dereferences priv->pdev to get access to the
    dev struct, used with dev_err macros.
    As priv is zero-initialised, there would be a NULL pointer dereference.
    Note that if priv->dev is dereferenced before assignment but never used,
    for example if there is no error to be printed, the driver won't crash
    probably due to compiler optimisations.
    
    Fixes: 708b435 ("ASoC: fsl: Add Freescale Generic ASoC Sound Card with ASRC support")
    Signed-off-by: Elinor Montmasson <elinor.montmasson@savoirfairelinux.com>
    Link: https://patch.msgid.link/20240620132511.4291-2-elinor.montmasson@savoirfairelinux.com
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    Revalioli authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    7c18b4d View commit details
    Browse the repository at this point in the history
  30. net: dsa: microchip: fix initial port flush problem

    [ Upstream commit ad53f5f ]
    
    The very first flush in any port will flush all learned addresses in all
    ports.  This can be observed by unplugging the cable from one port while
    additional ports are connected and dumping the fdb entries.
    
    This problem is caused by the initially wrong value programmed to the
    REG_SW_LUE_CTRL_1 register.  Setting SW_FLUSH_STP_TABLE and
    SW_FLUSH_MSTP_TABLE bits does not have an immediate effect.  It is when
    ksz9477_flush_dyn_mac_table() is called then the SW_FLUSH_STP_TABLE bit
    takes effect and flushes all learned entries.  After that call both bits
    are reset and so the next port flush will not cause such problem again.
    
    Fixes: b987e98 ("dsa: add DSA switch driver for Microchip KSZ9477")
    Signed-off-by: Tristram Ha <tristram.ha@microchip.com>
    Link: https://patch.msgid.link/1718756202-2731-1-git-send-email-Tristram.Ha@microchip.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    triha2work authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    5097b47 View commit details
    Browse the repository at this point in the history
  31. openvswitch: get related ct labels from its master if it is not confi…

    …rmed
    
    [ Upstream commit a23ac97 ]
    
    Ilya found a failure in running check-kernel tests with at_groups=144
    (144: conntrack - FTP SNAT orig tuple) in OVS repo. After his further
    investigation, the root cause is that the labels sent to userspace
    for related ct are incorrect.
    
    The labels for unconfirmed related ct should use its master's labels.
    However, the changes made in commit 8c8b733 ("openvswitch: set
    IPS_CONFIRMED in tmpl status only when commit is set in conntrack")
    led to getting labels from this related ct.
    
    So fix it in ovs_ct_get_labels() by changing to copy labels from its
    master ct if it is a unconfirmed related ct. Note that there is no
    fix needed for ct->mark, as it was already copied from its master
    ct for related ct in init_conntrack().
    
    Fixes: 8c8b733 ("openvswitch: set IPS_CONFIRMED in tmpl status only when commit is set in conntrack")
    Reported-by: Ilya Maximets <i.maximets@ovn.org>
    Signed-off-by: Xin Long <lucien.xin@gmail.com>
    Reviewed-by: Ilya Maximets <i.maximets@ovn.org>
    Tested-by: Ilya Maximets <i.maximets@ovn.org>
    Reviewed-by: Aaron Conole <aconole@redhat.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    lxin authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    61025c1 View commit details
    Browse the repository at this point in the history
  32. bonding: fix incorrect software timestamping report

    [ Upstream commit a95b031 ]
    
    The __ethtool_get_ts_info function returns directly if the device has a
    get_ts_info() method. For bonding with an active slave, this works correctly
    as we simply return the real device's timestamping information. However,
    when there is no active slave, we only check the slave's TX software
    timestamp information. We still need to set the phc index and RX timestamp
    information manually. Otherwise, the result will be look like:
    
      Time stamping parameters for bond0:
      Capabilities:
              software-transmit
      PTP Hardware Clock: 0
      Hardware Transmit Timestamp Modes: none
      Hardware Receive Filter Modes: none
    
    This issue does not affect VLAN or MACVLAN devices, as they only have one
    downlink and can directly use the downlink's timestamping information.
    
    Fixes: b8768dc ("net: ethtool: Refactor identical get_ts_info implementations.")
    Reported-by: Liang Li <liali@redhat.com>
    Closes: https://issues.redhat.com/browse/RHEL-42409
    Signed-off-by: Hangbin Liu <liuhangbin@gmail.com>
    Acked-by: Kory Maincent <kory.maincent@bootlin.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    liuhangbin authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    17a3d0d View commit details
    Browse the repository at this point in the history
  33. ionic: fix kernel panic due to multi-buffer handling

    [ Upstream commit e3f02f3 ]
    
    Currently, the ionic_run_xdp() doesn't handle multi-buffer packets
    properly for XDP_TX and XDP_REDIRECT.
    When a jumbo frame is received, the ionic_run_xdp() first makes xdp
    frame with all necessary pages in the rx descriptor.
    And if the action is either XDP_TX or XDP_REDIRECT, it should unmap
    dma-mapping and reset page pointer to NULL for all pages, not only the
    first page.
    But it doesn't for SG pages. So, SG pages unexpectedly will be reused.
    It eventually causes kernel panic.
    
    Oops: general protection fault, probably for non-canonical address 0x504f4e4dbebc64ff: 0000 [#1] PREEMPT SMP NOPTI
    CPU: 3 PID: 0 Comm: swapper/3 Not tainted 6.10.0-rc3+ #25
    RIP: 0010:xdp_return_frame+0x42/0x90
    Code: 01 75 12 5b 4c 89 e6 5d 31 c9 41 5c 31 d2 41 5d e9 73 fd ff ff 44 8b 6b 20 0f b7 43 0a 49 81 ed 68 01 00 00 49 29 c5 49 01 fd <41> 80 7d0
    RSP: 0018:ffff99d00122ce08 EFLAGS: 00010202
    RAX: 0000000000005453 RBX: ffff8d325f904000 RCX: 0000000000000001
    RDX: 00000000670e1000 RSI: 000000011f90d000 RDI: 504f4e4d4c4b4a49
    RBP: ffff99d003907740 R08: 0000000000000000 R09: 0000000000000000
    R10: 000000011f90d000 R11: 0000000000000000 R12: ffff8d325f904010
    R13: 504f4e4dbebc64fd R14: ffff8d3242b070c8 R15: ffff99d0039077c0
    FS:  0000000000000000(0000) GS:ffff8d399f780000(0000) knlGS:0000000000000000
    CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
    CR2: 00007f41f6c85e38 CR3: 000000037ac30000 CR4: 00000000007506f0
    PKRU: 55555554
    Call Trace:
     <IRQ>
     ? die_addr+0x33/0x90
     ? exc_general_protection+0x251/0x2f0
     ? asm_exc_general_protection+0x22/0x30
     ? xdp_return_frame+0x42/0x90
     ionic_tx_clean+0x211/0x280 [ionic 15881354510e6a9c655c59c54812b319ed2cd015]
     ionic_tx_cq_service+0xd3/0x210 [ionic 15881354510e6a9c655c59c54812b319ed2cd015]
     ionic_txrx_napi+0x41/0x1b0 [ionic 15881354510e6a9c655c59c54812b319ed2cd015]
     __napi_poll.constprop.0+0x29/0x1b0
     net_rx_action+0x2c4/0x350
     handle_softirqs+0xf4/0x320
     irq_exit_rcu+0x78/0xa0
     common_interrupt+0x77/0x90
    
    Fixes: 5377805 ("ionic: implement xdp frags support")
    Signed-off-by: Taehee Yoo <ap420073@gmail.com>
    Reviewed-by: Shannon Nelson <shannon.nelson@amd.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    TaeheeYoo authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    8ae4015 View commit details
    Browse the repository at this point in the history
  34. mlxsw: pci: Fix driver initialization with Spectrum-4

    [ Upstream commit 0602697 ]
    
    Cited commit added support for a new reset flow ("all reset") which is
    deeper than the existing reset flow ("software reset") and allows the
    device's PCI firmware to be upgraded.
    
    In the new flow the driver first tells the firmware that "all reset" is
    required by issuing a new reset command (i.e., MRSR.command=6) and then
    triggers the reset by having the PCI core issue a secondary bus reset
    (SBR).
    
    However, due to a race condition in the device's firmware the device is
    not always able to recover from this reset, resulting in initialization
    failures [1].
    
    New firmware versions include a fix for the bug and advertise it using a
    new capability bit in the Management Capabilities Mask (MCAM) register.
    
    Avoid initialization failures by reading the new capability bit and
    triggering the new reset flow only if the bit is set. If the bit is not
    set, trigger a normal PCI hot reset by skipping the call to the
    Management Reset and Shutdown Register (MRSR).
    
    Normal PCI hot reset is weaker than "all reset", but it results in a
    fully operational driver and allows users to flash a new firmware, if
    they want to.
    
    [1]
    mlxsw_spectrum4 0000:01:00.0: not ready 1023ms after bus reset; waiting
    mlxsw_spectrum4 0000:01:00.0: not ready 2047ms after bus reset; waiting
    mlxsw_spectrum4 0000:01:00.0: not ready 4095ms after bus reset; waiting
    mlxsw_spectrum4 0000:01:00.0: not ready 8191ms after bus reset; waiting
    mlxsw_spectrum4 0000:01:00.0: not ready 16383ms after bus reset; waiting
    mlxsw_spectrum4 0000:01:00.0: not ready 32767ms after bus reset; waiting
    mlxsw_spectrum4 0000:01:00.0: not ready 65535ms after bus reset; giving up
    mlxsw_spectrum4 0000:01:00.0: PCI function reset failed with -25
    mlxsw_spectrum4 0000:01:00.0: cannot register bus device
    mlxsw_spectrum4: probe of 0000:01:00.0 failed with error -25
    
    Fixes: f257c73 ("mlxsw: pci: Add support for new reset flow")
    Reported-by: Maksym Yaremchuk <maksymy@nvidia.com>
    Signed-off-by: Ido Schimmel <idosch@nvidia.com>
    Tested-by: Maksym Yaremchuk <maksymy@nvidia.com>
    Reviewed-by: Simon Horman <horms@kernel.org>
    Signed-off-by: Petr Machata <petrm@nvidia.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    idosch authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    8af0f37 View commit details
    Browse the repository at this point in the history
  35. mlxsw: spectrum_buffers: Fix memory corruptions on Spectrum-4 systems

    [ Upstream commit c28947d ]
    
    The following two shared buffer operations make use of the Shared Buffer
    Status Register (SBSR):
    
     # devlink sb occupancy snapshot pci/0000:01:00.0
     # devlink sb occupancy clearmax pci/0000:01:00.0
    
    The register has two masks of 256 bits to denote on which ingress /
    egress ports the register should operate on. Spectrum-4 has more than
    256 ports, so the register was extended by cited commit with a new
    'port_page' field.
    
    However, when filling the register's payload, the driver specifies the
    ports as absolute numbers and not relative to the first port of the port
    page, resulting in memory corruptions [1].
    
    Fix by specifying the ports relative to the first port of the port page.
    
    [1]
    BUG: KASAN: slab-use-after-free in mlxsw_sp_sb_occ_snapshot+0xb6d/0xbc0
    Read of size 1 at addr ffff8881068cb00f by task devlink/1566
    [...]
    Call Trace:
     <TASK>
     dump_stack_lvl+0xc6/0x120
     print_report+0xce/0x670
     kasan_report+0xd7/0x110
     mlxsw_sp_sb_occ_snapshot+0xb6d/0xbc0
     mlxsw_devlink_sb_occ_snapshot+0x75/0xb0
     devlink_nl_sb_occ_snapshot_doit+0x1f9/0x2a0
     genl_family_rcv_msg_doit+0x20c/0x300
     genl_rcv_msg+0x567/0x800
     netlink_rcv_skb+0x170/0x450
     genl_rcv+0x2d/0x40
     netlink_unicast+0x547/0x830
     netlink_sendmsg+0x8d4/0xdb0
     __sys_sendto+0x49b/0x510
     __x64_sys_sendto+0xe5/0x1c0
     do_syscall_64+0xc1/0x1d0
     entry_SYSCALL_64_after_hwframe+0x77/0x7f
    [...]
    Allocated by task 1:
     kasan_save_stack+0x33/0x60
     kasan_save_track+0x14/0x30
     __kasan_kmalloc+0x8f/0xa0
     copy_verifier_state+0xbc2/0xfb0
     do_check_common+0x2c51/0xc7e0
     bpf_check+0x5107/0x9960
     bpf_prog_load+0xf0e/0x2690
     __sys_bpf+0x1a61/0x49d0
     __x64_sys_bpf+0x7d/0xc0
     do_syscall_64+0xc1/0x1d0
     entry_SYSCALL_64_after_hwframe+0x77/0x7f
    
    Freed by task 1:
     kasan_save_stack+0x33/0x60
     kasan_save_track+0x14/0x30
     kasan_save_free_info+0x3b/0x60
     poison_slab_object+0x109/0x170
     __kasan_slab_free+0x14/0x30
     kfree+0xca/0x2b0
     free_verifier_state+0xce/0x270
     do_check_common+0x4828/0xc7e0
     bpf_check+0x5107/0x9960
     bpf_prog_load+0xf0e/0x2690
     __sys_bpf+0x1a61/0x49d0
     __x64_sys_bpf+0x7d/0xc0
     do_syscall_64+0xc1/0x1d0
     entry_SYSCALL_64_after_hwframe+0x77/0x7f
    
    Fixes: f8538ae ("mlxsw: Add support for more than 256 ports in SBSR register")
    Signed-off-by: Ido Schimmel <idosch@nvidia.com>
    Reviewed-by: Petr Machata <petrm@nvidia.com>
    Reviewed-by: Simon Horman <horms@kernel.org>
    Signed-off-by: Petr Machata <petrm@nvidia.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    idosch authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    bf8781e View commit details
    Browse the repository at this point in the history
  36. bpf: Fix the corner case with may_goto and jump to the 1st insn.

    [ Upstream commit 5337ac4 ]
    
    When the following program is processed by the verifier:
    L1: may_goto L2
        goto L1
    L2: w0 = 0
        exit
    
    the may_goto insn is first converted to:
    L1: r11 = *(u64 *)(r10 -8)
        if r11 == 0x0 goto L2
        r11 -= 1
        *(u64 *)(r10 -8) = r11
        goto L1
    L2: w0 = 0
        exit
    
    then later as the last step the verifier inserts:
      *(u64 *)(r10 -8) = BPF_MAX_LOOPS
    as the first insn of the program to initialize loop count.
    
    When the first insn happens to be a branch target of some jmp the
    bpf_patch_insn_data() logic will produce:
    L1: *(u64 *)(r10 -8) = BPF_MAX_LOOPS
        r11 = *(u64 *)(r10 -8)
        if r11 == 0x0 goto L2
        r11 -= 1
        *(u64 *)(r10 -8) = r11
        goto L1
    L2: w0 = 0
        exit
    
    because instruction patching adjusts all jmps and calls, but for this
    particular corner case it's incorrect and the L1 label should be one
    instruction down, like:
        *(u64 *)(r10 -8) = BPF_MAX_LOOPS
    L1: r11 = *(u64 *)(r10 -8)
        if r11 == 0x0 goto L2
        r11 -= 1
        *(u64 *)(r10 -8) = r11
        goto L1
    L2: w0 = 0
        exit
    
    and that's what this patch is fixing.
    After bpf_patch_insn_data() call adjust_jmp_off() to adjust all jmps
    that point to newly insert BPF_ST insn to point to insn after.
    
    Note that bpf_patch_insn_data() cannot easily be changed to accommodate
    this logic, since jumps that point before or after a sequence of patched
    instructions have to be adjusted with the full length of the patch.
    
    Conceptually it's somewhat similar to "insert" of instructions between other
    instructions with weird semantics. Like "insert" before 1st insn would require
    adjustment of CALL insns to point to newly inserted 1st insn, but not an
    adjustment JMP insns that point to 1st, yet still adjusting JMP insns that
    cross over 1st insn (point to insn before or insn after), hence use simple
    adjust_jmp_off() logic to fix this corner case. Ideally bpf_patch_insn_data()
    would have an auxiliary info to say where 'the start of newly inserted patch
    is', but it would be too complex for backport.
    
    Fixes: 011832b ("bpf: Introduce may_goto instruction")
    Reported-by: Zac Ecob <zacecob@protonmail.com>
    Signed-off-by: Alexei Starovoitov <ast@kernel.org>
    Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
    Acked-by: Eduard Zingerman <eddyz87@gmail.com>
    Closes: https://lore.kernel.org/bpf/CAADnVQJ_WWx8w4b=6Gc2EpzAjgv+6A0ridnMz2TvS2egj4r3Gw@mail.gmail.com/
    Link: https://lore.kernel.org/bpf/20240619011859.79334-1-alexei.starovoitov@gmail.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    Alexei Starovoitov authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    e47a1a7 View commit details
    Browse the repository at this point in the history
  37. bpf: Fix overrunning reservations in ringbuf

    [ Upstream commit cfa1a23 ]
    
    The BPF ring buffer internally is implemented as a power-of-2 sized circular
    buffer, with two logical and ever-increasing counters: consumer_pos is the
    consumer counter to show which logical position the consumer consumed the
    data, and producer_pos which is the producer counter denoting the amount of
    data reserved by all producers.
    
    Each time a record is reserved, the producer that "owns" the record will
    successfully advance producer counter. In user space each time a record is
    read, the consumer of the data advanced the consumer counter once it finished
    processing. Both counters are stored in separate pages so that from user
    space, the producer counter is read-only and the consumer counter is read-write.
    
    One aspect that simplifies and thus speeds up the implementation of both
    producers and consumers is how the data area is mapped twice contiguously
    back-to-back in the virtual memory, allowing to not take any special measures
    for samples that have to wrap around at the end of the circular buffer data
    area, because the next page after the last data page would be first data page
    again, and thus the sample will still appear completely contiguous in virtual
    memory.
    
    Each record has a struct bpf_ringbuf_hdr { u32 len; u32 pg_off; } header for
    book-keeping the length and offset, and is inaccessible to the BPF program.
    Helpers like bpf_ringbuf_reserve() return `(void *)hdr + BPF_RINGBUF_HDR_SZ`
    for the BPF program to use. Bing-Jhong and Muhammad reported that it is however
    possible to make a second allocated memory chunk overlapping with the first
    chunk and as a result, the BPF program is now able to edit first chunk's
    header.
    
    For example, consider the creation of a BPF_MAP_TYPE_RINGBUF map with size
    of 0x4000. Next, the consumer_pos is modified to 0x3000 /before/ a call to
    bpf_ringbuf_reserve() is made. This will allocate a chunk A, which is in
    [0x0,0x3008], and the BPF program is able to edit [0x8,0x3008]. Now, lets
    allocate a chunk B with size 0x3000. This will succeed because consumer_pos
    was edited ahead of time to pass the `new_prod_pos - cons_pos > rb->mask`
    check. Chunk B will be in range [0x3008,0x6010], and the BPF program is able
    to edit [0x3010,0x6010]. Due to the ring buffer memory layout mentioned
    earlier, the ranges [0x0,0x4000] and [0x4000,0x8000] point to the same data
    pages. This means that chunk B at [0x4000,0x4008] is chunk A's header.
    bpf_ringbuf_submit() / bpf_ringbuf_discard() use the header's pg_off to then
    locate the bpf_ringbuf itself via bpf_ringbuf_restore_from_rec(). Once chunk
    B modified chunk A's header, then bpf_ringbuf_commit() refers to the wrong
    page and could cause a crash.
    
    Fix it by calculating the oldest pending_pos and check whether the range
    from the oldest outstanding record to the newest would span beyond the ring
    buffer size. If that is the case, then reject the request. We've tested with
    the ring buffer benchmark in BPF selftests (./benchs/run_bench_ringbufs.sh)
    before/after the fix and while it seems a bit slower on some benchmarks, it
    is still not significantly enough to matter.
    
    Fixes: 457f443 ("bpf: Implement BPF ring buffer and verifier support for it")
    Reported-by: Bing-Jhong Billy Jheng <billy@starlabs.sg>
    Reported-by: Muhammad Ramdhan <ramdhan@starlabs.sg>
    Co-developed-by: Bing-Jhong Billy Jheng <billy@starlabs.sg>
    Co-developed-by: Andrii Nakryiko <andrii@kernel.org>
    Signed-off-by: Bing-Jhong Billy Jheng <billy@starlabs.sg>
    Signed-off-by: Andrii Nakryiko <andrii@kernel.org>
    Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
    Signed-off-by: Andrii Nakryiko <andrii@kernel.org>
    Link: https://lore.kernel.org/bpf/20240621140828.18238-1-daniel@iogearbox.net
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    borkmann authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    47416c8 View commit details
    Browse the repository at this point in the history
  38. vxlan: Pull inner IP header in vxlan_xmit_one().

    [ Upstream commit 3139204 ]
    
    Ensure the inner IP header is part of the skb's linear data before
    setting old_iph. Otherwise, on a non-linear skb, old_iph could point
    outside of the packet data.
    
    Unlike classical VXLAN, which always encapsulates Ethernet packets,
    VXLAN-GPE can transport IP packets directly. In that case, we need to
    look at skb->protocol to figure out if an Ethernet header is present.
    
    Fixes: d342894 ("vxlan: virtual extensible lan")
    Signed-off-by: Guillaume Nault <gnault@redhat.com>
    Link: https://patch.msgid.link/2aa75f6fa62ac9dbe4f16ad5ba75dd04a51d4b99.1718804000.git.gnault@redhat.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    Guillaume Nault authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    173dae6 View commit details
    Browse the repository at this point in the history
  39. ibmvnic: Free any outstanding tx skbs during scrq reset

    [ Upstream commit 49bbeb5 ]
    
    There are 2 types of outstanding tx skb's:
    Type 1: Packets that are sitting in the drivers ind_buff that are
    waiting to be batch sent to the NIC. During a device reset, these are
    freed with a call to ibmvnic_tx_scrq_clean_buffer()
    Type 2: Packets that have been sent to the NIC and are awaiting a TX
    completion IRQ. These are free'd during a reset with a call to
    clean_tx_pools()
    
    During any reset which requires us to free the tx irq, ensure that the
    Type 2 skb references are freed. Since the irq is released, it is
    impossible for the NIC to inform of any completions.
    
    Furthermore, later in the reset process is a call to init_tx_pools()
    which marks every entry in the tx pool as free (ie not outstanding).
    So if the driver is to make a call to init_tx_pools(), it must first
    be sure that the tx pool is empty of skb references.
    
    This issue was discovered by observing the following in the logs during
    EEH testing:
    	TX free map points to untracked skb (tso_pool 0 idx=4)
    	TX free map points to untracked skb (tso_pool 0 idx=5)
    	TX free map points to untracked skb (tso_pool 1 idx=36)
    
    Fixes: 65d6470 ("ibmvnic: clean pending indirect buffs during reset")
    Signed-off-by: Nick Child <nnac123@linux.ibm.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    Nick Child authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    dfbe53f View commit details
    Browse the repository at this point in the history
  40. net: phy: micrel: add Microchip KSZ 9477 to the device table

    [ Upstream commit 54a4e5c ]
    
    PHY_ID_KSZ9477 was supported but not added to the device table passed to
    MODULE_DEVICE_TABLE.
    
    Fixes: fc3973a ("phy: micrel: add Microchip KSZ 9477 Switch PHY support")
    Signed-off-by: Enguerrand de Ribaucourt <enguerrand.de-ribaucourt@savoirfairelinux.com>
    Reviewed-by: Andrew Lunn <andrew@lunn.ch>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    deribaucourt authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    c553ba2 View commit details
    Browse the repository at this point in the history
  41. net: dsa: microchip: use collision based back pressure mode

    [ Upstream commit d963c95 ]
    
    Errata DS80000758 states that carrier sense back pressure mode can cause
    link down issues in 100BASE-TX half duplex mode. The datasheet also
    recommends to always use the collision based back pressure mode.
    
    Fixes: b987e98 ("dsa: add DSA switch driver for Microchip KSZ9477")
    Signed-off-by: Enguerrand de Ribaucourt <enguerrand.de-ribaucourt@savoirfairelinux.com>
    Reviewed-by: Woojung Huh <Woojung.huh@microchip.com>
    Acked-by: Arun Ramadoss <arun.ramadoss@microchip.com>
    Reviewed-by: Andrew Lunn <andrew@lunn.ch>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    deribaucourt authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    5add250 View commit details
    Browse the repository at this point in the history
  42. ice: Rebuild TC queues on VSI queue reconfiguration

    [ Upstream commit f4b91c1 ]
    
    TC queues needs to be correctly updated when the number of queues on
    a VSI is reconfigured, so netdev's queue and TC settings will be
    dynamically adjusted and could accurately represent the underlying
    hardware state after changes to the VSI queue counts.
    
    Fixes: 0754d65 ("ice: Add infrastructure for mqprio support via ndo_setup_tc")
    Reviewed-by: Wojciech Drewek <wojciech.drewek@intel.com>
    Signed-off-by: Jan Sokolowski <jan.sokolowski@intel.com>
    Signed-off-by: Karen Ostrowska <karen.ostrowska@intel.com>
    Tested-by: Pucha Himasekhar Reddy <himasekharx.reddy.pucha@intel.com> (A Contingent worker at Intel)
    Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    JanJSokolowski authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    3c27624 View commit details
    Browse the repository at this point in the history
  43. bpf: Fix may_goto with negative offset.

    [ Upstream commit 2b2efe1 ]
    
    Zac's syzbot crafted a bpf prog that exposed two bugs in may_goto.
    The 1st bug is the way may_goto is patched. When offset is negative
    it should be patched differently.
    The 2nd bug is in the verifier:
    when current state may_goto_depth is equal to visited state may_goto_depth
    it means there is an actual infinite loop. It's not correct to prune
    exploration of the program at this point.
    Note, that this check doesn't limit the program to only one may_goto insn,
    since 2nd and any further may_goto will increment may_goto_depth only
    in the queued state pushed for future exploration. The current state
    will have may_goto_depth == 0 regardless of number of may_goto insns
    and the verifier has to explore the program until bpf_exit.
    
    Fixes: 011832b ("bpf: Introduce may_goto instruction")
    Reported-by: Zac Ecob <zacecob@protonmail.com>
    Signed-off-by: Alexei Starovoitov <ast@kernel.org>
    Signed-off-by: Andrii Nakryiko <andrii@kernel.org>
    Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
    Acked-by: Eduard Zingerman <eddyz87@gmail.com>
    Closes: https://lore.kernel.org/bpf/CAADnVQL-15aNp04-cyHRn47Yv61NXfYyhopyZtUyxNojUZUXpA@mail.gmail.com/
    Link: https://lore.kernel.org/bpf/20240619235355.85031-1-alexei.starovoitov@gmail.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    Alexei Starovoitov authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    175827e View commit details
    Browse the repository at this point in the history
  44. xdp: Remove WARN() from __xdp_reg_mem_model()

    [ Upstream commit 7e9f794 ]
    
    syzkaller reports a warning in __xdp_reg_mem_model().
    
    The warning occurs only if __mem_id_init_hash_table() returns an error. It
    returns the error in two cases:
    
      1. memory allocation fails;
      2. rhashtable_init() fails when some fields of rhashtable_params
         struct are not initialized properly.
    
    The second case cannot happen since there is a static const rhashtable_params
    struct with valid fields. So, warning is only triggered when there is a
    problem with memory allocation.
    
    Thus, there is no sense in using WARN() to handle this error and it can be
    safely removed.
    
    WARNING: CPU: 0 PID: 5065 at net/core/xdp.c:299 __xdp_reg_mem_model+0x2d9/0x650 net/core/xdp.c:299
    
    CPU: 0 PID: 5065 Comm: syz-executor883 Not tainted 6.8.0-syzkaller-05271-gf99c5f563c17 #0
    Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 03/27/2024
    RIP: 0010:__xdp_reg_mem_model+0x2d9/0x650 net/core/xdp.c:299
    
    Call Trace:
     xdp_reg_mem_model+0x22/0x40 net/core/xdp.c:344
     xdp_test_run_setup net/bpf/test_run.c:188 [inline]
     bpf_test_run_xdp_live+0x365/0x1e90 net/bpf/test_run.c:377
     bpf_prog_test_run_xdp+0x813/0x11b0 net/bpf/test_run.c:1267
     bpf_prog_test_run+0x33a/0x3b0 kernel/bpf/syscall.c:4240
     __sys_bpf+0x48d/0x810 kernel/bpf/syscall.c:5649
     __do_sys_bpf kernel/bpf/syscall.c:5738 [inline]
     __se_sys_bpf kernel/bpf/syscall.c:5736 [inline]
     __x64_sys_bpf+0x7c/0x90 kernel/bpf/syscall.c:5736
     do_syscall_64+0xfb/0x240
     entry_SYSCALL_64_after_hwframe+0x6d/0x75
    
    Found by Linux Verification Center (linuxtesting.org) with syzkaller.
    
    Fixes: 8d5d885 ("xdp: rhashtable with allocator ID to pointer mapping")
    Signed-off-by: Daniil Dulov <d.dulov@aladdin.ru>
    Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
    Acked-by: Jesper Dangaard Brouer <hawk@kernel.org>
    Link: https://lore.kernel.org/all/20240617162708.492159-1-d.dulov@aladdin.ru
    Link: https://lore.kernel.org/bpf/20240624080747.36858-1-d.dulov@aladdin.ru
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    Daniil Dulov authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    f92298b View commit details
    Browse the repository at this point in the history
  45. ASoC: mediatek: mt8195: Add platform entry for ETDM1_OUT_BE dai link

    [ Upstream commit 282a448 ]
    
    Commit e70b8dd ("ASoC: mediatek: mt8195: Remove afe-dai component
    and rework codec link") removed the codec entry for the ETDM1_OUT_BE
    dai link entirely instead of replacing it with COMP_EMPTY(). This worked
    by accident as the remaining COMP_EMPTY() platform entry became the codec
    entry, and the platform entry became completely empty, effectively the
    same as COMP_DUMMY() since snd_soc_fill_dummy_dai() doesn't do anything
    for platform entries.
    
    This causes a KASAN out-of-bounds warning in mtk_soundcard_common_probe()
    in sound/soc/mediatek/common/mtk-soundcard-driver.c:
    
    	for_each_card_prelinks(card, i, dai_link) {
    		if (adsp_node && !strncmp(dai_link->name, "AFE_SOF", strlen("AFE_SOF")))
    			dai_link->platforms->of_node = adsp_node;
    		else if (!dai_link->platforms->name && !dai_link->platforms->of_node)
    			dai_link->platforms->of_node = platform_node;
    	}
    
    where the code expects the platforms array to have space for at least one entry.
    
    Add an COMP_EMPTY() entry so that dai_link->platforms has space.
    
    Fixes: e70b8dd ("ASoC: mediatek: mt8195: Remove afe-dai component and rework codec link")
    Signed-off-by: Chen-Yu Tsai <wenst@chromium.org>
    Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
    Link: https://patch.msgid.link/20240624061257.3115467-1-wenst@chromium.org
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    wens authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    42b9ab7 View commit details
    Browse the repository at this point in the history
  46. netfilter: fix undefined reference to 'netfilter_lwtunnel_*' when CON…

    …FIG_SYSCTL=n
    
    [ Upstream commit aef5daa ]
    
    if CONFIG_SYSFS is not enabled in config, we get the below compile error,
    
    All errors (new ones prefixed by >>):
    
       csky-linux-ld: net/netfilter/core.o: in function `netfilter_init':
       core.c:(.init.text+0x42): undefined reference to `netfilter_lwtunnel_init'
    >> csky-linux-ld: core.c:(.init.text+0x56): undefined reference to `netfilter_lwtunnel_fini'
    >> csky-linux-ld: core.c:(.init.text+0x70): undefined reference to `netfilter_lwtunnel_init'
       csky-linux-ld: core.c:(.init.text+0x78): undefined reference to `netfilter_lwtunnel_fini'
    
    Fixes: a2225e0 ("netfilter: move the sysctl nf_hooks_lwtunnel into the netfilter core")
    Reported-by: Mirsad Todorovac <mtodorovac69@gmail.com>
    Reported-by: kernel test robot <lkp@intel.com>
    Closes: https://lore.kernel.org/oe-kbuild-all/202406210511.8vbByYj3-lkp@intel.com/
    Closes: https://lore.kernel.org/oe-kbuild-all/202406210520.6HmrUaA2-lkp@intel.com/
    Signed-off-by: Jianguo Wu <wujianguo@chinatelecom.cn>
    Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    Jianguo Wu authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    43442fd View commit details
    Browse the repository at this point in the history
  47. btrfs: use NOFS context when getting inodes during logging and log re…

    …play
    
    [ Upstream commit d182575 ]
    
    During inode logging (and log replay too), we are holding a transaction
    handle and we often need to call btrfs_iget(), which will read an inode
    from its subvolume btree if it's not loaded in memory and that results in
    allocating an inode with GFP_KERNEL semantics at the btrfs_alloc_inode()
    callback - and this may recurse into the filesystem in case we are under
    memory pressure and attempt to commit the current transaction, resulting
    in a deadlock since the logging (or log replay) task is holding a
    transaction handle open.
    
    Syzbot reported this with the following stack traces:
    
      WARNING: possible circular locking dependency detected
      6.10.0-rc2-syzkaller-00361-g061d1af7b030 #0 Not tainted
      ------------------------------------------------------
      syz-executor.1/9919 is trying to acquire lock:
      ffffffff8dd3aac0 (fs_reclaim){+.+.}-{0:0}, at: might_alloc include/linux/sched/mm.h:334 [inline]
      ffffffff8dd3aac0 (fs_reclaim){+.+.}-{0:0}, at: slab_pre_alloc_hook mm/slub.c:3891 [inline]
      ffffffff8dd3aac0 (fs_reclaim){+.+.}-{0:0}, at: slab_alloc_node mm/slub.c:3981 [inline]
      ffffffff8dd3aac0 (fs_reclaim){+.+.}-{0:0}, at: kmem_cache_alloc_lru_noprof+0x58/0x2f0 mm/slub.c:4020
    
      but task is already holding lock:
      ffff88804b569358 (&ei->log_mutex){+.+.}-{3:3}, at: btrfs_log_inode+0x39c/0x4660 fs/btrfs/tree-log.c:6481
    
      which lock already depends on the new lock.
    
      the existing dependency chain (in reverse order) is:
    
      -> #3 (&ei->log_mutex){+.+.}-{3:3}:
             __mutex_lock_common kernel/locking/mutex.c:608 [inline]
             __mutex_lock+0x175/0x9c0 kernel/locking/mutex.c:752
             btrfs_log_inode+0x39c/0x4660 fs/btrfs/tree-log.c:6481
             btrfs_log_inode_parent+0x8cb/0x2a90 fs/btrfs/tree-log.c:7079
             btrfs_log_dentry_safe+0x59/0x80 fs/btrfs/tree-log.c:7180
             btrfs_sync_file+0x9c1/0xe10 fs/btrfs/file.c:1959
             vfs_fsync_range+0x141/0x230 fs/sync.c:188
             generic_write_sync include/linux/fs.h:2794 [inline]
             btrfs_do_write_iter+0x584/0x10c0 fs/btrfs/file.c:1705
             new_sync_write fs/read_write.c:497 [inline]
             vfs_write+0x6b6/0x1140 fs/read_write.c:590
             ksys_write+0x12f/0x260 fs/read_write.c:643
             do_syscall_32_irqs_on arch/x86/entry/common.c:165 [inline]
             __do_fast_syscall_32+0x73/0x120 arch/x86/entry/common.c:386
             do_fast_syscall_32+0x32/0x80 arch/x86/entry/common.c:411
             entry_SYSENTER_compat_after_hwframe+0x84/0x8e
    
      -> #2 (btrfs_trans_num_extwriters){++++}-{0:0}:
             join_transaction+0x164/0xf40 fs/btrfs/transaction.c:315
             start_transaction+0x427/0x1a70 fs/btrfs/transaction.c:700
             btrfs_commit_super+0xa1/0x110 fs/btrfs/disk-io.c:4170
             close_ctree+0xcb0/0xf90 fs/btrfs/disk-io.c:4324
             generic_shutdown_super+0x159/0x3d0 fs/super.c:642
             kill_anon_super+0x3a/0x60 fs/super.c:1226
             btrfs_kill_super+0x3b/0x50 fs/btrfs/super.c:2096
             deactivate_locked_super+0xbe/0x1a0 fs/super.c:473
             deactivate_super+0xde/0x100 fs/super.c:506
             cleanup_mnt+0x222/0x450 fs/namespace.c:1267
             task_work_run+0x14e/0x250 kernel/task_work.c:180
             resume_user_mode_work include/linux/resume_user_mode.h:50 [inline]
             exit_to_user_mode_loop kernel/entry/common.c:114 [inline]
             exit_to_user_mode_prepare include/linux/entry-common.h:328 [inline]
             __syscall_exit_to_user_mode_work kernel/entry/common.c:207 [inline]
             syscall_exit_to_user_mode+0x278/0x2a0 kernel/entry/common.c:218
             __do_fast_syscall_32+0x80/0x120 arch/x86/entry/common.c:389
             do_fast_syscall_32+0x32/0x80 arch/x86/entry/common.c:411
             entry_SYSENTER_compat_after_hwframe+0x84/0x8e
    
      -> #1 (btrfs_trans_num_writers){++++}-{0:0}:
             __lock_release kernel/locking/lockdep.c:5468 [inline]
             lock_release+0x33e/0x6c0 kernel/locking/lockdep.c:5774
             percpu_up_read include/linux/percpu-rwsem.h:99 [inline]
             __sb_end_write include/linux/fs.h:1650 [inline]
             sb_end_intwrite include/linux/fs.h:1767 [inline]
             __btrfs_end_transaction+0x5ca/0x920 fs/btrfs/transaction.c:1071
             btrfs_commit_inode_delayed_inode+0x228/0x330 fs/btrfs/delayed-inode.c:1301
             btrfs_evict_inode+0x960/0xe80 fs/btrfs/inode.c:5291
             evict+0x2ed/0x6c0 fs/inode.c:667
             iput_final fs/inode.c:1741 [inline]
             iput.part.0+0x5a8/0x7f0 fs/inode.c:1767
             iput+0x5c/0x80 fs/inode.c:1757
             dentry_unlink_inode+0x295/0x480 fs/dcache.c:400
             __dentry_kill+0x1d0/0x600 fs/dcache.c:603
             dput.part.0+0x4b1/0x9b0 fs/dcache.c:845
             dput+0x1f/0x30 fs/dcache.c:835
             ovl_stack_put+0x60/0x90 fs/overlayfs/util.c:132
             ovl_destroy_inode+0xc6/0x190 fs/overlayfs/super.c:182
             destroy_inode+0xc4/0x1b0 fs/inode.c:311
             iput_final fs/inode.c:1741 [inline]
             iput.part.0+0x5a8/0x7f0 fs/inode.c:1767
             iput+0x5c/0x80 fs/inode.c:1757
             dentry_unlink_inode+0x295/0x480 fs/dcache.c:400
             __dentry_kill+0x1d0/0x600 fs/dcache.c:603
             shrink_kill fs/dcache.c:1048 [inline]
             shrink_dentry_list+0x140/0x5d0 fs/dcache.c:1075
             prune_dcache_sb+0xeb/0x150 fs/dcache.c:1156
             super_cache_scan+0x32a/0x550 fs/super.c:221
             do_shrink_slab+0x44f/0x11c0 mm/shrinker.c:435
             shrink_slab_memcg mm/shrinker.c:548 [inline]
             shrink_slab+0xa87/0x1310 mm/shrinker.c:626
             shrink_one+0x493/0x7c0 mm/vmscan.c:4790
             shrink_many mm/vmscan.c:4851 [inline]
             lru_gen_shrink_node+0x89f/0x1750 mm/vmscan.c:4951
             shrink_node mm/vmscan.c:5910 [inline]
             kswapd_shrink_node mm/vmscan.c:6720 [inline]
             balance_pgdat+0x1105/0x1970 mm/vmscan.c:6911
             kswapd+0x5ea/0xbf0 mm/vmscan.c:7180
             kthread+0x2c1/0x3a0 kernel/kthread.c:389
             ret_from_fork+0x45/0x80 arch/x86/kernel/process.c:147
             ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:244
    
      -> #0 (fs_reclaim){+.+.}-{0:0}:
             check_prev_add kernel/locking/lockdep.c:3134 [inline]
             check_prevs_add kernel/locking/lockdep.c:3253 [inline]
             validate_chain kernel/locking/lockdep.c:3869 [inline]
             __lock_acquire+0x2478/0x3b30 kernel/locking/lockdep.c:5137
             lock_acquire kernel/locking/lockdep.c:5754 [inline]
             lock_acquire+0x1b1/0x560 kernel/locking/lockdep.c:5719
             __fs_reclaim_acquire mm/page_alloc.c:3801 [inline]
             fs_reclaim_acquire+0x102/0x160 mm/page_alloc.c:3815
             might_alloc include/linux/sched/mm.h:334 [inline]
             slab_pre_alloc_hook mm/slub.c:3891 [inline]
             slab_alloc_node mm/slub.c:3981 [inline]
             kmem_cache_alloc_lru_noprof+0x58/0x2f0 mm/slub.c:4020
             btrfs_alloc_inode+0x118/0xb20 fs/btrfs/inode.c:8411
             alloc_inode+0x5d/0x230 fs/inode.c:261
             iget5_locked fs/inode.c:1235 [inline]
             iget5_locked+0x1c9/0x2c0 fs/inode.c:1228
             btrfs_iget_locked fs/btrfs/inode.c:5590 [inline]
             btrfs_iget_path fs/btrfs/inode.c:5607 [inline]
             btrfs_iget+0xfb/0x230 fs/btrfs/inode.c:5636
             add_conflicting_inode fs/btrfs/tree-log.c:5657 [inline]
             copy_inode_items_to_log+0x1039/0x1e30 fs/btrfs/tree-log.c:5928
             btrfs_log_inode+0xa48/0x4660 fs/btrfs/tree-log.c:6592
             log_new_delayed_dentries fs/btrfs/tree-log.c:6363 [inline]
             btrfs_log_inode+0x27dd/0x4660 fs/btrfs/tree-log.c:6718
             btrfs_log_all_parents fs/btrfs/tree-log.c:6833 [inline]
             btrfs_log_inode_parent+0x22ba/0x2a90 fs/btrfs/tree-log.c:7141
             btrfs_log_dentry_safe+0x59/0x80 fs/btrfs/tree-log.c:7180
             btrfs_sync_file+0x9c1/0xe10 fs/btrfs/file.c:1959
             vfs_fsync_range+0x141/0x230 fs/sync.c:188
             generic_write_sync include/linux/fs.h:2794 [inline]
             btrfs_do_write_iter+0x584/0x10c0 fs/btrfs/file.c:1705
             do_iter_readv_writev+0x504/0x780 fs/read_write.c:741
             vfs_writev+0x36f/0xde0 fs/read_write.c:971
             do_pwritev+0x1b2/0x260 fs/read_write.c:1072
             __do_compat_sys_pwritev2 fs/read_write.c:1218 [inline]
             __se_compat_sys_pwritev2 fs/read_write.c:1210 [inline]
             __ia32_compat_sys_pwritev2+0x121/0x1b0 fs/read_write.c:1210
             do_syscall_32_irqs_on arch/x86/entry/common.c:165 [inline]
             __do_fast_syscall_32+0x73/0x120 arch/x86/entry/common.c:386
             do_fast_syscall_32+0x32/0x80 arch/x86/entry/common.c:411
             entry_SYSENTER_compat_after_hwframe+0x84/0x8e
    
      other info that might help us debug this:
    
      Chain exists of:
        fs_reclaim --> btrfs_trans_num_extwriters --> &ei->log_mutex
    
       Possible unsafe locking scenario:
    
             CPU0                    CPU1
             ----                    ----
        lock(&ei->log_mutex);
                                     lock(btrfs_trans_num_extwriters);
                                     lock(&ei->log_mutex);
        lock(fs_reclaim);
    
       *** DEADLOCK ***
    
      7 locks held by syz-executor.1/9919:
       #0: ffff88802be20420 (sb_writers#23){.+.+}-{0:0}, at: do_pwritev+0x1b2/0x260 fs/read_write.c:1072
       #1: ffff888065c0f8f0 (&sb->s_type->i_mutex_key#33){++++}-{3:3}, at: inode_lock include/linux/fs.h:791 [inline]
       #1: ffff888065c0f8f0 (&sb->s_type->i_mutex_key#33){++++}-{3:3}, at: btrfs_inode_lock+0xc8/0x110 fs/btrfs/inode.c:385
       #2: ffff888065c0f778 (&ei->i_mmap_lock){++++}-{3:3}, at: btrfs_inode_lock+0xee/0x110 fs/btrfs/inode.c:388
       #3: ffff88802be20610 (sb_internal#4){.+.+}-{0:0}, at: btrfs_sync_file+0x95b/0xe10 fs/btrfs/file.c:1952
       #4: ffff8880546323f0 (btrfs_trans_num_writers){++++}-{0:0}, at: join_transaction+0x430/0xf40 fs/btrfs/transaction.c:290
       #5: ffff888054632418 (btrfs_trans_num_extwriters){++++}-{0:0}, at: join_transaction+0x430/0xf40 fs/btrfs/transaction.c:290
       #6: ffff88804b569358 (&ei->log_mutex){+.+.}-{3:3}, at: btrfs_log_inode+0x39c/0x4660 fs/btrfs/tree-log.c:6481
    
      stack backtrace:
      CPU: 2 PID: 9919 Comm: syz-executor.1 Not tainted 6.10.0-rc2-syzkaller-00361-g061d1af7b030 #0
      Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.2-debian-1.16.2-1 04/01/2014
      Call Trace:
       <TASK>
       __dump_stack lib/dump_stack.c:88 [inline]
       dump_stack_lvl+0x116/0x1f0 lib/dump_stack.c:114
       check_noncircular+0x31a/0x400 kernel/locking/lockdep.c:2187
       check_prev_add kernel/locking/lockdep.c:3134 [inline]
       check_prevs_add kernel/locking/lockdep.c:3253 [inline]
       validate_chain kernel/locking/lockdep.c:3869 [inline]
       __lock_acquire+0x2478/0x3b30 kernel/locking/lockdep.c:5137
       lock_acquire kernel/locking/lockdep.c:5754 [inline]
       lock_acquire+0x1b1/0x560 kernel/locking/lockdep.c:5719
       __fs_reclaim_acquire mm/page_alloc.c:3801 [inline]
       fs_reclaim_acquire+0x102/0x160 mm/page_alloc.c:3815
       might_alloc include/linux/sched/mm.h:334 [inline]
       slab_pre_alloc_hook mm/slub.c:3891 [inline]
       slab_alloc_node mm/slub.c:3981 [inline]
       kmem_cache_alloc_lru_noprof+0x58/0x2f0 mm/slub.c:4020
       btrfs_alloc_inode+0x118/0xb20 fs/btrfs/inode.c:8411
       alloc_inode+0x5d/0x230 fs/inode.c:261
       iget5_locked fs/inode.c:1235 [inline]
       iget5_locked+0x1c9/0x2c0 fs/inode.c:1228
       btrfs_iget_locked fs/btrfs/inode.c:5590 [inline]
       btrfs_iget_path fs/btrfs/inode.c:5607 [inline]
       btrfs_iget+0xfb/0x230 fs/btrfs/inode.c:5636
       add_conflicting_inode fs/btrfs/tree-log.c:5657 [inline]
       copy_inode_items_to_log+0x1039/0x1e30 fs/btrfs/tree-log.c:5928
       btrfs_log_inode+0xa48/0x4660 fs/btrfs/tree-log.c:6592
       log_new_delayed_dentries fs/btrfs/tree-log.c:6363 [inline]
       btrfs_log_inode+0x27dd/0x4660 fs/btrfs/tree-log.c:6718
       btrfs_log_all_parents fs/btrfs/tree-log.c:6833 [inline]
       btrfs_log_inode_parent+0x22ba/0x2a90 fs/btrfs/tree-log.c:7141
       btrfs_log_dentry_safe+0x59/0x80 fs/btrfs/tree-log.c:7180
       btrfs_sync_file+0x9c1/0xe10 fs/btrfs/file.c:1959
       vfs_fsync_range+0x141/0x230 fs/sync.c:188
       generic_write_sync include/linux/fs.h:2794 [inline]
       btrfs_do_write_iter+0x584/0x10c0 fs/btrfs/file.c:1705
       do_iter_readv_writev+0x504/0x780 fs/read_write.c:741
       vfs_writev+0x36f/0xde0 fs/read_write.c:971
       do_pwritev+0x1b2/0x260 fs/read_write.c:1072
       __do_compat_sys_pwritev2 fs/read_write.c:1218 [inline]
       __se_compat_sys_pwritev2 fs/read_write.c:1210 [inline]
       __ia32_compat_sys_pwritev2+0x121/0x1b0 fs/read_write.c:1210
       do_syscall_32_irqs_on arch/x86/entry/common.c:165 [inline]
       __do_fast_syscall_32+0x73/0x120 arch/x86/entry/common.c:386
       do_fast_syscall_32+0x32/0x80 arch/x86/entry/common.c:411
       entry_SYSENTER_compat_after_hwframe+0x84/0x8e
      RIP: 0023:0xf7334579
      Code: b8 01 10 06 03 (...)
      RSP: 002b:00000000f5f265ac EFLAGS: 00000292 ORIG_RAX: 000000000000017b
      RAX: ffffffffffffffda RBX: 0000000000000004 RCX: 00000000200002c0
      RDX: 0000000000000001 RSI: 0000000000000000 RDI: 0000000000000000
      RBP: 0000000000000000 R08: 0000000000000000 R09: 0000000000000000
      R10: 0000000000000000 R11: 0000000000000292 R12: 0000000000000000
      R13: 0000000000000000 R14: 0000000000000000 R15: 0000000000000000
    
    Fix this by ensuring we are under a NOFS scope whenever we call
    btrfs_iget() during inode logging and log replay.
    
    Reported-by: syzbot+8576cfa84070dce4d59b@syzkaller.appspotmail.com
    Link: https://lore.kernel.org/linux-btrfs/000000000000274a3a061abbd928@google.com/
    Fixes: 712e36c ("btrfs: use GFP_KERNEL in btrfs_alloc_inode")
    Reviewed-by: Johannes Thumshirn <johannes.thumshirn@wdc.com>
    Reviewed-by: Josef Bacik <josef@toxicpanda.com>
    Reviewed-by: Qu Wenruo <wqu@suse.com>
    Signed-off-by: Filipe Manana <fdmanana@suse.com>
    Reviewed-by: David Sterba <dsterba@suse.com>
    Signed-off-by: David Sterba <dsterba@suse.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    fdmanana authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    e153da3 View commit details
    Browse the repository at this point in the history
  48. Fix race for duplicate reqsk on identical SYN

    [ Upstream commit ff46e3b ]
    
    When bonding is configured in BOND_MODE_BROADCAST mode, if two identical
    SYN packets are received at the same time and processed on different CPUs,
    it can potentially create the same sk (sock) but two different reqsk
    (request_sock) in tcp_conn_request().
    
    These two different reqsk will respond with two SYNACK packets, and since
    the generation of the seq (ISN) incorporates a timestamp, the final two
    SYNACK packets will have different seq values.
    
    The consequence is that when the Client receives and replies with an ACK
    to the earlier SYNACK packet, we will reset(RST) it.
    
    ========================================================================
    
    This behavior is consistently reproducible in my local setup,
    which comprises:
    
                      | NETA1 ------ NETB1 |
    PC_A --- bond --- |                    | --- bond --- PC_B
                      | NETA2 ------ NETB2 |
    
    - PC_A is the Server and has two network cards, NETA1 and NETA2. I have
      bonded these two cards using BOND_MODE_BROADCAST mode and configured
      them to be handled by different CPU.
    
    - PC_B is the Client, also equipped with two network cards, NETB1 and
      NETB2, which are also bonded and configured in BOND_MODE_BROADCAST mode.
    
    If the client attempts a TCP connection to the server, it might encounter
    a failure. Capturing packets from the server side reveals:
    
    10.10.10.10.45182 > localhost: Flags [S], seq 320236027,
    10.10.10.10.45182 > localhost: Flags [S], seq 320236027,
    localhost > 10.10.10.10.45182: Flags [S.], seq 2967855116,
    localhost > 10.10.10.10.45182: Flags [S.], seq 2967855123, <==
    10.10.10.10.45182 > localhost: Flags [.], ack 4294967290,
    10.10.10.10.45182 > localhost: Flags [.], ack 4294967290,
    localhost > 10.10.10.10.45182: Flags [R], seq 2967855117, <==
    localhost > 10.10.10.10.45182: Flags [R], seq 2967855117,
    
    Two SYNACKs with different seq numbers are sent by localhost,
    resulting in an anomaly.
    
    ========================================================================
    
    The attempted solution is as follows:
    Add a return value to inet_csk_reqsk_queue_hash_add() to confirm if the
    ehash insertion is successful (Up to now, the reason for unsuccessful
    insertion is that a reqsk for the same connection has already been
    inserted). If the insertion fails, release the reqsk.
    
    Due to the refcnt, Kuniyuki suggests also adding a return value check
    for the DCCP module; if ehash insertion fails, indicating a successful
    insertion of the same connection, simply release the reqsk as well.
    
    Simultaneously, In the reqsk_queue_hash_req(), the start of the
    req->rsk_timer is adjusted to be after successful insertion.
    
    Fixes: 1da177e ("Linux-2.6.12-rc2")
    Signed-off-by: luoxuanqiang <luoxuanqiang@kylinos.cn>
    Reviewed-by: Kuniyuki Iwashima <kuniyu@amazon.com>
    Reviewed-by: Eric Dumazet <edumazet@google.com>
    Link: https://lore.kernel.org/r/20240621013929.1386815-1-luoxuanqiang@kylinos.cn
    Signed-off-by: Paolo Abeni <pabeni@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    luoxuanqiang authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    360892e View commit details
    Browse the repository at this point in the history
  49. ALSA: seq: Fix missing channel at encoding RPN/NRPN MIDI2 messages

    [ Upstream commit c5ab94e ]
    
    The conversion from the legacy event to MIDI2 UMP for RPN and NRPN
    missed the setup of the channel number, resulting in always the
    channel 0.  Fix it.
    
    Fixes: e9e0281 ("ALSA: seq: Automatic conversion of UMP events")
    Link: https://patch.msgid.link/20240625095200.25745-1-tiwai@suse.de
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    tiwai authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    677c439 View commit details
    Browse the repository at this point in the history
  50. net: dsa: microchip: fix wrong register write when masking interrupt

    [ Upstream commit b1c4b4d ]
    
    The switch global port interrupt mask, REG_SW_PORT_INT_MASK__4, is
    defined as 0x001C in ksz9477_reg.h.  The designers used 32-bit value in
    anticipation for increase of port count in future product but currently
    the maximum port count is 7 and the effective value is 0x7F in register
    0x001F.  Each port has its own interrupt mask and is defined as 0x#01F.
    It uses only 4 bits for different interrupts.
    
    The developer who implemented the current interrupt mechanism in the
    switch driver noticed there are similarities between the mechanism to
    mask port interrupts in global interrupt and individual interrupts in
    each port and so used the same code to handle these interrupts.  He
    updated the code to use the new macro REG_SW_PORT_INT_MASK__1 which is
    defined as 0x1F in ksz_common.h but he forgot to update the 32-bit write
    to 8-bit as now the mask registers are 0x1F and 0x#01F.
    
    In addition all KSZ switches other than the KSZ9897/KSZ9893 and LAN937X
    families use only 8-bit access and so this common code will eventually
    be changed to accommodate them.
    
    Fixes: e1add7d ("net: dsa: microchip: use common irq routines for girq and pirq")
    Signed-off-by: Tristram Ha <tristram.ha@microchip.com>
    Link: https://lore.kernel.org/r/1719009262-2948-1-git-send-email-Tristram.Ha@microchip.com
    Signed-off-by: Paolo Abeni <pabeni@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    triha2work authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    7b1efce View commit details
    Browse the repository at this point in the history
  51. sparc: fix old compat_sys_select()

    [ Upstream commit bae6428 ]
    
    sparc has two identical select syscalls at numbers 93 and 230, respectively.
    During the conversion to the modern syscall.tbl format, the older one of the
    two broke in compat mode, and now refers to the native 64-bit syscall.
    
    Restore the correct behavior. This has very little effect, as glibc has
    been using the newer number anyway.
    
    Fixes: 6ff645d ("sparc: add system call table generation support")
    Signed-off-by: Arnd Bergmann <arnd@arndb.de>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    arndb authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    4c7f28f View commit details
    Browse the repository at this point in the history
  52. sparc: fix compat recv/recvfrom syscalls

    [ Upstream commit d6fbd26 ]
    
    sparc has the wrong compat version of recv() and recvfrom() for both the
    direct syscalls and socketcall().
    
    The direct syscalls just need to use the compat version. For socketcall,
    the same thing could be done, but it seems better to completely remove
    the custom assembler code for it and just use the same implementation that
    everyone else has.
    
    Fixes: 1dacc76 ("net/compat/wext: send different messages to compat tasks")
    Signed-off-by: Arnd Bergmann <arnd@arndb.de>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    arndb authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    c98fb61 View commit details
    Browse the repository at this point in the history
  53. parisc: use correct compat recv/recvfrom syscalls

    [ Upstream commit 20a5078 ]
    
    Johannes missed parisc back when he introduced the compat version
    of these syscalls, so receiving cmsg messages that require a compat
    conversion is still broken.
    
    Use the correct calls like the other architectures do.
    
    Fixes: 1dacc76 ("net/compat/wext: send different messages to compat tasks")
    Acked-by: Helge Deller <deller@gmx.de>
    Signed-off-by: Arnd Bergmann <arnd@arndb.de>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    arndb authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    10eb208 View commit details
    Browse the repository at this point in the history
  54. powerpc: restore some missing spu syscalls

    [ Upstream commit b1e31c1 ]
    
    A couple of system calls were inadventently removed from the table during
    a bugfix for 32-bit powerpc entry. Restore the original behavior.
    
    Fixes: e237506 ("powerpc/32: fix syscall wrappers with 64-bit arguments of unaligned register-pairs")
    Acked-by: Michael Ellerman <mpe@ellerman.id.au>
    Signed-off-by: Arnd Bergmann <arnd@arndb.de>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    arndb authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    2f968a1 View commit details
    Browse the repository at this point in the history
  55. ionic: use dev_consume_skb_any outside of napi

    [ Upstream commit 84b767f ]
    
    If we're not in a NAPI softirq context, we need to be careful
    about how we call napi_consume_skb(), specifically we need to
    call it with budget==0 to signal to it that we're not in a
    safe context.
    
    This was found while running some configuration stress testing
    of traffic and a change queue config loop running, and this
    curious note popped out:
    
    [ 4371.402645] BUG: using smp_processor_id() in preemptible [00000000] code: ethtool/20545
    [ 4371.402897] caller is napi_skb_cache_put+0x16/0x80
    [ 4371.403120] CPU: 25 PID: 20545 Comm: ethtool Kdump: loaded Tainted: G           OE      6.10.0-rc3-netnext+ #8
    [ 4371.403302] Hardware name: HPE ProLiant DL360 Gen10/ProLiant DL360 Gen10, BIOS U32 01/23/2021
    [ 4371.403460] Call Trace:
    [ 4371.403613]  <TASK>
    [ 4371.403758]  dump_stack_lvl+0x4f/0x70
    [ 4371.403904]  check_preemption_disabled+0xc1/0xe0
    [ 4371.404051]  napi_skb_cache_put+0x16/0x80
    [ 4371.404199]  ionic_tx_clean+0x18a/0x240 [ionic]
    [ 4371.404354]  ionic_tx_cq_service+0xc4/0x200 [ionic]
    [ 4371.404505]  ionic_tx_flush+0x15/0x70 [ionic]
    [ 4371.404653]  ? ionic_lif_qcq_deinit.isra.23+0x5b/0x70 [ionic]
    [ 4371.404805]  ionic_txrx_deinit+0x71/0x190 [ionic]
    [ 4371.404956]  ionic_reconfigure_queues+0x5f5/0xff0 [ionic]
    [ 4371.405111]  ionic_set_ringparam+0x2e8/0x3e0 [ionic]
    [ 4371.405265]  ethnl_set_rings+0x1f1/0x300
    [ 4371.405418]  ethnl_default_set_doit+0xbb/0x160
    [ 4371.405571]  genl_family_rcv_msg_doit+0xff/0x130
    	[...]
    
    I found that ionic_tx_clean() calls napi_consume_skb() which calls
    napi_skb_cache_put(), but before that last call is the note
        /* Zero budget indicate non-NAPI context called us, like netpoll */
    and
        DEBUG_NET_WARN_ON_ONCE(!in_softirq());
    
    Those are pretty big hints that we're doing it wrong.  We can pass a
    context hint down through the calls to let ionic_tx_clean() know what
    we're doing so it can call napi_consume_skb() correctly.
    
    Fixes: 386e698 ("ionic: Make use napi_consume_skb")
    Signed-off-by: Shannon Nelson <shannon.nelson@amd.com>
    Link: https://patch.msgid.link/20240624175015.4520-1-shannon.nelson@amd.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    emusln authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    ef7646e View commit details
    Browse the repository at this point in the history
  56. tcp: fix tcp_rcv_fastopen_synack() to enter TCP_CA_Loss for failed TFO

    [ Upstream commit 5dfe9d2 ]
    
    Testing determined that the recent commit 9e046bb ("tcp: clear
    tp->retrans_stamp in tcp_rcv_fastopen_synack()") has a race, and does
    not always ensure retrans_stamp is 0 after a TFO payload retransmit.
    
    If transmit completion for the SYN+data skb happens after the client
    TCP stack receives the SYNACK (which sometimes happens), then
    retrans_stamp can erroneously remain non-zero for the lifetime of the
    connection, causing a premature ETIMEDOUT later.
    
    Testing and tracing showed that the buggy scenario is the following
    somewhat tricky sequence:
    
    + Client attempts a TFO handshake. tcp_send_syn_data() sends SYN + TFO
      cookie + data in a single packet in the syn_data skb. It hands the
      syn_data skb to tcp_transmit_skb(), which makes a clone. Crucially,
      it then reuses the same original (non-clone) syn_data skb,
      transforming it by advancing the seq by one byte and removing the
      FIN bit, and enques the resulting payload-only skb in the
      sk->tcp_rtx_queue.
    
    + Client sets retrans_stamp to the start time of the three-way
      handshake.
    
    + Cookie mismatches or server has TFO disabled, and server only ACKs
      SYN.
    
    + tcp_ack() sees SYN is acked, tcp_clean_rtx_queue() clears
      retrans_stamp.
    
    + Since the client SYN was acked but not the payload, the TFO failure
      code path in tcp_rcv_fastopen_synack() tries to retransmit the
      payload skb.  However, in some cases the transmit completion for the
      clone of the syn_data (which had SYN + TFO cookie + data) hasn't
      happened.  In those cases, skb_still_in_host_queue() returns true
      for the retransmitted TFO payload, because the clone of the syn_data
      skb has not had its tx completetion.
    
    + Because skb_still_in_host_queue() finds skb_fclone_busy() is true,
      it sets the TSQ_THROTTLED bit and the retransmit does not happen in
      the tcp_rcv_fastopen_synack() call chain.
    
    + The tcp_rcv_fastopen_synack() code next implicitly assumes the
      retransmit process is finished, and sets retrans_stamp to 0 to clear
      it, but this is later overwritten (see below).
    
    + Later, upon tx completion, tcp_tsq_write() calls
      tcp_xmit_retransmit_queue(), which puts the retransmit in flight and
      sets retrans_stamp to a non-zero value.
    
    + The client receives an ACK for the retransmitted TFO payload data.
    
    + Since we're in CA_Open and there are no dupacks/SACKs/DSACKs/ECN to
      make tcp_ack_is_dubious() true and make us call
      tcp_fastretrans_alert() and reach a code path that clears
      retrans_stamp, retrans_stamp stays nonzero.
    
    + Later, if there is a TLP, RTO, RTO sequence, then the connection
      will suffer an early ETIMEDOUT due to the erroneously ancient
      retrans_stamp.
    
    The fix: this commit refactors the code to have
    tcp_rcv_fastopen_synack() retransmit by reusing the relevant parts of
    tcp_simple_retransmit() that enter CA_Loss (without changing cwnd) and
    call tcp_xmit_retransmit_queue(). We have tcp_simple_retransmit() and
    tcp_rcv_fastopen_synack() share code in this way because in both cases
    we get a packet indicating non-congestion loss (MTU reduction or TFO
    failure) and thus in both cases we want to retransmit as many packets
    as cwnd allows, without reducing cwnd. And given that retransmits will
    set retrans_stamp to a non-zero value (and may do so in a later
    calling context due to TSQ), we also want to enter CA_Loss so that we
    track when all retransmitted packets are ACked and clear retrans_stamp
    when that happens (to ensure later recurring RTOs are using the
    correct retrans_stamp and don't declare ETIMEDOUT prematurely).
    
    Fixes: 9e046bb ("tcp: clear tp->retrans_stamp in tcp_rcv_fastopen_synack()")
    Fixes: a7abf3c ("tcp: consider using standard rtx logic in tcp_rcv_fastopen_synack()")
    Signed-off-by: Neal Cardwell <ncardwell@google.com>
    Signed-off-by: Eric Dumazet <edumazet@google.com>
    Cc: Yuchung Cheng <ycheng@google.com>
    Link: https://patch.msgid.link/20240624144323.2371403-1-ncardwell.sw@gmail.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    nealcardwell authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    7699d26 View commit details
    Browse the repository at this point in the history
  57. ALSA: seq: Fix missing MSB in MIDI2 SPP conversion

    [ Upstream commit 9d65ab6 ]
    
    The conversion of SPP to MIDI2 UMP called a wrong function, and the
    secondary argument wasn't taken.  As a result, MSB of SPP was always
    zero.  Fix to call the right function.
    
    Fixes: e9e0281 ("ALSA: seq: Automatic conversion of UMP events")
    Link: https://patch.msgid.link/20240626145141.16648-1-tiwai@suse.de
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    tiwai authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    d4701a1 View commit details
    Browse the repository at this point in the history
  58. netfilter: nf_tables: fully validate NFT_DATA_VALUE on store to data …

    …registers
    
    [ Upstream commit 7931d32 ]
    
    register store validation for NFT_DATA_VALUE is conditional, however,
    the datatype is always either NFT_DATA_VALUE or NFT_DATA_VERDICT. This
    only requires a new helper function to infer the register type from the
    set datatype so this conditional check can be removed. Otherwise,
    pointer to chain object can be leaked through the registers.
    
    Fixes: 9651851 ("netfilter: add nftables")
    Reported-by: Linus Torvalds <torvalds@linuxfoundation.org>
    Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ummakynes authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    41a6375 View commit details
    Browse the repository at this point in the history
  59. af_unix: Stop recv(MSG_PEEK) at consumed OOB skb.

    [ Upstream commit b94038d ]
    
    After consuming OOB data, recv() reading the preceding data must break at
    the OOB skb regardless of MSG_PEEK.
    
    Currently, MSG_PEEK does not stop recv() for AF_UNIX, and the behaviour is
    not compliant with TCP.
    
      >>> from socket import *
      >>> c1, c2 = socketpair(AF_UNIX)
      >>> c1.send(b'hello', MSG_OOB)
      5
      >>> c1.send(b'world')
      5
      >>> c2.recv(1, MSG_OOB)
      b'o'
      >>> c2.recv(9, MSG_PEEK)  # This should return b'hell'
      b'hellworld'              # even with enough buffer.
    
    Let's fix it by returning NULL for consumed skb and unlinking it only if
    MSG_PEEK is not specified.
    
    This patch also adds test cases that add recv(MSG_PEEK) before each recv().
    
    Without fix:
    
      #  RUN           msg_oob.peek.oob_ahead_break ...
      # msg_oob.c:134:oob_ahead_break:AF_UNIX :hellworld
      # msg_oob.c:135:oob_ahead_break:Expected:hell
      # msg_oob.c:137:oob_ahead_break:Expected ret[0] (9) == expected_len (4)
      # oob_ahead_break: Test terminated by assertion
      #          FAIL  msg_oob.peek.oob_ahead_break
      not ok 13 msg_oob.peek.oob_ahead_break
    
    With fix:
    
      #  RUN           msg_oob.peek.oob_ahead_break ...
      #            OK  msg_oob.peek.oob_ahead_break
      ok 13 msg_oob.peek.oob_ahead_break
    
    Fixes: 314001f ("af_unix: Add OOB support")
    Signed-off-by: Kuniyuki Iwashima <kuniyu@amazon.com>
    Signed-off-by: Paolo Abeni <pabeni@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    q2ven authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    fc312d6 View commit details
    Browse the repository at this point in the history
  60. af_unix: Don't stop recv(MSG_DONTWAIT) if consumed OOB skb is at the …

    …head.
    
    [ Upstream commit 93c99f2 ]
    
    Let's say a socket send()s "hello" with MSG_OOB and "world" without flags,
    
      >>> from socket import *
      >>> c1, c2 = socketpair(AF_UNIX)
      >>> c1.send(b'hello', MSG_OOB)
      5
      >>> c1.send(b'world')
      5
    
    and its peer recv()s "hell" and "o".
    
      >>> c2.recv(10)
      b'hell'
      >>> c2.recv(1, MSG_OOB)
      b'o'
    
    Now the consumed OOB skb stays at the head of recvq to return a correct
    value for ioctl(SIOCATMARK), which is broken now and fixed by a later
    patch.
    
    Then, if peer issues recv() with MSG_DONTWAIT, manage_oob() returns NULL,
    so recv() ends up with -EAGAIN.
    
      >>> c2.setblocking(False)  # This causes -EAGAIN even with available data
      >>> c2.recv(5)
      Traceback (most recent call last):
        File "<stdin>", line 1, in <module>
      BlockingIOError: [Errno 11] Resource temporarily unavailable
    
    However, next recv() will return the following available data, "world".
    
      >>> c2.recv(5)
      b'world'
    
    When the consumed OOB skb is at the head of the queue, we need to fetch
    the next skb to fix the weird behaviour.
    
    Note that the issue does not happen without MSG_DONTWAIT because we can
    retry after manage_oob().
    
    This patch also adds a test case that covers the issue.
    
    Without fix:
    
      #  RUN           msg_oob.no_peek.ex_oob_break ...
      # msg_oob.c:134:ex_oob_break:AF_UNIX :Resource temporarily unavailable
      # msg_oob.c:135:ex_oob_break:Expected:ld
      # msg_oob.c:137:ex_oob_break:Expected ret[0] (-1) == expected_len (2)
      # ex_oob_break: Test terminated by assertion
      #          FAIL  msg_oob.no_peek.ex_oob_break
      not ok 8 msg_oob.no_peek.ex_oob_break
    
    With fix:
    
      #  RUN           msg_oob.no_peek.ex_oob_break ...
      #            OK  msg_oob.no_peek.ex_oob_break
      ok 8 msg_oob.no_peek.ex_oob_break
    
    Fixes: 314001f ("af_unix: Add OOB support")
    Signed-off-by: Kuniyuki Iwashima <kuniyu@amazon.com>
    Signed-off-by: Paolo Abeni <pabeni@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    q2ven authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    71f8d9a View commit details
    Browse the repository at this point in the history
  61. af_unix: Don't stop recv() at consumed ex-OOB skb.

    [ Upstream commit 36893ef ]
    
    Currently, recv() is stopped at a consumed OOB skb even if a new
    OOB skb is queued and we can ignore the old OOB skb.
    
      >>> from socket import *
      >>> c1, c2 = socket(AF_UNIX, SOCK_STREAM)
      >>> c1.send(b'hellowor', MSG_OOB)
      8
      >>> c2.recv(1, MSG_OOB)  # consume OOB data stays at middle of recvq.
      b'r'
      >>> c1.send(b'ld', MSG_OOB)
      2
      >>> c2.recv(10)          # recv() stops at the old consumed OOB
      b'hellowo'               # should be 'hellowol'
    
    manage_oob() should not stop recv() at the old consumed OOB skb if
    there is a new OOB data queued.
    
    Note that TCP behaviour is apparently wrong in this test case because
    we can recv() the same OOB data twice.
    
    Without fix:
    
      #  RUN           msg_oob.no_peek.ex_oob_ahead_break ...
      # msg_oob.c:138:ex_oob_ahead_break:AF_UNIX :hellowo
      # msg_oob.c:139:ex_oob_ahead_break:Expected:hellowol
      # msg_oob.c:141:ex_oob_ahead_break:Expected ret[0] (7) == expected_len (8)
      # ex_oob_ahead_break: Test terminated by assertion
      #          FAIL  msg_oob.no_peek.ex_oob_ahead_break
      not ok 11 msg_oob.no_peek.ex_oob_ahead_break
    
    With fix:
    
      #  RUN           msg_oob.no_peek.ex_oob_ahead_break ...
      # msg_oob.c:146:ex_oob_ahead_break:AF_UNIX :hellowol
      # msg_oob.c:147:ex_oob_ahead_break:TCP     :helloworl
      #            OK  msg_oob.no_peek.ex_oob_ahead_break
      ok 11 msg_oob.no_peek.ex_oob_ahead_break
    
    Fixes: 314001f ("af_unix: Add OOB support")
    Signed-off-by: Kuniyuki Iwashima <kuniyu@amazon.com>
    Signed-off-by: Paolo Abeni <pabeni@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    q2ven authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    8c7db22 View commit details
    Browse the repository at this point in the history
  62. af_unix: Fix wrong ioctl(SIOCATMARK) when consumed OOB skb is at the …

    …head.
    
    [ Upstream commit e400cfa ]
    
    Even if OOB data is recv()ed, ioctl(SIOCATMARK) must return 1 when the
    OOB skb is at the head of the receive queue and no new OOB data is queued.
    
    Without fix:
    
      #  RUN           msg_oob.no_peek.oob ...
      # msg_oob.c:305:oob:Expected answ[0] (0) == oob_head (1)
      # oob: Test terminated by assertion
      #          FAIL  msg_oob.no_peek.oob
      not ok 2 msg_oob.no_peek.oob
    
    With fix:
    
      #  RUN           msg_oob.no_peek.oob ...
      #            OK  msg_oob.no_peek.oob
      ok 2 msg_oob.no_peek.oob
    
    Fixes: 314001f ("af_unix: Add OOB support")
    Signed-off-by: Kuniyuki Iwashima <kuniyu@amazon.com>
    Signed-off-by: Paolo Abeni <pabeni@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    q2ven authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    09a325a View commit details
    Browse the repository at this point in the history
  63. net: mana: Fix possible double free in error handling path

    [ Upstream commit 1864b82 ]
    
    When auxiliary_device_add() returns error and then calls
    auxiliary_device_uninit(), callback function adev_release
    calls kfree(madev). We shouldn't call kfree(madev) again
    in the error handling path. Set 'madev' to NULL.
    
    Fixes: a69839d ("net: mana: Add support for auxiliary device")
    Signed-off-by: Ma Ke <make24@iscas.ac.cn>
    Link: https://patch.msgid.link/20240625130314.2661257-1-make24@iscas.ac.cn
    Signed-off-by: Paolo Abeni <pabeni@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    Ma Ke authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    ed45c0a View commit details
    Browse the repository at this point in the history
  64. bpf: Take return from set_memory_ro() into account with bpf_prog_lock…

    …_ro()
    
    [ Upstream commit 7d2cc63 ]
    
    set_memory_ro() can fail, leaving memory unprotected.
    
    Check its return and take it into account as an error.
    
    Link: KSPP#7
    Signed-off-by: Christophe Leroy <christophe.leroy@csgroup.eu>
    Cc: linux-hardening@vger.kernel.org <linux-hardening@vger.kernel.org>
    Reviewed-by: Kees Cook <keescook@chromium.org>
    Message-ID: <286def78955e04382b227cb3e4b6ba272a7442e3.1709850515.git.christophe.leroy@csgroup.eu>
    Signed-off-by: Alexei Starovoitov <ast@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    chleroy authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    0541247 View commit details
    Browse the repository at this point in the history
  65. bpf: Take return from set_memory_rox() into account with bpf_jit_bina…

    …ry_lock_ro()
    
    [ Upstream commit e60adf5 ]
    
    set_memory_rox() can fail, leaving memory unprotected.
    
    Check return and bail out when bpf_jit_binary_lock_ro() returns
    an error.
    
    Link: KSPP#7
    Signed-off-by: Christophe Leroy <christophe.leroy@csgroup.eu>
    Cc: linux-hardening@vger.kernel.org <linux-hardening@vger.kernel.org>
    Reviewed-by: Kees Cook <keescook@chromium.org>
    Reviewed-by: Puranjay Mohan <puranjay12@gmail.com>
    Reviewed-by: Ilya Leoshkevich <iii@linux.ibm.com>  # s390x
    Acked-by: Tiezhu Yang <yangtiezhu@loongson.cn>  # LoongArch
    Reviewed-by: Johan Almbladh <johan.almbladh@anyfinetworks.com> # MIPS Part
    Message-ID: <036b6393f23a2032ce75a1c92220b2afcb798d5d.1709850515.git.christophe.leroy@csgroup.eu>
    Signed-off-by: Alexei Starovoitov <ast@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    chleroy authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    044da7a View commit details
    Browse the repository at this point in the history
  66. drm/panel: ilitek-ili9881c: Fix warning with GPIO controllers that sleep

    [ Upstream commit ee7860c ]
    
    The ilitek-ili9881c controls the reset GPIO using the non-sleeping
    gpiod_set_value() function. This complains loudly when the GPIO
    controller needs to sleep. As the caller can sleep, use
    gpiod_set_value_cansleep() to fix the issue.
    
    Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
    Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
    Link: https://lore.kernel.org/r/20240317154839.21260-1-laurent.pinchart@ideasonboard.com
    Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
    Link: https://patchwork.freedesktop.org/patch/msgid/20240317154839.21260-1-laurent.pinchart@ideasonboard.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    pinchartl authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    e646402 View commit details
    Browse the repository at this point in the history
  67. drm/xe: Fix potential integer overflow in page size calculation

    [ Upstream commit 4f4fcaf ]
    
    Explicitly cast tbo->page_alignment to u64 before bit-shifting to
    prevent overflow when assigning to min_page_size.
    
    Cc: Matthew Auld <matthew.auld@intel.com>
    Cc: Matthew Brost <matthew.brost@intel.com>
    Signed-off-by: Nirmoy Das <nirmoy.das@intel.com>
    Reviewed-by: Matthew Auld <matthew.auld@intel.com>
    Signed-off-by: Matthew Auld <matthew.auld@intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20240318164342.3094-1-nirmoy.das@intel.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    nirmoy authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    79d54dd View commit details
    Browse the repository at this point in the history
  68. vduse: validate block features only with block devices

    [ Upstream commit a115b57 ]
    
    This patch is preliminary work to enable network device
    type support to VDUSE.
    
    As VIRTIO_BLK_F_CONFIG_WCE shares the same value as
    VIRTIO_NET_F_HOST_TSO4, we need to restrict its check
    to Virtio-blk device type.
    
    Acked-by: Jason Wang <jasowang@redhat.com>
    Reviewed-by: Xie Yongji <xieyongji@bytedance.com>
    Reviewed-by: Eugenio Pérez <eperezma@redhat.com>
    Signed-off-by: Maxime Coquelin <maxime.coquelin@redhat.com>
    Message-Id: <20240109111025.1320976-2-maxime.coquelin@redhat.com>
    Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
    Stable-dep-of: 56e7188 ("vduse: Temporarily fail if control queue feature requested")
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    mcoquelin authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    8af2ba2 View commit details
    Browse the repository at this point in the history
  69. vduse: Temporarily fail if control queue feature requested

    [ Upstream commit 56e7188 ]
    
    Virtio-net driver control queue implementation is not safe
    when used with VDUSE. If the VDUSE application does not
    reply to control queue messages, it currently ends up
    hanging the kernel thread sending this command.
    
    Some work is on-going to make the control queue
    implementation robust with VDUSE. Until it is completed,
    let's fail features check if control-queue feature is
    requested.
    
    Signed-off-by: Maxime Coquelin <maxime.coquelin@redhat.com>
    Message-Id: <20240109111025.1320976-3-maxime.coquelin@redhat.com>
    Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
    Acked-by: Eugenio Pérez <eperezma@redhat.com>
    Reviewed-by: Xie Yongji <xieyongji@bytedance.com>
    Acked-by: Jason Wang <jasowang@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    mcoquelin authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    1760dd6 View commit details
    Browse the repository at this point in the history
  70. x86/fpu: Fix AMD X86_BUG_FXSAVE_LEAK fixup

    [ Upstream commit 5d31174 ]
    
    The assembly snippet in restore_fpregs_from_fpstate() that implements
    X86_BUG_FXSAVE_LEAK fixup loads the value from a random variable,
    preferably the one that is already in the L1 cache.
    
    However, the access to fpinit_state via *fpstate pointer is not
    implemented correctly. The "m" asm constraint requires dereferenced
    pointer variable, otherwise the compiler just reloads the value
    via temporary stack slot. The current asm code reflects this:
    
         mov    %rdi,(%rsp)
         ...
         fildl  (%rsp)
    
    With dereferenced pointer variable, the code does what the
    comment above the asm snippet says:
    
         fildl  (%rdi)
    
    Also, remove the pointless %P operand modifier. The modifier is
    ineffective on non-symbolic references - it was used to prevent
    %rip-relative addresses in .altinstr sections, but FILDL in the
    .text section can use %rip-relative addresses without problems.
    
    Signed-off-by: Uros Bizjak <ubizjak@gmail.com>
    Signed-off-by: Ingo Molnar <mingo@kernel.org>
    Cc: Andy Lutomirski <luto@kernel.org>
    Cc: H. Peter Anvin <hpa@zytor.com>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Link: https://lore.kernel.org/r/20240315081849.5187-1-ubizjak@gmail.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ubizjak authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    a296815 View commit details
    Browse the repository at this point in the history
  71. drm/xe: Add a NULL check in xe_ttm_stolen_mgr_init

    [ Upstream commit a6eff8f ]
    
    Add an explicit check to ensure that the mgr is not NULL.
    
    Cc: Matthew Auld <matthew.auld@intel.com>
    Signed-off-by: Nirmoy Das <nirmoy.das@intel.com>
    Reviewed-by: Matthew Auld <matthew.auld@intel.com>
    Signed-off-by: Matthew Auld <matthew.auld@intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20240319130925.22399-1-nirmoy.das@intel.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    nirmoy authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    cc796a7 View commit details
    Browse the repository at this point in the history
  72. drm/amd/display: correct hostvm flag

    [ Upstream commit 3a13d1f ]
    
    [Why]
    Hostvm should be enabled/disabled accordding to the status of
    riommu_active, but hostvm always be disabled on DCN31 which causes
    underflow
    
    [How]
    Set correct hostvm flag on DCN31
    
    Acked-by: Wayne Lin <wayne.lin@amd.com>
    Signed-off-by: Sherry Wang <Yao.Wang1@amd.com>
    Tested-by: Daniel Wheeler <daniel.wheeler@amd.com>
    Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    Sherry Wang authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    fc37011 View commit details
    Browse the repository at this point in the history
  73. mtd: partitions: redboot: Added conversion of operands to a larger type

    [ Upstream commit 1162bc2 ]
    
    The value of an arithmetic expression directory * master->erasesize is
    subject to overflow due to a failure to cast operands to a larger data
    type before perfroming arithmetic
    
    Found by Linux Verification Center (linuxtesting.org) with SVACE.
    
    Signed-off-by: Denis Arefev <arefev@swemel.ru>
    Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
    Link: https://lore.kernel.org/linux-mtd/20240315093758.20790-1-arefev@swemel.ru
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    Denis Arefev authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    ded0787 View commit details
    Browse the repository at this point in the history
  74. wifi: ieee80211: check for NULL in ieee80211_mle_size_ok()

    [ Upstream commit b7793a1 ]
    
    For simplicity, we may want to pass a NULL element, and
    while we should then pass also a zero length, just be a
    bit more careful here.
    
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com>
    Link: https://msgid.link/20240318184907.4d983653cb8d.Ic3ea99b60c61ac2f7d38cb9fd202a03c97a05601@changeid
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    jmberg-intel authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    1822443 View commit details
    Browse the repository at this point in the history
  75. drm/amd/display: Skip pipe if the pipe idx not set properly

    [ Upstream commit af114ef ]
    
    [why]
    Driver crashes when pipe idx not set properly
    
    [how]
    Add code to skip the pipe that idx not set properly
    
    Reviewed-by: Charlene Liu <charlene.liu@amd.com>
    Acked-by: Tom Chung <chiahsuan.chung@amd.com>
    Signed-off-by: Muhammad Ahmed <ahmed.ahmed@amd.com>
    Tested-by: Daniel Wheeler <daniel.wheeler@amd.com>
    Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    Muhammad Ahmed authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    27df59c View commit details
    Browse the repository at this point in the history
  76. bpf: Add a check for struct bpf_fib_lookup size

    [ Upstream commit 59b418c ]
    
    The struct bpf_fib_lookup should not grow outside of its 64 bytes.
    Add a static assert to validate this.
    
    Suggested-by: David Ahern <dsahern@kernel.org>
    Signed-off-by: Anton Protopopov <aspsk@isovalent.com>
    Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
    Link: https://lore.kernel.org/bpf/20240326101742.17421-4-aspsk@isovalent.com
    Signed-off-by: Alexei Starovoitov <ast@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    aspsk authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    c8fe6e5 View commit details
    Browse the repository at this point in the history
  77. bpf: Mark bpf prog stack with kmsan_unposion_memory in interpreter mode

    [ Upstream commit e874208 ]
    
    syzbot reported uninit memory usages during map_{lookup,delete}_elem.
    
    ==========
    BUG: KMSAN: uninit-value in __dev_map_lookup_elem kernel/bpf/devmap.c:441 [inline]
    BUG: KMSAN: uninit-value in dev_map_lookup_elem+0xf3/0x170 kernel/bpf/devmap.c:796
    __dev_map_lookup_elem kernel/bpf/devmap.c:441 [inline]
    dev_map_lookup_elem+0xf3/0x170 kernel/bpf/devmap.c:796
    ____bpf_map_lookup_elem kernel/bpf/helpers.c:42 [inline]
    bpf_map_lookup_elem+0x5c/0x80 kernel/bpf/helpers.c:38
    ___bpf_prog_run+0x13fe/0xe0f0 kernel/bpf/core.c:1997
    __bpf_prog_run256+0xb5/0xe0 kernel/bpf/core.c:2237
    ==========
    
    The reproducer should be in the interpreter mode.
    
    The C reproducer is trying to run the following bpf prog:
    
        0: (18) r0 = 0x0
        2: (18) r1 = map[id:49]
        4: (b7) r8 = 16777216
        5: (7b) *(u64 *)(r10 -8) = r8
        6: (bf) r2 = r10
        7: (07) r2 += -229
                ^^^^^^^^^^
    
        8: (b7) r3 = 8
        9: (b7) r4 = 0
       10: (85) call dev_map_lookup_elem#1543472
       11: (95) exit
    
    It is due to the "void *key" (r2) passed to the helper. bpf allows uninit
    stack memory access for bpf prog with the right privileges. This patch
    uses kmsan_unpoison_memory() to mark the stack as initialized.
    
    This should address different syzbot reports on the uninit "void *key"
    argument during map_{lookup,delete}_elem.
    
    Reported-by: syzbot+603bcd9b0bf1d94dbb9b@syzkaller.appspotmail.com
    Closes: https://lore.kernel.org/bpf/000000000000f9ce6d061494e694@google.com/
    Reported-by: syzbot+eb02dc7f03dce0ef39f3@syzkaller.appspotmail.com
    Closes: https://lore.kernel.org/bpf/000000000000a5c69c06147c2238@google.com/
    Reported-by: syzbot+b4e65ca24fd4d0c734c3@syzkaller.appspotmail.com
    Closes: https://lore.kernel.org/bpf/000000000000ac56fb06143b6cfa@google.com/
    Reported-by: syzbot+d2b113dc9fea5e1d2848@syzkaller.appspotmail.com
    Closes: https://lore.kernel.org/bpf/0000000000000d69b206142d1ff7@google.com/
    Reported-by: syzbot+1a3cf6f08d68868f9db3@syzkaller.appspotmail.com
    Closes: https://lore.kernel.org/bpf/0000000000006f876b061478e878@google.com/
    Tested-by: syzbot+1a3cf6f08d68868f9db3@syzkaller.appspotmail.com
    Suggested-by: Yonghong Song <yonghong.song@linux.dev>
    Suggested-by: Alexei Starovoitov <ast@kernel.org>
    Signed-off-by: Martin KaFai Lau <martin.lau@kernel.org>
    Link: https://lore.kernel.org/r/20240328185801.1843078-1-martin.lau@linux.dev
    Signed-off-by: Alexei Starovoitov <ast@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    Martin KaFai Lau authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    3189983 View commit details
    Browse the repository at this point in the history
  78. drm/xe/xe_devcoredump: Check NULL before assignments

    [ Upstream commit b15e653 ]
    
    Assign 'xe_devcoredump_snapshot *' and 'xe_device *' only if
    'coredump' is not NULL.
    
    v2
    - Fix commit messages.
    
    v3
    - Define variables before code.(Ashutosh/Jose)
    
    v4
    - Drop return check for coredump_to_xe. (Jose/Rodrigo)
    
    v5
    - Modify misleading commit message. (Matt)
    
    Cc: Matt Roper <matthew.d.roper@intel.com>
    Cc: Ashutosh Dixit <ashutosh.dixit@intel.com>
    Cc: José Roberto de Souza <jose.souza@intel.com>
    Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
    Signed-off-by: Himal Prasad Ghimiray <himal.prasad.ghimiray@intel.com>
    Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
    Reviewed-by: José Roberto de Souza <jose.souza@intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20240328123739.3633428-1-himal.prasad.ghimiray@intel.com
    Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    hghimira authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    76ec0e3 View commit details
    Browse the repository at this point in the history
  79. RDMA/restrack: Fix potential invalid address access

    [ Upstream commit ca537a3 ]
    
    struct rdma_restrack_entry's kern_name was set to KBUILD_MODNAME
    in ib_create_cq(), while if the module exited but forgot del this
    rdma_restrack_entry, it would cause a invalid address access in
    rdma_restrack_clean() when print the owner of this rdma_restrack_entry.
    
    These code is used to help find one forgotten PD release in one of the
    ULPs. But it is not needed anymore, so delete them.
    
    Signed-off-by: Wenchao Hao <haowenchao2@huawei.com>
    Link: https://lore.kernel.org/r/20240318092320.1215235-1-haowenchao2@huawei.com
    Signed-off-by: Leon Romanovsky <leon@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    wenchao-hao authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    f45b43d View commit details
    Browse the repository at this point in the history
  80. net/iucv: Avoid explicit cpumask var allocation on stack

    [ Upstream commit be4e130 ]
    
    For CONFIG_CPUMASK_OFFSTACK=y kernel, explicit allocation of cpumask
    variable on stack is not recommended since it can cause potential stack
    overflow.
    
    Instead, kernel code should always use *cpumask_var API(s) to allocate
    cpumask var in config-neutral way, leaving allocation strategy to
    CONFIG_CPUMASK_OFFSTACK.
    
    Use *cpumask_var API(s) to address it.
    
    Signed-off-by: Dawei Li <dawei.li@shingroup.cn>
    Reviewed-by: Alexandra Winter <wintera@linux.ibm.com>
    Link: https://lore.kernel.org/r/20240331053441.1276826-2-dawei.li@shingroup.cn
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    Dawei Li authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    2d090c7 View commit details
    Browse the repository at this point in the history
  81. net/dpaa2: Avoid explicit cpumask var allocation on stack

    [ Upstream commit d33fe17 ]
    
    For CONFIG_CPUMASK_OFFSTACK=y kernel, explicit allocation of cpumask
    variable on stack is not recommended since it can cause potential stack
    overflow.
    
    Instead, kernel code should always use *cpumask_var API(s) to allocate
    cpumask var in config-neutral way, leaving allocation strategy to
    CONFIG_CPUMASK_OFFSTACK.
    
    Use *cpumask_var API(s) to address it.
    
    Signed-off-by: Dawei Li <dawei.li@shingroup.cn>
    Link: https://lore.kernel.org/r/20240331053441.1276826-3-dawei.li@shingroup.cn
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    Dawei Li authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    5e4f250 View commit details
    Browse the repository at this point in the history
  82. wifi: rtw89: download firmware with five times retry

    [ Upstream commit a9e1b0e ]
    
    After firmware boots, it reads keys info from efuse and checks secure
    checksum, but suddenly failed to access efuse resulting in probe failure,
    and driver throws messages:
    
      rtw89_8852be 0000:03:00.0: fw security fail
      rtw89_8852be 0000:03:00.0: download firmware fail
      rtw89_8852be 0000:03:00.0: [ERR]fwdl 0x1E0 = 0xe2
      rtw89_8852be 0000:03:00.0: [ERR]fwdl 0x83F0 = 0x210090
    
    Retry five times to resolve rare abnormal hardware state.
    
    Signed-off-by: Chia-Yuan Li <leo.li@realtek.com>
    Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
    Link: https://msgid.link/20240329015251.22762-2-pkshih@realtek.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    Chia-Yuan Li authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    3edfa2a View commit details
    Browse the repository at this point in the history
  83. crypto: ecdh - explicitly zeroize private_key

    [ Upstream commit 73e5984 ]
    
    private_key is overwritten with the key parameter passed in by the
    caller (if present), or alternatively a newly generated private key.
    However, it is possible that the caller provides a key (or the newly
    generated key) which is shorter than the previous key. In that
    scenario, some key material from the previous key would not be
    overwritten. The easiest solution is to explicitly zeroize the entire
    private_key array first.
    
    Note that this patch slightly changes the behavior of this function:
    previously, if the ecc_gen_privkey failed, the old private_key would
    remain. Now, the private_key is always zeroized. This behavior is
    consistent with the case where params.key is set and ecc_is_key_valid
    fails.
    
    Signed-off-by: Joachim Vandersmissen <git@jvdsn.com>
    Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    jvdsn authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    d96187e View commit details
    Browse the repository at this point in the history
  84. ALSA: emux: improve patch ioctl data validation

    [ Upstream commit 89b32cc ]
    
    In load_data(), make the validation of and skipping over the main info
    block match that in load_guspatch().
    
    In load_guspatch(), add checking that the specified patch length matches
    the actually supplied data, like load_data() already did.
    
    Signed-off-by: Oswald Buddenhagen <oswald.buddenhagen@gmx.de>
    Message-ID: <20240406064830.1029573-8-oswald.buddenhagen@gmx.de>
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ossilator authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    87039b8 View commit details
    Browse the repository at this point in the history
  85. media: dvbdev: Initialize sbuf

    [ Upstream commit 17d1316 ]
    
    Because the size passed to copy_from_user() cannot be known beforehand,
    it needs to be checked during runtime with check_object_size. That makes
    gcc believe that the content of sbuf can be used before init.
    
    Fix:
    ./include/linux/thread_info.h:215:17: warning: ‘sbuf’ may be used uninitialized [-Wmaybe-uninitialized]
    
    Signed-off-by: Ricardo Ribalda <ribalda@chromium.org>
    Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ribalda authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    504acde View commit details
    Browse the repository at this point in the history
  86. irqchip/loongson: Select GENERIC_IRQ_EFFECTIVE_AFF_MASK if SMP for IR…

    …Q_LOONGARCH_CPU
    
    [ Upstream commit 42a7d88 ]
    
    An interrupt's effective affinity can only be different from its configured
    affinity if there are multiple CPUs. Make it clear that this option is only
    meaningful when SMP is enabled. Otherwise, there exists "WARNING: unmet
    direct dependencies detected for GENERIC_IRQ_EFFECTIVE_AFF_MASK" when make
    menuconfig if CONFIG_SMP is not set on LoongArch.
    
    Signed-off-by: Tiezhu Yang <yangtiezhu@loongson.cn>
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    Link: https://lore.kernel.org/r/20240326121130.16622-3-yangtiezhu@loongson.cn
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    Tiezhu Yang authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    42b91ce View commit details
    Browse the repository at this point in the history
  87. iommu/arm-smmu-v3: Do not allow a SVA domain to be set on the wrong P…

    …ASID
    
    [ Upstream commit fdc69d3 ]
    
    The SVA code is wired to assume that the SVA is programmed onto the
    mm->pasid. The current core code always does this, so it is fine.
    
    Add a check for clarity.
    
    Tested-by: Nicolin Chen <nicolinc@nvidia.com>
    Tested-by: Shameer Kolothum <shameerali.kolothum.thodi@huawei.com>
    Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
    Link: https://lore.kernel.org/r/3-v6-228e7adf25eb+4155-smmuv3_newapi_p2_jgg@nvidia.com
    Signed-off-by: Will Deacon <will@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    jgunthorpe authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    086f918 View commit details
    Browse the repository at this point in the history
  88. soc: ti: wkup_m3_ipc: Send NULL dummy message instead of pointer message

    [ Upstream commit ddbf320 ]
    
    mbox_send_message() sends a u32 bit message, not a pointer to a message.
    We only convert to a pointer type as a generic type. If we want to send
    a dummy message of 0, then simply send 0 (NULL).
    
    Signed-off-by: Andrew Davis <afd@ti.com>
    Link: https://lore.kernel.org/r/20240325165507.30323-1-afd@ti.com
    Signed-off-by: Nishanth Menon <nm@ti.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    glneo authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    c0d3009 View commit details
    Browse the repository at this point in the history
  89. gfs2: Fix NULL pointer dereference in gfs2_log_flush

    [ Upstream commit 3526490 ]
    
    In gfs2_jindex_free(), set sdp->sd_jdesc to NULL under the log flush
    lock to provide exclusion against gfs2_log_flush().
    
    In gfs2_log_flush(), check if sdp->sd_jdesc is non-NULL before
    dereferencing it.  Otherwise, we could run into a NULL pointer
    dereference when outstanding glock work races with an unmount
    (glock_work_func -> run_queue -> do_xmote -> inode_go_sync ->
    gfs2_log_flush).
    
    Signed-off-by: Andreas Gruenbacher <agruenba@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    Andreas Gruenbacher authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    f54f9d5 View commit details
    Browse the repository at this point in the history
  90. evm: Enforce signatures on unsupported filesystem for EVM_INIT_X509

    [ Upstream commit 47add87 ]
    
    Unsupported filesystems currently do not enforce any signatures. Add
    support for signature enforcement of the "original" and "portable &
    immutable" signatures when EVM_INIT_X509 is enabled.
    
    The "original" signature type contains filesystem specific metadata.
    Thus it cannot be copied up and verified. However with EVM_INIT_X509
    and EVM_ALLOW_METADATA_WRITES enabled, the "original" file signature
    may be written.
    
    When EVM_ALLOW_METADATA_WRITES is not set or once it is removed from
    /sys/kernel/security/evm by setting EVM_INIT_HMAC for example, it is not
    possible to write or remove xattrs on the overlay filesystem.
    
    This change still prevents EVM from writing HMAC signatures on
    unsupported filesystem when EVM_INIT_HMAC is enabled.
    
    Co-developed-by: Mimi Zohar <zohar@linux.ibm.com>
    Signed-off-by: Stefan Berger <stefanb@linux.ibm.com>
    Signed-off-by: Mimi Zohar <zohar@linux.ibm.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    stefanberger authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    c1a964b View commit details
    Browse the repository at this point in the history
  91. drm/radeon/radeon_display: Decrease the size of allocated memory

    [ Upstream commit ae6a233 ]
    
    This is an effort to get rid of all multiplications from allocation
    functions in order to prevent integer overflows [1] [2].
    
    In this case, the memory allocated to store RADEONFB_CONN_LIMIT pointers
    to "drm_connector" structures can be avoided. This is because this
    memory area is never accessed.
    
    Also, in the kzalloc function, it is preferred to use sizeof(*pointer)
    instead of sizeof(type) due to the type of the variable can change and
    one needs not change the former (unlike the latter).
    
    At the same time take advantage to remove the "#if 0" block, the code
    where the removed memory area was accessed, and the RADEONFB_CONN_LIMIT
    constant due to now is never used.
    
    Link: https://www.kernel.org/doc/html/latest/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments [1]
    Link: KSPP#160 [2]
    Acked-by: Christian König <christian.koenig@amd.com>
    Signed-off-by: Erick Archer <erick.archer@outlook.com>
    Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    Erick Archer authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    ebacd4b View commit details
    Browse the repository at this point in the history
  92. drm/xe: Check pat.ops before dumping PAT settings

    [ Upstream commit a918e77 ]
    
    We may leave pat.ops unset when running on brand new platform or
    when running as a VF.  While the former is unlikely, the latter
    is valid (future) use case and will cause NPD when someone will
    try to dump PAT settings by debugfs.
    
    It's better to check pointer to pat.ops instead of specific .dump
    hook, as we have this hook always defined for every .ops variant.
    
    Signed-off-by: Michal Wajdeczko <michal.wajdeczko@intel.com>
    Reviewed-by: Piotr Piórkowski <piotr.piorkowski@intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20240409105106.1067-2-michal.wajdeczko@intel.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    mwajdecz authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    583ce24 View commit details
    Browse the repository at this point in the history
  93. nvmet: do not return 'reserved' for empty TSAS values

    [ Upstream commit f31e85a ]
    
    The 'TSAS' value is only defined for TCP and RDMA, but returning
    'reserved' for undefined values tricked nvmetcli to try to write
    'reserved' when restoring from a config file. This caused an error
    and the configuration would not be applied.
    
    Fixes: 3f12349 ("nvmet: make TCP sectype settable via configfs")
    Signed-off-by: Hannes Reinecke <hare@kernel.org>
    Reviewed-by: Christoph Hellwig <hch@lst.de>
    Reviewed-by: Chaitanya Kulkarni <kch@nvidia.com>
    Signed-off-by: Keith Busch <kbusch@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    Hannes Reinecke authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    09b3377 View commit details
    Browse the repository at this point in the history
  94. nvme: fixup comment for nvme RDMA Provider Type

    [ Upstream commit f80a55f ]
    
    PRTYPE is the provider type, not the QP service type.
    
    Fixes: eb793e2 ("nvme.h: add NVMe over Fabrics definitions")
    Signed-off-by: Hannes Reinecke <hare@kernel.org>
    Reviewed-by: Christoph Hellwig <hch@lst.de>
    Signed-off-by: Keith Busch <kbusch@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    hreinecke authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    ca4d1f1 View commit details
    Browse the repository at this point in the history
  95. nvmet: make 'tsas' attribute idempotent for RDMA

    [ Upstream commit 0f1f580 ]
    
    The RDMA transport defines values for TSAS, but it cannot be changed as
    we only support the 'connected' mode.
    So to avoid errors during reconfiguration we should allow to write the
    current value.
    
    Fixes: 3f12349 ("nvmet: make TCP sectype settable via configfs")
    Signed-off-by: Hannes Reinecke <hare@kernel.org>
    Reviewed-by: Christoph Hellwig <hch@lst.de>
    Signed-off-by: Keith Busch <kbusch@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    Hannes Reinecke authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    b8c3243 View commit details
    Browse the repository at this point in the history
  96. drm/panel: simple: Add missing display timing flags for KOE TX26D202V…

    …M0BWA
    
    [ Upstream commit 37ce99b ]
    
    KOE TX26D202VM0BWA panel spec indicates the DE signal is active high in
    timing chart, so add DISPLAY_FLAGS_DE_HIGH flag in display timing flags.
    This aligns display_timing with panel_desc.
    
    Fixes: 8a07052 ("drm/panel: simple: Add support for KOE TX26D202VM0BWA panel")
    Signed-off-by: Liu Ying <victor.liu@nxp.com>
    Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
    Link: https://lore.kernel.org/r/20240624015612.341983-1-victor.liu@nxp.com
    Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
    Link: https://patchwork.freedesktop.org/patch/msgid/20240624015612.341983-1-victor.liu@nxp.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    Liu Ying authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    0aaf41c View commit details
    Browse the repository at this point in the history
  97. gpio: davinci: Validate the obtained number of IRQs

    [ Upstream commit 7aa9b96 ]
    
    Value of pdata->gpio_unbanked is taken from Device Tree. In case of broken
    DT due to any error this value can be any. Without this value validation
    there can be out of chips->irqs array boundaries access in
    davinci_gpio_probe().
    
    Validate the obtained nirq value so that it won't exceed the maximum
    number of IRQs per bank.
    
    Found by Linux Verification Center (linuxtesting.org) with SVACE.
    
    Fixes: eb3744a ("gpio: davinci: Do not assume continuous IRQ numbering")
    Signed-off-by: Aleksandr Mishin <amishin@t-argos.ru>
    Link: https://lore.kernel.org/r/20240618144344.16943-1-amishin@t-argos.ru
    Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    Aleksandr Mishin authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    c542e51 View commit details
    Browse the repository at this point in the history
  98. arm64: Clear the initial ID map correctly before remapping

    [ Upstream commit ecc5400 ]
    
    In the attempt to clear and recreate the initial ID map for LPA2, we
    wrongly use 'start - end' as the map size and make the memset() almost a
    nop.
    
    Fix it by passing the correct map size.
    
    Fixes: 9684ec1 ("arm64: Enable LPA2 at boot if supported by the system")
    Signed-off-by: Zenghui Yu <yuzenghui@huawei.com>
    Reviewed-by: Ard Biesheuvel <ardb@kernel.org>
    Link: https://lore.kernel.org/r/20240621092809.162-1-yuzenghui@huawei.com
    Signed-off-by: Will Deacon <will@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    Zenghui Yu authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    100de7f View commit details
    Browse the repository at this point in the history
  99. nfsd: initialise nfsd_info.mutex early.

    [ Upstream commit e0011bc ]
    
    nfsd_info.mutex can be dereferenced by svc_pool_stats_start()
    immediately after the new netns is created.  Currently this can
    trigger an oops.
    
    Move the initialisation earlier before it can possibly be dereferenced.
    
    Fixes: 7b207cc ("svc: don't hold reference for poolstats, only mutex.")
    Reported-by: Sourabh Jain <sourabhjain@linux.ibm.com>
    Closes: https://lore.kernel.org/all/c2e9f6de-1ec4-4d3a-b18d-d5a6ec0814a0@linux.ibm.com/
    Signed-off-by: NeilBrown <neilb@suse.de>
    Reviewed-by: Jeff Layton <jlayton@kernel.org>
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    neilbrown authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    7e8b940 View commit details
    Browse the repository at this point in the history
  100. RISC-V: fix vector insn load/store width mask

    [ Upstream commit 04a2aef ]
    
    RVFDQ_FL_FS_WIDTH_MASK should be 3 bits [14-12], shifted down by 12 bits.
    Replace GENMASK(3, 0) with GENMASK(2, 0).
    
    Fixes: cd05483 ("riscv: Allocate user's vector context in the first-use trap")
    Signed-off-by: Jesse Taube <jesse@rivosinc.com>
    Reviewed-by: Charlie Jenkins <charlie@rivosinc.com>
    Link: https://lore.kernel.org/r/20240606182800.415831-1-jesse@rivosinc.com
    Signed-off-by: Palmer Dabbelt <palmer@rivosinc.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    Mr-Bossman authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    5aae340 View commit details
    Browse the repository at this point in the history
  101. drm/amdgpu: Fix pci state save during mode-1 reset

    [ Upstream commit 74fa02c ]
    
    Cache the PCI state before bus master is disabled. The saved state is
    later used for other cases like restoring config space after mode-2
    reset.
    
    Fixes: 5c03e58 ("drm/amdgpu:add smu mode1/2 support for aldebaran")
    Signed-off-by: Lijo Lazar <lijo.lazar@amd.com>
    Reviewed-by: Feifei Xu <Feifei.Xu@amd.com>
    Reviewed-by: Hawking Zhang <Hawking.Zhang@amd.com>
    Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    Lijo Lazar authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    bf3825a View commit details
    Browse the repository at this point in the history
  102. riscv: stacktrace: convert arch_stack_walk() to noinstr

    [ Upstream commit 23b2188 ]
    
    arch_stack_walk() is called intensively in function_graph when the
    kernel is compiled with CONFIG_TRACE_IRQFLAGS. As a result, the kernel
    logs a lot of arch_stack_walk and its sub-functions into the ftrace
    buffer. However, these functions should not appear on the trace log
    because they are part of the ftrace itself. This patch references what
    arm64 does for the smae function. So it further prevent the re-enter
    kprobe issue, which is also possible on riscv.
    
    Related-to: commit 0fbcd8a ("arm64: Prohibit instrumentation on arch_stack_walk()")
    Fixes: 6803413 ("riscv: add CALLER_ADDRx support")
    Signed-off-by: Andy Chiu <andy.chiu@sifive.com>
    Reviewed-by: Alexandre Ghiti <alexghiti@rivosinc.com>
    Link: https://lore.kernel.org/r/20240613-dev-andyc-dyn-ftrace-v4-v1-1-1a538e12c01e@sifive.com
    Signed-off-by: Palmer Dabbelt <palmer@rivosinc.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    AndybnACT authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    ebee3db View commit details
    Browse the repository at this point in the history
  103. iommu/amd: Introduce per device DTE update function

    [ Upstream commit c5ebd09 ]
    
    Consolidate per device update and flush logic into separate function.
    Also make it as global function as it will be used in subsequent series
    to update the DTE.
    
    Signed-off-by: Vasant Hegde <vasant.hegde@amd.com>
    Reviewed-by: Jason Gunthorpe <jgg@nvidia.com>
    Link: https://lore.kernel.org/r/20240418103400.6229-3-vasant.hegde@amd.com
    Signed-off-by: Joerg Roedel <jroedel@suse.de>
    Stable-dep-of: c362f32 ("iommu/amd: Invalidate cache before removing device from domain list")
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    hegdevasant authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    661b45a View commit details
    Browse the repository at this point in the history
  104. iommu/amd: Invalidate cache before removing device from domain list

    [ Upstream commit c362f32 ]
    
    Commit 87a6f1f ("iommu/amd: Introduce per-device domain ID to fix
    potential TLB aliasing issue") introduced per device domain ID when
    domain is configured with v2 page table. And in invalidation path, it
    uses per device structure (dev_data->gcr3_info.domid) to get the domain ID.
    
    In detach_device() path, current code tries to invalidate IOMMU cache
    after removing dev_data from domain device list. This means when domain
    is configured with v2 page table, amd_iommu_domain_flush_all() will not be
    able to invalidate cache as device is already removed from domain device
    list.
    
    This is causing change domain tests (changing domain type from identity to DMA)
    to fail with IO_PAGE_FAULT issue.
    
    Hence invalidate cache and update DTE before updating data structures.
    
    Reported-by: FahHean Lee <fahhean.lee@amd.com>
    Reported-by: Dheeraj Kumar Srivastava <dheerajkumar.srivastava@amd.com>
    Fixes: 87a6f1f ("iommu/amd: Introduce per-device domain ID to fix potential TLB aliasing issue")
    Tested-by: Dheeraj Kumar Srivastava <dheerajkumar.srivastava@amd.com>
    Tested-by: Sairaj Arun Kodilkar <sairaj.arunkodilkar@amd.com>
    Tested-by: FahHean Lee <fahhean.lee@amd.com>
    Signed-off-by: Vasant Hegde <vasant.hegde@amd.com>
    Reviewed-by: Jerry Snitselaar <jsnitsel@redhat.com>
    Link: https://lore.kernel.org/r/20240620060552.13984-1-vasant.hegde@amd.com
    Signed-off-by: Joerg Roedel <jroedel@suse.de>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    hegdevasant authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    b24f089 View commit details
    Browse the repository at this point in the history
  105. iommu/amd: Fix GT feature enablement again

    [ Upstream commit 150bdf5 ]
    
    Current code configures GCR3 even when device is attached to identity
    domain. So that we can support SVA with identity domain. This means in
    attach device path it updates Guest Translation related bits in DTE.
    
    Commit de111f6 ("iommu/amd: Enable Guest Translation after reading
    IOMMU feature register") missed to enable Control[GT] bit in resume
    path. Its causing certain laptop to fail to resume after suspend.
    
    This is because we have inconsistency between between control register
    (GT is disabled) and DTE (where we have enabled guest translation related
    bits) in resume path. And IOMMU hardware throws ILLEGAL_DEV_TABLE_ENTRY.
    
    Fix it by enabling GT bit in resume path.
    
    Reported-by: Błażej Szczygieł <spaz16@wp.pl>
    Link: https://bugzilla.kernel.org/show_bug.cgi?id=218975
    Fixes: de111f6 ("iommu/amd: Enable Guest Translation after reading IOMMU feature register")
    Tested-by: Błażej Szczygieł <spaz16@wp.pl>
    Signed-off-by: Vasant Hegde <vasant.hegde@amd.com>
    Reviewed-by: Jerry Snitselaar <jsnitsel@redhat.com>
    Link: https://lore.kernel.org/r/20240621101533.20216-1-vasant.hegde@amd.com
    Signed-off-by: Joerg Roedel <jroedel@suse.de>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    hegdevasant authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    7a1be1d View commit details
    Browse the repository at this point in the history
  106. gpiolib: cdev: Disallow reconfiguration without direction (uAPI v1)

    [ Upstream commit 9919cce ]
    
    linehandle_set_config() behaves badly when direction is not set.
    The configuration validation is borrowed from linehandle_create(), where,
    to verify the intent of the user, the direction must be set to in order
    to effect a change to the electrical configuration of a line. But, when
    applied to reconfiguration, that validation does not allow for the unset
    direction case, making it possible to clear flags set previously without
    specifying the line direction.
    
    Adding to the inconsistency, those changes are not immediately applied by
    linehandle_set_config(), but will take effect when the line value is next
    get or set.
    
    For example, by requesting a configuration with no flags set, an output
    line with GPIOHANDLE_REQUEST_ACTIVE_LOW and GPIOHANDLE_REQUEST_OPEN_DRAIN
    requested could have those flags cleared, inverting the sense of the line
    and changing the line drive to push-pull on the next line value set.
    
    Ensure the intent of the user by disallowing configurations which do not
    have direction set, returning an error to userspace to indicate that the
    configuration is invalid.
    
    And, for clarity, use lflags, a local copy of gcnf.flags, throughout when
    dealing with the requested flags, rather than a mixture of both.
    
    Fixes: e588bb1 ("gpio: add new SET_CONFIG ioctl() to gpio chardev")
    Signed-off-by: Kent Gibson <warthog618@gmail.com>
    Link: https://lore.kernel.org/r/20240626052925.174272-2-warthog618@gmail.com
    Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    warthog618 authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    847d925 View commit details
    Browse the repository at this point in the history
  107. gpiolib: cdev: Ignore reconfiguration without direction

    [ Upstream commit b440396 ]
    
    linereq_set_config() behaves badly when direction is not set.
    The configuration validation is borrowed from linereq_create(), where,
    to verify the intent of the user, the direction must be set to in order to
    effect a change to the electrical configuration of a line. But, when
    applied to reconfiguration, that validation does not allow for the unset
    direction case, making it possible to clear flags set previously without
    specifying the line direction.
    
    Adding to the inconsistency, those changes are not immediately applied by
    linereq_set_config(), but will take effect when the line value is next get
    or set.
    
    For example, by requesting a configuration with no flags set, an output
    line with GPIO_V2_LINE_FLAG_ACTIVE_LOW and GPIO_V2_LINE_FLAG_OPEN_DRAIN
    set could have those flags cleared, inverting the sense of the line and
    changing the line drive to push-pull on the next line value set.
    
    Skip the reconfiguration of lines for which the direction is not set, and
    only reconfigure the lines for which direction is set.
    
    Fixes: a54756c ("gpiolib: cdev: support GPIO_V2_LINE_SET_CONFIG_IOCTL")
    Signed-off-by: Kent Gibson <warthog618@gmail.com>
    Link: https://lore.kernel.org/r/20240626052925.174272-3-warthog618@gmail.com
    Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    warthog618 authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    d972e7b View commit details
    Browse the repository at this point in the history
  108. tools/power turbostat: option '-n' is ambiguous

    [ Upstream commit ebb5b26 ]
    
    In some cases specifying the '-n' command line argument will cause
    turbostat to fail.  For instance 'turbostat -n 1' works fine; however,
    'turbostat -n 1 -d' will fail.  This is the result of the first call
    to getopt_long_only() where "MP" is specified as the optstring.  This can
    be easily fixed by changing the optstring from "MP" to "MPn:" to remove
    ambiguity between the arguments.
    
    tools/power turbostat: option '-n' is ambiguous; possibilities: '-num_iterations' '-no-msr' '-no-perf'
    
    Fixes: a0e86c9 ("tools/power turbostat: Add --no-perf option")
    
    Signed-off-by: David Arcari <darcari@redhat.com>
    Signed-off-by: Len Brown <len.brown@intel.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    darcari authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    47a129f View commit details
    Browse the repository at this point in the history
  109. randomize_kstack: Remove non-functional per-arch entropy filtering

    [ Upstream commit 6db1208 ]
    
    An unintended consequence of commit 9c573cd ("randomize_kstack:
    Improve entropy diffusion") was that the per-architecture entropy size
    filtering reduced how many bits were being added to the mix, rather than
    how many bits were being used during the offsetting. All architectures
    fell back to the existing default of 0x3FF (10 bits), which will consume
    at most 1KiB of stack space. It seems that this is working just fine,
    so let's avoid the confusion and update everything to use the default.
    
    The prior intent of the per-architecture limits were:
    
      arm64: capped at 0x1FF (9 bits), 5 bits effective
      powerpc: uncapped (10 bits), 6 or 7 bits effective
      riscv: uncapped (10 bits), 6 bits effective
      x86: capped at 0xFF (8 bits), 5 (x86_64) or 6 (ia32) bits effective
      s390: capped at 0xFF (8 bits), undocumented effective entropy
    
    Current discussion has led to just dropping the original per-architecture
    filters. The additional entropy appears to be safe for arm64, x86,
    and s390. Quoting Arnd, "There is no point pretending that 15.75KB is
    somehow safe to use while 15.00KB is not."
    
    Co-developed-by: Yuntao Liu <liuyuntao12@huawei.com>
    Signed-off-by: Yuntao Liu <liuyuntao12@huawei.com>
    Fixes: 9c573cd ("randomize_kstack: Improve entropy diffusion")
    Link: https://lore.kernel.org/r/20240617133721.377540-1-liuyuntao12@huawei.com
    Reviewed-by: Arnd Bergmann <arnd@arndb.de>
    Acked-by: Mark Rutland <mark.rutland@arm.com>
    Acked-by: Heiko Carstens <hca@linux.ibm.com> # s390
    Link: https://lore.kernel.org/r/20240619214711.work.953-kees@kernel.org
    Signed-off-by: Kees Cook <kees@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    kees authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    8360bf6 View commit details
    Browse the repository at this point in the history
  110. x86: stop playing stack games in profile_pc()

    [ Upstream commit 093d960 ]
    
    The 'profile_pc()' function is used for timer-based profiling, which
    isn't really all that relevant any more to begin with, but it also ends
    up making assumptions based on the stack layout that aren't necessarily
    valid.
    
    Basically, the code tries to account the time spent in spinlocks to the
    caller rather than the spinlock, and while I support that as a concept,
    it's not worth the code complexity or the KASAN warnings when no serious
    profiling is done using timers anyway these days.
    
    And the code really does depend on stack layout that is only true in the
    simplest of cases.  We've lost the comment at some point (I think when
    the 32-bit and 64-bit code was unified), but it used to say:
    
    	Assume the lock function has either no stack frame or a copy
    	of eflags from PUSHF.
    
    which explains why it just blindly loads a word or two straight off the
    stack pointer and then takes a minimal look at the values to just check
    if they might be eflags or the return pc:
    
    	Eflags always has bits 22 and up cleared unlike kernel addresses
    
    but that basic stack layout assumption assumes that there isn't any lock
    debugging etc going on that would complicate the code and cause a stack
    frame.
    
    It causes KASAN unhappiness reported for years by syzkaller [1] and
    others [2].
    
    With no real practical reason for this any more, just remove the code.
    
    Just for historical interest, here's some background commits relating to
    this code from 2006:
    
      0cb91a2 ("i386: Account spinlocks to the caller during profiling for !FP kernels")
      31679f3 ("Simplify profile_pc on x86-64")
    
    and a code unification from 2009:
    
      ef45128 ("x86: time_32/64.c unify profile_pc")
    
    but the basics of this thing actually goes back to before the git tree.
    
    Link: https://syzkaller.appspot.com/bug?extid=84fe685c02cd112a2ac3 [1]
    Link: https://lore.kernel.org/all/CAK55_s7Xyq=nh97=K=G1sxueOFrJDAvPOJAL4TPTCAYvmxO9_A@mail.gmail.com/ [2]
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    torvalds authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    a3b65c8 View commit details
    Browse the repository at this point in the history
  111. parisc: use generic sys_fanotify_mark implementation

    [ Upstream commit 403f17a ]
    
    The sys_fanotify_mark() syscall on parisc uses the reverse word order
    for the two halves of the 64-bit argument compared to all syscalls on
    all 32-bit architectures. As far as I can tell, the problem is that
    the function arguments on parisc are sorted backwards (26, 25, 24, 23,
    ...) compared to everyone else, so the calling conventions of using an
    even/odd register pair in native word order result in the lower word
    coming first in function arguments, matching the expected behavior
    on little-endian architectures. The system call conventions however
    ended up matching what the other 32-bit architectures do.
    
    A glibc cleanup in 2020 changed the userspace behavior in a way that
    handles all architectures consistently, but this inadvertently broke
    parisc32 by changing to the same method as everyone else.
    
    The change made it into glibc-2.35 and subsequently into debian 12
    (bookworm), which is the latest stable release. This means we
    need to choose between reverting the glibc change or changing the
    kernel to match it again, but either hange will leave some systems
    broken.
    
    Pick the option that is more likely to help current and future
    users and change the kernel to match current glibc. This also
    means the behavior is now consistent across architectures, but
    it breaks running new kernels with old glibc builds before 2.35.
    
    Link: https://sourceware.org/git/?p=glibc.git;a=commitdiff;h=d150181d73d9
    Link: https://git.kernel.org/pub/scm/linux/kernel/git/history/history.git/commit/arch/parisc/kernel/sys_parisc.c?h=57b1dfbd5b4a39d
    Cc: Adhemerval Zanella <adhemerval.zanella@linaro.org>
    Tested-by: Helge Deller <deller@gmx.de>
    Acked-by: Helge Deller <deller@gmx.de>
    Signed-off-by: Arnd Bergmann <arnd@arndb.de>
    arndb authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    00997a5 View commit details
    Browse the repository at this point in the history
  112. Revert "MIPS: pci: lantiq: restore reset gpio polarity"

    commit 6e5aee0 upstream.
    
    This reverts commit 277a036.
    
    While fixing old boards with broken DTs, this change will break
    newer ones with correct gpio polarity annotation.
    
    Signed-off-by: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    tsbogend authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    5767269 View commit details
    Browse the repository at this point in the history
  113. pinctrl: qcom: spmi-gpio: drop broken pm8008 support

    commit 8da8649 upstream.
    
    The SPMI GPIO driver assumes that the parent device is an SPMI device
    and accesses random data when backcasting the parent struct device
    pointer for non-SPMI devices.
    
    Fortunately this does not seem to cause any issues currently when the
    parent device is an I2C client like the PM8008, but this could change if
    the structures are reorganised (e.g. using structure randomisation).
    
    Notably the interrupt implementation is also broken for non-SPMI devices.
    
    Also note that the two GPIO pins on PM8008 are used for interrupts and
    reset so their practical use should be limited.
    
    Drop the broken GPIO support for PM8008 for now.
    
    Fixes: ea119e5 ("pinctrl: qcom-pmic-gpio: Add support for pm8008")
    Cc: stable@vger.kernel.org	# 5.13
    Reviewed-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
    Reviewed-by: Stephen Boyd <swboyd@chromium.org>
    Signed-off-by: Johan Hovold <johan+linaro@kernel.org>
    Link: https://lore.kernel.org/r/20240529162958.18081-9-johan+linaro@kernel.org
    Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    jhovold authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    957db01 View commit details
    Browse the repository at this point in the history
  114. ocfs2: fix DIO failure due to insufficient transaction credits

    commit be346c1 upstream.
    
    The code in ocfs2_dio_end_io_write() estimates number of necessary
    transaction credits using ocfs2_calc_extend_credits().  This however does
    not take into account that the IO could be arbitrarily large and can
    contain arbitrary number of extents.
    
    Extent tree manipulations do often extend the current transaction but not
    in all of the cases.  For example if we have only single block extents in
    the tree, ocfs2_mark_extent_written() will end up calling
    ocfs2_replace_extent_rec() all the time and we will never extend the
    current transaction and eventually exhaust all the transaction credits if
    the IO contains many single block extents.  Once that happens a
    WARN_ON(jbd2_handle_buffer_credits(handle) <= 0) is triggered in
    jbd2_journal_dirty_metadata() and subsequently OCFS2 aborts in response to
    this error.  This was actually triggered by one of our customers on a
    heavily fragmented OCFS2 filesystem.
    
    To fix the issue make sure the transaction always has enough credits for
    one extent insert before each call of ocfs2_mark_extent_written().
    
    Heming Zhao said:
    
    ------
    PANIC: "Kernel panic - not syncing: OCFS2: (device dm-1): panic forced after error"
    
    PID: xxx  TASK: xxxx  CPU: 5  COMMAND: "SubmitThread-CA"
      #0 machine_kexec at ffffffff8c069932
      #1 __crash_kexec at ffffffff8c1338fa
      #2 panic at ffffffff8c1d69b9
      #3 ocfs2_handle_error at ffffffffc0c86c0c [ocfs2]
      #4 __ocfs2_abort at ffffffffc0c88387 [ocfs2]
      #5 ocfs2_journal_dirty at ffffffffc0c51e98 [ocfs2]
      #6 ocfs2_split_extent at ffffffffc0c27ea3 [ocfs2]
      #7 ocfs2_change_extent_flag at ffffffffc0c28053 [ocfs2]
      #8 ocfs2_mark_extent_written at ffffffffc0c28347 [ocfs2]
      #9 ocfs2_dio_end_io_write at ffffffffc0c2bef9 [ocfs2]
    #10 ocfs2_dio_end_io at ffffffffc0c2c0f5 [ocfs2]
    #11 dio_complete at ffffffff8c2b9fa7
    #12 do_blockdev_direct_IO at ffffffff8c2bc09f
    #13 ocfs2_direct_IO at ffffffffc0c2b653 [ocfs2]
    #14 generic_file_direct_write at ffffffff8c1dcf14
    #15 __generic_file_write_iter at ffffffff8c1dd07b
    #16 ocfs2_file_write_iter at ffffffffc0c49f1f [ocfs2]
    #17 aio_write at ffffffff8c2cc72e
    #18 kmem_cache_alloc at ffffffff8c248dde
    #19 do_io_submit at ffffffff8c2ccada
    #20 do_syscall_64 at ffffffff8c004984
    #21 entry_SYSCALL_64_after_hwframe at ffffffff8c8000ba
    
    Link: https://lkml.kernel.org/r/20240617095543.6971-1-jack@suse.cz
    Link: https://lkml.kernel.org/r/20240614145243.8837-1-jack@suse.cz
    Fixes: c15471f ("ocfs2: fix sparse file & data ordering issue in direct io")
    Signed-off-by: Jan Kara <jack@suse.cz>
    Reviewed-by: Joseph Qi <joseph.qi@linux.alibaba.com>
    Reviewed-by: Heming Zhao <heming.zhao@suse.com>
    Cc: Mark Fasheh <mark@fasheh.com>
    Cc: Joel Becker <jlbec@evilplan.org>
    Cc: Junxiao Bi <junxiao.bi@oracle.com>
    Cc: Changwei Ge <gechangwei@live.cn>
    Cc: Gang He <ghe@suse.com>
    Cc: Jun Piao <piaojun@huawei.com>
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    jankara authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    331d107 View commit details
    Browse the repository at this point in the history
  115. nfs: drop the incorrect assertion in nfs_swap_rw()

    commit 54e7d59 upstream.
    
    Since commit 2282679 ("mm: submit multipage write for SWP_FS_OPS
    swap-space"), we can plug multiple pages then unplug them all together.
    That means iov_iter_count(iter) could be way bigger than PAGE_SIZE, it
    actually equals the size of iov_iter_npages(iter, INT_MAX).
    
    Note this issue has nothing to do with large folios as we don't support
    THP_SWPOUT to non-block devices.
    
    [v-songbaohua@oppo.com: figure out the cause and correct the commit message]
    Link: https://lkml.kernel.org/r/20240618065647.21791-1-21cnbao@gmail.com
    Fixes: 2282679 ("mm: submit multipage write for SWP_FS_OPS swap-space")
    Signed-off-by: Christoph Hellwig <hch@lst.de>
    Signed-off-by: Barry Song <v-songbaohua@oppo.com>
    Closes: https://lore.kernel.org/linux-mm/20240617053201.GA16852@lst.de/
    Reviewed-by: Martin Wege <martin.l.wege@gmail.com>
    Cc: NeilBrown <neilb@suse.de>
    Cc: Anna Schumaker <anna@kernel.org>
    Cc: Steve French <sfrench@samba.org>
    Cc: Trond Myklebust <trondmy@kernel.org>
    Cc: Chuanhua Han <hanchuanhua@oppo.com>
    Cc: Ryan Roberts <ryan.roberts@arm.com>
    Cc: Chris Li <chrisl@kernel.org>
    Cc: "Huang, Ying" <ying.huang@intel.com>
    Cc: Jeff Layton <jlayton@kernel.org>
    Cc: Matthew Wilcox <willy@infradead.org>
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Christoph Hellwig authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    85c3710 View commit details
    Browse the repository at this point in the history
  116. kasan: fix bad call to unpoison_slab_object

    commit 1c61990 upstream.
    
    Commit 29d7355 ("kasan: save alloc stack traces for mempool") messed
    up one of the calls to unpoison_slab_object: the last two arguments are
    supposed to be GFP flags and whether to init the object memory.
    
    Fix the call.
    
    Without this fix, __kasan_mempool_unpoison_object provides the object's
    size as GFP flags to unpoison_slab_object, which can cause LOCKDEP reports
    (and probably other issues).
    
    Link: https://lkml.kernel.org/r/20240614143238.60323-1-andrey.konovalov@linux.dev
    Fixes: 29d7355 ("kasan: save alloc stack traces for mempool")
    Signed-off-by: Andrey Konovalov <andreyknvl@gmail.com>
    Reported-by: Brad Spengler <spender@grsecurity.net>
    Acked-by: Marco Elver <elver@google.com>
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    xairy authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    7970c84 View commit details
    Browse the repository at this point in the history
  117. mm: fix incorrect vbq reference in purge_fragmented_block

    commit 8c61291 upstream.
    
    xa_for_each() in _vm_unmap_aliases() loops through all vbs.  However,
    since commit 062eacf ("mm: vmalloc: remove a global vmap_blocks
    xarray") the vb from xarray may not be on the corresponding CPU
    vmap_block_queue.  Consequently, purge_fragmented_block() might use the
    wrong vbq->lock to protect the free list, leading to vbq->free breakage.
    
    Incorrect lock protection can exhaust all vmalloc space as follows:
    CPU0                                            CPU1
    +--------------------------------------------+
    |    +--------------------+     +-----+      |
    +--> |                    |---->|     |------+
         | CPU1:vbq free_list |     | vb1 |
    +--- |                    |<----|     |<-----+
    |    +--------------------+     +-----+      |
    +--------------------------------------------+
    
    _vm_unmap_aliases()                             vb_alloc()
                                                    new_vmap_block()
    xa_for_each(&vbq->vmap_blocks, idx, vb)
    --> vb in CPU1:vbq->freelist
    
    purge_fragmented_block(vb)
    spin_lock(&vbq->lock)                           spin_lock(&vbq->lock)
    --> use CPU0:vbq->lock                          --> use CPU1:vbq->lock
    
    list_del_rcu(&vb->free_list)                    list_add_tail_rcu(&vb->free_list, &vbq->free)
        __list_del(vb->prev, vb->next)
            next->prev = prev
        +--------------------+
        |                    |
        | CPU1:vbq free_list |
    +---|                    |<--+
    |   +--------------------+   |
    +----------------------------+
                                                    __list_add(new, head->prev, head)
    +--------------------------------------------+
    |    +--------------------+     +-----+      |
    +--> |                    |---->|     |------+
         | CPU1:vbq free_list |     | vb2 |
    +--- |                    |<----|     |<-----+
    |    +--------------------+     +-----+      |
    +--------------------------------------------+
    
            prev->next = next
    +--------------------------------------------+
    |----------------------------+               |
    |    +--------------------+  |  +-----+      |
    +--> |                    |--+  |     |------+
         | CPU1:vbq free_list |     | vb2 |
    +--- |                    |<----|     |<-----+
    |    +--------------------+     +-----+      |
    +--------------------------------------------+
    Here’s a list breakdown. All vbs, which were to be added to
    ‘prev’, cannot be used by list_for_each_entry_rcu(vb, &vbq->free,
    free_list) in vb_alloc(). Thus, vmalloc space is exhausted.
    
    This issue affects both erofs and f2fs, the stacktrace is as follows:
    erofs:
    [<ffffffd4ffb93ad4>] __switch_to+0x174
    [<ffffffd4ffb942f0>] __schedule+0x624
    [<ffffffd4ffb946f4>] schedule+0x7c
    [<ffffffd4ffb947cc>] schedule_preempt_disabled+0x24
    [<ffffffd4ffb962ec>] __mutex_lock+0x374
    [<ffffffd4ffb95998>] __mutex_lock_slowpath+0x14
    [<ffffffd4ffb95954>] mutex_lock+0x24
    [<ffffffd4fef2900c>] reclaim_and_purge_vmap_areas+0x44
    [<ffffffd4fef25908>] alloc_vmap_area+0x2e0
    [<ffffffd4fef24ea0>] vm_map_ram+0x1b0
    [<ffffffd4ff1b46f4>] z_erofs_lz4_decompress+0x278
    [<ffffffd4ff1b8ac4>] z_erofs_decompress_queue+0x650
    [<ffffffd4ff1b8328>] z_erofs_runqueue+0x7f4
    [<ffffffd4ff1b66a8>] z_erofs_read_folio+0x104
    [<ffffffd4feeb6fec>] filemap_read_folio+0x6c
    [<ffffffd4feeb68c4>] filemap_fault+0x300
    [<ffffffd4fef0ecac>] __do_fault+0xc8
    [<ffffffd4fef0c908>] handle_mm_fault+0xb38
    [<ffffffd4ffb9f008>] do_page_fault+0x288
    [<ffffffd4ffb9ed64>] do_translation_fault[jt]+0x40
    [<ffffffd4fec39c78>] do_mem_abort+0x58
    [<ffffffd4ffb8c3e4>] el0_ia+0x70
    [<ffffffd4ffb8c260>] el0t_64_sync_handler[jt]+0xb0
    [<ffffffd4fec11588>] ret_to_user[jt]+0x0
    
    f2fs:
    [<ffffffd4ffb93ad4>] __switch_to+0x174
    [<ffffffd4ffb942f0>] __schedule+0x624
    [<ffffffd4ffb946f4>] schedule+0x7c
    [<ffffffd4ffb947cc>] schedule_preempt_disabled+0x24
    [<ffffffd4ffb962ec>] __mutex_lock+0x374
    [<ffffffd4ffb95998>] __mutex_lock_slowpath+0x14
    [<ffffffd4ffb95954>] mutex_lock+0x24
    [<ffffffd4fef2900c>] reclaim_and_purge_vmap_areas+0x44
    [<ffffffd4fef25908>] alloc_vmap_area+0x2e0
    [<ffffffd4fef24ea0>] vm_map_ram+0x1b0
    [<ffffffd4ff1a3b60>] f2fs_prepare_decomp_mem+0x144
    [<ffffffd4ff1a6c24>] f2fs_alloc_dic+0x264
    [<ffffffd4ff175468>] f2fs_read_multi_pages+0x428
    [<ffffffd4ff17b46c>] f2fs_mpage_readpages+0x314
    [<ffffffd4ff1785c4>] f2fs_readahead+0x50
    [<ffffffd4feec3384>] read_pages+0x80
    [<ffffffd4feec32c0>] page_cache_ra_unbounded+0x1a0
    [<ffffffd4feec39e8>] page_cache_ra_order+0x274
    [<ffffffd4feeb6cec>] do_sync_mmap_readahead+0x11c
    [<ffffffd4feeb6764>] filemap_fault+0x1a0
    [<ffffffd4ff1423bc>] f2fs_filemap_fault+0x28
    [<ffffffd4fef0ecac>] __do_fault+0xc8
    [<ffffffd4fef0c908>] handle_mm_fault+0xb38
    [<ffffffd4ffb9f008>] do_page_fault+0x288
    [<ffffffd4ffb9ed64>] do_translation_fault[jt]+0x40
    [<ffffffd4fec39c78>] do_mem_abort+0x58
    [<ffffffd4ffb8c3e4>] el0_ia+0x70
    [<ffffffd4ffb8c260>] el0t_64_sync_handler[jt]+0xb0
    [<ffffffd4fec11588>] ret_to_user[jt]+0x0
    
    To fix this, introducee cpu within vmap_block to record which this vb
    belongs to.
    
    Link: https://lkml.kernel.org/r/20240614021352.1822225-1-zhaoyang.huang@unisoc.com
    Link: https://lkml.kernel.org/r/20240607023116.1720640-1-zhaoyang.huang@unisoc.com
    Fixes: fc1e0d9 ("mm/vmalloc: prevent stale TLBs in fully utilized blocks")
    Signed-off-by: Zhaoyang Huang <zhaoyang.huang@unisoc.com>
    Suggested-by: Hailong.Liu <hailong.liu@oppo.com>
    Reviewed-by: Uladzislau Rezki (Sony) <urezki@gmail.com>
    Cc: Baoquan He <bhe@redhat.com>
    Cc: Christoph Hellwig <hch@infradead.org>
    Cc: Lorenzo Stoakes <lstoakes@gmail.com>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Zhaoyang Huang authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    9983b81 View commit details
    Browse the repository at this point in the history
  118. mm/memory: don't require head page for do_set_pmd()

    commit ab1ffc8 upstream.
    
    The requirement that the head page be passed to do_set_pmd() was added in
    commit ef37b2e ("mm/memory: page_add_file_rmap() ->
    folio_add_file_rmap_[pte|pmd]()") and prevents pmd-mapping in the
    finish_fault() and filemap_map_pages() paths if the page to be inserted is
    anything but the head page for an otherwise suitable vma and pmd-sized
    page.
    
    Matthew said:
    
    : We're going to stop using PMDs to map large folios unless the fault is
    : within the first 4KiB of the PMD.  No idea how many workloads that
    : affects, but it only needs to be backported as far as v6.8, so we may
    : as well backport it.
    
    Link: https://lkml.kernel.org/r/20240611153216.2794513-1-abrestic@rivosinc.com
    Fixes: ef37b2e ("mm/memory: page_add_file_rmap() -> folio_add_file_rmap_[pte|pmd]()")
    Signed-off-by: Andrew Bresticker <abrestic@rivosinc.com>
    Acked-by: David Hildenbrand <david@redhat.com>
    Acked-by: Hugh Dickins <hughd@google.com>
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    abrestic-rivos authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    f93fe12 View commit details
    Browse the repository at this point in the history
  119. Revert "mmc: moxart-mmc: Use sg_miter for PIO"

    commit 84bb8d8 upstream.
    
    This reverts commit 3ee0e7c.
    
    The patch is not working for unknown reasons and I would
    need access to the hardware to fix the bug.
    
    This shouldn't matter anyway: the Moxa Art is not expected
    to use highmem, and sg_miter() is only necessary to have
    to properly deal with highmem.
    
    Reported-by: Sergei Antonov <saproj@gmail.com>
    Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
    Fixes: 3ee0e7c ("mmc: moxart-mmc: Use sg_miter for PIO")
    Cc: stable@vger.kernel.org
    Link: https://lore.kernel.org/r/20240606-mmc-moxart-revert-v1-1-a01c2f40de9c@linaro.org
    Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    linusw authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    2e56cc1 View commit details
    Browse the repository at this point in the history
  120. mmc: sdhci-pci-o2micro: Convert PCIBIOS_* return codes to errnos

    commit a91bf3b upstream.
    
    sdhci_pci_o2_probe() uses pci_read_config_{byte,dword}() that return
    PCIBIOS_* codes. The return code is then returned as is but as
    sdhci_pci_o2_probe() is probe function chain, it should return normal
    errnos.
    
    Convert PCIBIOS_* returns code using pcibios_err_to_errno() into normal
    errno before returning them. Add a label for read failure so that the
    conversion can be done in one place rather than on all of the return
    statements.
    
    Fixes: 3d757dd ("mmc: sdhci-pci-o2micro: add Bayhub new chip GG8 support for UHS-I")
    Fixes: d599005 ("mmc: sdhci-pci-o2micro: Add missing checks in sdhci_pci_o2_probe")
    Fixes: 706adf6 ("mmc: sdhci-pci-o2micro: Add SeaBird SeaEagle SD3 support")
    Fixes: 01acf69 ("mmc: sdhci-pci: add support of O2Micro/BayHubTech SD hosts")
    Fixes: 26daa1e ("mmc: sdhci: Disable ADMA on some O2Micro SD/MMC parts.")
    Cc: stable@vger.kernel.org
    Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
    Acked-by: Adrian Hunter <adrian.hunter@intel.com>
    Link: https://lore.kernel.org/r/20240527132443.14038-2-ilpo.jarvinen@linux.intel.com
    Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    ij-intel authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    501a094 View commit details
    Browse the repository at this point in the history
  121. mmc: sdhci-brcmstb: check R1_STATUS for erase/trim/discard

    commit d77dc38 upstream.
    
    When erase/trim/discard completion was converted to mmc_poll_for_busy(),
    optional support to poll with the host_ops->card_busy() callback was also
    added.
    
    The common sdhci's ->card_busy() turns out not to be working as expected
    for the sdhci-brcmstb variant, as it keeps returning busy beyond the card's
    busy period. In particular, this leads to the below splat for
    mmc_do_erase() when running a discard (BLKSECDISCARD) operation during
    mkfs.f2fs:
    
        Info: [/dev/mmcblk1p9] Discarding device
        [   39.597258] sysrq: Show Blocked State
        [   39.601183] task:mkfs.f2fs       state:D stack:0     pid:1561  tgid:1561  ppid:1542   flags:0x0000000d
        [   39.610609] Call trace:
        [   39.613098]  __switch_to+0xd8/0xf4
        [   39.616582]  __schedule+0x440/0x4f4
        [   39.620137]  schedule+0x2c/0x48
        [   39.623341]  schedule_hrtimeout_range_clock+0xe0/0x114
        [   39.628562]  schedule_hrtimeout_range+0x10/0x18
        [   39.633169]  usleep_range_state+0x5c/0x90
        [   39.637253]  __mmc_poll_for_busy+0xec/0x128
        [   39.641514]  mmc_poll_for_busy+0x48/0x70
        [   39.645511]  mmc_do_erase+0x1ec/0x210
        [   39.649237]  mmc_erase+0x1b4/0x1d4
        [   39.652701]  mmc_blk_mq_issue_rq+0x35c/0x6ac
        [   39.657037]  mmc_mq_queue_rq+0x18c/0x214
        [   39.661022]  blk_mq_dispatch_rq_list+0x3a8/0x528
        [   39.665722]  __blk_mq_sched_dispatch_requests+0x3a0/0x4ac
        [   39.671198]  blk_mq_sched_dispatch_requests+0x28/0x5c
        [   39.676322]  blk_mq_run_hw_queue+0x11c/0x12c
        [   39.680668]  blk_mq_flush_plug_list+0x200/0x33c
        [   39.685278]  blk_add_rq_to_plug+0x68/0xd8
        [   39.689365]  blk_mq_submit_bio+0x3a4/0x458
        [   39.693539]  __submit_bio+0x1c/0x80
        [   39.697096]  submit_bio_noacct_nocheck+0x94/0x174
        [   39.701875]  submit_bio_noacct+0x1b0/0x22c
        [   39.706042]  submit_bio+0xac/0xe8
        [   39.709424]  blk_next_bio+0x4c/0x5c
        [   39.712973]  blkdev_issue_secure_erase+0x118/0x170
        [   39.717835]  blkdev_common_ioctl+0x374/0x728
        [   39.722175]  blkdev_ioctl+0x8c/0x2b0
        [   39.725816]  vfs_ioctl+0x24/0x40
        [   39.729117]  __arm64_sys_ioctl+0x5c/0x8c
        [   39.733114]  invoke_syscall+0x68/0xec
        [   39.736839]  el0_svc_common.constprop.0+0x70/0xd8
        [   39.741609]  do_el0_svc+0x18/0x20
        [   39.744981]  el0_svc+0x68/0x94
        [   39.748107]  el0t_64_sync_handler+0x88/0x124
        [   39.752455]  el0t_64_sync+0x168/0x16c
    
    To fix the problem let's override the host_ops->card_busy() callback by
    setting it to NULL, which forces the mmc core to poll with a CMD13 and
    checking the R1_STATUS in the mmc_busy_cb() function.
    
    Signed-off-by: Kamal Dasu <kamal.dasu@broadcom.com>
    Fixes: 0d84c3e ("mmc: core: Convert to mmc_poll_for_busy() for erase/trim/discard")
    Cc: stable@vger.kernel.org
    Link: https://lore.kernel.org/r/20240603220834.21989-2-kamal.dasu@broadcom.com
    [Ulf: Clarified the commit message]
    Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Kamal Dasu authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    4d96632 View commit details
    Browse the repository at this point in the history
  122. mmc: sdhci-pci: Convert PCIBIOS_* return codes to errnos

    commit ebc4fc3 upstream.
    
    jmicron_pmos() and sdhci_pci_probe() use pci_{read,write}_config_byte()
    that return PCIBIOS_* codes. The return code is then returned as is by
    jmicron_probe() and sdhci_pci_probe(). Similarly, the return code is
    also returned as is from jmicron_resume(). Both probe and resume
    functions should return normal errnos.
    
    Convert PCIBIOS_* returns code using pcibios_err_to_errno() into normal
    errno before returning them the fix these issues.
    
    Fixes: 7582041 ("mmc: sdhci-pci: fix simple_return.cocci warnings")
    Fixes: 45211e2 ("sdhci: toggle JMicron PMOS setting")
    Cc: stable@vger.kernel.org
    Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
    Acked-by: Adrian Hunter <adrian.hunter@intel.com>
    Link: https://lore.kernel.org/r/20240527132443.14038-1-ilpo.jarvinen@linux.intel.com
    Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    ij-intel authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    5a012be View commit details
    Browse the repository at this point in the history
  123. mmc: sdhci: Do not invert write-protect twice

    commit fbd64f9 upstream.
    
    mmc_of_parse() reads device property "wp-inverted" and sets
    MMC_CAP2_RO_ACTIVE_HIGH if it is true. MMC_CAP2_RO_ACTIVE_HIGH is used
    to invert a write-protect (AKA read-only) GPIO value.
    
    sdhci_get_property() also reads "wp-inverted" and sets
    SDHCI_QUIRK_INVERTED_WRITE_PROTECT which is used to invert the
    write-protect value as well but also acts upon a value read out from the
    SDHCI_PRESENT_STATE register.
    
    Many drivers call both mmc_of_parse() and sdhci_get_property(),
    so that both MMC_CAP2_RO_ACTIVE_HIGH and
    SDHCI_QUIRK_INVERTED_WRITE_PROTECT will be set if the controller has
    device property "wp-inverted".
    
    Amend the logic in sdhci_check_ro() to allow for that possibility,
    so that the write-protect value is not inverted twice.
    
    Also do not invert the value if it is a negative error value. Note that
    callers treat an error the same as not-write-protected, so the result is
    functionally the same in that case.
    
    Also do not invert the value if sdhci host operation ->get_ro() is used.
    None of the users of that callback set SDHCI_QUIRK_INVERTED_WRITE_PROTECT
    directly or indirectly, but two do call mmc_gpio_get_ro(), so leave it to
    them to deal with that if they ever set SDHCI_QUIRK_INVERTED_WRITE_PROTECT
    in the future.
    
    Fixes: 6d5cd06 ("mmc: sdhci: use WP GPIO in sdhci_check_ro()")
    Signed-off-by: Adrian Hunter <adrian.hunter@intel.com>
    Cc: stable@vger.kernel.org
    Link: https://lore.kernel.org/r/20240614080051.4005-2-adrian.hunter@intel.com
    Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    ahunter6 authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    52e0091 View commit details
    Browse the repository at this point in the history
  124. mmc: sdhci: Do not lock spinlock around mmc_gpio_get_ro()

    commit ab069ce upstream.
    
    sdhci_check_ro() can call mmc_gpio_get_ro() while holding the sdhci
    host->lock spinlock. That would be a problem if the GPIO access done by
    mmc_gpio_get_ro() needed to sleep.
    
    However, host->lock is not needed anyway. The mmc core ensures that host
    operations do not race with each other, and asynchronous callbacks like the
    interrupt handler, software timeouts, completion work etc, cannot affect
    sdhci_check_ro().
    
    So remove the locking.
    
    Fixes: 6d5cd06 ("mmc: sdhci: use WP GPIO in sdhci_check_ro()")
    Signed-off-by: Adrian Hunter <adrian.hunter@intel.com>
    Cc: stable@vger.kernel.org
    Link: https://lore.kernel.org/r/20240614080051.4005-3-adrian.hunter@intel.com
    Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    ahunter6 authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    10698db View commit details
    Browse the repository at this point in the history
  125. iio: xilinx-ams: Don't include ams_ctrl_channels in scan_mask

    [ Upstream commit 89b898c ]
    
    ams_enable_channel_sequence constructs a "scan_mask" for all the PS and
    PL channels. This works out fine, since scan_index for these channels is
    less than 64. However, it also includes the ams_ctrl_channels, where
    scan_index is greater than 64, triggering undefined behavior. Since we
    don't need these channels anyway, just exclude them.
    
    Fixes: d5c7062 ("iio: adc: Add Xilinx AMS driver")
    Signed-off-by: Sean Anderson <sean.anderson@linux.dev>
    Link: https://lore.kernel.org/r/20240311162800.11074-1-sean.anderson@linux.dev
    Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    Sean Anderson authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    8c9d576 View commit details
    Browse the repository at this point in the history
  126. SUNRPC: Fix backchannel reply, again

    [ Upstream commit 6ddc9de ]
    
    I still see "RPC: Could not send backchannel reply error: -110"
    quite often, along with slow-running tests. Debugging shows that the
    backchannel is still stumbling when it has to queue a callback reply
    on a busy transport.
    
    Note that every one of these timeouts causes a connection loss by
    virtue of the xprt_conditional_disconnect() call in that arm of
    call_cb_transmit_status().
    
    I found that setting to_maxval is necessary to get the RPC timeout
    logic to behave whenever to_exponential is not set.
    
    Fixes: 57331a5 ("NFSv4.1: Use the nfs_client's rpc timeouts for backchannel")
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
    Reviewed-by: Benjamin Coddington <bcodding@redhat.com>
    Signed-off-by: Trond Myklebust <trond.myklebust@hammerspace.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    chucklever authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    bd1e42e View commit details
    Browse the repository at this point in the history
  127. counter: ti-eqep: enable clock at probe

    [ Upstream commit 0cf81c7 ]
    
    The TI eQEP clock is both a functional and interface clock. Since it is
    required for the device to function, we should be enabling it at probe.
    
    Up to now, we've just been lucky that the clock was enabled by something
    else on the system already.
    
    Fixes: f213729 ("counter: new TI eQEP driver")
    Reviewed-by: Judith Mendez <jm@ti.com>
    Signed-off-by: David Lechner <dlechner@baylibre.com>
    Link: https://lore.kernel.org/r/20240621-ti-eqep-enable-clock-v2-1-edd3421b54d4@baylibre.com
    Signed-off-by: William Breathitt Gray <wbg@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    dlech authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    2747ad3 View commit details
    Browse the repository at this point in the history
  128. kbuild: doc: Update default INSTALL_MOD_DIR from extra to updates

    [ Upstream commit 07d4cc2 ]
    
    The default INSTALL_MOD_DIR was changed from 'extra' to
    'updates' in commit b74d7bb ("kbuild: Modify default
    INSTALL_MOD_DIR from extra to updates").
    
    This commit updates the documentation to align with the
    latest kernel.
    
    Fixes: b74d7bb ("kbuild: Modify default INSTALL_MOD_DIR from extra to updates")
    Signed-off-by: Mark-PK Tsai <mark-pk.tsai@mediatek.com>
    Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    PeikanTsai authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    6f6fde0 View commit details
    Browse the repository at this point in the history
  129. kbuild: Fix build target deb-pkg: ln: failed to create hard link

    [ Upstream commit c615665 ]
    
    The make deb-pkg target calls debian-orig which attempts to either
    hard link the source .tar to the build-output location or copy the
    source .tar to the build-output location.  The test to determine
    whether to ln or cp is incorrectly expanded by Make and consequently
    always attempts to ln the source .tar.  This fix corrects the escaping
    of '$' so that the test is expanded by the shell rather than by Make
    and appropriately selects between ln and cp.
    
    Fixes: b44aa8c ("kbuild: deb-pkg: make .orig tarball a hard link if possible")
    Signed-off-by: Thayne Harbaugh <thayne@mastodonlabs.com>
    Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    plastikos authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    16e7649 View commit details
    Browse the repository at this point in the history
  130. kbuild: rpm-pkg: fix build error with CONFIG_MODULES=n

    [ Upstream commit 8d1001f ]
    
    When CONFIG_MODULES is disabled, 'make (bin)rpm-pkg' fails:
    
      $ make allnoconfig binrpm-pkg
        [ snip ]
      error: File not found: .../linux/rpmbuild/BUILDROOT/kernel-6.10.0_rc3-1.i386/lib/modules/6.10.0-rc3/kernel
      error: File not found: .../linux/rpmbuild/BUILDROOT/kernel-6.10.0_rc3-1.i386/lib/modules/6.10.0-rc3/modules.order
    
    To make it work irrespective of CONFIG_MODULES, this commit specifies
    the directory path, /lib/modules/%{KERNELRELEASE}, instead of individual
    files.
    
    However, doing so would cause new warnings:
    
      warning: File listed twice: /lib/modules/6.10.0-rc3-dirty/modules.alias
      warning: File listed twice: /lib/modules/6.10.0-rc3-dirty/modules.alias.bin
      warning: File listed twice: /lib/modules/6.10.0-rc3-dirty/modules.builtin.alias.bin
      warning: File listed twice: /lib/modules/6.10.0-rc3-dirty/modules.builtin.bin
      warning: File listed twice: /lib/modules/6.10.0-rc3-dirty/modules.dep
      warning: File listed twice: /lib/modules/6.10.0-rc3-dirty/modules.dep.bin
      warning: File listed twice: /lib/modules/6.10.0-rc3-dirty/modules.devname
      warning: File listed twice: /lib/modules/6.10.0-rc3-dirty/modules.softdep
      warning: File listed twice: /lib/modules/6.10.0-rc3-dirty/modules.symbols
      warning: File listed twice: /lib/modules/6.10.0-rc3-dirty/modules.symbols.bin
    
    These files exist in /lib/modules/%{KERNELRELEASE} and are also explicitly
    marked as %ghost.
    
    Suppress depmod because depmod-generated files are not packaged.
    
    Fixes: 615b3a3 ("kbuild: rpm-pkg: do not include depmod-generated files")
    Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
    Reviewed-by: Nathan Chancellor <nathan@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    masahir0y authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    ecb48d1 View commit details
    Browse the repository at this point in the history
  131. i2c: testunit: don't erase registers after STOP

    [ Upstream commit c422b6a ]
    
    STOP fallsthrough to WRITE_REQUESTED but this became problematic when
    clearing the testunit registers was added to the latter. Actually, there
    is no reason to clear the testunit state after STOP. Doing it when a new
    WRITE_REQUESTED arrives is enough. So, no need to fallthrough, at all.
    
    Fixes: b39ab96 ("i2c: testunit: add support for block process calls")
    Signed-off-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
    Reviewed-by: Andi Shyti <andi.shyti@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    Wolfram Sang authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    38c78d5 View commit details
    Browse the repository at this point in the history
  132. i2c: testunit: discard write requests while old command is running

    [ Upstream commit c116dea ]
    
    When clearing registers on new write requests was added, the protection
    for currently running commands was missed leading to concurrent access
    to the testunit registers. Check the flag beforehand.
    
    Fixes: b39ab96 ("i2c: testunit: add support for block process calls")
    Signed-off-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
    Reviewed-by: Andi Shyti <andi.shyti@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    Wolfram Sang authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    98bd8d7 View commit details
    Browse the repository at this point in the history
  133. ata: libata-core: Fix null pointer dereference on error

    [ Upstream commit 5d92c7c ]
    
    If the ata_port_alloc() call in ata_host_alloc() fails,
    ata_host_release() will get called.
    
    However, the code in ata_host_release() tries to free ata_port struct
    members unconditionally, which can lead to the following:
    
    BUG: unable to handle page fault for address: 0000000000003990
    PGD 0 P4D 0
    Oops: Oops: 0000 [#1] PREEMPT SMP NOPTI
    CPU: 10 PID: 594 Comm: (udev-worker) Not tainted 6.10.0-rc5 #44
    Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.16.3-2.fc40 04/01/2014
    RIP: 0010:ata_host_release.cold+0x2f/0x6e [libata]
    Code: e4 4d 63 f4 44 89 e2 48 c7 c6 90 ad 32 c0 48 c7 c7 d0 70 33 c0 49 83 c6 0e 41
    RSP: 0018:ffffc90000ebb968 EFLAGS: 00010246
    RAX: 0000000000000041 RBX: ffff88810fb52e78 RCX: 0000000000000000
    RDX: 0000000000000000 RSI: ffff88813b3218c0 RDI: ffff88813b3218c0
    RBP: ffff88810fb52e40 R08: 0000000000000000 R09: 6c65725f74736f68
    R10: ffffc90000ebb738 R11: 73692033203a746e R12: 0000000000000004
    R13: 0000000000000000 R14: 0000000000000011 R15: 0000000000000006
    FS:  00007f6cc55b9980(0000) GS:ffff88813b300000(0000) knlGS:0000000000000000
    CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
    CR2: 0000000000003990 CR3: 00000001122a2000 CR4: 0000000000750ef0
    PKRU: 55555554
    Call Trace:
     <TASK>
     ? __die_body.cold+0x19/0x27
     ? page_fault_oops+0x15a/0x2f0
     ? exc_page_fault+0x7e/0x180
     ? asm_exc_page_fault+0x26/0x30
     ? ata_host_release.cold+0x2f/0x6e [libata]
     ? ata_host_release.cold+0x2f/0x6e [libata]
     release_nodes+0x35/0xb0
     devres_release_group+0x113/0x140
     ata_host_alloc+0xed/0x120 [libata]
     ata_host_alloc_pinfo+0x14/0xa0 [libata]
     ahci_init_one+0x6c9/0xd20 [ahci]
    
    Do not access ata_port struct members unconditionally.
    
    Fixes: 633273a ("libata-pmp: hook PMP support and enable it")
    Cc: stable@vger.kernel.org
    Reviewed-by: Damien Le Moal <dlemoal@kernel.org>
    Reviewed-by: Hannes Reinecke <hare@suse.de>
    Reviewed-by: John Garry <john.g.garry@oracle.com>
    Link: https://lore.kernel.org/r/20240629124210.181537-7-cassel@kernel.org
    Signed-off-by: Niklas Cassel <cassel@kernel.org>
    Stable-dep-of: f6549f5 ("ata,scsi: libata-core: Do not leak memory for ata_port struct members")
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    Niklas Cassel authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    8a8ff7e View commit details
    Browse the repository at this point in the history
  134. ata,scsi: libata-core: Do not leak memory for ata_port struct members

    [ Upstream commit f6549f5 ]
    
    libsas is currently not freeing all the struct ata_port struct members,
    e.g. ncq_sense_buf for a driver supporting Command Duration Limits (CDL).
    
    Add a function, ata_port_free(), that is used to free a ata_port,
    including its struct members. It makes sense to keep the code related to
    freeing a ata_port in its own function, which will also free all the
    struct members of struct ata_port.
    
    Fixes: 18bd771 ("scsi: ata: libata: Handle completion of CDL commands using policy 0xD")
    Reviewed-by: John Garry <john.g.garry@oracle.com>
    Link: https://lore.kernel.org/r/20240629124210.181537-8-cassel@kernel.org
    Signed-off-by: Niklas Cassel <cassel@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    Niklas Cassel authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    060a30b View commit details
    Browse the repository at this point in the history
  135. iio: humidity: hdc3020: fix hysteresis representation

    commit 9547d6a upstream.
    
    According to the ABI docs hysteresis values are represented as offsets to
    threshold values. Current implementation represents hysteresis values as
    absolute values which is wrong. Nevertheless the device stores them as
    absolute values and the datasheet refers to them as clear thresholds. Fix
    the reading and writing of hysteresis values by including thresholds into
    calculations. Hysteresis values that result in threshold clear values
    that are out of limits will be truncated.
    
    To check that the threshold clear values are correct, registers are read
    out using i2ctransfer and the corresponding temperature and relative
    humidity thresholds are calculated using the formulas in the datasheet.
    
    Fixes: 3ad0e7e ("iio: humidity: hdc3020: add threshold events support")
    Signed-off-by: Dimitri Fedrau <dima.fedrau@gmail.com>
    Reviewed-by: Javier Carrasco <javier.carrasco.cruz@gmail.com>
    Link: https://lore.kernel.org/r/20240605192136.38146-1-dima.fedrau@gmail.com
    Cc: <Stable@vger.kernel.org>
    Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Dimitri Fedrau authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    cf39681 View commit details
    Browse the repository at this point in the history
  136. iio: adc: ad7266: Fix variable checking bug

    commit a2b8613 upstream.
    
    The ret variable was not checked after iio_device_release_direct_mode(),
    which could possibly cause errors
    
    Fixes: c70df20 ("iio: adc: ad7266: claim direct mode during sensor read")
    Signed-off-by: Fernando Yang <hagisf@usp.br>
    Link: https://lore.kernel.org/r/20240603180757.8560-1-hagisf@usp.br
    Cc: <Stable@vger.kernel.org>
    Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Fernando Yang authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    bb5efe8 View commit details
    Browse the repository at this point in the history
  137. iio: accel: fxls8962af: select IIO_BUFFER & IIO_KFIFO_BUF

    commit a821d71 upstream.
    
    Provide missing symbols to the module:
    ERROR: modpost: iio_push_to_buffers [drivers/iio/accel/fxls8962af-core.ko] undefined!
    ERROR: modpost: devm_iio_kfifo_buffer_setup_ext [drivers/iio/accel/fxls8962af-core.ko] undefined!
    
    Cc: stable@vger.kernel.org
    Fixes: 79e3a5b ("iio: accel: fxls8962af: add hw buffered sampling")
    Signed-off-by: Alexander Sverdlin <alexander.sverdlin@siemens.com>
    Reviewed-by: Sean Nyekjaer <sean@geanix.com>
    Link: https://lore.kernel.org/r/20240605203810.2908980-2-alexander.sverdlin@siemens.com
    Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    ccpalex authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    8e2f7c2 View commit details
    Browse the repository at this point in the history
  138. iio: chemical: bme680: Fix pressure value output

    commit ae1f7b9 upstream.
    
    The IIO standard units are measured in kPa while the driver
    is using hPa.
    
    Apart from checking the userspace value itself, it is mentioned also
    in the Bosch API [1] that the pressure value is in Pascal.
    
    [1]: https://github.com/boschsensortec/BME68x_SensorAPI/blob/v4.4.8/bme68x_defs.h#L742
    
    Fixes: 1b3bd85 ("iio: chemical: Add support for Bosch BME680 sensor")
    Signed-off-by: Vasileios Amoiridis <vassilisamir@gmail.com>
    Link: https://lore.kernel.org/r/20240606212313.207550-2-vassilisamir@gmail.com
    Cc: <Stable@vger.kernel.org>
    Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    vamoirid authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    b031d96 View commit details
    Browse the repository at this point in the history
  139. iio: chemical: bme680: Fix calibration data variable

    commit b47c0fe upstream.
    
    According to the BME68x Sensor API [1], the h6 calibration
    data variable should be an unsigned integer of size 8.
    
    [1]: https://github.com/boschsensortec/BME68x_SensorAPI/blob/v4.4.8/bme68x_defs.h#L789
    
    Fixes: 1b3bd85 ("iio: chemical: Add support for Bosch BME680 sensor")
    Signed-off-by: Vasileios Amoiridis <vassilisamir@gmail.com>
    Link: https://lore.kernel.org/r/20240606212313.207550-3-vassilisamir@gmail.com
    Cc: <Stable@vger.kernel.org>
    Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    vamoirid authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    ec3fc44 View commit details
    Browse the repository at this point in the history
  140. iio: chemical: bme680: Fix overflows in compensate() functions

    commit fdd478c upstream.
    
    There are cases in the compensate functions of the driver that
    there could be overflows of variables due to bit shifting ops.
    These implications were initially discussed here [1] and they
    were mentioned in log message of Commit 1b3bd85 ("iio:
    chemical: Add support for Bosch BME680 sensor").
    
    [1]: https://lore.kernel.org/linux-iio/20180728114028.3c1bbe81@archlinux/
    
    Fixes: 1b3bd85 ("iio: chemical: Add support for Bosch BME680 sensor")
    Signed-off-by: Vasileios Amoiridis <vassilisamir@gmail.com>
    Link: https://lore.kernel.org/r/20240606212313.207550-4-vassilisamir@gmail.com
    Cc: <Stable@vger.kernel.org>
    Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    vamoirid authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    3add41b View commit details
    Browse the repository at this point in the history
  141. iio: chemical: bme680: Fix sensor data read operation

    commit 4241665 upstream.
    
    A read operation is happening as follows:
    
    a) Set sensor to forced mode
    b) Sensor measures values and update data registers and sleeps again
    c) Read data registers
    
    In the current implementation the read operation happens immediately
    after the sensor is set to forced mode so the sensor does not have
    the time to update properly the registers. This leads to the following
    2 problems:
    
    1) The first ever value which is read by the register is always wrong
    2) Every read operation, puts the register into forced mode and reads
    the data that were calculated in the previous conversion.
    
    This behaviour was tested in 2 ways:
    
    1) The internal meas_status_0 register was read before and after every
    read operation in order to verify that the data were ready even before
    the register was set to forced mode and also to check that after the
    forced mode was set the new data were not yet ready.
    
    2) Physically changing the temperature and measuring the temperature
    
    This commit adds the waiting time in between the set of the forced mode
    and the read of the data. The function is taken from the Bosch BME68x
    Sensor API [1].
    
    [1]: https://github.com/boschsensortec/BME68x_SensorAPI/blob/v4.4.8/bme68x.c#L490
    
    Fixes: 1b3bd85 ("iio: chemical: Add support for Bosch BME680 sensor")
    Signed-off-by: Vasileios Amoiridis <vassilisamir@gmail.com>
    Link: https://lore.kernel.org/r/20240606212313.207550-5-vassilisamir@gmail.com
    Cc: <Stable@vger.kernel.org>
    Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    vamoirid authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    bb45c4a View commit details
    Browse the repository at this point in the history
  142. net: usb: ax88179_178a: improve link status logs

    commit 058722e upstream.
    
    Avoid spurious link status logs that may ultimately be wrong; for example,
    if the link is set to down with the cable plugged, then the cable is
    unplugged and after this the link is set to up, the last new log that is
    appearing is incorrectly telling that the link is up.
    
    In order to avoid errors, show link status logs after link_reset
    processing, and in order to avoid spurious as much as possible, only show
    the link loss when some link status change is detected.
    
    cc: stable@vger.kernel.org
    Fixes: e2ca90c ("ax88179_178a: ASIX AX88179_178A USB 3.0/2.0 to gigabit ethernet adapter driver")
    Signed-off-by: Jose Ignacio Tornos Martinez <jtornosm@redhat.com>
    Reviewed-by: Simon Horman <horms@kernel.org>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    jtornosm authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    688ace4 View commit details
    Browse the repository at this point in the history
  143. usb: gadget: printer: SS+ support

    commit fd80731 upstream.
    
    We need to treat super speed plus as super speed, not the default,
    which is full speed.
    
    Signed-off-by: Oliver Neukum <oneukum@suse.com>
    Cc: stable <stable@kernel.org>
    Link: https://lore.kernel.org/r/20240620093800.28901-1-oneukum@suse.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    oneukum authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    15b08fd View commit details
    Browse the repository at this point in the history
  144. usb: gadget: printer: fix races against disable

    commit e587a76 upstream.
    
    printer_read() and printer_write() guard against the race
    against disable() by checking the dev->interface flag,
    which in turn is guarded by a spinlock.
    These functions, however, drop the lock on multiple occasions.
    This means that the test has to be redone after reacquiring
    the lock and before doing IO.
    
    Add the tests.
    
    This also addresses CVE-2024-25741
    
    Fixes: 7f2ca14 ("usb: gadget: function: printer: Interface is disabled and returns error")
    Cc: stable <stable@kernel.org>
    Signed-off-by: Oliver Neukum <oneukum@suse.com>
    Link: https://lore.kernel.org/r/20240620114039.5767-1-oneukum@suse.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    oneukum authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    01378f3 View commit details
    Browse the repository at this point in the history
  145. usb: musb: da8xx: fix a resource leak in probe()

    commit de644a4 upstream.
    
    Call usb_phy_generic_unregister() if of_platform_populate() fails.
    
    Fixes: d6299b6 ("usb: musb: Add support of CPPI 4.1 DMA controller to DA8xx")
    Cc: stable <stable@kernel.org>
    Signed-off-by: Dan Carpenter <dan.carpenter@linaro.org>
    Link: https://lore.kernel.org/r/69af1b1d-d3f4-492b-bcea-359ca5949f30@moroto.mountain
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Dan Carpenter authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    2b776d7 View commit details
    Browse the repository at this point in the history
  146. usb: atm: cxacru: fix endpoint checking in cxacru_bind()

    commit 2eabb65 upstream.
    
    Syzbot is still reporting quite an old issue [1] that occurs due to
    incomplete checking of present usb endpoints. As such, wrong
    endpoints types may be used at urb sumbitting stage which in turn
    triggers a warning in usb_submit_urb().
    
    Fix the issue by verifying that required endpoint types are present
    for both in and out endpoints, taking into account cmd endpoint type.
    
    Unfortunately, this patch has not been tested on real hardware.
    
    [1] Syzbot report:
    usb 1-1: BOGUS urb xfer, pipe 1 != type 3
    WARNING: CPU: 0 PID: 8667 at drivers/usb/core/urb.c:502 usb_submit_urb+0xed2/0x18a0 drivers/usb/core/urb.c:502
    Modules linked in:
    CPU: 0 PID: 8667 Comm: kworker/0:4 Not tainted 5.14.0-rc4-syzkaller #0
    Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011
    Workqueue: usb_hub_wq hub_event
    RIP: 0010:usb_submit_urb+0xed2/0x18a0 drivers/usb/core/urb.c:502
    ...
    Call Trace:
     cxacru_cm+0x3c0/0x8e0 drivers/usb/atm/cxacru.c:649
     cxacru_card_status+0x22/0xd0 drivers/usb/atm/cxacru.c:760
     cxacru_bind+0x7ac/0x11a0 drivers/usb/atm/cxacru.c:1209
     usbatm_usb_probe+0x321/0x1ae0 drivers/usb/atm/usbatm.c:1055
     cxacru_usb_probe+0xdf/0x1e0 drivers/usb/atm/cxacru.c:1363
     usb_probe_interface+0x315/0x7f0 drivers/usb/core/driver.c:396
     call_driver_probe drivers/base/dd.c:517 [inline]
     really_probe+0x23c/0xcd0 drivers/base/dd.c:595
     __driver_probe_device+0x338/0x4d0 drivers/base/dd.c:747
     driver_probe_device+0x4c/0x1a0 drivers/base/dd.c:777
     __device_attach_driver+0x20b/0x2f0 drivers/base/dd.c:894
     bus_for_each_drv+0x15f/0x1e0 drivers/base/bus.c:427
     __device_attach+0x228/0x4a0 drivers/base/dd.c:965
     bus_probe_device+0x1e4/0x290 drivers/base/bus.c:487
     device_add+0xc2f/0x2180 drivers/base/core.c:3354
     usb_set_configuration+0x113a/0x1910 drivers/usb/core/message.c:2170
     usb_generic_driver_probe+0xba/0x100 drivers/usb/core/generic.c:238
     usb_probe_device+0xd9/0x2c0 drivers/usb/core/driver.c:293
    
    Reported-and-tested-by: syzbot+00c18ee8497dd3be6ade@syzkaller.appspotmail.com
    Fixes: 902ffc3 ("USB: cxacru: Use a bulk/int URB to access the command endpoint")
    Cc: stable <stable@kernel.org>
    Signed-off-by: Nikita Zhandarovich <n.zhandarovich@fintech.ru>
    Link: https://lore.kernel.org/r/20240609131546.3932-1-n.zhandarovich@fintech.ru
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Nikita Zhandarovich authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    ac90075 View commit details
    Browse the repository at this point in the history
  147. usb: dwc3: core: remove lock of otg mode during gadget suspend/resume…

    … to avoid deadlock
    
    commit 7838de1 upstream.
    
    When config CONFIG_USB_DWC3_DUAL_ROLE is selected, and trigger system
    to enter suspend status with below command:
    echo mem > /sys/power/state
    There will be a deadlock issue occurring. Detailed invoking path as
    below:
    dwc3_suspend_common()
        spin_lock_irqsave(&dwc->lock, flags);              <-- 1st
        dwc3_gadget_suspend(dwc);
            dwc3_gadget_soft_disconnect(dwc);
                spin_lock_irqsave(&dwc->lock, flags);      <-- 2nd
    This issue is exposed by commit c7ebd81 ("usb: dwc3: gadget: Fix
    NULL pointer dereference in dwc3_gadget_suspend") that removes the code
    of checking whether dwc->gadget_driver is NULL or not. It causes the
    following code is executed and deadlock occurs when trying to get the
    spinlock. In fact, the root cause is the commit 5265397("usb: dwc3:
    Remove DWC3 locking during gadget suspend/resume") that forgot to remove
    the lock of otg mode. So, remove the redundant lock of otg mode during
    gadget suspend/resume.
    
    Fixes: 5265397 ("usb: dwc3: Remove DWC3 locking during gadget suspend/resume")
    Cc: Xu Yang <xu.yang_2@nxp.com>
    Cc: stable@vger.kernel.org
    Signed-off-by: Meng Li <Meng.Li@windriver.com>
    Acked-by: Thinh Nguyen <Thinh.Nguyen@synopsys.com>
    Link: https://lore.kernel.org/r/20240618031918.2585799-1-Meng.Li@windriver.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    limeng-linux authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    f1274cf View commit details
    Browse the repository at this point in the history
  148. usb: gadget: aspeed_udc: fix device address configuration

    commit dba7567 upstream.
    
    In the aspeed UDC setup, we configure the UDC hardware with the assigned
    USB device address.
    
    However, we have an off-by-one in the bitmask, so we're only setting the
    lower 6 bits of the address (USB addresses being 7 bits, and the
    hardware bitmask being bits 0:6).
    
    This means that device enumeration fails if the assigned address is
    greater than 64:
    
    [  344.607255] usb 1-1: new high-speed USB device number 63 using ehci-platform
    [  344.808459] usb 1-1: New USB device found, idVendor=cc00, idProduct=cc00, bcdDevice= 6.10
    [  344.817684] usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
    [  344.825671] usb 1-1: Product: Test device
    [  344.831075] usb 1-1: Manufacturer: Test vendor
    [  344.836335] usb 1-1: SerialNumber: 00
    [  349.917181] usb 1-1: USB disconnect, device number 63
    [  352.036775] usb 1-1: new high-speed USB device number 64 using ehci-platform
    [  352.249432] usb 1-1: device descriptor read/all, error -71
    [  352.696740] usb 1-1: new high-speed USB device number 65 using ehci-platform
    [  352.909431] usb 1-1: device descriptor read/all, error -71
    
    Use the correct mask of 0x7f (rather than 0x3f), and generate this
    through the GENMASK macro, so we have numbers that correspond exactly
    to the hardware register definition.
    
    Fixes: 055276c ("usb: gadget: add Aspeed ast2600 udc driver")
    Cc: stable@vger.kernel.org
    Reviewed-by: Neal Liu <neal_liu@aspeedtech.com>
    Reviewed-by: Andrew Jeffery <andrew@codeconstruct.com.au>
    Signed-off-by: Jeremy Kerr <jk@codeconstruct.com.au>
    Link: https://lore.kernel.org/r/20240613-aspeed-udc-v2-1-29501ce9cb7a@codeconstruct.com.au
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    jk-ozlabs authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    5866593 View commit details
    Browse the repository at this point in the history
  149. usb: typec: ucsi: glink: fix child node release in probe function

    commit c689426 upstream.
    
    The device_for_each_child_node() macro requires explicit calls to
    fwnode_handle_put() in all early exits of the loop if the child node is
    not required outside. Otherwise, the child node's refcount is not
    decremented and the resource is not released.
    
    The current implementation of pmic_glink_ucsi_probe() makes use of the
    device_for_each_child_node(), but does not release the child node on
    early returns. Add the missing calls to fwnode_handle_put().
    
    Cc: stable@vger.kernel.org
    Fixes: c6165ed ("usb: ucsi: glink: use the connector orientation GPIO to provide switch events")
    Signed-off-by: Javier Carrasco <javier.carrasco.cruz@gmail.com>
    Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
    Reviewed-by: Heikki Krogerus <heikki.krogerus@linux.intel.com>
    Link: https://lore.kernel.org/r/20240613-ucsi-glink-release-node-v1-1-f7629a56f70a@gmail.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    javiercarrascocruz authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    6d9cd9b View commit details
    Browse the repository at this point in the history
  150. Revert "usb: gadget: u_ether: Re-attach netif device to mirror detach…

    …ment"
    
    commit 24bf27b upstream.
    
    This reverts commit 76c9457.
    
    Prerequisite revert for the reverting of the original commit f49449f.
    
    Fixes: 76c9457 ("usb: gadget: u_ether: Re-attach netif device to mirror detachment")
    Fixes: f49449f ("usb: gadget: u_ether: Replace netif_stop_queue with netif_device_detach")
    Reported-by: Ferry Toth <fntoth@gmail.com>
    Cc: stable@vger.kernel.org
    Signed-off-by: Ferry Toth <fntoth@gmail.com>
    Link: https://lore.kernel.org/r/20240620204832.24518-2-ftoth@exalondelft.nl
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    htot authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    fb2c657 View commit details
    Browse the repository at this point in the history
  151. Revert "usb: gadget: u_ether: Replace netif_stop_queue with netif_dev…

    …ice_detach"
    
    commit c50814a upstream.
    
    This reverts commit f49449f.
    
    This commit breaks u_ether on some setups (at least Merrifield). The fix
    "usb: gadget: u_ether: Re-attach netif device to mirror detachment" party
    restores u-ether. However the netif usb: remains up even usb is switched
    from device to host mode. This creates problems for user space as the
    interface remains in the routing table while not realy present and network
    managers (connman) not detecting a network change.
    
    Various attempts to find the root cause were unsuccesful up to now. Therefore
    revert until a solution is found.
    
    Link: https://lore.kernel.org/linux-usb/20231006141231.7220-1-hgajjar@de.adit-jv.com/
    Reported-by: Andy Shevchenko <andriy.shevchenko@intel.com>
    Reported-by: Ferry Toth <fntoth@gmail.com>
    Fixes: f49449f ("usb: gadget: u_ether: Replace netif_stop_queue with netif_device_detach")
    Cc: stable@vger.kernel.org
    Signed-off-by: Ferry Toth <fntoth@gmail.com>
    Link: https://lore.kernel.org/r/20240620204832.24518-3-ftoth@exalondelft.nl
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    htot authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    aaf67b0 View commit details
    Browse the repository at this point in the history
  152. usb: ucsi: stm32: fix command completion handling

    commit 8e1ec11 upstream.
    
    Sometimes errors are seen, when doing DR swap, like:
    [   24.672481] ucsi-stm32g0-i2c 0-0035: UCSI_GET_PDOS failed (-5)
    [   24.720188] ucsi-stm32g0-i2c 0-0035: ucsi_handle_connector_change:
     GET_CONNECTOR_STATUS failed (-5)
    
    There may be some race, which lead to read CCI, before the command complete
    flag is set, hence returning -EIO. Similar fix has been done also in
    ucsi_acpi [1].
    
    In case of a spurious or otherwise delayed notification it is
    possible that CCI still reports the previous completion. The
    UCSI spec is aware of this and provides two completion bits in
    CCI, one for normal commands and one for acks. As acks and commands
    alternate the notification handler can determine if the completion
    bit is from the current command.
    
    To fix this add the ACK_PENDING bit for ucsi_stm32g0 and only complete
    commands if the completion bit matches.
    
    [1] https://lore.kernel.org/lkml/20240121204123.275441-3-lk@c--e.de/
    
    Fixes: 72849d4 ("usb: typec: ucsi: stm32g0: add support for stm32g0 controller")
    Signed-off-by: Fabrice Gasnier <fabrice.gasnier@foss.st.com>
    Link: https://lore.kernel.org/stable/20240612124656.2305603-1-fabrice.gasnier%40foss.st.com
    Cc: stable <stable@kernel.org>
    Reviewed-by: Heikki Krogerus <heikki.krogerus@linux.intel.com>
    Link: https://lore.kernel.org/r/20240612124656.2305603-1-fabrice.gasnier@foss.st.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Fabrice Gasnier authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    1f58e17 View commit details
    Browse the repository at this point in the history
  153. usb: dwc3: core: Workaround for CSR read timeout

    commit fc1d1a7 upstream.
    
    This is a workaround for STAR 4846132, which only affects
    DWC_usb31 version2.00a operating in host mode.
    
    There is a problem in DWC_usb31 version 2.00a operating
    in host mode that would cause a CSR read timeout When CSR
    read coincides with RAM Clock Gating Entry. By disable
    Clock Gating, sacrificing power consumption for normal
    operation.
    
    Cc: stable <stable@kernel.org> # 5.10.x: 1e43c86: usb: dwc3: core: Add DWC31 version 2.00a controller
    Signed-off-by: Jos Wang <joswang@lenovo.com>
    Acked-by: Thinh Nguyen <Thinh.Nguyen@synopsys.com>
    Link: https://lore.kernel.org/r/20240619114529.3441-1-joswang1221@gmail.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Jos Wang authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    0bc1f76 View commit details
    Browse the repository at this point in the history
  154. Revert "serial: core: only stop transmit when HW fifo is empty"

    commit c5603e2 upstream.
    
    This reverts commit 7bfb915.
    
    This commit broke pxa and omap-serial, because it inhibited them from
    calling stop_tx() if their TX FIFOs weren't completely empty. This
    resulted in these two drivers hanging during transmits because the TX
    interrupt would stay enabled, and a new TX interrupt would never fire.
    
    Cc: stable@vger.kernel.org
    Fixes: 7bfb915 ("serial: core: only stop transmit when HW fifo is empty")
    Signed-off-by: Doug Brown <doug@schmorgal.com>
    Link: https://lore.kernel.org/r/20240606195632.173255-2-doug@schmorgal.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    dougg3 authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    fa42c4e View commit details
    Browse the repository at this point in the history
  155. tty: serial: 8250: Fix port count mismatch with the device

    commit 0ac18da upstream.
    
    Normally, the number of ports is indicated by the third digit of the
    device ID on Moxa PCI serial boards. For example, `0x1121` indicates a
    device with 2 ports.
    
    However, `CP116E_A_A` and `CP116E_A_B` are exceptions; they have 8
    ports, but the third digit of the device ID is `6`.
    
    This patch introduces a function to retrieve the number of ports on Moxa
    PCI serial boards, addressing the issue described above.
    
    Fixes: 37058fd ("tty: serial: 8250: Add support for MOXA Mini PCIe boards")
    Cc: stable <stable@kernel.org>
    Signed-off-by: Crescent Hsieh <crescentcy.hsieh@moxa.com>
    Reviewed-by: Andy Shevchenko <andy@kernel.org>
    Link: https://lore.kernel.org/r/20240617063058.18866-1-crescentcy.hsieh@moxa.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Crescent Hsieh authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    e3f0ca1 View commit details
    Browse the repository at this point in the history
  156. serial: 8250_omap: Implementation of Errata i2310

    commit 9d141c1 upstream.
    
    As per Errata i2310[0], Erroneous timeout can be triggered,
    if this Erroneous interrupt is not cleared then it may leads
    to storm of interrupts, therefore apply Errata i2310 solution.
    
    [0] https://www.ti.com/lit/pdf/sprz536 page 23
    
    Fixes: b67e830 ("serial: 8250: 8250_omap: Fix possible interrupt storm on K3 SoCs")
    Cc: stable@vger.kernel.org
    Signed-off-by: Udit Kumar <u-kumar1@ti.com>
    Link: https://lore.kernel.org/r/20240619105903.165434-1-u-kumar1@ti.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    uditkumarti authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    6270051 View commit details
    Browse the repository at this point in the history
  157. serial: imx: set receiver level before starting uart

    commit a81dbd0 upstream.
    
    Set the receiver level to something > 0 before calling imx_uart_start_rx
    in rs485_config. This is necessary to avoid an interrupt storm that
    might prevent the system from booting. This was seen on an i.MX7 device
    when the rs485-rts-active-low property was active in the device tree.
    
    Fixes: 6d215f8 ("serial: imx: warn user when using unsupported configuration")
    Cc: stable <stable@kernel.org>
    Signed-off-by: Stefan Eichenberger <stefan.eichenberger@toradex.com>
    Link: https://lore.kernel.org/r/20240621153829.183780-1-eichest@gmail.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    eichenberger authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    0d6d5bb View commit details
    Browse the repository at this point in the history
  158. serial: core: introduce uart_port_tx_limited_flags()

    commit 9bb43b9 upstream.
    
    Analogue to uart_port_tx_flags() introduced in commit 3ee0796
    ("serial: core: introduce uart_port_tx_flags()"), add a _flags variant
    for uart_port_tx_limited().
    
    Fixes: d11cc8c ("tty: serial: use uart_port_tx_limited()")
    Cc: stable@vger.kernel.org
    Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com>
    Signed-off-by: Doug Brown <doug@schmorgal.com>
    Link: https://lore.kernel.org/r/20240606195632.173255-3-doug@schmorgal.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    KanjiMonster authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    602584e View commit details
    Browse the repository at this point in the history
  159. serial: bcm63xx-uart: fix tx after conversion to uart_port_tx_limited()

    commit ea55c65 upstream.
    
    When bcm63xx-uart was converted to uart_port_tx_limited(), it implicitly
    added a call to stop_tx(). This causes garbage to be put out on the
    serial console. To fix this, pass UART_TX_NOSTOP in flags, and manually
    call stop_tx() ourselves analogue to how a similar issue was fixed in
    commit 7be50f2 ("serial: mxs-auart: fix tx").
    
    Fixes: d11cc8c ("tty: serial: use uart_port_tx_limited()")
    Cc: stable@vger.kernel.org
    Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com>
    Signed-off-by: Doug Brown <doug@schmorgal.com>
    Link: https://lore.kernel.org/r/20240606195632.173255-4-doug@schmorgal.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    KanjiMonster authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    3fea132 View commit details
    Browse the repository at this point in the history
  160. ALSA: hda/realtek: fix mute/micmute LEDs don't work for EliteBook 645…

    …/665 G11.
    
    commit 3cd59d8 upstream.
    
    HP EliteBook 645/665 G11 needs ALC236_FIXUP_HP_MUTE_LED_MICMUTE_VREF quirk to
    make mic-mute/audio-mute working.
    
    Signed-off-by: Dirk Su <dirk.su@canonical.com>
    Cc: <stable@vger.kernel.org>
    Link: https://patch.msgid.link/20240626021437.77039-1-dirk.su@canonical.com
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    xanthein authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    3aa58cf View commit details
    Browse the repository at this point in the history
  161. tty: mxser: Remove __counted_by from mxser_board.ports[]

    commit 1c07c9b upstream.
    
    Work for __counted_by on generic pointers in structures (not just
    flexible array members) has started landing in Clang 19 (current tip of
    tree). During the development of this feature, a restriction was added
    to __counted_by to prevent the flexible array member's element type from
    including a flexible array member itself such as:
    
      struct foo {
        int count;
        char buf[];
      };
    
      struct bar {
        int count;
        struct foo data[] __counted_by(count);
      };
    
    because the size of data cannot be calculated with the standard array
    size formula:
    
      sizeof(struct foo) * count
    
    This restriction was downgraded to a warning but due to CONFIG_WERROR,
    it can still break the build. The application of __counted_by on the
    ports member of 'struct mxser_board' triggers this restriction,
    resulting in:
    
      drivers/tty/mxser.c:291:2: error: 'counted_by' should not be applied to an array with element of unknown size because 'struct mxser_port' is a struct type with a flexible array member. This will be an error in a future compiler version [-Werror,-Wbounds-safety-counted-by-elt-type-unknown-size]
        291 |         struct mxser_port ports[] __counted_by(nports);
            |         ^~~~~~~~~~~~~~~~~~~~~~~~~
      1 error generated.
    
    Remove this use of __counted_by to fix the warning/error. However,
    rather than remove it altogether, leave it commented, as it may be
    possible to support this in future compiler releases.
    
    Cc:  <stable@vger.kernel.org>
    Closes: ClangBuiltLinux#2026
    Fixes: f34907e ("mxser: Annotate struct mxser_board with __counted_by")
    Signed-off-by: Nathan Chancellor <nathan@kernel.org>
    Link: https://lore.kernel.org/r/20240529-drop-counted-by-ports-mxser-board-v1-1-0ab217f4da6d@kernel.org
    Signed-off-by: Kees Cook <kees@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    nathanchance authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    f07d459 View commit details
    Browse the repository at this point in the history
  162. tty: mcf: MCF54418 has 10 UARTS

    commit 7c92a8b upstream.
    
    Most of the colfires have up to 5 UARTs but MCF54418 has up-to 10 !
    Change the maximum value authorized.
    
    Signed-off-by: Jean-Michel Hautbois <jeanmichel.hautbois@yoseli.org>
    Cc: stable <stable@kernel.org>
    Fixes: 2545cf6 ("m68knommu: allow 4 coldfire serial ports")
    Link: https://lore.kernel.org/r/20240620-upstream-uart-v1-1-a9d0d95fb19e@yoseli.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Jean-Michel Hautbois authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    f935def View commit details
    Browse the repository at this point in the history
  163. net: can: j1939: Initialize unused data in j1939_send_one()

    commit b7cdf1d upstream.
    
    syzbot reported kernel-infoleak in raw_recvmsg() [1]. j1939_send_one()
    creates full frame including unused data, but it doesn't initialize
    it. This causes the kernel-infoleak issue. Fix this by initializing
    unused data.
    
    [1]
    BUG: KMSAN: kernel-infoleak in instrument_copy_to_user include/linux/instrumented.h:114 [inline]
    BUG: KMSAN: kernel-infoleak in copy_to_user_iter lib/iov_iter.c:24 [inline]
    BUG: KMSAN: kernel-infoleak in iterate_ubuf include/linux/iov_iter.h:29 [inline]
    BUG: KMSAN: kernel-infoleak in iterate_and_advance2 include/linux/iov_iter.h:245 [inline]
    BUG: KMSAN: kernel-infoleak in iterate_and_advance include/linux/iov_iter.h:271 [inline]
    BUG: KMSAN: kernel-infoleak in _copy_to_iter+0x366/0x2520 lib/iov_iter.c:185
     instrument_copy_to_user include/linux/instrumented.h:114 [inline]
     copy_to_user_iter lib/iov_iter.c:24 [inline]
     iterate_ubuf include/linux/iov_iter.h:29 [inline]
     iterate_and_advance2 include/linux/iov_iter.h:245 [inline]
     iterate_and_advance include/linux/iov_iter.h:271 [inline]
     _copy_to_iter+0x366/0x2520 lib/iov_iter.c:185
     copy_to_iter include/linux/uio.h:196 [inline]
     memcpy_to_msg include/linux/skbuff.h:4113 [inline]
     raw_recvmsg+0x2b8/0x9e0 net/can/raw.c:1008
     sock_recvmsg_nosec net/socket.c:1046 [inline]
     sock_recvmsg+0x2c4/0x340 net/socket.c:1068
     ____sys_recvmsg+0x18a/0x620 net/socket.c:2803
     ___sys_recvmsg+0x223/0x840 net/socket.c:2845
     do_recvmmsg+0x4fc/0xfd0 net/socket.c:2939
     __sys_recvmmsg net/socket.c:3018 [inline]
     __do_sys_recvmmsg net/socket.c:3041 [inline]
     __se_sys_recvmmsg net/socket.c:3034 [inline]
     __x64_sys_recvmmsg+0x397/0x490 net/socket.c:3034
     x64_sys_call+0xf6c/0x3b50 arch/x86/include/generated/asm/syscalls_64.h:300
     do_syscall_x64 arch/x86/entry/common.c:52 [inline]
     do_syscall_64+0xcf/0x1e0 arch/x86/entry/common.c:83
     entry_SYSCALL_64_after_hwframe+0x77/0x7f
    
    Uninit was created at:
     slab_post_alloc_hook mm/slub.c:3804 [inline]
     slab_alloc_node mm/slub.c:3845 [inline]
     kmem_cache_alloc_node+0x613/0xc50 mm/slub.c:3888
     kmalloc_reserve+0x13d/0x4a0 net/core/skbuff.c:577
     __alloc_skb+0x35b/0x7a0 net/core/skbuff.c:668
     alloc_skb include/linux/skbuff.h:1313 [inline]
     alloc_skb_with_frags+0xc8/0xbf0 net/core/skbuff.c:6504
     sock_alloc_send_pskb+0xa81/0xbf0 net/core/sock.c:2795
     sock_alloc_send_skb include/net/sock.h:1842 [inline]
     j1939_sk_alloc_skb net/can/j1939/socket.c:878 [inline]
     j1939_sk_send_loop net/can/j1939/socket.c:1142 [inline]
     j1939_sk_sendmsg+0xc0a/0x2730 net/can/j1939/socket.c:1277
     sock_sendmsg_nosec net/socket.c:730 [inline]
     __sock_sendmsg+0x30f/0x380 net/socket.c:745
     ____sys_sendmsg+0x877/0xb60 net/socket.c:2584
     ___sys_sendmsg+0x28d/0x3c0 net/socket.c:2638
     __sys_sendmsg net/socket.c:2667 [inline]
     __do_sys_sendmsg net/socket.c:2676 [inline]
     __se_sys_sendmsg net/socket.c:2674 [inline]
     __x64_sys_sendmsg+0x307/0x4a0 net/socket.c:2674
     x64_sys_call+0xc4b/0x3b50 arch/x86/include/generated/asm/syscalls_64.h:47
     do_syscall_x64 arch/x86/entry/common.c:52 [inline]
     do_syscall_64+0xcf/0x1e0 arch/x86/entry/common.c:83
     entry_SYSCALL_64_after_hwframe+0x77/0x7f
    
    Bytes 12-15 of 16 are uninitialized
    Memory access of size 16 starts at ffff888120969690
    Data copied to user address 00000000200017c0
    
    CPU: 1 PID: 5050 Comm: syz-executor198 Not tainted 6.9.0-rc5-syzkaller-00031-g71b1543c83d6 #0
    Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 03/27/2024
    
    Fixes: 9d71dd0 ("can: add support of SAE J1939 protocol")
    Reported-and-tested-by: syzbot+5681e40d297b30f5b513@syzkaller.appspotmail.com
    Closes: https://syzkaller.appspot.com/bug?extid=5681e40d297b30f5b513
    Acked-by: Oleksij Rempel <o.rempel@pengutronix.de>
    Signed-off-by: Shigeru Yoshida <syoshida@redhat.com>
    Link: https://lore.kernel.org/all/20240517035953.2617090-1-syoshida@redhat.com
    Cc: stable@vger.kernel.org
    Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Shigeru Yoshida authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    ba7e5ae View commit details
    Browse the repository at this point in the history
  164. net: can: j1939: recover socket queue on CAN bus error during BAM tra…

    …nsmission
    
    commit 9ad1da1 upstream.
    
    Addresses an issue where a CAN bus error during a BAM transmission
    could stall the socket queue, preventing further transmissions even
    after the bus error is resolved. The fix activates the next queued
    session after the error recovery, allowing communication to continue.
    
    Fixes: 9d71dd0 ("can: add support of SAE J1939 protocol")
    Cc: stable@vger.kernel.org
    Reported-by: Alexander Hölzl <alexander.hoelzl@gmx.net>
    Tested-by: Alexander Hölzl <alexander.hoelzl@gmx.net>
    Signed-off-by: Oleksij Rempel <o.rempel@pengutronix.de>
    Link: https://lore.kernel.org/all/20240528070648.1947203-1-o.rempel@pengutronix.de
    Cc: stable@vger.kernel.org
    Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    olerem authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    cdfc341 View commit details
    Browse the repository at this point in the history
  165. net: can: j1939: enhanced error handling for tightly received RTS mes…

    …sages in xtp_rx_rts_session_new
    
    commit d3e2904 upstream.
    
    This patch enhances error handling in scenarios with RTS (Request to
    Send) messages arriving closely. It replaces the less informative WARN_ON_ONCE
    backtraces with a new error handling method. This provides clearer error
    messages and allows for the early termination of problematic sessions.
    Previously, sessions were only released at the end of j1939_xtp_rx_rts().
    
    Potentially this could be reproduced with something like:
    testj1939 -r vcan0:0x80 &
    while true; do
    	# send first RTS
    	cansend vcan0 18EC8090#1014000303002301;
    	# send second RTS
    	cansend vcan0 18EC8090#1014000303002301;
    	# send abort
    	cansend vcan0 18EC8090#ff00000000002301;
    done
    
    Fixes: 9d71dd0 ("can: add support of SAE J1939 protocol")
    Reported-by: syzbot+daa36413a5cedf799ae4@syzkaller.appspotmail.com
    Cc: stable@vger.kernel.org
    Signed-off-by: Oleksij Rempel <o.rempel@pengutronix.de>
    Link: https://lore.kernel.org/all/20231117124959.961171-1-o.rempel@pengutronix.de
    Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    olerem authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    0bc0a74 View commit details
    Browse the repository at this point in the history
  166. PCI/MSI: Fix UAF in msi_capability_init

    commit 9eee533 upstream.
    
    KFENCE reports the following UAF:
    
     BUG: KFENCE: use-after-free read in __pci_enable_msi_range+0x2c0/0x488
    
     Use-after-free read at 0x0000000024629571 (in kfence-#12):
      __pci_enable_msi_range+0x2c0/0x488
      pci_alloc_irq_vectors_affinity+0xec/0x14c
      pci_alloc_irq_vectors+0x18/0x28
    
     kfence-#12: 0x0000000008614900-0x00000000e06c228d, size=104, cache=kmalloc-128
    
     allocated by task 81 on cpu 7 at 10.808142s:
      __kmem_cache_alloc_node+0x1f0/0x2bc
      kmalloc_trace+0x44/0x138
      msi_alloc_desc+0x3c/0x9c
      msi_domain_insert_msi_desc+0x30/0x78
      msi_setup_msi_desc+0x13c/0x184
      __pci_enable_msi_range+0x258/0x488
      pci_alloc_irq_vectors_affinity+0xec/0x14c
      pci_alloc_irq_vectors+0x18/0x28
    
     freed by task 81 on cpu 7 at 10.811436s:
      msi_domain_free_descs+0xd4/0x10c
      msi_domain_free_locked.part.0+0xc0/0x1d8
      msi_domain_alloc_irqs_all_locked+0xb4/0xbc
      pci_msi_setup_msi_irqs+0x30/0x4c
      __pci_enable_msi_range+0x2a8/0x488
      pci_alloc_irq_vectors_affinity+0xec/0x14c
      pci_alloc_irq_vectors+0x18/0x28
    
    Descriptor allocation done in:
    __pci_enable_msi_range
        msi_capability_init
            msi_setup_msi_desc
                msi_insert_msi_desc
                    msi_domain_insert_msi_desc
                        msi_alloc_desc
                            ...
    
    Freed in case of failure in __msi_domain_alloc_locked()
    __pci_enable_msi_range
        msi_capability_init
            pci_msi_setup_msi_irqs
                msi_domain_alloc_irqs_all_locked
                    msi_domain_alloc_locked
                        __msi_domain_alloc_locked => fails
                        msi_domain_free_locked
                            ...
    
    That failure propagates back to pci_msi_setup_msi_irqs() in
    msi_capability_init() which accesses the descriptor for unmasking in the
    error exit path.
    
    Cure it by copying the descriptor and using the copy for the error exit path
    unmask operation.
    
    [ tglx: Massaged change log ]
    
    Fixes: bf6e054 ("genirq/msi: Provide msi_device_populate/destroy_sysfs()")
    Suggested-by: Thomas Gleixner <tglx@linutronix.de>
    Signed-off-by: Mostafa Saleh <smostafa@google.com>
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    Cc: Bjorn Heelgas <bhelgaas@google.com>
    Cc: stable@vger.kernel.org
    Link: https://lore.kernel.org/r/20240624203729.1094506-1-smostafa@google.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    misaleh authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    45fc8d2 View commit details
    Browse the repository at this point in the history
  167. nvmet-fc: Remove __counted_by from nvmet_fc_tgt_queue.fod[]

    commit 440e205 upstream.
    
    Work for __counted_by on generic pointers in structures (not just
    flexible array members) has started landing in Clang 19 (current tip of
    tree). During the development of this feature, a restriction was added
    to __counted_by to prevent the flexible array member's element type from
    including a flexible array member itself such as:
    
      struct foo {
        int count;
        char buf[];
      };
    
      struct bar {
        int count;
        struct foo data[] __counted_by(count);
      };
    
    because the size of data cannot be calculated with the standard array
    size formula:
    
      sizeof(struct foo) * count
    
    This restriction was downgraded to a warning but due to CONFIG_WERROR,
    it can still break the build. The application of __counted_by on the fod
    member of 'struct nvmet_fc_tgt_queue' triggers this restriction,
    resulting in:
    
      drivers/nvme/target/fc.c:151:2: error: 'counted_by' should not be applied to an array with element of unknown size because 'struct nvmet_fc_fcp_iod' is a struct type with a flexible array member. This will be an error in a future compiler version [-Werror,-Wbounds-safety-counted-by-elt-type-unknown-size]
        151 |         struct nvmet_fc_fcp_iod         fod[] __counted_by(sqsize);
            |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      1 error generated.
    
    Remove this use of __counted_by to fix the warning/error. However,
    rather than remove it altogether, leave it commented, as it may be
    possible to support this in future compiler releases.
    
    Cc: stable@vger.kernel.org
    Closes: ClangBuiltLinux#2027
    Fixes: ccd3129 ("nvmet-fc: Annotate struct nvmet_fc_tgt_queue with __counted_by")
    Signed-off-by: Nathan Chancellor <nathan@kernel.org>
    Signed-off-by: Keith Busch <kbusch@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    nathanchance authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    97fe0b9 View commit details
    Browse the repository at this point in the history
  168. cpufreq: intel_pstate: Use HWP to initialize ITMT if CPPC is missing

    commit a1ff597 upstream.
    
    It is reported that single-thread performance on some hybrid systems
    dropped significantly after commit 7feec74 ("ACPI: CPPC: Only probe
    for _CPC if CPPC v2 is acked") which prevented _CPC from being used if
    the support for it had not been confirmed by the platform firmware.
    
    The problem is that if the platform firmware does not confirm CPPC v2
    support, cppc_get_perf_caps() returns an error which prevents the
    intel_pstate driver from enabling ITMT.  Consequently, the scheduler
    does not get any hints on CPU performance differences, so in a hybrid
    system some tasks may run on CPUs with lower capacity even though they
    should be running on high-capacity CPUs.
    
    To address this, modify intel_pstate to use the information from
    MSR_HWP_CAPABILITIES to enable ITMT if CPPC is not available (which is
    done already if the highest performance number coming from CPPC is not
    realistic).
    
    Fixes: 7feec74 ("ACPI: CPPC: Only probe for _CPC if CPPC v2 is acked")
    Closes: https://lore.kernel.org/linux-acpi/d01b0a1f-bd33-47fe-ab41-43843d8a374f@kfocus.org
    Link: https://lore.kernel.org/linux-acpi/ZnD22b3Br1ng7alf@kf-XE
    Reported-by: Aaron Rainbolt <arainbolt@kfocus.org>
    Tested-by: Aaron Rainbolt <arainbolt@kfocus.org>
    Cc: 5.19+ <stable@vger.kernel.org> # 5.19+
    Link: https://patch.msgid.link/12460110.O9o76ZdvQC@rjwysocki.net
    Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
    Reviewed-by: Mario Limonciello <mario.limonciello@amd.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    rafaeljw authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    08bf4ee View commit details
    Browse the repository at this point in the history
  169. irqchip/loongson-eiointc: Use early_cpu_to_node() instead of cpu_to_n…

    …ode()
    
    commit 2d64eae upstream.
    
    Multi-bridge machines required that all eiointc controllers in the system
    are initialized, otherwise the system does not boot.
    
    The initialization happens on the boot CPU during early boot and relies on
    cpu_to_node() for identifying the individual nodes.
    
    That works when the number of possible CPUs is large enough, but with a
    command line limit, e.g. "nr_cpus=$N" for kdump, but fails when the CPUs
    of the secondary nodes are not covered.
    
    During early ACPI enumeration all CPU to node mappings are recorded up to
    CONFIG_NR_CPUS. These are accessible via early_cpu_to_node() even in the
    case that "nr_cpus=N" truncates the number of possible CPUs and only
    provides the possible CPUs via cpu_to_node() translation.
    
    Change the node lookup in the driver to use early_cpu_to_node() so that
    even with a limitation on the number of possible CPUs all eointc instances
    are initialized.
    
    This can't obviously cure the case where CONFIG_NR_CPUS is too small.
    
    [ tglx: Massaged changelog ]
    
    Fixes: 64cc451 ("irqchip/loongson-eiointc: Fix incorrect use of acpi_get_vec_parent")
    Signed-off-by: Huacai Chen <chenhuacai@loongson.cn>
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    Cc: stable@vger.kernel.org
    Link: https://lore.kernel.org/r/20240623034113.1808727-1-chenhuacai@loongson.cn
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    chenhuacai authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    49928a4 View commit details
    Browse the repository at this point in the history
  170. cpu: Fix broken cmdline "nosmp" and "maxcpus=0"

    commit 6ef8eb5 upstream.
    
    After the rework of "Parallel CPU bringup", the cmdline "nosmp" and
    "maxcpus=0" parameters are not working anymore. These parameters set
    setup_max_cpus to zero and that's handed to bringup_nonboot_cpus().
    
    The code there does a decrement before checking for zero, which brings it
    into the negative space and brings up all CPUs.
    
    Add a zero check at the beginning of the function to prevent this.
    
    [ tglx: Massaged change log ]
    
    Fixes: 18415f3 ("cpu/hotplug: Allow "parallel" bringup up to CPUHP_BP_KICK_AP_STATE")
    Fixes: 06c6796 ("cpu/hotplug: Fix off by one in cpuhp_bringup_mask()")
    Signed-off-by: Huacai Chen <chenhuacai@loongson.cn>
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    Cc: stable@vger.kernel.org
    Link: https://lore.kernel.org/r/20240618081336.3996825-1-chenhuacai@loongson.cn
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    chenhuacai authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    a4787a0 View commit details
    Browse the repository at this point in the history
  171. cpu/hotplug: Fix dynstate assignment in __cpuhp_setup_state_cpuslocked()

    commit 932d847 upstream.
    
    Commit 4205e47 ("cpu/hotplug: Provide dynamic range for prepare
    stage") added a dynamic range for the prepare states, but did not handle
    the assignment of the dynstate variable in __cpuhp_setup_state_cpuslocked().
    
    This causes the corresponding startup callback not to be invoked when
    calling __cpuhp_setup_state_cpuslocked() with the CPUHP_BP_PREPARE_DYN
    parameter, even though it should be.
    
    Currently, the users of __cpuhp_setup_state_cpuslocked(), for one reason or
    another, have not triggered this bug.
    
    Fixes: 4205e47 ("cpu/hotplug: Provide dynamic range for prepare stage")
    Signed-off-by: Yuntao Wang <ytcoode@gmail.com>
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    Cc: stable@vger.kernel.org
    Link: https://lore.kernel.org/r/20240515134554.427071-1-ytcoode@gmail.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    ytcoode authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    3d732f9 View commit details
    Browse the repository at this point in the history
  172. irqchip/loongson-liointc: Set different ISRs for different cores

    commit a9c3ee5 upstream.
    
    The liointc hardware provides separate Interrupt Status Registers (ISR) for
    each core. The current code uses always the ISR of core #0, which works
    during boot because by default all interrupts are routed to core #0.
    
    When the interrupt routing changes in the firmware configuration then this
    causes interrupts to be lost because they are not configured in the
    corresponding core.
    
    Use the core index to access the correct ISR instead of a hardcoded 0.
    
    [ tglx: Massaged changelog ]
    
    Fixes: 0858ed0 ("irqchip/loongson-liointc: Add ACPI init support")
    Co-developed-by: Tianli Xiong <xiongtianli@loongson.cn>
    Signed-off-by: Tianli Xiong <xiongtianli@loongson.cn>
    Signed-off-by: Huacai Chen <chenhuacai@loongson.cn>
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    Cc: <stable@vger.kernel.org>
    Link: https://lore.kernel.org/r/20240622043338.1566945-1-chenhuacai@loongson.cn
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    chenhuacai authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    e3cde47 View commit details
    Browse the repository at this point in the history
  173. kbuild: Install dtb files as 0644 in Makefile.dtbinst

    commit 9cc5f3b upstream.
    
    The compiled dtb files aren't executable, so install them with 0644 as their
    permission mode, instead of defaulting to 0755 for the permission mode and
    installing them with the executable bits set.
    
    Some Linux distributions, including Debian, [1][2][3] already include fixes
    in their kernel package build recipes to change the dtb file permissions to
    0644 in their kernel packages.  These changes, when additionally propagated
    into the long-term kernel versions, will allow such distributions to remove
    their downstream fixes.
    
    [1] https://salsa.debian.org/kernel-team/linux/-/merge_requests/642
    [2] https://salsa.debian.org/kernel-team/linux/-/merge_requests/749
    [3] https://salsa.debian.org/kernel-team/linux/-/blob/debian/6.8.12-1/debian/rules.real#L193
    
    Cc: Diederik de Haas <didi.debian@cknow.org>
    Cc: <stable@vger.kernel.org>
    Fixes: aefd803 ("kbuild: refactor Makefile.dtbinst more")
    Signed-off-by: Dragan Simic <dsimic@manjaro.org>
    Reviewed-by: Nicolas Schier <nicolas@fjasle.eu>
    Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Dragan Simic authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    91e3c06 View commit details
    Browse the repository at this point in the history
  174. sh: rework sync_file_range ABI

    commit 30766f1 upstream.
    
    The unusual function calling conventions on SuperH ended up causing
    sync_file_range to have the wrong argument order, with the 'flags'
    argument getting sorted before 'nbytes' by the compiler.
    
    In userspace, I found that musl, glibc, uclibc and strace all expect the
    normal calling conventions with 'nbytes' last, so changing the kernel
    to match them should make all of those work.
    
    In order to be able to also fix libc implementations to work with existing
    kernels, they need to be able to tell which ABI is used. An easy way
    to do this is to add yet another system call using the sync_file_range2
    ABI that works the same on all architectures.
    
    Old user binaries can now work on new kernels, and new binaries can
    try the new sync_file_range2() to work with new kernels or fall back
    to the old sync_file_range() version if that doesn't exist.
    
    Cc: stable@vger.kernel.org
    Fixes: 75c92ac ("sh: Wire up new syscalls.")
    Acked-by: John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de>
    Signed-off-by: Arnd Bergmann <arnd@arndb.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    arndb authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    1d372b2 View commit details
    Browse the repository at this point in the history
  175. btrfs: zoned: fix initial free space detection

    commit b9fd2af upstream.
    
    When creating a new block group, it calls btrfs_add_new_free_space() to add
    the entire block group range into the free space accounting.
    __btrfs_add_free_space_zoned() checks if size == block_group->length to
    detect the initial free space adding, and proceed that case properly.
    
    However, if the zone_capacity == zone_size and the over-write speed is fast
    enough, the entire zone can be over-written within one transaction. That
    confuses __btrfs_add_free_space_zoned() to handle it as an initial free
    space accounting. As a result, that block group becomes a strange state: 0
    used bytes, 0 zone_unusable bytes, but alloc_offset == zone_capacity (no
    allocation anymore).
    
    The initial free space accounting can properly be checked by checking
    alloc_offset too.
    
    Fixes: 9817325 ("btrfs: zoned: calculate free space from zone capacity")
    CC: stable@vger.kernel.org # 6.1+
    Reviewed-by: Johannes Thumshirn <johannes.thumshirn@wdc.com>
    Signed-off-by: Naohiro Aota <naohiro.aota@wdc.com>
    Reviewed-by: David Sterba <dsterba@suse.com>
    Signed-off-by: David Sterba <dsterba@suse.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    naota authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    009ba8b View commit details
    Browse the repository at this point in the history
  176. csky, hexagon: fix broken sys_sync_file_range

    commit 3339b99 upstream.
    
    Both of these architectures require u64 function arguments to be
    passed in even/odd pairs of registers or stack slots, which in case of
    sync_file_range would result in a seven-argument system call that is
    not currently possible. The system call is therefore incompatible with
    all existing binaries.
    
    While it would be possible to implement support for seven arguments
    like on mips, it seems better to use a six-argument version, either
    with the normal argument order but misaligned as on most architectures
    or with the reordered sync_file_range2() calling conventions as on
    arm and powerpc.
    
    Cc: stable@vger.kernel.org
    Acked-by: Guo Ren <guoren@kernel.org>
    Signed-off-by: Arnd Bergmann <arnd@arndb.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    arndb authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    796a884 View commit details
    Browse the repository at this point in the history
  177. hexagon: fix fadvise64_64 calling conventions

    commit 8968422 upstream.
    
    fadvise64_64() has two 64-bit arguments at the wrong alignment
    for hexagon, which turns them into a 7-argument syscall that is
    not supported by Linux.
    
    The downstream musl port for hexagon actually asks for a 6-argument
    version the same way we do it on arm, csky, powerpc, so make the
    kernel do it the same way to avoid having to change both.
    
    Link: https://github.com/quic/musl/blob/hexagon/arch/hexagon/syscall_arch.h#L78
    Cc: stable@vger.kernel.org
    Signed-off-by: Arnd Bergmann <arnd@arndb.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    arndb authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    c629c9d View commit details
    Browse the repository at this point in the history
  178. drm/drm_file: Fix pid refcounting race

    commit 4f2a129 upstream.
    
    <maarten.lankhorst@linux.intel.com>, Maxime Ripard
    <mripard@kernel.org>, Thomas Zimmermann <tzimmermann@suse.de>
    
    filp->pid is supposed to be a refcounted pointer; however, before this
    patch, drm_file_update_pid() only increments the refcount of a struct
    pid after storing a pointer to it in filp->pid and dropping the
    dev->filelist_mutex, making the following race possible:
    
    process A               process B
    =========               =========
                            begin drm_file_update_pid
                            mutex_lock(&dev->filelist_mutex)
                            rcu_replace_pointer(filp->pid, <pid B>, 1)
                            mutex_unlock(&dev->filelist_mutex)
    begin drm_file_update_pid
    mutex_lock(&dev->filelist_mutex)
    rcu_replace_pointer(filp->pid, <pid A>, 1)
    mutex_unlock(&dev->filelist_mutex)
    get_pid(<pid A>)
    synchronize_rcu()
    put_pid(<pid B>)   *** pid B reaches refcount 0 and is freed here ***
                            get_pid(<pid B>)   *** UAF ***
                            synchronize_rcu()
                            put_pid(<pid A>)
    
    As far as I know, this race can only occur with CONFIG_PREEMPT_RCU=y
    because it requires RCU to detect a quiescent state in code that is not
    explicitly calling into the scheduler.
    
    This race leads to use-after-free of a "struct pid".
    It is probably somewhat hard to hit because process A has to pass
    through a synchronize_rcu() operation while process B is between
    mutex_unlock() and get_pid().
    
    Fix it by ensuring that by the time a pointer to the current task's pid
    is stored in the file, an extra reference to the pid has been taken.
    
    This fix also removes the condition for synchronize_rcu(); I think
    that optimization is unnecessary complexity, since in that case we
    would usually have bailed out on the lockless check above.
    
    Fixes: 1c7a387 ("drm: Update file owner during use")
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Jann Horn <jannh@google.com>
    Signed-off-by: Dave Airlie <airlied@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    thejh authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    0acce2a View commit details
    Browse the repository at this point in the history
  179. drm/nouveau/dispnv04: fix null pointer dereference in nv17_tv_get_ld_…

    …modes
    
    commit 66edf3f upstream.
    
    In nv17_tv_get_ld_modes(), the return value of drm_mode_duplicate() is
    assigned to mode, which will lead to a possible NULL pointer dereference
    on failure of drm_mode_duplicate(). Add a check to avoid npd.
    
    Cc: stable@vger.kernel.org
    Signed-off-by: Ma Ke <make24@iscas.ac.cn>
    Signed-off-by: Lyude Paul <lyude@redhat.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20240625081828.2620794-1-make24@iscas.ac.cn
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Ma Ke authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    bdda507 View commit details
    Browse the repository at this point in the history
  180. drm/fbdev-dma: Only set smem_start is enable per module option

    commit d92a758 upstream.
    
    Only export struct fb_info.fix.smem_start if that is required by the
    user and the memory does not come from vmalloc().
    
    Setting struct fb_info.fix.smem_start breaks systems where DMA
    memory is backed by vmalloc address space. An example error is
    shown below.
    
    [    3.536043] ------------[ cut here ]------------
    [    3.540716] virt_to_phys used for non-linear address: 000000007fc4f540 (0xffff800086001000)
    [    3.552628] WARNING: CPU: 4 PID: 61 at arch/arm64/mm/physaddr.c:12 __virt_to_phys+0x68/0x98
    [    3.565455] Modules linked in:
    [    3.568525] CPU: 4 PID: 61 Comm: kworker/u12:5 Not tainted 6.6.23-06226-g4986cc3e1b75-dirty #250
    [    3.577310] Hardware name: NXP i.MX95 19X19 board (DT)
    [    3.582452] Workqueue: events_unbound deferred_probe_work_func
    [    3.588291] pstate: 60400009 (nZCv daif +PAN -UAO -TCO -DIT -SSBS BTYPE=--)
    [    3.595233] pc : __virt_to_phys+0x68/0x98
    [    3.599246] lr : __virt_to_phys+0x68/0x98
    [    3.603276] sp : ffff800083603990
    [    3.677939] Call trace:
    [    3.680393]  __virt_to_phys+0x68/0x98
    [    3.684067]  drm_fbdev_dma_helper_fb_probe+0x138/0x238
    [    3.689214]  __drm_fb_helper_initial_config_and_unlock+0x2b0/0x4c0
    [    3.695385]  drm_fb_helper_initial_config+0x4c/0x68
    [    3.700264]  drm_fbdev_dma_client_hotplug+0x8c/0xe0
    [    3.705161]  drm_client_register+0x60/0xb0
    [    3.709269]  drm_fbdev_dma_setup+0x94/0x148
    
    Additionally, DMA memory is assumed to by contiguous in physical
    address space, which is not guaranteed by vmalloc().
    
    Resolve this by checking the module flag drm_leak_fbdev_smem when
    DRM allocated the instance of struct fb_info. Fbdev-dma then only
    sets smem_start only if required (via FBINFO_HIDE_SMEM_START). Also
    guarantee that the framebuffer is not located in vmalloc address
    space.
    
    Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
    Reported-by: Peng Fan (OSS) <peng.fan@oss.nxp.com>
    Closes: https://lore.kernel.org/dri-devel/20240604080328.4024838-1-peng.fan@oss.nxp.com/
    Reported-by: Geert Uytterhoeven <geert+renesas@glider.be>
    Closes: https://lore.kernel.org/dri-devel/CAMuHMdX3N0szUvt1VTbroa2zrT1Nye_VzPb5qqCZ7z5gSm7HGw@mail.gmail.com/
    Fixes: a51c766 ("drm/fb-helper: Consolidate CONFIG_DRM_FBDEV_LEAK_PHYS_SMEM")
    Tested-by: Geert Uytterhoeven <geert+renesas@glider.be>
    Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
    Cc: <stable@vger.kernel.org> # v6.4+
    Link: https://patchwork.freedesktop.org/patch/msgid/20240617152843.11886-1-tzimmermann@suse.de
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Thomas Zimmermann authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    00702cf View commit details
    Browse the repository at this point in the history
  181. drm/amdgpu: avoid using null object of framebuffer

    commit bcfa48f upstream.
    
    Instead of using state->fb->obj[0] directly, get object from framebuffer
    by calling drm_gem_fb_get_obj() and return error code when object is
    null to avoid using null object of framebuffer.
    
    Reported-by: Fusheng Huang <fusheng.huang@ecarxgroup.com>
    Signed-off-by: Julia Zhang <Julia.Zhang@amd.com>
    Reviewed-by: Huang Rui <ray.huang@amd.com>
    Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
    Cc: stable@vger.kernel.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    julizhan authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    dd9ec0e View commit details
    Browse the repository at this point in the history
  182. drm/i915/gt: Fix potential UAF by revoke of fence registers

    commit 996c341 upstream.
    
    CI has been sporadically reporting the following issue triggered by
    igt@i915_selftest@live@hangcheck on ADL-P and similar machines:
    
    <6> [414.049203] i915: Running intel_hangcheck_live_selftests/igt_reset_evict_fence
    ...
    <6> [414.068804] i915 0000:00:02.0: [drm] GT0: GUC: submission enabled
    <6> [414.068812] i915 0000:00:02.0: [drm] GT0: GUC: SLPC enabled
    <3> [414.070354] Unable to pin Y-tiled fence; err:-4
    <3> [414.071282] i915_vma_revoke_fence:301 GEM_BUG_ON(!i915_active_is_idle(&fence->active))
    ...
    <4>[  609.603992] ------------[ cut here ]------------
    <2>[  609.603995] kernel BUG at drivers/gpu/drm/i915/gt/intel_ggtt_fencing.c:301!
    <4>[  609.604003] invalid opcode: 0000 [#1] PREEMPT SMP NOPTI
    <4>[  609.604006] CPU: 0 PID: 268 Comm: kworker/u64:3 Tainted: G     U  W          6.9.0-CI_DRM_14785-g1ba62f8cea9c+ #1
    <4>[  609.604008] Hardware name: Intel Corporation Alder Lake Client Platform/AlderLake-P DDR4 RVP, BIOS RPLPFWI1.R00.4035.A00.2301200723 01/20/2023
    <4>[  609.604010] Workqueue: i915 __i915_gem_free_work [i915]
    <4>[  609.604149] RIP: 0010:i915_vma_revoke_fence+0x187/0x1f0 [i915]
    ...
    <4>[  609.604271] Call Trace:
    <4>[  609.604273]  <TASK>
    ...
    <4>[  609.604716]  __i915_vma_evict+0x2e9/0x550 [i915]
    <4>[  609.604852]  __i915_vma_unbind+0x7c/0x160 [i915]
    <4>[  609.604977]  force_unbind+0x24/0xa0 [i915]
    <4>[  609.605098]  i915_vma_destroy+0x2f/0xa0 [i915]
    <4>[  609.605210]  __i915_gem_object_pages_fini+0x51/0x2f0 [i915]
    <4>[  609.605330]  __i915_gem_free_objects.isra.0+0x6a/0xc0 [i915]
    <4>[  609.605440]  process_scheduled_works+0x351/0x690
    ...
    
    In the past, there were similar failures reported by CI from other IGT
    tests, observed on other platforms.
    
    Before commit 63baf4f ("drm/i915/gt: Only wait for GPU activity
    before unbinding a GGTT fence"), i915_vma_revoke_fence() was waiting for
    idleness of vma->active via fence_update().   That commit introduced
    vma->fence->active in order for the fence_update() to be able to wait
    selectively on that one instead of vma->active since only idleness of
    fence registers was needed.  But then, another commit 0d86ee3
    ("drm/i915/gt: Make fence revocation unequivocal") replaced the call to
    fence_update() in i915_vma_revoke_fence() with only fence_write(), and
    also added that GEM_BUG_ON(!i915_active_is_idle(&fence->active)) in front.
    No justification was provided on why we might then expect idleness of
    vma->fence->active without first waiting on it.
    
    The issue can be potentially caused by a race among revocation of fence
    registers on one side and sequential execution of signal callbacks invoked
    on completion of a request that was using them on the other, still
    processed in parallel to revocation of those fence registers.  Fix it by
    waiting for idleness of vma->fence->active in i915_vma_revoke_fence().
    
    Fixes: 0d86ee3 ("drm/i915/gt: Make fence revocation unequivocal")
    Closes: https://gitlab.freedesktop.org/drm/intel/issues/10021
    Signed-off-by: Janusz Krzysztofik <janusz.krzysztofik@linux.intel.com>
    Cc: stable@vger.kernel.org # v5.8+
    Reviewed-by: Andi Shyti <andi.shyti@linux.intel.com>
    Signed-off-by: Andi Shyti <andi.shyti@linux.intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20240603195446.297690-2-janusz.krzysztofik@linux.intel.com
    (cherry picked from commit 24bb052)
    Signed-off-by: Jani Nikula <jani.nikula@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    jkrzyszt-intel authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    414f4a3 View commit details
    Browse the repository at this point in the history
  183. drm/nouveau/dispnv04: fix null pointer dereference in nv17_tv_get_hd_…

    …modes
    
    commit 6d411c8 upstream.
    
    In nv17_tv_get_hd_modes(), the return value of drm_mode_duplicate() is
    assigned to mode, which will lead to a possible NULL pointer dereference
    on failure of drm_mode_duplicate(). The same applies to drm_cvt_mode().
    Add a check to avoid null pointer dereference.
    
    Cc: stable@vger.kernel.org
    Signed-off-by: Ma Ke <make24@iscas.ac.cn>
    Signed-off-by: Lyude Paul <lyude@redhat.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20240625081029.2619437-1-make24@iscas.ac.cn
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Ma Ke authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    6e49a15 View commit details
    Browse the repository at this point in the history
  184. drm/amd/display: Send DP_TOTAL_LTTPR_CNT during detection if LTTPR is…

    … present
    
    commit 2ec6c7f upstream.
    
    [WHY]
    New register field added in DP2.1 SCR, needed for auxless ALPM
    
    [HOW]
    Echo value read from 0xF0007 back to sink
    
    Reviewed-by: Wenjing Liu <wenjing.liu@amd.com>
    Cc: Mario Limonciello <mario.limonciello@amd.com>
    Cc: Alex Deucher <alexander.deucher@amd.com>
    Cc: stable@vger.kernel.org
    Signed-off-by: Alex Hung <alex.hung@amd.com>
    Signed-off-by: Michael Strauss <michael.strauss@amd.com>
    Tested-by: Daniel Wheeler <daniel.wheeler@amd.com>
    Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Michael Strauss authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    c990344 View commit details
    Browse the repository at this point in the history
  185. drm/amdgpu/atomfirmware: fix parsing of vram_info

    commit f6f49dd upstream.
    
    v3.x changed the how vram width was encoded.  The previous
    implementation actually worked correctly for most boards.
    Fix the implementation to work correctly everywhere.
    
    This fixes the vram width reported in the kernel log on
    some boards.
    
    Reviewed-by: Hawking Zhang <Hawking.Zhang@amd.com>
    Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
    Cc: stable@vger.kernel.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    alexdeucher authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    c6b5ff5 View commit details
    Browse the repository at this point in the history
  186. io_uring: signal SQPOLL task_work with TWA_SIGNAL_NO_IPI

    commit dbcabac upstream.
    
    Before SQPOLL was transitioned to managing its own task_work, the core
    used TWA_SIGNAL_NO_IPI to ensure that task_work was processed. If not,
    we can't be sure that all task_work is processed at SQPOLL thread exit
    time.
    
    Fixes: af5d68f ("io_uring/sqpoll: manage task_work privately")
    Cc: stable@vger.kernel.org
    Signed-off-by: Jens Axboe <axboe@kernel.dk>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    axboe authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    f217e33 View commit details
    Browse the repository at this point in the history
  187. batman-adv: Don't accept TT entries for out-of-spec VIDs

    commit 537a350 upstream.
    
    The internal handling of VLAN IDs in batman-adv is only specified for
    following encodings:
    
    * VLAN is used
      - bit 15 is 1
      - bit 11 - bit 0 is the VLAN ID (0-4095)
      - remaining bits are 0
    * No VLAN is used
      - bit 15 is 0
      - remaining bits are 0
    
    batman-adv was only preparing new translation table entries (based on its
    soft interface information) using this encoding format. But the receive
    path was never checking if entries in the roam or TT TVLVs were also
    following this encoding.
    
    It was therefore possible to create more than the expected maximum of 4096
    + 1 entries in the originator VLAN list. Simply by setting the "remaining
    bits" to "random" values in corresponding TVLV.
    
    Cc: stable@vger.kernel.org
    Fixes: 7ea7b4a ("batman-adv: make the TT CRC logic VLAN specific")
    Reported-by: Linus Lüssing <linus.luessing@c0d3.blue>
    Signed-off-by: Sven Eckelmann <sven@narfation.org>
    Signed-off-by: Simon Wunderlich <sw@simonwunderlich.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    ecsv authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    9d42bcb View commit details
    Browse the repository at this point in the history
  188. can: mcp251xfd: fix infinite loop when xmit fails

    commit d8fb63e upstream.
    
    When the mcp251xfd_start_xmit() function fails, the driver stops
    processing messages, and the interrupt routine does not return,
    running indefinitely even after killing the running application.
    
    Error messages:
    [  441.298819] mcp251xfd spi2.0 can0: ERROR in mcp251xfd_start_xmit: -16
    [  441.306498] mcp251xfd spi2.0 can0: Transmit Event FIFO buffer not empty. (seq=0x000017c7, tef_tail=0x000017cf, tef_head=0x000017d0, tx_head=0x000017d3).
    ... and repeat forever.
    
    The issue can be triggered when multiple devices share the same SPI
    interface. And there is concurrent access to the bus.
    
    The problem occurs because tx_ring->head increments even if
    mcp251xfd_start_xmit() fails. Consequently, the driver skips one TX
    package while still expecting a response in
    mcp251xfd_handle_tefif_one().
    
    Resolve the issue by starting a workqueue to write the tx obj
    synchronously if err = -EBUSY. In case of another error, decrement
    tx_ring->head, remove skb from the echo stack, and drop the message.
    
    Fixes: 55e5b97 ("can: mcp25xxfd: add driver for Microchip MCP25xxFD SPI CAN")
    Cc: stable@vger.kernel.org
    Signed-off-by: Vitor Soares <vitor.soares@toradex.com>
    Link: https://lore.kernel.org/all/20240517134355.770777-1-ivitro@gmail.com
    [mkl: use more imperative wording in patch description]
    Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Vitor Soares authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    6c6b4af View commit details
    Browse the repository at this point in the history
  189. ata: ahci: Clean up sysfs file on error

    commit eeb25a0 upstream.
    
    .probe() (ahci_init_one()) calls sysfs_add_file_to_group(), however,
    if probe() fails after this call, we currently never call
    sysfs_remove_file_from_group().
    
    (The sysfs_remove_file_from_group() call in .remove() (ahci_remove_one())
    does not help, as .remove() is not called on .probe() error.)
    
    Thus, if probe() fails after the sysfs_add_file_to_group() call, the next
    time we insmod the module we will get:
    
    sysfs: cannot create duplicate filename '/devices/pci0000:00/0000:00:04.0/remapped_nvme'
    CPU: 11 PID: 954 Comm: modprobe Not tainted 6.10.0-rc5 #43
    Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.16.3-2.fc40 04/01/2014
    Call Trace:
     <TASK>
     dump_stack_lvl+0x5d/0x80
     sysfs_warn_dup.cold+0x17/0x23
     sysfs_add_file_mode_ns+0x11a/0x130
     sysfs_add_file_to_group+0x7e/0xc0
     ahci_init_one+0x31f/0xd40 [ahci]
    
    Fixes: 894fba7 ("ata: ahci: Add sysfs attribute to show remapped NVMe device count")
    Cc: stable@vger.kernel.org
    Reviewed-by: Damien Le Moal <dlemoal@kernel.org>
    Reviewed-by: Hannes Reinecke <hare@suse.de>
    Link: https://lore.kernel.org/r/20240629124210.181537-10-cassel@kernel.org
    Signed-off-by: Niklas Cassel <cassel@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Niklas Cassel authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    57ff077 View commit details
    Browse the repository at this point in the history
  190. ata: libata-core: Add ATA_HORKAGE_NOLPM for all Crucial BX SSD1 models

    commit 1066fe8 upstream.
    
    We got another report that CT1000BX500SSD1 does not work with LPM.
    
    If you look in libata-core.c, we have six different Crucial devices that
    are marked with ATA_HORKAGE_NOLPM. This model would have been the seventh.
    (This quirk is used on Crucial models starting with both CT* and
    Crucial_CT*)
    
    It is obvious that this vendor does not have a great history of supporting
    LPM properly, therefore, add the ATA_HORKAGE_NOLPM quirk for all Crucial
    BX SSD1 models.
    
    Fixes: 7627a0e ("ata: ahci: Drop low power policy board type")
    Cc: stable@vger.kernel.org
    Reported-by: Alessandro Maggio <alex.tkd.alex@gmail.com>
    Closes: https://bugzilla.kernel.org/show_bug.cgi?id=218832
    Reviewed-by: Damien Le Moal <dlemoal@kernel.org>
    Link: https://lore.kernel.org/r/20240627105551.4159447-2-cassel@kernel.org
    Signed-off-by: Niklas Cassel <cassel@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Niklas Cassel authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    e14bc22 View commit details
    Browse the repository at this point in the history
  191. ata: libata-core: Fix double free on error

    commit ab9e0c5 upstream.
    
    If e.g. the ata_port_alloc() call in ata_host_alloc() fails, we will jump
    to the err_out label, which will call devres_release_group().
    devres_release_group() will trigger a call to ata_host_release().
    ata_host_release() calls kfree(host), so executing the kfree(host) in
    ata_host_alloc() will lead to a double free:
    
    kernel BUG at mm/slub.c:553!
    Oops: invalid opcode: 0000 [#1] PREEMPT SMP NOPTI
    CPU: 11 PID: 599 Comm: (udev-worker) Not tainted 6.10.0-rc5 #47
    Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.16.3-2.fc40 04/01/2014
    RIP: 0010:kfree+0x2cf/0x2f0
    Code: 5d 41 5e 41 5f 5d e9 80 d6 ff ff 4d 89 f1 41 b8 01 00 00 00 48 89 d9 48 89 da
    RSP: 0018:ffffc90000f377f0 EFLAGS: 00010246
    RAX: ffff888112b1f2c0 RBX: ffff888112b1f2c0 RCX: ffff888112b1f320
    RDX: 000000000000400b RSI: ffffffffc02c9de5 RDI: ffff888112b1f2c0
    RBP: ffffc90000f37830 R08: 0000000000000000 R09: 0000000000000000
    R10: ffffc90000f37610 R11: 617461203a736b6e R12: ffffea00044ac780
    R13: ffff888100046400 R14: ffffffffc02c9de5 R15: 0000000000000006
    FS:  00007f2f1cabe980(0000) GS:ffff88813b380000(0000) knlGS:0000000000000000
    CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
    CR2: 00007f2f1c3acf75 CR3: 0000000111724000 CR4: 0000000000750ef0
    PKRU: 55555554
    Call Trace:
     <TASK>
     ? __die_body.cold+0x19/0x27
     ? die+0x2e/0x50
     ? do_trap+0xca/0x110
     ? do_error_trap+0x6a/0x90
     ? kfree+0x2cf/0x2f0
     ? exc_invalid_op+0x50/0x70
     ? kfree+0x2cf/0x2f0
     ? asm_exc_invalid_op+0x1a/0x20
     ? ata_host_alloc+0xf5/0x120 [libata]
     ? ata_host_alloc+0xf5/0x120 [libata]
     ? kfree+0x2cf/0x2f0
     ata_host_alloc+0xf5/0x120 [libata]
     ata_host_alloc_pinfo+0x14/0xa0 [libata]
     ahci_init_one+0x6c9/0xd20 [ahci]
    
    Ensure that we will not call kfree(host) twice, by performing the kfree()
    only if the devres_open_group() call failed.
    
    Fixes: dafd6c4 ("libata: ensure host is free'd on error exit paths")
    Cc: stable@vger.kernel.org
    Reviewed-by: Damien Le Moal <dlemoal@kernel.org>
    Reviewed-by: Hannes Reinecke <hare@suse.de>
    Link: https://lore.kernel.org/r/20240629124210.181537-9-cassel@kernel.org
    Signed-off-by: Niklas Cassel <cassel@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Niklas Cassel authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    8106da4 View commit details
    Browse the repository at this point in the history
  192. ftruncate: pass a signed offset

    commit 4b8e88e upstream.
    
    The old ftruncate() syscall, using the 32-bit off_t misses a sign
    extension when called in compat mode on 64-bit architectures.  As a
    result, passing a negative length accidentally succeeds in truncating
    to file size between 2GiB and 4GiB.
    
    Changing the type of the compat syscall to the signed compat_off_t
    changes the behavior so it instead returns -EINVAL.
    
    The native entry point, the truncate() syscall and the corresponding
    loff_t based variants are all correct already and do not suffer
    from this mistake.
    
    Fixes: 3f6d078 ("fix compat truncate/ftruncate")
    Reviewed-by: Christian Brauner <brauner@kernel.org>
    Cc: stable@vger.kernel.org
    Signed-off-by: Arnd Bergmann <arnd@arndb.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    arndb authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    930a4c3 View commit details
    Browse the repository at this point in the history
  193. syscalls: fix compat_sys_io_pgetevents_time64 usage

    commit d388256 upstream.
    
    Using sys_io_pgetevents() as the entry point for compat mode tasks
    works almost correctly, but misses the sign extension for the min_nr
    and nr arguments.
    
    This was addressed on parisc by switching to
    compat_sys_io_pgetevents_time64() in commit 6431e92 ("parisc:
    io_pgetevents_time64() needs compat syscall in 32-bit compat mode"),
    as well as by using more sophisticated system call wrappers on x86 and
    s390. However, arm64, mips, powerpc, sparc and riscv still have the
    same bug.
    
    Change all of them over to use compat_sys_io_pgetevents_time64()
    like parisc already does. This was clearly the intention when the
    function was originally added, but it got hooked up incorrectly in
    the tables.
    
    Cc: stable@vger.kernel.org
    Fixes: 48166e6 ("y2038: add 64-bit time_t syscalls to all 32-bit architectures")
    Acked-by: Heiko Carstens <hca@linux.ibm.com> # s390
    Signed-off-by: Arnd Bergmann <arnd@arndb.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    arndb authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    7f91555 View commit details
    Browse the repository at this point in the history
  194. syscalls: fix sys_fanotify_mark prototype

    [ Upstream commit 63e2f40 ]
    
    My earlier fix missed an incorrect function prototype that shows up on
    native 32-bit builds:
    
    In file included from fs/notify/fanotify/fanotify_user.c:14:
    include/linux/syscalls.h:248:25: error: conflicting types for 'sys_fanotify_mark'; have 'long int(int,  unsigned int,  u32,  u32,  int,  const char *)' {aka 'long int(int,  unsigned int,  unsigned int,  unsigned int,  int,  const char *)'}
     1924 | SYSCALL32_DEFINE6(fanotify_mark,
          | ^~~~~~~~~~~~~~~~~
    include/linux/syscalls.h:862:17: note: previous declaration of 'sys_fanotify_mark' with type 'long int(int,  unsigned int,  u64,  int, const char *)' {aka 'long int(int,  unsigned int,  long long unsigned int,  int,  const char *)'}
    
    On x86 and powerpc, the prototype is also wrong but hidden in an #ifdef,
    so it never caused problems.
    
    Add another alternative declaration that matches the conditional function
    definition.
    
    Fixes: 403f17a ("parisc: use generic sys_fanotify_mark implementation")
    Cc: stable@vger.kernel.org
    Reported-by: Guenter Roeck <linux@roeck-us.net>
    Reported-by: Geert Uytterhoeven <geert@linux-m68k.org>
    Reported-by: kernel test robot <lkp@intel.com>
    Signed-off-by: Arnd Bergmann <arnd@arndb.de>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    arndb authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    bd2d5b8 View commit details
    Browse the repository at this point in the history
  195. bcachefs: Fix sb_field_downgrade validation

    commit 692aa7a upstream.
    
    - bch2_sb_downgrade_validate() wasn't checking for a downgrade entry
      extending past the end of the superblock section
    
    - for_each_downgrade_entry() is used in to_text() and needs to work on
      malformed input; it also was missing a check for a field extending
      past the end of the section
    
    Reported-by: syzbot+e49ccab73449180bc9be@syzkaller.appspotmail.com
    Fixes: 84f1638 ("bcachefs: bch_sb_field_downgrade")
    Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Kent Overstreet authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    bf920ed View commit details
    Browse the repository at this point in the history
  196. bcachefs: Fix sb-downgrade validation

    commit 9242a34 upstream.
    
    Superblock downgrade entries are only two byte aligned, but section
    sizes are 8 byte aligned, which means we have to be careful about
    overrun checks; an entry that crosses the end of the section is allowed
    (and ignored) as long as it has zero errors.
    
    Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Kent Overstreet authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    3989465 View commit details
    Browse the repository at this point in the history
  197. bcachefs: Fix bch2_sb_downgrade_update()

    commit ddd118a upstream.
    
    Missing enum conversion
    
    Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Kent Overstreet authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    5da1f2a View commit details
    Browse the repository at this point in the history
  198. bcachefs: Fix setting of downgrade recovery passes/errors

    commit 247c056 upstream.
    
    bch2_check_version_downgrade() was setting c->sb.version, which
    bch2_sb_set_downgrade() expects to be at the previous version; and it
    shouldn't even have been set directly because c->sb.version is updated
    by write_super().
    
    Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Kent Overstreet authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    2c2cd32 View commit details
    Browse the repository at this point in the history
  199. bcachefs: btree_gc can now handle unknown btrees

    commit 088d0de upstream.
    
    Compatibility fix - we no longer have a separate table for which order
    gc walks btrees in, and special case the stripes btree directly.
    
    Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Kent Overstreet authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    6580811 View commit details
    Browse the repository at this point in the history
  200. Revert "net: sfp: enhance quirk for Fibrestore 2.5G copper SFP module"

    This reverts commit b3dcad0 which is
    commit cd4a32e upstream.
    
    Turned out that this should not have been applied to the stable tree.
    
    Link: https://lore.kernel.org/r/20240628172211.17ccefe9@dellmb
    Reported-by: Marek Behún <kabel@kernel.org>
    Cc: Jiri Pirko <jiri@nvidia.com>
    Cc: Jakub Kicinski <kuba@kernel.org>
    Cc: Sasha Levin <sashal@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    5f33d7e View commit details
    Browse the repository at this point in the history
  201. mm/page_alloc: Separate THP PCP into movable and non-movable categories

    commit bf14ed8 upstream.
    
    Since commit 5d0a661 ("mm/page_alloc: use only one PCP list for
    THP-sized allocations") no longer differentiates the migration type of
    pages in THP-sized PCP list, it's possible that non-movable allocation
    requests may get a CMA page from the list, in some cases, it's not
    acceptable.
    
    If a large number of CMA memory are configured in system (for example, the
    CMA memory accounts for 50% of the system memory), starting a virtual
    machine with device passthrough will get stuck.  During starting the
    virtual machine, it will call pin_user_pages_remote(..., FOLL_LONGTERM,
    ...) to pin memory.  Normally if a page is present and in CMA area,
    pin_user_pages_remote() will migrate the page from CMA area to non-CMA
    area because of FOLL_LONGTERM flag.  But if non-movable allocation
    requests return CMA memory, migrate_longterm_unpinnable_pages() will
    migrate a CMA page to another CMA page, which will fail to pass the check
    in check_and_migrate_movable_pages() and cause migration endless.
    
    Call trace:
    pin_user_pages_remote
    --__gup_longterm_locked // endless loops in this function
    ----_get_user_pages_locked
    ----check_and_migrate_movable_pages
    ------migrate_longterm_unpinnable_pages
    --------alloc_migration_target
    
    This problem will also have a negative impact on CMA itself.  For example,
    when CMA is borrowed by THP, and we need to reclaim it through cma_alloc()
    or dma_alloc_coherent(), we must move those pages out to ensure CMA's
    users can retrieve that contigous memory.  Currently, CMA's memory is
    occupied by non-movable pages, meaning we can't relocate them.  As a
    result, cma_alloc() is more likely to fail.
    
    To fix the problem above, we add one PCP list for THP, which will not
    introduce a new cacheline for struct per_cpu_pages.  THP will have 2 PCP
    lists, one PCP list is used by MOVABLE allocation, and the other PCP list
    is used by UNMOVABLE allocation.  MOVABLE allocation contains GPF_MOVABLE,
    and UNMOVABLE allocation contains GFP_UNMOVABLE and GFP_RECLAIMABLE.
    
    Link: https://lkml.kernel.org/r/1718845190-4456-1-git-send-email-yangge1116@126.com
    Fixes: 5d0a661 ("mm/page_alloc: use only one PCP list for THP-sized allocations")
    Signed-off-by: yangge <yangge1116@126.com>
    Cc: Baolin Wang <baolin.wang@linux.alibaba.com>
    Cc: Barry Song <21cnbao@gmail.com>
    Cc: Mel Gorman <mgorman@techsingularity.net>
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    yangge authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    68b460e View commit details
    Browse the repository at this point in the history
  202. pwm: stm32: Fix calculation of prescaler

    commit dab8f9f upstream.
    
    A small prescaler is beneficial, as this improves the resolution of the
    duty_cycle configuration. However if the prescaler is too small, the
    maximal possible period becomes considerably smaller than the requested
    value.
    
    One situation where this goes wrong is the following: With a parent
    clock rate of 208877930 Hz and max_arr = 0xffff = 65535, a request for
    period = 941243 ns currently results in PSC = 1. The value for ARR is
    then calculated to
    
    	ARR = 941243 * 208877930 / (1000000000 * 2) - 1 = 98301
    
    This value is bigger than 65535 however and so doesn't fit into the
    respective register field. In this particular case the PWM was
    configured for a period of 313733.4806027616 ns (with ARR = 98301 &
    0xffff). Even if ARR was configured to its maximal value, only period =
    627495.6861167669 ns would be achievable.
    
    Fix the calculation accordingly and adapt the comment to match the new
    algorithm.
    
    With the calculation fixed the above case results in PSC = 2 and so an
    actual period of 941229.1667195285 ns.
    
    Fixes: 8002fbe ("pwm: stm32: Calculate prescaler with a division instead of a loop")
    Signed-off-by: Uwe Kleine-König <u.kleine-koenig@baylibre.com>
    Link: https://lore.kernel.org/r/b4d96b79917617434a540df45f20cb5de4142f88.1718979150.git.u.kleine-koenig@baylibre.com
    Signed-off-by: Uwe Kleine-König <ukleinek@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Uwe Kleine-König authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    d808900 View commit details
    Browse the repository at this point in the history
  203. pwm: stm32: Fix error message to not describe the previous error path

    commit f01af30 upstream.
    
    "Failed to lock the clock" is an appropriate error message for
    clk_rate_exclusive_get() failing, but not for the clock running too
    fast for the driver's calculations.
    
    Adapt the error message accordingly.
    
    Fixes: d44d635 ("pwm: stm32: Fix for settings using period > UINT32_MAX")
    Signed-off-by: Uwe Kleine-König <u.kleine-koenig@baylibre.com>
    Link: https://lore.kernel.org/r/285182163211203fc823a65b180761f46e828dcb.1718979150.git.u.kleine-koenig@baylibre.com
    Signed-off-by: Uwe Kleine-König <ukleinek@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Uwe Kleine-König authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    11e964d View commit details
    Browse the repository at this point in the history
  204. arm64: dts: rockchip: Fix SD NAND and eMMC init on rk3308-rock-pi-s

    [ Upstream commit 1fb98c8 ]
    
    Radxa ROCK Pi S have optional onboard SD NAND on board revision v1.1,
    v1.2 and v1.3, revision v1.5 changed to use optional onboard eMMC.
    
    The optional SD NAND typically fails to initialize:
    
      mmc_host mmc0: Bus speed (slot 0) = 400000Hz (slot req 400000Hz, actual 400000HZ div = 0)
      mmc0: error -110 whilst initialising SD card
      mmc_host mmc0: Bus speed (slot 0) = 300000Hz (slot req 300000Hz, actual 300000HZ div = 0)
      mmc0: error -110 whilst initialising SD card
      mmc_host mmc0: Bus speed (slot 0) = 200000Hz (slot req 200000Hz, actual 200000HZ div = 0)
      mmc0: error -110 whilst initialising SD card
      mmc_host mmc0: Bus speed (slot 0) = 100000Hz (slot req 100000Hz, actual 100000HZ div = 0)
      mmc0: error -110 whilst initialising SD card
    
    Add pinctrl and cap-sd-highspeed to fix SD NAND initialization. Also
    drop bus-width and mmc-hs200-1_8v to fix eMMC initialization on the new
    v1.5 board revision, only 3v3 signal voltage is used.
    
    Fixes: 2e04c25 ("arm64: dts: rockchip: add ROCK Pi S DTS support")
    Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
    Link: https://lore.kernel.org/r/20240521211029.1236094-4-jonas@kwiboo.se
    Signed-off-by: Heiko Stuebner <heiko@sntech.de>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    Kwiboo authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    86e3d92 View commit details
    Browse the repository at this point in the history
  205. arm64: dts: rockchip: Rename LED related pinctrl nodes on rk3308-rock…

    …-pi-s
    
    [ Upstream commit d2a52f6 ]
    
    The nodename, <name>-gpio, of referenced pinctrl nodes for the two LEDs
    on the ROCK Pi S cause DT schema validation error:
    
      leds: green-led-gpio: {'rockchip,pins': [[0, 6, 0, 90]], 'phandle': [[98]]} is not of type 'array'
            from schema $id: http://devicetree.org/schemas/gpio/gpio-consumer.yaml#
      leds: heartbeat-led-gpio: {'rockchip,pins': [[0, 5, 0, 90]], 'phandle': [[99]]} is not of type 'array'
            from schema $id: http://devicetree.org/schemas/gpio/gpio-consumer.yaml#
    
    Rename the pinctrl nodes and symbols to pass DT schema validation, also
    extend LED nodes with information about color and function.
    
    Fixes: 2e04c25 ("arm64: dts: rockchip: add ROCK Pi S DTS support")
    Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
    Link: https://lore.kernel.org/r/20240521211029.1236094-7-jonas@kwiboo.se
    Signed-off-by: Heiko Stuebner <heiko@sntech.de>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    Kwiboo authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    61bb4a5 View commit details
    Browse the repository at this point in the history
  206. arm64: dts: rockchip: set correct pwm0 pinctrl on rk3588-tiger

    [ Upstream commit a21d2cc ]
    
    PWM0 on rk3588-tiger is connected to the BLT_CTRL pin of the Q7 connector
    meant as the name implies to control a backlight device.
    
    Therefore set the correct M1 pinctrl variant for it. The M0 variant
    cannot ever be used because that pin is routed to a connector pin on the
    Q7 connector that is reserved for CAN use and the pin reachable by the M2
    variant is reserved for the embedded MCU on the SoM.
    
    Fixes: 6173ef2 ("arm64: dts: rockchip: add RK3588-Q7 (Tiger) SoM")
    Signed-off-by: Heiko Stuebner <heiko.stuebner@cherry.de>
    Reviewed-by: Quentin Schulz <quentin.schulz@cherry.de>
    Link: https://lore.kernel.org/r/20240603192254.2441025-1-heiko@sntech.de
    Signed-off-by: Heiko Stuebner <heiko@sntech.de>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    Heiko Stuebner authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    42eb867 View commit details
    Browse the repository at this point in the history
  207. arm64: dts: rockchip: Fix the value of dlg,jack-det-rate mismatch o…

    …n rk3399-gru
    
    [ Upstream commit a500c0b ]
    
    According to Documentation/devicetree/bindings/sound/dialog,da7219.yaml,
    the value of `dlg,jack-det-rate` property should be "32_64" instead of
    "32ms_64ms".
    
    Fixes: dc0ff0f ("ASoC: da7219: Add Jack insertion detection polarity")
    Signed-off-by: Hsin-Te Yuan <yuanhsinte@chromium.org>
    Link: https://lore.kernel.org/r/20240613-jack-rate-v2-2-ebc5f9f37931@chromium.org
    Signed-off-by: Heiko Stuebner <heiko@sntech.de>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    Hsin-Te Yuan authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    bfcad29 View commit details
    Browse the repository at this point in the history
  208. ARM: dts: rockchip: rk3066a: add #sound-dai-cells to hdmi node

    [ Upstream commit cca46f8 ]
    
    '#sound-dai-cells' is required to properly interpret
    the list of DAI specified in the 'sound-dai' property,
    so add them to the 'hdmi' node for 'rk3066a.dtsi'.
    
    Fixes: fadc780 ("ARM: dts: rockchip: add rk3066 hdmi nodes")
    Signed-off-by: Johan Jonker <jbx6244@gmail.com>
    Link: https://lore.kernel.org/r/8b229dcc-94e4-4bbc-9efc-9d5ddd694532@gmail.com
    Signed-off-by: Heiko Stuebner <heiko@sntech.de>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    Johan Jonker authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    e2905fc View commit details
    Browse the repository at this point in the history
  209. Revert "arm64: dts: rockchip: remove redundant cd-gpios from rk3588 s…

    …dmmc nodes"
    
    [ Upstream commit b56aed4 ]
    
    This reverts commit d859ad3.
    
    Inserting and removing microSD card is not detected since above commit.
    Reverting it fixes this problem.
    
    This is probably the same thing as 5 years ago on rk3399
    https://lore.kernel.org/all/0608599d485117a9d99f5fb274fbb1b55f6ba9f7.1547466003.git.robin.murphy@arm.com/
    
    So we'll go back to cd-gpios for now.
    
    this patch is tested on Radxa ROCK 5A and 5B.
    
    Fixes: d859ad3 ("arm64: dts: rockchip: remove redundant cd-gpios from rk3588 sdmmc nodes")
    Signed-off-by: FUKAUMI Naoki <naoki@radxa.com>
    Link: https://lore.kernel.org/r/20240613001757.1350-1-naoki@radxa.com
    Signed-off-by: Heiko Stuebner <heiko@sntech.de>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    RadxaNaoki authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    1472d8b View commit details
    Browse the repository at this point in the history
  210. arm64: dts: rockchip: make poweroff(8) work on Radxa ROCK 5A

    [ Upstream commit d05f7af ]
    
    Designate the RK806 PMIC on the Radxa ROCK 5A as the system power
    controller, so the board shuts down properly on poweroff(8).
    
    Fixes: 75fdcbc ("arm64: dts: rockchip: add PMIC to rock-5a")
    Reviewed-by: Dragan Simic <dsimic@manjaro.org>
    Signed-off-by: FUKAUMI Naoki <naoki@radxa.com>
    Link: https://lore.kernel.org/r/20240612033523.37166-1-naoki@radxa.com
    Signed-off-by: Heiko Stuebner <heiko@sntech.de>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    RadxaNaoki authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    53058b5 View commit details
    Browse the repository at this point in the history
  211. cxl/region: Convert cxl_pmem_region_alloc to scope-based resource man…

    …agement
    
    [ Upstream commit d357dd8 ]
    
    A recent bugfix to cxl_pmem_region_alloc() to fix an
    error-unwind-memleak [1], highlighted a use case for scope-based resource
    management.
    
    Delete the goto for releasing @cxl_region_rwsem, and return error codes
    directly from error condition paths.
    
    The caller, devm_cxl_add_pmem_region(), is no longer given @cxlr_pmem
    directly it must retrieve it from @cxlr->cxlr_pmem. This retrieval from
    @CXLR was already in place for @cxlr->cxl_nvb, and converting
    cxl_pmem_region_alloc() to return an int makes it less awkward to handle
    no_free_ptr().
    
    Cc: Li Zhijian <lizhijian@fujitsu.com>
    Reported-by: Jonathan Cameron <Jonathan.Cameron@Huawei.com>
    Closes: http://lore.kernel.org/r/20240430174540.000039ce@Huawei.com
    Link: http://lore.kernel.org/r/20240428030748.318985-1-lizhijian@fujitsu.com
    Signed-off-by: Dan Williams <dan.j.williams@intel.com>
    Reviewed-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
    Link: https://lore.kernel.org/r/171451430965.1147997.15782562063090960666.stgit@dwillia2-xfh.jf.intel.com
    Signed-off-by: Dave Jiang <dave.jiang@intel.com>
    Stable-dep-of: 84ec985 ("cxl/mem: Fix no cxl_nvd during pmem region auto-assembling")
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    djbw authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    dcd9c79 View commit details
    Browse the repository at this point in the history
  212. cxl/mem: Fix no cxl_nvd during pmem region auto-assembling

    [ Upstream commit 84ec985 ]
    
    When CXL subsystem is auto-assembling a pmem region during cxl
    endpoint port probing, always hit below calltrace.
    
     BUG: kernel NULL pointer dereference, address: 0000000000000078
     #PF: supervisor read access in kernel mode
     #PF: error_code(0x0000) - not-present page
     RIP: 0010:cxl_pmem_region_probe+0x22e/0x360 [cxl_pmem]
     Call Trace:
      <TASK>
      ? __die+0x24/0x70
      ? page_fault_oops+0x82/0x160
      ? do_user_addr_fault+0x65/0x6b0
      ? exc_page_fault+0x7d/0x170
      ? asm_exc_page_fault+0x26/0x30
      ? cxl_pmem_region_probe+0x22e/0x360 [cxl_pmem]
      ? cxl_pmem_region_probe+0x1ac/0x360 [cxl_pmem]
      cxl_bus_probe+0x1b/0x60 [cxl_core]
      really_probe+0x173/0x410
      ? __pfx___device_attach_driver+0x10/0x10
      __driver_probe_device+0x80/0x170
      driver_probe_device+0x1e/0x90
      __device_attach_driver+0x90/0x120
      bus_for_each_drv+0x84/0xe0
      __device_attach+0xbc/0x1f0
      bus_probe_device+0x90/0xa0
      device_add+0x51c/0x710
      devm_cxl_add_pmem_region+0x1b5/0x380 [cxl_core]
      cxl_bus_probe+0x1b/0x60 [cxl_core]
    
    The cxl_nvd of the memdev needs to be available during the pmem region
    probe. Currently the cxl_nvd is registered after the endpoint port probe.
    The endpoint probe, in the case of autoassembly of regions, can cause a
    pmem region probe requiring the not yet available cxl_nvd. Adjust the
    sequence so this dependency is met.
    
    This requires adding a port parameter to cxl_find_nvdimm_bridge() that
    can be used to query the ancestor root port. The endpoint port is not
    yet available, but will share a common ancestor with its parent, so
    start the query from there instead.
    
    Fixes: f17b558 ("cxl/pmem: Refactor nvdimm device registration, delete the workqueue")
    Co-developed-by: Dan Williams <dan.j.williams@intel.com>
    Signed-off-by: Dan Williams <dan.j.williams@intel.com>
    Signed-off-by: Li Ming <ming4.li@intel.com>
    Tested-by: Alison Schofield <alison.schofield@intel.com>
    Reviewed-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
    Reviewed-by: Alison Schofield <alison.schofield@intel.com>
    Link: https://patch.msgid.link/20240612064423.2567625-1-ming4.li@intel.com
    Signed-off-by: Dave Jiang <dave.jiang@intel.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ming4li authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    1d064e4 View commit details
    Browse the repository at this point in the history
  213. arm64: dts: rockchip: fix PMIC interrupt pin on ROCK Pi E

    [ Upstream commit 02afd3d ]
    
    use GPIO0_A2 as interrupt pin for PMIC. GPIO2_A6 was used for
    pre-production board.
    
    Fixes: b918e81 ("arm64: dts: rockchip: rk3328: Add Radxa ROCK Pi E")
    Signed-off-by: FUKAUMI Naoki <naoki@radxa.com>
    Link: https://lore.kernel.org/r/20240619050047.1217-1-naoki@radxa.com
    Signed-off-by: Heiko Stuebner <heiko@sntech.de>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    RadxaNaoki authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    90374fb View commit details
    Browse the repository at this point in the history
  214. reset: gpio: Fix missing gpiolib dependency for GPIO reset controller

    [ Upstream commit 01f6a84 ]
    
    The GPIO reset controller uses gpiolib but there is no Kconfig
    dependency reflecting this fact, add one.
    
    With the addition of the controller to the arm64 defconfig this is
    causing build breaks for arm64 virtconfig in -next:
    
    aarch64-linux-gnu-ld: drivers/reset/core.o: in function `__reset_add_reset_gpio_lookup':
    /build/stage/linux/drivers/reset/core.c:861:(.text+0xccc): undefined reference to `gpio_device_find_by_fwnode'
    
    Fixes: cee544a ("reset: gpio: Add GPIO-based reset controller")
    Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Link: https://lore.kernel.org/r/20240325-reset-gpiolib-deps-v2-1-3ed2517f5f53@kernel.org
    Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    broonie authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    0590894 View commit details
    Browse the repository at this point in the history
  215. arm64: dts: rockchip: Fix the i2c address of es8316 on Cool Pi 4B

    [ Upstream commit 5d101df ]
    
    According to the hardware design, the i2c address of audio codec es8316
    on Cool Pi 4B is 0x10.
    
    This fix the read/write error like bellow:
    es8316 7-0011: ASoC: error at soc_component_write_no_lock on es8316.7-0011 for register: [0x0000000c] -6
    es8316 7-0011: ASoC: error at soc_component_write_no_lock on es8316.7-0011 for register: [0x00000003] -6
    es8316 7-0011: ASoC: error at soc_component_read_no_lock on es8316.7-0011 for register: [0x00000016] -6
    es8316 7-0011: ASoC: error at soc_component_read_no_lock on es8316.7-0011 for register: [0x00000016] -6
    
    Fixes: 3f5d336 ("arm64: dts: rockchip: Add support for rk3588s based board Cool Pi 4B")
    Signed-off-by: Andy Yan <andyshrk@163.com>
    Link: https://lore.kernel.org/r/20240623115526.2154645-1-andyshrk@163.com
    Signed-off-by: Heiko Stuebner <heiko@sntech.de>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    andyshrk authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    a1af77a View commit details
    Browse the repository at this point in the history
  216. arm64: dts: rockchip: Add sound-dai-cells for RK3368

    [ Upstream commit 8d7ec44 ]
    
    Add the missing #sound-dai-cells for RK3368's I2S and S/PDIF controllers.
    
    Fixes: f7d89df ("arm64: dts: rockchip: add i2s nodes support for RK3368 SoCs")
    Fixes: 0328d68 ("arm64: dts: rockchip: add rk3368 spdif node")
    Signed-off-by: Alex Bee <knaerzche@gmail.com>
    Link: https://lore.kernel.org/r/20240623090116.670607-4-knaerzche@gmail.com
    Signed-off-by: Heiko Stuebner <heiko@sntech.de>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    knaerzche authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    402c7f7 View commit details
    Browse the repository at this point in the history
  217. cxl/region: Move cxl_dpa_to_region() work to the region driver

    [ Upstream commit b98d042 ]
    
    This helper belongs in the region driver as it is only useful
    with CONFIG_CXL_REGION. Add a stub in core.h for when the region
    driver is not built.
    
    Signed-off-by: Alison Schofield <alison.schofield@intel.com>
    Reviewed-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
    Reviewed-by: Ira Weiny <ira.weiny@intel.com>
    Link: https://lore.kernel.org/r/05e30f788d62b3dd398aff2d2ea50a6aaa7c3313.1714496730.git.alison.schofield@intel.com
    Signed-off-by: Dave Jiang <dave.jiang@intel.com>
    Stable-dep-of: 285f2a0 ("cxl/region: Avoid null pointer dereference in region lookup")
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    AlisonSchofield authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    2f0ea2e View commit details
    Browse the repository at this point in the history
  218. cxl/region: Avoid null pointer dereference in region lookup

    [ Upstream commit 285f2a0 ]
    
    cxl_dpa_to_region() looks up a region based on a memdev and DPA.
    It wrongly assumes an endpoint found mapping the DPA is also of
    a fully assembled region. When not true it leads to a null pointer
    dereference looking up the region name.
    
    This appears during testing of region lookup after a failure to
    assemble a BIOS defined region or if the lookup raced with the
    assembly of the BIOS defined region.
    
    Failure to clean up BIOS defined regions that fail assembly is an
    issue in itself and a fix to that problem will alleviate some of
    the impact. It will not alleviate the race condition so let's harden
    this path.
    
    The behavior change is that the kernel oops due to a null pointer
    dereference is replaced with a dev_dbg() message noting that an
    endpoint was mapped.
    
    Additional comments are added so that future users of this function
    can more clearly understand what it provides.
    
    Fixes: 0a105ab ("cxl/memdev: Warn of poison inject or clear to a mapped region")
    Signed-off-by: Alison Schofield <alison.schofield@intel.com>
    Reviewed-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
    Link: https://patch.msgid.link/20240604003609.202682-1-alison.schofield@intel.com
    Signed-off-by: Dave Jiang <dave.jiang@intel.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    AlisonSchofield authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    b8a40a6 View commit details
    Browse the repository at this point in the history
  219. cxl/region: check interleave capability

    [ Upstream commit 84328c5 ]
    
    Since interleave capability is not verified, if the interleave
    capability of a target does not match the region need, committing decoder
    should have failed at the device end.
    
    In order to checkout this error as quickly as possible, driver needs
    to check the interleave capability of target during attaching it to
    region.
    
    Per CXL specification r3.1(8.2.4.20.1 CXL HDM Decoder Capability Register),
    bits 11 and 12 indicate the capability to establish interleaving in 3, 6,
    12 and 16 ways. If these bits are not set, the target cannot be attached to
    a region utilizing such interleave ways.
    
    Additionally, bits 8 and 9 represent the capability of the bits used for
    interleaving in the address, Linux tracks this in the cxl_port
    interleave_mask.
    
    Per CXL specification r3.1(8.2.4.20.13 Decoder Protection):
      eIW means encoded Interleave Ways.
      eIG means encoded Interleave Granularity.
    
      in HPA:
      if eIW is 0 or 8 (interleave ways: 1, 3), all the bits of HPA are used,
      the interleave bits are none, the following check is ignored.
    
      if eIW is less than 8 (interleave ways: 2, 4, 8, 16), the interleave bits
      start at bit position eIG + 8 and end at eIG + eIW + 8 - 1.
    
      if eIW is greater than 8 (interleave ways: 6, 12), the interleave bits
      start at bit position eIG + 8 and end at eIG + eIW - 1.
    
      if the interleave mask is insufficient to cover the required interleave
      bits, the target cannot be attached to the region.
    
    Fixes: 384e624 ("cxl/region: Attach endpoint decoders")
    Signed-off-by: Yao Xingtao <yaoxt.fnst@fujitsu.com>
    Reviewed-by: Dan Williams <dan.j.williams@intel.com>
    Reviewed-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
    Link: https://patch.msgid.link/20240614084755.59503-2-yaoxt.fnst@fujitsu.com
    Signed-off-by: Dave Jiang <dave.jiang@intel.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    sailer1205 authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    d629560 View commit details
    Browse the repository at this point in the history
  220. netfs: Fix netfs_page_mkwrite() to check folio->mapping is valid

    [ Upstream commit a81c98b ]
    
    Fix netfs_page_mkwrite() to check that folio->mapping is valid once it has
    taken the folio lock (as filemap_page_mkwrite() does).  Without this,
    generic/247 occasionally oopses with something like the following:
    
        BUG: kernel NULL pointer dereference, address: 0000000000000000
        #PF: supervisor read access in kernel mode
        #PF: error_code(0x0000) - not-present page
    
        RIP: 0010:trace_event_raw_event_netfs_folio+0x61/0xc0
        ...
        Call Trace:
         <TASK>
         ? __die_body+0x1a/0x60
         ? page_fault_oops+0x6e/0xa0
         ? exc_page_fault+0xc2/0xe0
         ? asm_exc_page_fault+0x22/0x30
         ? trace_event_raw_event_netfs_folio+0x61/0xc0
         trace_netfs_folio+0x39/0x40
         netfs_page_mkwrite+0x14c/0x1d0
         do_page_mkwrite+0x50/0x90
         do_pte_missing+0x184/0x200
         __handle_mm_fault+0x42d/0x500
         handle_mm_fault+0x121/0x1f0
         do_user_addr_fault+0x23e/0x3c0
         exc_page_fault+0xc2/0xe0
         asm_exc_page_fault+0x22/0x30
    
    This is due to the invalidate_inode_pages2_range() issued at the end of the
    DIO write interfering with the mmap'd writes.
    
    Fixes: 102a7e2 ("netfs: Allow buffered shared-writeable mmap through netfs_page_mkwrite()")
    Signed-off-by: David Howells <dhowells@redhat.com>
    Link: https://lore.kernel.org/r/780211.1719318546@warthog.procyon.org.uk
    Reviewed-by: Jeff Layton <jlayton@kernel.org>
    cc: Matthew Wilcox <willy@infradead.org>
    cc: Jeff Layton <jlayton@kernel.org>
    cc: netfs@lists.linux.dev
    cc: v9fs@lists.linux.dev
    cc: linux-afs@lists.infradead.org
    cc: linux-cifs@vger.kernel.org
    cc: linux-mm@kvack.org
    cc: linux-fsdevel@vger.kernel.org
    Signed-off-by: Christian Brauner <brauner@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    dhowells authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    3473eb8 View commit details
    Browse the repository at this point in the history
  221. netfs: Fix netfs_page_mkwrite() to flush conflicting data, not wait

    [ Upstream commit 9d66154 ]
    
    Fix netfs_page_mkwrite() to use filemap_fdatawrite_range(), not
    filemap_fdatawait_range() to flush conflicting data.
    
    Fixes: 102a7e2 ("netfs: Allow buffered shared-writeable mmap through netfs_page_mkwrite()")
    Signed-off-by: David Howells <dhowells@redhat.com>
    Link: https://lore.kernel.org/r/614300.1719228243@warthog.procyon.org.uk
    cc: Matthew Wilcox <willy@infradead.org>
    cc: Jeff Layton <jlayton@kernel.org>
    cc: netfs@lists.linux.dev
    cc: v9fs@lists.linux.dev
    cc: linux-afs@lists.infradead.org
    cc: linux-cifs@vger.kernel.org
    cc: linux-mm@kvack.org
    cc: linux-fsdevel@vger.kernel.org
    Signed-off-by: Christian Brauner <brauner@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    dhowells authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    192d463 View commit details
    Browse the repository at this point in the history
  222. serial: imx: only set receiver level if it is zero

    commit 9706fc8 upstream.
    
    With commit a81dbd0 ("serial: imx: set receiver level before
    starting uart") we set the receiver level to its default value. This
    caused a regression when using SDMA, where the receiver level is 9
    instead of 8 (default). This change will first check if the receiver
    level is zero and only then set it to the default. This still avoids the
    interrupt storm when the receiver level is zero.
    
    Fixes: a81dbd0 ("serial: imx: set receiver level before starting uart")
    Cc: stable <stable@kernel.org>
    Signed-off-by: Stefan Eichenberger <stefan.eichenberger@toradex.com>
    Link: https://lore.kernel.org/r/20240703112543.148304-1-eichest@gmail.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    eichenberger authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    f05cdbe View commit details
    Browse the repository at this point in the history
  223. serial: 8250_omap: Fix Errata i2310 with RX FIFO level check

    commit c128a1b upstream.
    
    Errata i2310[0] says, Erroneous timeout can be triggered,
    if this Erroneous interrupt is not cleared then it may leads
    to storm of interrupts.
    
    Commit 9d141c1 ("serial: 8250_omap: Implementation of Errata i2310")
    which added the workaround but missed ensuring RX FIFO is really empty
    before applying the errata workaround as recommended in the errata text.
    Fix this by adding back check for UART_OMAP_RX_LVL to be 0 for
    workaround to take effect.
    
    [0] https://www.ti.com/lit/pdf/sprz536 page 23
    
    Fixes: 9d141c1 ("serial: 8250_omap: Implementation of Errata i2310")
    Cc: stable@vger.kernel.org
    Reported-by: Vignesh Raghavendra <vigneshr@ti.com>
    Closes: https://lore.kernel.org/all/e96d0c55-0b12-4cbf-9d23-48963543de49@ti.com/
    Signed-off-by: Udit Kumar <u-kumar1@ti.com>
    Link: https://lore.kernel.org/r/20240625160725.2102194-1-u-kumar1@ti.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    uditkumarti authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    8fb36f8 View commit details
    Browse the repository at this point in the history
  224. tracing/net_sched: NULL pointer dereference in perf_trace_qdisc_reset()

    commit bab4923 upstream.
    
    In the TRACE_EVENT(qdisc_reset) NULL dereference occurred from
    
     qdisc->dev_queue->dev <NULL> ->name
    
    This situation simulated from bunch of veths and Bluetooth disconnection
    and reconnection.
    
    During qdisc initialization, qdisc was being set to noop_queue.
    In veth_init_queue, the initial tx_num was reduced back to one,
    causing the qdisc reset to be called with noop, which led to the kernel
    panic.
    
    I've attached the GitHub gist link that C converted syz-execprogram
    source code and 3 log of reproduced vmcore-dmesg.
    
     https://gist.github.com/yskelg/cc64562873ce249cdd0d5a358b77d740
    
    Yeoreum and I use two fuzzing tool simultaneously.
    
    One process with syz-executor : https://github.com/google/syzkaller
    
     $ ./syz-execprog -executor=./syz-executor -repeat=1 -sandbox=setuid \
        -enable=none -collide=false log1
    
    The other process with perf fuzzer:
     https://github.com/deater/perf_event_tests/tree/master/fuzzer
    
     $ perf_event_tests/fuzzer/perf_fuzzer
    
    I think this will happen on the kernel version.
    
     Linux kernel version +v6.7.10, +v6.8, +v6.9 and it could happen in v6.10.
    
    This occurred from 51270d5. I think this patch is absolutely
    necessary. Previously, It was showing not intended string value of name.
    
    I've reproduced 3 time from my fedora 40 Debug Kernel with any other module
    or patched.
    
     version: 6.10.0-0.rc2.20240608gitdc772f8237f9.29.fc41.aarch64+debug
    
    [ 5287.164555] veth0_vlan: left promiscuous mode
    [ 5287.164929] veth1_macvtap: left promiscuous mode
    [ 5287.164950] veth0_macvtap: left promiscuous mode
    [ 5287.164983] veth1_vlan: left promiscuous mode
    [ 5287.165008] veth0_vlan: left promiscuous mode
    [ 5287.165450] veth1_macvtap: left promiscuous mode
    [ 5287.165472] veth0_macvtap: left promiscuous mode
    [ 5287.165502] veth1_vlan: left promiscuous mode
    …
    [ 5297.598240] bridge0: port 2(bridge_slave_1) entered blocking state
    [ 5297.598262] bridge0: port 2(bridge_slave_1) entered forwarding state
    [ 5297.598296] bridge0: port 1(bridge_slave_0) entered blocking state
    [ 5297.598313] bridge0: port 1(bridge_slave_0) entered forwarding state
    [ 5297.616090] 8021q: adding VLAN 0 to HW filter on device bond0
    [ 5297.620405] bridge0: port 1(bridge_slave_0) entered disabled state
    [ 5297.620730] bridge0: port 2(bridge_slave_1) entered disabled state
    [ 5297.627247] 8021q: adding VLAN 0 to HW filter on device team0
    [ 5297.629636] bridge0: port 1(bridge_slave_0) entered blocking state
    …
    [ 5298.002798] bridge_slave_0: left promiscuous mode
    [ 5298.002869] bridge0: port 1(bridge_slave_0) entered disabled state
    [ 5298.309444] bond0 (unregistering): (slave bond_slave_0): Releasing backup interface
    [ 5298.315206] bond0 (unregistering): (slave bond_slave_1): Releasing backup interface
    [ 5298.320207] bond0 (unregistering): Released all slaves
    [ 5298.354296] hsr_slave_0: left promiscuous mode
    [ 5298.360750] hsr_slave_1: left promiscuous mode
    [ 5298.374889] veth1_macvtap: left promiscuous mode
    [ 5298.374931] veth0_macvtap: left promiscuous mode
    [ 5298.374988] veth1_vlan: left promiscuous mode
    [ 5298.375024] veth0_vlan: left promiscuous mode
    [ 5299.109741] team0 (unregistering): Port device team_slave_1 removed
    [ 5299.185870] team0 (unregistering): Port device team_slave_0 removed
    …
    [ 5300.155443] Bluetooth: hci3: unexpected cc 0x0c03 length: 249 > 1
    [ 5300.155724] Bluetooth: hci3: unexpected cc 0x1003 length: 249 > 9
    [ 5300.155988] Bluetooth: hci3: unexpected cc 0x1001 length: 249 > 9
    ….
    [ 5301.075531] team0: Port device team_slave_1 added
    [ 5301.085515] bridge0: port 1(bridge_slave_0) entered blocking state
    [ 5301.085531] bridge0: port 1(bridge_slave_0) entered disabled state
    [ 5301.085588] bridge_slave_0: entered allmulticast mode
    [ 5301.085800] bridge_slave_0: entered promiscuous mode
    [ 5301.095617] bridge0: port 1(bridge_slave_0) entered blocking state
    [ 5301.095633] bridge0: port 1(bridge_slave_0) entered disabled state
    …
    [ 5301.149734] bond0: (slave bond_slave_0): Enslaving as an active interface with an up link
    [ 5301.173234] bond0: (slave bond_slave_0): Enslaving as an active interface with an up link
    [ 5301.180517] bond0: (slave bond_slave_1): Enslaving as an active interface with an up link
    [ 5301.193481] hsr_slave_0: entered promiscuous mode
    [ 5301.204425] hsr_slave_1: entered promiscuous mode
    [ 5301.210172] debugfs: Directory 'hsr0' with parent 'hsr' already present!
    [ 5301.210185] Cannot create hsr debugfs directory
    [ 5301.224061] bond0: (slave bond_slave_1): Enslaving as an active interface with an up link
    [ 5301.246901] bond0: (slave bond_slave_0): Enslaving as an active interface with an up link
    [ 5301.255934] team0: Port device team_slave_0 added
    [ 5301.256480] team0: Port device team_slave_1 added
    [ 5301.256948] team0: Port device team_slave_0 added
    …
    [ 5301.435928] hsr_slave_0: entered promiscuous mode
    [ 5301.446029] hsr_slave_1: entered promiscuous mode
    [ 5301.455872] debugfs: Directory 'hsr0' with parent 'hsr' already present!
    [ 5301.455884] Cannot create hsr debugfs directory
    [ 5301.502664] hsr_slave_0: entered promiscuous mode
    [ 5301.513675] hsr_slave_1: entered promiscuous mode
    [ 5301.526155] debugfs: Directory 'hsr0' with parent 'hsr' already present!
    [ 5301.526164] Cannot create hsr debugfs directory
    [ 5301.563662] hsr_slave_0: entered promiscuous mode
    [ 5301.576129] hsr_slave_1: entered promiscuous mode
    [ 5301.580259] debugfs: Directory 'hsr0' with parent 'hsr' already present!
    [ 5301.580270] Cannot create hsr debugfs directory
    [ 5301.590269] 8021q: adding VLAN 0 to HW filter on device bond0
    
    [ 5301.595872] KASAN: null-ptr-deref in range [0x0000000000000130-0x0000000000000137]
    [ 5301.595877] Mem abort info:
    [ 5301.595881]   ESR = 0x0000000096000006
    [ 5301.595885]   EC = 0x25: DABT (current EL), IL = 32 bits
    [ 5301.595889]   SET = 0, FnV = 0
    [ 5301.595893]   EA = 0, S1PTW = 0
    [ 5301.595896]   FSC = 0x06: level 2 translation fault
    [ 5301.595900] Data abort info:
    [ 5301.595903]   ISV = 0, ISS = 0x00000006, ISS2 = 0x00000000
    [ 5301.595907]   CM = 0, WnR = 0, TnD = 0, TagAccess = 0
    [ 5301.595911]   GCS = 0, Overlay = 0, DirtyBit = 0, Xs = 0
    [ 5301.595915] [dfff800000000026] address between user and kernel address ranges
    [ 5301.595971] Internal error: Oops: 0000000096000006 [#1] SMP
    …
    [ 5301.596076] CPU: 2 PID: 102769 Comm:
    syz-executor.3 Kdump: loaded Tainted:
     G        W         -------  ---  6.10.0-0.rc2.20240608gitdc772f8237f9.29.fc41.aarch64+debug #1
    [ 5301.596080] Hardware name: VMware, Inc. VMware20,1/VBSA,
     BIOS VMW201.00V.21805430.BA64.2305221830 05/22/2023
    [ 5301.596082] pstate: 01400005 (nzcv daif +PAN -UAO -TCO +DIT -SSBS BTYPE=--)
    [ 5301.596085] pc : strnlen+0x40/0x88
    [ 5301.596114] lr : trace_event_get_offsets_qdisc_reset+0x6c/0x2b0
    [ 5301.596124] sp : ffff8000beef6b40
    [ 5301.596126] x29: ffff8000beef6b40 x28: dfff800000000000 x27: 0000000000000001
    [ 5301.596131] x26: 6de1800082c62bd0 x25: 1ffff000110aa9e0 x24: ffff800088554f00
    [ 5301.596136] x23: ffff800088554ec0 x22: 0000000000000130 x21: 0000000000000140
    [ 5301.596140] x20: dfff800000000000 x19: ffff8000beef6c60 x18: ffff7000115106d8
    [ 5301.596143] x17: ffff800121bad000 x16: ffff800080020000 x15: 0000000000000006
    [ 5301.596147] x14: 0000000000000002 x13: ffff0001f3ed8d14 x12: ffff700017ddeda5
    [ 5301.596151] x11: 1ffff00017ddeda4 x10: ffff700017ddeda4 x9 : ffff800082cc5eec
    [ 5301.596155] x8 : 0000000000000004 x7 : 00000000f1f1f1f1 x6 : 00000000f2f2f200
    [ 5301.596158] x5 : 00000000f3f3f3f3 x4 : ffff700017dded80 x3 : 00000000f204f1f1
    [ 5301.596162] x2 : 0000000000000026 x1 : 0000000000000000 x0 : 0000000000000130
    [ 5301.596166] Call trace:
    [ 5301.596175]  strnlen+0x40/0x88
    [ 5301.596179]  trace_event_get_offsets_qdisc_reset+0x6c/0x2b0
    [ 5301.596182]  perf_trace_qdisc_reset+0xb0/0x538
    [ 5301.596184]  __traceiter_qdisc_reset+0x68/0xc0
    [ 5301.596188]  qdisc_reset+0x43c/0x5e8
    [ 5301.596190]  netif_set_real_num_tx_queues+0x288/0x770
    [ 5301.596194]  veth_init_queues+0xfc/0x130 [veth]
    [ 5301.596198]  veth_newlink+0x45c/0x850 [veth]
    [ 5301.596202]  rtnl_newlink_create+0x2c8/0x798
    [ 5301.596205]  __rtnl_newlink+0x92c/0xb60
    [ 5301.596208]  rtnl_newlink+0xd8/0x130
    [ 5301.596211]  rtnetlink_rcv_msg+0x2e0/0x890
    [ 5301.596214]  netlink_rcv_skb+0x1c4/0x380
    [ 5301.596225]  rtnetlink_rcv+0x20/0x38
    [ 5301.596227]  netlink_unicast+0x3c8/0x640
    [ 5301.596231]  netlink_sendmsg+0x658/0xa60
    [ 5301.596234]  __sock_sendmsg+0xd0/0x180
    [ 5301.596243]  __sys_sendto+0x1c0/0x280
    [ 5301.596246]  __arm64_sys_sendto+0xc8/0x150
    [ 5301.596249]  invoke_syscall+0xdc/0x268
    [ 5301.596256]  el0_svc_common.constprop.0+0x16c/0x240
    [ 5301.596259]  do_el0_svc+0x48/0x68
    [ 5301.596261]  el0_svc+0x50/0x188
    [ 5301.596265]  el0t_64_sync_handler+0x120/0x130
    [ 5301.596268]  el0t_64_sync+0x194/0x198
    [ 5301.596272] Code: eb15001f 54000120 d343fc02 12000801 (38f46842)
    [ 5301.596285] SMP: stopping secondary CPUs
    [ 5301.597053] Starting crashdump kernel...
    [ 5301.597057] Bye!
    
    After applying our patch, I didn't find any kernel panic errors.
    
    We've found a simple reproducer
    
     # echo 1 > /sys/kernel/debug/tracing/events/qdisc/qdisc_reset/enable
    
     # ip link add veth0 type veth peer name veth1
    
     Error: Unknown device type.
    
    However, without our patch applied, I tested upstream 6.10.0-rc3 kernel
    using the qdisc_reset event and the ip command on my qemu virtual machine.
    
    This 2 commands makes always kernel panic.
    
    Linux version: 6.10.0-rc3
    
    [    0.000000] Linux version 6.10.0-rc3-00164-g44ef20baed8e-dirty
    (paran@fedora) (gcc (GCC) 14.1.1 20240522 (Red Hat 14.1.1-4), GNU ld
    version 2.41-34.fc40) #20 SMP PREEMPT Sat Jun 15 16:51:25 KST 2024
    
    Kernel panic message:
    
    [  615.236484] Internal error: Oops: 0000000096000005 [#1] PREEMPT SMP
    [  615.237250] Dumping ftrace buffer:
    [  615.237679]    (ftrace buffer empty)
    [  615.238097] Modules linked in: veth crct10dif_ce virtio_gpu
    virtio_dma_buf drm_shmem_helper drm_kms_helper zynqmp_fpga xilinx_can
    xilinx_spi xilinx_selectmap xilinx_core xilinx_pr_decoupler versal_fpga
    uvcvideo uvc videobuf2_vmalloc videobuf2_memops videobuf2_v4l2 videodev
    videobuf2_common mc usbnet deflate zstd ubifs ubi rcar_canfd rcar_can
    omap_mailbox ntb_msi_test ntb_hw_epf lattice_sysconfig_spi
    lattice_sysconfig ice40_spi gpio_xilinx dwmac_altr_socfpga mdio_regmap
    stmmac_platform stmmac pcs_xpcs dfl_fme_region dfl_fme_mgr dfl_fme_br
    dfl_afu dfl fpga_region fpga_bridge can can_dev br_netfilter bridge stp
    llc atl1c ath11k_pci mhi ath11k_ahb ath11k qmi_helpers ath10k_sdio
    ath10k_pci ath10k_core ath mac80211 libarc4 cfg80211 drm fuse backlight ipv6
    Jun 22 02:36:5[3   6k152.62-4sm98k4-0k]v  kCePUr:n e1l :P IUDn:a b4le6
    8t oC ohmma: nidpl eN oketr nteali nptaedg i6n.g1 0re.0q-urecs3t- 0at0
    1v6i4r-tgu4a4le fa2d0dbraeeds0se-dir tyd f#f2f08
      615.252376] Hardware name: linux,dummy-virt (DT)
    [  615.253220] pstate: 80400005 (Nzcv daif +PAN -UAO -TCO -DIT -SSBS
    BTYPE=--)
    [  615.254433] pc : strnlen+0x6c/0xe0
    [  615.255096] lr : trace_event_get_offsets_qdisc_reset+0x94/0x3d0
    [  615.256088] sp : ffff800080b269a0
    [  615.256615] x29: ffff800080b269a0 x28: ffffc070f3f98500 x27:
    0000000000000001
    [  615.257831] x26: 0000000000000010 x25: ffffc070f3f98540 x24:
    ffffc070f619cf60
    [  615.259020] x23: 0000000000000128 x22: 0000000000000138 x21:
    dfff800000000000
    [  615.260241] x20: ffffc070f631ad00 x19: 0000000000000128 x18:
    ffffc070f448b800
    [  615.261454] x17: 0000000000000000 x16: 0000000000000001 x15:
    ffffc070f4ba2a90
    [  615.262635] x14: ffff700010164d73 x13: 1ffff80e1e8d5eb3 x12:
    1ffff00010164d72
    [  615.263877] x11: ffff700010164d72 x10: dfff800000000000 x9 :
    ffffc070e85d6184
    [  615.265047] x8 : ffffc070e4402070 x7 : 000000000000f1f1 x6 :
    000000001504a6d3
    [  615.266336] x5 : ffff28ca21122140 x4 : ffffc070f5043ea8 x3 :
    0000000000000000
    [  615.267528] x2 : 0000000000000025 x1 : 0000000000000000 x0 :
    0000000000000000
    [  615.268747] Call trace:
    [  615.269180]  strnlen+0x6c/0xe0
    [  615.269767]  trace_event_get_offsets_qdisc_reset+0x94/0x3d0
    [  615.270716]  trace_event_raw_event_qdisc_reset+0xe8/0x4e8
    [  615.271667]  __traceiter_qdisc_reset+0xa0/0x140
    [  615.272499]  qdisc_reset+0x554/0x848
    [  615.273134]  netif_set_real_num_tx_queues+0x360/0x9a8
    [  615.274050]  veth_init_queues+0x110/0x220 [veth]
    [  615.275110]  veth_newlink+0x538/0xa50 [veth]
    [  615.276172]  __rtnl_newlink+0x11e4/0x1bc8
    [  615.276944]  rtnl_newlink+0xac/0x120
    [  615.277657]  rtnetlink_rcv_msg+0x4e4/0x1370
    [  615.278409]  netlink_rcv_skb+0x25c/0x4f0
    [  615.279122]  rtnetlink_rcv+0x48/0x70
    [  615.279769]  netlink_unicast+0x5a8/0x7b8
    [  615.280462]  netlink_sendmsg+0xa70/0x1190
    
    Yeoreum and I don't know if the patch we wrote will fix the underlying
    cause, but we think that priority is to prevent kernel panic happening.
    So, we're sending this patch.
    
    Fixes: 51270d5 ("tracing/net_sched: Fix tracepoints that save qdisc_dev() as a string")
    Link: https://lore.kernel.org/lkml/20240229143432.273b4871@gandalf.local.home/t/
    Cc: netdev@vger.kernel.org
    Tested-by: Yunseong Kim <yskelg@gmail.com>
    Signed-off-by: Yunseong Kim <yskelg@gmail.com>
    Signed-off-by: Yeoreum Yun <yeoreum.yun@arm.com>
    Link: https://lore.kernel.org/r/20240624173320.24945-4-yskelg@gmail.com
    Signed-off-by: Paolo Abeni <pabeni@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    yskelg authored and gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    24bb80a View commit details
    Browse the repository at this point in the history
  225. Linux 6.9.8

    Link: https://lore.kernel.org/r/20240702170243.963426416@linuxfoundation.org
    Tested-by: Ronald Warsow <rwarsow@gmx.de>
    Tested-by: SeongJae Park <sj@kernel.org>
    Tested-by: Mark Brown <broonie@kernel.org>
    Tested-by: Christian Heusel <christian@heusel.eu>
    Tested-by: Shuah Khan <skhan@linuxfoundation.org>
    Tested-by: Bagas Sanjaya <bagasdotme@gmail.com>
    Tested-by: Jon Hunter <jonathanh@nvidia.com>
    Tested-by: Salvatore Bonaccorso <carnil@debian.org>
    Tested-by: Justin M. Forbes <jforbes@fedoraproject.org>
    Tested-by: Pavel Machek (CIP) <pavel@denx.de>
    Tested-by: Peter Schneider <pschneider1968@googlemail.com>
    Tested-by: Kelsey Steele <kelseysteele@linux.microsoft.com>
    Tested-by: Ron Economos <re@w6rz.net>
    Tested-by: Linux Kernel Functional Testing <lkft@linaro.org>
    Tested-by: Florian Fainelli <florian.fainelli@broadcom.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    gregkh committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    2106717 View commit details
    Browse the repository at this point in the history

Commits on Jul 6, 2024

  1. chore: import Ubuntu patches

    mmstick committed Jul 6, 2024
    Configuration menu
    Copy the full SHA
    a2e6280 View commit details
    Browse the repository at this point in the history
  2. chore: System76 Linux scripts

    jackpot51 authored and mmstick committed Jul 6, 2024
    Configuration menu
    Copy the full SHA
    db78eb6 View commit details
    Browse the repository at this point in the history
  3. chore: Pop packaging

    mmstick committed Jul 6, 2024
    Configuration menu
    Copy the full SHA
    f7b4cdb View commit details
    Browse the repository at this point in the history
  4. fix: hotfix remove nocf_check attribute for ibt

    Signed-off-by: Michael Aaron Murphy <michael@mmurphy.dev>
    jglathe authored and mmstick committed Jul 6, 2024
    Configuration menu
    Copy the full SHA
    e664f3b View commit details
    Browse the repository at this point in the history
  5. ALSA: hda/realtek - Reapply pin fixup for oryp5

    The pin fixup is required to detect headset microphones on the oryp5.
    
    Fixes: 80690a2 ("ALSA: hda/realtek - Add quirk for Tuxedo XC 1509")
    Signed-off-by: Tim Crawford <tcrawford@system76.com>
    crawfxrd authored and mmstick committed Jul 6, 2024
    Configuration menu
    Copy the full SHA
    60db3b7 View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    e805eb8 View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    eb0fd9e View commit details
    Browse the repository at this point in the history
  8. Mixer-Maps: Add alternate ALC4080

    Asus released motherboard(s) with an alternate ALC4080 that lacks
    a SPDIF jack, and requires applying this map.
    13r0ck authored and mmstick committed Jul 6, 2024
    Configuration menu
    Copy the full SHA
    a488488 View commit details
    Browse the repository at this point in the history
  9. Rewrite mixer map for TRX40 Aorus Master

    The Aorus Xtreme uses the same ID for audio controller, but the
    maps are very different. This successfully fixes all of the
    audio jacks on the back.
    13r0ck authored and mmstick committed Jul 6, 2024
    Configuration menu
    Copy the full SHA
    420e88d View commit details
    Browse the repository at this point in the history
  10. ALSA: hda - Improve 3.5mm hotplug w/ROG strix B550

    When plugging of unplugging an audio jack on this motherbaord,
    sometimes the audio jacks would stop appearing to
    pipewire/pulseaudio. Interestingly `cat`-ing out the file
    `/proc/asound/<card number>/codec#0`, and or restarting pipewire
    fixes the issue temporarily.
    
    This PR improves the current functionality by making hotplug with
    one 3.5mm jack work, it still breaks if hotplug is between multiple
    jacks though.
    13r0ck authored and mmstick committed Jul 6, 2024
    Configuration menu
    Copy the full SHA
    b207166 View commit details
    Browse the repository at this point in the history
  11. Configuration menu
    Copy the full SHA
    c1e6747 View commit details
    Browse the repository at this point in the history
  12. Revert "misc: rtsx: rts522a rts5228 rts5261 support Runtime PM" (#193)

    This reverts commit 86f4c65.
    13r0ck authored and mmstick committed Jul 6, 2024
    Configuration menu
    Copy the full SHA
    4e237b5 View commit details
    Browse the repository at this point in the history
  13. Revert "i2c: acpi: Use ACPI wake capability bit to set wake_irq"

    This reverts commit b38f2d5.
    13r0ck authored and mmstick committed Jul 6, 2024
    Configuration menu
    Copy the full SHA
    8d9f701 View commit details
    Browse the repository at this point in the history
  14. Configuration menu
    Copy the full SHA
    bd1ad99 View commit details
    Browse the repository at this point in the history
  15. Revert "drm/i915/dmc: Use unversioned path for ADLP"

    This reverts commit 81f6650.
    jackpot51 authored and mmstick committed Jul 6, 2024
    Configuration menu
    Copy the full SHA
    d2a817f View commit details
    Browse the repository at this point in the history
  16. ALSA: hda/realtek: Add quirk for Clevo V350ENC

    Signed-off-by: Tim Crawford <tcrawford@system76.com>
    crawfxrd authored and mmstick committed Jul 6, 2024
    Configuration menu
    Copy the full SHA
    d7a77e4 View commit details
    Browse the repository at this point in the history
  17. Configuration menu
    Copy the full SHA
    94423b3 View commit details
    Browse the repository at this point in the history
  18. Disable uefi_signed on arm64

    jackpot51 authored and mmstick committed Jul 6, 2024
    Configuration menu
    Copy the full SHA
    d44b863 View commit details
    Browse the repository at this point in the history
  19. Revert "PCI/ACPI: Call _REG when transitioning D-states"

    This reverts commit 112a7f9.
    jackpot51 authored and mmstick committed Jul 6, 2024
    Configuration menu
    Copy the full SHA
    cd56ec6 View commit details
    Browse the repository at this point in the history
  20. fix: disable hyperv-tools

    mmstick committed Jul 6, 2024
    Configuration menu
    Copy the full SHA
    c0bd93c View commit details
    Browse the repository at this point in the history

Commits on Jul 8, 2024

  1. DROP ON REBASE: 6.9.8-76060904.202406120638 based on 6.9.8-060904.202…

    …406120638
    
    Signed-off-by: Michael Aaron Murphy <michael@mmurphy.dev>
    mmstick committed Jul 8, 2024
    Configuration menu
    Copy the full SHA
    98cac49 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    e4193fa View commit details
    Browse the repository at this point in the history