소스 검색

Merge 23214290bcd98c1e9a22896b3f81b79679a4d4d9 on remote branch

Change-Id: I74ed47f431bc84f38ef427a161d7199a3ade4e0d
Linux Build Service Account 2 년 전
부모
커밋
1b5a33b1af
11개의 변경된 파일252개의 추가작업 그리고 223개의 파일을 삭제
  1. 6 5
      perf/rmnet_perf_main.c
  2. 58 56
      perf/rmnet_perf_tcp.c
  3. 30 30
      shs/rmnet_shs.h
  4. 9 8
      shs/rmnet_shs_common.c
  5. 18 6
      shs/rmnet_shs_common.h
  6. 10 10
      shs/rmnet_shs_config.c
  7. 23 24
      shs/rmnet_shs_ll.c
  8. 71 69
      shs/rmnet_shs_main.c
  9. 4 0
      shs/rmnet_shs_modules.c
  10. 2 1
      shs/rmnet_shs_modules.h
  11. 21 14
      shs/rmnet_shs_wq.c

+ 6 - 5
perf/rmnet_perf_main.c

@@ -19,11 +19,12 @@
 #include "rmnet_perf_tcp.h"
 #include "rmnet_perf_udp.h"
 MODULE_LICENSE("\x47\x50\x4c\x20\x76\x32");static char*verinfo[]={
-"\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","\x34\x64\x65\x34\x39\x64\x62\x35",
-"\x62\x31\x63\x34\x34\x62\x34\x63"};module_param_array(verinfo,charp,NULL,
-(0xcb7+5769-0x221c));MODULE_PARM_DESC(verinfo,
+"\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",
+"\x34\x64\x65\x34\x39\x64\x62\x35","\x62\x31\x63\x34\x34\x62\x34\x63"};
+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"
 );static bool DATARMNETc03b668e4c=true;module_param_named(rmnet_perf_knob0,
 DATARMNETc03b668e4c,bool,(0xdb7+6665-0x261c));static bool DATARMNET21c7a3c377=

+ 58 - 56
perf/rmnet_perf_tcp.c

