public inbox for stable@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH 6.1 000/206] 6.1.79-rc1 review
@ 2024-02-21 12:58 Greg Kroah-Hartman
  2024-02-21 12:58 ` [PATCH 6.1 001/206] work around gcc bugs with asm goto with outputs Greg Kroah-Hartman
  2024-02-21 13:07 ` [PATCH 6.1 000/206] 6.1.79-rc1 review Greg Kroah-Hartman
  0 siblings, 2 replies; 3+ messages in thread
From: Greg Kroah-Hartman @ 2024-02-21 12:58 UTC (permalink / raw)
  To: stable
  Cc: Greg Kroah-Hartman, patches, linux-kernel, torvalds, akpm, linux,
	shuah, patches, lkft-triage, pavel, jonathanh, f.fainelli,
	sudipm.mukherjee, srw, rwarsow, conor, allen.lkml

This is the start of the stable review cycle for the 6.1.79 release.
There are 206 patches in this series, all will be posted as a response
to this one.  If anyone has any issues with these being applied, please
let me know.

Responses should be made by Fri, 23 Feb 2024 12:59:02 +0000.
Anything received after that time might be too late.

The whole patch series can be found in one patch at:
	https://www.kernel.org/pub/linux/kernel/v6.x/stable-review/patch-6.1.79-rc1.gz
or in the git tree and branch at:
	git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git linux-6.1.y
and the diffstat can be found below.

thanks,

greg k-h

-------------
Pseudo-Shortlog of commits:

Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Linux 6.1.79-rc1

Konstantin Komarov <almaz.alexandrovich@paragon-software.com>
    fs/ntfs3: Add null pointer checks

Easwar Hariharan <eahariha@linux.microsoft.com>
    arm64: Subscribe Microsoft Azure Cobalt 100 to ARM Neoverse N2 errata

Mikulas Patocka <mpatocka@redhat.com>
    dm: limit the number of targets and parameter size area

Ryusuke Konishi <konishi.ryusuke@gmail.com>
    nilfs2: replace WARN_ONs for invalid DAT metadata block requests

Ryusuke Konishi <konishi.ryusuke@gmail.com>
    nilfs2: fix potential bug in end_buffer_async_write

Saravana Kannan <saravanak@google.com>
    of: property: Add in-ports/out-ports support to of_graph_get_port_parent()

Linus Torvalds <torvalds@linuxfoundation.org>
    sched/membarrier: reduce the ability to hammer on sys_membarrier

Peter Zijlstra <peterz@infradead.org>
    kbuild: Drop -Wdeclaration-after-statement

Peter Zijlstra <peterz@infradead.org>
    locking: Introduce __cleanup() based infrastructure

Peter Zijlstra <peterz@infradead.org>
    apparmor: Free up __cleanup() name

Peter Zijlstra <peterz@infradead.org>
    dmaengine: ioat: Free up __cleanup() name

Lokesh Gidra <lokeshgidra@google.com>
    userfaultfd: fix mmap_changing checking in mfill_atomic_hugetlb

Jiri Olsa <jolsa@kernel.org>
    bpf: Remove trace_printk_lock

Jiri Olsa <jolsa@kernel.org>
    bpf: Do cleanup in bpf_bprintf_cleanup only when needed

Jiri Olsa <jolsa@kernel.org>
    bpf: Add struct for bin_args arg in bpf_bprintf_prepare

Eric Dumazet <edumazet@google.com>
    net: prevent mss overflow in skb_segment()

Paulo Alcantara <pc@manguebit.com>
    smb: client: fix parsing of SMB3.1.1 POSIX create context

Paulo Alcantara <pc@manguebit.com>
    smb: client: fix potential OOBs in smb2_parse_contexts()

Mike Marciniszyn <mike.marciniszyn@intel.com>
    RDMA/irdma: Ensure iWarp QP queue memory is OS paged aligned

Davidlohr Bueso <dave@stgolabs.net>
    hrtimer: Ignore slack time for RT tasks in schedule_hrtimeout_range()

NeilBrown <neilb@suse.de>
    nfsd: don't take fi_lock in nfsd_break_deleg_cb()

NeilBrown <neilb@suse.de>
    nfsd: fix RELEASE_LOCKOWNER

Helge Deller <deller@gmx.de>
    parisc: Fix random data corruption from exception handler

Jozsef Kadlecsik <kadlec@netfilter.org>
    netfilter: ipset: Missing gc cancellations fixed

Jozsef Kadlecsik <kadlec@netfilter.org>
    netfilter: ipset: fix performance regression in swap operation

Damien Le Moal <dlemoal@kernel.org>
    block: fix partial zone append completion handling in req_bio_endio()

Tianjia Zhang <tianjia.zhang@linux.alibaba.com>
    crypto: lib/mpi - Fix unexpected pointer access in mpi_ec_init

David Lin <yu-hao.lin@nxp.com>
    wifi: mwifiex: fix uninitialized firmware_stat

Johan Hovold <johan+linaro@kernel.org>
    arm64: dts: qcom: sm8150: fix USB SS wakeup

Johan Hovold <johan+linaro@kernel.org>
    arm64: dts: qcom: sdm845: fix USB SS wakeup

Stephan Gerhold <stephan@gerhold.net>
    arm64: dts: qcom: msm8916: Make blsp_dma controlled-remotely

Stephan Gerhold <stephan@gerhold.net>
    arm64: dts: qcom: msm8916: Enable blsp_dma by default

Sjoerd Simons <sjoerd@collabora.com>
    bus: moxtet: Add spi device table

David Lin <yu-hao.lin@nxp.com>
    wifi: mwifiex: add extra delay for firmware ready

Lukas Wunner <lukas@wunner.de>
    wifi: mwifiex: Support SD8978 chipset

Andrejs Cainikovs <andrejs.cainikovs@toradex.com>
    ARM: dts: imx6q-apalis: add can power-up delay on ixora board

Junxiao Bi <junxiao.bi@oracle.com>
    md: bypass block throttle for superblock update

Audra Mitchell <audra@redhat.com>
    selftests/mm: Update va_high_addr_switch.sh to check CPU for la57 flag

Ryan Roberts <ryan.roberts@arm.com>
    selftests/mm: ksm_tests should only MADV_HUGEPAGE valid memory

Jann Horn <jannh@google.com>
    tls: fix NULL deref on tls_sw_splice_eof() with empty record

Herbert Xu <herbert@gondor.apana.org.au>
    xfrm: Silence warnings triggerable by bad packets

Herbert Xu <herbert@gondor.apana.org.au>
    xfrm: Use xfrm_state selector for BEET input

Steven Rostedt (Google) <rostedt@goodmis.org>
    tracing: Inform kmemleak of saved_cmdlines allocation

Oleg Nesterov <oleg@redhat.com>
    fs/proc: do_task_stat: move thread_group_cputime_adjusted() outside of lock_task_sighand()

Konrad Dybcio <konrad.dybcio@linaro.org>
    pmdomain: core: Move the unused cleanup to a _sync initcall

Oleksij Rempel <linux@rempel-privat.de>
    can: j1939: Fix UAF in j1939_sk_match_filter during setsockopt(SO_J1939_FILTER)

Ziqi Zhao <astrajoan@yahoo.com>
    can: j1939: prevent deadlock by changing j1939_socks_lock to rwlock

Maxime Jayat <maxime.jayat@mobile-devices.fr>
    can: netlink: Fix TDCO calculation using the old data bittiming

Nuno Sa <nuno.sa@analog.com>
    of: property: fix typo in io-channels

Prakash Sangappa <prakash.sangappa@oracle.com>
    mm: hugetlb pages should not be reserved by shmat() if SHM_NORESERVE

Oscar Salvador <osalvador@suse.de>
    fs,hugetlb: fix NULL pointer dereference in hugetlbs_fill_super

Rishabh Dave <ridave@redhat.com>
    ceph: prevent use-after-free in encode_cap_msg()

Shradha Gupta <shradhagupta@linux.microsoft.com>
    hv_netvsc: Register VF in netvsc_probe if NET_DEVICE_REGISTER missed

Sinthu Raja <sinthu.raja@ti.com>
    net: ethernet: ti: cpsw_new: enable mac_managed_pm to fix mdio

Alexandra Winter <wintera@linux.ibm.com>
    s390/qeth: Fix potential loss of L3-IP@ in case of network issues

Sinthu Raja <sinthu.raja@ti.com>
    net: ethernet: ti: cpsw: enable mac_managed_pm to fix mdio

Christian Brauner <brauner@kernel.org>
    fs: relax mount_setattr() permission checks

Daniel Bristot de Oliveira <bristot@kernel.org>
    tools/rtla: Fix Makefile compiler options for clang

Daniel Bristot de Oliveira <bristot@kernel.org>
    tools/rtla: Fix uninitialized bucket/data->bucket_size warning

John Kacur <jkacur@redhat.com>
    tools/rtla: Exit with EXIT_SUCCESS when help is invoked

limingming3 <limingming890315@gmail.com>
    tools/rtla: Replace setting prio with nice for SCHED_OTHER

Daniel Bristot de Oliveira <bristot@kernel.org>
    tools/rtla: Remove unused sched_getattr() function

Mario Limonciello <mario.limonciello@amd.com>
    ASoC: amd: yc: Add DMI quirk for Lenovo Ideapad Pro 5 16ARP8

Fred Ai <fred.ai@bayhubtech.com>
    mmc: sdhci-pci-o2micro: Fix a warm reboot issue that disk can't be detected by BIOS

Damien Le Moal <dlemoal@kernel.org>
    zonefs: Improve error handling

Marc Zyngier <maz@kernel.org>
    irqchip/gic-v3-its: Fix GICv4.1 VPE affinity update

