10 Oct, 2022

2 commits


27 Sep, 2022

1 commit

  • This is the 5.15.70 stable release

    * tag 'v5.15.70': (2444 commits)
    Linux 5.15.70
    ALSA: hda/sigmatel: Fix unused variable warning for beep power change
    cgroup: Add missing cpus_read_lock() to cgroup_attach_task_all()
    ...

    Signed-off-by: Jason Liu

    Conflicts:
    arch/arm/boot/dts/imx6ul.dtsi
    arch/arm/mm/mmu.c
    arch/arm64/boot/dts/freescale/imx8mp-evk.dts
    drivers/gpu/drm/imx/dcss/dcss-kms.c
    drivers/media/platform/nxp/imx-jpeg/mxc-jpeg.c
    drivers/media/platform/nxp/imx-jpeg/mxc-jpeg.h
    drivers/mtd/nand/raw/gpmi-nand/gpmi-nand.c
    drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.c
    drivers/soc/fsl/Kconfig
    drivers/soc/imx/gpcv2.c
    drivers/usb/dwc3/host.c
    net/dsa/slave.c
    sound/soc/fsl/imx-card.c

    Jason Liu
     

20 Sep, 2022

2 commits

  • [ Upstream commit 9c9c71168f7979f3798b61c65b4530fbfbcf19d1 ]

    Add a new iforce_device entry to support the Boeder Force Feedback Wheel
    device.

    Signed-off-by: Greg Tulli
    Link: https://lore.kernel.org/r/3256420-c8ac-31b-8499-3c488a9880fd@gmail.com
    Signed-off-by: Dmitry Torokhov
    Signed-off-by: Sasha Levin

    Greg Tulli
     
  • [ Upstream commit 767470209cedbe2cc72ba38d77c9f096d2c7694c ]

    BMG160 has two interrupt pins to which interrupts can be freely mapped.
    Correct the schema to express such case and fix warnings like:

    qcom/msm8916-alcatel-idol347.dtb: gyroscope@68: interrupts: [[97, 1], [98, 1]] is too long

    However the basic issue still persists - the interrupts should come in a
    defined order.

    Signed-off-by: Krzysztof Kozlowski
    Link: https://lore.kernel.org/r/20220805075503.16983-1-krzysztof.kozlowski@linaro.org
    Signed-off-by: Jonathan Cameron
    Signed-off-by: Sasha Levin

    Krzysztof Kozlowski
     

15 Sep, 2022

1 commit

  • commit e89d120c4b720e232cc6a94f0fcbd59c15d41489 upstream.

    The AMU counter AMEVCNTR01 (constant counter) should increment at the same
    rate as the system counter. On affected Cortex-A510 cores, AMEVCNTR01
    increments incorrectly giving a significantly higher output value. This
    results in inaccurate task scheduler utilization tracking and incorrect
    feedback on CPU frequency.

    Work around this problem by returning 0 when reading the affected counter
    in key locations that results in disabling all users of this counter from
    using it either for frequency invariance or as FFH reference counter. This
    effect is the same to firmware disabling affected counters.

    Details on how the two features are affected by this erratum:

    - AMU counters will not be used for frequency invariance for affected
    CPUs and CPUs in the same cpufreq policy. AMUs can still be used for
    frequency invariance for unaffected CPUs in the system. Although
    unlikely, if no alternative method can be found to support frequency
    invariance for affected CPUs (cpufreq based or solution based on
    platform counters) frequency invariance will be disabled. Please check
    the chapter on frequency invariance at
    Documentation/scheduler/sched-capacity.rst for details of its effect.

    - Given that FFH can be used to fetch either the core or constant counter
    values, restrictions are lifted regarding any of these counters
    returning a valid (!0) value. Therefore FFH is considered supported
    if there is a least one CPU that support AMUs, independent of any
    counters being disabled or affected by this erratum. Clarifying
    comments are now added to the cpc_ffh_supported(), cpu_read_constcnt()
    and cpu_read_corecnt() functions.

    The above is achieved through adding a new erratum: ARM64_ERRATUM_2457168.

    Signed-off-by: Ionela Voinescu
    Reviewed-by: Catalin Marinas
    Cc: Catalin Marinas
    Cc: Will Deacon
    Cc: James Morse
    Link: https://lore.kernel.org/r/20220819103050.24211-1-ionela.voinescu@arm.com
    Signed-off-by: Will Deacon
    Signed-off-by: Greg Kroah-Hartman

    Ionela Voinescu
     

05 Sep, 2022

