Эх сурвалжийг харах

Merge f47773ba77f3502508821bdd784eb944d2ceb896 on remote branch

Change-Id: If83d1cca54f86992746b1fa940119b6f37e1ecc6
Linux Build Service Account 2 жил өмнө
parent
commit
d1a040a17b

+ 7 - 4
aps/rmnet_aps.h

@@ -1,4 +1,4 @@
-/* Copyright (c) 2021-2022 Qualcomm Innovation Center, Inc. All rights reserved.
+/* Copyright (c) 2021-2023 Qualcomm Innovation Center, Inc. All rights reserved.
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License version 2 and
@@ -33,10 +33,13 @@ DATARMNETecca9147fd[(0xef7+1114-0x130d)];};struct DATARMNET15bcb4844b{u32 cmd;
 u32 DATARMNETe65883bfce;u32 DATARMNETbb588401ec;};struct DATARMNET797a5b1493{u32
  ifindex;u64 DATARMNET9c9a589dce;u32 DATARMNETc277c62678;u32 DATARMNETecca9147fd
 [(0xd35+210-0xdff)];};struct DATARMNET9a727f81bc{u32 ifindex;u32 
-DATARMNETecca9147fd[(0xcfc+267-0xe00)];};int DATARMNET37a9efbbcb(struct sk_buff*
+DATARMNETecca9147fd[(0xcfc+267-0xe00)];};struct DATARMNET7fb3ee4333{u8 mux_id;u8
+ DATARMNET6f031e7934;u8 DATARMNET08e1628d23;u8 len;u32 DATARMNETa960d37cad[
+(0xd35+210-0xdff)];};int DATARMNET37a9efbbcb(struct sk_buff*DATARMNETaafc1d9519,
+struct genl_info*DATARMNET54338da2ff);int DATARMNET1998d09852(struct sk_buff*
 DATARMNETaafc1d9519,struct genl_info*DATARMNET54338da2ff);int 
-DATARMNET1998d09852(struct sk_buff*DATARMNETaafc1d9519,struct genl_info*
-DATARMNET54338da2ff);int DATARMNETae6b282c61(struct sk_buff*DATARMNETaafc1d9519,
+DATARMNETae6b282c61(struct sk_buff*DATARMNETaafc1d9519,struct genl_info*
+DATARMNET54338da2ff);int DATARMNET568dffe281(struct sk_buff*DATARMNETaafc1d9519,
 struct genl_info*DATARMNET54338da2ff);
 #endif 
 

+ 10 - 8
aps/rmnet_aps_genl.c

@@ -1,4 +1,4 @@
-/* Copyright (c) 2021-2022 Qualcomm Innovation Center, Inc. All rights reserved.
+/* Copyright (c) 2021-2023 Qualcomm Innovation Center, Inc. All rights reserved.
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License version 2 and
@@ -19,7 +19,8 @@ DATARMNETca79857d4a)),[DATARMNET572e4a28eb]=NLA_POLICY_EXACT_LEN(sizeof(struct
 DATARMNET797a5b1493)),[DATARMNETe54d857ffe]=NLA_POLICY_EXACT_LEN(sizeof(struct 
 DATARMNET9a727f81bc)),[DATARMNET7edfedec7f]=NLA_POLICY_EXACT_LEN(sizeof(struct 
 DATARMNETd51e57e3f4)),[DATARMNETd2b1517d6b]=NLA_POLICY_EXACT_LEN(sizeof(struct 
-DATARMNET15bcb4844b)),};
+DATARMNET15bcb4844b)),[DATARMNET24b8b9ef93]=NLA_POLICY_EXACT_LEN(sizeof(struct 
+DATARMNET7fb3ee4333)),};
 #define DATARMNET7dc6237681(DATARMNET5aeb0ef9bc, DATARMNETbd9859b58e)\
                                          \
 	{                                                                      \
@@ -29,9 +30,10 @@ flags = (0xd2d+202-0xdf7),        \
 static const struct genl_ops DATARMNET27a52625e4[]={DATARMNET7dc6237681(
 DATARMNET15437be67e,DATARMNET37a9efbbcb),DATARMNET7dc6237681(DATARMNET4f09ad7688
 ,DATARMNET1998d09852),DATARMNET7dc6237681(DATARMNET97eefd45e3,
-DATARMNETae6b282c61),};struct genl_family DATARMNETcdba30eca9={.hdrsize=
-(0xd2d+202-0xdf7),.name=DATARMNETa4a6e34e45,.version=DATARMNET33d1a3e23a,.
-maxattr=DATARMNET3b044438b9,.policy=DATARMNET157d4c7a8a,.ops=DATARMNET27a52625e4
-,.n_ops=ARRAY_SIZE(DATARMNET27a52625e4),};int DATARMNETcfa8d492f8(void){return 
-genl_register_family(&DATARMNETcdba30eca9);}void DATARMNETca7606cfd1(void){
-genl_unregister_family(&DATARMNETcdba30eca9);}
+DATARMNETae6b282c61),DATARMNET7dc6237681(DATARMNET30180ab70e,DATARMNET568dffe281
+),};struct genl_family DATARMNETcdba30eca9={.hdrsize=(0xd2d+202-0xdf7),.name=
+DATARMNETa4a6e34e45,.version=DATARMNET33d1a3e23a,.maxattr=DATARMNET3b044438b9,.
+policy=DATARMNET157d4c7a8a,.ops=DATARMNET27a52625e4,.n_ops=ARRAY_SIZE(
+DATARMNET27a52625e4),};int DATARMNETcfa8d492f8(void){return genl_register_family
+(&DATARMNETcdba30eca9);}void DATARMNETca7606cfd1(void){genl_unregister_family(&
+DATARMNETcdba30eca9);}

+ 5 - 4
aps/rmnet_aps_genl.h

@@ -1,4 +1,4 @@
-/* Copyright (c) 2021-2022 Qualcomm Innovation Center, Inc. All rights reserved.
+/* Copyright (c) 2021-2023 Qualcomm Innovation Center, Inc. All rights reserved.
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License version 2 and
@@ -16,9 +16,10 @@
 #define DATARMNET33d1a3e23a (0xd26+209-0xdf6)
 #define DATARMNETa4a6e34e45 "\x52\x4d\x4e\x45\x54\x5f\x41\x50\x53"
 enum{DATARMNETeafde44f15,DATARMNET15437be67e,DATARMNET4f09ad7688,
-DATARMNET97eefd45e3,DATARMNET4ac82df478,};enum{DATARMNET900754429d,
-DATARMNET98b93f2e86,DATARMNET818a0b6438,DATARMNET572e4a28eb,DATARMNETe54d857ffe,
-DATARMNET7edfedec7f,DATARMNETd2b1517d6b,DATARMNET074e71007e,};
+DATARMNET97eefd45e3,DATARMNET30180ab70e,DATARMNET4ac82df478,};enum{
+DATARMNET900754429d,DATARMNET98b93f2e86,DATARMNET818a0b6438,DATARMNET572e4a28eb,
+DATARMNETe54d857ffe,DATARMNET7edfedec7f,DATARMNETd2b1517d6b,DATARMNET24b8b9ef93,
+DATARMNET074e71007e,};
 #define DATARMNET3b044438b9 (DATARMNET074e71007e - (0xd26+209-0xdf6))
 int DATARMNETcfa8d492f8(void);void DATARMNETca7606cfd1(void);
 #endif 

+ 165 - 47
aps/rmnet_aps_main.c

@@ -20,13 +20,15 @@
 #include "rmnet_config.h"
 #include "rmnet_module.h"
 #include "rmnet_descriptor.h"
+#include "rmnet_qmap.h"
 #include "rmnet_aps.h"
 #include "rmnet_aps_genl.h"
-static char*verinfo[]={"\x36\x35\x35\x33\x39\x62\x38\x34",
-"\x65\x32\x31\x38\x66\x34\x35\x31","\x33\x32\x61\x36\x65\x62\x61\x39",
-"\x36\x39\x30\x35\x35\x36\x38\x65","\x37\x34\x31\x35\x39\x32\x31\x63",
-"\x39\x66\x36\x36\x38\x31\x62\x34"};module_param_array(verinfo,charp,NULL,
-(0xcb7+5769-0x221c));MODULE_PARM_DESC(verinfo,
+static char*verinfo[]={"\x38\x64\x65\x64\x63\x37\x31\x38",
+"\x36\x35\x35\x33\x39\x62\x38\x34","\x65\x32\x31\x38\x66\x34\x35\x31",
+"\x33\x32\x61\x36\x65\x62\x61\x39","\x36\x39\x30\x35\x35\x36\x38\x65",
+"\x37\x34\x31\x35\x39\x32\x31\x63","\x39\x66\x36\x36\x38\x31\x62\x34"};
+module_param_array(verinfo,charp,NULL,(0xcb7+5769-0x221c));MODULE_PARM_DESC(
+verinfo,
 "\x56\x65\x72\x73\x69\x6f\x6e\x20\x6f\x66\x20\x74\x68\x65\x20\x64\x72\x69\x76\x65\x72"
 );
 #define DATARMNET63ff5c35c2 (0xd26+209-0xdf6)
@@ -47,7 +49,7 @@ static char*verinfo[]={"\x36\x35\x35\x33\x39\x62\x38\x34",
 (0xdf7+2629-0x143c) / (0xd35+210-0xdff) * DATARMNET7b5bbaa047)
 #define DATARMNETb8ab933cae ((0xc07+4861-0x1e3c) * (0xdf7+2629-0x143c) * \
 (0xdf7+2629-0x143c) / (0xd35+210-0xdff) * DATARMNET7b5bbaa047)
-static const char*DATARMNETe5ef0e617c="\x31\x2e\x33";static u16 
+static const char*DATARMNETe5ef0e617c="\x31\x2e\x34";static u16 
 DATARMNET2fe4661b82;static struct genl_info DATARMNET7d98961cbe;static bool 
 DATARMNET54b95e4416;static u32 DATARMNETfef55eaf9a;static u8 DATARMNET9628311a6b
 [DATARMNET3bc5e7094a]={(0xd2d+202-0xdf7),(0xd03+244-0xdf1),(0xcfc+267-0xe00),
@@ -355,7 +357,7 @@ DATARMNET112d724eff(
 ,DATARMNETaa568481cf->DATARMNET54338da2ff.DATARMNETbb588401ec);}return
 (0xd2d+202-0xdf7);}static int DATARMNETbd1d5c8f28(struct genl_info*
 DATARMNET54338da2ff,u8 cmd,int DATARMNETbc8c3c13e8,int DATARMNET5d9df1c423,void*
-DATARMNET8dad72c67a,gfp_t flags){struct sk_buff*DATARMNET543491eb0f;void*
+DATARMNET8dad72c67a,gfp_t flags){struct sk_buff*DATARMNET543491eb0f=NULL;void*
 DATARMNETd7f97e2e5a;int DATARMNETb14e52a504;if(unlikely(!DATARMNET54338da2ff))
 return-EINVAL;DATARMNET543491eb0f=genlmsg_new(nla_total_size(DATARMNET5d9df1c423
 ),flags);if(!DATARMNET543491eb0f)goto DATARMNETbf4095f79e;DATARMNETd7f97e2e5a=
@@ -363,15 +365,16 @@ genlmsg_put(DATARMNET543491eb0f,(0xd2d+202-0xdf7),DATARMNET54338da2ff->snd_seq+
 (0xd26+209-0xdf6),&DATARMNETcdba30eca9,(0xd2d+202-0xdf7),cmd);if(!
 DATARMNETd7f97e2e5a)goto DATARMNETbf4095f79e;DATARMNETb14e52a504=nla_put(
 DATARMNET543491eb0f,DATARMNETbc8c3c13e8,DATARMNET5d9df1c423,DATARMNET8dad72c67a)
-;if(DATARMNETb14e52a504!=(0xd2d+202-0xdf7))goto DATARMNETbf4095f79e;genlmsg_end(
-DATARMNET543491eb0f,DATARMNETd7f97e2e5a);DATARMNETb14e52a504=genlmsg_unicast(
-genl_info_net(DATARMNET54338da2ff),DATARMNET543491eb0f,DATARMNET54338da2ff->
-snd_portid);if(DATARMNETb14e52a504!=(0xd2d+202-0xdf7))goto DATARMNETbf4095f79e;
-return(0xd2d+202-0xdf7);DATARMNETbf4095f79e:DATARMNET112d724eff(
+;if(DATARMNETb14e52a504)goto DATARMNETbf4095f79e;genlmsg_end(DATARMNET543491eb0f
+,DATARMNETd7f97e2e5a);DATARMNETb14e52a504=genlmsg_unicast(genl_info_net(
+DATARMNET54338da2ff),DATARMNET543491eb0f,DATARMNET54338da2ff->snd_portid);if(
+DATARMNETb14e52a504){DATARMNET543491eb0f=NULL;goto DATARMNETbf4095f79e;}return
+(0xd2d+202-0xdf7);DATARMNETbf4095f79e:DATARMNET112d724eff(
 "\x61\x70\x73\x3a\x20\x46\x41\x49\x4c\x45\x44\x20\x74\x6f\x20\x73\x65\x6e\x64\x20\x6d\x73\x67\x20\x25\x64" "\n"
-,cmd);return-EFAULT;}static void DATARMNET446f780f19(u32 DATARMNETbb588401ec,u8 
-DATARMNETf8bbe3b0fb){struct DATARMNETca79857d4a DATARMNETa13fcf9070;if(!
-DATARMNET7d98961cbe.snd_portid){DATARMNET112d724eff(
+,cmd);if(DATARMNET543491eb0f)kfree_skb(DATARMNET543491eb0f);return-EFAULT;}
+static void DATARMNET446f780f19(u32 DATARMNETbb588401ec,u8 DATARMNETf8bbe3b0fb){
+struct DATARMNETca79857d4a DATARMNETa13fcf9070;if(!DATARMNET7d98961cbe.
+snd_portid){DATARMNET112d724eff(
 "\x61\x70\x73\x3a\x20\x63\x6c\x69\x65\x6e\x74\x20\x6e\x6f\x74\x20\x63\x6f\x6e\x6e\x65\x63\x74\x65\x64" "\n"
 );return;}DATARMNETa13fcf9070.cmd=DATARMNETdc217f1b29;DATARMNETa13fcf9070.
 DATARMNETe65883bfce=DATARMNETf8bbe3b0fb;DATARMNETa13fcf9070.DATARMNETbb588401ec=
@@ -548,7 +551,10 @@ DATARMNET912d2a7edd;if(aps_cb->DATARMNET91119c34ed&&skb_hwtstamps(
 DATARMNET543491eb0f)->hwtstamp&&DATARMNETe7a1ab1dab){DATARMNET912d2a7edd=
 ktime_get_boottime();if(ktime_sub(DATARMNET912d2a7edd,skb_hwtstamps(
 DATARMNET543491eb0f)->hwtstamp)>DATARMNETe7a1ab1dab)return-ETIMEDOUT;}return
-(0xd2d+202-0xdf7);}static struct proc_dir_entry*DATARMNET147f9b9f22;static 
+(0xd2d+202-0xdf7);}static const struct rmnet_module_hook_register_info 
+DATARMNET509284caa6[]={{.hooknum=RMNET_MODULE_HOOK_APS_PRE_QUEUE,.func=
+DATARMNETe0c7b9d5a4,},{.hooknum=RMNET_MODULE_HOOK_APS_POST_QUEUE,.func=
+DATARMNET6ab4bbdaf4,},};static struct proc_dir_entry*DATARMNET147f9b9f22;static 
 struct proc_dir_entry*DATARMNETf9422af3b0;static DEFINE_SPINLOCK(
 DATARMNET86e81617f0);struct DATARMNET837f670f1d{ktime_t DATARMNET763f2e5fac;
 struct DATARMNETf21ed5deb4 DATARMNET5fe4c722a8;};
@@ -573,34 +579,35 @@ DATARMNET590c4d44f6->DATARMNET5fe4c722a8.DATARMNET06d2413ad2==IPPROTO_TCP||
 DATARMNET590c4d44f6->DATARMNET5fe4c722a8.DATARMNET06d2413ad2==IPPROTO_UDP){if(
 DATARMNET590c4d44f6->DATARMNET5fe4c722a8.DATARMNET9d758b8e5b==(0xd11+230-0xdf3))
 seq_printf(DATARMNET80f4138358,
-"\x5b\x25\x36\x6c\x6c\x64\x20\x25\x30\x32\x64\x3a\x25\x30\x32\x64\x3a\x25\x30\x32\x64\x5d\x20\x25\x32\x75\x20\x25\x70\x49\x34\x2f\x25\x75\x20"
-"\x25\x70\x49\x34\x2f\x25\x75" "\n",DATARMNET7d003c10d9,DATARMNET5c33dbe77d,
+"\x5b\x25\x36\x6c\x6c\x64\x20\x25\x30\x32\x64\x3a\x25\x30\x32\x64\x3a\x25\x30\x32\x64\x5d\x20\x25\x32\x75\x20"
+"\x25\x70\x49\x34\x2f\x25\x75\x20\x25\x70\x49\x34\x2f\x25\x75" "\n",
+DATARMNET7d003c10d9,DATARMNET5c33dbe77d,DATARMNETa845529338,DATARMNET35784a722f,
+DATARMNET590c4d44f6->DATARMNET5fe4c722a8.DATARMNET06d2413ad2,DATARMNET590c4d44f6
+->DATARMNET5fe4c722a8.saddr,DATARMNET590c4d44f6->DATARMNET5fe4c722a8.sport,
+DATARMNET590c4d44f6->DATARMNET5fe4c722a8.daddr,DATARMNET590c4d44f6->
+DATARMNET5fe4c722a8.dport);else seq_printf(DATARMNET80f4138358,
+"\x5b\x25\x36\x6c\x6c\x64\x20\x25\x30\x32\x64\x3a\x25\x30\x32\x64\x3a\x25\x30\x32\x64\x5d\x20\x25\x32\x75\x20"
+"\x25\x70\x49\x36\x2f\x25\x75\x20\x25\x70\x49\x36\x2f\x25\x75" "\n",
+DATARMNET7d003c10d9,DATARMNET5c33dbe77d,DATARMNETa845529338,DATARMNET35784a722f,
+DATARMNET590c4d44f6->DATARMNET5fe4c722a8.DATARMNET06d2413ad2,DATARMNET590c4d44f6
+->DATARMNET5fe4c722a8.saddr,DATARMNET590c4d44f6->DATARMNET5fe4c722a8.sport,
+DATARMNET590c4d44f6->DATARMNET5fe4c722a8.daddr,DATARMNET590c4d44f6->
+DATARMNET5fe4c722a8.dport);}else{if(DATARMNET590c4d44f6->DATARMNET5fe4c722a8.
+DATARMNET9d758b8e5b==(0xd11+230-0xdf3))seq_printf(DATARMNET80f4138358,
+"\x5b\x25\x36\x6c\x6c\x64\x20\x25\x30\x32\x64\x3a\x25\x30\x32\x64\x3a\x25\x30\x32\x64\x5d\x20\x25\x32\x75\x20\x25\x70\x49\x34\x20"
+"\x25\x70\x49\x34" "\n",DATARMNET7d003c10d9,DATARMNET5c33dbe77d,
 DATARMNETa845529338,DATARMNET35784a722f,DATARMNET590c4d44f6->DATARMNET5fe4c722a8
 .DATARMNET06d2413ad2,DATARMNET590c4d44f6->DATARMNET5fe4c722a8.saddr,
-DATARMNET590c4d44f6->DATARMNET5fe4c722a8.sport,DATARMNET590c4d44f6->
-DATARMNET5fe4c722a8.daddr,DATARMNET590c4d44f6->DATARMNET5fe4c722a8.dport);else 
-seq_printf(DATARMNET80f4138358,
-"\x5b\x25\x36\x6c\x6c\x64\x20\x25\x30\x32\x64\x3a\x25\x30\x32\x64\x3a\x25\x30\x32\x64\x5d\x20\x25\x32\x75\x20\x25\x70\x49\x36\x2f\x25\x75\x20"
-"\x25\x70\x49\x36\x2f\x25\x75" "\n",DATARMNET7d003c10d9,DATARMNET5c33dbe77d,
+DATARMNET590c4d44f6->DATARMNET5fe4c722a8.daddr);else seq_printf(
+DATARMNET80f4138358,
+"\x5b\x25\x36\x6c\x6c\x64\x20\x25\x30\x32\x64\x3a\x25\x30\x32\x64\x3a\x25\x30\x32\x64\x5d\x20\x25\x32\x75\x20\x25\x70\x49\x36\x20"
+"\x25\x70\x49\x36" "\n",DATARMNET7d003c10d9,DATARMNET5c33dbe77d,
 DATARMNETa845529338,DATARMNET35784a722f,DATARMNET590c4d44f6->DATARMNET5fe4c722a8
 .DATARMNET06d2413ad2,DATARMNET590c4d44f6->DATARMNET5fe4c722a8.saddr,
-DATARMNET590c4d44f6->DATARMNET5fe4c722a8.sport,DATARMNET590c4d44f6->
-DATARMNET5fe4c722a8.daddr,DATARMNET590c4d44f6->DATARMNET5fe4c722a8.dport);}else{
-if(DATARMNET590c4d44f6->DATARMNET5fe4c722a8.DATARMNET9d758b8e5b==
-(0xd11+230-0xdf3))seq_printf(DATARMNET80f4138358,
-"\x5b\x25\x36\x6c\x6c\x64\x20\x25\x30\x32\x64\x3a\x25\x30\x32\x64\x3a\x25\x30\x32\x64\x5d\x20\x25\x32\x75\x20\x25\x70\x49\x34\x20\x25\x70\x49\x34" "\n"
-,DATARMNET7d003c10d9,DATARMNET5c33dbe77d,DATARMNETa845529338,DATARMNET35784a722f
-,DATARMNET590c4d44f6->DATARMNET5fe4c722a8.DATARMNET06d2413ad2,
-DATARMNET590c4d44f6->DATARMNET5fe4c722a8.saddr,DATARMNET590c4d44f6->
-DATARMNET5fe4c722a8.daddr);else seq_printf(DATARMNET80f4138358,
-"\x5b\x25\x36\x6c\x6c\x64\x20\x25\x30\x32\x64\x3a\x25\x30\x32\x64\x3a\x25\x30\x32\x64\x5d\x20\x25\x32\x75\x20\x25\x70\x49\x36\x20\x25\x70\x49\x36" "\n"
-,DATARMNET7d003c10d9,DATARMNET5c33dbe77d,DATARMNETa845529338,DATARMNET35784a722f
-,DATARMNET590c4d44f6->DATARMNET5fe4c722a8.DATARMNET06d2413ad2,
-DATARMNET590c4d44f6->DATARMNET5fe4c722a8.saddr,DATARMNET590c4d44f6->
-DATARMNET5fe4c722a8.daddr);}if(++DATARMNETefc9df3df2>=DATARMNET137373fbd9)
-DATARMNETefc9df3df2=(0xd2d+202-0xdf7);}while(DATARMNETefc9df3df2!=
-DATARMNET04583f0705);spin_unlock_bh(&DATARMNET86e81617f0);return
-(0xd2d+202-0xdf7);}static void DATARMNET71e03e7287(void){spin_lock_bh(&
+DATARMNET590c4d44f6->DATARMNET5fe4c722a8.daddr);}if(++DATARMNETefc9df3df2>=
+DATARMNET137373fbd9)DATARMNETefc9df3df2=(0xd2d+202-0xdf7);}while(
+DATARMNETefc9df3df2!=DATARMNET04583f0705);spin_unlock_bh(&DATARMNET86e81617f0);
+return(0xd2d+202-0xdf7);}static void DATARMNET71e03e7287(void){spin_lock_bh(&
 DATARMNET86e81617f0);DATARMNETd4b2cd928c=ktime_get_coarse_boottime();
 spin_unlock_bh(&DATARMNET86e81617f0);}static void DATARMNETfb7a2ce025(struct 
 rmnet_frag_descriptor*DATARMNET9d1b321642,struct sk_buff*DATARMNET543491eb0f){
@@ -645,11 +652,119 @@ inactive_time,(0xdb7+6665-0x261c));MODULE_PARM_DESC(inactive_time,
 DATARMNET147f9b9f22,DATARMNETd7fae4b1c9,NULL);if(!DATARMNETf9422af3b0)pr_err(
 "\x61\x70\x73\x3a\x20\x66\x61\x69\x6c\x65\x64\x20\x74\x6f\x20\x63\x72\x65\x61\x74\x65\x20\x64\x6c\x5f\x61\x63\x74\x69\x76\x69\x74\x79\x20\x65\x6e\x74\x72\x79" "\n"
 );}static void DATARMNETb4a75cfdea(void){proc_remove(DATARMNETf9422af3b0);
-proc_remove(DATARMNET147f9b9f22);}static const struct 
-rmnet_module_hook_register_info DATARMNET509284caa6[]={{.hooknum=
-RMNET_MODULE_HOOK_APS_PRE_QUEUE,.func=DATARMNETe0c7b9d5a4,},{.hooknum=
-RMNET_MODULE_HOOK_APS_POST_QUEUE,.func=DATARMNET6ab4bbdaf4,},};static int __init
- DATARMNET0718a3fa4c(void){int DATARMNETb14e52a504;pr_info(
+proc_remove(DATARMNET147f9b9f22);}static bool DATARMNET5500f4ed98=true;static 
+u32 DATARMNETb666ba3e85;static DEFINE_SPINLOCK(DATARMNETc3c07e6644);static 
+LIST_HEAD(DATARMNET5e3c62e3a4);static void DATARMNET2cc15953ac(struct timer_list
+*DATARMNET6e4292679f);static DEFINE_TIMER(DATARMNET2d8efce4f0,
+DATARMNET2cc15953ac);struct DATARMNET321b555862{struct list_head 
+DATARMNET46c1c4375f;struct genl_info DATARMNET54338da2ff;__be32 tx_id;unsigned 
+long expires;};struct DATARMNET548caa01db{struct qmap_cmd_hdr 
+DATARMNET9eab1e957c;u8 DATARMNETde8ef6e56a;u8 DATARMNET6f031e7934;u8 
+DATARMNET08e1628d23;u8 len;__be32 DATARMNETa960d37cad[(0xd35+210-0xdff)];}
+__aligned((0xd26+209-0xdf6));static int DATARMNET3eadc89edf(u8 
+DATARMNET6f031e7934,u8 mux_id,u8 DATARMNETc2284e5688,__be32*DATARMNET40f827eabe)
+{struct sk_buff*DATARMNET543491eb0f;struct DATARMNET548caa01db*
+DATARMNET791beb2b4a;unsigned int len;len=sizeof(struct DATARMNET548caa01db);
+DATARMNET543491eb0f=alloc_skb(len,GFP_ATOMIC);if(!DATARMNET543491eb0f)return-
+ENOMEM;DATARMNET543491eb0f->protocol=htons(ETH_P_MAP);DATARMNET791beb2b4a=
+skb_put(DATARMNET543491eb0f,len);memset(DATARMNET791beb2b4a,(0xd2d+202-0xdf7),
+len);DATARMNET791beb2b4a->DATARMNET9eab1e957c.cd_bit=(0xd26+209-0xdf6);
+DATARMNET791beb2b4a->DATARMNET9eab1e957c.mux_id=DATARMNETc2284e5688?
+(0xbf7+4364-0x1c04):mux_id;DATARMNET791beb2b4a->DATARMNET9eab1e957c.pkt_len=
+htons(len-QMAP_HDR_LEN);DATARMNET791beb2b4a->DATARMNET9eab1e957c.cmd_name=
+QMAP_DATA_REPORT;DATARMNET791beb2b4a->DATARMNET9eab1e957c.cmd_type=
+QMAP_CMD_REQUEST;DATARMNET791beb2b4a->DATARMNET9eab1e957c.tx_id=htonl(
+rmnet_qmap_next_txid());DATARMNET791beb2b4a->DATARMNETde8ef6e56a=
+(0xd26+209-0xdf6);DATARMNET791beb2b4a->DATARMNET6f031e7934=DATARMNET6f031e7934;
+DATARMNET791beb2b4a->DATARMNET08e1628d23=DATARMNETc2284e5688?(0xd26+209-0xdf6):
+(0xd2d+202-0xdf7);if(DATARMNET40f827eabe)*DATARMNET40f827eabe=
+DATARMNET791beb2b4a->DATARMNET9eab1e957c.tx_id;return rmnet_qmap_send(
+DATARMNET543491eb0f,RMNET_CH_CTL,false);}void DATARMNET5ff569bc33(struct sk_buff
+*DATARMNET543491eb0f){struct DATARMNET548caa01db*DATARMNET791beb2b4a;struct 
+DATARMNET321b555862*DATARMNET66942f9c00=NULL;struct DATARMNET321b555862*
+DATARMNETf7b3d2c1a0;struct DATARMNET7fb3ee4333 DATARMNETa13fcf9070;int 
+DATARMNETefc9df3df2;if(DATARMNET543491eb0f->len<sizeof(struct 
+DATARMNET548caa01db))return;DATARMNET791beb2b4a=(struct DATARMNET548caa01db*)
+DATARMNET543491eb0f->data;if(!DATARMNET791beb2b4a||DATARMNET791beb2b4a->
+DATARMNET9eab1e957c.cmd_name!=QMAP_DATA_REPORT||DATARMNET791beb2b4a->
+DATARMNET9eab1e957c.cmd_type!=QMAP_CMD_ACK)return;if(DATARMNET791beb2b4a->len>
+ARRAY_SIZE(DATARMNET791beb2b4a->DATARMNETa960d37cad))return;spin_lock_bh(&
+DATARMNETc3c07e6644);list_for_each_entry(DATARMNETf7b3d2c1a0,&
+DATARMNET5e3c62e3a4,DATARMNET46c1c4375f){if(DATARMNETf7b3d2c1a0->tx_id==
+DATARMNET791beb2b4a->DATARMNET9eab1e957c.tx_id){DATARMNET66942f9c00=
+DATARMNETf7b3d2c1a0;list_del(&DATARMNET66942f9c00->DATARMNET46c1c4375f);
+DATARMNETb666ba3e85--;break;}}spin_unlock_bh(&DATARMNETc3c07e6644);if(
+DATARMNET66942f9c00){DATARMNETa13fcf9070.mux_id=DATARMNET791beb2b4a->
+DATARMNET9eab1e957c.mux_id;DATARMNETa13fcf9070.DATARMNET6f031e7934=
+DATARMNET791beb2b4a->DATARMNET6f031e7934;DATARMNETa13fcf9070.DATARMNET08e1628d23
+=DATARMNET791beb2b4a->DATARMNET08e1628d23;DATARMNETa13fcf9070.len=
+DATARMNET791beb2b4a->len;for(DATARMNETefc9df3df2=(0xd2d+202-0xdf7);
+DATARMNETefc9df3df2<DATARMNETa13fcf9070.len;DATARMNETefc9df3df2++)
+DATARMNETa13fcf9070.DATARMNETa960d37cad[DATARMNETefc9df3df2]=ntohl(
+DATARMNET791beb2b4a->DATARMNETa960d37cad[DATARMNETefc9df3df2]);
+DATARMNETbd1d5c8f28(&DATARMNET66942f9c00->DATARMNET54338da2ff,
+DATARMNET30180ab70e,DATARMNET24b8b9ef93,sizeof(DATARMNETa13fcf9070),&
+DATARMNETa13fcf9070,GFP_ATOMIC);kfree(DATARMNET66942f9c00);}}int 
+DATARMNET568dffe281(struct sk_buff*DATARMNETaafc1d9519,struct genl_info*
+DATARMNET54338da2ff){struct nlattr*DATARMNET9c5e00ef03;struct 
+DATARMNET7fb3ee4333 DATARMNETddcafd8b91;__be32 DATARMNET40f827eabe;struct 
+DATARMNET321b555862*DATARMNET66942f9c00;unsigned long DATARMNETfb1521ef26=
+(0xd2d+202-0xdf7);int DATARMNETb14e52a504;if(!DATARMNET54338da2ff)return-EINVAL;
+DATARMNET9c5e00ef03=DATARMNET54338da2ff->attrs[DATARMNET24b8b9ef93];if(!
+DATARMNET9c5e00ef03){DATARMNET112d724eff(
+"\x61\x70\x73\x3a\x20\x4e\x6f\x20\x64\x61\x74\x61\x20\x72\x65\x70\x6f\x72\x74\x20\x61\x74\x74\x72" "\n"
+);return-EINVAL;}if(nla_memcpy(&DATARMNETddcafd8b91,DATARMNET9c5e00ef03,sizeof(
+DATARMNETddcafd8b91))<=(0xd2d+202-0xdf7)){DATARMNET112d724eff(
+"\x61\x70\x73\x3a\x20\x63\x6f\x70\x79\x20\x64\x61\x74\x61\x20\x72\x65\x70\x6f\x72\x74\x20\x61\x74\x74\x72\x20\x66\x61\x69\x6c\x65\x64" "\n"
+);return-EINVAL;}spin_lock_bh(&DATARMNETc3c07e6644);if(!DATARMNET5500f4ed98){
+DATARMNET112d724eff(
+"\x61\x70\x73\x3a\x20\x69\x67\x6e\x6f\x72\x65\x20\x74\x68\x65\x20\x64\x61\x74\x61\x20\x72\x65\x70\x6f\x72\x74\x20\x72\x65\x71\x75\x65\x73\x74" "\n"
+);goto DATARMNETbf2e68b8a3;}if(DATARMNETb666ba3e85>=(0xd0a+237-0xdf2)){
+DATARMNET112d724eff(
+"\x61\x70\x73\x3a\x20\x74\x6f\x6f\x20\x6d\x61\x6e\x79\x20\x6f\x75\x74\x73\x74\x61\x6e\x64\x69\x6e\x67\x20\x72\x65\x71\x75\x65\x73\x74\x73" "\n"
+);goto DATARMNETbf2e68b8a3;}if(DATARMNET3eadc89edf(DATARMNETddcafd8b91.
+DATARMNET6f031e7934,DATARMNETddcafd8b91.mux_id,DATARMNETddcafd8b91.
+DATARMNET08e1628d23,&DATARMNET40f827eabe)){DATARMNET112d724eff(
+"\x61\x70\x73\x3a\x20\x66\x61\x69\x6c\x65\x64\x20\x74\x6f\x20\x73\x65\x6e\x64\x20\x64\x61\x74\x61\x20\x72\x65\x70\x6f\x72\x74\x20\x63\x6f\x6d\x6d\x61\x6e\x64"
+);goto DATARMNETbf2e68b8a3;}DATARMNET66942f9c00=kzalloc(sizeof(*
+DATARMNET66942f9c00),GFP_ATOMIC);if(!DATARMNET66942f9c00){DATARMNET112d724eff(
+"\x61\x70\x73\x3a\x20\x6e\x6f\x20\x6d\x65\x6d\x6f\x72\x79\x20\x66\x6f\x72\x20\x64\x61\x74\x61\x20\x72\x65\x70\x6f\x72\x74" "\n"
+);goto DATARMNETbf2e68b8a3;}DATARMNET66942f9c00->DATARMNET54338da2ff=*
+DATARMNET54338da2ff;DATARMNET66942f9c00->tx_id=DATARMNET40f827eabe;
+DATARMNET66942f9c00->expires=jiffies+HZ;if(list_empty(&DATARMNET5e3c62e3a4))
+DATARMNETfb1521ef26=DATARMNET66942f9c00->expires;list_add(&DATARMNET66942f9c00->
+DATARMNET46c1c4375f,&DATARMNET5e3c62e3a4);DATARMNETb666ba3e85++;spin_unlock_bh(&
+DATARMNETc3c07e6644);if(DATARMNETfb1521ef26){DATARMNET112d724eff(
+"\x61\x70\x73\x3a\x20\x73\x74\x61\x72\x74\x69\x6e\x67\x20\x64\x61\x74\x61\x20\x72\x65\x70\x6f\x72\x74\x20\x74\x69\x6d\x65\x72" "\n"
+);mod_timer(&DATARMNET2d8efce4f0,DATARMNETfb1521ef26);}return(0xd2d+202-0xdf7);
+DATARMNETbf2e68b8a3:spin_unlock_bh(&DATARMNETc3c07e6644);DATARMNETddcafd8b91.len
+=(0xd2d+202-0xdf7);DATARMNETb14e52a504=DATARMNETbd1d5c8f28(DATARMNET54338da2ff,
+DATARMNET30180ab70e,DATARMNET24b8b9ef93,sizeof(DATARMNETddcafd8b91),&
+DATARMNETddcafd8b91,GFP_KERNEL);return DATARMNETb14e52a504;}static void 
+DATARMNET2cc15953ac(struct timer_list*DATARMNET6e4292679f){struct 
+DATARMNET321b555862*DATARMNET66942f9c00;struct DATARMNET321b555862*
+DATARMNETf7b3d2c1a0;unsigned long DATARMNET02dfdbc38d=jiffies;bool 
+DATARMNETb7430302d6=false;DATARMNET112d724eff(
+"\x61\x70\x73\x3a\x20\x64\x61\x74\x61\x20\x72\x65\x70\x6f\x72\x74\x20\x74\x69\x6d\x65\x72\x20\x66\x69\x72\x65\x64" "\n"
+);spin_lock_bh(&DATARMNETc3c07e6644);list_for_each_entry_safe(
+DATARMNET66942f9c00,DATARMNETf7b3d2c1a0,&DATARMNET5e3c62e3a4,DATARMNET46c1c4375f
+){if(time_before_eq(DATARMNET66942f9c00->expires,DATARMNET02dfdbc38d)){list_del(
+&DATARMNET66942f9c00->DATARMNET46c1c4375f);kfree(DATARMNET66942f9c00);
+DATARMNETb666ba3e85--;DATARMNET112d724eff(
+"\x61\x70\x73\x3a\x20\x72\x65\x6d\x6f\x76\x65\x64\x20\x6f\x6e\x65\x20\x64\x61\x74\x61\x20\x72\x65\x70\x6f\x72\x74\x20\x72\x65\x71\x75\x65\x73\x74" "\n"
+);}}if(!list_empty(&DATARMNET5e3c62e3a4))DATARMNETb7430302d6=true;spin_unlock_bh
+(&DATARMNETc3c07e6644);if(DATARMNETb7430302d6){DATARMNET112d724eff(
+"\x61\x70\x73\x3a\x20\x64\x61\x74\x61\x20\x72\x65\x70\x6f\x72\x74\x20\x74\x69\x6d\x65\x72\x20\x72\x65\x2d\x61\x72\x6d\x65\x64" "\n"
+);mod_timer(&DATARMNET2d8efce4f0,jiffies+HZ);}}static void DATARMNETb3f219d872(
+void){struct DATARMNET321b555862*DATARMNET66942f9c00;struct DATARMNET321b555862*
+DATARMNETf7b3d2c1a0;spin_lock_bh(&DATARMNETc3c07e6644);list_for_each_entry_safe(
+DATARMNET66942f9c00,DATARMNETf7b3d2c1a0,&DATARMNET5e3c62e3a4,DATARMNET46c1c4375f
+){list_del(&DATARMNET66942f9c00->DATARMNET46c1c4375f);kfree(DATARMNET66942f9c00)
+;}DATARMNET5500f4ed98=false;DATARMNETb666ba3e85=(0xd2d+202-0xdf7);spin_unlock_bh
+(&DATARMNETc3c07e6644);}static const struct rmnet_module_hook_register_info 
+DATARMNET644887c40e[]={{.hooknum=RMNET_MODULE_HOOK_APS_DATA_REPORT,.func=
+DATARMNET5ff569bc33,},};static int __init DATARMNET0718a3fa4c(void){int 
+DATARMNETb14e52a504;pr_info(
 "\x61\x70\x73\x3a\x20\x69\x6e\x69\x74\x20\x28\x25\x73\x29" "\n",
 DATARMNETe5ef0e617c);DATARMNETb14e52a504=DATARMNETcfa8d492f8();if(
 DATARMNETb14e52a504){pr_err(
@@ -657,18 +772,21 @@ DATARMNETb14e52a504){pr_err(
 );return DATARMNETb14e52a504;}register_netdevice_notifier(&DATARMNETc580548769);
 rcu_assign_pointer(rmnet_aps_pre_queue,DATARMNETe0c7b9d5a4);rcu_assign_pointer(
 rmnet_aps_post_queue,DATARMNET6ab4bbdaf4);rmnet_module_hook_register(
-DATARMNET509284caa6,ARRAY_SIZE(DATARMNET509284caa6));mutex_lock(&
+DATARMNET509284caa6,ARRAY_SIZE(DATARMNET509284caa6));rmnet_module_hook_register(
+DATARMNET644887c40e,ARRAY_SIZE(DATARMNET644887c40e));mutex_lock(&
 DATARMNETd7b5a80f84);DATARMNET54b95e4416=true;mutex_unlock(&DATARMNETd7b5a80f84)
 ;DATARMNET519162865c();return(0xd2d+202-0xdf7);}static void __exit 
 DATARMNETff67054ba9(void){DATARMNETb4a75cfdea();
 rmnet_module_hook_unregister_no_sync(DATARMNETbdf157f06a,ARRAY_SIZE(
-DATARMNETbdf157f06a));rcu_assign_pointer(rmnet_aps_pre_queue,NULL);
+DATARMNETbdf157f06a));rmnet_module_hook_unregister_no_sync(DATARMNET644887c40e,
+ARRAY_SIZE(DATARMNET644887c40e));rcu_assign_pointer(rmnet_aps_pre_queue,NULL);
 rcu_assign_pointer(rmnet_aps_post_queue,NULL);rmnet_module_hook_unregister(
 DATARMNET509284caa6,ARRAY_SIZE(DATARMNET509284caa6));mutex_lock(&
 DATARMNETd7b5a80f84);DATARMNET54b95e4416=false;DATARMNET9ac8a34003();
 mutex_unlock(&DATARMNETd7b5a80f84);DATARMNET446f780f19((0xd2d+202-0xdf7),
 DATARMNET94016043b8);cancel_delayed_work_sync(&DATARMNET3481998252);
 del_timer_sync(&DATARMNETd21629e047);cancel_work_sync(&DATARMNET8e3aef0760);
+DATARMNETb3f219d872();del_timer_sync(&DATARMNET2d8efce4f0);
 unregister_netdevice_notifier(&DATARMNETc580548769);DATARMNETca7606cfd1();
 DATARMNET112d724eff("\x61\x70\x73\x3a\x20\x65\x78\x69\x74" "\n");}MODULE_LICENSE
 ("\x47\x50\x4c\x20\x76\x32");module_init(DATARMNET0718a3fa4c);module_exit(

+ 1 - 0
perf/rmnet_perf_main.c

@@ -19,6 +19,7 @@
 #include "rmnet_perf_tcp.h"
 #include "rmnet_perf_udp.h"
 MODULE_LICENSE("\x47\x50\x4c\x20\x76\x32");static char*verinfo[]={
+"\x35\x64\x63\x64\x64\x34\x63\x30","\x34\x63\x39\x62\x35\x33\x33\x37",
 "\x61\x33\x62\x61\x62\x64\x34\x30","\x37\x66\x30\x37\x38\x66\x39\x36",
 "\x65\x35\x36\x63\x62\x35\x35\x64","\x65\x32\x31\x38\x66\x34\x35\x31",
 "\x33\x39\x63\x62\x64\x37\x64\x35","\x37\x34\x31\x35\x39\x32\x31\x63",

+ 50 - 79
perf/rmnet_perf_tcp.c

@@ -29,36 +29,34 @@
 #define DATARMNET347bd5eb15 \
 	(const_ilog2(DATARMNET714c9c3081))
 enum{DATARMNETe0e37fef7a,DATARMNETf354672897,DATARMNET9cc765a89e,
-DATARMNETb03f9571a3,DATARMNET7797205f58,DATARMNETaa18c75b61,};struct 
-DATARMNET4b40fe9cd4{union{__be32 DATARMNETdfe430c2d6;struct in6_addr 
+DATARMNETb03f9571a3,DATARMNET53c8cfb28e,DATARMNET74f0a28fec,DATARMNETaa18c75b61,
+};struct DATARMNET4b40fe9cd4{union{__be32 DATARMNETdfe430c2d6;struct in6_addr 
 DATARMNET815cbb4bf5;};union{__be32 DATARMNET2cb607d686;struct in6_addr 
 DATARMNETc3f31215b7;};union{struct{__be16 DATARMNET08e913477e;__be16 
 DATARMNETda7f7fa492;};u32 DATARMNET556bcfcf8f;};u8 DATARMNET0d956cc77a;};struct 
 DATARMNETddbc1e5435{struct hlist_node hash;struct rcu_head DATARMNET28bfe9e6ad;
-struct DATARMNET4b40fe9cd4 DATARMNET54338da2ff;struct sock*DATARMNETa3e9a18f1b;
-unsigned long DATARMNET763f2e5fac;u32 DATARMNETfef3675ce7;u32 
-DATARMNET9076d335ab;u32 DATARMNET9c389f3b86;u32 DATARMNET9a57846b4e;u32 
-DATARMNETb8fc35ed64;bool DATARMNET55056146f6;u8 DATARMNET1717afebc7;};struct 
-DATARMNET74cfea3d20{struct delayed_work DATARMNET190b4452e8;bool 
-DATARMNETcd94e0d3c7;};static DEFINE_SPINLOCK(DATARMNET8e3721c47d);static 
-DEFINE_HASHTABLE(DATARMNET1fd012f255,DATARMNET347bd5eb15);static u32 
-DATARMNET1c62a8e2c9;static struct DATARMNET74cfea3d20 DATARMNETac6535da80;static
- u32 DATARMNET84337b8855=(0xeb7+698-0x110d);module_param_named(
-rmnet_perf_tcp_knob0,DATARMNET84337b8855,uint,(0xdb7+6665-0x261c));static u64 
-DATARMNETeb09e391b5[DATARMNETaa18c75b61];module_param_array_named(
-rmnet_perf_tcp_stat,DATARMNETeb09e391b5,ullong,NULL,(0xcb7+5769-0x221c));static 
-void DATARMNET32b91c8ae6(u32 DATARMNET248f120dd5){if(DATARMNET248f120dd5<
-DATARMNETaa18c75b61)DATARMNETeb09e391b5[DATARMNET248f120dd5]+=(0xd26+209-0xdf6);
-}static bool DATARMNETd92eab34a9(struct DATARMNETddbc1e5435*DATARMNET63b1a086d5,
-unsigned long DATARMNET763f2e5fac){unsigned long DATARMNETc2d5c71ce1;
-DATARMNETc2d5c71ce1=msecs_to_jiffies(DATARMNET3dad3dfdc0);if(DATARMNET763f2e5fac
--DATARMNET63b1a086d5->DATARMNET763f2e5fac>DATARMNETc2d5c71ce1)return true;return
- false;}static void DATARMNET776e08992c(struct rcu_head*DATARMNET5d432e897f){
-struct DATARMNETddbc1e5435*DATARMNET63b1a086d5;DATARMNET63b1a086d5=container_of(
-DATARMNET5d432e897f,struct DATARMNETddbc1e5435,DATARMNET28bfe9e6ad);if(!
-IS_ERR_OR_NULL(DATARMNET63b1a086d5->DATARMNETa3e9a18f1b))sock_put(
-DATARMNET63b1a086d5->DATARMNETa3e9a18f1b);kfree(DATARMNET63b1a086d5);}static 
-bool DATARMNETb8167597bc(bool DATARMNETe78ad140cc){struct DATARMNETddbc1e5435*
+struct DATARMNET4b40fe9cd4 DATARMNET54338da2ff;unsigned long DATARMNET763f2e5fac
+;u32 DATARMNETfef3675ce7;u32 DATARMNET9076d335ab;u32 DATARMNET9c389f3b86;u32 
+DATARMNET9a57846b4e;u32 DATARMNETb8fc35ed64;bool DATARMNET55056146f6;u8 
+DATARMNET1717afebc7;};struct DATARMNET74cfea3d20{struct delayed_work 
+DATARMNET190b4452e8;bool DATARMNETcd94e0d3c7;};static DEFINE_SPINLOCK(
+DATARMNET8e3721c47d);static DEFINE_HASHTABLE(DATARMNET1fd012f255,
+DATARMNET347bd5eb15);static u32 DATARMNET1c62a8e2c9;static struct 
+DATARMNET74cfea3d20 DATARMNETac6535da80;static u32 DATARMNET84337b8855=
+(0xeb7+698-0x110d);module_param_named(rmnet_perf_tcp_knob0,DATARMNET84337b8855,
+uint,(0xdb7+6665-0x261c));static u64 DATARMNETeb09e391b5[DATARMNETaa18c75b61];
+module_param_array_named(rmnet_perf_tcp_stat,DATARMNETeb09e391b5,ullong,NULL,
+(0xcb7+5769-0x221c));static void DATARMNET32b91c8ae6(u32 DATARMNET248f120dd5){if
+(DATARMNET248f120dd5<DATARMNETaa18c75b61)DATARMNETeb09e391b5[DATARMNET248f120dd5
+]+=(0xd26+209-0xdf6);}static bool DATARMNETd92eab34a9(struct DATARMNETddbc1e5435
+*DATARMNET63b1a086d5,unsigned long DATARMNET763f2e5fac){unsigned long 
+DATARMNETc2d5c71ce1;DATARMNETc2d5c71ce1=msecs_to_jiffies(DATARMNET3dad3dfdc0);if
+(DATARMNET763f2e5fac-DATARMNET63b1a086d5->DATARMNET763f2e5fac>
+DATARMNETc2d5c71ce1)return true;return false;}static void DATARMNET776e08992c(
+struct rcu_head*DATARMNET5d432e897f){struct DATARMNETddbc1e5435*
+DATARMNET63b1a086d5;DATARMNET63b1a086d5=container_of(DATARMNET5d432e897f,struct 
+DATARMNETddbc1e5435,DATARMNET28bfe9e6ad);kfree(DATARMNET63b1a086d5);}static bool
+ DATARMNETb8167597bc(bool DATARMNETe78ad140cc){struct DATARMNETddbc1e5435*
 DATARMNET63b1a086d5;struct hlist_node*DATARMNET0386f6f82a;unsigned long 
 DATARMNET763f2e5fac;int DATARMNET5c2fd31d7b;DATARMNET763f2e5fac=jiffies;
 hash_for_each_safe(DATARMNET1fd012f255,DATARMNET5c2fd31d7b,DATARMNET0386f6f82a,
@@ -129,61 +127,34 @@ DATARMNET8e3721c47d,DATARMNETfb0677cc3c);return DATARMNET63b1a086d5;}}
 DATARMNET63b1a086d5=DATARMNETba919c78e5(DATARMNET3396919a68);
 spin_unlock_irqrestore(&DATARMNET8e3721c47d,DATARMNETfb0677cc3c);if(
 DATARMNET63b1a086d5)DATARMNET11a5f0fd38(DATARMNET63b1a086d5,DATARMNET543491eb0f,
-DATARMNETd147c14c0e);return DATARMNET63b1a086d5;}static struct sock*
-DATARMNETc0b5d624ae(struct DATARMNET4b40fe9cd4*DATARMNET3396919a68,struct 
-net_device*DATARMNETc96400be1e){struct net*net=dev_net(DATARMNETc96400be1e);if(
-DATARMNET3396919a68->DATARMNET0d956cc77a==(0xd11+230-0xdf3))return 
-inet_lookup_established(net,&tcp_hashinfo,DATARMNET3396919a68->
-DATARMNETdfe430c2d6,DATARMNET3396919a68->DATARMNET08e913477e,DATARMNET3396919a68
-->DATARMNET2cb607d686,DATARMNET3396919a68->DATARMNETda7f7fa492,
-DATARMNETc96400be1e->ifindex);return __inet6_lookup_established(net,&
-tcp_hashinfo,&DATARMNET3396919a68->DATARMNET815cbb4bf5,DATARMNET3396919a68->
-DATARMNET08e913477e,&DATARMNET3396919a68->DATARMNETc3f31215b7,ntohs(
-DATARMNET3396919a68->DATARMNETda7f7fa492),DATARMNETc96400be1e->ifindex,
-(0xd2d+202-0xdf7));}static void DATARMNET31a7673e56(struct DATARMNETddbc1e5435*
-DATARMNET63b1a086d5,struct sk_buff*DATARMNET543491eb0f)__must_hold(RCU){struct 
-sock*sk;if(DATARMNET543491eb0f->sk){sk=DATARMNET543491eb0f->sk;}else if(
-DATARMNET63b1a086d5->DATARMNETa3e9a18f1b){sk=DATARMNET63b1a086d5->
-DATARMNETa3e9a18f1b;}else if((sk=DATARMNETc0b5d624ae(&DATARMNET63b1a086d5->
-DATARMNET54338da2ff,DATARMNET543491eb0f->dev))){DATARMNET63b1a086d5->
-DATARMNETa3e9a18f1b=sk;}else{struct rmnet_skb_cb*DATARMNET1ec4882bf7=
-RMNET_SKB_CB(DATARMNET543491eb0f);DATARMNET32b91c8ae6(DATARMNETb03f9571a3);
-DATARMNET63b1a086d5->DATARMNET55056146f6=true;DATARMNET1ec4882bf7->tethered=true
-;return;}if(!DATARMNET543491eb0f->sk){sock_hold(sk);DATARMNET543491eb0f->sk=sk;
-DATARMNET543491eb0f->destructor=sock_edemux;if(sk_fullsock(sk)){struct dst_entry
-*dst=rcu_dereference(sk->sk_rx_dst);if(dst){u32 DATARMNETc8fe0ce669=(
-DATARMNET63b1a086d5->DATARMNET54338da2ff.DATARMNET0d956cc77a==(0xd11+230-0xdf3))
-?(0xd2d+202-0xdf7):sk->sk_rx_dst_cookie;dst=dst_check(dst,DATARMNETc8fe0ce669);}
-if(dst&&sk->sk_rx_dst_ifindex==DATARMNET543491eb0f->dev->ifindex)
-skb_dst_set_noref(DATARMNET543491eb0f,dst);}}inet_csk(sk)->icsk_ack.pending|=
-ICSK_ACK_NOW;DATARMNET63b1a086d5->DATARMNETb8fc35ed64++;DATARMNET32b91c8ae6(
-DATARMNET7797205f58);}static u32 DATARMNET62fb576113(struct sk_buff*
-DATARMNET543491eb0f){struct tcphdr*DATARMNET668416551c=tcp_hdr(
-DATARMNET543491eb0f);return DATARMNET543491eb0f->len-((u8*)DATARMNET668416551c-
-DATARMNET543491eb0f->data)-DATARMNET668416551c->doff*(0xd11+230-0xdf3);}static 
-void DATARMNET55fda9e01e(struct DATARMNETddbc1e5435*DATARMNET63b1a086d5,struct 
-sk_buff*DATARMNET543491eb0f,bool DATARMNETd147c14c0e)__must_hold(RCU){struct 
-rmnet_skb_cb*DATARMNET1ec4882bf7=RMNET_SKB_CB(DATARMNET543491eb0f);struct tcphdr
-*DATARMNET668416551c=tcp_hdr(DATARMNET543491eb0f);u32 DATARMNET26945497d8=ntohl(
-DATARMNET668416551c->seq);u32 DATARMNETb1b0ee1b2d=ntohl(DATARMNET668416551c->
-ack_seq);u32 DATARMNETb6ff6d25f8=READ_ONCE(DATARMNET63b1a086d5->
-DATARMNETfef3675ce7);u32 DATARMNET91c1d5c029=READ_ONCE(DATARMNET63b1a086d5->
-DATARMNET9076d335ab);u32 DATARMNET9445bc443c=READ_ONCE(DATARMNET63b1a086d5->
-DATARMNET9a57846b4e);DATARMNET63b1a086d5->DATARMNET763f2e5fac=jiffies;if(
-DATARMNET63b1a086d5->DATARMNET55056146f6){DATARMNET1ec4882bf7->tethered=true;
-return;}if(DATARMNETd147c14c0e){if(after(DATARMNETb1b0ee1b2d,DATARMNET91c1d5c029
-)){u32 DATARMNET4e557c82d6=DATARMNETb6ff6d25f8-DATARMNETb1b0ee1b2d;if(
+DATARMNETd147c14c0e);return DATARMNET63b1a086d5;}static void DATARMNET31a7673e56
+(struct DATARMNETddbc1e5435*DATARMNET63b1a086d5,struct sk_buff*
+DATARMNET543491eb0f)__must_hold(RCU){struct sock*sk;if(DATARMNET543491eb0f->sk){
+sk=DATARMNET543491eb0f->sk;if(sk_fullsock(sk)){if(sk->sk_state==TCP_ESTABLISHED
+&&!sock_flag(sk,SOCK_DEAD)&&!sk_unhashed(sk)&&sk->sk_shutdown!=SHUTDOWN_MASK){
+inet_csk(sk)->icsk_ack.pending|=ICSK_ACK_NOW;DATARMNET63b1a086d5->
+DATARMNETb8fc35ed64++;DATARMNET32b91c8ae6(DATARMNET74f0a28fec);}}return;}else{
+struct rmnet_skb_cb*DATARMNET1ec4882bf7=RMNET_SKB_CB(DATARMNET543491eb0f);
+DATARMNET32b91c8ae6(DATARMNETb03f9571a3);DATARMNET63b1a086d5->
+DATARMNET55056146f6=true;DATARMNET1ec4882bf7->tethered=true;return;}}static u32 
+DATARMNET62fb576113(struct sk_buff*DATARMNET543491eb0f){struct tcphdr*
+DATARMNET668416551c=tcp_hdr(DATARMNET543491eb0f);return DATARMNET543491eb0f->len
+-((u8*)DATARMNET668416551c-DATARMNET543491eb0f->data)-DATARMNET668416551c->doff*
+(0xd11+230-0xdf3);}static void DATARMNET55fda9e01e(struct DATARMNETddbc1e5435*
+DATARMNET63b1a086d5,struct sk_buff*DATARMNET543491eb0f,bool DATARMNETd147c14c0e)
+__must_hold(RCU){struct rmnet_skb_cb*DATARMNET1ec4882bf7=RMNET_SKB_CB(
+DATARMNET543491eb0f);struct tcphdr*DATARMNET668416551c=tcp_hdr(
+DATARMNET543491eb0f);u32 DATARMNETb1b0ee1b2d=ntohl(DATARMNET668416551c->ack_seq)
+;u32 DATARMNETb6ff6d25f8=READ_ONCE(DATARMNET63b1a086d5->DATARMNETfef3675ce7);u32
+ DATARMNET91c1d5c029=READ_ONCE(DATARMNET63b1a086d5->DATARMNET9076d335ab);u32 
+DATARMNET9445bc443c=READ_ONCE(DATARMNET63b1a086d5->DATARMNET9a57846b4e);
+DATARMNET63b1a086d5->DATARMNET763f2e5fac=jiffies;if(DATARMNET63b1a086d5->
+DATARMNET55056146f6){DATARMNET1ec4882bf7->tethered=true;return;}if(
+DATARMNETd147c14c0e){if(after(DATARMNETb1b0ee1b2d,DATARMNET91c1d5c029)){u32 
+DATARMNET4e557c82d6=DATARMNETb6ff6d25f8-DATARMNETb1b0ee1b2d;if(
 DATARMNET4e557c82d6>DATARMNET9445bc443c)DATARMNET31a7673e56(DATARMNET63b1a086d5,
 DATARMNET543491eb0f);WRITE_ONCE(DATARMNET63b1a086d5->DATARMNET9076d335ab,
-DATARMNETb1b0ee1b2d);}}else{u32 DATARMNET4e557c82d6=DATARMNETb6ff6d25f8-
-DATARMNET91c1d5c029;if(after(DATARMNET26945497d8,DATARMNETb6ff6d25f8)){
-DATARMNET4e557c82d6=DATARMNET26945497d8-DATARMNET91c1d5c029;DATARMNET4e557c82d6
-+=DATARMNET62fb576113(DATARMNET543491eb0f);if(DATARMNET4e557c82d6>
-DATARMNET9445bc443c)DATARMNET31a7673e56(DATARMNET63b1a086d5,DATARMNET543491eb0f)
-;WRITE_ONCE(DATARMNET63b1a086d5->DATARMNETfef3675ce7,DATARMNET26945497d8);}
-DATARMNET1ec4882bf7->bif=DATARMNET4e557c82d6;DATARMNET1ec4882bf7->ack_thresh=
-DATARMNET9445bc443c;DATARMNET1ec4882bf7->ack_forced=DATARMNET63b1a086d5->
-DATARMNETb8fc35ed64;}}void DATARMNET9250714999(struct sk_buff*
+DATARMNETb1b0ee1b2d);}}}void DATARMNET9250714999(struct sk_buff*
 DATARMNET543491eb0f){struct DATARMNET4b40fe9cd4 DATARMNET3396919a68={};struct 
 DATARMNETddbc1e5435*DATARMNET63b1a086d5;struct tcphdr*DATARMNET668416551c;u32 
 DATARMNETd660a1a629;if(!skb_transport_header_was_set(DATARMNET543491eb0f)||

+ 1 - 1
shs/rmnet_shs_common.c

@@ -237,6 +237,6 @@ DATARMNET0258668025){DATARMNET68d84e7b98[DATARMNETef8cbfa62f]++;return ret;}if(
 DATARMNET0258668025<DATARMNETc6782fed88)ret=((((index+((DATARMNET0258668025%
 (0xd1f+216-0xdf5))?(0xd26+209-0xdf6):(0xd2d+202-0xdf7))))<<(0xec7+1122-0x130d))*
 DATARMNETebbd4cd1d9[(DATARMNET0258668025-(0xd26+209-0xdf6))>>(0xd26+209-0xdf6)])
-|(hash&16777215);if(DATARMNET72067bf727)ret=(ret&~16777215)|DATARMNET94fa0a43a2;
+|(hash&16777215);if(DATARMNET72067bf727)ret=(ret&~1048575)|DATARMNET94fa0a43a2;
 DATARMNETda96251102(DATARMNETf3aaad06eb,DATARMNET4e91ddb48a,ret,hash,index,
 DATARMNET0258668025,NULL,NULL);return ret;}

+ 2 - 2
shs/rmnet_shs_common.h

@@ -18,7 +18,7 @@
 #include <trace/hooks/sched.h>
 #include <linux/tracepoint.h>
 #include <trace/hooks/vendor_hooks.h>
-#define DATARMNET94fa0a43a2 7829367
+#define DATARMNET94fa0a43a2 489335
 void DATARMNET4095253347(struct DATARMNET9b44b71ee9*ep);void DATARMNETf7d317ed55
 (struct DATARMNET9b44b71ee9*ep);void DATARMNET36e5e526fa(struct 
 DATARMNET6c78e47d24*DATARMNETd2a694d52a);void DATARMNET2fe780019f(struct 
@@ -55,7 +55,7 @@ sk_buff*skb,u32 offset,u32 DATARMNET567bdc7221,void*buf);u32 DATARMNET8532ab3089
 struct list_head DATARMNET9825511866;static inline void DATARMNET3e88a91b63(void
 *unused,struct wait_queue_head*DATARMNETa08427f746,int*done,struct sock*sk){if((
 sk->sk_protocol==IPPROTO_TCP||sk->sk_protocol==IPPROTO_UDP)&&(sk->sk_rxhash&
-65535)==DATARMNET94fa0a43a2){(*done)=(0xd26+209-0xdf6);
+1048575)==DATARMNET94fa0a43a2){(*done)=(0xd26+209-0xdf6);
 wake_up_interruptible_poll(DATARMNETa08427f746,EPOLLIN|EPOLLPRI|EPOLLRDNORM|
 EPOLLRDBAND);}}static inline int DATARMNETed3cac41ac(void){int rc=
 (0xd2d+202-0xdf7);rc=register_trace_android_vh_do_wake_up_sync(

+ 3 - 3
shs/rmnet_shs_config.c

@@ -98,6 +98,6 @@ DATARMNETe46c480d71();DATARMNETecc0627c70.DATARMNET9c869c1ec2=(0xd26+209-0xdf6);
 trace_rmnet_shs_high(DATARMNET1790979ccf,DATARMNET443dab7031,(0x16e8+787-0xc0c),
 (0x16e8+787-0xc0c),(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),NULL,NULL);
 DATARMNETa871eeb7e7();DATARMNET7520667b38();rmnet_module_hook_register(&
-DATARMNETf6217b20b8,(0xd26+209-0xdf6));break;}DATARMNET7492293980(dev);break;
-default:break;}return NOTIFY_DONE;}module_init(DATARMNET163e93649e);module_exit(
-DATARMNETf3298dab6f);
+DATARMNETf6217b20b8,(0xd26+209-0xdf6));DATARMNETed3cac41ac();break;}
+DATARMNET7492293980(dev);break;default:break;}return NOTIFY_DONE;}module_init(
+DATARMNET163e93649e);module_exit(DATARMNETf3298dab6f);

+ 94 - 78
shs/rmnet_shs_main.c

@@ -40,7 +40,8 @@
 #include <linux/cpumask.h>
 #include <linux/icmp.h>
 #include <linux/inet.h>
-static char*verinfo[]={"\x65\x36\x66\x64\x34\x31\x33\x37",
+static char*verinfo[]={"\x63\x30\x39\x37\x35\x35\x62\x33",
+"\x32\x36\x66\x64\x33\x30\x36\x35","\x65\x36\x66\x64\x34\x31\x33\x37",
 "\x36\x64\x38\x31\x37\x39\x62\x63","\x64\x66\x39\x32\x65\x35\x33\x34",
 "\x30\x38\x61\x39\x34\x38\x64\x61","\x36\x35\x35\x37\x37\x63\x32\x32",
 "\x65\x35\x37\x30\x63\x30\x35\x63","\x30\x63\x61\x37\x61\x62\x38\x30",
@@ -80,6 +81,7 @@ DATARMNET758a55f103
 #define DATARMNET8fadb49f38 (0xd2d+202-0xdf7)
 #define DATARMNET48a89fcc16 (0xd26+209-0xdf6)
 #define DATARMNETbfe901fc62 (0xd2d+202-0xdf7)
+#define DATARMNETaa0602144b 11184810
 DEFINE_SPINLOCK(DATARMNET3764d083f0);DEFINE_HASHTABLE(DATARMNETe603c3a4b3,
 DATARMNET25437d35fd);struct DATARMNETe600c5b727 DATARMNET0997c5650d[
 DATARMNETc6782fed88];int DATARMNETcff375d916[DATARMNETc6782fed88];unsigned int 
@@ -106,37 +108,42 @@ DATARMNETf4cacbb5dc,
 DATARMNET673cf85e28,uint,(0xdb7+6665-0x261c));MODULE_PARM_DESC(
 DATARMNET673cf85e28,
 "\x4d\x61\x78\x20\x70\x68\x79\x20\x62\x61\x63\x6b\x6c\x6f\x67\x20\x73\x65\x65\x6e"
-);struct DATARMNETa6b20d7e8b DATARMNETecc0627c70;struct DATARMNET37ef896af8 
-shs_rx_work;int DATARMNET762cfa52fe(u8 mask);unsigned DATARMNET016351c9e4=
-(0xd2d+202-0xdf7);ssize_t DATARMNET713da9913c(struct netdev_rx_queue*
-DATARMNETb4180393e4,u8 cpu,u8 DATARMNET5780499e9c){struct rps_map*
-DATARMNETaeb4918e65,*map;cpumask_var_t mask;map=rcu_dereference(
-DATARMNETb4180393e4->rps_map);if(map){map->cpus[(0xd2d+202-0xdf7)]=cpu;map->len=
-(0xd26+209-0xdf6);if(((0xd26+209-0xdf6)<<cpu)&DATARMNETbc3c416b77)
-DATARMNETb7ddf3c5dd[DATARMNET975060d6b5]++;else DATARMNETb7ddf3c5dd[
-DATARMNET0e398136dc]++;return(0xd2d+202-0xdf7);}if(!alloc_cpumask_var(&mask,
-GFP_ATOMIC))return-ENOMEM;cpumask_set_cpu(cpu,(struct cpumask*)&mask);map=
-kzalloc(max_t(unsigned int,RPS_MAP_SIZE(cpumask_weight(mask)),L1_CACHE_BYTES),
-GFP_ATOMIC);if(!map){free_cpumask_var(mask);return-ENOMEM;}map->cpus[
+);unsigned int DATARMNETcb9ef310a4 __read_mostly=(0xd2d+202-0xdf7);module_param(
+DATARMNETcb9ef310a4,uint,(0xdb7+6665-0x261c));MODULE_PARM_DESC(
+DATARMNETcb9ef310a4,
+"\x20\x45\x73\x70\x20\x70\x61\x63\x6b\x65\x74\x73\x20\x73\x65\x65\x6e");struct 
+DATARMNETa6b20d7e8b DATARMNETecc0627c70;struct DATARMNET37ef896af8 shs_rx_work;
+int DATARMNET762cfa52fe(u8 mask);unsigned DATARMNET016351c9e4=(0xd2d+202-0xdf7);
+ssize_t DATARMNET713da9913c(struct netdev_rx_queue*DATARMNETb4180393e4,u8 cpu,u8
+ DATARMNET5780499e9c){struct rps_map*DATARMNETaeb4918e65,*map;cpumask_var_t mask
+;map=rcu_dereference(DATARMNETb4180393e4->rps_map);if(map){map->cpus[
 (0xd2d+202-0xdf7)]=cpu;map->len=(0xd26+209-0xdf6);if(((0xd26+209-0xdf6)<<cpu)&
 DATARMNETbc3c416b77)DATARMNETb7ddf3c5dd[DATARMNET975060d6b5]++;else 
+DATARMNETb7ddf3c5dd[DATARMNET0e398136dc]++;return(0xd2d+202-0xdf7);}if(!
+alloc_cpumask_var(&mask,GFP_ATOMIC))return-ENOMEM;cpumask_set_cpu(cpu,(struct 
+cpumask*)&mask);map=kzalloc(max_t(unsigned int,RPS_MAP_SIZE(cpumask_weight(mask)
+),L1_CACHE_BYTES),GFP_ATOMIC);if(!map){free_cpumask_var(mask);return-ENOMEM;}map
+->cpus[(0xd2d+202-0xdf7)]=cpu;map->len=(0xd26+209-0xdf6);if(((0xd26+209-0xdf6)<<
+cpu)&DATARMNETbc3c416b77)DATARMNETb7ddf3c5dd[DATARMNET975060d6b5]++;else 
 DATARMNETb7ddf3c5dd[DATARMNET0e398136dc]++;rcu_read_lock();DATARMNETaeb4918e65=
 rcu_dereference(DATARMNETb4180393e4->rps_map);rcu_assign_pointer(
 DATARMNETb4180393e4->rps_map,map);if(DATARMNETaeb4918e65)kfree(
 DATARMNETaeb4918e65);free_cpumask_var(mask);rcu_read_unlock();return
 (0xd2d+202-0xdf7);}int DATARMNET9303cec796(struct sk_buff*skb,u8*ret){int 
 DATARMNETbd864aa442=(0xd2d+202-0xdf7);struct iphdr*ip4h,DATARMNETc00baf31c3;
-struct ipv6hdr*ip6h,DATARMNETcf1d9e2c1e;s64 DATARMNETe30c7cdaf5;struct 
-timespec64 time;int DATARMNET441081ddc0;if(rmnet_module_hook_perf_ingress(&
-DATARMNET441081ddc0,skb)){if(!DATARMNET441081ddc0){goto done;}}switch(skb->
-protocol){case htons(ETH_P_IP):ip4h=DATARMNETefcaf5fbe9(skb,(0xd2d+202-0xdf7),
-sizeof(*ip4h),&DATARMNETc00baf31c3);if(!ip4h)break;if(!ip_is_fragment(ip4h)&&(
-ip4h->protocol==IPPROTO_TCP||ip4h->protocol==IPPROTO_UDP)){DATARMNETbd864aa442=
-(0xd26+209-0xdf6);break;}if(ip4h->protocol==IPPROTO_ICMP){skb->hash=
-(0xd2d+202-0xdf7);skb->sw_hash=(0xd26+209-0xdf6);(void)ktime_get_boottime_ts64(&
-time);DATARMNETe30c7cdaf5=ktime_ms_delta(ktime_set(time.tv_sec,time.tv_nsec),
-DATARMNETecc0627c70.DATARMNETdd3caf9200);if(hrtimer_active(&DATARMNETecc0627c70.
-hrtimer_wake)){hrtimer_cancel(&DATARMNETecc0627c70.hrtimer_wake);hrtimer_start(&
+struct ipv6hdr*ip6h,DATARMNETcf1d9e2c1e;const struct ipv6_opt_hdr*
+DATARMNET7b34b7b5be;struct ipv6_opt_hdr DATARMNET1688a97aa4;s64 
+DATARMNETe30c7cdaf5;struct timespec64 time;int DATARMNET441081ddc0;if(
+rmnet_module_hook_perf_ingress(&DATARMNET441081ddc0,skb)){if(!
+DATARMNET441081ddc0){goto done;}}switch(skb->protocol){case htons(ETH_P_IP):ip4h
+=DATARMNETefcaf5fbe9(skb,(0xd2d+202-0xdf7),sizeof(*ip4h),&DATARMNETc00baf31c3);
+if(!ip4h)break;if(!ip_is_fragment(ip4h)&&(ip4h->protocol==IPPROTO_TCP||ip4h->
+protocol==IPPROTO_UDP)){DATARMNETbd864aa442=(0xd26+209-0xdf6);break;}if(ip4h->
+protocol==IPPROTO_ICMP){skb->hash=(0xd2d+202-0xdf7);skb->sw_hash=
+(0xd26+209-0xdf6);(void)ktime_get_boottime_ts64(&time);DATARMNETe30c7cdaf5=
+ktime_ms_delta(ktime_set(time.tv_sec,time.tv_nsec),DATARMNETecc0627c70.
+DATARMNETdd3caf9200);if(hrtimer_active(&DATARMNETecc0627c70.hrtimer_wake)){
+hrtimer_cancel(&DATARMNETecc0627c70.hrtimer_wake);hrtimer_start(&
 DATARMNETecc0627c70.hrtimer_wake,ns_to_ktime((0xbf7+4070-0x172d)*
 DATARMNET68fc0be252),HRTIMER_MODE_REL|HRTIMER_MODE_PINNED);DATARMNET064fbe9e3a=
 (0xd1f+216-0xdf5);}else{hrtimer_start(&DATARMNETecc0627c70.hrtimer_wake,
@@ -158,27 +165,29 @@ DATARMNET03fd0cd6e6;if(icmphdr->type!=ICMP_ECHOREPLY&&icmphdr->type!=ICMP_ECHO)
 goto DATARMNET03fd0cd6e6;ip_proto=htons(ETH_P_IP);type=icmphdr->type;sequence=
 icmphdr->un.echo.sequence;snprintf(saddr,INET6_ADDRSTRLEN,"\x25\x70\x49\x34",&
 ip4h->saddr);snprintf(daddr,INET6_ADDRSTRLEN,"\x25\x70\x49\x34",&ip4h->daddr);
-trace_print_icmp_rx(skb,ip_proto,type,sequence,saddr,daddr);}}
-DATARMNET03fd0cd6e6:break;case htons(ETH_P_IPV6):ip6h=DATARMNETefcaf5fbe9(skb,
-(0xd2d+202-0xdf7),sizeof(*ip6h),&DATARMNETcf1d9e2c1e);if(!ip6h)break;if(!(ip6h->
-nexthdr==NEXTHDR_FRAGMENT)&&(ip6h->nexthdr==IPPROTO_TCP||ip6h->nexthdr==
-IPPROTO_UDP)){DATARMNETbd864aa442=(0xd26+209-0xdf6);break;}if(ip6h->nexthdr==
-NEXTHDR_ICMP){skb->hash=(0xd2d+202-0xdf7);skb->sw_hash=(0xd26+209-0xdf6);(void)
-ktime_get_boottime_ts64(&time);DATARMNETe30c7cdaf5=ktime_ms_delta(ktime_set(time
-.tv_sec,time.tv_nsec),DATARMNETecc0627c70.DATARMNETdd3caf9200);if(hrtimer_active
-(&DATARMNETecc0627c70.hrtimer_wake)){hrtimer_cancel(&DATARMNETecc0627c70.
-hrtimer_wake);hrtimer_start(&DATARMNETecc0627c70.hrtimer_wake,ns_to_ktime(
-(0xbf7+4070-0x172d)*DATARMNET68fc0be252),HRTIMER_MODE_REL|HRTIMER_MODE_PINNED);
-DATARMNET064fbe9e3a=(0xd1f+216-0xdf5);}else{hrtimer_start(&DATARMNETecc0627c70.
-hrtimer_wake,ns_to_ktime((0xbf7+4070-0x172d)*DATARMNET68fc0be252),
-HRTIMER_MODE_REL|HRTIMER_MODE_PINNED);__pm_stay_awake(DATARMNETecc0627c70.ws);
-DATARMNET064fbe9e3a=(0xd1f+216-0xdf5);}if(!hrtimer_active(&DATARMNETecc0627c70.
-DATARMNET645fb3b468)){hrtimer_start(&DATARMNETecc0627c70.DATARMNET645fb3b468,
-ns_to_ktime((0xdf7+3019-0x160c)*DATARMNET68fc0be252),HRTIMER_MODE_REL|
-HRTIMER_MODE_PINNED);if(DATARMNETe30c7cdaf5>DATARMNET12f3a261a0&&
-DATARMNETecc0627c70.DATARMNETdd3caf9200){DATARMNET930a441406[DATARMNETe35e238437
-]++;}else{*ret=(0xd26+209-0xdf6);}}else{DATARMNET930a441406[DATARMNETe35e238437]
-++;}if(trace_print_icmp_rx_enabled()){char saddr[INET6_ADDRSTRLEN],daddr[
+trace_print_icmp_rx(skb,ip_proto,type,sequence,saddr,daddr);}}else if(ip4h->
+protocol==IPPROTO_ESP){skb->hash=DATARMNETaa0602144b;skb->sw_hash=
+(0xd26+209-0xdf6);DATARMNETcb9ef310a4++;}DATARMNET03fd0cd6e6:break;case htons(
+ETH_P_IPV6):ip6h=DATARMNETefcaf5fbe9(skb,(0xd2d+202-0xdf7),sizeof(*ip6h),&
+DATARMNETcf1d9e2c1e);if(!ip6h)break;if(!(ip6h->nexthdr==NEXTHDR_FRAGMENT)&&(ip6h
+->nexthdr==IPPROTO_TCP||ip6h->nexthdr==IPPROTO_UDP)){DATARMNETbd864aa442=
+(0xd26+209-0xdf6);break;}if(ip6h->nexthdr==NEXTHDR_ICMP){skb->hash=
+(0xd2d+202-0xdf7);skb->sw_hash=(0xd26+209-0xdf6);(void)ktime_get_boottime_ts64(&
+time);DATARMNETe30c7cdaf5=ktime_ms_delta(ktime_set(time.tv_sec,time.tv_nsec),
+DATARMNETecc0627c70.DATARMNETdd3caf9200);if(hrtimer_active(&DATARMNETecc0627c70.
+hrtimer_wake)){hrtimer_cancel(&DATARMNETecc0627c70.hrtimer_wake);hrtimer_start(&
+DATARMNETecc0627c70.hrtimer_wake,ns_to_ktime((0xbf7+4070-0x172d)*
+DATARMNET68fc0be252),HRTIMER_MODE_REL|HRTIMER_MODE_PINNED);DATARMNET064fbe9e3a=
+(0xd1f+216-0xdf5);}else{hrtimer_start(&DATARMNETecc0627c70.hrtimer_wake,
+ns_to_ktime((0xbf7+4070-0x172d)*DATARMNET68fc0be252),HRTIMER_MODE_REL|
+HRTIMER_MODE_PINNED);__pm_stay_awake(DATARMNETecc0627c70.ws);DATARMNET064fbe9e3a
+=(0xd1f+216-0xdf5);}if(!hrtimer_active(&DATARMNETecc0627c70.DATARMNET645fb3b468)
+){hrtimer_start(&DATARMNETecc0627c70.DATARMNET645fb3b468,ns_to_ktime(
+(0xdf7+3019-0x160c)*DATARMNET68fc0be252),HRTIMER_MODE_REL|HRTIMER_MODE_PINNED);
+if(DATARMNETe30c7cdaf5>DATARMNET12f3a261a0&&DATARMNETecc0627c70.
+DATARMNETdd3caf9200){DATARMNET930a441406[DATARMNETe35e238437]++;}else{*ret=
+(0xd26+209-0xdf6);}}else{DATARMNET930a441406[DATARMNETe35e238437]++;}if(
+trace_print_icmp_rx_enabled()){char saddr[INET6_ADDRSTRLEN],daddr[
 INET6_ADDRSTRLEN];u16 ip_proto=(0xd2d+202-0xdf7);__be16 sequence=
 (0xd2d+202-0xdf7);u8 type=(0xd2d+202-0xdf7);struct icmp6hdr*icmp6hdr,
 DATARMNETaa41336581;memset(saddr,(0xd2d+202-0xdf7),INET6_ADDRSTRLEN);memset(
@@ -189,14 +198,21 @@ icmp6_type!=ICMPV6_ECHO_REPLY)goto DATARMNETf623862dd4;ip_proto=htons(ETH_P_IPV6
 );type=icmp6hdr->icmp6_type;sequence=icmp6hdr->icmp6_sequence;snprintf(saddr,
 INET6_ADDRSTRLEN,"\x25\x70\x49\x36",&ip6h->saddr);snprintf(daddr,
 INET6_ADDRSTRLEN,"\x25\x70\x49\x36",&ip6h->daddr);trace_print_icmp_rx(skb,
-ip_proto,type,sequence,saddr,daddr);}}DATARMNETf623862dd4:break;default:break;}
-done:DATARMNETda96251102(DATARMNETcd24fca747,DATARMNET116c96c236,
-DATARMNETbd864aa442,(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),skb
-,NULL);return DATARMNETbd864aa442;}static void DATARMNETfa919d00dc(int cpu,int 
-DATARMNET8a461bad56){struct timespec64 DATARMNET2e47295bf1;struct timespec64*
-DATARMNET736ac5582e;long DATARMNETb64270afc1;int DATARMNETa67155ba38=(
-DATARMNETa1ac2608b5<DATARMNET8948dc953d)?DATARMNET8948dc953d:DATARMNETa1ac2608b5
-;ktime_get_boottime_ts64(&DATARMNET2e47295bf1);DATARMNET736ac5582e=&
+ip_proto,type,sequence,saddr,daddr);}}else if(ip6h->nexthdr==NEXTHDR_ESP){skb->
+hash=DATARMNETaa0602144b;skb->sw_hash=(0xd26+209-0xdf6);DATARMNETcb9ef310a4++;}
+else if(ip6h->nexthdr==NEXTHDR_FRAGMENT){if(skb->len-sizeof(struct ipv6hdr)<(int
+)sizeof(struct ipv6_opt_hdr)){break;}DATARMNET7b34b7b5be=skb_header_pointer(skb,
+sizeof(struct ipv6hdr),sizeof(DATARMNET1688a97aa4),&DATARMNET1688a97aa4);if(
+DATARMNET7b34b7b5be&&DATARMNET7b34b7b5be->nexthdr==NEXTHDR_ESP){skb->hash=
+DATARMNETaa0602144b;skb->sw_hash=(0xd26+209-0xdf6);DATARMNETcb9ef310a4++;}}
+DATARMNETf623862dd4:break;default:break;}done:DATARMNETda96251102(
+DATARMNETcd24fca747,DATARMNET116c96c236,DATARMNETbd864aa442,(0x16e8+787-0xc0c),
+(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),skb,NULL);return DATARMNETbd864aa442;}
+static void DATARMNETfa919d00dc(int cpu,int DATARMNET8a461bad56){struct 
+timespec64 DATARMNET2e47295bf1;struct timespec64*DATARMNET736ac5582e;long 
+DATARMNETb64270afc1;int DATARMNETa67155ba38=(DATARMNETa1ac2608b5<
+DATARMNET8948dc953d)?DATARMNET8948dc953d:DATARMNETa1ac2608b5;
+ktime_get_boottime_ts64(&DATARMNET2e47295bf1);DATARMNET736ac5582e=&
 DATARMNETecc0627c70.DATARMNET132b9c7dc4[cpu].DATARMNET251b97a380;
 DATARMNETb64270afc1=DATARMNETe6671dbf38(DATARMNET2e47295bf1.tv_sec-
 DATARMNET736ac5582e->tv_sec)+DATARMNET2e47295bf1.tv_nsec-DATARMNET736ac5582e->
@@ -438,31 +454,31 @@ DATARMNETecc0627c70.map_len;index=DATARMNET63b1a086d5->map_index;}else{map=
 DATARMNET63b1a086d5->DATARMNETfbbec4c537;DATARMNET0258668025=DATARMNET63b1a086d5
 ->DATARMNETa59ce1fd2d;index=DATARMNET63b1a086d5->map_index;}cpu=
 DATARMNET63b1a086d5->map_cpu;if(DATARMNET0997c5650d[cpu].DATARMNET72067bf727){
-DATARMNET3894230a14=DATARMNET0997c5650d[cpu].DATARMNET72067bf727;}if(map){
-DATARMNET1fcbf046ec=DATARMNET8532ab3089(index,DATARMNET0258668025,
-DATARMNET63b1a086d5->DATARMNETae4b27456e.head->hash,DATARMNET3894230a14);}else{
-DATARMNET63b1a086d5->DATARMNET6250e93187=(0xd2d+202-0xdf7);}DATARMNET52de1f3dc0(
-DATARMNET4510abc30d,DATARMNETe4ee0d2636,DATARMNET63b1a086d5->hash,
-DATARMNET1fcbf046ec,DATARMNET63b1a086d5->DATARMNETae4b27456e.DATARMNET6215127f48
-,DATARMNET63b1a086d5->DATARMNETae4b27456e.DATARMNETbaa5765693,
-DATARMNET63b1a086d5,DATARMNET63b1a086d5->DATARMNETae4b27456e.head);
-DATARMNET87636d0152=(u16)DATARMNET63b1a086d5->DATARMNET341ea38662->
-DATARMNET87636d0152;for((skb=DATARMNET63b1a086d5->DATARMNETae4b27456e.head);skb
-!=NULL;skb=DATARMNETcebafc57a4){DATARMNETcebafc57a4=skb->next;if(
-DATARMNET63b1a086d5->DATARMNET6250e93187)skb->hash=DATARMNET1fcbf046ec;skb->next
-=NULL;DATARMNETe20a9cab2b+=(0xd26+209-0xdf6);DATARMNETb481d13a78+=skb->len;if(
-DATARMNET3894230a14)DATARMNET952c960091++;if(DATARMNET87636d0152>
-(0xd2d+202-0xdf7)){if(DATARMNET63b1a086d5->DATARMNET1e9d25d9ff==IPPROTO_UDP)
-DATARMNET68d84e7b98[DATARMNETdd6bf3de6b]++;DATARMNET21243b86ae(skb,
-DATARMNETf345c1d909,DATARMNET87636d0152);}else{if(DATARMNETf345c1d909==
-DATARMNET0b15fd8b54&&(!DATARMNET63b1a086d5->DATARMNET85c698ec34))
-DATARMNETe767554e6e(skb);else if(DATARMNETf345c1d909==DATARMNET5b5927fd7e&&(!
-DATARMNET63b1a086d5->DATARMNET85c698ec34))DATARMNET514ce0bf59(skb);else if(
-DATARMNET63b1a086d5->DATARMNET85c698ec34&&DATARMNETf345c1d909==
-DATARMNET0b15fd8b54){DATARMNETa4055affd5=&DATARMNET0997c5650d[
-DATARMNET63b1a086d5->map_cpu];DATARMNETde8ee16f92(DATARMNET63b1a086d5);
-spin_unlock_bh(&DATARMNET3764d083f0);rmnet_rx_handler(&skb);spin_lock_bh(&
-DATARMNET3764d083f0);DATARMNET3e37ad2816(DATARMNET63b1a086d5,&
+DATARMNET3894230a14=DATARMNET0997c5650d[cpu].DATARMNET72067bf727&&
+rmnet_shs_no_sync_off;}if(map){DATARMNET1fcbf046ec=DATARMNET8532ab3089(index,
+DATARMNET0258668025,DATARMNET63b1a086d5->DATARMNETae4b27456e.head->hash,
+DATARMNET3894230a14);}else{DATARMNET63b1a086d5->DATARMNET6250e93187=
+(0xd2d+202-0xdf7);}DATARMNET52de1f3dc0(DATARMNET4510abc30d,DATARMNETe4ee0d2636,
+DATARMNET63b1a086d5->hash,DATARMNET1fcbf046ec,DATARMNET63b1a086d5->
+DATARMNETae4b27456e.DATARMNET6215127f48,DATARMNET63b1a086d5->DATARMNETae4b27456e
+.DATARMNETbaa5765693,DATARMNET63b1a086d5,DATARMNET63b1a086d5->
+DATARMNETae4b27456e.head);DATARMNET87636d0152=(u16)DATARMNET63b1a086d5->
+DATARMNET341ea38662->DATARMNET87636d0152;for((skb=DATARMNET63b1a086d5->
+DATARMNETae4b27456e.head);skb!=NULL;skb=DATARMNETcebafc57a4){DATARMNETcebafc57a4
+=skb->next;if(DATARMNET63b1a086d5->DATARMNET6250e93187)skb->hash=
+DATARMNET1fcbf046ec;skb->next=NULL;DATARMNETe20a9cab2b+=(0xd26+209-0xdf6);
+DATARMNETb481d13a78+=skb->len;if(DATARMNET3894230a14)DATARMNET952c960091++;if(
+DATARMNET87636d0152>(0xd2d+202-0xdf7)){if(DATARMNET63b1a086d5->
+DATARMNET1e9d25d9ff==IPPROTO_UDP)DATARMNET68d84e7b98[DATARMNETdd6bf3de6b]++;
+DATARMNET21243b86ae(skb,DATARMNETf345c1d909,DATARMNET87636d0152);}else{if(
+DATARMNETf345c1d909==DATARMNET0b15fd8b54&&(!DATARMNET63b1a086d5->
+DATARMNET85c698ec34))DATARMNETe767554e6e(skb);else if(DATARMNETf345c1d909==
+DATARMNET5b5927fd7e&&(!DATARMNET63b1a086d5->DATARMNET85c698ec34))
+DATARMNET514ce0bf59(skb);else if(DATARMNET63b1a086d5->DATARMNET85c698ec34&&
+DATARMNETf345c1d909==DATARMNET0b15fd8b54){DATARMNETa4055affd5=&
+DATARMNET0997c5650d[DATARMNET63b1a086d5->map_cpu];DATARMNETde8ee16f92(
+DATARMNET63b1a086d5);spin_unlock_bh(&DATARMNET3764d083f0);rmnet_rx_handler(&skb)
+;spin_lock_bh(&DATARMNET3764d083f0);DATARMNET3e37ad2816(DATARMNET63b1a086d5,&
 DATARMNETa4055affd5->DATARMNET3dc4262f53);}else{DATARMNET14ed771dfb[
 DATARMNET94658618fc]++;netif_rx(skb);}}}DATARMNET63b1a086d5->DATARMNETae4b27456e
 .DATARMNET6215127f48=(0xd2d+202-0xdf7);DATARMNET63b1a086d5->DATARMNETae4b27456e.

+ 9 - 1
shs/rmnet_shs_modules.c

@@ -237,8 +237,16 @@ DATARMNETaf95716235,
 DATARMNET7e039054c6,uint,(0xdb7+6665-0x261c));MODULE_PARM_DESC(
 DATARMNET7e039054c6,
 "\x72\x6d\x6e\x65\x74\x20\x73\x68\x73\x20\x77\x71\x20\x72\x65\x73\x74\x61\x72\x74\x20\x63\x6f\x75\x6e\x74"
+);unsigned int DATARMNET68dc14b50d=(0xd26+209-0xdf6);module_param(
+DATARMNET68dc14b50d,uint,(0xdb7+6665-0x261c));MODULE_PARM_DESC(
+DATARMNET68dc14b50d,
+"\x72\x65\x73\x65\x72\x76\x65\x20\x6d\x61\x73\x6b\x20\x66\x65\x61\x74\x75\x72\x65\x20\x66\x6c\x61\x67"
+);unsigned int rmnet_shs_no_sync_off=(0xd26+209-0xdf6);module_param(
+rmnet_shs_no_sync_off,uint,(0xdb7+6665-0x261c));MODULE_PARM_DESC(
+rmnet_shs_no_sync_off,
+"\x72\x6d\x6e\x65\x74\x20\x6e\x6f\x20\x73\x79\x6e\x63\x20\x66\x65\x61\x74\x75\x72\x65\x20\x74\x6f\x67\x67\x6c\x65"
 );unsigned int DATARMNET952c960091=(0xd2d+202-0xdf7);module_param(
 DATARMNET952c960091,uint,(0xdb7+6665-0x261c));MODULE_PARM_DESC(
-DATARMNET7e039054c6,
+DATARMNET952c960091,
 "\x72\x6d\x6e\x65\x74\x20\x73\x68\x73\x20\x61\x73\x79\x6e\x63\x20\x70\x61\x63\x6b\x65\x74\x20\x63\x6f\x75\x6e\x74"
 );

+ 2 - 1
shs/rmnet_shs_modules.h

@@ -57,6 +57,7 @@ DATARMNET930a441406[DATARMNET0d61981934];extern unsigned int DATARMNET3874292c18
 ;extern unsigned int DATARMNETbb1a9dff8b;extern unsigned int DATARMNET121c8bc82a
 ;extern unsigned int DATARMNETd619186789;extern unsigned int DATARMNETaf95716235
 ;extern unsigned int DATARMNET7e039054c6;extern unsigned int DATARMNET952c960091
-;
+;extern unsigned int rmnet_shs_no_sync_off;extern unsigned int 
+DATARMNET68dc14b50d;
 #endif
 

+ 20 - 20
shs/rmnet_shs_wq.c

@@ -29,7 +29,7 @@ MODULE_LICENSE("\x47\x50\x4c\x20\x76\x32");
 #define DATARMNET832dcfb5f8 (0xeb7+698-0x110d)
 #define DATARMNET53bef3c026 (0xd2d+202-0xdf7)
 #define DATARMNETc5db038c35 (0xd26+209-0xdf6)
-#define DATARMNET8853edc997 (0xd11+230-0xdf3)
+#define DATARMNET8853edc997 (0xd1f+216-0xdf5)
 #define DATARMNET81ec51f31c (0xef7+637-0x10f5)
 #define DATARMNET69be7dee16 15000
 #define DATARMNETc6f7fb02ea 34000
@@ -52,25 +52,25 @@ DATARMNETecb92a9ca5);}static void DATARMNETae3b7a67f8(void){int
 DATARMNETda889fd34d=(0xd2d+202-0xdf7);int DATARMNETb9aecdfadd=(0xd2d+202-0xdf7);
 int DATARMNET054dda278c=(0xd2d+202-0xdf7);int DATARMNET09cb196c21=
 (0xd26+209-0xdf6);int DATARMNETcfb5dc7296;cpumask_t DATARMNETaec9fb9581=
-walt_get_cpus_taken();for(DATARMNETda889fd34d=(0xd2d+202-0xdf7);
-DATARMNETda889fd34d<DATARMNETc6782fed88;DATARMNETda889fd34d++){if(
-cpumask_test_cpu(DATARMNETda889fd34d,&DATARMNETaec9fb9581)){DATARMNETb9aecdfadd
-++;DATARMNET054dda278c|=(0xd26+209-0xdf6)<<DATARMNETda889fd34d;}if(
-DATARMNETb9aecdfadd>=DATARMNET8853edc997){DATARMNET68d84e7b98[
-DATARMNETdfffcec2c8]++;break;}}DATARMNET121c8bc82a=DATARMNET054dda278c;if((
-(0xd26+209-0xdf6)<<DATARMNETecc0627c70.DATARMNET7d667e828e)&DATARMNET121c8bc82a)
-{DATARMNETcfb5dc7296=DATARMNET362c14e98b(DATARMNETecc0627c70.map_mask&
-DATARMNETbc3c416b77&~DATARMNETecc0627c70.DATARMNETba3f7a11ef&~
-DATARMNET121c8bc82a);if(DATARMNETcfb5dc7296>(0xd2d+202-0xdf7)){
-DATARMNET09cb196c21=DATARMNETcfb5dc7296;DATARMNETecc0627c70.DATARMNET5c24e1df05=
-DATARMNET09cb196c21;rcu_read_lock();RCU_INIT_POINTER(rmnet_shs_switch,
-DATARMNET756778f14f);rcu_read_unlock();}}}int DATARMNETdc7bead533(unsigned 
-DATARMNET42a992465f,unsigned DATARMNET435f2b5517){struct DATARMNET228056d4b7*
-DATARMNETf632b170b1;struct DATARMNETc8fdbf9c85*DATARMNET7bea4a06a6=&
-DATARMNET6cdd58e74c;if(DATARMNET42a992465f>=DATARMNETc6782fed88){
-DATARMNET68d84e7b98[DATARMNET54b67b8a75]++;return(0xd2d+202-0xdf7);}
-DATARMNETf632b170b1=&DATARMNET7bea4a06a6->DATARMNET73464778dc[
-DATARMNET42a992465f];return DATARMNETf632b170b1->DATARMNET324c1a8f98>
+walt_get_cpus_taken();if(!DATARMNET68dc14b50d)return;for(DATARMNETda889fd34d=
+(0xd2d+202-0xdf7);DATARMNETda889fd34d<DATARMNET8853edc997;DATARMNETda889fd34d++)
+{if(cpumask_test_cpu(DATARMNETda889fd34d,&DATARMNETaec9fb9581)){
+DATARMNETb9aecdfadd++;DATARMNET054dda278c|=(0xd26+209-0xdf6)<<
+DATARMNETda889fd34d;}if(DATARMNETb9aecdfadd>=DATARMNET8853edc997){
+DATARMNET68d84e7b98[DATARMNETdfffcec2c8]++;break;}}DATARMNET121c8bc82a=
+DATARMNET054dda278c;if(((0xd26+209-0xdf6)<<DATARMNETecc0627c70.
+DATARMNET7d667e828e)&DATARMNET121c8bc82a){DATARMNETcfb5dc7296=
+DATARMNET362c14e98b(DATARMNETecc0627c70.map_mask&DATARMNETbc3c416b77&~
+DATARMNETecc0627c70.DATARMNETba3f7a11ef&~DATARMNET121c8bc82a);if(
+DATARMNETcfb5dc7296>(0xd2d+202-0xdf7)){DATARMNET09cb196c21=DATARMNETcfb5dc7296;
+DATARMNETecc0627c70.DATARMNET5c24e1df05=DATARMNET09cb196c21;rcu_read_lock();
+RCU_INIT_POINTER(rmnet_shs_switch,DATARMNET756778f14f);rcu_read_unlock();}}}int 
+DATARMNETdc7bead533(unsigned DATARMNET42a992465f,unsigned DATARMNET435f2b5517){
+struct DATARMNET228056d4b7*DATARMNETf632b170b1;struct DATARMNETc8fdbf9c85*
+DATARMNET7bea4a06a6=&DATARMNET6cdd58e74c;if(DATARMNET42a992465f>=
+DATARMNETc6782fed88){DATARMNET68d84e7b98[DATARMNET54b67b8a75]++;return
+(0xd2d+202-0xdf7);}DATARMNETf632b170b1=&DATARMNET7bea4a06a6->DATARMNET73464778dc
+[DATARMNET42a992465f];return DATARMNETf632b170b1->DATARMNET324c1a8f98>
 DATARMNET435f2b5517;}void DATARMNETa6e92c3315(struct DATARMNET6c78e47d24*
 DATARMNETd2a694d52a){DATARMNETd2a694d52a->DATARMNETadd51beef4=(0xd2d+202-0xdf7);
 DATARMNETd2a694d52a->DATARMNET68714ac92c=(0xd2d+202-0xdf7);DATARMNETd2a694d52a->

+ 83 - 47
wlan/rmnet_wlan_connection.c

@@ -1,6 +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.
+ * Copyright (c) 2022-2023 Qualcomm Innovation Center, Inc. All rights reserved.
  *
  * RMNET WLAN connection management framework
  *
@@ -31,9 +31,11 @@ struct DATARMNET4f49486833{struct hlist_node DATARMNETe8608dd267;struct rcu_head
  DATARMNET28bfe9e6ad;struct hrtimer DATARMNET9f31ce5d2d;struct 
 DATARMNET0ca9d8ead7 DATARMNET54338da2ff;struct DATARMNET8d3c2559ca 
 DATARMNET7ed5754a5c;};static DEFINE_SPINLOCK(DATARMNET820642743b);static 
-DEFINE_HASHTABLE(DATARMNET5413d6f8ec,DATARMNETeaf0945284);static bool 
-DATARMNET5f3c9ed4da(struct DATARMNET0ca9d8ead7*DATARMNET75decd6f60,struct 
-DATARMNET0ca9d8ead7*DATARMNET6745cad668){if(DATARMNET75decd6f60->
+DEFINE_HASHTABLE(DATARMNET5413d6f8ec,DATARMNETeaf0945284);
+#define DATARMNET898fc3651c (0xef7+694-0x112d)
+#define DATARMNET20defbe7a0 (0xf07+3965-0x1a3c)
+static bool DATARMNET5f3c9ed4da(struct DATARMNET0ca9d8ead7*DATARMNET75decd6f60,
+struct DATARMNET0ca9d8ead7*DATARMNET6745cad668){if(DATARMNET75decd6f60->
 DATARMNET0d956cc77a!=DATARMNET6745cad668->DATARMNET0d956cc77a)return false;if(
 DATARMNET75decd6f60->DATARMNET0d956cc77a==(0xd11+230-0xdf3))return 
 DATARMNET75decd6f60->DATARMNETdfe430c2d6==DATARMNET6745cad668->
@@ -124,7 +126,7 @@ DATARMNETc1174a0f45;}DATARMNET099aa93adc.flowi4_oif=DATARMNET39542b437e->ifindex
 ;DATARMNET099aa93adc.flowi4_flags=FLOWI_FLAG_KNOWN_NH;DATARMNET066b8bd537=
 ip_route_output_key(&init_net,&DATARMNET099aa93adc);if(IS_ERR(
 DATARMNET066b8bd537)){DATARMNET17f6bc1be5(DATARMNET8a15bcdcc7);goto 
-DATARMNET74b365f6cc;}}memcpy(&DATARMNET099aa93adc.saddr,&DATARMNET86f1f2cdc9->
+DATARMNETc1174a0f45;}}memcpy(&DATARMNET099aa93adc.saddr,&DATARMNET86f1f2cdc9->
 saddr,sizeof(__be32));DATARMNETb5af46179c=xfrm_lookup(&init_net,&
 DATARMNET066b8bd537->dst,flowi4_to_flowi(&DATARMNET099aa93adc),NULL,
 (0xd2d+202-0xdf7));DATARMNET066b8bd537=(struct rtable*)DATARMNETb5af46179c;if(
@@ -149,7 +151,7 @@ DATARMNET39542b437e){DATARMNET17f6bc1be5(DATARMNET7c6c30b7d2);goto
 DATARMNETc1174a0f45;}DATARMNET8fbe36a2fa.flowi6_oif=DATARMNET39542b437e->ifindex
 ;DATARMNET8fbe36a2fa.flowi6_flags=FLOWI_FLAG_KNOWN_NH;dst=ipv6_stub->
 ipv6_dst_lookup_flow(&init_net,NULL,&DATARMNET8fbe36a2fa,NULL);if(IS_ERR(dst)){
-DATARMNET17f6bc1be5(DATARMNET39d80cc483);goto DATARMNET74b365f6cc;}}
+DATARMNET17f6bc1be5(DATARMNET39d80cc483);goto DATARMNETc1174a0f45;}}
 DATARMNETb5af46179c=xfrm_lookup(&init_net,dst,flowi6_to_flowi(&
 DATARMNET8fbe36a2fa),NULL,(0xd2d+202-0xdf7));DATARMNET066b8bd537=(struct rtable*
 )DATARMNETb5af46179c;if(IS_ERR(DATARMNET066b8bd537)){DATARMNET17f6bc1be5(
@@ -177,7 +179,7 @@ DATARMNETc1174a0f45;}DATARMNET099aa93adc.flowi4_oif=DATARMNET39542b437e->ifindex
 ;DATARMNET099aa93adc.flowi4_flags=FLOWI_FLAG_KNOWN_NH;DATARMNET066b8bd537=
 ip_route_output_key(&init_net,&DATARMNET099aa93adc);if(IS_ERR(
 DATARMNET066b8bd537)){DATARMNET17f6bc1be5(DATARMNET101af46c1c);goto 
-DATARMNET74b365f6cc;}}memcpy(&DATARMNET099aa93adc.saddr,&DATARMNET86f1f2cdc9->
+DATARMNETc1174a0f45;}}memcpy(&DATARMNET099aa93adc.saddr,&DATARMNET86f1f2cdc9->
 saddr,sizeof(__be32));DATARMNETb5af46179c=xfrm_lookup(&init_net,&
 DATARMNET066b8bd537->dst,flowi4_to_flowi(&DATARMNET099aa93adc),NULL,
 (0xd2d+202-0xdf7));DATARMNET066b8bd537=(struct rtable*)DATARMNETb5af46179c;if(
@@ -202,15 +204,46 @@ DATARMNET39542b437e){DATARMNET17f6bc1be5(DATARMNETf326b7c906);goto
 DATARMNETc1174a0f45;}DATARMNET8fbe36a2fa.flowi6_oif=DATARMNET39542b437e->ifindex
 ;DATARMNET8fbe36a2fa.flowi6_flags=FLOWI_FLAG_KNOWN_NH;dst=ipv6_stub->
 ipv6_dst_lookup_flow(&init_net,NULL,&DATARMNET8fbe36a2fa,NULL);if(IS_ERR(dst)){
-DATARMNET17f6bc1be5(DATARMNET544d78ede7);goto DATARMNET74b365f6cc;}}
+DATARMNET17f6bc1be5(DATARMNET544d78ede7);goto DATARMNETc1174a0f45;}}
 DATARMNETb5af46179c=xfrm_lookup(&init_net,dst,flowi6_to_flowi(&
 DATARMNET8fbe36a2fa),NULL,(0xd2d+202-0xdf7));DATARMNET066b8bd537=(struct rtable*
 )DATARMNETb5af46179c;if(IS_ERR(DATARMNET066b8bd537)){DATARMNET17f6bc1be5(
 DATARMNET97b44d0c09);goto DATARMNETc1174a0f45;}skb_dst_set(DATARMNET543491eb0f,
 DATARMNETb5af46179c);dst_output(&init_net,NULL,DATARMNET543491eb0f);
 DATARMNET17f6bc1be5(DATARMNETf954265acb);return RX_HANDLER_CONSUMED;}
-DATARMNET74b365f6cc:return RX_HANDLER_PASS;DATARMNETc1174a0f45:kfree_skb(
-DATARMNET543491eb0f);return RX_HANDLER_CONSUMED;}static rx_handler_result_t 
+DATARMNETc1174a0f45:kfree_skb(DATARMNET543491eb0f);return RX_HANDLER_CONSUMED;}
+static rx_handler_result_t DATARMNET6e2f632fce(struct sk_buff*
+DATARMNET543491eb0f,uint8_t DATARMNET1a901c3d09){struct sk_buff*
+DATARMNETb6d6995997=NULL;unsigned int DATARMNETc26140baf9=(0xd2d+202-0xdf7);
+unsigned int DATARMNET3301d81682=(0xd2d+202-0xdf7);struct ipv6hdr*
+DATARMNETbf55123e5b,*DATARMNET0b51978dd7;struct frag_hdr*DATARMNET2d5a34898d,*
+DATARMNET4a64bfeda0;if(skb_linearize(DATARMNET543491eb0f)){DATARMNET17f6bc1be5(
+DATARMNET4f59e3a6e4);goto DATARMNET27d4697979;}if(DATARMNET543491eb0f->protocol
+!=htons(ETH_P_IPV6)){DATARMNET17f6bc1be5(DATARMNET87c37ed8cc);goto 
+DATARMNETb042feb7e2;}DATARMNETb6d6995997=skb_copy_expand(DATARMNET543491eb0f,
+DATARMNET898fc3651c,DATARMNET898fc3651c,GFP_ATOMIC);if(!DATARMNETb6d6995997){
+DATARMNET17f6bc1be5(DATARMNET03b5eea9bc);goto DATARMNETb042feb7e2;}
+DATARMNETbf55123e5b=(struct ipv6hdr*)(DATARMNET543491eb0f->data);
+DATARMNET0b51978dd7=(struct ipv6hdr*)(DATARMNETb6d6995997->data);
+DATARMNET2d5a34898d=(struct frag_hdr*)((char*)DATARMNET543491eb0f->data+sizeof(
+struct ipv6hdr));DATARMNET4a64bfeda0=(struct frag_hdr*)((char*)
+DATARMNETb6d6995997->data+sizeof(struct ipv6hdr));DATARMNETc26140baf9=ntohs(
+DATARMNETbf55123e5b->payload_len)-sizeof(struct frag_hdr);DATARMNET3301d81682=
+DATARMNETc26140baf9-DATARMNET20defbe7a0;memcpy(DATARMNETb6d6995997->data+sizeof(
+struct ipv6hdr)+sizeof(struct frag_hdr),DATARMNET543491eb0f->data+sizeof(struct 
+ipv6hdr)+sizeof(struct frag_hdr)+DATARMNET20defbe7a0,DATARMNET3301d81682);
+DATARMNET2d5a34898d->frag_off=(0xd2d+202-0xdf7);DATARMNET2d5a34898d->frag_off|=
+htons(IP6_MF);skb_trim(DATARMNET543491eb0f,sizeof(struct ipv6hdr)+sizeof(struct 
+frag_hdr)+DATARMNET20defbe7a0);DATARMNETbf55123e5b->payload_len=htons(sizeof(
+struct frag_hdr)+DATARMNET20defbe7a0);DATARMNET4a64bfeda0->frag_off=
+(0xd2d+202-0xdf7);DATARMNET4a64bfeda0->frag_off=htons(DATARMNET20defbe7a0);
+DATARMNET4a64bfeda0->frag_off|=htons(IP6_MF);skb_trim(DATARMNETb6d6995997,sizeof
+(struct ipv6hdr)+sizeof(struct frag_hdr)+DATARMNET3301d81682);
+DATARMNET0b51978dd7->payload_len=htons(sizeof(struct frag_hdr)+
+DATARMNET3301d81682);DATARMNETc9ed97754a(DATARMNET543491eb0f,DATARMNET1a901c3d09
+);DATARMNETc9ed97754a(DATARMNETb6d6995997,DATARMNET1a901c3d09);goto 
+DATARMNET27d4697979;DATARMNETb042feb7e2:kfree_skb(DATARMNET543491eb0f);
+DATARMNET27d4697979:return RX_HANDLER_CONSUMED;}static rx_handler_result_t 
 DATARMNET68fe094884(struct sk_buff**DATARMNET89946cec52){struct 
 DATARMNET0ca9d8ead7 DATARMNETa76763310b={};struct DATARMNET4f49486833*
 DATARMNET63b1a086d5;struct sk_buff*DATARMNET543491eb0f=*DATARMNET89946cec52;
@@ -234,40 +267,42 @@ rcu_read_lock();DATARMNET8184934307=DATARMNETcc0a01df2a(&DATARMNET2d4b4cfc9e);
 rcu_read_unlock();if(!DATARMNET8184934307)goto DATARMNETbf4095f79e;
 DATARMNET1a901c3d09=DATARMNET8184934307->DATARMNET7ed5754a5c.DATARMNET9954a624ac
 ;if(DATARMNET1a901c3d09==DATARMNETdcafdec32a)goto DATARMNETbf4095f79e;if(
-DATARMNET543491eb0f->dev&&DATARMNET1a901c3d09==DATARMNET9bfbc31cd6)nf_ct_set(
-DATARMNET543491eb0f,NULL,IP_CT_UNTRACKED);if(DATARMNET543491eb0f->protocol==
-htons(ETH_P_IP)){struct iphdr*DATARMNET86f1f2cdc9,DATARMNETbf6548198e;
-DATARMNET86f1f2cdc9=skb_header_pointer(DATARMNET543491eb0f,(0xd2d+202-0xdf7),
-sizeof(*DATARMNET86f1f2cdc9),&DATARMNETbf6548198e);if(!DATARMNET86f1f2cdc9)goto 
-DATARMNETbf4095f79e;if(DATARMNET86f1f2cdc9->protocol==IPPROTO_TCP)goto 
-DATARMNET9b3d23a43b;if(DATARMNET86f1f2cdc9->protocol!=IPPROTO_ICMP)goto 
-DATARMNETbf4095f79e;DATARMNETa76763310b.DATARMNETdfe430c2d6=DATARMNET86f1f2cdc9
-->saddr;DATARMNETa76763310b.DATARMNET2cb607d686=DATARMNET86f1f2cdc9->daddr;
-DATARMNETa76763310b.DATARMNET0d956cc77a=(0xd11+230-0xdf3);}else if(
-DATARMNET543491eb0f->protocol==htons(ETH_P_IPV6)){struct ipv6hdr*
-DATARMNETbf55123e5b,DATARMNETcf1d9e2c1e;__be16 frag_off;u8 DATARMNET65293f17c4;
-DATARMNETbf55123e5b=skb_header_pointer(DATARMNET543491eb0f,(0xd2d+202-0xdf7),
-sizeof(*DATARMNETbf55123e5b),&DATARMNETcf1d9e2c1e);if(!DATARMNETbf55123e5b)goto 
-DATARMNETbf4095f79e;DATARMNET65293f17c4=DATARMNETbf55123e5b->nexthdr;if(
-ipv6_skip_exthdr(DATARMNET543491eb0f,sizeof(*DATARMNETbf55123e5b),&
-DATARMNET65293f17c4,&frag_off)<(0xd2d+202-0xdf7))goto DATARMNETbf4095f79e;if(
-frag_off&&DATARMNET65293f17c4==NEXTHDR_FRAGMENT)goto DATARMNETbf4095f79e;if(
-DATARMNET65293f17c4==IPPROTO_TCP)goto DATARMNET9b3d23a43b;if(DATARMNET65293f17c4
-!=IPPROTO_ICMPV6)goto DATARMNETbf4095f79e;memcpy(&DATARMNETa76763310b.
-DATARMNET815cbb4bf5,&DATARMNETbf55123e5b->saddr,sizeof(DATARMNETa76763310b.
-DATARMNET815cbb4bf5));memcpy(&DATARMNETa76763310b.DATARMNETc3f31215b7,&
-DATARMNETbf55123e5b->daddr,sizeof(DATARMNETa76763310b.DATARMNETc3f31215b7));
-DATARMNETa76763310b.DATARMNET0d956cc77a=(0xd03+244-0xdf1);}else{goto 
-DATARMNETbf4095f79e;}rcu_read_lock();hash_for_each_possible_rcu(
-DATARMNET5413d6f8ec,DATARMNET63b1a086d5,DATARMNETe8608dd267,DATARMNETa76763310b.
-DATARMNET2cb607d686){if(!DATARMNET5f3c9ed4da(&DATARMNET63b1a086d5->
-DATARMNET54338da2ff,&DATARMNETa76763310b))continue;if(likely(hrtimer_is_queued(&
-DATARMNET63b1a086d5->DATARMNET9f31ce5d2d)))hrtimer_start(&DATARMNET63b1a086d5->
-DATARMNET9f31ce5d2d,DATARMNET5da8c68c19,HRTIMER_MODE_REL);rcu_read_unlock();goto
- DATARMNETbf4095f79e;}rcu_read_unlock();spin_lock_irqsave(&DATARMNET820642743b,
-DATARMNETfb0677cc3c);DATARMNET63b1a086d5=kzalloc(sizeof(*DATARMNET63b1a086d5),
-GFP_ATOMIC);if(!DATARMNET63b1a086d5){spin_unlock_irqrestore(&DATARMNET820642743b
-,DATARMNETfb0677cc3c);goto DATARMNETbf4095f79e;}INIT_HLIST_NODE(&
+DATARMNET543491eb0f->dev)nf_ct_set(DATARMNET543491eb0f,NULL,IP_CT_UNTRACKED);if(
+DATARMNET543491eb0f->protocol==htons(ETH_P_IP)){struct iphdr*DATARMNET86f1f2cdc9
+,DATARMNETbf6548198e;DATARMNET86f1f2cdc9=skb_header_pointer(DATARMNET543491eb0f,
+(0xd2d+202-0xdf7),sizeof(*DATARMNET86f1f2cdc9),&DATARMNETbf6548198e);if(!
+DATARMNET86f1f2cdc9)goto DATARMNETbf4095f79e;if(DATARMNET86f1f2cdc9->protocol==
+IPPROTO_TCP)goto DATARMNET9b3d23a43b;if(DATARMNET86f1f2cdc9->protocol!=
+IPPROTO_ICMP)goto DATARMNETbf4095f79e;DATARMNETa76763310b.DATARMNETdfe430c2d6=
+DATARMNET86f1f2cdc9->saddr;DATARMNETa76763310b.DATARMNET2cb607d686=
+DATARMNET86f1f2cdc9->daddr;DATARMNETa76763310b.DATARMNET0d956cc77a=
+(0xd11+230-0xdf3);}else if(DATARMNET543491eb0f->protocol==htons(ETH_P_IPV6)){
+struct ipv6hdr*DATARMNETbf55123e5b,DATARMNETcf1d9e2c1e;__be16 frag_off;u8 
+DATARMNET65293f17c4;DATARMNETbf55123e5b=skb_header_pointer(DATARMNET543491eb0f,
+(0xd2d+202-0xdf7),sizeof(*DATARMNETbf55123e5b),&DATARMNETcf1d9e2c1e);if(!
+DATARMNETbf55123e5b)goto DATARMNETbf4095f79e;DATARMNET65293f17c4=
+DATARMNETbf55123e5b->nexthdr;if(ipv6_skip_exthdr(DATARMNET543491eb0f,sizeof(*
+DATARMNETbf55123e5b),&DATARMNET65293f17c4,&frag_off)<(0xd2d+202-0xdf7))goto 
+DATARMNETbf4095f79e;if(frag_off&&DATARMNET65293f17c4==NEXTHDR_FRAGMENT)goto 
+DATARMNETbf4095f79e;if(DATARMNETbf55123e5b->nexthdr==NEXTHDR_FRAGMENT&&(ntohs(
+DATARMNETbf55123e5b->payload_len)>(sizeof(struct frag_hdr)+DATARMNET20defbe7a0))
+)goto DATARMNETf10b3df68d;if(DATARMNET65293f17c4==IPPROTO_TCP)goto 
+DATARMNET9b3d23a43b;if(DATARMNET65293f17c4!=IPPROTO_ICMPV6)goto 
+DATARMNETbf4095f79e;memcpy(&DATARMNETa76763310b.DATARMNET815cbb4bf5,&
+DATARMNETbf55123e5b->saddr,sizeof(DATARMNETa76763310b.DATARMNET815cbb4bf5));
+memcpy(&DATARMNETa76763310b.DATARMNETc3f31215b7,&DATARMNETbf55123e5b->daddr,
+sizeof(DATARMNETa76763310b.DATARMNETc3f31215b7));DATARMNETa76763310b.
+DATARMNET0d956cc77a=(0xd03+244-0xdf1);}else{goto DATARMNETbf4095f79e;}
+rcu_read_lock();hash_for_each_possible_rcu(DATARMNET5413d6f8ec,
+DATARMNET63b1a086d5,DATARMNETe8608dd267,DATARMNETa76763310b.DATARMNET2cb607d686)
+{if(!DATARMNET5f3c9ed4da(&DATARMNET63b1a086d5->DATARMNET54338da2ff,&
+DATARMNETa76763310b))continue;if(likely(hrtimer_is_queued(&DATARMNET63b1a086d5->
+DATARMNET9f31ce5d2d)))hrtimer_start(&DATARMNET63b1a086d5->DATARMNET9f31ce5d2d,
+DATARMNET5da8c68c19,HRTIMER_MODE_REL);rcu_read_unlock();goto DATARMNETbf4095f79e
+;}rcu_read_unlock();spin_lock_irqsave(&DATARMNET820642743b,DATARMNETfb0677cc3c);
+DATARMNET63b1a086d5=kzalloc(sizeof(*DATARMNET63b1a086d5),GFP_ATOMIC);if(!
+DATARMNET63b1a086d5){spin_unlock_irqrestore(&DATARMNET820642743b,
+DATARMNETfb0677cc3c);goto DATARMNETbf4095f79e;}INIT_HLIST_NODE(&
 DATARMNET63b1a086d5->DATARMNETe8608dd267);memcpy(&DATARMNET63b1a086d5->
 DATARMNET54338da2ff,&DATARMNETa76763310b,sizeof(DATARMNETa76763310b));
 DATARMNET63b1a086d5->DATARMNET7ed5754a5c.DATARMNET57656f6f2f=DATARMNET543491eb0f
@@ -280,9 +315,10 @@ DATARMNET63b1a086d5->DATARMNETe8608dd267,DATARMNETa76763310b.DATARMNET2cb607d686
 DATARMNETbf4095f79e:return DATARMNETc9ed97754a(DATARMNET543491eb0f,
 DATARMNET1a901c3d09);DATARMNET9b3d23a43b:DATARMNET7ca470d54b(DATARMNET543491eb0f
 ,TCP_FLAG_SYN);return DATARMNETc9ed97754a(DATARMNET543491eb0f,
-DATARMNET1a901c3d09);}static void DATARMNETbc6bd11f47(struct net_device*
-DATARMNET00dcb79bc4){struct DATARMNET4f49486833*DATARMNET63b1a086d5;int 
-DATARMNET5c2fd31d7b;rcu_read_lock();hash_for_each_rcu(DATARMNET5413d6f8ec,
+DATARMNET1a901c3d09);DATARMNETf10b3df68d:return DATARMNET6e2f632fce(
+DATARMNET543491eb0f,DATARMNET1a901c3d09);}static void DATARMNETbc6bd11f47(struct
+ net_device*DATARMNET00dcb79bc4){struct DATARMNET4f49486833*DATARMNET63b1a086d5;
+int DATARMNET5c2fd31d7b;rcu_read_lock();hash_for_each_rcu(DATARMNET5413d6f8ec,
 DATARMNET5c2fd31d7b,DATARMNET63b1a086d5,DATARMNETe8608dd267){if(
 DATARMNET63b1a086d5->DATARMNET7ed5754a5c.DATARMNET57656f6f2f==
 DATARMNET00dcb79bc4)hrtimer_cancel(&DATARMNET63b1a086d5->DATARMNET9f31ce5d2d);}

+ 12 - 12
wlan/rmnet_wlan_main.c

@@ -1,6 +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.
+ * Copyright (c) 2022-2023 Qualcomm Innovation Center, Inc. All rights reserved.
  *
  * RMNET WLAN handler framework
  *
@@ -25,17 +25,17 @@
 #include "rmnet_wlan_stats.h"
 #include "rmnet_wlan_fragment.h"
 #include "rmnet_wlan_connection.h"
-static char*verinfo[]={"\x61\x33\x31\x34\x63\x62\x32\x35",
-"\x34\x33\x62\x62\x38\x34\x39\x39","\x32\x66\x33\x36\x30\x30\x31\x34",
-"\x62\x64\x66\x66\x39\x32\x62\x33","\x34\x36\x35\x36\x30\x62\x31\x34",
-"\x64\x33\x37\x61\x30\x39\x63\x63","\x65\x32\x31\x38\x66\x34\x35\x31",
-"\x30\x65\x33\x34\x62\x31\x39\x31","\x39\x66\x33\x66\x31\x31\x33\x30",
-"\x62\x31\x62\x63\x64\x66\x66\x61","\x61\x33\x33\x33\x36\x37\x61\x31",
-"\x37\x34\x31\x35\x39\x32\x31\x63","\x33\x35\x36\x63\x34\x39\x31\x63",
-"\x34\x64\x32\x32\x34\x33\x36\x33","\x61\x34\x31\x63\x39\x64\x37\x62",
-"\x38\x66\x32\x66\x65\x64\x32\x66","\x63\x30\x32\x62\x61\x39\x30\x65"};
-module_param_array(verinfo,charp,NULL,(0xcb7+5769-0x221c));MODULE_PARM_DESC(
-verinfo,
+static char*verinfo[]={"\x32\x31\x39\x38\x30\x64\x66\x62",
+"\x61\x33\x31\x34\x63\x62\x32\x35","\x34\x33\x62\x62\x38\x34\x39\x39",
+"\x32\x66\x33\x36\x30\x30\x31\x34","\x62\x64\x66\x66\x39\x32\x62\x33",
+"\x34\x36\x35\x36\x30\x62\x31\x34","\x64\x33\x37\x61\x30\x39\x63\x63",
+"\x65\x32\x31\x38\x66\x34\x35\x31","\x30\x65\x33\x34\x62\x31\x39\x31",
+"\x39\x66\x33\x66\x31\x31\x33\x30","\x62\x31\x62\x63\x64\x66\x66\x61",
+"\x61\x33\x33\x33\x36\x37\x61\x31","\x37\x34\x31\x35\x39\x32\x31\x63",
+"\x33\x35\x36\x63\x34\x39\x31\x63","\x34\x64\x32\x32\x34\x33\x36\x33",
+"\x61\x34\x31\x63\x39\x64\x37\x62","\x38\x66\x32\x66\x65\x64\x32\x66",
+"\x63\x30\x32\x62\x61\x39\x30\x65"};module_param_array(verinfo,charp,NULL,
+(0xcb7+5769-0x221c));MODULE_PARM_DESC(verinfo,
 "\x56\x65\x72\x73\x69\x6f\x6e\x20\x6f\x66\x20\x74\x68\x65\x20\x64\x72\x69\x76\x65\x72"
 );
 #define DATARMNETaf49b04806 ((0xeb7+1158-0x132d))

+ 4 - 3
wlan/rmnet_wlan_stats.h

@@ -1,6 +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.
+ * Copyright (c) 2022-2023 Qualcomm Innovation Center, Inc. All rights reserved.
  *
  * RMNET WLAN stats framework
  *
@@ -26,7 +26,8 @@ DATARMNET0b9541c9b3,DATARMNET0078f1d36d,DATARMNET661bdeccd4,DATARMNET28e7704d13,
 DATARMNET7c6c30b7d2,DATARMNET39d80cc483,DATARMNET1be480319c,DATARMNET15d1a78b15,
 DATARMNETddb1bc27cb,DATARMNETc730640bf7,DATARMNET521b065310,DATARMNET8a15bcdcc7,
 DATARMNET0978ff973f,DATARMNETc52168a41e,DATARMNET666fc9a664,DATARMNET7803c877c0,
-DATARMNET4c5aeeb476,DATARMNETfe1714cc0e,};void DATARMNET5ca94dbc3c(u32 
-DATARMNET248f120dd5);void DATARMNET17f6bc1be5(u32 DATARMNET248f120dd5);
+DATARMNET4c5aeeb476,DATARMNET4f59e3a6e4,DATARMNET87c37ed8cc,DATARMNET03b5eea9bc,
+DATARMNETfe1714cc0e,};void DATARMNET5ca94dbc3c(u32 DATARMNET248f120dd5);void 
+DATARMNET17f6bc1be5(u32 DATARMNET248f120dd5);
 #endif