treewide: Refresh patches

Signed-off-by: Sean Khan <datapronix@protonmail.com>
This commit is contained in:
Sean Khan 2025-07-10 22:12:00 -04:00
parent ff7d2b1c00
commit adbbcb0c41
4 changed files with 58 additions and 79 deletions

View File

@ -260,7 +260,7 @@
return -EFAULT; return -EFAULT;
--- a/netlink/nss_nl.c --- a/netlink/nss_nl.c
+++ b/netlink/nss_nl.c +++ b/netlink/nss_nl.c
@@ -463,7 +463,11 @@ struct nss_nlcmn *nss_nl_get_msg(struct @@ -462,7 +462,11 @@ struct nss_nlcmn *nss_nl_get_msg(struct
/* /*
* validate the common message header version & magic * validate the common message header version & magic
*/ */

View File

@ -64,7 +64,23 @@
sock_put(tun->sk); sock_put(tun->sk);
--- a/ipsecmgr/v2.0/plugins/xfrm/nss_ipsec_xfrm.c --- a/ipsecmgr/v2.0/plugins/xfrm/nss_ipsec_xfrm.c
+++ b/ipsecmgr/v2.0/plugins/xfrm/nss_ipsec_xfrm.c +++ b/ipsecmgr/v2.0/plugins/xfrm/nss_ipsec_xfrm.c
@@ -1222,6 +1222,7 @@ drop: @@ -1,5 +1,6 @@
/* Copyright (c) 2021, The Linux Foundation. All rights reserved.
*
+ * Copyright (c) 2022, Qualcomm Innovation Center, Inc. All rights reserved.
* Permission to use, copy, modify, and/or distribute this software for any
* purpose with or without fee is hereby granted, provided that the above
* copyright notice and this permission notice appear in all copies.
@@ -254,7 +255,7 @@ static void nss_ipsec_xfrm_flush_flow_by
for (count = NSS_IPSEC_XFRM_FLOW_DB_MAX; count--; db_head++) {
list_for_each_entry_safe(flow, tmp, db_head, list_entry) {
- if (flow->sa == sa) {
+ if (READ_ONCE(flow->sa) == sa) {
list_del_init(&flow->list_entry);
list_add(&flow->list_entry, &free_head);
}
@@ -1222,6 +1223,7 @@ drop:
return -EINVAL; return -EINVAL;
} }
@ -72,7 +88,7 @@
/* /*
* nss_ipsec_xfrm_v4_output_finish() * nss_ipsec_xfrm_v4_output_finish()
* This is called for non-offloaded transformations after the NF_POST routing hooks * This is called for non-offloaded transformations after the NF_POST routing hooks
@@ -1243,9 +1244,8 @@ static int nss_ipsec_xfrm_v4_output_fini @@ -1243,9 +1245,8 @@ static int nss_ipsec_xfrm_v4_output_fini
*/ */
static int nss_ipsec_xfrm_v4_extract_input(struct xfrm_state *x, struct sk_buff *skb) static int nss_ipsec_xfrm_v4_extract_input(struct xfrm_state *x, struct sk_buff *skb)
{ {
@ -83,7 +99,7 @@
return drv->xsa.v4->extract_input(x, skb); return drv->xsa.v4->extract_input(x, skb);
} }
@@ -1257,11 +1257,12 @@ static int nss_ipsec_xfrm_v4_extract_inp @@ -1257,11 +1258,12 @@ static int nss_ipsec_xfrm_v4_extract_inp
*/ */
static int nss_ipsec_xfrm_v4_extract_output(struct xfrm_state *x, struct sk_buff *skb) static int nss_ipsec_xfrm_v4_extract_output(struct xfrm_state *x, struct sk_buff *skb)
{ {
@ -97,7 +113,7 @@
/* /*
* nss_ipsec_xfrm_v4_transport_finish() * nss_ipsec_xfrm_v4_transport_finish()
@@ -1360,14 +1361,14 @@ fallback: @@ -1360,14 +1362,14 @@ fallback:
* nss_ipsec_xfrm_esp_init_state() * nss_ipsec_xfrm_esp_init_state()
* Initialize IPsec xfrm state of type ESP. * Initialize IPsec xfrm state of type ESP.
*/ */
@ -114,7 +130,7 @@
bool new_tun = 0; bool new_tun = 0;
size_t ip_addr_len; size_t ip_addr_len;
@@ -1375,7 +1376,7 @@ static int nss_ipsec_xfrm_esp_init_state @@ -1375,7 +1377,7 @@ static int nss_ipsec_xfrm_esp_init_state
local_dev = ip_dev_find(&init_net, x->id.daddr.a4); local_dev = ip_dev_find(&init_net, x->id.daddr.a4);
ip_addr_len = sizeof(local.a4); ip_addr_len = sizeof(local.a4);
} else { } else {
@ -123,7 +139,7 @@
ip_addr_len = sizeof(local.a6); ip_addr_len = sizeof(local.a6);
} }
@@ -1716,6 +1717,7 @@ drop: @@ -1716,6 +1718,7 @@ drop:
return -EINVAL; return -EINVAL;
} }
@ -131,7 +147,7 @@
/* /*
* nss_ipsec_xfrm_v6_output_finish() * nss_ipsec_xfrm_v6_output_finish()
* This is called for non-offloaded transformations after the NF_POST routing hooks * This is called for non-offloaded transformations after the NF_POST routing hooks
@@ -1737,9 +1739,9 @@ static int nss_ipsec_xfrm_v6_output_fini @@ -1737,9 +1740,9 @@ static int nss_ipsec_xfrm_v6_output_fini
*/ */
static int nss_ipsec_xfrm_v6_extract_input(struct xfrm_state *x, struct sk_buff *skb) static int nss_ipsec_xfrm_v6_extract_input(struct xfrm_state *x, struct sk_buff *skb)
{ {
@ -142,7 +158,7 @@
return drv->xsa.v6->extract_input(x, skb); return drv->xsa.v6->extract_input(x, skb);
} }
@@ -1751,11 +1753,11 @@ static int nss_ipsec_xfrm_v6_extract_inp @@ -1751,11 +1754,11 @@ static int nss_ipsec_xfrm_v6_extract_inp
*/ */
static int nss_ipsec_xfrm_v6_extract_output(struct xfrm_state *x, struct sk_buff *skb) static int nss_ipsec_xfrm_v6_extract_output(struct xfrm_state *x, struct sk_buff *skb)
{ {
@ -156,7 +172,7 @@
/* /*
* nss_ipsec_xfrm_v6_transport_finish() * nss_ipsec_xfrm_v6_transport_finish()
@@ -1783,22 +1785,25 @@ void nss_ipsec_xfrm_v6_local_error(struc @@ -1783,22 +1786,25 @@ void nss_ipsec_xfrm_v6_local_error(struc
return drv->xsa.v6->local_error(skb, mtu); return drv->xsa.v6->local_error(skb, mtu);
} }
@ -189,7 +205,7 @@
/* /*
* nss_ipsec_xfrm_esp6_rcv() * nss_ipsec_xfrm_esp6_rcv()
@@ -1949,7 +1954,6 @@ static void nss_ipsec_xfrm_state_delete( @@ -1949,7 +1955,6 @@ static void nss_ipsec_xfrm_state_delete(
nss_ipsec_xfrm_del_tun(drv, tun); nss_ipsec_xfrm_del_tun(drv, tun);
} }
@ -197,7 +213,7 @@
} }
/* /*
@@ -2018,9 +2022,11 @@ static struct xfrm_state_afinfo xfrm_v4_ @@ -2018,9 +2023,11 @@ static struct xfrm_state_afinfo xfrm_v4_
.init_temprop = nss_ipsec_xfrm_v4_init_param, .init_temprop = nss_ipsec_xfrm_v4_init_param,
#endif #endif
.output = nss_ipsec_xfrm_v4_output, .output = nss_ipsec_xfrm_v4_output,
@ -209,7 +225,7 @@
.transport_finish = nss_ipsec_xfrm_v4_transport_finish, .transport_finish = nss_ipsec_xfrm_v4_transport_finish,
.local_error = nss_ipsec_xfrm_v4_local_error, .local_error = nss_ipsec_xfrm_v4_local_error,
}; };
@@ -2065,7 +2071,6 @@ struct xfrm_mode xfrm_v6_mode_map[XFRM_M @@ -2065,7 +2072,6 @@ struct xfrm_mode xfrm_v6_mode_map[XFRM_M
* IPv4 xfrm_type ESP object. * IPv4 xfrm_type ESP object.
*/ */
static const struct xfrm_type xfrm_v4_type = { static const struct xfrm_type xfrm_v4_type = {
@ -217,7 +233,7 @@
.owner = THIS_MODULE, .owner = THIS_MODULE,
.proto = IPPROTO_ESP, .proto = IPPROTO_ESP,
.flags = XFRM_TYPE_REPLAY_PROT, .flags = XFRM_TYPE_REPLAY_PROT,
@@ -2101,9 +2106,11 @@ static struct xfrm_state_afinfo xfrm_v6_ @@ -2101,9 +2107,11 @@ static struct xfrm_state_afinfo xfrm_v6_
.state_sort = nss_ipsec_xfrm_v6_sort_state, .state_sort = nss_ipsec_xfrm_v6_sort_state,
#endif #endif
.output = nss_ipsec_xfrm_v6_output, .output = nss_ipsec_xfrm_v6_output,
@ -229,7 +245,7 @@
.transport_finish = nss_ipsec_xfrm_v6_transport_finish, .transport_finish = nss_ipsec_xfrm_v6_transport_finish,
.local_error = nss_ipsec_xfrm_v6_local_error, .local_error = nss_ipsec_xfrm_v6_local_error,
}; };
@@ -2112,7 +2119,6 @@ static struct xfrm_state_afinfo xfrm_v6_ @@ -2112,7 +2120,6 @@ static struct xfrm_state_afinfo xfrm_v6_
* IPv6 xfrm_type ESP object. * IPv6 xfrm_type ESP object.
*/ */
static const struct xfrm_type xfrm_v6_type = { static const struct xfrm_type xfrm_v6_type = {
@ -237,7 +253,7 @@
.owner = THIS_MODULE, .owner = THIS_MODULE,
.proto = IPPROTO_ESP, .proto = IPPROTO_ESP,
.flags = XFRM_TYPE_REPLAY_PROT, .flags = XFRM_TYPE_REPLAY_PROT,
@@ -2121,7 +2127,9 @@ static const struct xfrm_type xfrm_v6_ty @@ -2121,7 +2128,9 @@ static const struct xfrm_type xfrm_v6_ty
.get_mtu = nss_ipsec_xfrm_esp_get_mtu, .get_mtu = nss_ipsec_xfrm_esp_get_mtu,
.input = nss_ipsec_xfrm_esp_input, .input = nss_ipsec_xfrm_esp_input,
.output = nss_ipsec_xfrm_esp_output, .output = nss_ipsec_xfrm_esp_output,
@ -247,7 +263,7 @@
}; };
/* /*
@@ -2207,7 +2215,6 @@ static void nss_ipsec_xfrm_restore_afinf @@ -2207,7 +2216,6 @@ static void nss_ipsec_xfrm_restore_afinf
} }
xfrm_unregister_type(base, family); xfrm_unregister_type(base, family);
@ -255,7 +271,7 @@
xfrm_state_update_afinfo(family, afinfo); xfrm_state_update_afinfo(family, afinfo);
} }
@@ -2292,14 +2299,10 @@ static void nss_ipsec_xfrm_override_afin @@ -2292,14 +2300,10 @@ static void nss_ipsec_xfrm_override_afin
*/ */
int __init nss_ipsec_xfrm_init_module(void) int __init nss_ipsec_xfrm_init_module(void)
{ {
@ -270,7 +286,7 @@
net_get_random_once(&g_ipsec_xfrm.hash_nonce, sizeof(g_ipsec_xfrm.hash_nonce)); net_get_random_once(&g_ipsec_xfrm.hash_nonce, sizeof(g_ipsec_xfrm.hash_nonce));
/* /*
@@ -2327,7 +2330,6 @@ int __init nss_ipsec_xfrm_init_module(vo @@ -2327,7 +2331,6 @@ int __init nss_ipsec_xfrm_init_module(vo
nss_ipsec_xfrm_override_afinfo(&g_ipsec_xfrm, AF_INET6); nss_ipsec_xfrm_override_afinfo(&g_ipsec_xfrm, AF_INET6);
ecm_interface_ipsec_register_callbacks(&xfrm_ecm_ipsec_cb); ecm_interface_ipsec_register_callbacks(&xfrm_ecm_ipsec_cb);
@ -278,7 +294,7 @@
#if defined(NSS_L2TPV2_ENABLED) #if defined(NSS_L2TPV2_ENABLED)
l2tpmgr_register_ipsecmgr_callback_by_ipaddr(&xfrm_l2tp); l2tpmgr_register_ipsecmgr_callback_by_ipaddr(&xfrm_l2tp);
@@ -2336,6 +2338,7 @@ int __init nss_ipsec_xfrm_init_module(vo @@ -2336,6 +2339,7 @@ int __init nss_ipsec_xfrm_init_module(vo
/* /*
* Register for xfrm events * Register for xfrm events
*/ */
@ -286,7 +302,7 @@
xfrm_register_km(&nss_ipsec_xfrm_mgr); xfrm_register_km(&nss_ipsec_xfrm_mgr);
/* /*
@@ -2346,6 +2349,7 @@ int __init nss_ipsec_xfrm_init_module(vo @@ -2346,6 +2350,7 @@ int __init nss_ipsec_xfrm_init_module(vo
return 0; return 0;
unreg_v4_handler: unreg_v4_handler:
@ -296,7 +312,24 @@
} }
--- a/ipsecmgr/v2.0/plugins/xfrm/nss_ipsec_xfrm_sa.c --- a/ipsecmgr/v2.0/plugins/xfrm/nss_ipsec_xfrm_sa.c
+++ b/ipsecmgr/v2.0/plugins/xfrm/nss_ipsec_xfrm_sa.c +++ b/ipsecmgr/v2.0/plugins/xfrm/nss_ipsec_xfrm_sa.c
@@ -181,7 +181,7 @@ static bool nss_ipsec_xfrm_sa_init_crypt @@ -55,13 +55,15 @@ struct nss_ipsec_xfrm_algo {
static struct nss_ipsec_xfrm_algo xfrm_algo[] = {
{.cipher_name = "cbc(aes)", .auth_name = "hmac(sha1)", .algo = NSS_IPSECMGR_ALGO_AES_CBC_SHA1_HMAC},
{.cipher_name = "cbc(des3_ede)", .auth_name = "hmac(sha1)", .algo = NSS_IPSECMGR_ALGO_3DES_CBC_SHA1_HMAC},
+#ifndef NSS_IPSEC_XFRM_IPQ50XX
{.cipher_name = "cbc(aes)", .auth_name = "hmac(md5)", .algo = NSS_IPSECMGR_ALGO_AES_CBC_MD5_HMAC},
{.cipher_name = "cbc(des3_ede)", .auth_name = "hmac(md5)", .algo = NSS_IPSECMGR_ALGO_3DES_CBC_MD5_HMAC},
{.cipher_name = "rfc4106(gcm(aes))", .auth_name = "rfc4106(gcm(aes))", .algo = NSS_IPSECMGR_ALGO_AES_GCM_GMAC_RFC4106},
{.cipher_name = "ecb(cipher_null)", .auth_name = "hmac(sha1)", .algo = NSS_IPSECMGR_ALGO_NULL_CIPHER_SHA1_HMAC},
+ {.cipher_name = "ecb(cipher_null)", .auth_name = "hmac(sha256)", .algo = NSS_IPSECMGR_ALGO_NULL_CIPHER_SHA256_HMAC},
+#endif
{.cipher_name = "cbc(aes)", .auth_name = "hmac(sha256)", .algo = NSS_IPSECMGR_ALGO_AES_CBC_SHA256_HMAC},
{.cipher_name = "cbc(des3_ede)", .auth_name = "hmac(sha256)", .algo = NSS_IPSECMGR_ALGO_3DES_CBC_SHA256_HMAC},
- {.cipher_name = "ecb(cipher_null)", .auth_name = "hmac(sha256)", .algo = NSS_IPSECMGR_ALGO_NULL_CIPHER_SHA256_HMAC},
};
/*
@@ -181,7 +183,7 @@ static bool nss_ipsec_xfrm_sa_init_crypt
*/ */
static void nss_ipsec_xfrm_sa_init_tuple(struct nss_ipsec_xfrm_sa *sa, struct xfrm_state *x) static void nss_ipsec_xfrm_sa_init_tuple(struct nss_ipsec_xfrm_sa *sa, struct xfrm_state *x)
{ {
@ -305,7 +338,7 @@
sa->type = NSS_IPSECMGR_SA_TYPE_ENCAP; sa->type = NSS_IPSECMGR_SA_TYPE_ENCAP;
sa->tuple.spi_index = ntohl(x->id.spi); sa->tuple.spi_index = ntohl(x->id.spi);
@@ -215,7 +215,7 @@ static void nss_ipsec_xfrm_sa_init_tuple @@ -215,7 +217,7 @@ static void nss_ipsec_xfrm_sa_init_tuple
sa->tuple.dest_ip[2] = ntohl(x->id.daddr.a6[2]); sa->tuple.dest_ip[2] = ntohl(x->id.daddr.a6[2]);
sa->tuple.dest_ip[3] = ntohl(x->id.daddr.a6[3]); sa->tuple.dest_ip[3] = ntohl(x->id.daddr.a6[3]);
@ -332,23 +365,6 @@
} }
/* /*
From 2b32003b2e6225802361bc3bab12fcb3510f0327 Mon Sep 17 00:00:00 2001
From: Suhas N Bhargav <sbhargav@codeaurora.org>
Date: Thu, 30 Sep 2021 16:32:12 +0530
Subject: [PATCH] [qca-nss-clients] Fix to avoid contention b/w write locks in
ipsecmgr
This fix is needed to avoid contention of locks between two
entities which are in process & interrupt context
Change-Id: I9986606b99d7642cca1c105bdf05e0ed67b66374
Signed-off-by: Suhas N Bhargav <sbhargav@codeaurora.org>
---
ipsecmgr/v2.0/nss_ipsecmgr.c | 6 +++---
ipsecmgr/v2.0/nss_ipsecmgr_flow.c | 8 ++++----
ipsecmgr/v2.0/nss_ipsecmgr_tunnel.c | 10 +++++-----
3 files changed, 12 insertions(+), 12 deletions(-)
--- a/ipsecmgr/v2.0/nss_ipsecmgr.c --- a/ipsecmgr/v2.0/nss_ipsecmgr.c
+++ b/ipsecmgr/v2.0/nss_ipsecmgr.c +++ b/ipsecmgr/v2.0/nss_ipsecmgr.c
@@ -1,6 +1,6 @@ @@ -1,6 +1,6 @@
@ -445,24 +461,6 @@ Signed-off-by: Suhas N Bhargav <sbhargav@codeaurora.org>
nss_ipsecmgr_tunnel_mtu(dev, skb_dev ? skb_dev->mtu : dev->mtu); nss_ipsecmgr_tunnel_mtu(dev, skb_dev ? skb_dev->mtu : dev->mtu);
--- a/ipsecmgr/v2.0/plugins/xfrm/nss_ipsec_xfrm.c
+++ b/ipsecmgr/v2.0/plugins/xfrm/nss_ipsec_xfrm.c
@@ -1,5 +1,6 @@
/* Copyright (c) 2021, The Linux Foundation. All rights reserved.
*
+ * Copyright (c) 2022, Qualcomm Innovation Center, Inc. All rights reserved.
* Permission to use, copy, modify, and/or distribute this software for any
* purpose with or without fee is hereby granted, provided that the above
* copyright notice and this permission notice appear in all copies.
@@ -254,7 +255,7 @@ static void nss_ipsec_xfrm_flush_flow_by
for (count = NSS_IPSEC_XFRM_FLOW_DB_MAX; count--; db_head++) {
list_for_each_entry_safe(flow, tmp, db_head, list_entry) {
- if (flow->sa == sa) {
+ if (READ_ONCE(flow->sa) == sa) {
list_del_init(&flow->list_entry);
list_add(&flow->list_entry, &free_head);
}
--- a/ipsecmgr/v2.0/plugins/xfrm/nss_ipsec_xfrm_flow.c --- a/ipsecmgr/v2.0/plugins/xfrm/nss_ipsec_xfrm_flow.c
+++ b/ipsecmgr/v2.0/plugins/xfrm/nss_ipsec_xfrm_flow.c +++ b/ipsecmgr/v2.0/plugins/xfrm/nss_ipsec_xfrm_flow.c
@@ -1,4 +1,5 @@ @@ -1,4 +1,5 @@
@ -540,22 +538,3 @@ Signed-off-by: Suhas N Bhargav <sbhargav@codeaurora.org>
+ifeq ($(SoC),$(filter $(SoC),ipq50xx ipq50xx_64)) +ifeq ($(SoC),$(filter $(SoC),ipq50xx ipq50xx_64))
+ccflags-y += -DNSS_IPSEC_XFRM_IPQ50XX +ccflags-y += -DNSS_IPSEC_XFRM_IPQ50XX
+endif +endif
--- a/ipsecmgr/v2.0/plugins/xfrm/nss_ipsec_xfrm_sa.c
+++ b/ipsecmgr/v2.0/plugins/xfrm/nss_ipsec_xfrm_sa.c
@@ -55,13 +55,15 @@ struct nss_ipsec_xfrm_algo {
static struct nss_ipsec_xfrm_algo xfrm_algo[] = {
{.cipher_name = "cbc(aes)", .auth_name = "hmac(sha1)", .algo = NSS_IPSECMGR_ALGO_AES_CBC_SHA1_HMAC},
{.cipher_name = "cbc(des3_ede)", .auth_name = "hmac(sha1)", .algo = NSS_IPSECMGR_ALGO_3DES_CBC_SHA1_HMAC},
+#ifndef NSS_IPSEC_XFRM_IPQ50XX
{.cipher_name = "cbc(aes)", .auth_name = "hmac(md5)", .algo = NSS_IPSECMGR_ALGO_AES_CBC_MD5_HMAC},
{.cipher_name = "cbc(des3_ede)", .auth_name = "hmac(md5)", .algo = NSS_IPSECMGR_ALGO_3DES_CBC_MD5_HMAC},
{.cipher_name = "rfc4106(gcm(aes))", .auth_name = "rfc4106(gcm(aes))", .algo = NSS_IPSECMGR_ALGO_AES_GCM_GMAC_RFC4106},
{.cipher_name = "ecb(cipher_null)", .auth_name = "hmac(sha1)", .algo = NSS_IPSECMGR_ALGO_NULL_CIPHER_SHA1_HMAC},
+ {.cipher_name = "ecb(cipher_null)", .auth_name = "hmac(sha256)", .algo = NSS_IPSECMGR_ALGO_NULL_CIPHER_SHA256_HMAC},
+#endif
{.cipher_name = "cbc(aes)", .auth_name = "hmac(sha256)", .algo = NSS_IPSECMGR_ALGO_AES_CBC_SHA256_HMAC},
{.cipher_name = "cbc(des3_ede)", .auth_name = "hmac(sha256)", .algo = NSS_IPSECMGR_ALGO_3DES_CBC_SHA256_HMAC},
- {.cipher_name = "ecb(cipher_null)", .auth_name = "hmac(sha256)", .algo = NSS_IPSECMGR_ALGO_NULL_CIPHER_SHA256_HMAC},
};
/*

View File

@ -40,7 +40,7 @@
static int max_ipv4_conn = NSS_DEFAULT_NUM_CONN; static int max_ipv4_conn = NSS_DEFAULT_NUM_CONN;
--- a/Makefile --- a/Makefile
+++ b/Makefile +++ b/Makefile
@@ -579,6 +581,8 @@ qca-nss-drv-objs += \ @@ -579,6 +579,8 @@ qca-nss-drv-objs += \
ccflags-y += -DNSS_FREQ_SCALE_SUPPORT=1 ccflags-y += -DNSS_FREQ_SCALE_SUPPORT=1
endif endif

View File

@ -39,7 +39,7 @@
static int max_ipv4_conn = NSS_DEFAULT_NUM_CONN; static int max_ipv4_conn = NSS_DEFAULT_NUM_CONN;
--- a/Makefile --- a/Makefile
+++ b/Makefile +++ b/Makefile
@@ -630,6 +632,8 @@ qca-nss-drv-objs += \ @@ -630,6 +630,8 @@ qca-nss-drv-objs += \
ccflags-y += -DNSS_FREQ_SCALE_SUPPORT=1 ccflags-y += -DNSS_FREQ_SCALE_SUPPORT=1
endif endif