The patch below does not apply to the 6.6-stable tree.
If someone wants it applied there, or to any other stable or longterm
tree, then please email the backport, including the original git commit
id to <stable(a)vger.kernel.org>.
To reproduce the conflict and resubmit, you may use the following commands:
git fetch https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/ linux-6.6.y
git checkout FETCH_HEAD
git cherry-pick -x f2655ac2c06a15558e51ed6529de280e1553c86e
# <resolve conflicts, build, test, etc.>
git commit -s
git send-email --to '<stable(a)vger.kernel.org>' --in-reply-to '2024081130-crucial-lurch-a32a@gregkh' --subject-prefix 'PATCH 6.6.y' HEAD^..
Possible dependencies:
f2655ac2c06a ("clocksource: Fix brown-bag boolean thinko in cs_watchdog_read()")
2ed08e4bc532 ("clocksource: Scale the watchdog read retries automatically")
thanks,
greg k-h
------------------ original commit in Linus's tree ------------------
From f2655ac2c06a15558e51ed6529de280e1553c86e Mon Sep 17 00:00:00 2001
From: "Paul E. McKenney" <paulmck(a)kernel.org>
Date: Fri, 2 Aug 2024 08:46:15 -0700
Subject: [PATCH] clocksource: Fix brown-bag boolean thinko in
cs_watchdog_read()
The current "nretries > 1 || nretries >= max_retries" check in
cs_watchdog_read() will always evaluate to true, and thus pr_warn(), if
nretries is greater than 1. The intent is instead to never warn on the
first try, but otherwise warn if the successful retry was the last retry.
Therefore, change that "||" to "&&".
Fixes: db3a34e17433 ("clocksource: Retry clock read if long delays detected")
Reported-by: Borislav Petkov <bp(a)alien8.de>
Signed-off-by: Paul E. McKenney <paulmck(a)kernel.org>
Signed-off-by: Thomas Gleixner <tglx(a)linutronix.de>
Cc: stable(a)vger.kernel.org
Link: https://lore.kernel.org/all/20240802154618.4149953-2-paulmck@kernel.org
diff --git a/kernel/time/clocksource.c b/kernel/time/clocksource.c
index d25ba49e313c..d0538a75f4c6 100644
--- a/kernel/time/clocksource.c
+++ b/kernel/time/clocksource.c
@@ -246,7 +246,7 @@ static enum wd_read_status cs_watchdog_read(struct clocksource *cs, u64 *csnow,
wd_delay = cycles_to_nsec_safe(watchdog, *wdnow, wd_end);
if (wd_delay <= WATCHDOG_MAX_SKEW) {
- if (nretries > 1 || nretries >= max_retries) {
+ if (nretries > 1 && nretries >= max_retries) {
pr_warn("timekeeping watchdog on CPU%d: %s retried %d times before success\n",
smp_processor_id(), watchdog->name, nretries);
}
On Sun, Aug 11, 2024 at 1:59 PM Sasha Levin <sashal(a)kernel.org> wrote:
>
> This is a note to let you know that I've just added the patch titled
>
> btrfs: reduce nesting for extent processing at btrfs_lookup_extent_info()
>
> to the 6.10-stable tree which can be found at:
> http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=sum…
>
> The filename of the patch is:
> btrfs-reduce-nesting-for-extent-processing-at-btrfs_.patch
> and it can be found in the queue-6.10 subdirectory.
>
> If you, or anyone else, feels it should not be added to the stable tree,
> please let <stable(a)vger.kernel.org> know about it.
Why is this being added to stable releases?
It's just a cleanup, it doesn't fix any bug or compiler warning, etc.
>
>
>
> commit 5a0873e18421183cf695cc5f2c851aac4e1d832c
> Author: Filipe Manana <fdmanana(a)suse.com>
> Date: Tue Jun 18 11:52:19 2024 +0100
>
> btrfs: reduce nesting for extent processing at btrfs_lookup_extent_info()
>
> [ Upstream commit 5c83b3beaee06aa88d4015408ac2d8bb35380b06 ]
>
> Instead of using an if-else statement when processing the extent item at
> btrfs_lookup_extent_info(), use a single if statement for the error case
> since it does a goto at the end and leave the success (expected) case
> following the if statement, reducing indentation and making the logic a
> bit easier to follow. Also make the if statement's condition as unlikely
> since it's not expected to ever happen, as it signals some corruption,
> making it clear and hint the compiler to generate more efficient code.
>
> Reviewed-by: Qu Wenruo <wqu(a)suse.com>
> Signed-off-by: Filipe Manana <fdmanana(a)suse.com>
> Signed-off-by: David Sterba <dsterba(a)suse.com>
> Signed-off-by: Sasha Levin <sashal(a)kernel.org>
>
> diff --git a/fs/btrfs/extent-tree.c b/fs/btrfs/extent-tree.c
> index 153297cb97a4a..844b677d054ec 100644
> --- a/fs/btrfs/extent-tree.c
> +++ b/fs/btrfs/extent-tree.c
> @@ -104,10 +104,7 @@ int btrfs_lookup_extent_info(struct btrfs_trans_handle *trans,
> struct btrfs_delayed_ref_head *head;
> struct btrfs_delayed_ref_root *delayed_refs;
> struct btrfs_path *path;
> - struct btrfs_extent_item *ei;
> - struct extent_buffer *leaf;
> struct btrfs_key key;
> - u32 item_size;
> u64 num_refs;
> u64 extent_flags;
> u64 owner = 0;
> @@ -157,16 +154,11 @@ int btrfs_lookup_extent_info(struct btrfs_trans_handle *trans,
> }
>
> if (ret == 0) {
> - leaf = path->nodes[0];
> - item_size = btrfs_item_size(leaf, path->slots[0]);
> - if (item_size >= sizeof(*ei)) {
> - ei = btrfs_item_ptr(leaf, path->slots[0],
> - struct btrfs_extent_item);
> - num_refs = btrfs_extent_refs(leaf, ei);
> - extent_flags = btrfs_extent_flags(leaf, ei);
> - owner = btrfs_get_extent_owner_root(fs_info, leaf,
> - path->slots[0]);
> - } else {
> + struct extent_buffer *leaf = path->nodes[0];
> + struct btrfs_extent_item *ei;
> + const u32 item_size = btrfs_item_size(leaf, path->slots[0]);
> +
> + if (unlikely(item_size < sizeof(*ei))) {
> ret = -EUCLEAN;
> btrfs_err(fs_info,
> "unexpected extent item size, has %u expect >= %zu",
> @@ -179,6 +171,10 @@ int btrfs_lookup_extent_info(struct btrfs_trans_handle *trans,
> goto out_free;
> }
>
> + ei = btrfs_item_ptr(leaf, path->slots[0], struct btrfs_extent_item);
> + num_refs = btrfs_extent_refs(leaf, ei);
> + extent_flags = btrfs_extent_flags(leaf, ei);
> + owner = btrfs_get_extent_owner_root(fs_info, leaf, path->slots[0]);
> BUG_ON(num_refs == 0);
> } else {
> num_refs = 0;
bpf tool build fails for the latest stable-rc 6.1.103-rc3
The error details are as follows:
prog.c: In function 'load_with_options':
prog.c:1710:23: warning: implicit declaration of function 'create_and_mount_bpffs_dir' [-Wimplicit-function-declaration]
1710 | err = create_and_mount_bpffs_dir(pinmaps);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~
CC struct_ops.o
CC tracelog.o
CC xlated_dumper.o
CC jit_disasm.o
CC disasm.o
LINK bpftool
/usr/bin/ld: prog.o: in function `load_with_options':
prog.c:(.text+0x346a): undefined reference to `create_and_mount_bpffs_dir'
The commit causing this failure in 6.1.103-rc3: bc1605fcb33bf7a300cd3ac5c409a16bda1626ba
It appears that the commit from the 6.10 series is missing in this release candidate:
478a535ae54a ("bpftool: Mount bpffs on provided dir instead of parent dir")
Thanks,
Hardik
From: "Matthieu Baerts (NGI0)" <matttbe(a)kernel.org>
Before this patch, receiving an ADD_ADDR echo on the just connected
MP_JOIN subflow -- initiator side, after the MP_JOIN 3WHS -- was
resulting in an MP_RESET. That's because only ACKs with a DSS or
ADD_ADDRs without the echo bit were allowed.
Not allowing the ADD_ADDR echo after an MP_CAPABLE 3WHS makes sense, as
we are not supposed to send an ADD_ADDR before because it requires to be
in full established mode first. For the MP_JOIN 3WHS, that's different:
the ADD_ADDR can be sent on a previous subflow, and the ADD_ADDR echo
can be received on the recently created one. The other peer will already
be in fully established, so it is allowed to send that.
We can then relax the conditions here to accept the ADD_ADDR echo for
MPJ subflows.
Fixes: 67b12f792d5e ("mptcp: full fully established support after ADD_ADDR")
Cc: stable(a)vger.kernel.org
Reviewed-by: Mat Martineau <martineau(a)kernel.org>
Signed-off-by: Matthieu Baerts (NGI0) <matttbe(a)kernel.org>
Link: https://patch.msgid.link/20240731-upstream-net-20240731-mptcp-endp-subflow-…
Signed-off-by: Jakub Kicinski <kuba(a)kernel.org>
---
net/mptcp/options.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/net/mptcp/options.c b/net/mptcp/options.c
index 8a68382a4fe9..ac2f1a54cc43 100644
--- a/net/mptcp/options.c
+++ b/net/mptcp/options.c
@@ -958,7 +958,8 @@ static bool check_fully_established(struct mptcp_sock *msk, struct sock *ssk,
if (subflow->remote_key_valid &&
(((mp_opt->suboptions & OPTION_MPTCP_DSS) && mp_opt->use_ack) ||
- ((mp_opt->suboptions & OPTION_MPTCP_ADD_ADDR) && !mp_opt->echo))) {
+ ((mp_opt->suboptions & OPTION_MPTCP_ADD_ADDR) &&
+ (!mp_opt->echo || subflow->mp_join)))) {
/* subflows are fully established as soon as we get any
* additional ack, including ADD_ADDR.
*/
--
2.17.1
I'm announcing the release of the 6.1.104 kernel.
All users of the 6.1 kernel series must upgrade.
The updated 6.1.y git tree can be found at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git linux-6.1.y
and can be browsed at the normal kernel.org git web browser:
https://git.kernel.org/?p=linux/kernel/git/stable/linux-stable.git;a=summary
thanks,
greg k-h
------------
Makefile | 2
arch/arm64/boot/dts/qcom/ipq8074.dtsi | 2
arch/arm64/boot/dts/qcom/msm8998.dtsi | 36 +---
arch/arm64/include/asm/jump_label.h | 1
arch/arm64/kernel/jump_label.c | 11 +
arch/mips/boot/dts/loongson/loongson64-2k1000.dtsi | 84 +++++++---
arch/riscv/mm/fault.c | 17 +-
drivers/cpufreq/qcom-cpufreq-nvmem.c | 56 +++----
drivers/gpu/drm/i915/display/intel_dp_link_training.c | 54 ++++++
drivers/gpu/drm/i915/display/intel_dpll_mgr.c | 6
drivers/gpu/drm/i915/display/intel_hdcp_regs.h | 2
drivers/gpu/drm/nouveau/nouveau_prime.c | 3
drivers/gpu/drm/udl/Makefile | 2
drivers/gpu/drm/udl/udl_connector.c | 139 ------------------
drivers/gpu/drm/udl/udl_connector.h | 15 -
drivers/gpu/drm/udl/udl_drv.h | 11 +
drivers/gpu/drm/udl/udl_modeset.c | 135 +++++++++++++++++
drivers/gpu/drm/vmwgfx/vmwgfx_fence.c | 17 --
drivers/gpu/drm/vmwgfx/vmwgfx_overlay.c | 2
drivers/gpu/drm/vmwgfx/vmwgfx_stdu.c | 29 +++
drivers/hid/amd-sfh-hid/amd_sfh_client.c | 55 ++-----
drivers/hid/wacom_wac.c | 3
drivers/leds/led-triggers.c | 32 ++--
drivers/leds/trigger/ledtrig-timer.c | 5
drivers/net/ethernet/intel/ice/ice_txrx.c | 2
drivers/net/ethernet/intel/ice/ice_xsk.c | 19 +-
drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c | 6
drivers/net/ethernet/mellanox/mlx5/core/en_ethtool.c | 7
drivers/net/ethernet/mellanox/mlx5/core/fw_reset.c | 5
drivers/net/ethernet/mellanox/mlx5/core/lag/lag.c | 2
drivers/net/ethernet/realtek/r8169_main.c | 8 -
drivers/net/ethernet/xilinx/xilinx_axienet_main.c | 2
drivers/net/usb/sr9700.c | 11 +
drivers/platform/chrome/cros_ec_proto.c | 2
fs/btrfs/block-group.c | 13 +
fs/btrfs/extent-tree.c | 3
fs/btrfs/free-space-cache.c | 4
fs/btrfs/space-info.c | 2
fs/btrfs/space-info.h | 1
fs/ext4/extents.c | 5
fs/ext4/extents_status.c | 14 -
fs/ext4/extents_status.h | 6
fs/ext4/inode.c | 115 ++++++++------
fs/f2fs/segment.c | 4
fs/file.c | 1
fs/proc/proc_sysctl.c | 8 -
include/linux/leds.h | 30 +--
include/linux/sysctl.h | 1
include/trace/events/btrfs.h | 8 +
include/trace/events/mptcp.h | 2
init/Kconfig | 1
ipc/ipc_sysctl.c | 36 ++++
ipc/mq_sysctl.c | 35 ++++
kernel/irq/irqdomain.c | 7
mm/Kconfig | 11 +
mm/page_alloc.c | 19 +-
net/bluetooth/hci_sync.c | 21 ++
net/core/rtnetlink.c | 2
net/ipv4/netfilter/iptable_nat.c | 18 +-
net/ipv6/ndisc.c | 34 ++--
net/ipv6/netfilter/ip6table_nat.c | 14 +
net/iucv/af_iucv.c | 4
net/mptcp/options.c | 2
net/mptcp/pm_netlink.c | 28 ++-
net/mptcp/protocol.c | 18 +-
net/mptcp/protocol.h | 1
net/mptcp/subflow.c | 17 +-
net/netfilter/ipset/ip_set_list_set.c | 3
net/sched/act_ct.c | 4
net/sysctl_net.c | 1
sound/firewire/amdtp-stream.c | 38 +++-
sound/firewire/amdtp-stream.h | 1
sound/pci/hda/hda_controller.h | 2
sound/pci/hda/hda_intel.c | 10 +
sound/pci/hda/patch_conexant.c | 54 +-----
sound/pci/hda/patch_realtek.c | 1
sound/usb/stream.c | 4
tools/testing/selftests/net/mptcp/mptcp_connect.c | 8 -
78 files changed, 812 insertions(+), 582 deletions(-)
Al Viro (1):
protect the fetch of ->fd[fd] in do_dup2() from mispredictions
Alexander Maltsev (1):
netfilter: ipset: Add list flush to cancel_gc
Alexandra Winter (1):
net/iucv: fix use after free in iucv_sock_close()
Alexey Gladkov (2):
sysctl: allow change system v ipc sysctls inside ipc namespace
sysctl: allow to change limits for posix messages queues
Alice Ryhl (1):
rust: SHADOW_CALL_STACK is incompatible with Rust
Andy Chiu (1):
net: axienet: start napi before enabling Rx/Tx
Baokun Li (1):
ext4: make ext4_es_insert_extent() return void
Basavaraj Natikar (3):
HID: amd_sfh: Remove duplicate cleanup
HID: amd_sfh: Split sensor and HID initialization
HID: amd_sfh: Move sensor discovery before HID device initialization
Binbin Zhou (1):
MIPS: Loongson64: DTS: Add RTC support to Loongson-2K1000
Dan Carpenter (1):
net: mvpp2: Don't re-use loop iterator
Danilo Krummrich (1):
drm/nouveau: prime: fix refcount underflow
Dmitry Baryshkov (1):
arm64: dts: qcom: msm8998: switch USB QMP PHY to new style of bindings
Edmund Raile (2):
Revert "ALSA: firewire-lib: obsolete workqueue for period update"
Revert "ALSA: firewire-lib: operate for period elapse event in process context"
Eric Dumazet (1):
sched: act_ct: take care of padding in struct zones_ht_key
Greg Kroah-Hartman (1):
Linux 6.1.104
Hans de Goede (1):
leds: trigger: Call synchronize_rcu() before calling trig->activate()
Heiner Kallweit (3):
leds: trigger: Remove unused function led_trigger_rename_static()
leds: trigger: Store brightness set by led_trigger_event()
r8169: don't increment tx_dropped in case of NETDEV_TX_BUSY
Herve Codina (1):
irqdomain: Fixed unbalanced fwnode get and put
Huang Ying (1):
mm: restrict the pcp batch scale factor to avoid too long latency
Ian Forbes (2):
drm/vmwgfx: Fix overlay when using Screen Targets
drm/vmwgfx: Trigger a modeset when the screen moves
Imre Deak (1):
drm/i915/dp: Don't switch the LTTPR mode on an active link
Jaegeuk Kim (1):
f2fs: assign CURSEG_ALL_DATA_ATGC if blkaddr is valid
Javier Carrasco (1):
cpufreq: qcom-nvmem: fix memory leaks in probe error paths
Jiaxun Yang (3):
MIPS: Loongson64: DTS: Fix PCIe port nodes for ls7a
MIPS: dts: loongson: Fix liointc IRQ polarity
MIPS: dts: loongson: Fix ls2k1000-rtc interrupt
Krishna Kurapati (2):
arm64: dts: qcom: msm8998: Disable SS instance in Parkmode for USB
arm64: dts: qcom: ipq8074: Disable SS instance in Parkmode for USB
Kuniyuki Iwashima (3):
rtnetlink: Don't ignore IFLA_TARGET_NETNSID when ifname is specified in rtnl_dellink().
netfilter: iptables: Fix null-ptr-deref in iptable_nat_table_init().
netfilter: iptables: Fix potential null-ptr-deref in ip6table_nat_table_init().
Li Zhijian (1):
mm/page_alloc: fix pcp->count race between drain_pages_zone() vs __rmqueue_pcplist()
Liu Jing (1):
selftests: mptcp: always close input's FD if opened
Lucas Stach (1):
mm: page_alloc: control latency caused by zone PCP draining
Luiz Augusto von Dentz (1):
Bluetooth: hci_sync: Fix suspending with wrong filter policy
Ma Ke (1):
net: usb: sr9700: fix uninitialized variable use in sr_mdio_read
Maciej Fijalkowski (3):
ice: don't busy wait for Rx queue disable in ice_qp_dis()
ice: replace synchronize_rcu with synchronize_net
ice: add missing WRITE_ONCE when clearing ice_rx_ring::xdp_prog
Maciej Żenczykowski (1):
ipv6: fix ndisc_is_useropt() handling for PIO
Mark Bloch (1):
net/mlx5: Lag, don't use the hardcoded value of the first port
Matthieu Baerts (NGI0) (3):
mptcp: sched: check both directions for backup
mptcp: distinguish rcv vs sent backup flag in requests
mptcp: pm: only set request_bkup flag when sending MP_PRIO
Mavroudis Chatzilazaridis (1):
ALSA: hda/realtek: Add quirk for Acer Aspire E5-574G
Michal Kubiak (1):
ice: respect netif readiness in AF_XDP ZC related ndo's
Moshe Shemesh (1):
net/mlx5: Fix missing lock on sync reset reload
Naohiro Aota (1):
btrfs: zoned: fix zone_unusable accounting on making block group read-write again
Nikita Zhandarovich (1):
drm/i915: Fix possible int overflow in skl_ddi_calculate_wrpll()
Paolo Abeni (4):
mptcp: fix user-space PM announced address accounting
mptcp: fix NL PM announced address accounting
mptcp: fix bad RCVPRUNED mib accounting
mptcp: fix duplicate data handling
Patryk Duda (1):
platform/chrome: cros_ec_proto: Lock device when updating MKBP version
Shahar Shitrit (1):
net/mlx5e: Add a check for the return value from mlx5_port_set_eth_ptys
Stephan Gerhold (1):
cpufreq: qcom-nvmem: Simplify driver data allocation
Suraj Kandpal (1):
drm/i915/hdcp: Fix HDCP2_STREAM_STATUS macro
Takashi Iwai (2):
ALSA: hda: Conditionally use snooping for AMD HDMI
ALSA: usb-audio: Correct surround channels in UAC1 channel map
Tatsunosuke Tobita (1):
HID: wacom: Modify pen IDs
Thomas Weißschuh (3):
sysctl: treewide: drop unused argument ctl_table_root::set_ownership(table)
sysctl: always initialize i_uid/i_gid
leds: triggers: Flush pending brightness before activating trigger
Thomas Zimmermann (6):
drm/udl: Rename struct udl_drm_connector to struct udl_connector
drm/udl: Test pixel limit in mode-config's mode-valid function
drm/udl: Use USB timeout constant when reading EDID
drm/udl: Various improvements to the connector
drm/udl: Move connector to modesetting code
drm/udl: Remove DRM_CONNECTOR_POLL_HPD
Will Deacon (1):
arm64: jump_label: Ensure patched jump_labels are visible to all CPUs
Yangtao Li (1):
cpufreq: qcom-nvmem: Convert to platform remove callback returning void
Zack Rusin (1):
drm/vmwgfx: Fix a deadlock in dma buf fence polling
Zhang Yi (4):
ext4: refactor ext4_da_map_blocks()
ext4: convert to exclusive lock while inserting delalloc extents
ext4: factor out a common helper to query extent map
ext4: check the extent status again before inserting delalloc block
Zhe Qiao (1):
riscv/mm: Add handling for VM_FAULT_SIGSEGV in mm_fault_error()
Zhiguo Niu (1):
f2fs: fix to avoid use SSR allocate when do defragment
songxiebing (1):
ALSA: hda: conexant: Fix headset auto detect fail in the polling mode