Sfoglia il codice sorgente

wlan: Ic82a4d054f8b9ea0fedfd52efdebc01d4d224363

Update to Ic82a4d054f8b9ea0fedfd52efdebc01d4d224363

CRs-Fixed: 3097079
Change-Id: Ic82a4d054f8b9ea0fedfd52efdebc01d4d224363
Signed-off-by: Subash Abhinov Kasiviswanathan <[email protected]>
Subash Abhinov Kasiviswanathan 3 anni fa
parent
commit
4661b4953f

+ 6 - 2
wlan/rmnet_wlan.h

@@ -1,5 +1,6 @@
 /* SPDX-License-Identifier: GPL-2.0-only */
 /* Copyright (c) 2021, The Linux Foundation. All rights reserved.
+ * Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved.
  *
  * RMNET WLAN handler framework
  *
@@ -32,7 +33,10 @@ DATARMNETf0d9de7e2f,struct genl_info*DATARMNET54338da2ff);int
 DATARMNETc97c6a4265(__be16 DATARMNETf0d9de7e2f,struct genl_info*
 DATARMNET54338da2ff);bool DATARMNETa8b2566e6a(struct sk_buff*DATARMNET543491eb0f
 ,struct DATARMNETb89ecedefc*DATARMNET3396919a68,int DATARMNET611d08d671);int 
-DATARMNET078f6bd384(void);void DATARMNETfae36afa03(void);char*
-DATARMNET934406764d(void);
+DATARMNET59b8376224(__be16 DATARMNETf0d9de7e2f,struct genl_info*
+DATARMNET54338da2ff);int DATARMNET0b12e969c5(__be16 DATARMNETf0d9de7e2f,struct 
+genl_info*DATARMNET54338da2ff);bool DATARMNET0a4704e5e0(struct 
+DATARMNETb89ecedefc*DATARMNET3396919a68);int DATARMNET078f6bd384(void);void 
+DATARMNETfae36afa03(void);char*DATARMNET934406764d(void);
 #endif
 

+ 8 - 5
wlan/rmnet_wlan_fragment.c

@@ -1,5 +1,6 @@
 // SPDX-License-Identifier: GPL-2.0-only
 /* Copyright (c) 2021, The Linux Foundation. All rights reserved.
+ * Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved.
  *
  * RMNET WLAN fragment handler framework
  *
@@ -141,11 +142,13 @@ DATARMNET4924e79411==IPPROTO_UDP){struct udphdr*DATARMNET75be5f3406=(struct
 udphdr*)(DATARMNET543491eb0f->data+DATARMNET54338da2ff->DATARMNET611d08d671);
 DATARMNET3396919a68->DATARMNETf0d9de7e2f=DATARMNET75be5f3406->dest;if(
 DATARMNETa8b2566e6a(DATARMNET543491eb0f,DATARMNET3396919a68,DATARMNET54338da2ff
-->DATARMNET611d08d671)){DATARMNET5ca94dbc3c(DATARMNETd1ad664d00);goto 
-DATARMNET07fc49caf2;}}else if(DATARMNET3396919a68->DATARMNET4924e79411==
-IPPROTO_ESP){struct ip_esp_hdr*DATARMNET73ee6a7020=(struct ip_esp_hdr*)(
-DATARMNET543491eb0f->data+DATARMNET54338da2ff->DATARMNET611d08d671);
-DATARMNET3396919a68->DATARMNET906b2ee561=DATARMNET73ee6a7020->spi;}if(
+->DATARMNET611d08d671)){if(DATARMNET0a4704e5e0(DATARMNET3396919a68)){kfree_skb(
+DATARMNET543491eb0f);DATARMNET61c2303133=(0xd2d+202-0xdf7);DATARMNET5ca94dbc3c(
+DATARMNET0981317411);goto DATARMNETbf4095f79e;}DATARMNET5ca94dbc3c(
+DATARMNETd1ad664d00);goto DATARMNET07fc49caf2;}}else if(DATARMNET3396919a68->
+DATARMNET4924e79411==IPPROTO_ESP){struct ip_esp_hdr*DATARMNET73ee6a7020=(struct 
+ip_esp_hdr*)(DATARMNET543491eb0f->data+DATARMNET54338da2ff->DATARMNET611d08d671)
+;DATARMNET3396919a68->DATARMNET906b2ee561=DATARMNET73ee6a7020->spi;}if(
 DATARMNET4eafcdee07(DATARMNET3396919a68)){u32 DATARMNET248f120dd5;
 DATARMNET63b1a086d5->DATARMNET7ed5754a5c=DATARMNET2d4b4cfc9e;if(!
 DATARMNET4899053671(DATARMNET543491eb0f,DATARMNET2d4b4cfc9e)){

+ 21 - 5
wlan/rmnet_wlan_genl.c

@@ -172,6 +172,20 @@ DATARMNET44a9a789aa];if(!DATARMNETef7cdd7b6b){GENL_SET_ERR_MSG(
 DATARMNET54338da2ff,
 "\x4d\x75\x73\x74\x20\x73\x70\x65\x63\x69\x66\x79\x20\x65\x6e\x63\x61\x70\x20\x70\x6f\x72\x74"
 );return-EINVAL;}return DATARMNETc97c6a4265(nla_get_be16(DATARMNETef7cdd7b6b),
+DATARMNET54338da2ff);}static int DATARMNET16add73734(struct sk_buff*
+DATARMNET543491eb0f,struct genl_info*DATARMNET54338da2ff){struct nlattr*
+DATARMNETef7cdd7b6b;DATARMNETef7cdd7b6b=DATARMNET54338da2ff->attrs[
+DATARMNET44a9a789aa];if(!DATARMNETef7cdd7b6b){GENL_SET_ERR_MSG(
+DATARMNET54338da2ff,
+"\x4d\x75\x73\x74\x20\x73\x70\x65\x63\x69\x66\x79\x20\x65\x6e\x63\x61\x70\x20\x70\x6f\x72\x74"
+);return-EINVAL;}return DATARMNET59b8376224(nla_get_be16(DATARMNETef7cdd7b6b),
+DATARMNET54338da2ff);}static int DATARMNETb318ed4796(struct sk_buff*
+DATARMNET543491eb0f,struct genl_info*DATARMNET54338da2ff){struct nlattr*
+DATARMNETef7cdd7b6b;DATARMNETef7cdd7b6b=DATARMNET54338da2ff->attrs[
+DATARMNET44a9a789aa];if(!DATARMNETef7cdd7b6b){GENL_SET_ERR_MSG(
+DATARMNET54338da2ff,
+"\x4d\x75\x73\x74\x20\x73\x70\x65\x63\x69\x66\x79\x20\x65\x6e\x63\x61\x70\x20\x70\x6f\x72\x74"
+);return-EINVAL;}return DATARMNET0b12e969c5(nla_get_be16(DATARMNETef7cdd7b6b),
 DATARMNET54338da2ff);}static int DATARMNETa4773cb837(struct sk_buff*
 DATARMNET543491eb0f,struct genl_info*DATARMNET54338da2ff){(void)
 DATARMNET543491eb0f;(void)DATARMNET54338da2ff;DATARMNET078f6bd384();return
@@ -183,11 +197,13 @@ DATARMNET14a3625b43,DATARMNETf1fa473089),DATARMNET58eca5265b(DATARMNET4478d3511b
 DATARMNETb86993aefb),DATARMNET58eca5265b(DATARMNET18145b00f6,DATARMNETc175a08219
 ),DATARMNET58eca5265b(DATARMNETb8857fe6d9,DATARMNETc5f6c112ec),
 DATARMNET58eca5265b(DATARMNET6d50a30ec2,DATARMNETa6aec23397),DATARMNET58eca5265b
-(DATARMNET2e5d7ed755,DATARMNETa4773cb837),};struct genl_family 
-DATARMNET61e8f41aae={.name=DATARMNET040266f460,.version=DATARMNET7c442b83bb,.
-maxattr=DATARMNETebcc30fe04,.policy=DATARMNET0381a65e93,.ops=DATARMNETf9df19988d
-,.n_ops=ARRAY_SIZE(DATARMNETf9df19988d),};static int __init DATARMNET7eb0fa5c8f(
-void){int DATARMNET61c2303133=(0xd2d+202-0xdf7);pr_info(
+(DATARMNET2e5d7ed755,DATARMNETa4773cb837),DATARMNET58eca5265b(
+DATARMNETd37aaf8b58,DATARMNET16add73734),DATARMNET58eca5265b(DATARMNET3626d362d4
+,DATARMNETb318ed4796),};struct genl_family DATARMNET61e8f41aae={.name=
+DATARMNET040266f460,.version=DATARMNET7c442b83bb,.maxattr=DATARMNETebcc30fe04,.
+policy=DATARMNET0381a65e93,.ops=DATARMNETf9df19988d,.n_ops=ARRAY_SIZE(
+DATARMNETf9df19988d),};static int __init DATARMNET7eb0fa5c8f(void){int 
+DATARMNET61c2303133=(0xd2d+202-0xdf7);pr_info(
 "\x25\x73\x28\x29\x3a\x20\x72\x6d\x6e\x65\x74\x5f\x77\x6c\x61\x6e\x20\x69\x6e\x69\x74\x69\x61\x6c\x69\x7a\x69\x6e\x67" "\n"
 ,__func__);DATARMNET61c2303133=genl_register_family(&DATARMNET61e8f41aae);if(
 DATARMNET61c2303133){pr_err(

+ 5 - 4
wlan/rmnet_wlan_genl.h

@@ -1,5 +1,6 @@
 /* SPDX-License-Identifier: GPL-2.0-only */
 /* Copyright (c) 2021, The Linux Foundation. All rights reserved.
+ * Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved.
  *
  * RMNET WLAN Generic netlink
  *
@@ -11,10 +12,10 @@
 #define DATARMNET040266f460 "\x52\x4d\x4e\x45\x54\x5f\x57\x4c\x41\x4e"
 enum{DATARMNET6ea2b7cfbe,DATARMNET0604500302,DATARMNET91becfb9ac,
 DATARMNET14a3625b43,DATARMNET4478d3511b,DATARMNETc2d5a4e103,DATARMNET18145b00f6,
-DATARMNETb8857fe6d9,DATARMNET6d50a30ec2,DATARMNET2e5d7ed755,DATARMNETce1982dccc,
-};enum{DATARMNET09a5930cdf,DATARMNET4e9cd7b8bf,DATARMNETb8afde4a5a,
-DATARMNETea4b56dc2b,DATARMNET8bf80e4b66,DATARMNET44a9a789aa,DATARMNET0bfbea52c0,
-};
+DATARMNETb8857fe6d9,DATARMNET6d50a30ec2,DATARMNET2e5d7ed755,DATARMNETd37aaf8b58,
+DATARMNET3626d362d4,DATARMNETce1982dccc,};enum{DATARMNET09a5930cdf,
+DATARMNET4e9cd7b8bf,DATARMNETb8afde4a5a,DATARMNETea4b56dc2b,DATARMNET8bf80e4b66,
+DATARMNET44a9a789aa,DATARMNET0bfbea52c0,};
 #define DATARMNETebcc30fe04 (DATARMNET0bfbea52c0 - (0xd26+209-0xdf6))
 enum{DATARMNET0dcb7acdac,DATARMNET8c062d7709,DATARMNET93b5e3666d,};
 #define DATARMNETf6bbad94a5 (DATARMNET93b5e3666d - (0xd26+209-0xdf6))

+ 41 - 8
wlan/rmnet_wlan_main.c

@@ -1,5 +1,6 @@
 // SPDX-License-Identifier: GPL-2.0-only
 /* Copyright (c) 2021, The Linux Foundation. All rights reserved.
+ * Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved.
  *
  * RMNET WLAN handler framework
  *
@@ -37,6 +38,7 @@ DATARMNET63a2b7773e);static DEFINE_HASHTABLE(DATARMNET1903907456,
 DATARMNET6b4ac8224c);static DEFINE_MUTEX(DATARMNETf46fb02ac6);static 
 DEFINE_HASHTABLE(DATARMNET78ed39f13b,DATARMNET6b4ac8224c);static DEFINE_MUTEX(
 DATARMNET954bef55d0);static DEFINE_HASHTABLE(DATARMNET133502ca0e,
+DATARMNET6b4ac8224c);static DEFINE_HASHTABLE(DATARMNET665d2f133f,
 DATARMNET6b4ac8224c);static char DATARMNET30500ba48c[IFNAMSIZ];static bool 
 DATARMNET1e31b22eff(struct DATARMNETb89ecedefc*DATARMNETae0905b0b3,struct 
 DATARMNETb89ecedefc*DATARMNETdb49f21565){if(DATARMNETae0905b0b3->
@@ -180,9 +182,36 @@ DATARMNET63b1a086d5->DATARMNETe8608dd267);kfree_rcu(DATARMNET63b1a086d5,
 DATARMNET28bfe9e6ad);DATARMNET5ca94dbc3c(DATARMNETb7c9f010b2);return
 (0xd2d+202-0xdf7);}}GENL_SET_ERR_MSG(DATARMNET54338da2ff,
 "\x4e\x6f\x20\x73\x75\x63\x68\x20\x70\x6f\x72\x74\x20\x76\x61\x6c\x75\x65");
-return-ESRCH;}static void DATARMNET1f36d4813c(void){struct DATARMNETda06413d0d*
-DATARMNET63b1a086d5;struct hlist_node*DATARMNET0386f6f82a;int 
-DATARMNET5c2fd31d7b;mutex_lock(&DATARMNET954bef55d0);hash_for_each_safe(
+return-ESRCH;}static bool DATARMNETa96214b53c(__be16 DATARMNETf0d9de7e2f)
+__must_hold(RCU){struct DATARMNETda06413d0d*DATARMNET63b1a086d5;
+hash_for_each_possible_rcu(DATARMNET665d2f133f,DATARMNET63b1a086d5,
+DATARMNETe8608dd267,DATARMNETf0d9de7e2f){if(DATARMNET63b1a086d5->
+DATARMNETf0d9de7e2f==DATARMNETf0d9de7e2f)return true;}return false;}int 
+DATARMNET59b8376224(__be16 DATARMNETf0d9de7e2f,struct genl_info*
+DATARMNET54338da2ff)__must_hold(&DATARMNET954bef55d0){struct DATARMNETda06413d0d
+*DATARMNET63b1a086d5;struct hlist_node*DATARMNET0386f6f82a;
+hash_for_each_possible_safe(DATARMNET665d2f133f,DATARMNET63b1a086d5,
+DATARMNET0386f6f82a,DATARMNETe8608dd267,DATARMNETf0d9de7e2f){if(
+DATARMNET63b1a086d5->DATARMNETf0d9de7e2f==DATARMNETf0d9de7e2f){hash_del_rcu(&
+DATARMNET63b1a086d5->DATARMNETe8608dd267);kfree_rcu(DATARMNET63b1a086d5,
+DATARMNET28bfe9e6ad);DATARMNET5ca94dbc3c(DATARMNETa726eebea4);return
+(0xd2d+202-0xdf7);}}return(0xd2d+202-0xdf7);}int DATARMNET0b12e969c5(__be16 
+DATARMNETf0d9de7e2f,struct genl_info*DATARMNET54338da2ff)__must_hold(&
+DATARMNET954bef55d0){struct DATARMNETda06413d0d*DATARMNET63b1a086d5;
+rcu_read_lock();if(DATARMNETa96214b53c(DATARMNETf0d9de7e2f)){rcu_read_unlock();
+GENL_SET_ERR_MSG(DATARMNET54338da2ff,
+"\x45\x6e\x63\x61\x70\x20\x70\x6f\x72\x74\x20\x61\x6c\x72\x65\x61\x64\x79\x20\x70\x72\x65\x73\x65\x6e\x74"
+);return-EEXIST;}rcu_read_unlock();DATARMNET63b1a086d5=kzalloc(sizeof(*
+DATARMNET63b1a086d5),GFP_KERNEL);if(!DATARMNET63b1a086d5){GENL_SET_ERR_MSG(
+DATARMNET54338da2ff,
+"\x43\x61\x6e\x6e\x6f\x74\x20\x61\x6c\x6c\x6f\x63\x61\x74\x65\x20\x65\x6e\x63\x61\x70\x20\x70\x6f\x72\x74\x20\x6d\x65\x6d\x6f\x72\x79"
+);return-ENOMEM;}DATARMNET63b1a086d5->DATARMNETf0d9de7e2f=DATARMNETf0d9de7e2f;
+INIT_HLIST_NODE(&DATARMNET63b1a086d5->DATARMNETe8608dd267);hash_add_rcu(
+DATARMNET665d2f133f,&DATARMNET63b1a086d5->DATARMNETe8608dd267,
+DATARMNETf0d9de7e2f);DATARMNET5ca94dbc3c(DATARMNET990edaea89);return
+(0xd2d+202-0xdf7);}static void DATARMNET1f36d4813c(void){struct 
+DATARMNETda06413d0d*DATARMNET63b1a086d5;struct hlist_node*DATARMNET0386f6f82a;
+int DATARMNET5c2fd31d7b;mutex_lock(&DATARMNET954bef55d0);hash_for_each_safe(
 DATARMNET133502ca0e,DATARMNET5c2fd31d7b,DATARMNET0386f6f82a,DATARMNET63b1a086d5,
 DATARMNETe8608dd267){hash_del_rcu(&DATARMNET63b1a086d5->DATARMNETe8608dd267);
 kfree_rcu(DATARMNET63b1a086d5,DATARMNET28bfe9e6ad);}mutex_unlock(&
@@ -236,10 +265,12 @@ DATARMNET3396919a68.DATARMNET4924e79411==IPPROTO_UDP){struct udphdr*
 DATARMNET75be5f3406=(struct udphdr*)(DATARMNET543491eb0f->data+
 DATARMNET611d08d671);DATARMNET3396919a68.DATARMNETf0d9de7e2f=DATARMNET75be5f3406
 ->dest;if(DATARMNETa8b2566e6a(DATARMNET543491eb0f,&DATARMNET3396919a68,
-DATARMNET611d08d671)){DATARMNET5ca94dbc3c(DATARMNETd1ad664d00);goto 
-DATARMNETbf4095f79e;}}else if(DATARMNET3396919a68.DATARMNET4924e79411==
-IPPROTO_ESP){struct ip_esp_hdr*DATARMNET73ee6a7020=(struct ip_esp_hdr*)(
-DATARMNET543491eb0f->data+DATARMNET611d08d671);DATARMNET3396919a68.
+DATARMNET611d08d671)){if(DATARMNET0a4704e5e0(&DATARMNET3396919a68)){kfree_skb(
+DATARMNET543491eb0f);DATARMNET1dec89a127=RX_HANDLER_CONSUMED;DATARMNET5ca94dbc3c
+(DATARMNET0981317411);goto DATARMNETbf4095f79e;}DATARMNET5ca94dbc3c(
+DATARMNETd1ad664d00);goto DATARMNETbf4095f79e;}}else if(DATARMNET3396919a68.
+DATARMNET4924e79411==IPPROTO_ESP){struct ip_esp_hdr*DATARMNET73ee6a7020=(struct 
+ip_esp_hdr*)(DATARMNET543491eb0f->data+DATARMNET611d08d671);DATARMNET3396919a68.
 DATARMNET906b2ee561=DATARMNET73ee6a7020->spi;}else{goto DATARMNETbf4095f79e;}if(
 DATARMNET4eafcdee07(&DATARMNET3396919a68))goto DATARMNET1e5291b369;goto 
 DATARMNETbf4095f79e;DATARMNET1e5291b369:if(!DATARMNET4899053671(
@@ -427,7 +458,9 @@ DATARMNETc82d2f4e16);if(!DATARMNET75be5f3406)return false;if(DATARMNET75be5f3406
 ->source==htons((0xdf7+6169-0x241c)))return false;DATARMNETdf2dbc641f=
 skb_header_pointer(DATARMNET543491eb0f,DATARMNET611d08d671+sizeof(*
 DATARMNET75be5f3406),sizeof(*DATARMNETdf2dbc641f),&DATARMNET6c56902362);if(!
-DATARMNETdf2dbc641f)return false;return!!(*DATARMNETdf2dbc641f);}int 
+DATARMNETdf2dbc641f)return false;return!!(*DATARMNETdf2dbc641f);}bool 
+DATARMNET0a4704e5e0(struct DATARMNETb89ecedefc*DATARMNET3396919a68){return 
+DATARMNETa96214b53c(DATARMNET3396919a68->DATARMNETf0d9de7e2f);}int 
 DATARMNET078f6bd384(void){DATARMNETbb4efa5b3d();return(0xd2d+202-0xdf7);}void 
 DATARMNETfae36afa03(void){DATARMNETbb4efa5b3d();}char*DATARMNET934406764d(void){
 return DATARMNET30500ba48c;}

+ 8 - 6
wlan/rmnet_wlan_stats.h

@@ -1,5 +1,6 @@
 /* SPDX-License-Identifier: GPL-2.0-only */
 /* Copyright (c) 2021, The Linux Foundation. All rights reserved.
+ * Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved.
  *
  * RMNET WLAN stats framework
  *
@@ -12,11 +13,12 @@ enum{DATARMNET12d881921a,DATARMNET9f24b86462,DATARMNET735bb8578c,
 DATARMNETf4c2a83526,DATARMNET591885a019,DATARMNETd8273aa7e1,DATARMNET7a58a5c1fc,
 DATARMNETba232077da,DATARMNETe75ad1a949,DATARMNETd691057b85,DATARMNETd1ad664d00,
 DATARMNETef2af4f071,DATARMNETebc1b87b7d,DATARMNET21bdbe6a27,DATARMNET90782e08cf,
-DATARMNETb7c9f010b2,DATARMNETc6bf075f65,};enum{DATARMNETc1b437465b,
-DATARMNET04311361a2,DATARMNET43a65c0be7,DATARMNET13bbe5f5c5,DATARMNETd1c349b9fc,
-DATARMNETfa4b3dd44a,DATARMNET72ab5e86d8,DATARMNET0e6bd55b8b,DATARMNET64aecaa865,
-DATARMNET72f4fdd48a,DATARMNET9cff15f94d,DATARMNETbf6e6853f9,DATARMNETa0da722329,
-DATARMNET729e252fb9,DATARMNETfe1714cc0e,};void DATARMNET5ca94dbc3c(u32 
-DATARMNET248f120dd5);void DATARMNET17f6bc1be5(u32 DATARMNET248f120dd5);
+DATARMNETb7c9f010b2,DATARMNET990edaea89,DATARMNETa726eebea4,DATARMNET0981317411,
+DATARMNETc6bf075f65,};enum{DATARMNETc1b437465b,DATARMNET04311361a2,
+DATARMNET43a65c0be7,DATARMNET13bbe5f5c5,DATARMNETd1c349b9fc,DATARMNETfa4b3dd44a,
+DATARMNET72ab5e86d8,DATARMNET0e6bd55b8b,DATARMNET64aecaa865,DATARMNET72f4fdd48a,
+DATARMNET9cff15f94d,DATARMNETbf6e6853f9,DATARMNETa0da722329,DATARMNET729e252fb9,
+DATARMNETfe1714cc0e,};void DATARMNET5ca94dbc3c(u32 DATARMNET248f120dd5);void 
+DATARMNET17f6bc1be5(u32 DATARMNET248f120dd5);
 #endif