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
From: Mitchell Levy <levymitchell0(a)gmail.com>
When computing which xfeatures are available, make sure that LBR is only
present if both LBR is supported in general, as well as by XSAVES.
There are two distinct CPU features related to the use of XSAVES as it
applies to LBR: whether LBR is itself supported (strictly speaking, I'm
not sure that this is necessary to check though it's certainly a good
sanity check), and whether XSAVES supports LBR (see sections 13.2 and
13.5.12 of the Intel 64 and IA-32 Architectures Software Developer's
Manual, Volume 1). Currently, the LBR subsystem correctly checks both
(see intel_pmu_arch_lbr_init), however the xstate initialization
subsystem does not.
When calculating what value to place in the IA32_XSS MSR,
xfeatures_mask_independent only checks whether LBR support is present,
not whether XSAVES supports LBR. If XSAVES does not support LBR, this
write causes #GP, leaving the state of IA32_XSS unchanged (i.e., set to
zero, as its not written with other values, and its default value is
zero out of RESET per section 13.3 of the arch manual).
Then, the next time XRSTORS is used to restore supervisor state, it will
fail with #GP (because the RFBM has zero for all supervisor features,
which does not match the XCOMP_BV field). In particular,
XFEATURE_MASK_FPSTATE includes supervisor features, so setting up the FPU
will cause a #GP. This results in a call to fpu_reset_from_exception_fixup,
which by the same process results in another #GP. Eventually this causes
the kernel to run out of stack space and #DF.
Fixes: f0dccc9da4c0 ("x86/fpu/xstate: Support dynamic supervisor feature for LBR")
Cc: stable(a)vger.kernel.org
Signed-off-by: Mitchell Levy <levymitchell0(a)gmail.com>
---
Changes in v2:
- Corrected Fixes tag (thanks tglx)
- Properly check for XSAVES support of LBR (thanks tglx)
- Link to v1: https://lore.kernel.org/r/20240808-xsave-lbr-fix-v1-1-a223806c83e7@gmail.com
---
arch/x86/include/asm/fpu/types.h | 7 +++++++
arch/x86/kernel/fpu/xstate.c | 3 +++
arch/x86/kernel/fpu/xstate.h | 4 ++--
3 files changed, 12 insertions(+), 2 deletions(-)
diff --git a/arch/x86/include/asm/fpu/types.h b/arch/x86/include/asm/fpu/types.h
index eb17f31b06d2..de16862bf230 100644
--- a/arch/x86/include/asm/fpu/types.h
+++ b/arch/x86/include/asm/fpu/types.h
@@ -591,6 +591,13 @@ struct fpu_state_config {
* even without XSAVE support, i.e. legacy features FP + SSE
*/
u64 legacy_features;
+ /*
+ * @independent_features:
+ *
+ * Features that are supported by XSAVES, but not managed as part of
+ * the FPU core, such as LBR
+ */
+ u64 independent_features;
};
/* FPU state configuration information */
diff --git a/arch/x86/kernel/fpu/xstate.c b/arch/x86/kernel/fpu/xstate.c
index c5a026fee5e0..1339f8328db5 100644
--- a/arch/x86/kernel/fpu/xstate.c
+++ b/arch/x86/kernel/fpu/xstate.c
@@ -788,6 +788,9 @@ void __init fpu__init_system_xstate(unsigned int legacy_size)
goto out_disable;
}
+ fpu_kernel_cfg.independent_features = fpu_kernel_cfg.max_features &
+ XFEATURE_MASK_INDEPENDENT;
+
/*
* Clear XSAVE features that are disabled in the normal CPUID.
*/
diff --git a/arch/x86/kernel/fpu/xstate.h b/arch/x86/kernel/fpu/xstate.h
index 2ee0b9c53dcc..afb404cd2059 100644
--- a/arch/x86/kernel/fpu/xstate.h
+++ b/arch/x86/kernel/fpu/xstate.h
@@ -62,9 +62,9 @@ static inline u64 xfeatures_mask_supervisor(void)
static inline u64 xfeatures_mask_independent(void)
{
if (!cpu_feature_enabled(X86_FEATURE_ARCH_LBR))
- return XFEATURE_MASK_INDEPENDENT & ~XFEATURE_MASK_LBR;
+ return fpu_kernel_cfg.independent_features & ~XFEATURE_MASK_LBR;
- return XFEATURE_MASK_INDEPENDENT;
+ return fpu_kernel_cfg.independent_features;
}
/* XSAVE/XRSTOR wrapper functions */
---
base-commit: de9c2c66ad8e787abec7c9d7eff4f8c3cdd28aed
change-id: 20240807-xsave-lbr-fix-02d52f641653
Best regards,
--
Mitchell Levy <levymitchell0(a)gmail.com>