Doug Berger <opendmb@gmail.com>
    irqchip/irq-brcmstb-l2: Add write memory barrier before exit

Johannes Berg <johannes.berg@intel.com>
    wifi: mac80211: reload info pointer in ieee80211_tx_dequeue()

Johannes Berg <johannes.berg@intel.com>
    wifi: cfg80211: fix wiphy delayed work queueing

Daniel de Villiers <daniel.devilliers@corigine.com>
    nfp: flower: prevent re-adding mac index for bonded port

Daniel Basilio <daniel.basilio@corigine.com>
    nfp: use correct macro for LengthSelect in BAR config

Kim Phillips <kim.phillips@amd.com>
    crypto: ccp - Fix null pointer dereference in __sev_platform_shutdown_locked

Ryusuke Konishi <konishi.ryusuke@gmail.com>
    nilfs2: fix hang in nilfs_lookup_dirty_data_buffers()

Ryusuke Konishi <konishi.ryusuke@gmail.com>
    nilfs2: fix data corruption in dsync block recovery for small block sizes

bo liu <bo.liu@senarytech.com>
    ALSA: hda/conexant: Add quirk for SWS JS201D

Eniac Zhang <eniac-xw.zhang@hp.com>
    ALSA: hda/realtek: fix mute/micmute LED For HP mt645

Alexander Stein <alexander.stein@ew.tq-group.com>
    mmc: slot-gpio: Allow non-sleeping GPIO ro

Jens Axboe <axboe@kernel.dk>
    io_uring/net: fix multishot accept overflow handling

Steve Wahl <steve.wahl@hpe.com>
    x86/mm/ident_map: Use gbpages only where full GB page should be mapped.

Mingwei Zhang <mizhang@google.com>
    KVM: x86/pmu: Fix type length error when reading pmu->fixed_ctr_ctrl

Andrei Vagin <avagin@google.com>
    x86/fpu: Stop relying on userspace for info to fault in xsave buffer

Aleksander Mazur <deweloper@wp.pl>
    x86/Kconfig: Transmeta Crusoe is CPU family 5, not 6

Shrikanth Hegde <sshegde@linux.ibm.com>
    powerpc/pseries: fix accuracy of stolen time

David Engraf <david.engraf@sysgo.com>
    powerpc/cputable: Add missing PPC_FEATURE_BOOKE on PPC64 Book-E

Naveen N Rao <naveen@kernel.org>
    powerpc/64: Set task pt_regs->link to the LR value on scv entry

Hugo Villeneuve <hvilleneuve@dimonoff.com>
    serial: max310x: prevent infinite while() loop in port startup

Hugo Villeneuve <hvilleneuve@dimonoff.com>
    serial: max310x: fail probe if clock crystal is unstable

Hugo Villeneuve <hvilleneuve@dimonoff.com>
    serial: max310x: improve crystal stable clock detection

Hugo Villeneuve <hvilleneuve@dimonoff.com>
    serial: max310x: set default value when reading clock ready bit

Hui Zhou <hui.zhou@corigine.com>
    nfp: flower: fix hardware offload for the transfer layer port

Vincent Donnefort <vdonnefort@google.com>
    ring-buffer: Clean ring_buffer_poll_wait() error return

Souradeep Chakrabarti <schakrabarti@linux.microsoft.com>
    hv_netvsc: Fix race condition between netvsc_probe and netvsc_remove

Tom Chung <chiahsuan.chung@amd.com>
    drm/amd/display: Preserve original aspect ratio in create stream

Nathan Chancellor <nathan@kernel.org>
    drm/amd/display: Increase frame-larger-than for all display_mode_vba files

Philip Yang <Philip.Yang@amd.com>
    drm/prime: Support page array >= 4GB

Rob Clark <robdclark@chromium.org>
    drm/msm: Wire up tlb ops

Herbert Xu <herbert@gondor.apana.org.au>
    xfrm: Remove inner/outer modes from input path

Herbert Xu <herbert@gondor.apana.org.au>
    xfrm: Remove inner/outer modes from output path

Fedor Pchelkin <pchelkin@ispras.ru>
    ksmbd: free aux buffer if ksmbd_iov_pin_rsp_read fails

Sean Young <sean@mess.org>
    media: rc: bpf attach/detach requires write permission

Randy Dunlap <rdunlap@infradead.org>
    iio: imu: bno055: serdev requires REGMAP

Nuno Sa <nuno.sa@analog.com>
    iio: imu: adis: ensure proper DMA alignment

Nuno Sa <nuno.sa@analog.com>
    iio: adc: ad_sigma_delta: ensure proper DMA alignment

Mario Limonciello <mario.limonciello@amd.com>
    iio: accel: bma400: Fix a compilation problem

Nuno Sa <nuno.sa@analog.com>
    iio: commom: st_sensors: ensure proper DMA alignment

Dinghao Liu <dinghao.liu@zju.edu.cn>
    iio: core: fix memleak in iio_device_register_sysfs

zhili.liu <zhili.liu@ucas.com.cn>
    iio: magnetometer: rm3100: add boundary check for the value read from RM3100_REG_TMRC

David Schiller <david.schiller@jku.at>
    staging: iio: ad5933: fix type mismatch regression

Steven Rostedt (Google) <rostedt@goodmis.org>
    tracing: Fix wasted memory in saved_cmdlines logic

Baokun Li <libaokun1@huawei.com>
    ext4: avoid bb_free and bb_fragments inconsistency in mb_free_blocks()

Baokun Li <libaokun1@huawei.com>
    ext4: fix double-free of blocks due to wrong extents moved_len

Ekansh Gupta <quic_ekangupt@quicinc.com>
    misc: fastrpc: Mark all sessions as invalid in cb_remove

Carlos Llamas <cmllamas@google.com>
    binder: signal epoll threads of self-work

Andy Chi <andy.chi@canonical.com>
    ALSA: hda/realtek: fix mute/micmute LEDs for HP ZBook Power

Vitaly Rodionov <vitalyr@opensource.cirrus.com>
    ALSA: hda/cs8409: Suppress vmaster control for Dolphin models

Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
    ASoC: codecs: wcd938x: handle deferred probe

Edson Juliano Drosdeck <edson.drosdeck@gmail.com>
    ALSA: hda/realtek: Enable headset mic on Vaio VJFE-ADL

Nathan Chancellor <nathan@kernel.org>
    modpost: Add '.ltext' and '.ltext.*' to TEXT_SECTIONS

Nathan Chancellor <nathan@kernel.org>
    um: Fix adding '-no-pie' for clang

Nathan Chancellor <nathan@kernel.org>
    modpost: Include '.text.*' in TEXT_SECTIONS

Masahiro Yamada <masahiroy@kernel.org>
    linux/init: remove __memexit* annotations

Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
    modpost: Don't let "driver"s reference .exit.*

Masahiro Yamada <masahiroy@kernel.org>
    modpost: propagate W=1 build option to modpost

Jan Beulich <jbeulich@suse.com>
    xen-netback: properly sync TX responses

Esben Haabendal <esben@geanix.com>
    net: stmmac: do not clear TBS enable bit on link up/down

Nikita Zhandarovich <n.zhandarovich@fintech.ru>
    net: hsr: remove WARN_ONCE() in send_hsr_supervision_frame()

Fedor Pchelkin <pchelkin@ispras.ru>
    nfc: nci: free rx_data_reassembly skb on NCI device cleanup

Nathan Chancellor <nathan@kernel.org>
    kbuild: Fix changing ELF file type for output of gen_btf for big endian

José Relvas <josemonsantorelvas@gmail.com>
    ALSA: hda/realtek: Apply headset jack quirk for non-bass alc287 thinkpads

Takashi Sakamoto <o-takashi@sakamocchi.jp>
    firewire: core: correct documentation of fw_csr_string() kernel API

Ondrej Mosnacek <omosnace@redhat.com>
    lsm: fix the logic in security_inode_getsecctx()

Sebastian Ott <sebott@redhat.com>
    drm/virtio: Set segment size for virtio_gpu device

Mario Limonciello <mario.limonciello@amd.com>
    Revert "drm/amd: flush any delayed gfxoff on suspend entry"

Lee Duncan <lduncan@suse.com>
    scsi: Revert "scsi: fcoe: Fix potential deadlock on &fip->ctlr_lock"

Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>
    media: Revert "media: rkisp1: Drop IRQF_SHARED"

Geliang Tang <geliang@kernel.org>
    mptcp: check addrs list in userspace_pm_get_local_id

Paolo Abeni <pabeni@redhat.com>
    mptcp: drop the push_pending field

Matthieu Baerts (NGI0) <matttbe@kernel.org>
    selftests: mptcp: increase timeout to 30 min

Matthieu Baerts (NGI0) <matttbe@kernel.org>
    selftests: mptcp: add missing kconfig for NF Mangle

Matthieu Baerts (NGI0) <matttbe@kernel.org>
    selftests: mptcp: add missing kconfig for NF Filter in v6

Matthieu Baerts (NGI0) <matttbe@kernel.org>
    selftests: mptcp: add missing kconfig for NF Filter

Paolo Abeni <pabeni@redhat.com>
    mptcp: fix data re-injection from stale subflow

Paolo Abeni <pabeni@redhat.com>
    mptcp: get rid of msk->subflow

Radek Krejci <radek.krejci@oracle.com>
    modpost: trim leading spaces when processing source files list

Jean Delvare <jdelvare@suse.de>
    i2c: i801: Fix block process call transactions

Arnd Bergmann <arnd@arndb.de>
    i2c: pasemi: split driver into two separate modules

Michael Ellerman <mpe@ellerman.id.au>
    powerpc/kasan: Limit KASAN thread size increase to 32KB

Bibo Mao <maobibo@loongson.cn>
    irqchip/loongson-eiointc: Use correct struct type in eiointc_domain_alloc()