@@ -38,34 +38,36 @@ 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;};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(DATARMNET63b1a086d5->
-DATARMNETa3e9a18f1b)sock_put(DATARMNET63b1a086d5->DATARMNETa3e9a18f1b);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,DATARMNET63b1a086d5,hash){if(
-DATARMNETe78ad140cc||DATARMNETd92eab34a9(DATARMNET63b1a086d5,DATARMNET763f2e5fac
-)){hash_del_rcu(&DATARMNET63b1a086d5->hash);call_rcu(&DATARMNET63b1a086d5->
-DATARMNET28bfe9e6ad,DATARMNET776e08992c);DATARMNET32b91c8ae6(DATARMNET9cc765a89e
-);DATARMNET1c62a8e2c9--;}}return!!DATARMNET1c62a8e2c9;}static void 
+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*
+DATARMNET63b1a086d5;struct hlist_node*DATARMNET0386f6f82a;unsigned long 
+DATARMNET763f2e5fac;int DATARMNET5c2fd31d7b;DATARMNET763f2e5fac=jiffies;
+hash_for_each_safe(DATARMNET1fd012f255,DATARMNET5c2fd31d7b,DATARMNET0386f6f82a,
+DATARMNET63b1a086d5,hash){if(DATARMNET63b1a086d5->DATARMNET1717afebc7)continue;
+if(DATARMNETe78ad140cc||DATARMNETd92eab34a9(DATARMNET63b1a086d5,
+DATARMNET763f2e5fac)){DATARMNET63b1a086d5->DATARMNET1717afebc7=true;hash_del_rcu
+(&DATARMNET63b1a086d5->hash);call_rcu(&DATARMNET63b1a086d5->DATARMNET28bfe9e6ad,
+DATARMNET776e08992c);DATARMNET32b91c8ae6(DATARMNET9cc765a89e);
+DATARMNET1c62a8e2c9--;}}return!!DATARMNET1c62a8e2c9;}static void 
 DATARMNETfec9085d8e(struct work_struct*DATARMNET190b4452e8){struct 
 DATARMNET74cfea3d20*DATARMNET9dd153bdf2;unsigned long DATARMNETfb0677cc3c;bool 
 DATARMNET6e1c466378;DATARMNET9dd153bdf2=container_of(to_delayed_work(
@@ -120,34 +122,34 @@ DATARMNET3396919a68,struct sk_buff*DATARMNET543491eb0f,bool DATARMNETd147c14c0e)
 __must_hold(RCU){struct DATARMNETddbc1e5435*DATARMNET63b1a086d5;unsigned long 
 DATARMNETfb0677cc3c;spin_lock_irqsave(&DATARMNET8e3721c47d,DATARMNETfb0677cc3c);
 hash_for_each_possible_rcu(DATARMNET1fd012f255,DATARMNET63b1a086d5,hash,
-DATARMNET3396919a68->DATARMNET556bcfcf8f){if(DATARMNET2f1039220d(&
-DATARMNET63b1a086d5->DATARMNET54338da2ff,DATARMNET3396919a68)){
-spin_unlock_irqrestore(&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;
+DATARMNET3396919a68->DATARMNET556bcfcf8f){if(DATARMNET63b1a086d5->
+DATARMNET1717afebc7)continue;if(DATARMNET2f1039220d(&DATARMNET63b1a086d5->
+DATARMNET54338da2ff,DATARMNET3396919a68)){spin_unlock_irqrestore(&
+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))

+ 30 - 30
shs/rmnet_shs.h

@@ -127,36 +127,36 @@ DATARMNETfd554c7eac*next;};struct DATARMNET37ef896af8{struct work_struct
 DATARMNET33110a3ff5;struct rmnet_port*port;};struct DATARMNETe600c5b727{struct 
 list_head DATARMNET3dc4262f53;u32 DATARMNETae196235f2;u32 qtail;u32 
 DATARMNET96571b28de;u32 DATARMNET4133fc9428;u32 seg;u8 DATARMNETef866573e0;u8 
-DATARMNET1e1f197118;};enum DATARMNETf0a06dc55a{DATARMNET1790979ccf,
-DATARMNETd5eb6398da,DATARMNETcd24fca747,DATARMNETe50d824af7,DATARMNET6b317c4c73,
-DATARMNET75d955c408,DATARMNETf3aaad06eb,DATARMNET720469c0a9,DATARMNET4510abc30d,
-DATARMNET23f8730007,};enum DATARMNETc1d9e38720{DATARMNET0b15fd8b54,
-DATARMNET5b5927fd7e,DATARMNETba3049005f};enum DATARMNET4f392b0182{
-DATARMNET72cb00fdc0,DATARMNET443dab7031,DATARMNET96db46917c,DATARMNET89958f9b63,
-DATARMNET6d7a3a033a,DATARMNET16a68afc17,DATARMNET916f444e0a,DATARMNETe9a79499ac,
-DATARMNET89f4779456,DATARMNETa94c7e31a0,DATARMNET116c96c236,DATARMNET9da2ea4f74,
-DATARMNETe55953a107,DATARMNET43225b7a7c,DATARMNET4dbb6812b5,DATARMNETbf80eada88,
-DATARMNET26438cb654,DATARMNETa6d85c8497,DATARMNET650a0ef6e1,DATARMNET3e031f1532,
-DATARMNET9f467b9ce4,DATARMNETc154fd2d48,DATARMNET5874e1ecd7,DATARMNET4f09dc5794,
-DATARMNET11a1fd3964,DATARMNETf2fc7954d4,DATARMNET4e91ddb48a,DATARMNET16befe9635,
-DATARMNET856c53293b,DATARMNET7e63a08ad4,DATARMNETf7c8c7aa3f,DATARMNET08b6defcff,
-DATARMNETf5c836f9ae,DATARMNETdd870ee64c,DATARMNETf730f80f06,DATARMNET998c6de143,
-DATARMNETe7afce2292,DATARMNETe0fee0991a,DATARMNETbc2a6aea12,DATARMNETde91850c28,
-DATARMNET237e7bd5f6,DATARMNETf16e78412b,DATARMNET83147a2e7d,DATARMNET816bb1e327,
-DATARMNETf311f20c00,DATARMNETa2bd301af7,DATARMNET99640d60f7,DATARMNET562b7d32a8,
-DATARMNET0808844559,DATARMNET5410705c1c,DATARMNET022082b219,DATARMNETe4ee0d2636,
-DATARMNET23b8465daf,DATARMNET052f49b190,DATARMNETfb753e521e,DATARMNET64b02f64c6,
-DATARMNET576793621a,DATARMNETc262b24b02,DATARMNET4ebbc01257,DATARMNET595eed6ea2,
-DATARMNETde090e8314,DATARMNETa593d87b38,DATARMNET8a2898988b,DATARMNET0709c9f764,
-};extern struct DATARMNET37ef896af8 DATARMNET1731db288b;extern spinlock_t 
-DATARMNETd83ee17944;extern spinlock_t DATARMNET3764d083f0;extern spinlock_t 
-DATARMNETec2a4f5211;extern spinlock_t DATARMNETfbdbab2ef6;extern struct 
-hlist_head DATARMNETe603c3a4b3[(0xd26+209-0xdf6)<<(DATARMNET25437d35fd)];extern 
-int(*rmnet_shs_skb_entry)(struct sk_buff*skb,struct rmnet_shs_clnt_s*
-DATARMNET9e820fbfe3);extern int(*rmnet_shs_ll_skb_entry)(struct sk_buff*skb,
-struct rmnet_shs_clnt_s*DATARMNET9e820fbfe3);extern int(*rmnet_shs_switch)(
-struct sk_buff*skb,struct rmnet_shs_clnt_s*DATARMNET9e820fbfe3);void 
-DATARMNET203752febd(void);void DATARMNET7520667b38(void);void 
+DATARMNET1e1f197118;u8 DATARMNET72067bf727;};enum DATARMNETf0a06dc55a{
+DATARMNET1790979ccf,DATARMNETd5eb6398da,DATARMNETcd24fca747,DATARMNETe50d824af7,
+DATARMNET6b317c4c73,DATARMNET75d955c408,DATARMNETf3aaad06eb,DATARMNET720469c0a9,
+DATARMNET4510abc30d,DATARMNET23f8730007,};enum DATARMNETc1d9e38720{
+DATARMNET0b15fd8b54,DATARMNET5b5927fd7e,DATARMNETba3049005f};enum 
+DATARMNET4f392b0182{DATARMNET72cb00fdc0,DATARMNET443dab7031,DATARMNET96db46917c,
+DATARMNET89958f9b63,DATARMNET6d7a3a033a,DATARMNET16a68afc17,DATARMNET916f444e0a,
+DATARMNETe9a79499ac,DATARMNET89f4779456,DATARMNETa94c7e31a0,DATARMNET116c96c236,
+DATARMNET9da2ea4f74,DATARMNETe55953a107,DATARMNET43225b7a7c,DATARMNET4dbb6812b5,
+DATARMNETbf80eada88,DATARMNET26438cb654,DATARMNETa6d85c8497,DATARMNET650a0ef6e1,
+DATARMNET3e031f1532,DATARMNET9f467b9ce4,DATARMNETc154fd2d48,DATARMNET5874e1ecd7,
+DATARMNET4f09dc5794,DATARMNET11a1fd3964,DATARMNETf2fc7954d4,DATARMNET4e91ddb48a,
+DATARMNET16befe9635,DATARMNET856c53293b,DATARMNET7e63a08ad4,DATARMNETf7c8c7aa3f,
+DATARMNET08b6defcff,DATARMNETf5c836f9ae,DATARMNETdd870ee64c,DATARMNETf730f80f06,
+DATARMNET998c6de143,DATARMNETe7afce2292,DATARMNETe0fee0991a,DATARMNETbc2a6aea12,
+DATARMNETde91850c28,DATARMNET237e7bd5f6,DATARMNETf16e78412b,DATARMNET83147a2e7d,
+DATARMNET816bb1e327,DATARMNETf311f20c00,DATARMNETa2bd301af7,DATARMNET99640d60f7,
+DATARMNET562b7d32a8,DATARMNET0808844559,DATARMNET5410705c1c,DATARMNET022082b219,
+DATARMNETe4ee0d2636,DATARMNET23b8465daf,DATARMNET052f49b190,DATARMNETfb753e521e,
+DATARMNET64b02f64c6,DATARMNET576793621a,DATARMNETc262b24b02,DATARMNET4ebbc01257,
+DATARMNET595eed6ea2,DATARMNETde090e8314,DATARMNETa593d87b38,DATARMNET8a2898988b,
+DATARMNET0709c9f764,};extern struct DATARMNET37ef896af8 DATARMNET1731db288b;
+extern spinlock_t DATARMNETd83ee17944;extern spinlock_t DATARMNET3764d083f0;
+extern spinlock_t DATARMNETec2a4f5211;extern spinlock_t DATARMNETfbdbab2ef6;
+extern struct hlist_head DATARMNETe603c3a4b3[(0xd26+209-0xdf6)<<(
+DATARMNET25437d35fd)];extern int(*rmnet_shs_skb_entry)(struct sk_buff*skb,struct
+ rmnet_shs_clnt_s*DATARMNET9e820fbfe3);extern int(*rmnet_shs_ll_skb_entry)(
+struct sk_buff*skb,struct rmnet_shs_clnt_s*DATARMNET9e820fbfe3);extern int(*
+rmnet_shs_switch)(struct sk_buff*skb,struct rmnet_shs_clnt_s*DATARMNET9e820fbfe3
+);void DATARMNET203752febd(void);void DATARMNET7520667b38(void);void 
 DATARMNETa871eeb7e7(void);void DATARMNET8f9da46b14(void);int DATARMNET362b15f941
 (u16 cpu);void DATARMNETeacad8334e(void);void DATARMNETe1f95274f1(void);unsigned
  int DATARMNET02cdd9b125(void);int DATARMNET310c3eb16e(u8 mask);int 

+ 9 - 8
shs/rmnet_shs_common.c

@@ -1,5 +1,5 @@
 /* Copyright (c) 2020-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.
  *
  * 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
@@ -230,12 +230,13 @@ DATARMNETe33b41dad9.tp),tp,sizeof(struct tcphdr));}else if(node_p->
 DATARMNET1e9d25d9ff==IPPROTO_UDP){up=DATARMNETefcaf5fbe9(skb,ip_len,sizeof(*up),
 &DATARMNETc82d2f4e16);if(!up)return;memcpy(&(node_p->DATARMNETe33b41dad9.up),up,
 sizeof(struct udphdr));}else{}}u32 DATARMNET8532ab3089(u32 index,u32 
-DATARMNET0258668025,u32 hash){int DATARMNETebbd4cd1d9[DATARMNETc6782fed88/
-(0xd1f+216-0xdf5)]={(0xd35+210-0xdff),(0xd11+230-0xdf3),(0xd18+223-0xdf4),
-(0xd1f+216-0xdf5)};u32 ret=(0xd2d+202-0xdf7);if(!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&1048575);
+DATARMNET0258668025,u32 hash,u8 DATARMNET72067bf727){int DATARMNETebbd4cd1d9[
+DATARMNETc6782fed88/(0xd1f+216-0xdf5)]={(0xd35+210-0xdff),(0xd11+230-0xdf3),
+(0xd18+223-0xdf4),(0xd1f+216-0xdf5)};u32 ret=(0xd2d+202-0xdf7);if(!
+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;
 DATARMNETda96251102(DATARMNETf3aaad06eb,DATARMNET4e91ddb48a,ret,hash,index,
 DATARMNET0258668025,NULL,NULL);return ret;}

+ 18 - 6
shs/rmnet_shs_common.h

@@ -1,5 +1,5 @@
 /* Copyright (c) 2020 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.
  *
  * 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
@@ -12,11 +12,13 @@
  *
  */
 
-#include "rmnet_shs.h"
-#include "rmnet_shs_wq.h"
-#include "rmnet_shs_config.h"
 #ifndef DATARMNET4e9dcb0338
 #define DATARMNET4e9dcb0338
+#undef TRACE_INCLUDE_PATH
+#include <trace/hooks/sched.h>
+#include <linux/tracepoint.h>
+#include <trace/hooks/vendor_hooks.h>
+#define DATARMNET94fa0a43a2 7829367
 void DATARMNET4095253347(struct DATARMNET9b44b71ee9*ep);void DATARMNETf7d317ed55
 (struct DATARMNET9b44b71ee9*ep);void DATARMNET36e5e526fa(struct 
 DATARMNET6c78e47d24*DATARMNETd2a694d52a);void DATARMNET2fe780019f(struct 
@@ -49,7 +51,17 @@ DATARMNET04e8d1b862(u8 cpu,u8 mask);void DATARMNET44459105b4(struct sk_buff*skb,
 struct DATARMNET63d7680df2*node_p);int DATARMNET217fe38119(u64 
 DATARMNETab155dfd5d,struct net_device*dev);void*DATARMNETefcaf5fbe9(struct 
 sk_buff*skb,u32 offset,u32 DATARMNET567bdc7221,void*buf);u32 DATARMNET8532ab3089
-(u32 index,u32 DATARMNET0258668025,u32 hash);extern struct list_head 
-DATARMNET9825511866;
+(u32 index,u32 DATARMNET0258668025,u32 hash,u8 DATARMNET778962e2c2);extern 
+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);
+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(
+DATARMNET3e88a91b63,NULL);return rc;}static inline int DATARMNET7fcf8c178f(void)
+{int rc=(0xd2d+202-0xdf7);rc=unregister_trace_android_vh_do_wake_up_sync(
+DATARMNET3e88a91b63,NULL);return rc;}
+#undef TRACE_INCLUDE_PATH
 #endif
 

+ 10 - 10
shs/rmnet_shs_config.c

@@ -1,5 +1,5 @@
 /* Copyright (c) 2018-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.
  *
  * 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
@@ -66,11 +66,11 @@ qmi_rmnet_ps_ind_deregister(DATARMNETecc0627c70.port,&DATARMNETecc0627c70.
 rmnet_idl_ind_cb);rmnet_map_dl_ind_deregister(DATARMNETecc0627c70.port,&
 DATARMNETecc0627c70.DATARMNET08dbb5ab35);DATARMNETeacad8334e();
 DATARMNET90fe3a4b56();DATARMNET9f4bc49c6f=DATARMNET02cdd9b125();
-DATARMNETf7dcab9a9e();DATARMNET9297340f58(DATARMNET9f4bc49c6f);
-trace_rmnet_shs_high(DATARMNET1790979ccf,DATARMNET443dab7031,(0x16e8+787-0xc0c),
-(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),NULL,NULL);}break;case 
-NETDEV_REGISTER:DATARMNET2cb9ae589c++;if(DATARMNET2cb9ae589c&&!
-DATARMNETecc0627c70.DATARMNETfc89d842ae){pr_info(
+DATARMNET7fcf8c178f();DATARMNETf7dcab9a9e();DATARMNET9297340f58(
+DATARMNET9f4bc49c6f);trace_rmnet_shs_high(DATARMNET1790979ccf,
+DATARMNET443dab7031,(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),
+(0x16e8+787-0xc0c),NULL,NULL);}break;case NETDEV_REGISTER:DATARMNET2cb9ae589c++;
+if(DATARMNET2cb9ae589c&&!DATARMNETecc0627c70.DATARMNETfc89d842ae){pr_info(
 "\x72\x6d\x6e\x65\x74\x5f\x73\x68\x73\x20\x69\x6e\x69\x74\x69\x61\x6c\x69\x7a\x69\x6e\x67\x20\x25\x73"
 ,dev->name);priv=netdev_priv(dev);port=rmnet_get_port(priv->real_dev);if(!port){
 pr_err(
@@ -97,7 +97,7 @@ rmnet_idl_ind_cb);if(ret)pr_err(
 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);
-DATARMNETcd6e26f0ad();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);
+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);

+ 23 - 24
shs/rmnet_shs_ll.c

@@ -1,4 +1,4 @@
-/* Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved.
+/* Copyright (c) 2022-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
@@ -261,31 +261,30 @@ DATARMNET0258668025=DATARMNETecc0627c70.map_len;index=DATARMNET63b1a086d5->
 map_index;}else{map=DATARMNET63b1a086d5->DATARMNETfbbec4c537;DATARMNET0258668025
 =DATARMNET63b1a086d5->DATARMNETa59ce1fd2d;index=DATARMNET63b1a086d5->map_index;}
 if(map){DATARMNET1fcbf046ec=DATARMNET8532ab3089(index,DATARMNET0258668025,
-DATARMNET63b1a086d5->hash);skb->hash=DATARMNET1fcbf046ec;}}int 
-DATARMNETf5821256ad(struct sk_buff*skb,struct rmnet_shs_clnt_s*
+DATARMNET63b1a086d5->hash,(0xd2d+202-0xdf7));skb->hash=DATARMNET1fcbf046ec;}}int
+ DATARMNETf5821256ad(struct sk_buff*skb,struct rmnet_shs_clnt_s*
 DATARMNET0bf01e7c6f){struct DATARMNET63d7680df2*node_p;struct hlist_node*tmp;int
- map=DATARMNETecc0627c70.map_mask;int DATARMNETb925972e2a;int map_cpu;u32 hash;
-u8 is_match_found=(0xd2d+202-0xdf7);struct DATARMNETe600c5b727*
-DATARMNETa4055affd5;struct rmnet_priv*priv;DATARMNETefe3dcad0a++;hash=
-skb_get_hash(skb);spin_lock_bh(&DATARMNETd83ee17944);do{
-hash_for_each_possible_safe(DATARMNET58fe8ac797,node_p,tmp,list,hash){if(hash!=
-node_p->hash)continue;is_match_found=(0xd26+209-0xdf6);node_p->map_cpu=
+ map=DATARMNETecc0627c70.map_mask;int DATARMNETb925972e2a=DATARMNET3874292c18;
+int map_cpu;u32 hash;u8 is_match_found=(0xd2d+202-0xdf7);struct 
+DATARMNETe600c5b727*DATARMNETa4055affd5;struct rmnet_priv*priv;
+DATARMNETefe3dcad0a++;hash=skb_get_hash(skb);spin_lock_bh(&DATARMNETd83ee17944);
+do{hash_for_each_possible_safe(DATARMNET58fe8ac797,node_p,tmp,list,hash){if(hash
+!=node_p->hash)continue;is_match_found=(0xd26+209-0xdf6);node_p->map_cpu=
 DATARMNET3874292c18;node_p->map_index=DATARMNET04e8d1b862(node_p->map_cpu,map);
-break;}if(is_match_found)break;DATARMNETb925972e2a=DATARMNET3874292c18;if(
-DATARMNETb925972e2a<(0xd2d+202-0xdf7)){DATARMNET68d84e7b98[DATARMNETa1f9420686]
-++;break;}if(atomic_long_read(&DATARMNETecc0627c70.DATARMNET64bb8a8f57)>
-DATARMNETbfe31ef643){DATARMNET68d84e7b98[DATARMNETe6e77f9f03]++;break;}node_p=
-kzalloc(sizeof(*node_p),GFP_ATOMIC);if(!node_p){DATARMNET68d84e7b98[
-DATARMNET394acaf558]++;break;}atomic_long_inc(&DATARMNETecc0627c70.
-DATARMNET64bb8a8f57);node_p->DATARMNETfbbec4c537=DATARMNET0bf01e7c6f->map_mask;
-node_p->DATARMNETa59ce1fd2d=DATARMNETecc0627c70.map_mask;node_p->dev=skb->dev;
-node_p->hash=skb->hash;node_p->map_cpu=DATARMNETb925972e2a;node_p->
-DATARMNET80eb31d7b8=(0xd26+209-0xdf6);node_p->map_index=DATARMNET04e8d1b862(
-node_p->map_cpu,map);node_p->map_cpu=raw_smp_processor_id();node_p->map_index=
-DATARMNET04e8d1b862(node_p->map_cpu,map);INIT_LIST_HEAD(&node_p->
-DATARMNET04c88b8191);DATARMNET44459105b4(skb,node_p);DATARMNET350f55bfca(node_p)
-;map_cpu=node_p->map_cpu;DATARMNETa4055affd5=&DATARMNET148e775ece[map_cpu];priv=
-netdev_priv(node_p->dev);if(!priv){rm_err(
+break;}if(is_match_found)break;if(DATARMNETb925972e2a<(0xd2d+202-0xdf7)){
+DATARMNET68d84e7b98[DATARMNETa1f9420686]++;break;}if(atomic_long_read(&
+DATARMNETecc0627c70.DATARMNET64bb8a8f57)>DATARMNETbfe31ef643){
+DATARMNET68d84e7b98[DATARMNETe6e77f9f03]++;break;}node_p=kzalloc(sizeof(*node_p)
+,GFP_ATOMIC);if(!node_p){DATARMNET68d84e7b98[DATARMNET394acaf558]++;break;}
+atomic_long_inc(&DATARMNETecc0627c70.DATARMNET64bb8a8f57);node_p->
+DATARMNETfbbec4c537=DATARMNET0bf01e7c6f->map_mask;node_p->DATARMNETa59ce1fd2d=
+DATARMNETecc0627c70.map_mask;node_p->dev=skb->dev;node_p->hash=skb->hash;node_p
+->map_cpu=DATARMNETb925972e2a;node_p->DATARMNET80eb31d7b8=(0xd26+209-0xdf6);
+node_p->map_index=DATARMNET04e8d1b862(node_p->map_cpu,map);node_p->map_cpu=
+raw_smp_processor_id();node_p->map_index=DATARMNET04e8d1b862(node_p->map_cpu,map
+);INIT_LIST_HEAD(&node_p->DATARMNET04c88b8191);DATARMNET44459105b4(skb,node_p);
+DATARMNET350f55bfca(node_p);map_cpu=node_p->map_cpu;DATARMNETa4055affd5=&
+DATARMNET148e775ece[map_cpu];priv=netdev_priv(node_p->dev);if(!priv){rm_err(
 "\x53\x48\x53\x5f\x4c\x4c\x3a\x20\x70\x72\x69\x76\x20\x66\x6f\x72\x20\x6e\x65\x74\x64\x65\x76\x20\x69\x73\x20\x6e\x75\x6c\x6c\x20\x66\x6f\x72\x20\x68\x61\x73\x68\x20\x30\x78\x25\x78"
 ,node_p->hash);DATARMNET68d84e7b98[DATARMNETf5157a9b85]++;}else{node_p->
 DATARMNET341ea38662->mux_id=priv->mux_id;rm_err(

+ 71 - 69
shs/rmnet_shs_main.c

@@ -40,18 +40,14 @@
 #include <linux/cpumask.h>
 #include <linux/icmp.h>
 #include <linux/inet.h>
-static char*verinfo[]={"\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","\x63\x30\x33\x31\x36\x31\x63\x66",
-"\x35\x61\x66\x31\x30\x31\x31\x64","\x36\x38\x36\x36\x36\x32\x33\x32",
-"\x65\x32\x31\x38\x66\x34\x35\x31","\x63\x66\x39\x62\x62\x61\x63\x34",
-"\x30\x66\x36\x63\x61\x30\x31\x30","\x30\x36\x61\x33\x66\x33\x34\x62",
-"\x38\x65\x30\x61\x35\x38\x36\x62","\x35\x66\x64\x35\x63\x66\x66\x37",
-"\x31\x39\x64\x61\x63\x36\x32\x36","\x35\x65\x31\x64\x38\x37\x39\x62",
-"\x37\x34\x31\x35\x39\x32\x31\x63","\x31\x35\x33\x64\x31\x61\x62\x31",
-"\x34\x66\x64\x35\x39\x63\x66\x35","\x38\x61\x64\x37\x64\x32\x62\x65",
-"\x63\x30\x32\x62\x61\x39\x30\x65"};module_param_array(verinfo,charp,NULL,
-(0xcb7+5769-0x221c));MODULE_PARM_DESC(verinfo,
+static char*verinfo[]={"\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",
+"\x63\x30\x33\x31\x36\x31\x63\x66","\x35\x61\x66\x31\x30\x31\x31\x64",
+"\x36\x38\x36\x36\x36\x32\x33\x32","\x65\x32\x31\x38\x66\x34\x35\x31"};
+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 DATARMNET2f67183a86 2000000
@@ -435,39 +431,44 @@ NULL;struct DATARMNETe600c5b727*DATARMNETa4055affd5;u32 DATARMNETe20a9cab2b=
 (0xd2d+202-0xdf7);u32 DATARMNETb481d13a78=(0xd2d+202-0xdf7);u32 
 DATARMNET1fcbf046ec=(0xd2d+202-0xdf7);u8 map=(0xd2d+202-0xdf7),
 DATARMNET0258668025=(0xd2d+202-0xdf7);u16 DATARMNET87636d0152=(0xd2d+202-0xdf7);
-u16 index;if(!DATARMNET63b1a086d5->DATARMNETae4b27456e.head)return;if(!
-DATARMNET63b1a086d5->DATARMNETfbbec4c537){map=DATARMNETecc0627c70.map_mask;
-DATARMNET0258668025=DATARMNETecc0627c70.map_len;index=DATARMNET63b1a086d5->
-map_index;}else{map=DATARMNET63b1a086d5->DATARMNETfbbec4c537;DATARMNET0258668025
-=DATARMNET63b1a086d5->DATARMNETa59ce1fd2d;index=DATARMNET63b1a086d5->map_index;}
-if(map){DATARMNET1fcbf046ec=DATARMNET8532ab3089(index,DATARMNET0258668025,
-DATARMNET63b1a086d5->DATARMNETae4b27456e.head->hash);}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(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.DATARMNETbaa5765693=(0xd2d+202-0xdf7);DATARMNET63b1a086d5
-->DATARMNETae4b27456e.head=NULL;DATARMNET63b1a086d5->DATARMNETae4b27456e.tail=
-NULL;if(DATARMNET63b1a086d5->DATARMNET85c698ec34){DATARMNETa871eeb7e7();
+u16 index;u8 DATARMNET3894230a14=(0xd2d+202-0xdf7);u8 cpu;if(!
+DATARMNET63b1a086d5->DATARMNETae4b27456e.head)return;if(!DATARMNET63b1a086d5->
+DATARMNETfbbec4c537){map=DATARMNETecc0627c70.map_mask;DATARMNET0258668025=
+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,&
+DATARMNETa4055affd5->DATARMNET3dc4262f53);}else{DATARMNET14ed771dfb[
+DATARMNET94658618fc]++;netif_rx(skb);}}}DATARMNET63b1a086d5->DATARMNETae4b27456e
+.DATARMNET6215127f48=(0xd2d+202-0xdf7);DATARMNET63b1a086d5->DATARMNETae4b27456e.
+DATARMNETbaa5765693=(0xd2d+202-0xdf7);DATARMNET63b1a086d5->DATARMNETae4b27456e.
+head=NULL;DATARMNET63b1a086d5->DATARMNETae4b27456e.tail=NULL;if(
+DATARMNET63b1a086d5->DATARMNET85c698ec34){DATARMNETa871eeb7e7();
 DATARMNET63b1a086d5->DATARMNET0371465875=(0xd2d+202-0xdf7);DATARMNETecc0627c70.
 DATARMNETfeee6933fc=(0xd2d+202-0xdf7);DATARMNETecc0627c70.DATARMNET6625085b71=
 DATARMNETecc0627c70.DATARMNET7d667e828e;}DATARMNET52de1f3dc0(DATARMNET4510abc30d
@@ -480,30 +481,31 @@ u32 DATARMNETe20a9cab2b=(0xd2d+202-0xdf7);u32 DATARMNETb481d13a78=
 DATARMNET63b1a086d5->DATARMNETae4b27456e.head)return;map=DATARMNET63b1a086d5->
 DATARMNETfbbec4c537;DATARMNET0258668025=DATARMNET63b1a086d5->DATARMNETa59ce1fd2d
 ;if(map){DATARMNET1fcbf046ec=DATARMNET8532ab3089(DATARMNET63b1a086d5->map_index,
-DATARMNET0258668025,DATARMNET63b1a086d5->DATARMNETae4b27456e.head->hash);}else{
-DATARMNET63b1a086d5->DATARMNET6250e93187=(0xd2d+202-0xdf7);}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(DATARMNET5447204733==DATARMNET0b15fd8b54&&(!
-DATARMNET63b1a086d5->DATARMNET85c698ec34))DATARMNETe767554e6e(skb);else if(
-DATARMNET5447204733==DATARMNET5b5927fd7e&&(!DATARMNET63b1a086d5->
-DATARMNET85c698ec34))DATARMNET514ce0bf59(skb);else{netif_rx(skb);}}
-DATARMNET68d84e7b98[DATARMNET72db8b9bac]++;DATARMNETecc0627c70.
-DATARMNETc252a1f55d-=DATARMNETb481d13a78;DATARMNETecc0627c70.DATARMNETa2e32cdd3a
--=DATARMNETe20a9cab2b;DATARMNET0997c5650d[DATARMNET63b1a086d5->map_cpu].
-DATARMNET4133fc9428-=DATARMNETe20a9cab2b;}int DATARMNETe02152c351(struct 
-DATARMNET63d7680df2*DATARMNET63b1a086d5,u8 DATARMNETd87669e323,u8 
-DATARMNET5447204733){int DATARMNETbd864aa442=(0xd2d+202-0xdf7);int map=
-DATARMNET63b1a086d5->DATARMNETfbbec4c537;int DATARMNET5643f7b5e9;
-DATARMNET52de1f3dc0(DATARMNET4510abc30d,DATARMNET022082b219,DATARMNETd87669e323,
-DATARMNET5447204733,(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),DATARMNET63b1a086d5,
-NULL);if(DATARMNETaef946bb68(DATARMNET63b1a086d5->map_index,map)!=
-DATARMNET63b1a086d5->map_cpu){DATARMNET5643f7b5e9=DATARMNET04e8d1b862(
-DATARMNET63b1a086d5->map_cpu,map);if(DATARMNET5643f7b5e9>=(0xd2d+202-0xdf7)){
-DATARMNET63b1a086d5->map_index=DATARMNET5643f7b5e9;DATARMNET63b1a086d5->map_cpu=
-DATARMNETaef946bb68(DATARMNET5643f7b5e9,map);}else{DATARMNET63b1a086d5->
-map_index=DATARMNET2edff26954;DATARMNET63b1a086d5->map_cpu=DATARMNETaef946bb68(
+DATARMNET0258668025,DATARMNET63b1a086d5->DATARMNETae4b27456e.head->hash,
+(0xd2d+202-0xdf7));}else{DATARMNET63b1a086d5->DATARMNET6250e93187=
+(0xd2d+202-0xdf7);}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(
+DATARMNET5447204733==DATARMNET0b15fd8b54&&(!DATARMNET63b1a086d5->
+DATARMNET85c698ec34))DATARMNETe767554e6e(skb);else if(DATARMNET5447204733==
+DATARMNET5b5927fd7e&&(!DATARMNET63b1a086d5->DATARMNET85c698ec34))
+DATARMNET514ce0bf59(skb);else{netif_rx(skb);}}DATARMNET68d84e7b98[
+DATARMNET72db8b9bac]++;DATARMNETecc0627c70.DATARMNETc252a1f55d-=
+DATARMNETb481d13a78;DATARMNETecc0627c70.DATARMNETa2e32cdd3a-=DATARMNETe20a9cab2b
+;DATARMNET0997c5650d[DATARMNET63b1a086d5->map_cpu].DATARMNET4133fc9428-=
+DATARMNETe20a9cab2b;}int DATARMNETe02152c351(struct DATARMNET63d7680df2*
+DATARMNET63b1a086d5,u8 DATARMNETd87669e323,u8 DATARMNET5447204733){int 
+DATARMNETbd864aa442=(0xd2d+202-0xdf7);int map=DATARMNET63b1a086d5->
+DATARMNETfbbec4c537;int DATARMNET5643f7b5e9;DATARMNET52de1f3dc0(
+DATARMNET4510abc30d,DATARMNET022082b219,DATARMNETd87669e323,DATARMNET5447204733,
+(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),DATARMNET63b1a086d5,NULL);if(
+DATARMNETaef946bb68(DATARMNET63b1a086d5->map_index,map)!=DATARMNET63b1a086d5->
+map_cpu){DATARMNET5643f7b5e9=DATARMNET04e8d1b862(DATARMNET63b1a086d5->map_cpu,
+map);if(DATARMNET5643f7b5e9>=(0xd2d+202-0xdf7)){DATARMNET63b1a086d5->map_index=
+DATARMNET5643f7b5e9;DATARMNET63b1a086d5->map_cpu=DATARMNETaef946bb68(
+DATARMNET5643f7b5e9,map);}else{DATARMNET63b1a086d5->map_index=
+DATARMNET2edff26954;DATARMNET63b1a086d5->map_cpu=DATARMNETaef946bb68(
 DATARMNET2edff26954,map);if(DATARMNET63b1a086d5->map_cpu<(0xd2d+202-0xdf7))
 DATARMNET63b1a086d5->map_cpu=DATARMNET2edff26954;}DATARMNETd87669e323=
 (0xd26+209-0xdf6);DATARMNET68d84e7b98[DATARMNETa1f9420686]++;DATARMNET015fb2ba0e

+ 4 - 0
shs/rmnet_shs_modules.c

@@ -237,4 +237,8 @@ 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 DATARMNET952c960091=(0xd2d+202-0xdf7);module_param(
+DATARMNET952c960091,uint,(0xdb7+6665-0x261c));MODULE_PARM_DESC(
+DATARMNET7e039054c6,
+"\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

@@ -56,6 +56,7 @@ DATARMNET756bdd424a;extern unsigned int DATARMNET58b009b16b __read_mostly;extern
 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 DATARMNET7e039054c6;extern unsigned int DATARMNET952c960091
+;
 #endif
 

+ 21 - 14
shs/rmnet_shs_wq.c

@@ -31,6 +31,8 @@ MODULE_LICENSE("\x47\x50\x4c\x20\x76\x32");
 #define DATARMNETc5db038c35 (0xd26+209-0xdf6)
 #define DATARMNET8853edc997 (0xd11+230-0xdf3)
 #define DATARMNET81ec51f31c (0xef7+637-0x10f5)
+#define DATARMNET69be7dee16 15000
+#define DATARMNETc6f7fb02ea 34000
 #define DATARMNETbe271c415b ((!DATARMNET25c61a512c) ? (0xd1f+216-0xdf5) : \
 DATARMNET25c61a512c)
 #define DATARMNET2f8c32c8eb ((0xd1f+216-0xdf5))
@@ -383,7 +385,8 @@ DATARMNET55fffa9aa9==(0xd2d+202-0xdf7)){DATARMNETcf7ef40ff9->DATARMNET68714ac92c
 DATARMNETcf7ef40ff9->DATARMNET324c1a8f98=(0xd2d+202-0xdf7);DATARMNETcf7ef40ff9->
 DATARMNET253a9fc708=(0xd2d+202-0xdf7);if(DATARMNETc252c204a8){
 DATARMNETc6439e3d71(&DATARMNET6cdd58e74c,DATARMNETcf7ef40ff9,&
-DATARMNETe46ae760db);}DATARMNET33f47350f0(cpu,DATARMNETcf7ef40ff9);return;}
+DATARMNETe46ae760db);}DATARMNET33f47350f0(cpu,DATARMNETcf7ef40ff9);
+DATARMNET0997c5650d[cpu].DATARMNET72067bf727=(0xd2d+202-0xdf7);return;}
 DATARMNET96f21fddc1=DATARMNETb3a4036d6d-DATARMNETcf7ef40ff9->DATARMNET68714ac92c
 ;DATARMNETedf00aed6f=DATARMNETcf7ef40ff9->rx_bytes-DATARMNETcf7ef40ff9->
 DATARMNETde6a309f37;DATARMNET96f21fddc1=(DATARMNET96f21fddc1>DATARMNETac617c8dce
@@ -401,19 +404,23 @@ DATARMNET8233cb4988=DATARMNET8233cb4988;DATARMNETcf7ef40ff9->DATARMNET27c3925eff
 DATARMNETb3a4036d6d;DATARMNETcf7ef40ff9->DATARMNET9853a006ae=DATARMNETcf7ef40ff9
 ->DATARMNET7fc41d655d;DATARMNETcf7ef40ff9->DATARMNETde6a309f37=
 DATARMNETcf7ef40ff9->rx_bytes;DATARMNETcf7ef40ff9->DATARMNETc0b20e240a=
-DATARMNETcf7ef40ff9->DATARMNETbb80fccd97;if(DATARMNETc252c204a8){
-DATARMNETc6439e3d71(&DATARMNET6cdd58e74c,DATARMNETcf7ef40ff9,&
-DATARMNETe46ae760db);}trace_rmnet_shs_wq_high(DATARMNET39a68a0eba,
-DATARMNET95d1ddcb1a,cpu,DATARMNETcf7ef40ff9->flows,DATARMNETcf7ef40ff9->
-DATARMNET324c1a8f98,DATARMNETcf7ef40ff9->DATARMNETbb80fccd97,NULL,NULL);
-DATARMNET33f47350f0(cpu,DATARMNETcf7ef40ff9);}static void DATARMNET617b443145(
-void){u16 cpu;trace_rmnet_shs_wq_high(DATARMNET39a68a0eba,DATARMNET6bde6a5171,
-(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),NULL
-,NULL);for(cpu=(0xd2d+202-0xdf7);cpu<DATARMNETc6782fed88;cpu++)
-DATARMNET73d2153565(cpu);trace_rmnet_shs_wq_high(DATARMNET39a68a0eba,
-DATARMNET5c7c474d94,(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),
-(0x16e8+787-0xc0c),NULL,NULL);}void DATARMNET5b2ed86112(struct 
-DATARMNET6c78e47d24*DATARMNET7b2c1bbf38){struct DATARMNETc8fdbf9c85*
+DATARMNETcf7ef40ff9->DATARMNETbb80fccd97;if(DATARMNET362b15f941(cpu)&&
+DATARMNETcf7ef40ff9->DATARMNET324c1a8f98<DATARMNETc6f7fb02ea&&
+DATARMNETcf7ef40ff9->DATARMNET324c1a8f98>DATARMNET69be7dee16){
+DATARMNET0997c5650d[cpu].DATARMNET72067bf727=(0xd26+209-0xdf6);}else{
+DATARMNET0997c5650d[cpu].DATARMNET72067bf727=(0xd2d+202-0xdf7);}if(
+DATARMNETc252c204a8){DATARMNETc6439e3d71(&DATARMNET6cdd58e74c,
+DATARMNETcf7ef40ff9,&DATARMNETe46ae760db);}trace_rmnet_shs_wq_high(
+DATARMNET39a68a0eba,DATARMNET95d1ddcb1a,cpu,DATARMNETcf7ef40ff9->flows,
+DATARMNETcf7ef40ff9->DATARMNET324c1a8f98,DATARMNETcf7ef40ff9->
+DATARMNETbb80fccd97,NULL,NULL);DATARMNET33f47350f0(cpu,DATARMNETcf7ef40ff9);}
+static void DATARMNET617b443145(void){u16 cpu;trace_rmnet_shs_wq_high(
+DATARMNET39a68a0eba,DATARMNET6bde6a5171,(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),
+(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),NULL,NULL);for(cpu=(0xd2d+202-0xdf7);cpu<
+DATARMNETc6782fed88;cpu++)DATARMNET73d2153565(cpu);trace_rmnet_shs_wq_high(
+DATARMNET39a68a0eba,DATARMNET5c7c474d94,(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),
+(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),NULL,NULL);}void DATARMNET5b2ed86112(
+struct DATARMNET6c78e47d24*DATARMNET7b2c1bbf38){struct DATARMNETc8fdbf9c85*
 DATARMNET3c48cbf7e4=&DATARMNET6cdd58e74c;struct DATARMNET63d7680df2*node_p;u64 
 DATARMNETee9f72f13f,byte_diff;u16 DATARMNET42a992465f;if(!DATARMNET7b2c1bbf38){
 DATARMNET68d84e7b98[DATARMNETac729c3d29]++;return;}node_p=DATARMNET7b2c1bbf38->