1 commit

  • commit 39fdb65f52e9a53d32a6ba719f96669fd300ae78 upstream.

    Cortex-A510 is affected by an erratum where in rare circumstances the
    CPUs may not handle a race between a break-before-make sequence on one
    CPU, and another CPU accessing the same page. This could allow a store
    to a page that has been unmapped.

    Work around this by adding the affected CPUs to the list that needs
    TLB sequences to be done twice.

    Signed-off-by: James Morse
    Link: https://lore.kernel.org/r/20220704155732.21216-1-james.morse@arm.com
    Signed-off-by: Will Deacon
    Signed-off-by: Lucas Wei
    Signed-off-by: Greg Kroah-Hartman

    James Morse
     

31 Aug, 2022

3 commits

  • commit 00da0cb385d05a89226e150a102eb49d8abb0359 upstream.

    While reporting for the AMD retbleed vulnerability was added in

    6b80b59b3555 ("x86/bugs: Report AMD retbleed vulnerability")

    the new sysfs file was not mentioned so far in the ABI documentation for
    sysfs-devices-system-cpu. Fix that.

    Fixes: 6b80b59b3555 ("x86/bugs: Report AMD retbleed vulnerability")
    Signed-off-by: Salvatore Bonaccorso
    Signed-off-by: Borislav Petkov
    Link: https://lore.kernel.org/r/20220801091529.325327-1-carnil@debian.org
    Signed-off-by: Greg Kroah-Hartman

    Salvatore Bonaccorso
     
  • commit 7df548840c496b0141fb2404b889c346380c2b22 upstream.

    Older Intel CPUs that are not in the affected processor list for MMIO
    Stale Data vulnerabilities currently report "Not affected" in sysfs,
    which may not be correct. Vulnerability status for these older CPUs is
    unknown.

    Add known-not-affected CPUs to the whitelist. Report "unknown"
    mitigation status for CPUs that are not in blacklist, whitelist and also
    don't enumerate MSR ARCH_CAPABILITIES bits that reflect hardware
    immunity to MMIO Stale Data vulnerabilities.

    Mitigation is not deployed when the status is unknown.

    [ bp: Massage, fixup. ]

    Fixes: 8d50cdf8b834 ("x86/speculation/mmio: Add sysfs reporting for Processor MMIO Stale Data")
    Suggested-by: Andrew Cooper
    Suggested-by: Tony Luck
    Signed-off-by: Pawan Gupta
    Signed-off-by: Borislav Petkov
    Cc: stable@vger.kernel.org
    Link: https://lore.kernel.org/r/a932c154772f2121794a5f2eded1a11013114711.1657846269.git.pawan.kumar.gupta@linux.intel.com
    Signed-off-by: Greg Kroah-Hartman

    Pawan Gupta
     
  • [ Upstream commit 5dcd08cd19912892586c6082d56718333e2d19db ]

    While reading netdev_max_backlog, it can be changed concurrently.
    Thus, we need to add READ_ONCE() to its readers.

    While at it, we remove the unnecessary spaces in the doc.

    Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2")
    Signed-off-by: Kuniyuki Iwashima
    Signed-off-by: David S. Miller
    Signed-off-by: Sasha Levin

    Kuniyuki Iwashima
     

25 Aug, 2022