Viken Dadhaniya <quic_vdadhani@quicinc.com>
    i2c: qcom-geni: Correct I2C TRE sequence

Dan Carpenter <dan.carpenter@linaro.org>
    cifs: fix underflow in parse_server_interfaces()

Jiangfeng Xiao <xiaojiangfeng@huawei.com>
    powerpc/kasan: Fix addr error caused by page alignment

Saravana Kannan <saravanak@google.com>
    driver core: fw_devlink: Improve detection of overlapping cycles

Zhipeng Lu <alexious@zju.edu.cn>
    media: ir_toy: fix a memleak in irtoy_tx

Konrad Dybcio <konrad.dybcio@linaro.org>
    interconnect: qcom: sc8180x: Mark CO0 BCM keepalive

Uttkarsh Aggarwal <quic_uaggarwa@quicinc.com>
    usb: dwc3: gadget: Fix NULL pointer dereference in dwc3_gadget_suspend

yuan linyu <yuanlinyu@hihonor.com>
    usb: f_mass_storage: forbid async queue when shutdown happen

Oliver Neukum <oneukum@suse.com>
    USB: hub: check for alternate port before enabling A_ALT_HNP_SUPPORT

Christian A. Ehrhardt <lk@c--e.de>
    usb: ucsi_acpi: Fix command completion handling

Sean Anderson <sean.anderson@seco.com>
    usb: ulpi: Fix debugfs directory leak

Christian A. Ehrhardt <lk@c--e.de>
    usb: ucsi: Add missing ppm_lock

Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
    iio: hid-sensor-als: Return 0 for HID_USAGE_SENSOR_TIME_TIMESTAMP

Jason Gerecke <killertofu@gmail.com>
    HID: wacom: Do not register input devices until after hid_hw_start

Tatsunosuke Tobita <tatsunosuke.tobita@wacom.com>
    HID: wacom: generic: Avoid reporting a serial of '0' to userspace

Johan Hovold <johan+linaro@kernel.org>
    HID: i2c-hid-of: fix NULL-deref on failed power up

Luka Guzenko <l.guzenko@web.de>
    ALSA: hda/realtek: Enable Mute LED on HP Laptop 14-fq0xxx

David Senoner <seda18@rolmail.net>
    ALSA: hda/realtek: Fix the external mic not being recognised for Acer Swift 1 SF114-32

Helge Deller <deller@gmx.de>
    parisc: Prevent hung tasks when printing inventory on serial console

Techno Mooney <techno.mooney@gmail.com>
    ASoC: amd: yc: Add DMI quirk for MSI Bravo 15 C7VF

Mikulas Patocka <mpatocka@redhat.com>
    dm-crypt, dm-verity: disable tasklets

Michael Kelley <mhklinux@outlook.com>
    scsi: storvsc: Fix ring buffer size calculation

Zach O'Keefe <zokeefe@google.com>
    mm/writeback: fix possible divide-by-zero in wb_dirty_limits(), again

Masami Hiramatsu (Google) <mhiramat@kernel.org>
    tracing/trigger: Fix to return error if failed to alloc snapshot

Samuel Holland <samuel.holland@sifive.com>
    scs: add CONFIG_MMU dependency for vfree_atomic()

Ivan Vecera <ivecera@redhat.com>
    i40e: Fix waiting for queues of all VSIs to be disabled

Ivan Vecera <ivecera@redhat.com>
    i40e: Do not allow untrusted VF to remove administratively set MAC

Guenter Roeck <linux@roeck-us.net>
    MIPS: Add 'memory' clobber to csum_ipv6_magic() inline assembler

Arnd Bergmann <arnd@arndb.de>
    nouveau/svm: fix kvcalloc() argument order

Breno Leitao <leitao@debian.org>
    net: sysfs: Fix /sys/class/net/<iface> path for statistics

Alexey Khoroshilov <khoroshilov@ispras.ru>
    ASoC: rt5645: Fix deadlock in rt5645_jack_detect_work()

Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
    spi: ppc4xx: Drop write-only variable

Jakub Kicinski <kuba@kernel.org>
    net: tls: fix returned read length with async decrypt

Sabrina Dubroca <sd@queasysnail.net>
    net: tls: fix use-after-free with partial reads and async decrypt

Jakub Kicinski <kuba@kernel.org>
    tls: fix race between async notify and socket close

Jakub Kicinski <kuba@kernel.org>
    net: tls: factor out tls_*crypt_async_wait()

Sabrina Dubroca <sd@queasysnail.net>
    tls: extract context alloc/initialization out of tls_set_sw_offload

David Howells <dhowells@redhat.com>
    tls/sw: Use splice_eof() to flush

Horatiu Vultur <horatiu.vultur@microchip.com>
    lan966x: Fix crash when adding interface under a lag

Aaron Conole <aconole@redhat.com>
    net: openvswitch: limit the number of recursions from action sets

Saravana Kannan <saravanak@google.com>
    of: property: Improve finding the supplier of a remote-endpoint property

Dan Carpenter <dan.carpenter@linaro.org>
    wifi: iwlwifi: uninitialized variable in iwl_acpi_get_ppag_table()

Dan Carpenter <dan.carpenter@linaro.org>
    wifi: iwlwifi: Fix some error codes

Sean Christopherson <seanjc@google.com>
    KVM: selftests: Fix a semaphore imbalance in the dirty ring logging test

Gavin Shan <gshan@redhat.com>
    KVM: selftests: Clear dirty ring states between two modes in dirty_log_test

Christian A. Ehrhardt <lk@c--e.de>
    of: unittest: Fix compile in the non-dynamic case

Saravana Kannan <saravanak@google.com>
    driver core: Fix device_link_flag_is_sync_state_only()

Josef Bacik <josef@toxicpanda.com>
    btrfs: don't drop extent_map for free space inode on write error

Filipe Manana <fdmanana@suse.com>
    btrfs: reject encoded write if inode has nodatasum flag set

Filipe Manana <fdmanana@suse.com>
    btrfs: don't reserve space for checksums when writing to nocow files

David Sterba <dsterba@suse.com>
    btrfs: send: return EOPNOTSUPP on unknown flags

Boris Burkov <boris@bur.io>
    btrfs: forbid deleting live subvol qgroup

Qu Wenruo <wqu@suse.com>
    btrfs: do not ASSERT() if the newly created subvolume already got read

Boris Burkov <boris@bur.io>
    btrfs: forbid creating subvol qgroups

Filipe Manana <fdmanana@suse.com>
    btrfs: do not delete unused block group if it may be used soon

Filipe Manana <fdmanana@suse.com>
    btrfs: add and use helper to check if block group is used

Linus Torvalds <torvalds@linux-foundation.org>
    update workarounds for gcc "asm goto" issue

Linus Torvalds <torvalds@linux-foundation.org>
    work around gcc bugs with 'asm goto' with outputs


-------------

