Linux 5.10.10
Greg Kroah-Hartman
maintainerI'm announcing the release of the 5.10.10 kernel.
All users of the 5.10 kernel series must upgrade.
The updated 5.10.y git tree can be found at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git linux-5.10.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
------------
Documentation/devicetree/bindings/net/renesas,etheravb.yaml | 1 Makefile | 2 arch/x86/hyperv/hv_init.c | 29 +++- crypto/asymmetric_keys/public_key.c | 3 drivers/gpu/drm/amd/display/Kconfig | 2 drivers/gpu/drm/amd/display/dc/calcs/Makefile | 7 - drivers/gpu/drm/amd/display/dc/clk_mgr/Makefile | 7 - drivers/gpu/drm/amd/display/dc/dcn10/Makefile | 7 - drivers/gpu/drm/amd/display/dc/dcn10/dcn10_resource.c | 81 ++++-------- drivers/gpu/drm/amd/display/dc/dcn20/Makefile | 4 drivers/gpu/drm/amd/display/dc/dcn21/Makefile | 4 drivers/gpu/drm/amd/display/dc/dml/Makefile | 13 - drivers/gpu/drm/amd/display/dc/dsc/Makefile | 5 drivers/gpu/drm/amd/display/dc/os_types.h | 4 drivers/gpu/drm/panel/panel-orisetech-otm8009a.c | 2 drivers/net/can/spi/mcp251xfd/mcp251xfd-core.c | 2 drivers/net/ethernet/chelsio/cxgb4/t4_tcb.h | 7 + drivers/net/ethernet/chelsio/inline_crypto/chtls/chtls.h | 4 drivers/net/ethernet/chelsio/inline_crypto/chtls/chtls_cm.c | 32 ++++ drivers/net/ethernet/chelsio/inline_crypto/chtls/chtls_hw.c | 41 ++++++ drivers/net/ethernet/intel/i40e/i40e_xsk.c | 2 drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c | 2 drivers/net/ethernet/mellanox/mlxsw/core_thermal.c | 13 + drivers/net/ethernet/qlogic/netxen/netxen_nic_main.c | 7 - drivers/net/ethernet/stmicro/stmmac/dwmac5.c | 52 ------- drivers/net/ethernet/stmicro/stmmac/stmmac_main.c | 7 - drivers/net/ethernet/stmicro/stmmac/stmmac_tc.c | 20 ++ drivers/net/ipa/ipa_modem.c | 1 drivers/net/phy/smsc.c | 3 drivers/net/usb/rndis_host.c | 2 drivers/spi/spi-cadence.c | 6 drivers/spi/spi-fsl-spi.c | 5 fs/nfsd/nfs3xdr.c | 7 - kernel/bpf/cgroup.c | 5 kernel/bpf/helpers.c | 2 kernel/bpf/verifier.c | 8 - net/core/skbuff.c | 29 +++- net/core/sock_reuseport.c | 2 net/dcb/dcbnl.c | 2 net/dsa/dsa2.c | 4 net/dsa/master.c | 10 + net/ipv4/esp4.c | 7 - net/ipv6/esp6.c | 7 - net/ipv6/ip6_output.c | 41 +++++- net/ipv6/sit.c | 5 net/mac80211/tx.c | 4 net/rxrpc/input.c | 2 net/rxrpc/key.c | 6 net/tipc/link.c | 9 + scripts/kconfig/Makefile | 10 + tools/testing/selftests/bpf/progs/profiler.inc.h | 2 51 files changed, 322 insertions(+), 217 deletions(-)
Alex Deucher (1):
drm/amdgpu/display: drop DCN support for aarch64
Andrei Matei (1):
bpf: Fix selftest compilation on clang 11
Andrey Zhizhikin (1):
rndis_host: set proper input size for OID_GEN_PHYSICAL_MEDIUM request
Antonio Borneo (1):
drm/panel: otm8009a: allow using non-continuous dsi clock
Aya Levin (1):
net: ipv6: Validate GSO SKB before finish IPv6 processing
Ayush Sawal (1):
cxgb4/chtls: Fix tid stuck due to wrong update of qid
Baptiste Lepers (2):
udp: Prevent reuseport_select_sock from reading uninitialized socks
rxrpc: Call state should be read with READ_ONCE() under some circumstances
Christophe Leroy (1):
spi: fsl: Fix driver breakage when SPI_CS_HIGH is not set in spi->mode
Cristian Dumitrescu (1):
i40e: fix potential NULL pointer dereferencing
Daniel Borkmann (1):
bpf: Fix signed_{sub,add32}_overflows type handling
David Howells (1):
rxrpc: Fix handling of an unsupported token type in rxrpc_read()
David Wu (1):
net: stmmac: Fixed mtu channged by cache aligned
Dexuan Cui (1):
x86/hyperv: Initialize clockevents after LAPIC is initialized
Dongseok Yi (1):
net: fix use-after-free when UDP GRO with shared fraglist
Eric Dumazet (1):
net: avoid 32 x truesize under-estimation for tiny skbs
Felix Fietkau (1):
mac80211: do not drop tx nulldata packets on encrypted links
Geert Uytterhoeven (1):
dt-bindings: net: renesas,etheravb: RZ/G2H needs tx-internal-delay-ps
Gilad Reti (1):
bpf: Support PTR_TO_MEM{,_OR_NULL} register spilling
Greg Kroah-Hartman (2):
Revert "kconfig: remove 'kvmconfig' and 'xenconfig' shorthands" Linux 5.10.10
Hoang Le (1):
tipc: fix NULL deref in tipc_link_xmit()
J. Bruce Fields (1):
nfsd4: readdirplus shouldn't return parent of export
Jakub Kicinski (1):
net: sit: unregister_netdevice on newlink's error path
Lorenzo Bianconi (1):
mac80211: check if atf has been disabled in __ieee80211_schedule_txq
Manish Chopra (1):
netxen_nic: fix MSI/MSI-x interrupts
Marco Felsch (1):
net: phy: smsc: fix clk error handling
Michael Hennerich (1):
spi: cadence: cache reference clock rate during probe
Mircea Cirjaliu (1):
bpf: Fix helper bpf_map_peek_elem_proto pointing to wrong callback
Petr Machata (2):
net: dcb: Validate netlink message in DCB handler
net: dcb: Accept RTM_GETDCB messages carrying set-like DCB commands
Qinglang Miao (1):
can: mcp251xfd: mcp251xfd_handle_rxif_one(): fix wrong NULL pointer check
Seb Laveze (1):
net: stmmac: use __napi_schedule() for PREEMPT_RT
Stanislav Fomichev (1):
bpf: Don't leak memory in bpf getsockopt when optlen == 0
Stefan Chulski (1):
net: mvpp2: Remove Pause and Asym_Pause support
Stephan Gerhold (1):
net: ipa: modem: add missing SET_NETDEV_DEV() for proper sysfs links
Tianjia Zhang (1):
X.509: Fix crash caused by NULL pointer
Vadim Pasternak (2):
mlxsw: core: Add validation of transceiver temperature thresholds
mlxsw: core: Increase critical threshold for ASIC thermal zone
Vladimir Oltean (2):
net: dsa: clear devlink port type before unregistering slave netdevs
net: dsa: unbind all switches from tree when DSA master unbinds
Willem de Bruijn (1):
esp: avoid unneeded kmap_atomic call
Yannick Vignon (2):
net: stmmac: fix taprio schedule configuration
net: stmmac: fix taprio configuration when base_time is in the past
Greg Kroah-Hartman
maintainerDocumentation/devicetree/bindings/net/renesas,etheravb.yaml +1 -0
@@ -163,6 +163,7 @@ allOf: enum: - renesas,etheravb-r8a774a1 - renesas,etheravb-r8a774b1 + - renesas,etheravb-r8a774e1 - renesas,etheravb-r8a7795 - renesas,etheravb-r8a7796 - renesas,etheravb-r8a77961
Makefile +1 -1
@@ -1,7 +1,7 @@ # SPDX-License-Identifier: GPL-2.0 VERSION = 5 PATCHLEVEL = 10 -SUBLEVEL = 9 +SUBLEVEL = 10 EXTRAVERSION = NAME = Kleptomaniac Octopus
arch/x86/hyperv/hv_init.c +26 -3
@@ -312,6 +312,25 @@ static struct syscore_ops hv_syscore_ops = { .resume = hv_resume, }; +static void (*__initdata old_setup_percpu_clockev)(void ); + +static void __init hv_stimer_setup_percpu_clockev (void ) +{ +/* +* Ignore any errors in setting up stimer clockevents +* as we can run with the LAPIC timer as a fallback. +*/ + (void )hv_stimer_alloc (); + +/* +* Still register the LAPIC timer, because the direct-mode STIMER is +* not supported by old versions of Hyper-V. This also allows users +* to switch to LAPIC timer via /sys, if they want to. +*/ +if (old_setup_percpu_clockev) +old_setup_percpu_clockev (); +} +/* * This function is to be invoked early in the boot sequence after the * hypervisor has been detected.
@@ -390,10 +409,14 @@ void __init hyperv_init(void)wrmsrl (HV_X64_MSR_HYPERCALL , hypercall_msr.as_uint64);/* -* Ignore any errors in setting up stimer clockevents -* as we can run with the LAPIC timer as a fallback. +* hyperv_init() is called before LAPIC is initialized: see +* apic_intr_mode_init() -> x86_platform.apic_post_init() and +* apic_bsp_setup() -> setup_local_APIC(). The direct-mode STIMER +* depends on LAPIC, so hv_stimer_alloc() should be called from +* x86_init.timers.setup_percpu_clockev. */ - (void )hv_stimer_alloc (); + old_setup_percpu_clockev = x86_init.timers.setup_percpu_clockev; + x86_init.timers.setup_percpu_clockev = hv_stimer_setup_percpu_clockev;hv_apic_init ();
crypto/asymmetric_keys/public_key.c +2 -1
@@ -356,7 +356,8 @@ int public_key_verify_signature(const struct public_key *pkey,if (ret) goto error_free_key; -if (strcmp (sig->pkey_algo,"sm2" ) ==0 && sig->data_size) { +if (sig->pkey_algo &&strcmp (sig->pkey_algo,"sm2" ) ==0 && + sig->data_size) { ret =cert_sig_digest_update (sig, tfm);if (ret) goto error_free_key;
drivers/gpu/drm/amd/display/Kconfig +1 -1
@@ -6,7 +6,7 @@ config DRM_AMD_DC bool "AMD DC - Enable new display engine" default y select SND_HDA_COMPONENT if SND_HDA_CORE - select DRM_AMD_DC_DCN if (X86 || PPC64 || (ARM64 && KERNEL_MODE_NEON)) && !(KCOV_INSTRUMENT_ALL && KCOV_ENABLE_COMPARISONS) + select DRM_AMD_DC_DCN if (X86 || PPC64) && !(KCOV_INSTRUMENT_ALL && KCOV_ENABLE_COMPARISONS) help Choose this option if you want to use the new display engine support for AMDGPU. This adds required support for Vega and
drivers/gpu/drm/amd/display/dc/calcs/Makefile +0 -7
@@ -33,10 +33,6 @@ ifdef CONFIG_PPC64 calcs_ccflags := -mhard-float -maltivec endif -ifdef CONFIG_ARM64 -calcs_rcflags := -mgeneral-regs-only -endif - ifdef CONFIG_CC_IS_GCC ifeq ($(call cc-ifversion, -lt, 0701, y), y) IS_OLD_GCC = 1
@@ -57,9 +53,6 @@ endif CFLAGS_$(AMDDALPATH)/dc/calcs/dcn_calcs.o := $(calcs_ccflags) CFLAGS_$(AMDDALPATH)/dc/calcs/dcn_calc_auto.o := $(calcs_ccflags) CFLAGS_$(AMDDALPATH)/dc/calcs/dcn_calc_math.o := $(calcs_ccflags) -Wno-tautological-compare -CFLAGS_REMOVE_$(AMDDALPATH)/dc/calcs/dcn_calcs.o := $(calcs_rcflags) -CFLAGS_REMOVE_$(AMDDALPATH)/dc/calcs/dcn_calc_auto.o := $(calcs_rcflags) -CFLAGS_REMOVE_$(AMDDALPATH)/dc/calcs/dcn_calc_math.o := $(calcs_rcflags) BW_CALCS = dce_calcs.o bw_fixed.o custom_float.o
drivers/gpu/drm/amd/display/dc/clk_mgr/Makefile +0 -7
@@ -104,13 +104,6 @@ ifdef CONFIG_PPC64 CFLAGS_$(AMDDALPATH)/dc/clk_mgr/dcn21/rn_clk_mgr.o := $(call cc-option,-mno-gnu-attribute) endif -# prevent build errors: -# ...: '-mgeneral-regs-only' is incompatible with the use of floating-point types -# this file is unused on arm64, just like on ppc64 -ifdef CONFIG_ARM64 -CFLAGS_REMOVE_$(AMDDALPATH)/dc/clk_mgr/dcn21/rn_clk_mgr.o := -mgeneral-regs-only -endif - AMD_DAL_CLK_MGR_DCN21 = $(addprefix $(AMDDALPATH)/dc/clk_mgr/dcn21/,$(CLK_MGR_DCN21)) AMD_DISPLAY_FILES += $(AMD_DAL_CLK_MGR_DCN21)
drivers/gpu/drm/amd/display/dc/dcn10/Makefile +0 -7
@@ -31,11 +31,4 @@ DCN10 = dcn10_init.o dcn10_resource.o dcn10_ipp.o dcn10_hw_sequencer.o \ AMD_DAL_DCN10 = $(addprefix $(AMDDALPATH)/dc/dcn10/,$(DCN10)) -# fix: -# ...: '-mgeneral-regs-only' is incompatible with the use of floating-point types -# aarch64 does not support soft-float, so use hard-float and handle this in code -ifdef CONFIG_ARM64 -CFLAGS_REMOVE_$(AMDDALPATH)/dc/dcn10/dcn10_resource.o := -mgeneral-regs-only -endif - AMD_DISPLAY_FILES += $(AMD_DAL_DCN10)
drivers/gpu/drm/amd/display/dc/dcn10/dcn10_resource.c +31 -50
93 lines not on this page · raw message
drivers/gpu/drm/amd/display/dc/dcn20/Makefile +0 -4
@@ -17,10 +17,6 @@ ifdef CONFIG_PPC64 CFLAGS_$(AMDDALPATH)/dc/dcn20/dcn20_resource.o := -mhard-float -maltivec endif -ifdef CONFIG_ARM64 -CFLAGS_REMOVE_$(AMDDALPATH)/dc/dcn20/dcn20_resource.o := -mgeneral-regs-only -endif - ifdef CONFIG_CC_IS_GCC ifeq ($(call cc-ifversion, -lt, 0701, y), y) IS_OLD_GCC = 1
drivers/gpu/drm/amd/display/dc/dcn21/Makefile +0 -4
@@ -13,10 +13,6 @@ ifdef CONFIG_PPC64 CFLAGS_$(AMDDALPATH)/dc/dcn21/dcn21_resource.o := -mhard-float -maltivec endif -ifdef CONFIG_ARM64 -CFLAGS_REMOVE_$(AMDDALPATH)/dc/dcn21/dcn21_resource.o := -mgeneral-regs-only -endif - ifdef CONFIG_CC_IS_GCC ifeq ($(call cc-ifversion, -lt, 0701, y), y) IS_OLD_GCC = 1
drivers/gpu/drm/amd/display/dc/dml/Makefile +0 -13
@@ -33,10 +33,6 @@ ifdef CONFIG_PPC64 dml_ccflags := -mhard-float -maltivec endif -ifdef CONFIG_ARM64 -dml_rcflags := -mgeneral-regs-only -endif - ifdef CONFIG_CC_IS_GCC ifeq ($(call cc-ifversion, -lt, 0701, y), y) IS_OLD_GCC = 1
@@ -64,13 +60,6 @@ CFLAGS_$(AMDDALPATH)/dc/dml/dcn20/display_mode_vba_20v2.o := $(dml_ccflags) CFLAGS_$(AMDDALPATH)/dc/dml/dcn20/display_rq_dlg_calc_20v2.o := $(dml_ccflags) CFLAGS_$(AMDDALPATH)/dc/dml/dcn21/display_mode_vba_21.o := $(dml_ccflags) CFLAGS_$(AMDDALPATH)/dc/dml/dcn21/display_rq_dlg_calc_21.o := $(dml_ccflags) -CFLAGS_REMOVE_$(AMDDALPATH)/dc/dml/display_mode_vba.o := $(dml_rcflags) -CFLAGS_REMOVE_$(AMDDALPATH)/dc/dml/dcn20/display_mode_vba_20.o := $(dml_rcflags) -CFLAGS_REMOVE_$(AMDDALPATH)/dc/dml/dcn20/display_rq_dlg_calc_20.o := $(dml_rcflags) -CFLAGS_REMOVE_$(AMDDALPATH)/dc/dml/dcn20/display_mode_vba_20v2.o := $(dml_rcflags) -CFLAGS_REMOVE_$(AMDDALPATH)/dc/dml/dcn20/display_rq_dlg_calc_20v2.o := $(dml_rcflags) -CFLAGS_REMOVE_$(AMDDALPATH)/dc/dml/dcn21/display_mode_vba_21.o := $(dml_rcflags) -CFLAGS_REMOVE_$(AMDDALPATH)/dc/dml/dcn21/display_rq_dlg_calc_21.o := $(dml_rcflags) endif ifdef CONFIG_DRM_AMD_DC_DCN3_0 CFLAGS_$(AMDDALPATH)/dc/dml/dcn30/display_mode_vba_30.o := $(dml_ccflags) -Wframe-larger-than=2048
@@ -78,8 +67,6 @@ CFLAGS_$(AMDDALPATH)/dc/dml/dcn30/display_rq_dlg_calc_30.o := $(dml_ccflags) endif CFLAGS_$(AMDDALPATH)/dc/dml/dml1_display_rq_dlg_calc.o := $(dml_ccflags) CFLAGS_$(AMDDALPATH)/dc/dml/display_rq_dlg_helpers.o := $(dml_ccflags) -CFLAGS_REMOVE_$(AMDDALPATH)/dc/dml/dml1_display_rq_dlg_calc.o := $(dml_rcflags) -CFLAGS_REMOVE_$(AMDDALPATH)/dc/dml/display_rq_dlg_helpers.o := $(dml_rcflags) DML = display_mode_lib.o display_rq_dlg_helpers.o dml1_display_rq_dlg_calc.o \
drivers/gpu/drm/amd/display/dc/dsc/Makefile +0 -5
@@ -10,10 +10,6 @@ ifdef CONFIG_PPC64 dsc_ccflags := -mhard-float -maltivec endif -ifdef CONFIG_ARM64 -dsc_rcflags := -mgeneral-regs-only -endif - ifdef CONFIG_CC_IS_GCC ifeq ($(call cc-ifversion, -lt, 0701, y), y) IS_OLD_GCC = 1
@@ -32,7 +28,6 @@ endif endif CFLAGS_$(AMDDALPATH)/dc/dsc/rc_calc.o := $(dsc_ccflags) -CFLAGS_REMOVE_$(AMDDALPATH)/dc/dsc/rc_calc.o := $(dsc_rcflags) DSC = dc_dsc.o rc_calc.o rc_calc_dpi.o
drivers/gpu/drm/amd/display/dc/os_types.h +0 -4
@@ -55,10 +55,6 @@#include <asm/fpu/api.h> #define DC_FP_START () kernel_fpu_begin()#define DC_FP_END () kernel_fpu_end() -#elif defined(CONFIG_ARM64 ) -#include <asm/neon.h> -#define DC_FP_START () kernel_neon_begin() -#define DC_FP_END () kernel_neon_end()#elif defined(CONFIG_PPC64 )#include <asm/switch_to.h> #include <asm/cputable.h>
drivers/gpu/drm/panel/panel-orisetech-otm8009a.c +1 -1
@@ -452,7 +452,7 @@ static int otm8009a_probe(struct mipi_dsi_device *dsi) dsi->lanes =2 ; dsi->format =MIPI_DSI_FMT_RGB888 ; dsi->mode_flags =MIPI_DSI_MODE_VIDEO |MIPI_DSI_MODE_VIDEO_BURST | -MIPI_DSI_MODE_LPM ; +MIPI_DSI_MODE_LPM |MIPI_DSI_CLOCK_NON_CONTINUOUS ;drm_panel_init (&ctx->panel, dev, &otm8009a_drm_funcs,DRM_MODE_CONNECTOR_DSI );
drivers/net/can/spi/mcp251xfd/mcp251xfd-core.c +1 -1
@@ -1432,7 +1432,7 @@ mcp251xfd_handle_rxif_one(struct mcp251xfd_priv *priv,else skb =alloc_can_skb (priv->ndev, (struct can_frame **)&cfd); -if (!cfd) { +if (!skb) { stats->rx_dropped++;return 0 ; }
drivers/net/ethernet/chelsio/cxgb4/t4_tcb.h +7 -0
@@ -40,6 +40,13 @@#define TCB_L2T_IX_M 0xfffULL#define TCB_L2T_IX_V (x) ((x) << TCB_L2T_IX_S) +#define TCB_T_FLAGS_W 1 +#define TCB_T_FLAGS_S 0 +#define TCB_T_FLAGS_M 0xffffffffffffffffULL +#define TCB_T_FLAGS_V (x) ((__u64)(x) << TCB_T_FLAGS_S) + +#define TCB_FIELD_COOKIE_TFLAG 1 +#define TCB_SMAC_SEL_W 0#define TCB_SMAC_SEL_S 24#define TCB_SMAC_SEL_M 0xffULL
drivers/net/ethernet/chelsio/inline_crypto/chtls/chtls.h +4 -0
@@ -573,7 +573,11 @@ int send_tx_flowc_wr(struct sock *sk, int compl,void chtls_tcp_push (struct sock *sk,int flags);int chtls_push_frames (struct chtls_sock *csk,int comp);int chtls_set_tcb_tflag (struct sock *sk,unsigned int bit_pos,int val); +void chtls_set_tcb_field_rpl_skb (struct sock *sk,u16 word, +u64 mask,u64 val,u8 cookie, +int through_l2t);int chtls_setkey (struct chtls_sock *csk,u32 keylen,u32 mode,int cipher_type); +void chtls_set_quiesce_ctrl (struct sock *sk,int val);void skb_entail (struct sock *sk,struct sk_buff *skb,int flags);unsigned int keyid_to_addr (int start_addr,int keyid);void free_tls_keyid (struct sock *sk);
drivers/net/ethernet/chelsio/inline_crypto/chtls/chtls_cm.c +30 -2
@@ -32,6 +32,7 @@#include "chtls.h" #include "chtls_cm.h" #include "clip_tbl.h" +#include "t4_tcb.h" /* * State transitions and actions for close. Note that if we are in SYN_SENT
@@ -267,7 +268,9 @@ static void chtls_send_reset(struct sock *sk, int mode, struct sk_buff *skb)if (sk->sk_state !=TCP_SYN_RECV )chtls_send_abort (sk, mode, skb);else - goto out; +chtls_set_tcb_field_rpl_skb (sk,TCB_T_FLAGS_W , +TCB_T_FLAGS_V (TCB_T_FLAGS_M ),0 , +TCB_FIELD_COOKIE_TFLAG ,1 );return ; out:
@@ -1948,6 +1951,8 @@ static void chtls_close_con_rpl(struct sock *sk, struct sk_buff *skb)else if (tcp_sk (sk)->linger2 <0 && !csk_flag_nochk (csk,CSK_ABORT_SHUTDOWN ))chtls_abort_conn (sk, skb); +else if (csk_flag_nochk (csk,CSK_TX_DATA_SENT )) +chtls_set_quiesce_ctrl (sk,0 );break ;default :pr_info ("close_con_rpl in bad state %d\n" , sk->sk_state);
@@ -2291,6 +2296,28 @@ static int chtls_wr_ack(struct chtls_dev *cdev, struct sk_buff *skb)return 0 ; } +static int chtls_set_tcb_rpl (struct chtls_dev *cdev,struct sk_buff *skb) +{ +struct cpl_set_tcb_rpl *rpl =cplhdr (skb) +RSS_HDR ; +unsigned int hwtid =GET_TID (rpl); +struct sock *sk; + + sk =lookup_tid (cdev->tids, hwtid); + +/* return EINVAL if socket doesn't exist */ +if (!sk) +return -EINVAL ; + +/* Reusing the skb as size of cpl_set_tcb_field structure +* is greater than cpl_abort_req +*/ +if (TCB_COOKIE_G (rpl->cookie) ==TCB_FIELD_COOKIE_TFLAG ) +chtls_send_abort (sk,CPL_ABORT_SEND_RST ,NULL ); + +kfree_skb (skb); +return 0 ; +} +chtls_handler_func chtls_handlers[NUM_CPL_CMDS ] = { [CPL_PASS_OPEN_RPL ] = chtls_pass_open_rpl, [CPL_CLOSE_LISTSRV_RPL ] = chtls_close_listsrv_rpl,
@@ -2303,5 +2330,6 @@ chtls_handler_func chtls_handlers[NUM_CPL_CMDS] = { [CPL_CLOSE_CON_RPL] = chtls_conn_cpl, [CPL_ABORT_REQ_RSS] = chtls_conn_cpl, [CPL_ABORT_RPL_RSS] = chtls_conn_cpl, - [CPL_FW4_ACK] = chtls_wr_ack, + [CPL_FW4_ACK] = chtls_wr_ack, + [CPL_SET_TCB_RPL] = chtls_set_tcb_rpl, };
drivers/net/ethernet/chelsio/inline_crypto/chtls/chtls_hw.c +41 -0
53 lines not on this page · raw message
drivers/net/ethernet/intel/i40e/i40e_xsk.c +1 -1
@@ -348,12 +348,12 @@ int i40e_clean_rx_irq_zc(struct i40e_ring *rx_ring, int budget)* SBP is *not* set in PRT_SBPVSI (default not set). */ skb =i40e_construct_skb_zc (rx_ring, *bi); - *bi =NULL ;if (!skb) { rx_ring->rx_stats.alloc_buff_failed++;break ; } + *bi =NULL ; cleaned_count++;i40e_inc_ntc (rx_ring);
drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c +0 -2
@@ -5874,8 +5874,6 @@ static void mvpp2_phylink_validate(struct phylink_config *config,phylink_set (mask, Autoneg);phylink_set_port_modes (mask); -phylink_set (mask, Pause); -phylink_set (mask, Asym_Pause);switch (state->interface) {case PHY_INTERFACE_MODE_10GBASER :
drivers/net/ethernet/mellanox/mlxsw/core_thermal.c +8 -5
@@ -19,7 +19,7 @@#define MLXSW_THERMAL_ASIC_TEMP_NORM 75000/* 75C */ #define MLXSW_THERMAL_ASIC_TEMP_HIGH 85000/* 85C */ #define MLXSW_THERMAL_ASIC_TEMP_HOT 105000/* 105C */ -#define MLXSW_THERMAL_ASIC_TEMP_CRIT 110000/* 110C */ +#define MLXSW_THERMAL_ASIC_TEMP_CRIT 140000/* 140C */ #define MLXSW_THERMAL_HYSTERESIS_TEMP 5000/* 5C */ #define MLXSW_THERMAL_MODULE_TEMP_SHIFT (MLXSW_THERMAL_HYSTERESIS_TEMP * 2)#define MLXSW_THERMAL_ZONE_MAX_NAME 16
@@ -176,6 +176,12 @@ mlxsw_thermal_module_trips_update(struct device *dev, struct mlxsw_core *core,if (err)return err; +if (crit_temp > emerg_temp) { +dev_warn (dev,"%s : Critical threshold %d is above emergency threshold %d\n" , + tz->tzdev->type, crit_temp, emerg_temp); +return 0 ; + } +/* According to the system thermal requirements, the thermal zones are * defined with four trip points. The critical and emergency * temperature thresholds, provided by QSFP module are set as "active"
@@ -190,11 +196,8 @@ mlxsw_thermal_module_trips_update(struct device *dev, struct mlxsw_core *core, tz->trips[MLXSW_THERMAL_TEMP_TRIP_NORM ].temp = crit_temp; tz->trips[MLXSW_THERMAL_TEMP_TRIP_HIGH ].temp = crit_temp; tz->trips[MLXSW_THERMAL_TEMP_TRIP_HOT ].temp = emerg_temp; -if (emerg_temp > crit_temp) - tz->trips[MLXSW_THERMAL_TEMP_TRIP_CRIT ].temp = emerg_temp + + tz->trips[MLXSW_THERMAL_TEMP_TRIP_CRIT ].temp = emerg_temp +MLXSW_THERMAL_MODULE_TEMP_SHIFT ; -else - tz->trips[MLXSW_THERMAL_TEMP_TRIP_CRIT ].temp = emerg_temp;return 0 ; }
drivers/net/ethernet/qlogic/netxen/netxen_nic_main.c +1 -6
@@ -564,11 +564,6 @@ static const struct net_device_ops netxen_netdev_ops = { .ndo_set_features = netxen_set_features, }; -static inline bool netxen_function_zero (struct pci_dev *pdev) -{ -return (PCI_FUNC (pdev->devfn) ==0 ) ? true : false; -} -static inline void netxen_set_interrupt_mode (struct netxen_adapter *adapter,u32 mode) {
@@ -664,7 +659,7 @@ static int netxen_setup_intr(struct netxen_adapter *adapter)netxen_initialize_interrupt_registers (adapter);netxen_set_msix_bit (pdev,0 ); -if (netxen_function_zero (pdev)) { +if (adapter->portnum ==0 ) {if (!netxen_setup_msi_interrupts (adapter, num_msix))netxen_set_interrupt_mode (adapter,NETXEN_MSI_MODE );else
drivers/net/ethernet/stmicro/stmmac/dwmac5.c +4 -48
72 lines not on this page · raw message
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c +4 -3
@@ -2158,7 +2158,7 @@ static int stmmac_napi_check(struct stmmac_priv *priv, u32 chan)spin_lock_irqsave (&ch->lock, flags);stmmac_disable_dma_irq (priv, priv->ioaddr, chan,1 ,0 );spin_unlock_irqrestore (&ch->lock, flags); -__napi_schedule_irqoff (&ch->rx_napi); +__napi_schedule (&ch->rx_napi); } }
@@ -2167,7 +2167,7 @@ static int stmmac_napi_check(struct stmmac_priv *priv, u32 chan)spin_lock_irqsave (&ch->lock, flags);stmmac_disable_dma_irq (priv, priv->ioaddr, chan,0 ,1 );spin_unlock_irqrestore (&ch->lock, flags); -__napi_schedule_irqoff (&ch->tx_napi); +__napi_schedule (&ch->tx_napi); } }
@@ -3996,6 +3996,7 @@ static int stmmac_change_mtu(struct net_device *dev, int new_mtu) {struct stmmac_priv *priv =netdev_priv (dev);int txfifosz = priv->plat->tx_fifo_size; +const int mtu = new_mtu;if (txfifosz ==0 ) txfifosz = priv->dma_cap.tx_fifo_size;
@@ -4013,7 +4014,7 @@ static int stmmac_change_mtu(struct net_device *dev, int new_mtu)if ((txfifosz < new_mtu) || (new_mtu > BUF_SIZE_16KiB))return -EINVAL ; - dev->mtu = new_mtu; + dev->mtu = mtu;netdev_update_features (dev);
drivers/net/ethernet/stmicro/stmmac/stmmac_tc.c +18 -2
@@ -605,7 +605,8 @@ static int tc_setup_taprio(struct stmmac_priv *priv, {u32 size, wid = priv->dma_cap.estwid, dep = priv->dma_cap.estdep;struct plat_stmmacenet_data *plat = priv->plat; -struct timespec64 time; +struct timespec64 time, current_time; +ktime_t current_time_ns;bool fpe = false;int i, ret =0 ;u64 ctr;
@@ -700,7 +701,22 @@ static int tc_setup_taprio(struct stmmac_priv *priv, }/* Adjust for real system time */ - time =ktime_to_timespec64 (qopt->base_time); + priv->ptp_clock_ops.gettime64 (&priv->ptp_clock_ops, ¤t_time); + current_time_ns =timespec64_to_ktime (current_time); +if (ktime_after (qopt->base_time, current_time_ns)) { + time =ktime_to_timespec64 (qopt->base_time); + }else { +ktime_t base_time; +s64 n; + + n =div64_s64 (ktime_sub_ns (current_time_ns, qopt->base_time), + qopt->cycle_time); + base_time =ktime_add_ns (qopt->base_time, + (n +1 ) * qopt->cycle_time); + + time =ktime_to_timespec64 (base_time); + } + priv->plat->est->btr[0 ] = (u32 )time.tv_nsec; priv->plat->est->btr[1 ] = (u32 )time.tv_sec;
drivers/net/ipa/ipa_modem.c +1 -0
@@ -216,6 +216,7 @@ int ipa_modem_start(struct ipa *ipa) ipa->name_map[IPA_ENDPOINT_AP_MODEM_TX ]->netdev = netdev; ipa->name_map[IPA_ENDPOINT_AP_MODEM_RX ]->netdev = netdev; +SET_NETDEV_DEV (netdev, &ipa->pdev->dev); priv =netdev_priv (netdev); priv->ipa = ipa;
drivers/net/phy/smsc.c +2 -1
@@ -284,7 +284,8 @@ static int smsc_phy_probe(struct phy_device *phydev)/* Make clk optional to keep DTB backward compatibility. */ priv->refclk =clk_get_optional (dev,NULL );if (IS_ERR (priv->refclk)) -dev_err_probe (dev,PTR_ERR (priv->refclk),"Failed to request clock\n" ); +return dev_err_probe (dev,PTR_ERR (priv->refclk), +"Failed to request clock\n" ); ret =clk_prepare_enable (priv->refclk);if (ret)
drivers/net/usb/rndis_host.c +1 -1
@@ -387,7 +387,7 @@ generic_rndis_bind(struct usbnet *dev, struct usb_interface *intf, int flags) reply_len =sizeof *phym; retval =rndis_query (dev, intf, u.buf,RNDIS_OID_GEN_PHYSICAL_MEDIUM , -0 , (void **) &phym, &reply_len); + reply_len, (void **)&phym, &reply_len);if (retval !=0 || !phym) {/* OID is optional so don't fail here. */ phym_unspec =cpu_to_le32 (RNDIS_PHYSICAL_MEDIUM_UNSPECIFIED );
drivers/spi/spi-cadence.c +4 -2
@@ -115,6 +115,7 @@ struct cdns_spi {void __iomem *regs;struct clk *ref_clk;struct clk *pclk; +unsigned int clk_rate;u32 speed_hz;const u8 *txbuf;u8 *rxbuf;
@@ -250,7 +251,7 @@ static void cdns_spi_config_clock_freq(struct spi_device *spi,u32 ctrl_reg, baud_rate_val;unsigned long frequency; - frequency =clk_get_rate (xspi->ref_clk); + frequency = xspi->clk_rate; ctrl_reg =cdns_spi_read (xspi,CDNS_SPI_CR );
@@ -558,8 +559,9 @@ static int cdns_spi_probe(struct platform_device *pdev) master->auto_runtime_pm = true; master->mode_bits =SPI_CPOL |SPI_CPHA |SPI_CS_HIGH ; + xspi->clk_rate =clk_get_rate (xspi->ref_clk);/* Set to default valid value */ - master->max_speed_hz =clk_get_rate (xspi->ref_clk) /4 ; + master->max_speed_hz = xspi->clk_rate /4 ; xspi->speed_hz = master->max_speed_hz; master->bits_per_word_mask =SPI_BPW_MASK (8 );
drivers/spi/spi-fsl-spi.c +2 -3
@@ -115,14 +115,13 @@ static void fsl_spi_chipselect(struct spi_device *spi, int value) {struct mpc8xxx_spi *mpc8xxx_spi =spi_master_get_devdata (spi->master);struct fsl_spi_platform_data *pdata; -bool pol = spi->mode &SPI_CS_HIGH ;struct spi_mpc8xxx_cs *cs = spi->controller_state; pdata = spi->dev.parent->parent->platform_data;if (value ==BITBANG_CS_INACTIVE ) {if (pdata->cs_control) - pdata->cs_control (spi, !pol); + pdata->cs_control (spi, false); }if (value ==BITBANG_CS_ACTIVE ) {
@@ -134,7 +133,7 @@ static void fsl_spi_chipselect(struct spi_device *spi, int value)fsl_spi_change_mode (spi);if (pdata->cs_control) - pdata->cs_control (spi, pol); + pdata->cs_control (spi, true); } }
fs/nfsd/nfs3xdr.c +6 -1
@@ -863,9 +863,14 @@ compose_entry_fh(struct nfsd3_readdirres *cd, struct svc_fh *fhp,if (isdotent (name, namlen)) {if (namlen ==2 ) { dchild =dget_parent (dparent); -/* filesystem root - cannot return filehandle for ".." */ +/* +* Don't return filehandle for ".." if we're at +* the filesystem or export root: +*/ if (dchild == dparent) goto out; +if (dparent == exp->ex_path.dentry) + goto out; }else dchild =dget (dparent); }else
kernel/bpf/cgroup.c +3 -2
@@ -1391,12 +1391,13 @@ int __cgroup_bpf_run_filter_setsockopt(struct sock *sk, int *level,if (ctx.optlen !=0 ) { *optlen = ctx.optlen; *kernel_optval = ctx.optval; +/* export and don't free sockopt buf */ +return 0 ; } } out: -if (ret) -sockopt_free_buf (&ctx); +sockopt_free_buf (&ctx);return ret; }
kernel/bpf/helpers.c +1 -1
@@ -108,7 +108,7 @@ BPF_CALL_2(bpf_map_peek_elem, struct bpf_map *, map, void *, value) }const struct bpf_func_proto bpf_map_peek_elem_proto = { - .func = bpf_map_pop_elem, + .func = bpf_map_peek_elem, .gpl_only = false, .ret_type =RET_INTEGER , .arg1_type =ARG_CONST_MAP_PTR ,
kernel/bpf/verifier.c +5 -3
@@ -2214,6 +2214,8 @@ static bool is_spillable_regtype(enum bpf_reg_type type)case PTR_TO_RDWR_BUF :case PTR_TO_RDWR_BUF_OR_NULL :case PTR_TO_PERCPU_BTF_ID : +case PTR_TO_MEM : +case PTR_TO_MEM_OR_NULL :return true;default :return false;
@@ -5255,7 +5257,7 @@ static bool signed_add_overflows(s64 a, s64 b)return res < a; } -static bool signed_add32_overflows (s64 a,s64 b) +static bool signed_add32_overflows (s32 a,s32 b) {/* Do the add in u32, where overflow is well-defined */ s32 res = (s32)((u32 )a + (u32 )b);
@@ -5265,7 +5267,7 @@ static bool signed_add32_overflows(s64 a, s64 b)return res < a; } -static bool signed_sub_overflows (s32 a,s32 b) +static bool signed_sub_overflows (s64 a,s64 b) {/* Do the sub in u64, where overflow is well-defined */ s64 res = (s64)((u64 )a - (u64 )b);
@@ -5277,7 +5279,7 @@ static bool signed_sub_overflows(s32 a, s32 b)static bool signed_sub32_overflows (s32 a,s32 b) { -/* Do the sub in u64, where overflow is well-defined */ +/* Do the sub in u32, where overflow is well-defined */ s32 res = (s32)((u32 )a - (u32 )b);if (b <0 )
net/core/skbuff.c +26 -3
@@ -496,13 +496,17 @@ EXPORT_SYMBOL(__netdev_alloc_skb);struct sk_buff *__napi_alloc_skb (struct napi_struct *napi,unsigned int len,gfp_t gfp_mask) { -struct napi_alloc_cache *nc =this_cpu_ptr (&napi_alloc_cache); +struct napi_alloc_cache *nc;struct sk_buff *skb;void *data; len +=NET_SKB_PAD +NET_IP_ALIGN ; -if ((len >SKB_WITH_OVERHEAD (PAGE_SIZE )) || +/* If requested length is either too small or too big, +* we use kmalloc() for skb->head allocation. +*/ +if (len <=SKB_WITH_OVERHEAD (1024 ) || + len >SKB_WITH_OVERHEAD (PAGE_SIZE ) || (gfp_mask & (__GFP_DIRECT_RECLAIM |GFP_DMA ))) { skb =__alloc_skb (len, gfp_mask,SKB_ALLOC_RX ,NUMA_NO_NODE );if (!skb)
@@ -510,6 +514,7 @@ struct sk_buff *__napi_alloc_skb(struct napi_struct *napi, unsigned int len, goto skb_success; } + nc =this_cpu_ptr (&napi_alloc_cache); len +=SKB_DATA_ALIGN (sizeof (struct skb_shared_info )); len =SKB_DATA_ALIGN (len);
@@ -3648,7 +3653,8 @@ struct sk_buff *skb_segment_list(struct sk_buff *skb,unsigned int delta_truesize =0 ;unsigned int delta_len =0 ;struct sk_buff *tail =NULL ; -struct sk_buff *nskb; +struct sk_buff *nskb, *tmp; +int err;skb_push (skb, -skb_network_offset (skb) + offset);
@@ -3658,11 +3664,28 @@ struct sk_buff *skb_segment_list(struct sk_buff *skb, nskb = list_skb; list_skb = list_skb->next; + err =0 ; +if (skb_shared (nskb)) { + tmp =skb_clone (nskb,GFP_ATOMIC ); +if (tmp) { +consume_skb (nskb); + nskb = tmp; + err =skb_unclone (nskb,GFP_ATOMIC ); + }else { + err = -ENOMEM ; + } + } +if (!tail) skb->next = nskb;else tail->next = nskb; +if (unlikely (err)) { + nskb->next = list_skb; + goto err_linearize; + } + tail = nskb; delta_len += nskb->len;
net/core/sock_reuseport.c +1 -1
@@ -293,7 +293,7 @@ struct sock *reuseport_select_sock(struct sock *sk, i = j =reciprocal_scale (hash, socks);while (reuse->socks[i]->sk_state ==TCP_ESTABLISHED ) { i++; -if (i >= reuse->num_socks) +if (i >= socks) i =0 ;if (i == j) goto out;
net/dcb/dcbnl.c +2 -0
@@ -1765,6 +1765,8 @@ static int dcb_doit(struct sk_buff *skb, struct nlmsghdr *nlh, fn = &reply_funcs[dcb->cmd];if (!fn->cb)return -EOPNOTSUPP ; +if (fn->type ==RTM_SETDCB && !netlink_capable (skb,CAP_NET_ADMIN )) +return -EPERM ;if (!tb[DCB_ATTR_IFNAME ])return -EINVAL ;
net/dsa/dsa2.c +4 -0
@@ -353,9 +353,13 @@ static int dsa_port_devlink_setup(struct dsa_port *dp)static void dsa_port_teardown (struct dsa_port *dp) { +struct devlink_port *dlp = &dp->devlink_port; +if (!dp->setup)return ; +devlink_port_type_clear (dlp); +switch (dp->type) {case DSA_PORT_TYPE_UNUSED :break ;
net/dsa/master.c +10 -0
@@ -308,8 +308,18 @@ static struct lock_class_key dsa_master_addr_list_lock_key;int dsa_master_setup (struct net_device *dev,struct dsa_port *cpu_dp) { +struct dsa_switch *ds = cpu_dp->ds; +struct device_link *consumer_link;int ret; +/* The DSA master must use SET_NETDEV_DEV for this to work. */ + consumer_link =device_link_add (ds->dev, dev->dev.parent, +DL_FLAG_AUTOREMOVE_CONSUMER ); +if (!consumer_link) +netdev_err (dev, +"Failed to create a device link to DSA switch %s\n" , +dev_name (ds->dev)); +rtnl_lock (); ret =dev_set_mtu (dev,ETH_DATA_LEN + cpu_dp->tag_ops->overhead);rtnl_unlock ();
net/ipv4/esp4.c +1 -6
@@ -443,7 +443,6 @@ static int esp_output_encap(struct xfrm_state *x, struct sk_buff *skb,int esp_output_head (struct xfrm_state *x,struct sk_buff *skb,struct esp_info *esp) {u8 *tail; -u8 *vaddr;int nfrags;int esph_offset;struct page *page;
@@ -485,14 +484,10 @@ int esp_output_head(struct xfrm_state *x, struct sk_buff *skb, struct esp_info * page = pfrag->page;get_page (page); - vaddr =kmap_atomic (page); - - tail = vaddr + pfrag->offset; + tail =page_address (page) + pfrag->offset;esp_output_fill_trailer (tail, esp->tfclen, esp->plen, esp->proto); -kunmap_atomic (vaddr); - nfrags =skb_shinfo (skb)->nr_frags; __skb_fill_page_desc(skb, nfrags, page, pfrag->offset,
net/ipv6/esp6.c +1 -6
@@ -478,7 +478,6 @@ static int esp6_output_encap(struct xfrm_state *x, struct sk_buff *skb,int esp6_output_head (struct xfrm_state *x,struct sk_buff *skb,struct esp_info *esp) {u8 *tail; -u8 *vaddr;int nfrags;int esph_offset;struct page *page;
@@ -519,14 +518,10 @@ int esp6_output_head(struct xfrm_state *x, struct sk_buff *skb, struct esp_info page = pfrag->page;get_page (page); - vaddr =kmap_atomic (page); - - tail = vaddr + pfrag->offset; + tail =page_address (page) + pfrag->offset;esp_output_fill_trailer (tail, esp->tfclen, esp->plen, esp->proto); -kunmap_atomic (vaddr); - nfrags =skb_shinfo (skb)->nr_frags; __skb_fill_page_desc(skb, nfrags, page, pfrag->offset,
net/ipv6/ip6_output.c +40 -1
55 lines not on this page · raw message
net/ipv6/sit.c +4 -1
@@ -1645,8 +1645,11 @@ static int ipip6_newlink(struct net *src_net, struct net_device *dev, }#ifdef CONFIG_IPV6_SIT_6RD -if (ipip6_netlink_6rd_parms (data, &ip6rd)) +if (ipip6_netlink_6rd_parms (data, &ip6rd)) { err =ipip6_tunnel_update_6rd (nt, &ip6rd); +if (err <0 ) +unregister_netdevice_queue (dev,NULL ); + }#endif return err;
net/mac80211/tx.c +2 -2
@@ -662,7 +662,7 @@ ieee80211_tx_h_select_key(struct ieee80211_tx_data *tx)if (!skip_hw && tx->key && tx->key->flags &KEY_FLAG_UPLOADED_TO_HARDWARE ) info->control.hw_key = &tx->key->conf; - }else if (!ieee80211_is_mgmt (hdr->frame_control) && tx->sta && + }else if (ieee80211_is_data_present (hdr->frame_control) && tx->sta &&test_sta_flag (tx->sta,WLAN_STA_USES_ENCRYPTION )) {return TX_DROP ; }
@@ -3836,7 +3836,7 @@ void __ieee80211_schedule_txq(struct ieee80211_hw *hw,* get immediately moved to the back of the list on the next * call to ieee80211_next_txq(). */ -if (txqi->txq.sta && +if (txqi->txq.sta && local->airtime_flags &&wiphy_ext_feature_isset (local->hw.wiphy,NL80211_EXT_FEATURE_AIRTIME_FAIRNESS )) list_add(&txqi->schedule_order,
net/rxrpc/input.c +1 -1
@@ -430,7 +430,7 @@ static void rxrpc_input_data(struct rxrpc_call *call, struct sk_buff *skb)return ; } -if (call->state ==RXRPC_CALL_SERVER_RECV_REQUEST ) { +if (state ==RXRPC_CALL_SERVER_RECV_REQUEST ) {unsigned long timo =READ_ONCE (call->next_req_timo);unsigned long now, expect_req_by;
net/rxrpc/key.c +4 -2
@@ -1109,7 +1109,7 @@ static long rxrpc_read(const struct key *key,default :/* we have a ticket we can't encode */ pr_err ("Unsupported key token type (%u)\n" , token->security_index); -continue ; +return -ENOPKG ; }_debug ("token[%u]: toksize=%u" , ntoks, toksize);
@@ -1224,7 +1224,9 @@ static long rxrpc_read(const struct key *key,break ;default : -break ; +pr_err ("Unsupported key token type (%u)\n" , + token->security_index); +return -ENOPKG ; } ASSERTCMP((unsigned long)xdr - (unsigned long)oldxdr, ==,
net/tipc/link.c +7 -2
@@ -996,7 +996,6 @@ void tipc_link_reset(struct tipc_link *l)int tipc_link_xmit (struct tipc_link *l,struct sk_buff_head *list,struct sk_buff_head *xmitq) { -struct tipc_msg *hdr =buf_msg (skb_peek (list));struct sk_buff_head *backlogq = &l->backlogq;struct sk_buff_head *transmq = &l->transmq;struct sk_buff *skb, *_skb;
@@ -1004,13 +1003,18 @@ int tipc_link_xmit(struct tipc_link *l, struct sk_buff_head *list,u16 ack = l->rcv_nxt -1 ;u16 seqno = l->snd_nxt;int pkt_cnt =skb_queue_len (list); -int imp =msg_importance (hdr);unsigned int mss =tipc_link_mss (l);unsigned int cwin = l->window;unsigned int mtu = l->mtu; +struct tipc_msg *hdr;bool new_bundle;int rc =0 ; +int imp; + +if (pkt_cnt <=0 ) +return 0 ; + hdr =buf_msg (skb_peek (list));if (unlikely (msg_size (hdr) > mtu)) { pr_warn("Too large msg, purging xmit list %d %d %d %d %d!\n", skb_queue_len(list), msg_user(hdr),
@@ -1019,6 +1023,7 @@ int tipc_link_xmit(struct tipc_link *l, struct sk_buff_head *list,return -EMSGSIZE ; } + imp =msg_importance (hdr);/* Allow oversubscription of one data msg per source at congestion */ if (unlikely (l->backlog[imp].len >= l->backlog[imp].limit)) {if (imp ==TIPC_SYSTEM_IMPORTANCE ) {
scripts/kconfig/Makefile +10 -0
@@ -94,6 +94,16 @@ configfiles=$(wildcard $(srctree)/kernel/configs/$@ $(srctree)/arch/$(SRCARCH)/c $(Q)$(CONFIG_SHELL) $(srctree)/scripts/kconfig/merge_config.sh -m .config $(configfiles) $(Q)$(MAKE) -f $(srctree)/Makefile olddefconfig +PHONY += kvmconfig +kvmconfig: kvm_guest.config + @echo >&2 "WARNING: 'make $@' will be removed after Linux 5.10" + @echo >&2 " Please use 'make $<' instead." + +PHONY += xenconfig +xenconfig: xen.config + @echo >&2 "WARNING: 'make $@' will be removed after Linux 5.10" + @echo >&2 " Please use 'make $<' instead." + PHONY += tinyconfig tinyconfig: $(Q)$(MAKE) -f $(srctree)/Makefile allnoconfig tiny.config
tools/testing/selftests/bpf/progs/profiler.inc.h +2 -0
@@ -256,6 +256,7 @@ static INLINE void* populate_cgroup_info(struct cgroup_data_t* cgroup_data,BPF_CORE_READ (task, nsproxy, cgroup_ns, root_cset, dfl_cgrp, kn);struct kernfs_node * proc_kernfs =BPF_CORE_READ (task, cgroups, dfl_cgrp, kn); +#if __has_builtin (__builtin_preserve_enum_value)if (ENABLE_CGROUP_V1_RESOLVER &&CONFIG_CGROUP_PIDS ) { int cgrp_id = bpf_core_enum_value(enum cgroup_subsys_id___local, pids_cgrp_id___local);
@@ -275,6 +276,7 @@ static INLINE void* populate_cgroup_info(struct cgroup_data_t* cgroup_data, } } } +#endif cgroup_data->cgroup_root_inode =get_inode_from_kernfs (root_kernfs); cgroup_data->cgroup_proc_inode =get_inode_from_kernfs (proc_kernfs);