12 commits

  • commit b0de7fa706506bf0591037908376351beda8c5d6 upstream.

    The device bindings shouldn't put any constraints on the regulator-name
    property specified in the generic bindings. This allows using arbitrary
    and descriptive names for the regulators.

    Suggested-by: Mark Brown
    Fixes: 7ae9e3a6bf3f ("dt-bindings: regulator: add pca9450 regulator yaml")
    Signed-off-by: Frieder Schrempf
    Link: https://lore.kernel.org/r/20220802064335.8481-1-frieder@fris.de
    Signed-off-by: Mark Brown
    Signed-off-by: Greg Kroah-Hartman

    Frieder Schrempf
     
  • commit acfc34f008c3e66bbcb7b9162c80c8327b6e800f upstream.

    During the conversion the bindings lost list of required properties.

    Fixes: c58db2abb19f ("spi: convert Xilinx Zynq UltraScale+ MPSoC GQSPI bindings to YAML")
    Signed-off-by: Krzysztof Kozlowski
    Reviewed-by: Michal Simek
    Link: https://lore.kernel.org/r/20220704130618.199231-2-krzysztof.kozlowski@linaro.org
    Signed-off-by: Mark Brown
    Signed-off-by: Greg Kroah-Hartman

    Krzysztof Kozlowski
     
  • commit 6eee27c598fde65988723b785a9c9192d5ffb93a upstream.

    During the conversion the bindings lost list of required properties.

    Fixes: aa7968682a2b ("spi: convert Cadence SPI bindings to YAML")
    Signed-off-by: Krzysztof Kozlowski
    Reviewed-by: Michal Simek
    Link: https://lore.kernel.org/r/20220704130618.199231-1-krzysztof.kozlowski@linaro.org
    Signed-off-by: Mark Brown
    Signed-off-by: Greg Kroah-Hartman

    Krzysztof Kozlowski
     
  • commit 2b4e75a7a7c8d3531a40ebb103b92f88ff693f79 upstream.

    Add additional GCC clock sources. This includes PCIe and USB PIPE and
    UFS symbol clocks.

    Fixes: 2a8aa18c1131 ("dt-bindings: clk: qcom: Fix self-validation, split, and clean cruft")
    Signed-off-by: Dmitry Baryshkov
    Reviewed-by: Krzysztof Kozlowski
    Signed-off-by: Bjorn Andersson
    Link: https://lore.kernel.org/r/20220620071936.1558906-2-dmitry.baryshkov@linaro.org
    Signed-off-by: Greg Kroah-Hartman

    Dmitry Baryshkov
     
  • commit c704bd373f58a84193eebe40bd271d6b73c138b0 upstream.

    The compatibles for APQ8094/MSM8994 boards are different than specified
    in bindings. None of them use fallback to other SoC variant.

    Fixes: 9ad3c08f6f1b ("dt-bindings: arm: qcom: Document sony boards for apq8094")
    Signed-off-by: Krzysztof Kozlowski
    Acked-by: Rob Herring
    Link: https://lore.kernel.org/r/20220520123252.365762-4-krzysztof.kozlowski@linaro.org
    Signed-off-by: Bjorn Andersson
    Signed-off-by: Greg Kroah-Hartman

    Krzysztof Kozlowski
     
  • commit bb35fe1efbae4114bd288fae0f56070f563adcfc upstream.

    The order of compatibles for MSM8916 MTP board is different:

    msm8916-mtp.dtb: /: compatible: 'oneOf' conditional failed, one must be fixed:
    ['qcom,msm8916-mtp', 'qcom,msm8916-mtp/1', 'qcom,msm8916'] is too long

    Fixes: 9d3ef77fe568 ("dt-bindings: arm: Convert QCom board/soc bindings to json-schema")
    Signed-off-by: Krzysztof Kozlowski
    Acked-by: Rob Herring
    Link: https://lore.kernel.org/r/20220520123252.365762-3-krzysztof.kozlowski@linaro.org
    Signed-off-by: Bjorn Andersson
    Signed-off-by: Greg Kroah-Hartman

    Krzysztof Kozlowski
     
  • commit 25d203d0751ca191301bc578ba5d59fa401f1fbf upstream.

    The MSM8916 Longcheer L8150 uses a fallback in compatible:

    msm8916-longcheer-l8150.dtb: /: compatible: 'oneOf' conditional failed, one must be fixed:
    ['longcheer,l8150', 'qcom,msm8916-v1-qrd/9-v1', 'qcom,msm8916'] is too long

    Fixes: b72160fa886d ("dt-bindings: qcom: Document bindings for new MSM8916 devices")
    Signed-off-by: Krzysztof Kozlowski
    Acked-by: Rob Herring
    Reviewed-by: Stephan Gerhold
    Link: https://lore.kernel.org/r/20220520123252.365762-2-krzysztof.kozlowski@linaro.org
    Signed-off-by: Bjorn Andersson
    Signed-off-by: Greg Kroah-Hartman

    Krzysztof Kozlowski
     
  • commit 7668048e5c697a9493ffc0e6001c322b2efe90ae upstream.

    "xlnx,zynqmp-gpio-1.0", "xlnx,versal-gpio-1.0" and "xlnx,pmc-gpio-1.0"
    compatible strings were not moved to yaml format. But they were in origin
    text file.

    Fixes: 45ca16072b70 ("dt-bindings: gpio: zynq: convert bindings to YAML")
    Signed-off-by: Michal Simek
    Reviewed-by: Linus Walleij
    Acked-by: Rob Herring
    Link: https://lore.kernel.org/r/72c973da5670b5ae81d050c582948894ee4174f8.1634206453.git.michal.simek@xilinx.com
    Signed-off-by: Michal Simek
    Signed-off-by: Greg Kroah-Hartman

    Michal Simek
     
  • commit 944de5182f0269e72ffe0a8880c8dbeb30f473d8 upstream.

    The MSM8916 Alcatel OneTouch Idol 3 does not use MTP fallbacks in
    compatibles:

    msm8916-alcatel-idol347.dtb: /: compatible: 'oneOf' conditional failed, one must be fixed:
    ['alcatel,idol347', 'qcom,msm8916'] is too short

    Reported-by: Rob Herring
    Fixes: e9dd2f7204ed ("dt-bindings: arm: qcom: Document alcatel,idol347 board")
    Signed-off-by: Krzysztof Kozlowski
    Acked-by: Rob Herring
    Reviewed-by: Stephan Gerhold
    Link: https://lore.kernel.org/r/20220520123252.365762-1-krzysztof.kozlowski@linaro.org
    Signed-off-by: Bjorn Andersson
    Signed-off-by: Greg Kroah-Hartman

    Krzysztof Kozlowski
     
  • commit 9066e151c37950af92c3be6a7270daa8e8063db9 upstream.

    Since commit 488dac0c9237 ("libfs: fix error cast of negative value in
    simple_attr_write()"), the EINJ debugfs interface no longer accepts
    negative values as input. Attempt to do so will result in EINVAL.

    Fixes: 488dac0c9237 ("libfs: fix error cast of negative value in simple_attr_write()")
    Signed-off-by: Qifu Zhang
    Reviewed-by: Tony Luck
    Signed-off-by: Rafael J. Wysocki
    Signed-off-by: Greg Kroah-Hartman

    Qifu Zhang
     
  • commit b2c510ffe29f20a5f6ff31ae28d32ffa494b8cfb upstream.

    Add missing "minItems: 1" to the interrupt-names property to allow the
    second interrupt-names, "wakeup", to be optional.

    Fixes: fe8e488058c4 ("dt-bindings: usb: mtk-xhci: add wakeup interrupt")
    Signed-off-by: Nícolas F. R. A. Prado
    Reviewed-by: Krzysztof Kozlowski
    Acked-by: Chunfeng Yun
    Link: https://lore.kernel.org/r/20220623193702.817996-2-nfraprado@collabora.com
    Signed-off-by: Greg Kroah-Hartman

    Nícolas F. R. A. Prado
     
  • commit 415d832497098030241605c52ea83d4e2cfa7879 upstream.

    These operations are documented as always ordered in
    include/asm-generic/bitops/instrumented-atomic.h, and producer-consumer
    type use cases where one side needs to ensure a flag is left pending
    after some shared data was updated rely on this ordering, even in the
    failure case.

    This is the case with the workqueue code, which currently suffers from a
    reproducible ordering violation on Apple M1 platforms (which are
    notoriously out-of-order) that ends up causing the TTY layer to fail to
    deliver data to userspace properly under the right conditions. This
    change fixes that bug.

    Change the documentation to restrict the "no order on failure" story to
    the _lock() variant (for which it makes sense), and remove the
    early-exit from the generic implementation, which is what causes the
    missing barrier semantics in that case. Without this, the remaining
    atomic op is fully ordered (including on ARM64 LSE, as of recent
    versions of the architecture spec).

    Suggested-by: Linus Torvalds
    Cc: stable@vger.kernel.org
    Fixes: e986a0d6cb36 ("locking/atomics, asm-generic/bitops/atomic.h: Rewrite using atomic_*() APIs")
    Fixes: 61e02392d3c7 ("locking/atomic/bitops: Document and clarify ordering semantics for failed test_and_{}_bit()")
    Signed-off-by: Hector Martin
    Acked-by: Will Deacon
    Reviewed-by: Arnd Bergmann
    Signed-off-by: Linus Torvalds
    Signed-off-by: Greg Kroah-Hartman

    Hector Martin
     

17 Aug, 2022

11 commits

  • commit 402c43ea6b34a1b371ffeed9adf907402569eaf5 upstream.

    In some use cases[1], the backend is created while the frontend doesn't
    support the persistent grants feature, but later the frontend can be
    changed to support the feature and reconnect. In the past, 'blkback'
    enabled the persistent grants feature since it unconditionally checked
    if frontend supports the persistent grants feature for every connect
    ('connect_ring()') and decided whether it should use persistent grans or
    not.

    However, commit aac8a70db24b ("xen-blkback: add a parameter for
    disabling of persistent grants") has mistakenly changed the behavior.
    It made the frontend feature support check to not be repeated once it
    shown the 'feature_persistent' as 'false', or the frontend doesn't
    support persistent grants.

    Similar behavioral change has made on 'blkfront' by commit 74a852479c68
    ("xen-blkfront: add a parameter for disabling of persistent grants").
    This commit changes the behavior of the parameter to make effect for
    every connect, so that the previous behavior of 'blkfront' can be
    restored.

    [1] https://lore.kernel.org/xen-devel/CAJwUmVB6H3iTs-C+U=v-pwJB7-_ZRHPxHzKRJZ22xEPW7z8a=g@mail.gmail.com/

    Fixes: 74a852479c68 ("xen-blkfront: add a parameter for disabling of persistent grants")
    Cc: # 5.10.x
    Signed-off-by: SeongJae Park
    Reviewed-by: Maximilian Heyne
    Reviewed-by: Juergen Gross
    Link: https://lore.kernel.org/r/20220715225108.193398-4-sj@kernel.org
    Signed-off-by: Juergen Gross
    Signed-off-by: Greg Kroah-Hartman

    SeongJae Park
     
  • commit e94c6101e151b019b8babc518ac2a6ada644a5a1 upstream.

    In some use cases[1], the backend is created while the frontend doesn't
    support the persistent grants feature, but later the frontend can be
    changed to support the feature and reconnect. In the past, 'blkback'
    enabled the persistent grants feature since it unconditionally checked
    if frontend supports the persistent grants feature for every connect
    ('connect_ring()') and decided whether it should use persistent grans or
    not.

    However, commit aac8a70db24b ("xen-blkback: add a parameter for
    disabling of persistent grants") has mistakenly changed the behavior.
    It made the frontend feature support check to not be repeated once it
    shown the 'feature_persistent' as 'false', or the frontend doesn't
    support persistent grants.

    This commit changes the behavior of the parameter to make effect for
    every connect, so that the previous workflow can work again as expected.

    [1] https://lore.kernel.org/xen-devel/CAJwUmVB6H3iTs-C+U=v-pwJB7-_ZRHPxHzKRJZ22xEPW7z8a=g@mail.gmail.com/

    Reported-by: Andrii Chepurnyi
    Fixes: aac8a70db24b ("xen-blkback: add a parameter for disabling of persistent grants")
    Cc: # 5.10.x
    Signed-off-by: Maximilian Heyne
    Signed-off-by: SeongJae Park
    Reviewed-by: Maximilian Heyne
    Reviewed-by: Juergen Gross
    Link: https://lore.kernel.org/r/20220715225108.193398-3-sj@kernel.org
    Signed-off-by: Juergen Gross
    Signed-off-by: Greg Kroah-Hartman

    Maximilian Heyne
     
  • [ Upstream commit 366f6c955d4d1a5125ffcd6875ead26a3c7a2a1c ]

    Oxford Semiconductor PCIe (Tornado) 950 serial port devices are driven
    by a fixed 62.5MHz clock input derived from the 100MHz PCI Express clock.

    We currently drive the device using its default oversampling rate of 16
    and the clock prescaler disabled, consequently yielding the baud base of
    3906250. This base is inadequate for some of the high-speed baud rates
    such as 460800bps, for which the closest rate possible can be obtained
    by dividing the baud base by 8, yielding the baud rate of 488281.25bps,
    which is off by 5.9638%. This is enough for data communication to break
    with the remote end talking actual 460800bps, where missed stop bits
    have been observed.

    We can do better however, by taking advantage of a reduced oversampling
    rate, which can be set to any integer value from 4 to 16 inclusive by
    programming the TCR register, and by using the clock prescaler, which
    can be set to any value from 1 to 63.875 in increments of 0.125 in the
    CPR/CPR2 register pair. The prescaler has to be explicitly enabled
    though by setting bit 7 in the MCR or otherwise it is bypassed (in the
    enhanced mode that we enable) as if the value of 1 was used.

    Make use of these features then as follows:

    - Set the baud base to 15625000, reflecting the minimum oversampling
    rate of 4 with the clock prescaler and divisor both set to 1.

    - Override the `set_mctrl' and set the MCR shadow there so as to have
    MCR[7] always set and have the 8250 core propagate these settings.

    - Override the `get_divisor' handler and determine a good combination of
    parameters by using a lookup table with predetermined value pairs of
    the oversampling rate and the clock prescaler and finding a pair that
    divides the input clock such that the quotient, when rounded to the
    nearest integer, deviates the least from the exact result. Calculate
    the clock divisor accordingly.

    Scale the resulting oversampling rate (only by powers of two) if
    possible so as to maximise it, reducing the divisor accordingly, and
    avoid a divisor overflow for very low baud rates by scaling the
    oversampling rate and/or the prescaler even if that causes some
    accuracy loss.

    Also handle the historic spd_cust feature so as to allow one to set
    all the three parameters manually to arbitrary values, by keeping the
    low 16 bits for the divisor and then putting TCR in bits 19:16 and
    CPR/CPR2 in bits 28:20, sanitising the bit pattern supplied such as
    to clamp CPR/CPR2 values between 0.000 and 0.875 inclusive to 33.875.
    This preserves compatibility with any existing setups, that is where
    requesting a custom divisor that only has any bits set among the low
    16 the oversampling rate of 16 and the clock prescaler of 33.875 will
    be used as with the original 8250.

    Finally abuse the `frac' argument to store the determined bit patterns
    for the TCR, CPR and CPR2 registers.

    - Override the `set_divisor' handler so as to set the TCR, CPR and CPR2
    registers from the `frac' value supplied. Set the divisor as usual.

    With the baud base set to 15625000 and the unsigned 16-bit UART_DIV_MAX
    limitation imposed by `serial8250_get_baud_rate' standard baud rates
    below 300bps become unavailable in the regular way, e.g. the rate of
    200bps requires the baud base to be divided by 78125 and that is beyond
    the unsigned 16-bit range. The historic spd_cust feature can still be
    used to obtain such rates if so required.

    See Documentation/tty/device_drivers/oxsemi-tornado.rst for more details.

    Signed-off-by: Maciej W. Rozycki
    Link: https://lore.kernel.org/r/alpine.DEB.2.21.2204181519450.9383@angie.orcam.me.uk
    Signed-off-by: Greg Kroah-Hartman
    Signed-off-by: Sasha Levin

    Maciej W. Rozycki
     
  • commit e6cfcdda8cbe81eaf821c897369a65fec987b404 upstream.

    AMD's "Technical Guidance for Mitigating Branch Type Confusion,
    Rev. 1.0 2022-07-12" whitepaper, under section 6.1.2 "IBPB On
    Privileged Mode Entry / SMT Safety" says:

    Similar to the Jmp2Ret mitigation, if the code on the sibling thread
    cannot be trusted, software should set STIBP to 1 or disable SMT to
    ensure SMT safety when using this mitigation.

    So, like already being done for retbleed=unret, and now also for
    retbleed=ibpb, force STIBP on machines that have it, and report its SMT
    vulnerability status accordingly.

    [ bp: Remove the "we" and remove "[AMD]" applicability parameter which
    doesn't work here. ]

    Fixes: 3ebc17006888 ("x86/bugs: Add retbleed=ibpb")
    Signed-off-by: Kim Phillips
    Signed-off-by: Borislav Petkov
    Cc: stable@vger.kernel.org # 5.10, 5.15, 5.19
    Link: https://bugzilla.kernel.org/show_bug.cgi?id=206537
    Link: https://lore.kernel.org/r/20220804192201.439596-1-kim.phillips@amd.com
    Signed-off-by: Greg Kroah-Hartman

    Kim Phillips
     
  • [ Upstream commit d95a63daca85f4bca3b70e622c75586b5bf0ea5c ]

    Reference Picture Set lists provide indices of short and long term
    reference in DBP array.
    Fix Hantro to not do a look up in DBP entries.
    Make documentation more clear about it.

    [hverkuil: fix typo in commit log]

    Signed-off-by: Benjamin Gaignard
    Reviewed-by: Ezequiel Garcia
    Signed-off-by: Hans Verkuil
    Signed-off-by: Mauro Carvalho Chehab
    Signed-off-by: Sasha Levin

    Benjamin Gaignard
     
  • [ Upstream commit 2ee73ef60db4d79b9f9b8cd501e8188b5179449f ]

    Change dm-writecache, so that it counts the number of blocks discarded
    instead of the number of discard bios. Make it consistent with the
    read and write statistics counters that were changed to count the
    number of blocks instead of bios.

    Fixes: e3a35d03407c ("dm writecache: add event counters")
    Signed-off-by: Mikulas Patocka
    Signed-off-by: Mike Snitzer
    Signed-off-by: Sasha Levin

    Mikulas Patocka
     
  • [ Upstream commit b2676e1482af89714af6988ce5d31a84692e2530 ]

    Change dm-writecache, so that it counts the number of blocks written
    instead of the number of write bios. Bios can be split and requeued
    using the dm_accept_partial_bio function, so counting bios caused
    inaccurate results.

    Fixes: e3a35d03407c ("dm writecache: add event counters")
    Reported-by: Yu Kuai
    Signed-off-by: Mikulas Patocka
    Signed-off-by: Mike Snitzer
    Signed-off-by: Sasha Levin

    Mikulas Patocka
     
  • [ Upstream commit 2c6e755b49d273243431f5f1184654e71221fc78 ]

    Change dm-writecache, so that it counts the number of blocks read
    instead of the number of read bios. Bios can be split and requeued
    using the dm_accept_partial_bio function, so counting bios caused
    inaccurate results.

    Fixes: e3a35d03407c ("dm writecache: add event counters")
    Reported-by: Yu Kuai
    Signed-off-by: Mikulas Patocka
    Signed-off-by: Mike Snitzer
    Signed-off-by: Sasha Levin

    Mikulas Patocka
     
  • [ Upstream commit bf43a71a0a7f396434f6460b46e33eb00752f78d ]

    Add devicetree binding document for ADXL355, a 3-Axis MEMS Accelerometer.

    Signed-off-by: Puranjay Mohan
    Reviewed-by: Rob Herring
    Link: https://lore.kernel.org/r/20210811073027.124619-2-puranjay12@gmail.com
    Signed-off-by: Jonathan Cameron
    Signed-off-by: Sasha Levin

    Puranjay Mohan
     
  • [ Upstream commit 8bcedb4ce04750e1ccc9a6b6433387f6a9166a56 ]

    When kernel is booted with idle=nomwait do not use MWAIT as the
    default idle state.

    If the user boots the kernel with idle=nomwait, it is a clear
    direction to not use mwait as the default idle state.
    However, the current code does not take this into consideration
    while selecting the default idle state on x86.

    Fix it by checking for the idle=nomwait boot option in
    prefer_mwait_c1_over_halt().

    Also update the documentation around idle=nomwait appropriately.

    [ dhansen: tweak commit message ]

    Signed-off-by: Wyes Karny
    Signed-off-by: Dave Hansen
    Tested-by: Zhang Rui
    Link: https://lkml.kernel.org/r/fdc2dc2d0a1bc21c2f53d989ea2d2ee3ccbc0dbe.1654538381.git-series.wyes.karny@amd.com
    Signed-off-by: Sasha Levin

    Wyes Karny
     
  • commit b60cf8e59e61133b6c9514ff8d8c8d7049d040ef upstream.

    Fix device tree schema validation error messages for the SiFive
    Unmatched: ' cache-sets:0:0: 1024 was expected'.

    The existing bindings allow for just 1024 cache-sets but the fu740 on
    Unmatched the has 2048 cache-sets. The ISA itself permits any arbitrary
    power of two, however this is not supported by dt-schema. The RTL for
    the IP, to which the number of cache-sets is a tunable parameter, has
    been released publicly so speculatively adding a small number of
    "reasonable" values seems unwise also.

    Instead, as the binding only supports two distinct controllers: add 2048
    and explicitly lock it to the fu740's l2 cache while limiting 1024 to
    the l2 cache on the fu540.

    Fixes: af951c3a113b ("dt-bindings: riscv: Update l2 cache DT documentation to add support for SiFive FU740")
    Reported-by: Atul Khare
    Signed-off-by: Conor Dooley
    Reviewed-by: Krzysztof Kozlowski
    Cc: stable@vger.kernel.org
    Link: https://lore.kernel.org/r/20220803185359.942928-1-mail@conchuod.ie
    Signed-off-by: Palmer Dabbelt
    Signed-off-by: Greg Kroah-Hartman

    Conor Dooley
     

11 Aug, 2022

2 commits

  • commit 2b1299322016731d56807aa49254a5ea3080b6b3 upstream.

    tl;dr: The Enhanced IBRS mitigation for Spectre v2 does not work as
    documented for RET instructions after VM exits. Mitigate it with a new
    one-entry RSB stuffing mechanism and a new LFENCE.

    == Background ==

    Indirect Branch Restricted Speculation (IBRS) was designed to help
    mitigate Branch Target Injection and Speculative Store Bypass, i.e.
    Spectre, attacks. IBRS prevents software run in less privileged modes
    from affecting branch prediction in more privileged modes. IBRS requires
    the MSR to be written on every privilege level change.

    To overcome some of the performance issues of IBRS, Enhanced IBRS was
    introduced. eIBRS is an "always on" IBRS, in other words, just turn
    it on once instead of writing the MSR on every privilege level change.
    When eIBRS is enabled, more privileged modes should be protected from
    less privileged modes, including protecting VMMs from guests.

    == Problem ==

    Here's a simplification of how guests are run on Linux' KVM:

    void run_kvm_guest(void)
    {
    // Prepare to run guest
    VMRESUME();
    // Clean up after guest runs
    }

    The execution flow for that would look something like this to the
    processor:

    1. Host-side: call run_kvm_guest()
    2. Host-side: VMRESUME
    3. Guest runs, does "CALL guest_function"
    4. VM exit, host runs again
    5. Host might make some "cleanup" function calls
    6. Host-side: RET from run_kvm_guest()

    Now, when back on the host, there are a couple of possible scenarios of
    post-guest activity the host needs to do before executing host code:

    * on pre-eIBRS hardware (legacy IBRS, or nothing at all), the RSB is not
    touched and Linux has to do a 32-entry stuffing.

    * on eIBRS hardware, VM exit with IBRS enabled, or restoring the host
    IBRS=1 shortly after VM exit, has a documented side effect of flushing
    the RSB except in this PBRSB situation where the software needs to stuff
    the last RSB entry "by hand".

    IOW, with eIBRS supported, host RET instructions should no longer be
    influenced by guest behavior after the host retires a single CALL
    instruction.

    However, if the RET instructions are "unbalanced" with CALLs after a VM
    exit as is the RET in #6, it might speculatively use the address for the
    instruction after the CALL in #3 as an RSB prediction. This is a problem
    since the (untrusted) guest controls this address.

    Balanced CALL/RET instruction pairs such as in step #5 are not affected.

    == Solution ==

    The PBRSB issue affects a wide variety of Intel processors which
    support eIBRS. But not all of them need mitigation. Today,
    X86_FEATURE_RSB_VMEXIT triggers an RSB filling sequence that mitigates
    PBRSB. Systems setting RSB_VMEXIT need no further mitigation - i.e.,
    eIBRS systems which enable legacy IBRS explicitly.

    However, such systems (X86_FEATURE_IBRS_ENHANCED) do not set RSB_VMEXIT
    and most of them need a new mitigation.

    Therefore, introduce a new feature flag X86_FEATURE_RSB_VMEXIT_LITE
    which triggers a lighter-weight PBRSB mitigation versus RSB_VMEXIT.

    The lighter-weight mitigation performs a CALL instruction which is
    immediately followed by a speculative execution barrier (INT3). This
    steers speculative execution to the barrier -- just like a retpoline
    -- which ensures that speculation can never reach an unbalanced RET.
    Then, ensure this CALL is retired before continuing execution with an
    LFENCE.

    In other words, the window of exposure is opened at VM exit where RET
    behavior is troublesome. While the window is open, force RSB predictions
    sampling for RET targets to a dead end at the INT3. Close the window
    with the LFENCE.

    There is a subset of eIBRS systems which are not vulnerable to PBRSB.
    Add these systems to the cpu_vuln_whitelist[] as NO_EIBRS_PBRSB.
    Future systems that aren't vulnerable will set ARCH_CAP_PBRSB_NO.

    [ bp: Massage, incorporate review comments from Andy Cooper. ]

    Signed-off-by: Daniel Sneddon
    Co-developed-by: Pawan Gupta
    Signed-off-by: Pawan Gupta
    Signed-off-by: Borislav Petkov
    Signed-off-by: Greg Kroah-Hartman

    Daniel Sneddon
     
  • commit 88b65887aa1b76cd8649a97824fb9904c1d79254 upstream.

    The BCM4349B1, aka CYW/BCM89359, is a WiFi+BT chip and its Bluetooth
    portion can be controlled over serial.
    Extend the binding with its DT compatible.

    Acked-by: Krzysztof Kozlowski
    Reviewed-by: Linus Walleij
    Signed-off-by: Ahmad Fatoum
    Signed-off-by: Marcel Holtmann
    Signed-off-by: Greg Kroah-Hartman

    Ahmad Fatoum
     

10 Aug, 2022

1 commit


03 Aug, 2022

2 commits

  • commit ea304a8b89fd0d6cf94ee30cb139dc23d9f1a62f upstream.

    Updates descriptions for "mitigations=off" and "mitigations=auto,nosmt"
    with the respective retbleed= settings.

    Signed-off-by: Eiichi Tsukata
    Signed-off-by: Borislav Petkov
    Cc: corbet@lwn.net
    Link: https://lore.kernel.org/r/20220728043907.165688-1-eiichi.tsukata@nutanix.com
    Signed-off-by: Greg Kroah-Hartman

    Eiichi Tsukata
     
  • [ Upstream commit aa709da0e032cee7c202047ecd75f437bb0126ed ]

    Since commit 1033990ac5b2 ("sctp: implement memory accounting on tx path"),
    SCTP has supported memory accounting on tx path where 'sctp_wmem' is used
    by sk_wmem_schedule(). So we should fix the description for this option in
    ip-sysctl.rst accordingly.

    v1->v2:
    - Improve the description as Marcelo suggested.

    Fixes: 1033990ac5b2 ("sctp: implement memory accounting on tx path")
    Signed-off-by: Xin Long
    Acked-by: Marcelo Ricardo Leitner
    Signed-off-by: David S. Miller
    Signed-off-by: Sasha Levin

    Xin Long
     

29 Jul, 2022

1 commit

  • [ Upstream commit 39c65a94cd9661532be150e88f8b02f4a6844a35 ]

    For embedded systems with low total memory, having to run applications
    with relatively large memory requirements, 10% max limitation for
    watermark_scale_factor poses an issue of triggering direct reclaim every
    time such application is started. This results in slow application
    startup times and bad end-user experience.

    By increasing watermark_scale_factor max limit we allow vendors more
    flexibility to choose the right level of kswapd aggressiveness for their
    device and workload requirements.

    Link: https://lkml.kernel.org/r/20211124193604.2758863-1-surenb@google.com
    Signed-off-by: Suren Baghdasaryan
    Acked-by: Johannes Weiner
    Cc: Michal Hocko
    Cc: Lukas Middendorf
    Cc: Antti Palosaari
    Cc: Luis Chamberlain
    Cc: Kees Cook
    Cc: Iurii Zaikin
    Cc: Dave Hansen
    Cc: Vlastimil Babka
    Cc: Mel Gorman
    Cc: Jonathan Corbet
    Cc: Zhang Yi
    Cc: Fengfei Xi
    Cc: Mike Rapoport
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds
    Signed-off-by: Sasha Levin

    Suren Baghdasaryan
     

27 Jul, 2022

1 commit