Diffstat:

 .../ABI/testing/sysfs-class-net-statistics         |  48 ++---
 Documentation/arm64/silicon-errata.rst             |   7 +
 .../bindings/net/wireless/marvell-8xxx.txt         |   4 +-
 Makefile                                           |  10 +-
 arch/Kconfig                                       |   1 +
 arch/arc/include/asm/jump_label.h                  |   4 +-
 arch/arm/boot/dts/imx6q-apalis-ixora-v1.2.dts      |   2 +
 arch/arm/include/asm/jump_label.h                  |   4 +-
 arch/arm64/boot/dts/qcom/apq8016-sbc.dts           |   4 -
 arch/arm64/boot/dts/qcom/msm8916.dtsi              |   2 +-
 arch/arm64/boot/dts/qcom/sdm845.dtsi               |   4 +-
 arch/arm64/boot/dts/qcom/sm8150.dtsi               |   4 +-
 arch/arm64/include/asm/alternative-macros.h        |   4 +-
 arch/arm64/include/asm/cputype.h                   |   4 +
 arch/arm64/include/asm/jump_label.h                |   4 +-
 arch/arm64/kernel/cpu_errata.c                     |   3 +
 arch/arm64/kernel/vdso32/Makefile                  |   2 -
 arch/csky/include/asm/jump_label.h                 |   4 +-
 arch/mips/include/asm/checksum.h                   |   3 +-
 arch/mips/include/asm/jump_label.h                 |   4 +-
 arch/parisc/Kconfig                                |   1 -
 arch/parisc/include/asm/assembly.h                 |   1 +
 arch/parisc/include/asm/extable.h                  |  64 ++++++
 arch/parisc/include/asm/jump_label.h               |   4 +-
 arch/parisc/include/asm/special_insns.h            |   6 +-
 arch/parisc/include/asm/uaccess.h                  |  48 +----
 arch/parisc/kernel/drivers.c                       |   3 +
 arch/parisc/kernel/unaligned.c                     |  44 ++--
 arch/parisc/mm/fault.c                             |  11 +-
 arch/powerpc/include/asm/bug.h                     |   2 +-
 arch/powerpc/include/asm/jump_label.h              |   4 +-
 arch/powerpc/include/asm/thread_info.h             |   2 +-
 arch/powerpc/include/asm/uaccess.h                 |   8 +-
 arch/powerpc/kernel/cpu_specs_e500mc.h             |   3 +-
 arch/powerpc/kernel/interrupt_64.S                 |   4 +-
 arch/powerpc/kernel/irq_64.c                       |   2 +-
 arch/powerpc/mm/kasan/init_32.c                    |   1 +
 arch/powerpc/platforms/pseries/lpar.c              |   8 +-
 arch/riscv/include/asm/jump_label.h                |   4 +-
 arch/s390/include/asm/jump_label.h                 |   4 +-
 arch/sparc/include/asm/jump_label.h                |   4 +-
 arch/um/Makefile                                   |   4 +-
 arch/um/include/asm/cpufeature.h                   |   2 +-
 arch/x86/Kconfig.cpu                               |   2 +-
 arch/x86/include/asm/cpufeature.h                  |   2 +-
 arch/x86/include/asm/jump_label.h                  |   6 +-
 arch/x86/include/asm/rmwcc.h                       |   2 +-
 arch/x86/include/asm/uaccess.h                     |  10 +-
 arch/x86/include/asm/virtext.h                     |  12 +-
 arch/x86/kernel/fpu/signal.c                       |  13 +-
 arch/x86/kvm/svm/svm_ops.h                         |   6 +-
 arch/x86/kvm/vmx/pmu_intel.c                       |   2 +-
 arch/x86/kvm/vmx/vmx.c                             |   8 +-
 arch/x86/kvm/vmx/vmx_ops.h                         |   6 +-
 arch/x86/mm/ident_map.c                            |  23 ++-
 arch/xtensa/include/asm/jump_label.h               |   4 +-
 block/blk-mq.c                                     |   9 +-
 drivers/android/binder.c                           |  10 +
 drivers/base/core.c                                |  15 +-
 drivers/base/power/domain.c                        |   2 +-
 drivers/bus/moxtet.c                               |   7 +
 drivers/crypto/ccp/sev-dev.c                       |  10 +-
 drivers/dma/ioat/dma.c                             |  12 +-
 drivers/firewire/core-device.c                     |   7 +-
 drivers/gpu/drm/amd/amdgpu/amdgpu_device.c         |   1 -
 drivers/gpu/drm/amd/amdgpu/amdgpu_gfx.c            |   9 +-
 drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c  |   2 +
 drivers/gpu/drm/amd/display/dc/dml/Makefile        |   6 +-
 drivers/gpu/drm/drm_prime.c                        |   2 +-
 drivers/gpu/drm/msm/msm_iommu.c                    |  32 ++-
 drivers/gpu/drm/nouveau/nouveau_svm.c              |   2 +-
 drivers/gpu/drm/virtio/virtgpu_drv.c               |   1 +
 drivers/hid/i2c-hid/i2c-hid-of.c                   |   1 +
 drivers/hid/wacom_sys.c                            |  63 ++++--
 drivers/hid/wacom_wac.c                            |   9 +-
 drivers/i2c/busses/Makefile                        |   6 +-
 drivers/i2c/busses/i2c-i801.c                      |   4 +-
 drivers/i2c/busses/i2c-pasemi-core.c               |   5 +
 drivers/i2c/busses/i2c-qcom-geni.c                 |  16 +-
 drivers/iio/accel/Kconfig                          |   2 +
 drivers/iio/imu/bno055/Kconfig                     |   1 +
 drivers/iio/industrialio-core.c                    |   5 +-
 drivers/iio/light/hid-sensor-als.c                 |   1 +
 drivers/iio/magnetometer/rm3100-core.c             |  10 +-
 drivers/infiniband/hw/irdma/verbs.c                |   7 +
 drivers/interconnect/qcom/sc8180x.c                |   1 +
 drivers/irqchip/irq-brcmstb-l2.c                   |   5 +-
 drivers/irqchip/irq-gic-v3-its.c                   |  22 +-
 drivers/irqchip/irq-loongson-eiointc.c             |   2 +-
 drivers/md/dm-core.h                               |   2 +
 drivers/md/dm-crypt.c                              |  37 +---
 drivers/md/dm-ioctl.c                              |   3 +-
 drivers/md/dm-table.c                              |   9 +-
 drivers/md/dm-verity-target.c                      |  26 +--
 drivers/md/dm-verity.h                             |   1 -
 drivers/md/md.c                                    |   7 +-
 .../media/platform/rockchip/rkisp1/rkisp1-dev.c    |   2 +-
 drivers/media/rc/bpf-lirc.c                        |   6 +-
 drivers/media/rc/ir_toy.c                          |   2 +
 drivers/media/rc/lirc_dev.c                        |   5 +-
 drivers/media/rc/rc-core-priv.h                    |   2 +-
 drivers/misc/fastrpc.c                             |   2 +-
 drivers/mmc/core/slot-gpio.c                       |   6 +-
 drivers/mmc/host/sdhci-pci-o2micro.c               |  30 +++
 drivers/net/can/dev/netlink.c                      |   2 +-
 drivers/net/ethernet/intel/i40e/i40e_main.c        |   2 +-
 drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c |  38 +++-
 .../net/ethernet/microchip/lan966x/lan966x_lag.c   |   9 +-
 .../net/ethernet/netronome/nfp/flower/conntrack.c  |  24 ++-
 .../ethernet/netronome/nfp/flower/tunnel_conf.c    |   2 +-
 .../ethernet/netronome/nfp/nfpcore/nfp6000_pcie.c  |   6 +-
 drivers/net/ethernet/stmicro/stmmac/stmmac_main.c  |   3 +
 drivers/net/ethernet/ti/cpsw.c                     |   2 +
 drivers/net/ethernet/ti/cpsw_new.c                 |   3 +
 drivers/net/hyperv/netvsc.c                        |   5 +-
 drivers/net/hyperv/netvsc_drv.c                    |  82 ++++++--
 drivers/net/wireless/intel/iwlwifi/fw/acpi.c       |  15 +-
 drivers/net/wireless/marvell/mwifiex/Kconfig       |   5 +-
 drivers/net/wireless/marvell/mwifiex/sdio.c        |  46 ++++-
 drivers/net/wireless/marvell/mwifiex/sdio.h        |   3 +
 drivers/net/xen-netback/netback.c                  | 100 +++++----
 drivers/of/property.c                              |  18 +-
 drivers/of/unittest.c                              |  12 +-
 drivers/s390/net/qeth_l3_main.c                    |   9 +-
 drivers/scsi/fcoe/fcoe_ctlr.c                      |  20 +-
 drivers/scsi/storvsc_drv.c                         |  12 +-
 drivers/spi/spi-ppc4xx.c                           |   5 -
 drivers/staging/iio/impedance-analyzer/ad5933.c    |   2 +-
 drivers/tty/serial/max310x.c                       |  53 ++++-
 drivers/usb/common/ulpi.c                          |   2 +-
 drivers/usb/core/hub.c                             |  30 ++-
 drivers/usb/dwc3/gadget.c                          |   6 +-
 drivers/usb/gadget/function/f_mass_storage.c       |  20 +-
 drivers/usb/typec/ucsi/ucsi.c                      |   2 +
 drivers/usb/typec/ucsi/ucsi_acpi.c                 |  17 +-
 fs/btrfs/block-group.c                             |  49 ++++-
 fs/btrfs/block-group.h                             |   7 +
 fs/btrfs/delalloc-space.c                          |  29 ++-
 fs/btrfs/disk-io.c                                 |  13 +-
 fs/btrfs/inode.c                                   |  26 ++-
 fs/btrfs/ioctl.c                                   |   5 +
 fs/btrfs/qgroup.c                                  |  14 ++
 fs/btrfs/send.c                                    |   2 +-
 fs/ceph/caps.c                                     |   3 +-
 fs/ext4/mballoc.c                                  |  39 ++--
 fs/ext4/move_extent.c                              |   6 +-
 fs/hugetlbfs/inode.c                               |  19 +-
 fs/namespace.c                                     |  11 +-
 fs/nfsd/nfs4state.c                                |  37 ++--
 fs/nilfs2/dat.c                                    |  27 ++-
 fs/nilfs2/file.c                                   |   8 +-
 fs/nilfs2/recovery.c                               |   7 +-
 fs/nilfs2/segment.c                                |   8 +-
 fs/ntfs3/fsntfs.c                                  |  16 +-
 fs/ntfs3/index.c                                   |   3 +-
 fs/proc/array.c                                    |  10 +-
 fs/smb/client/cached_dir.c                         |   8 +-
 fs/smb/client/smb2ops.c                            |   2 +-
 fs/smb/client/smb2pdu.c                            |  95 +++++----
 fs/smb/client/smb2proto.h                          |  12 +-
 fs/smb/server/smb2pdu.c                            |   8 +-
 fs/zonefs/file.c                                   |  42 ++--
 fs/zonefs/super.c                                  |  66 +++---
 include/asm-generic/vmlinux.lds.h                  |   6 -
 include/linux/bpf.h                                |  12 +-
 include/linux/cleanup.h                            | 171 ++++++++++++++++
 include/linux/compiler-clang.h                     |   9 +
 include/linux/compiler-gcc.h                       |  20 ++
 include/linux/compiler_attributes.h                |   6 +
 include/linux/compiler_types.h                     |  11 +-
 include/linux/device.h                             |   7 +
 include/linux/file.h                               |   6 +
 include/linux/iio/adc/ad_sigma_delta.h             |   4 +-
 include/linux/iio/common/st_sensors.h              |   4 +-
 include/linux/iio/imu/adis.h                       |   3 +-
 include/linux/init.h                               |   3 -
 include/linux/irqflags.h                           |   7 +
 include/linux/mmc/sdio_ids.h                       |   1 +
 include/linux/mutex.h                              |   4 +
 include/linux/netfilter/ipset/ip_set.h             |   4 +
 include/linux/percpu.h                             |   4 +
 include/linux/preempt.h                            |   5 +
 include/linux/rcupdate.h                           |   3 +
 include/linux/rwsem.h                              |   8 +
 include/linux/sched/task.h                         |   2 +
 include/linux/slab.h                               |   3 +
 include/linux/spinlock.h                           |  31 +++
 include/linux/srcu.h                               |   5 +
 include/net/tls.h                                  |   5 -
 init/Kconfig                                       |   9 +
 io_uring/net.c                                     |   5 +-
 kernel/bpf/helpers.c                               |  67 +++---
 kernel/bpf/verifier.c                              |   3 +-
 kernel/sched/membarrier.c                          |   6 +
 kernel/time/hrtimer.c                              |  14 +-
 kernel/trace/bpf_trace.c                           |  56 +++--
 kernel/trace/ring_buffer.c                         |   2 +-
 kernel/trace/trace.c                               |  78 +++----
 kernel/trace/trace_events_trigger.c                |   6 +-
 lib/mpi/ec.c                                       |   3 +
 mm/page-writeback.c                                |   2 +-
 mm/userfaultfd.c                                   |  15 +-
 net/can/j1939/j1939-priv.h                         |   3 +-
 net/can/j1939/main.c                               |   2 +-
 net/can/j1939/socket.c                             |  46 +++--
 net/core/skbuff.c                                  |   3 +-
 net/hsr/hsr_device.c                               |   4 +-
 net/mac80211/tx.c                                  |   5 +-
 net/mptcp/pm_userspace.c                           |  13 +-
 net/mptcp/protocol.c                               |  24 +--
 net/mptcp/protocol.h                               |   4 +-
 net/netfilter/ipset/ip_set_bitmap_gen.h            |  14 +-
 net/netfilter/ipset/ip_set_core.c                  |  39 +++-
 net/netfilter/ipset/ip_set_hash_gen.h              |  19 +-
 net/netfilter/ipset/ip_set_list_set.c              |  13 +-
 net/netfilter/nft_set_pipapo_avx2.c                |   2 +-
 net/nfc/nci/core.c                                 |   4 +
 net/openvswitch/flow_netlink.c                     |  49 +++--
 net/tls/tls.h                                      |   1 +
 net/tls/tls_main.c                                 |   2 +
 net/tls/tls_sw.c                                   | 226 +++++++++++++--------
 net/wireless/core.c                                |   1 +
 net/xfrm/xfrm_input.c                              |  77 +++----
 net/xfrm/xfrm_output.c                             |  33 +--
 samples/bpf/asm_goto_workaround.h                  |   8 +-
 scripts/Makefile.modpost                           |   1 +
 scripts/checkpatch.pl                              |   2 +-
 scripts/link-vmlinux.sh                            |   9 +-
 scripts/mod/modpost.c                              |  43 ++--
 scripts/mod/sumversion.c                           |   7 +-
 security/apparmor/include/lib.h                    |   6 +-
 security/security.c                                |  14 +-
 sound/pci/hda/patch_conexant.c                     |  18 ++
 sound/pci/hda/patch_cs8409.c                       |   1 +
 sound/pci/hda/patch_realtek.c                      |  11 +-
 sound/soc/amd/yc/acp6x-mach.c                      |  14 ++
 sound/soc/codecs/rt5645.c                          |   1 +
 sound/soc/codecs/wcd938x.c                         |   2 +-
 tools/arch/x86/include/asm/rmwcc.h                 |   2 +-
 tools/include/linux/compiler_types.h               |   4 +-
 tools/testing/selftests/kvm/dirty_log_test.c       |  77 ++++---
 tools/testing/selftests/net/mptcp/config           |   3 +
 tools/testing/selftests/net/mptcp/settings         |   2 +-
 tools/testing/selftests/vm/ksm_tests.c             |   2 +-
 tools/testing/selftests/vm/va_128TBswitch.sh       |   6 +
 tools/tracing/rtla/Makefile                        |   7 +-
 tools/tracing/rtla/src/osnoise_hist.c              |   9 +-
 tools/tracing/rtla/src/osnoise_top.c               |   6 +-
 tools/tracing/rtla/src/timerlat_hist.c             |   9 +-
 tools/tracing/rtla/src/timerlat_top.c              |   6 +-
 tools/tracing/rtla/src/utils.c                     |  12 +-
 tools/tracing/rtla/src/utils.h                     |   2 +
 252 files changed, 2347 insertions(+), 1137 deletions(-)



