From 0f97bb26c5776b0de2a95539d5901d97d3d28a72 Mon Sep 17 00:00:00 2001 From: Sean Tranchetti Date: Mon, 18 Oct 2021 12:59:00 -0700 Subject: [PATCH] rmnet_wlan: Ic9b16a62f68d584ba3453860a0d9576eb9e127f7 Updates the module to version Ic9b16a62f68d584ba3453860a0d9576eb9e127f7. Change-Id: I6d10ee711ea13175b319b6f4257fba4b67b36d4f Signed-off-by: Sean Tranchetti --- wlan/rmnet_wlan_genl.c | 4 +- wlan/rmnet_wlan_main.c | 115 ++++++++++++++++++++++++++-------------- wlan/rmnet_wlan_stats.h | 14 ++--- 3 files changed, 84 insertions(+), 49 deletions(-) diff --git a/wlan/rmnet_wlan_genl.c b/wlan/rmnet_wlan_genl.c index 9f1e965858..8e43614754 100644 --- a/wlan/rmnet_wlan_genl.c +++ b/wlan/rmnet_wlan_genl.c @@ -111,7 +111,7 @@ GENL_SET_ERR_MSG(DATARMNET54338da2ff, "\x4d\x75\x73\x74\x20\x73\x70\x65\x63\x69\x66\x79\x20\x46\x57\x44\x20\x64\x65\x76\x69\x63\x65\x20\x61\x6e\x64\x20\x61\x64\x64\x72\x65\x73\x73" );return-EINVAL;}DATARMNETef7cdd7b6b=DATARMNET54338da2ff->attrs[ DATARMNETea4b56dc2b];DATARMNETd7f4d7c495=nla_data(DATARMNETef7cdd7b6b);if(strchr -(DATARMNETd7f4d7c495,((char)(0xd77+4465-0x1eae)))){if(in6_pton( +(DATARMNETd7f4d7c495,((char)(0x6a6+6758-0x20d2)))){if(in6_pton( DATARMNETd7f4d7c495,nla_len(DATARMNETef7cdd7b6b),DATARMNET2d4b4cfc9e. DATARMNET5700daac01.s6_addr,-(0xd26+209-0xdf6),NULL)!=(0xd26+209-0xdf6)){ GENL_SET_ERR_MSG(DATARMNET54338da2ff, @@ -138,7 +138,7 @@ GENL_SET_ERR_MSG(DATARMNET54338da2ff, "\x4d\x75\x73\x74\x20\x73\x70\x65\x63\x69\x66\x79\x20\x46\x57\x44\x20\x64\x65\x76\x69\x63\x65\x20\x61\x6e\x64\x20\x61\x64\x64\x72\x65\x73\x73" );return-EINVAL;}DATARMNETef7cdd7b6b=DATARMNET54338da2ff->attrs[ DATARMNETea4b56dc2b];DATARMNETd7f4d7c495=nla_data(DATARMNETef7cdd7b6b);if(strchr -(DATARMNETd7f4d7c495,((char)(0x842+5184-0x1c48)))){if(in6_pton( +(DATARMNETd7f4d7c495,((char)(0x13a0+4779-0x2611)))){if(in6_pton( DATARMNETd7f4d7c495,nla_len(DATARMNETef7cdd7b6b),DATARMNET2d4b4cfc9e. DATARMNET5700daac01.s6_addr,-(0xd26+209-0xdf6),NULL)!=(0xd26+209-0xdf6)){ GENL_SET_ERR_MSG(DATARMNET54338da2ff, diff --git a/wlan/rmnet_wlan_main.c b/wlan/rmnet_wlan_main.c index eee35fb647..aa94f3d77b 100644 --- a/wlan/rmnet_wlan_main.c +++ b/wlan/rmnet_wlan_main.c @@ -31,10 +31,13 @@ struct DATARMNET745f724205{struct hlist_node DATARMNETe8608dd267;struct rcu_head DATARMNET41b426061d{struct hlist_node DATARMNETe8608dd267;struct rcu_head DATARMNET28bfe9e6ad;struct notifier_block DATARMNET272c159b3c;char DATARMNET852d4d00e2[IFNAMSIZ];struct DATARMNET8d3c2559ca DATARMNET7ed5754a5c;}; -static DEFINE_MUTEX(DATARMNET63a2b7773e);static DEFINE_HASHTABLE( -DATARMNET1903907456,DATARMNET6b4ac8224c);static DEFINE_MUTEX(DATARMNETf46fb02ac6 -);static DEFINE_HASHTABLE(DATARMNET78ed39f13b,DATARMNET6b4ac8224c);static char -DATARMNET30500ba48c[IFNAMSIZ];static __be16 DATARMNETfbd1701415;static bool +struct DATARMNETda06413d0d{struct hlist_node DATARMNETe8608dd267;struct rcu_head + DATARMNET28bfe9e6ad;__be16 DATARMNETf0d9de7e2f;};static DEFINE_MUTEX( +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 char DATARMNET30500ba48c[IFNAMSIZ];static bool DATARMNET1e31b22eff(struct DATARMNETb89ecedefc*DATARMNETae0905b0b3,struct DATARMNETb89ecedefc*DATARMNETdb49f21565){if(DATARMNETae0905b0b3-> DATARMNET0d956cc77a!=DATARMNETdb49f21565->DATARMNET0d956cc77a|| @@ -149,17 +152,50 @@ DATARMNETe5b03fe375(void){struct DATARMNET41b426061d*DATARMNET54338da2ff;struct hlist_node*DATARMNET0386f6f82a;int DATARMNET5c2fd31d7b;mutex_lock(& DATARMNETf46fb02ac6);hash_for_each_safe(DATARMNET78ed39f13b,DATARMNET5c2fd31d7b, DATARMNET0386f6f82a,DATARMNET54338da2ff,DATARMNETe8608dd267)DATARMNET6518a28641( -DATARMNET54338da2ff);mutex_unlock(&DATARMNETf46fb02ac6);}static -rx_handler_result_t DATARMNET37a92021f9(struct sk_buff**DATARMNET89946cec52){ -struct DATARMNET0ca9d8ead7 DATARMNETa76763310b={};struct DATARMNETb89ecedefc -DATARMNET3396919a68={};struct DATARMNET41b426061d*DATARMNET72f0eefdce;struct -DATARMNET8d3c2559ca*DATARMNET2d4b4cfc9e,DATARMNET54338da2ff;struct sk_buff* -DATARMNET543491eb0f=*DATARMNET89946cec52;rx_handler_result_t DATARMNET1dec89a127 -=RX_HANDLER_PASS;int DATARMNET611d08d671;if(!DATARMNET543491eb0f|| -DATARMNET543491eb0f->pkt_type==PACKET_LOOPBACK)return DATARMNET1dec89a127; -rcu_read_lock();DATARMNET5ca94dbc3c(DATARMNET735bb8578c);if(DATARMNET543491eb0f -->protocol==htons(ETH_P_IP)){struct iphdr*DATARMNET86f1f2cdc9=ip_hdr( -DATARMNET543491eb0f);if(DATARMNET86f1f2cdc9->protocol==IPPROTO_ICMP){ +DATARMNET54338da2ff);mutex_unlock(&DATARMNETf46fb02ac6);}static bool +DATARMNET7490934ea9(__be16 DATARMNETf0d9de7e2f)__must_hold(RCU){struct +DATARMNETda06413d0d*DATARMNET63b1a086d5;hash_for_each_possible_rcu( +DATARMNET133502ca0e,DATARMNET63b1a086d5,DATARMNETe8608dd267,DATARMNETf0d9de7e2f) +{if(DATARMNET63b1a086d5->DATARMNETf0d9de7e2f==DATARMNETf0d9de7e2f)return true;} +return false;}static int DATARMNET3b10d1c14b(__be16 DATARMNETf0d9de7e2f,struct +genl_info*DATARMNET54338da2ff)__must_hold(&DATARMNET954bef55d0){struct +DATARMNETda06413d0d*DATARMNET63b1a086d5;rcu_read_lock();if(DATARMNET7490934ea9( +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( +DATARMNET133502ca0e,&DATARMNET63b1a086d5->DATARMNETe8608dd267, +DATARMNETf0d9de7e2f);DATARMNET5ca94dbc3c(DATARMNET90782e08cf);return +(0xd2d+202-0xdf7);}static int DATARMNETc023021120(__be16 DATARMNETf0d9de7e2f, +struct genl_info*DATARMNET54338da2ff)__must_hold(&DATARMNET954bef55d0){struct +DATARMNETda06413d0d*DATARMNET63b1a086d5;struct hlist_node*DATARMNET0386f6f82a; +hash_for_each_possible_safe(DATARMNET133502ca0e,DATARMNET63b1a086d5, +DATARMNET0386f6f82a,DATARMNETe8608dd267,DATARMNETf0d9de7e2f){if( +DATARMNET63b1a086d5->DATARMNETf0d9de7e2f==DATARMNETf0d9de7e2f){hash_del_rcu(& +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( +DATARMNET133502ca0e,DATARMNET5c2fd31d7b,DATARMNET0386f6f82a,DATARMNET63b1a086d5, +DATARMNETe8608dd267){hash_del_rcu(&DATARMNET63b1a086d5->DATARMNETe8608dd267); +kfree_rcu(DATARMNET63b1a086d5,DATARMNET28bfe9e6ad);}mutex_unlock(& +DATARMNET954bef55d0);}static rx_handler_result_t DATARMNET37a92021f9(struct +sk_buff**DATARMNET89946cec52){struct DATARMNET0ca9d8ead7 DATARMNETa76763310b={}; +struct DATARMNETb89ecedefc DATARMNET3396919a68={};struct DATARMNET41b426061d* +DATARMNET72f0eefdce;struct DATARMNET8d3c2559ca*DATARMNET2d4b4cfc9e, +DATARMNET54338da2ff;struct sk_buff*DATARMNET543491eb0f=*DATARMNET89946cec52; +rx_handler_result_t DATARMNET1dec89a127=RX_HANDLER_PASS;int DATARMNET611d08d671; +if(!DATARMNET543491eb0f||DATARMNET543491eb0f->pkt_type==PACKET_LOOPBACK)return +DATARMNET1dec89a127;rcu_read_lock();DATARMNET5ca94dbc3c(DATARMNET735bb8578c);if( +DATARMNET543491eb0f->protocol==htons(ETH_P_IP)){struct iphdr*DATARMNET86f1f2cdc9 +=ip_hdr(DATARMNET543491eb0f);if(DATARMNET86f1f2cdc9->protocol==IPPROTO_ICMP){ DATARMNETa76763310b.DATARMNETdfe430c2d6=DATARMNET86f1f2cdc9->daddr; DATARMNETa76763310b.DATARMNET2cb607d686=DATARMNET86f1f2cdc9->saddr; DATARMNETa76763310b.DATARMNET0d956cc77a=(0xd11+230-0xdf3);DATARMNET2d4b4cfc9e= @@ -224,8 +260,8 @@ DATARMNET116f9a46aa(void){int DATARMNET268a8314cf;if(!DATARMNET30500ba48c[ unregister_netdevice_notifier(&DATARMNETa1726000d8);if(!DATARMNET268a8314cf) DATARMNET30500ba48c[(0xd2d+202-0xdf7)]=(0xd2d+202-0xdf7);return DATARMNET268a8314cf;}static void DATARMNETbb4efa5b3d(void){DATARMNET116f9a46aa() -;DATARMNETfbd1701415=(0xd2d+202-0xdf7);DATARMNET8c0e010dfb();DATARMNETe5b03fe375 -();DATARMNETad43e44c7e();}static int DATARMNET38ebe8f319(struct sk_buff* +;DATARMNET1f36d4813c();DATARMNET8c0e010dfb();DATARMNETe5b03fe375(); +DATARMNETad43e44c7e();}static int DATARMNET38ebe8f319(struct sk_buff* DATARMNET543491eb0f,int DATARMNET1faf88208b){if(!pskb_may_pull( DATARMNET543491eb0f,DATARMNET1faf88208b))return-ENOMEM;if(!skb_cloned( DATARMNET543491eb0f)||skb_clone_writable(DATARMNET543491eb0f,DATARMNET1faf88208b @@ -373,26 +409,25 @@ DATARMNET2d4b4cfc9e,struct genl_info*DATARMNET54338da2ff){int DATARMNET268a8314cf;mutex_lock(&DATARMNETf46fb02ac6);DATARMNET268a8314cf= DATARMNET6b6be8e27f(DATARMNET2d4b4cfc9e,DATARMNET54338da2ff);mutex_unlock(& DATARMNETf46fb02ac6);return DATARMNET268a8314cf;}int DATARMNET8d5a5a7047(__be16 -DATARMNETf0d9de7e2f,struct genl_info*DATARMNET54338da2ff){WRITE_ONCE( -DATARMNETfbd1701415,DATARMNETf0d9de7e2f);return(0xd2d+202-0xdf7);}int -DATARMNETc97c6a4265(__be16 DATARMNETf0d9de7e2f,struct genl_info* -DATARMNET54338da2ff){__be16 DATARMNET07fc49caf2=READ_ONCE(DATARMNETfbd1701415); -if(DATARMNET07fc49caf2!=DATARMNETf0d9de7e2f){GENL_SET_ERR_MSG( -DATARMNET54338da2ff, -"\x49\x6e\x76\x61\x6c\x69\x64\x20\x70\x6f\x72\x74\x20\x69\x6e\x66\x6f\x72\x6d\x61\x74\x69\x6f\x6e" -);return-EINVAL;}WRITE_ONCE(DATARMNETfbd1701415,(0xd2d+202-0xdf7));return -(0xd2d+202-0xdf7);}bool DATARMNETa8b2566e6a(struct sk_buff*DATARMNET543491eb0f, -struct DATARMNETb89ecedefc*DATARMNET3396919a68,int DATARMNET611d08d671){struct -udphdr*DATARMNET75be5f3406,DATARMNETc82d2f4e16;__be32*DATARMNETdf2dbc641f, -DATARMNET6c56902362;if(DATARMNET3396919a68->DATARMNET4924e79411!=IPPROTO_UDP|| -DATARMNET3396919a68->DATARMNETf0d9de7e2f!=READ_ONCE(DATARMNETfbd1701415))return -false;DATARMNET75be5f3406=skb_header_pointer(DATARMNET543491eb0f, -DATARMNET611d08d671,sizeof(*DATARMNET75be5f3406),&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 DATARMNET078f6bd384(void){ -DATARMNETbb4efa5b3d();return(0xd2d+202-0xdf7);}void DATARMNETfae36afa03(void){ -DATARMNETbb4efa5b3d();}char*DATARMNET934406764d(void){return DATARMNET30500ba48c -;} +DATARMNETf0d9de7e2f,struct genl_info*DATARMNET54338da2ff){int +DATARMNET268a8314cf;mutex_lock(&DATARMNET954bef55d0);DATARMNET268a8314cf= +DATARMNET3b10d1c14b(DATARMNETf0d9de7e2f,DATARMNET54338da2ff);mutex_unlock(& +DATARMNET954bef55d0);return DATARMNET268a8314cf;}int DATARMNETc97c6a4265(__be16 +DATARMNETf0d9de7e2f,struct genl_info*DATARMNET54338da2ff){int +DATARMNET268a8314cf;mutex_lock(&DATARMNET954bef55d0);DATARMNET268a8314cf= +DATARMNETc023021120(DATARMNETf0d9de7e2f,DATARMNET54338da2ff);mutex_unlock(& +DATARMNET954bef55d0);return DATARMNET268a8314cf;}bool DATARMNETa8b2566e6a(struct + sk_buff*DATARMNET543491eb0f,struct DATARMNETb89ecedefc*DATARMNET3396919a68,int +DATARMNET611d08d671){struct udphdr*DATARMNET75be5f3406,DATARMNETc82d2f4e16; +__be32*DATARMNETdf2dbc641f,DATARMNET6c56902362;if(DATARMNET3396919a68-> +DATARMNET4924e79411!=IPPROTO_UDP||!DATARMNET7490934ea9(DATARMNET3396919a68-> +DATARMNETf0d9de7e2f))return false;DATARMNET75be5f3406=skb_header_pointer( +DATARMNET543491eb0f,DATARMNET611d08d671,sizeof(*DATARMNET75be5f3406),& +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 +DATARMNET078f6bd384(void){DATARMNETbb4efa5b3d();return(0xd2d+202-0xdf7);}void +DATARMNETfae36afa03(void){DATARMNETbb4efa5b3d();}char*DATARMNET934406764d(void){ +return DATARMNET30500ba48c;} diff --git a/wlan/rmnet_wlan_stats.h b/wlan/rmnet_wlan_stats.h index 7682832ed8..d0e3f56b20 100644 --- a/wlan/rmnet_wlan_stats.h +++ b/wlan/rmnet_wlan_stats.h @@ -11,12 +11,12 @@ enum{DATARMNET12d881921a,DATARMNET9f24b86462,DATARMNET735bb8578c, DATARMNETf4c2a83526,DATARMNET591885a019,DATARMNETd8273aa7e1,DATARMNET7a58a5c1fc, DATARMNETba232077da,DATARMNETe75ad1a949,DATARMNETd691057b85,DATARMNETd1ad664d00, -DATARMNETef2af4f071,DATARMNETebc1b87b7d,DATARMNET21bdbe6a27,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); +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); #endif