^ permalink raw reply	[flat|nested] 3+ messages in thread

* [PATCH 6.1 001/206] work around gcc bugs with asm goto with outputs
  2024-02-21 12:58 [PATCH 6.1 000/206] 6.1.79-rc1 review Greg Kroah-Hartman
@ 2024-02-21 12:58 ` Greg Kroah-Hartman
  2024-02-21 13:07 ` [PATCH 6.1 000/206] 6.1.79-rc1 review Greg Kroah-Hartman
  1 sibling, 0 replies; 3+ messages in thread
From: Greg Kroah-Hartman @ 2024-02-21 12:58 UTC (permalink / raw)
  To: stable
  Cc: Greg Kroah-Hartman, patches, Nick Desaulniers, Uros Bizjak,
	Jakub Jelinek, Andrew Pinski, Linus Torvalds, Sean Christopherson

6.1-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Linus Torvalds <torvalds@linux-foundation.org>

commit 68fb3ca0e408e00db1c3f8fccdfa19e274c033be upstream.

We've had issues with gcc and 'asm goto' before, and we created a
'asm_volatile_goto()' macro for that in the past: see commits
3f0116c3238a ("compiler/gcc4: Add quirk for 'asm goto' miscompilation
bug") and a9f180345f53 ("compiler/gcc4: Make quirk for
asm_volatile_goto() unconditional").

Then, much later, we ended up removing the workaround in commit
43c249ea0b1e ("compiler-gcc.h: remove ancient workaround for gcc PR
58670") because we no longer supported building the kernel with the
affected gcc versions, but we left the macro uses around.

Now, Sean Christopherson reports a new version of a very similar
problem, which is fixed by re-applying that ancient workaround.  But the
problem in question is limited to only the 'asm goto with outputs'
cases, so instead of re-introducing the old workaround as-is, let's
rename and limit the workaround to just that much less common case.

It looks like there are at least two separate issues that all hit in
this area:

 (a) some versions of gcc don't mark the asm goto as 'volatile' when it
     has outputs:

        https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98619
        https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110420

     which is easy to work around by just adding the 'volatile' by hand.

 (b) Internal compiler errors:

        https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110422

     which are worked around by adding the extra empty 'asm' as a
     barrier, as in the original workaround.

but the problem Sean sees may be a third thing since it involves bad
code generation (not an ICE) even with the manually added 'volatile'.

The same old workaround works for this case, even if this feels a
bit like voodoo programming and may only be hiding the issue.

Reported-and-tested-by: Sean Christopherson <seanjc@google.com>
Link: https://lore.kernel.org/all/20240208220604.140859-1-seanjc@google.com/
Cc: Nick Desaulniers <ndesaulniers@google.com>
Cc: Uros Bizjak <ubizjak@gmail.com>
Cc: Jakub Jelinek <jakub@redhat.com>
Cc: Andrew Pinski <quic_apinski@quicinc.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 arch/arc/include/asm/jump_label.h           |    4 ++--
 arch/arm/include/asm/jump_label.h           |    4 ++--
 arch/arm64/include/asm/alternative-macros.h |    4 ++--
 arch/arm64/include/asm/jump_label.h         |    4 ++--
 arch/csky/include/asm/jump_label.h          |    4 ++--
 arch/mips/include/asm/jump_label.h          |    4 ++--
 arch/parisc/include/asm/jump_label.h        |    4 ++--
 arch/powerpc/include/asm/bug.h              |    2 +-
 arch/powerpc/include/asm/jump_label.h       |    4 ++--
 arch/powerpc/include/asm/uaccess.h          |    8 ++++----
 arch/powerpc/kernel/irq_64.c                |    2 +-
 arch/riscv/include/asm/jump_label.h         |    4 ++--
 arch/s390/include/asm/jump_label.h          |    4 ++--
 arch/sparc/include/asm/jump_label.h         |    4 ++--
 arch/um/include/asm/cpufeature.h            |    2 +-
 arch/x86/include/asm/cpufeature.h           |    2 +-
 arch/x86/include/asm/jump_label.h           |    6 +++---
 arch/x86/include/asm/rmwcc.h                |    2 +-
 arch/x86/include/asm/uaccess.h              |   10 +++++-----
 arch/x86/include/asm/virtext.h              |   12 ++++++------
 arch/x86/kvm/svm/svm_ops.h                  |    6 +++---
 arch/x86/kvm/vmx/vmx.c                      |    8 ++++----
 arch/x86/kvm/vmx/vmx_ops.h                  |    6 +++---
 arch/xtensa/include/asm/jump_label.h        |    4 ++--
 include/linux/compiler-gcc.h                |   19 +++++++++++++++++++
 include/linux/compiler_types.h              |    4 ++--
 net/netfilter/nft_set_pipapo_avx2.c         |    2 +-
 samples/bpf/asm_goto_workaround.h           |    8 ++++----
 tools/arch/x86/include/asm/rmwcc.h          |    2 +-
 tools/include/linux/compiler_types.h        |    4 ++--
 30 files changed, 86 insertions(+), 67 deletions(-)

--- a/arch/arc/include/asm/jump_label.h
+++ b/arch/arc/include/asm/jump_label.h
@@ -31,7 +31,7 @@
 static __always_inline bool arch_static_branch(struct static_key *key,
 					       bool branch)
 {
-	asm_volatile_goto(".balign "__stringify(JUMP_LABEL_NOP_SIZE)"	\n"
+	asm goto(".balign "__stringify(JUMP_LABEL_NOP_SIZE)"		\n"
 		 "1:							\n"
 		 "nop							\n"
 		 ".pushsection __jump_table, \"aw\"			\n"
@@ -47,7 +47,7 @@ l_yes:
 static __always_inline bool arch_static_branch_jump(struct static_key *key,
 						    bool branch)
 {
-	asm_volatile_goto(".balign "__stringify(JUMP_LABEL_NOP_SIZE)"	\n"
+	asm goto(".balign "__stringify(JUMP_LABEL_NOP_SIZE)"		\n"
 		 "1:							\n"
 		 "b %l[l_yes]						\n"
 		 ".pushsection __jump_table, \"aw\"			\n"
--- a/arch/arm/include/asm/jump_label.h
+++ b/arch/arm/include/asm/jump_label.h
@@ -11,7 +11,7 @@
 
 static __always_inline bool arch_static_branch(struct static_key *key, bool branch)
 {
-	asm_volatile_goto("1:\n\t"
+	asm goto("1:\n\t"
 		 WASM(nop) "\n\t"
 		 ".pushsection __jump_table,  \"aw\"\n\t"
 		 ".word 1b, %l[l_yes], %c0\n\t"
@@ -25,7 +25,7 @@ l_yes:
 
 static __always_inline bool arch_static_branch_jump(struct static_key *key, bool branch)
 {
-	asm_volatile_goto("1:\n\t"
+	asm goto("1:\n\t"
 		 WASM(b) " %l[l_yes]\n\t"
 		 ".pushsection __jump_table,  \"aw\"\n\t"
 		 ".word 1b, %l[l_yes], %c0\n\t"
--- a/arch/arm64/include/asm/alternative-macros.h
+++ b/arch/arm64/include/asm/alternative-macros.h
@@ -229,7 +229,7 @@ alternative_has_feature_likely(unsigned
 	compiletime_assert(feature < ARM64_NCAPS,
 			   "feature must be < ARM64_NCAPS");
 
-	asm_volatile_goto(
+	asm goto(
 	ALTERNATIVE_CB("b	%l[l_no]", %[feature], alt_cb_patch_nops)
 	:
 	: [feature] "i" (feature)
@@ -247,7 +247,7 @@ alternative_has_feature_unlikely(unsigne
 	compiletime_assert(feature < ARM64_NCAPS,
 			   "feature must be < ARM64_NCAPS");
 
-	asm_volatile_goto(
+	asm goto(
 	ALTERNATIVE("nop", "b	%l[l_yes]", %[feature])
 	:
 	: [feature] "i" (feature)
--- a/arch/arm64/include/asm/jump_label.h
+++ b/arch/arm64/include/asm/jump_label.h
@@ -18,7 +18,7 @@
 static __always_inline bool arch_static_branch(struct static_key *key,
 					       bool branch)
 {
-	asm_volatile_goto(
+	asm goto(
 		"1:	nop					\n\t"
 		 "	.pushsection	__jump_table, \"aw\"	\n\t"
 		 "	.align		3			\n\t"
@@ -35,7 +35,7 @@ l_yes:
 static __always_inline bool arch_static_branch_jump(struct static_key *key,
 						    bool branch)
 {
-	asm_volatile_goto(
+	asm goto(
 		"1:	b		%l[l_yes]		\n\t"
 		 "	.pushsection	__jump_table, \"aw\"	\n\t"
 		 "	.align		3			\n\t"
--- a/arch/csky/include/asm/jump_label.h
+++ b/arch/csky/include/asm/jump_label.h
@@ -12,7 +12,7 @@
 static __always_inline bool arch_static_branch(struct static_key *key,
 					       bool branch)
 {
-	asm_volatile_goto(
+	asm goto(
 		"1:	nop32					\n"
 		"	.pushsection	__jump_table, \"aw\"	\n"
 		"	.align		2			\n"
@@ -29,7 +29,7 @@ label:
 static __always_inline bool arch_static_branch_jump(struct static_key *key,
 						    bool branch)
 {
-	asm_volatile_goto(
+	asm goto(
 		"1:	bsr32		%l[label]		\n"
 		"	.pushsection	__jump_table, \"aw\"	\n"
 		"	.align		2			\n"
--- a/arch/mips/include/asm/jump_label.h
+++ b/arch/mips/include/asm/jump_label.h
@@ -36,7 +36,7 @@
 
 static __always_inline bool arch_static_branch(struct static_key *key, bool branch)
 {
-	asm_volatile_goto("1:\t" B_INSN " 2f\n\t"
+	asm goto("1:\t" B_INSN " 2f\n\t"
 		"2:\t.insn\n\t"
 		".pushsection __jump_table,  \"aw\"\n\t"
 		WORD_INSN " 1b, %l[l_yes], %0\n\t"
@@ -50,7 +50,7 @@ l_yes:
 
 static __always_inline bool arch_static_branch_jump(struct static_key *key, bool branch)
 {
-	asm_volatile_goto("1:\t" J_INSN " %l[l_yes]\n\t"
+	asm goto("1:\t" J_INSN " %l[l_yes]\n\t"
 		".pushsection __jump_table,  \"aw\"\n\t"
 		WORD_INSN " 1b, %l[l_yes], %0\n\t"
 		".popsection\n\t"
--- a/arch/parisc/include/asm/jump_label.h
+++ b/arch/parisc/include/asm/jump_label.h
@@ -12,7 +12,7 @@
 
 static __always_inline bool arch_static_branch(struct static_key *key, bool branch)
 {
-	asm_volatile_goto("1:\n\t"
+	asm goto("1:\n\t"
 		 "nop\n\t"
 		 ".pushsection __jump_table,  \"aw\"\n\t"
 		 ".align %1\n\t"
@@ -29,7 +29,7 @@ l_yes:
 
 static __always_inline bool arch_static_branch_jump(struct static_key *key, bool branch)
 {
-	asm_volatile_goto("1:\n\t"
+	asm goto("1:\n\t"
 		 "b,n %l[l_yes]\n\t"
 		 ".pushsection __jump_table,  \"aw\"\n\t"
 		 ".align %1\n\t"
--- a/arch/powerpc/include/asm/bug.h
+++ b/arch/powerpc/include/asm/bug.h
@@ -74,7 +74,7 @@
 		  ##__VA_ARGS__)
 
 #define WARN_ENTRY(insn, flags, label, ...)		\
-	asm_volatile_goto(				\
+	asm goto(					\
 		"1:	" insn "\n"			\
 		EX_TABLE(1b, %l[label])			\
 		_EMIT_BUG_ENTRY				\
--- a/arch/powerpc/include/asm/jump_label.h
+++ b/arch/powerpc/include/asm/jump_label.h
@@ -17,7 +17,7 @@
 
 static __always_inline bool arch_static_branch(struct static_key *key, bool branch)
 {
-	asm_volatile_goto("1:\n\t"
+	asm goto("1:\n\t"
 		 "nop # arch_static_branch\n\t"
 		 ".pushsection __jump_table,  \"aw\"\n\t"
 		 ".long 1b - ., %l[l_yes] - .\n\t"
@@ -32,7 +32,7 @@ l_yes:
 
 static __always_inline bool arch_static_branch_jump(struct static_key *key, bool branch)
 {
-	asm_volatile_goto("1:\n\t"
+	asm goto("1:\n\t"
 		 "b %l[l_yes] # arch_static_branch_jump\n\t"
 		 ".pushsection __jump_table,  \"aw\"\n\t"
 		 ".long 1b - ., %l[l_yes] - .\n\t"
--- a/arch/powerpc/include/asm/uaccess.h
+++ b/arch/powerpc/include/asm/uaccess.h
@@ -72,7 +72,7 @@ __pu_failed:							\
  * are no aliasing issues.
  */
 #define __put_user_asm_goto(x, addr, label, op)			\
-	asm_volatile_goto(					\
+	asm goto(					\
 		"1:	" op "%U1%X1 %0,%1	# put_user\n"	\
 		EX_TABLE(1b, %l2)				\
 		:						\
@@ -85,7 +85,7 @@ __pu_failed:							\
 	__put_user_asm_goto(x, ptr, label, "std")
 #else /* __powerpc64__ */
 #define __put_user_asm2_goto(x, addr, label)			\
-	asm_volatile_goto(					\
+	asm goto(					\
 		"1:	stw%X1 %0, %1\n"			\
 		"2:	stw%X1 %L0, %L1\n"			\
 		EX_TABLE(1b, %l2)				\
@@ -132,7 +132,7 @@ do {								\
 #ifdef CONFIG_CC_HAS_ASM_GOTO_OUTPUT
 
 #define __get_user_asm_goto(x, addr, label, op)			\
-	asm_volatile_goto(					\
+	asm_goto_output(					\
 		"1:	"op"%U1%X1 %0, %1	# get_user\n"	\
 		EX_TABLE(1b, %l2)				\
 		: "=r" (x)					\
@@ -145,7 +145,7 @@ do {								\
 	__get_user_asm_goto(x, addr, label, "ld")
 #else /* __powerpc64__ */
 #define __get_user_asm2_goto(x, addr, label)			\
-	asm_volatile_goto(					\
+	asm_goto_output(					\
 		"1:	lwz%X1 %0, %1\n"			\
 		"2:	lwz%X1 %L0, %L1\n"			\
 		EX_TABLE(1b, %l2)				\
--- a/arch/powerpc/kernel/irq_64.c
+++ b/arch/powerpc/kernel/irq_64.c
@@ -230,7 +230,7 @@ again:
 	 * This allows interrupts to be unmasked without hard disabling, and
 	 * also without new hard interrupts coming in ahead of pending ones.
 	 */
-	asm_volatile_goto(
+	asm goto(
 "1:					\n"
 "		lbz	9,%0(13)	\n"
 "		cmpwi	9,0		\n"
--- a/arch/riscv/include/asm/jump_label.h
+++ b/arch/riscv/include/asm/jump_label.h
@@ -17,7 +17,7 @@
 static __always_inline bool arch_static_branch(struct static_key * const key,
 					       const bool branch)
 {
-	asm_volatile_goto(
+	asm goto(
 		"	.align		2			\n\t"
 		"	.option push				\n\t"
 		"	.option norelax				\n\t"
@@ -39,7 +39,7 @@ label:
 static __always_inline bool arch_static_branch_jump(struct static_key * const key,
 						    const bool branch)
 {
-	asm_volatile_goto(
+	asm goto(
 		"	.align		2			\n\t"
 		"	.option push				\n\t"
 		"	.option norelax				\n\t"
--- a/arch/s390/include/asm/jump_label.h
+++ b/arch/s390/include/asm/jump_label.h
@@ -25,7 +25,7 @@
  */
 static __always_inline bool arch_static_branch(struct static_key *key, bool branch)
 {
-	asm_volatile_goto("0:	brcl 0,%l[label]\n"
+	asm goto("0:	brcl 0,%l[label]\n"
 			  ".pushsection __jump_table,\"aw\"\n"
 			  ".balign	8\n"
 			  ".long	0b-.,%l[label]-.\n"
@@ -39,7 +39,7 @@ label:
 
 static __always_inline bool arch_static_branch_jump(struct static_key *key, bool branch)
 {
-	asm_volatile_goto("0:	brcl 15,%l[label]\n"
+	asm goto("0:	brcl 15,%l[label]\n"
 			  ".pushsection __jump_table,\"aw\"\n"
 			  ".balign	8\n"
 			  ".long	0b-.,%l[label]-.\n"
--- a/arch/sparc/include/asm/jump_label.h
+++ b/arch/sparc/include/asm/jump_label.h
@@ -10,7 +10,7 @@
 
 static __always_inline bool arch_static_branch(struct static_key *key, bool branch)
 {
-	asm_volatile_goto("1:\n\t"
+	asm goto("1:\n\t"
 		 "nop\n\t"
 		 "nop\n\t"
 		 ".pushsection __jump_table,  \"aw\"\n\t"
@@ -26,7 +26,7 @@ l_yes:
 
 static __always_inline bool arch_static_branch_jump(struct static_key *key, bool branch)
 {
-	asm_volatile_goto("1:\n\t"
+	asm goto("1:\n\t"
 		 "b %l[l_yes]\n\t"
 		 "nop\n\t"
 		 ".pushsection __jump_table,  \"aw\"\n\t"
--- a/arch/um/include/asm/cpufeature.h
+++ b/arch/um/include/asm/cpufeature.h
@@ -75,7 +75,7 @@ extern void setup_clear_cpu_cap(unsigned
  */
 static __always_inline bool _static_cpu_has(u16 bit)
 {
-	asm_volatile_goto("1: jmp 6f\n"
+	asm goto("1: jmp 6f\n"
 		 "2:\n"
 		 ".skip -(((5f-4f) - (2b-1b)) > 0) * "
 			 "((5f-4f) - (2b-1b)),0x90\n"
--- a/arch/x86/include/asm/cpufeature.h
+++ b/arch/x86/include/asm/cpufeature.h
@@ -173,7 +173,7 @@ extern void clear_cpu_cap(struct cpuinfo
  */
 static __always_inline bool _static_cpu_has(u16 bit)
 {
-	asm_volatile_goto(
+	asm goto(
 		ALTERNATIVE_TERNARY("jmp 6f", %P[feature], "", "jmp %l[t_no]")
 		".pushsection .altinstr_aux,\"ax\"\n"
 		"6:\n"
--- a/arch/x86/include/asm/jump_label.h
+++ b/arch/x86/include/asm/jump_label.h
@@ -24,7 +24,7 @@
 
 static __always_inline bool arch_static_branch(struct static_key *key, bool branch)
 {
-	asm_volatile_goto("1:"
+	asm goto("1:"
 		"jmp %l[l_yes] # objtool NOPs this \n\t"
 		JUMP_TABLE_ENTRY
 		: :  "i" (key), "i" (2 | branch) : : l_yes);
@@ -38,7 +38,7 @@ l_yes:
 
 static __always_inline bool arch_static_branch(struct static_key * const key, const bool branch)
 {
-	asm_volatile_goto("1:"
+	asm goto("1:"
 		".byte " __stringify(BYTES_NOP5) "\n\t"
 		JUMP_TABLE_ENTRY
 		: :  "i" (key), "i" (branch) : : l_yes);
@@ -52,7 +52,7 @@ l_yes:
 
 static __always_inline bool arch_static_branch_jump(struct static_key * const key, const bool branch)
 {
-	asm_volatile_goto("1:"
+	asm goto("1:"
 		"jmp %l[l_yes]\n\t"
 		JUMP_TABLE_ENTRY
 		: :  "i" (key), "i" (branch) : : l_yes);
--- a/arch/x86/include/asm/rmwcc.h
+++ b/arch/x86/include/asm/rmwcc.h
@@ -18,7 +18,7 @@
 #define __GEN_RMWcc(fullop, _var, cc, clobbers, ...)			\
 ({									\
 	bool c = false;							\
-	asm_volatile_goto (fullop "; j" #cc " %l[cc_label]"		\
+	asm goto (fullop "; j" #cc " %l[cc_label]"		\
 			: : [var] "m" (_var), ## __VA_ARGS__		\
 			: clobbers : cc_label);				\
 	if (0) {							\
--- a/arch/x86/include/asm/uaccess.h
+++ b/arch/x86/include/asm/uaccess.h
@@ -155,7 +155,7 @@ extern int __get_user_bad(void);
 
 #ifdef CONFIG_X86_32
 #define __put_user_goto_u64(x, addr, label)			\
-	asm_volatile_goto("\n"					\
+	asm goto("\n"					\
 		     "1:	movl %%eax,0(%1)\n"		\
 		     "2:	movl %%edx,4(%1)\n"		\
 		     _ASM_EXTABLE_UA(1b, %l2)			\
@@ -317,7 +317,7 @@ do {									\
 } while (0)
 
 #define __get_user_asm(x, addr, itype, ltype, label)			\
-	asm_volatile_goto("\n"						\
+	asm_goto_output("\n"						\
 		     "1:	mov"itype" %[umem],%[output]\n"		\
 		     _ASM_EXTABLE_UA(1b, %l2)				\
 		     : [output] ltype(x)				\
@@ -397,7 +397,7 @@ do {									\
 	__typeof__(_ptr) _old = (__typeof__(_ptr))(_pold);		\
 	__typeof__(*(_ptr)) __old = *_old;				\
 	__typeof__(*(_ptr)) __new = (_new);				\
-	asm_volatile_goto("\n"						\
+	asm_goto_output("\n"						\
 		     "1: " LOCK_PREFIX "cmpxchg"itype" %[new], %[ptr]\n"\
 		     _ASM_EXTABLE_UA(1b, %l[label])			\
 		     : CC_OUT(z) (success),				\
@@ -416,7 +416,7 @@ do {									\
 	__typeof__(_ptr) _old = (__typeof__(_ptr))(_pold);		\
 	__typeof__(*(_ptr)) __old = *_old;				\
 	__typeof__(*(_ptr)) __new = (_new);				\
-	asm_volatile_goto("\n"						\
+	asm_goto_output("\n"						\
 		     "1: " LOCK_PREFIX "cmpxchg8b %[ptr]\n"		\
 		     _ASM_EXTABLE_UA(1b, %l[label])			\
 		     : CC_OUT(z) (success),				\
@@ -499,7 +499,7 @@ struct __large_struct { unsigned long bu
  * aliasing issues.
  */
 #define __put_user_goto(x, addr, itype, ltype, label)			\
-	asm_volatile_goto("\n"						\
+	asm goto("\n"							\
 		"1:	mov"itype" %0,%1\n"				\
 		_ASM_EXTABLE_UA(1b, %l2)				\
 		: : ltype(x), "m" (__m(addr))				\
--- a/arch/x86/include/asm/virtext.h
+++ b/arch/x86/include/asm/virtext.h
@@ -43,9 +43,9 @@ static inline int cpu_has_vmx(void)
  */
 static inline int cpu_vmxoff(void)
 {
-	asm_volatile_goto("1: vmxoff\n\t"
-			  _ASM_EXTABLE(1b, %l[fault])
-			  ::: "cc", "memory" : fault);
+	asm goto("1: vmxoff\n\t"
+		  _ASM_EXTABLE(1b, %l[fault])
+		  ::: "cc", "memory" : fault);
 
 	cr4_clear_bits(X86_CR4_VMXE);
 	return 0;
@@ -129,9 +129,9 @@ static inline void cpu_svm_disable(void)
 		 * case, GIF must already be set, otherwise the NMI would have
 		 * been blocked, so just eat the fault.
 		 */
-		asm_volatile_goto("1: stgi\n\t"
-				  _ASM_EXTABLE(1b, %l[fault])
-				  ::: "memory" : fault);
+		asm goto("1: stgi\n\t"
+			  _ASM_EXTABLE(1b, %l[fault])
+			  ::: "memory" : fault);
 fault:
 		wrmsrl(MSR_EFER, efer & ~EFER_SVME);
 	}
--- a/arch/x86/kvm/svm/svm_ops.h
+++ b/arch/x86/kvm/svm/svm_ops.h
@@ -8,7 +8,7 @@
 
 #define svm_asm(insn, clobber...)				\
 do {								\
-	asm_volatile_goto("1: " __stringify(insn) "\n\t"	\
+	asm goto("1: " __stringify(insn) "\n\t"	\
 			  _ASM_EXTABLE(1b, %l[fault])		\
 			  ::: clobber : fault);			\
 	return;							\
@@ -18,7 +18,7 @@ fault:								\
 
 #define svm_asm1(insn, op1, clobber...)				\
 do {								\
-	asm_volatile_goto("1: "  __stringify(insn) " %0\n\t"	\
+	asm goto("1: "  __stringify(insn) " %0\n\t"	\
 			  _ASM_EXTABLE(1b, %l[fault])		\
 			  :: op1 : clobber : fault);		\
 	return;							\
@@ -28,7 +28,7 @@ fault:								\
 
 #define svm_asm2(insn, op1, op2, clobber...)				\
 do {									\
-	asm_volatile_goto("1: "  __stringify(insn) " %1, %0\n\t"	\
+	asm goto("1: "  __stringify(insn) " %1, %0\n\t"	\
 			  _ASM_EXTABLE(1b, %l[fault])			\
 			  :: op1, op2 : clobber : fault);		\
 	return;								\
--- a/arch/x86/kvm/vmx/vmx.c
+++ b/arch/x86/kvm/vmx/vmx.c
@@ -2469,10 +2469,10 @@ static int kvm_cpu_vmxon(u64 vmxon_point
 
 	cr4_set_bits(X86_CR4_VMXE);
 
-	asm_volatile_goto("1: vmxon %[vmxon_pointer]\n\t"
-			  _ASM_EXTABLE(1b, %l[fault])
-			  : : [vmxon_pointer] "m"(vmxon_pointer)
-			  : : fault);
+	asm goto("1: vmxon %[vmxon_pointer]\n\t"
+		  _ASM_EXTABLE(1b, %l[fault])
+		  : : [vmxon_pointer] "m"(vmxon_pointer)
+		  : : fault);
 	return 0;
 
 fault:
--- a/arch/x86/kvm/vmx/vmx_ops.h
+++ b/arch/x86/kvm/vmx/vmx_ops.h
@@ -73,7 +73,7 @@ static __always_inline unsigned long __v
 
 #ifdef CONFIG_CC_HAS_ASM_GOTO_OUTPUT
 
-	asm_volatile_goto("1: vmread %[field], %[output]\n\t"
+	asm_goto_output("1: vmread %[field], %[output]\n\t"
 			  "jna %l[do_fail]\n\t"
 
 			  _ASM_EXTABLE(1b, %l[do_exception])
@@ -166,7 +166,7 @@ static __always_inline unsigned long vmc
 
 #define vmx_asm1(insn, op1, error_args...)				\
 do {									\
-	asm_volatile_goto("1: " __stringify(insn) " %0\n\t"		\
+	asm goto("1: " __stringify(insn) " %0\n\t"			\
 			  ".byte 0x2e\n\t" /* branch not taken hint */	\
 			  "jna %l[error]\n\t"				\
 			  _ASM_EXTABLE(1b, %l[fault])			\
@@ -183,7 +183,7 @@ fault:									\
 
 #define vmx_asm2(insn, op1, op2, error_args...)				\
 do {									\
-	asm_volatile_goto("1: "  __stringify(insn) " %1, %0\n\t"	\
+	asm goto("1: "  __stringify(insn) " %1, %0\n\t"			\
 			  ".byte 0x2e\n\t" /* branch not taken hint */	\
 			  "jna %l[error]\n\t"				\
 			  _ASM_EXTABLE(1b, %l[fault])			\
--- a/arch/xtensa/include/asm/jump_label.h
+++ b/arch/xtensa/include/asm/jump_label.h
@@ -13,7 +13,7 @@
 static __always_inline bool arch_static_branch(struct static_key *key,
 					       bool branch)
 {
-	asm_volatile_goto("1:\n\t"
+	asm goto("1:\n\t"
 			  "_nop\n\t"
 			  ".pushsection __jump_table,  \"aw\"\n\t"
 			  ".word 1b, %l[l_yes], %c0\n\t"
@@ -38,7 +38,7 @@ static __always_inline bool arch_static_
 	 * make it reachable and wrap both into a no-transform block
 	 * to avoid any assembler interference with this.
 	 */
-	asm_volatile_goto("1:\n\t"
+	asm goto("1:\n\t"
 			  ".begin no-transform\n\t"
 			  "_j %l[l_yes]\n\t"
 			  "2:\n\t"
--- a/include/linux/compiler-gcc.h
+++ b/include/linux/compiler-gcc.h
@@ -66,6 +66,25 @@
 		__builtin_unreachable();	\
 	} while (0)
 
+/*
+ * GCC 'asm goto' with outputs miscompiles certain code sequences:
+ *
+ *   https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110420
+ *   https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110422
+ *
+ * Work it around via the same compiler barrier quirk that we used
+ * to use for the old 'asm goto' workaround.
+ *
+ * Also, always mark such 'asm goto' statements as volatile: all
+ * asm goto statements are supposed to be volatile as per the
+ * documentation, but some versions of gcc didn't actually do
+ * that for asms with outputs:
+ *
+ *    https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98619
+ */
+#define asm_goto_output(x...) \
+	do { asm volatile goto(x); asm (""); } while (0)
+
 #if defined(CONFIG_ARCH_USE_BUILTIN_BSWAP)
 #define __HAVE_BUILTIN_BSWAP32__
 #define __HAVE_BUILTIN_BSWAP64__
--- a/include/linux/compiler_types.h
+++ b/include/linux/compiler_types.h
@@ -284,8 +284,8 @@ struct ftrace_likely_data {
 # define __realloc_size(x, ...)
 #endif
 
-#ifndef asm_volatile_goto
-#define asm_volatile_goto(x...) asm goto(x)
+#ifndef asm_goto_output
+#define asm_goto_output(x...) asm goto(x)
 #endif
 
 #ifdef CONFIG_CC_HAS_ASM_INLINE
--- a/net/netfilter/nft_set_pipapo_avx2.c
+++ b/net/netfilter/nft_set_pipapo_avx2.c
@@ -57,7 +57,7 @@
 
 /* Jump to label if @reg is zero */
 #define NFT_PIPAPO_AVX2_NOMATCH_GOTO(reg, label)			\
-	asm_volatile_goto("vptest %%ymm" #reg ", %%ymm" #reg ";"	\
+	asm goto("vptest %%ymm" #reg ", %%ymm" #reg ";"	\
 			  "je %l[" #label "]" : : : : label)
 
 /* Store 256 bits from YMM register into memory. Contrary to bucket load
--- a/samples/bpf/asm_goto_workaround.h
+++ b/samples/bpf/asm_goto_workaround.h
@@ -4,14 +4,14 @@
 #define __ASM_GOTO_WORKAROUND_H
 
 /*
- * This will bring in asm_volatile_goto and asm_inline macro definitions
+ * This will bring in asm_goto_output and asm_inline macro definitions
  * if enabled by compiler and config options.
  */
 #include <linux/types.h>
 
-#ifdef asm_volatile_goto
-#undef asm_volatile_goto
-#define asm_volatile_goto(x...) asm volatile("invalid use of asm_volatile_goto")
+#ifdef asm_goto_output
+#undef asm_goto_output
+#define asm_goto_output(x...) asm volatile("invalid use of asm_goto_output")
 #endif
 
 /*
--- a/tools/arch/x86/include/asm/rmwcc.h
+++ b/tools/arch/x86/include/asm/rmwcc.h
@@ -4,7 +4,7 @@
 
 #define __GEN_RMWcc(fullop, var, cc, ...)				\
 do {									\
-	asm_volatile_goto (fullop "; j" cc " %l[cc_label]"		\
+	asm goto (fullop "; j" cc " %l[cc_label]"		\
 			: : "m" (var), ## __VA_ARGS__ 			\
 			: "memory" : cc_label);				\
 	return 0;							\
--- a/tools/include/linux/compiler_types.h
+++ b/tools/include/linux/compiler_types.h
@@ -36,8 +36,8 @@
 #include <linux/compiler-gcc.h>
 #endif
 
-#ifndef asm_volatile_goto
-#define asm_volatile_goto(x...) asm goto(x)
+#ifndef asm_goto_output
+#define asm_goto_output(x...) asm goto(x)
 #endif
 
 #endif /* __LINUX_COMPILER_TYPES_H */



^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH 6.1 000/206] 6.1.79-rc1 review
  2024-02-21 12:58 [PATCH 6.1 000/206] 6.1.79-rc1 review Greg Kroah-Hartman
  2024-02-21 12:58 ` [PATCH 6.1 001/206] work around gcc bugs with asm goto with outputs Greg Kroah-Hartman
@ 2024-02-21 13:07 ` Greg Kroah-Hartman
  1 sibling, 0 replies; 3+ messages in thread
From: Greg Kroah-Hartman @ 2024-02-21 13:07 UTC (permalink / raw)
  To: stable
  Cc: patches, linux-kernel, torvalds, akpm, linux, shuah, patches,
	lkft-triage, pavel, jonathanh, f.fainelli, sudipm.mukherjee, srw,
	rwarsow, conor, allen.lkml

On Wed, Feb 21, 2024 at 01:58:04PM +0100, Greg Kroah-Hartman wrote:
> This is the start of the stable review cycle for the 6.1.79 release.
> There are 206 patches in this series, all will be posted as a response
> to this one.  If anyone has any issues with these being applied, please
> let me know.
> 
> Responses should be made by Fri, 23 Feb 2024 12:59:02 +0000.
> Anything received after that time might be too late.
> 
> The whole patch series can be found in one patch at:
> 	https://www.kernel.org/pub/linux/kernel/v6.x/stable-review/patch-6.1.79-rc1.gz
> or in the git tree and branch at:
> 	git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git linux-6.1.y
> and the diffstat can be found below.

Oops, nope, this should have been -rc2, will fix that up and resend,
sorry for the noise.

greg k-h

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2024-02-21 13:07 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-02-21 12:58 [PATCH 6.1 000/206] 6.1.79-rc1 review Greg Kroah-Hartman
2024-02-21 12:58 ` [PATCH 6.1 001/206] work around gcc bugs with asm goto with outputs Greg Kroah-Hartman
2024-02-21 13:07 ` [PATCH 6.1 000/206] 6.1.79-rc1 review Greg Kroah-Hartman

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox