Browse Source

Merge 03e9a193ad75e861286e40974e24ab81bd8663b5 on remote branch

Change-Id: Id00d0801bd0226ea7809938bc1fba35573922b6a
Linux Build Service Account 1 year ago
parent
commit
6a6eb0e4f5
7 changed files with 464 additions and 421 deletions
  1. 100 98
      shs/rmnet_shs.h
  2. 161 153
      shs/rmnet_shs_main.c
  3. 68 59
      shs/rmnet_shs_wq.c
  4. 109 91
      wlan/rmnet_wlan_fragment.c
  5. 4 3
      wlan/rmnet_wlan_fragment.h
  6. 10 5
      wlan/rmnet_wlan_genl.c
  7. 12 12
      wlan/rmnet_wlan_main.c

+ 100 - 98
shs/rmnet_shs.h

@@ -83,105 +83,107 @@ DATARMNET34097703c8;u8 DATARMNETfc89d842ae;u8 DATARMNET6fe0db3a49;u8
 DATARMNETba3f7a11ef;u8 map_mask;u8 map_len;u8 DATARMNET5c24e1df05;u8 
 DATARMNET6625085b71;u16 DATARMNETfeee6933fc;u8 DATARMNET7d667e828e;u8 
 DATARMNETe250463eef;ktime_t DATARMNETdd3caf9200;struct wakeup_source*ws;u8 
-DATARMNET2f954f58f8;u8 DATARMNETf510b48c29;u8 DATARMNET637025ccc1;};struct 
-DATARMNETa034b2e60c{struct sk_buff*head;struct sk_buff*tail;u64 
-DATARMNETbaa5765693;u32 DATARMNET6215127f48;u32 DATARMNET35234676d4;};struct 
-DATARMNET63d7680df2{union{struct iphdr DATARMNETac9bbaad7c;struct ipv6hdr 
-DATARMNET1688a97aa4;}ip_hdr;union{struct tcphdr tp;struct udphdr up;}
-DATARMNETe33b41dad9;struct list_head DATARMNET04c88b8191;struct net_device*dev;
-struct DATARMNET6c78e47d24*DATARMNET341ea38662;struct DATARMNETa034b2e60c 
-DATARMNETae4b27456e;struct hlist_node list;u64 DATARMNET11930c5df8;u64 
-DATARMNETa8940e4a7b;u64 DATARMNET2594c418db;u64 DATARMNET3ecedac168;u64 
-DATARMNETce5f56eab9;u32 DATARMNET1743c92e66;u32 queue_head;u32 hash;u32 bif;u32 
-ack_thresh;u16 map_index;u16 map_cpu;u16 DATARMNETfbbec4c537;u16 
-DATARMNETa59ce1fd2d;u8 DATARMNET85c698ec34;u16 DATARMNET0371465875;u16 
-DATARMNET1e9d25d9ff;u8 DATARMNET6250e93187;u8 DATARMNET80eb31d7b8;u8 
-DATARMNETd986107d55;u8 mux_id;};enum DATARMNETa40e71cf32{DATARMNET39a19f2e82,
-DATARMNETbb52958049,DATARMNET46a17e3ec5,DATARMNETfeb864b93d,DATARMNET3503c562cb}
-;enum DATARMNET055bc2777b{DATARMNETf8fcf5a1db,DATARMNET6a801720f2,
-DATARMNET64165df74d,DATARMNETfb9ca677b8};enum DATARMNET156842d55e{
-DATARMNET7bc926fdbe,DATARMNETb3e3b2a799,DATARMNET8dcf06727b};enum 
-DATARMNET8463cba7c7{DATARMNETc3bce05be2,DATARMNET14067f0be4,DATARMNET28bb261646,
-DATARMNET67b67dc88f,DATARMNET0efbbe2821,DATARMNETa4267dfd8a,DATARMNETf13db5ace8,
-DATARMNETb6eae1e097,DATARMNET0e398136dc,DATARMNET975060d6b5,DATARMNET7f401828b3,
-DATARMNET6ea8a58f4e,DATARMNETcf84373518,DATARMNET6bf40b86f6,DATARMNET9f8bd72ee5,
-DATARMNET5eefd5051a,DATARMNET6d1e5ff045,DATARMNETf6458f40e6,DATARMNET438fb7f8f3,
-DATARMNET6fed39da20,DATARMNET706cd2d052,DATARMNETaac8ed4c2d,DATARMNETeccb61ebc3}
-;enum DATARMNETf355367410{DATARMNET557ff68d74,DATARMNET1c55e5fdb1,
-DATARMNET4ab5a31d0c,DATARMNETde2dd86539};enum DATARMNET6c7f7f22c7{
-DATARMNETe35e238437,DATARMNET465c0e5e6d,DATARMNET0d61981934};enum 
-DATARMNET3f3bc61c03{DATARMNETf5157a9b85,DATARMNET709b59b0e6,DATARMNET99db6e7d86,
-DATARMNETe3c02ddaeb,DATARMNET394acaf558,DATARMNETef8cbfa62f,DATARMNETe6e77f9f03,
-DATARMNETecdf13872c,DATARMNETd1687e0776,DATARMNET1828d69e96,DATARMNET40ceff078e,
-DATARMNET42b73d0f3f,DATARMNETb8fe2c0e64,DATARMNET72db8b9bac,DATARMNET33a9d4759f,
-DATARMNET46966e7828,DATARMNETa1f9420686,DATARMNET54b67b8a75,DATARMNETac729c3d29,
-DATARMNET6533f70c87,DATARMNET6f6efeaf61,DATARMNETcc0ef52ccb,DATARMNETf8de7cb644,
-DATARMNETdd6bf3de6b,DATARMNETfeaf903a28,DATARMNET767c76ca08,DATARMNET048727d1d9,
-DATARMNET43405942ed,DATARMNET2e68f4bd9f,DATARMNET0fa3506473,DATARMNETbb641cd339,
-DATARMNETf352684b06,DATARMNET62807647a4,DATARMNET3b5329031b,DATARMNETdfffcec2c8,
-DATARMNETf3110711cb};enum DATARMNET269385986c{DATARMNET5c4c7e20f2,
-DATARMNET95c85e6fe1,DATARMNET27fb9a225d,DATARMNETbbf8fe40aa,DATARMNETa7d45fb6d4,
-DATARMNET0acd775aa8,DATARMNET2217440c2e,DATARMNET6aecae7be2,DATARMNETf3dfa53867,
-DATARMNET0492ddb5d5};enum DATARMNETd751e3ec84{DATARMNETcc3c294f38,
-DATARMNET802083239a,DATARMNETed69052342,DATARMNETcfb1764a91,DATARMNET84a9e136b8,
-DATARMNET01bf75e27c,DATARMNETd45c383019,DATARMNETbb5757569c,DATARMNETc8058e2cff,
-DATARMNET04dac3a62b,DATARMNETdf6ecde77a,DATARMNET94658618fc,DATARMNET0d07041c32,
-DATARMNET3cef75f6cd};struct DATARMNETfd554c7eac{struct sk_buff*skb;struct 
-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;u8 DATARMNET72067bf727;};enum DATARMNETf0a06dc55a{
-DATARMNET1790979ccf,DATARMNETd5eb6398da,DATARMNETcd24fca747,DATARMNETe50d824af7,
-DATARMNET6b317c4c73,DATARMNET75d955c408,DATARMNETf3aaad06eb,DATARMNET720469c0a9,
-DATARMNET4510abc30d,DATARMNET23f8730007,DATARMNETb77d87790d,DATARMNETf783febe14,
-};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,DATARMNETae009376be,
-DATARMNET5994bb1411,DATARMNET623224aa0a,DATARMNET94906cea05,};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 
+DATARMNET2f954f58f8;u8 DATARMNETf510b48c29;u8 DATARMNET637025ccc1;u8 
+DATARMNET75af9f3c31;};struct DATARMNETa034b2e60c{struct sk_buff*head;struct 
+sk_buff*tail;u64 DATARMNETbaa5765693;u32 DATARMNET6215127f48;u32 
+DATARMNET35234676d4;};struct DATARMNET63d7680df2{union{struct iphdr 
+DATARMNETac9bbaad7c;struct ipv6hdr DATARMNET1688a97aa4;}ip_hdr;union{struct 
+tcphdr tp;struct udphdr up;}DATARMNETe33b41dad9;struct list_head 
+DATARMNET04c88b8191;struct net_device*dev;struct DATARMNET6c78e47d24*
+DATARMNET341ea38662;struct DATARMNETa034b2e60c DATARMNETae4b27456e;struct 
+hlist_node list;u64 DATARMNET11930c5df8;u64 DATARMNETa8940e4a7b;u64 
+DATARMNET2594c418db;u64 DATARMNET3ecedac168;u64 DATARMNETce5f56eab9;u32 
+DATARMNET1743c92e66;u32 queue_head;u32 hash;u32 bif;u32 ack_thresh;u16 map_index
+;u16 map_cpu;u16 DATARMNETfbbec4c537;u16 DATARMNETa59ce1fd2d;u8 
+DATARMNET85c698ec34;u16 DATARMNET0371465875;u16 DATARMNET1e9d25d9ff;u8 
+DATARMNET6250e93187;u8 DATARMNET80eb31d7b8;u8 DATARMNETd986107d55;u8 mux_id;};
+enum DATARMNETa40e71cf32{DATARMNET39a19f2e82,DATARMNETbb52958049,
+DATARMNET46a17e3ec5,DATARMNETfeb864b93d,DATARMNET3503c562cb};enum 
+DATARMNET055bc2777b{DATARMNETf8fcf5a1db,DATARMNET6a801720f2,DATARMNET64165df74d,
+DATARMNETfb9ca677b8};enum DATARMNET156842d55e{DATARMNET7bc926fdbe,
+DATARMNETb3e3b2a799,DATARMNET8dcf06727b};enum DATARMNET8463cba7c7{
+DATARMNETc3bce05be2,DATARMNET14067f0be4,DATARMNET28bb261646,DATARMNET67b67dc88f,
+DATARMNET0efbbe2821,DATARMNETa4267dfd8a,DATARMNETf13db5ace8,DATARMNETb6eae1e097,
+DATARMNET0e398136dc,DATARMNET975060d6b5,DATARMNET7f401828b3,DATARMNET6ea8a58f4e,
+DATARMNETcf84373518,DATARMNET6bf40b86f6,DATARMNET9f8bd72ee5,DATARMNET5eefd5051a,
+DATARMNET6d1e5ff045,DATARMNETf6458f40e6,DATARMNET438fb7f8f3,DATARMNET6fed39da20,
+DATARMNET706cd2d052,DATARMNETaac8ed4c2d,DATARMNETeccb61ebc3};enum 
+DATARMNETf355367410{DATARMNET557ff68d74,DATARMNET1c55e5fdb1,DATARMNET4ab5a31d0c,
+DATARMNETde2dd86539};enum DATARMNET6c7f7f22c7{DATARMNETe35e238437,
+DATARMNET465c0e5e6d,DATARMNET0d61981934};enum DATARMNET3f3bc61c03{
+DATARMNETf5157a9b85,DATARMNET709b59b0e6,DATARMNET99db6e7d86,DATARMNETe3c02ddaeb,
+DATARMNET394acaf558,DATARMNETef8cbfa62f,DATARMNETe6e77f9f03,DATARMNETecdf13872c,
+DATARMNETd1687e0776,DATARMNET1828d69e96,DATARMNET40ceff078e,DATARMNET42b73d0f3f,
+DATARMNETb8fe2c0e64,DATARMNET72db8b9bac,DATARMNET33a9d4759f,DATARMNET46966e7828,
+DATARMNETa1f9420686,DATARMNET54b67b8a75,DATARMNETac729c3d29,DATARMNET6533f70c87,
+DATARMNET6f6efeaf61,DATARMNETcc0ef52ccb,DATARMNETf8de7cb644,DATARMNETdd6bf3de6b,
+DATARMNETfeaf903a28,DATARMNET767c76ca08,DATARMNET048727d1d9,DATARMNET43405942ed,
+DATARMNET2e68f4bd9f,DATARMNET0fa3506473,DATARMNETbb641cd339,DATARMNETf352684b06,
+DATARMNET62807647a4,DATARMNET3b5329031b,DATARMNETdfffcec2c8,DATARMNETf3110711cb}
+;enum DATARMNET269385986c{DATARMNET5c4c7e20f2,DATARMNET95c85e6fe1,
+DATARMNET27fb9a225d,DATARMNETbbf8fe40aa,DATARMNETa7d45fb6d4,DATARMNET0acd775aa8,
+DATARMNET2217440c2e,DATARMNET6aecae7be2,DATARMNETf3dfa53867,DATARMNET0492ddb5d5}
+;enum DATARMNETd751e3ec84{DATARMNETcc3c294f38,DATARMNET802083239a,
+DATARMNETed69052342,DATARMNETcfb1764a91,DATARMNET84a9e136b8,DATARMNET01bf75e27c,
+DATARMNETd45c383019,DATARMNETbb5757569c,DATARMNETc8058e2cff,DATARMNET04dac3a62b,
+DATARMNETdf6ecde77a,DATARMNET94658618fc,DATARMNET0d07041c32,DATARMNET3cef75f6cd}
+;struct DATARMNETfd554c7eac{struct sk_buff*skb;struct 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;u8
+ DATARMNET72067bf727;};enum DATARMNETf0a06dc55a{DATARMNET1790979ccf,
+DATARMNETd5eb6398da,DATARMNETcd24fca747,DATARMNETe50d824af7,DATARMNET6b317c4c73,
+DATARMNET75d955c408,DATARMNETf3aaad06eb,DATARMNET720469c0a9,DATARMNET4510abc30d,
+DATARMNET23f8730007,DATARMNETb77d87790d,DATARMNETf783febe14,};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,DATARMNETae009376be,DATARMNET5994bb1411,
+DATARMNET623224aa0a,DATARMNET94906cea05,};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 
 DATARMNETe02152c351(struct DATARMNET63d7680df2*DATARMNET63b1a086d5,u8 
-DATARMNETd87669e323,u8 DATARMNET5447204733);void DATARMNET4684d6c911(struct 
-rmnet_map_pb_ind_hdr*DATARMNET4e61dda775);void DATARMNET78bb6be330(struct 
-rmnet_map_dl_ind_hdr*dlhdr,struct rmnet_map_control_command_header*qcmd);void 
-DATARMNETf61cd23b90(struct rmnet_map_dl_ind_trl*dltrl,struct 
-rmnet_map_control_command_header*qcmd);void DATARMNET7ed4cef8a3(struct 
-rmnet_map_dl_ind_hdr*dlhdr);void DATARMNET613a81eca8(struct rmnet_map_dl_ind_trl
-*dltrl);int DATARMNET756778f14f(struct sk_buff*skb,struct rmnet_shs_clnt_s*
-DATARMNET9e820fbfe3);void DATARMNETa4bf9fbf64(u8 DATARMNET665469cfb6,u8 
-DATARMNET5447204733);void DATARMNETde8ee16f92(struct DATARMNET63d7680df2*
-DATARMNET63b1a086d5);void DATARMNET45d8cdb224(struct net_device*dev,struct 
-net_device*vnd);void DATARMNET9297340f58(unsigned int DATARMNET9f4bc49c6f);void 
-DATARMNET7f1d9480cb(void*port);void DATARMNETa4bd2ef52c(void*port);void 
-DATARMNETe074a09496(void);void DATARMNET23c7ddd780(struct DATARMNET63d7680df2*
-DATARMNET63b1a086d5,u8 DATARMNET5447204733);void DATARMNET349c3a0cab(u16 map_cpu
-,bool DATARMNETb639f6e1b1);void DATARMNETe767554e6e(struct sk_buff*skb);u32 
+DATARMNETd87669e323,u8 DATARMNET5447204733,struct sk_buff**DATARMNETc88d0a6cdd);
+void DATARMNET4684d6c911(struct rmnet_map_pb_ind_hdr*DATARMNET4e61dda775);void 
+DATARMNET78bb6be330(struct rmnet_map_dl_ind_hdr*dlhdr,struct 
+rmnet_map_control_command_header*qcmd);void DATARMNETf61cd23b90(struct 
+rmnet_map_dl_ind_trl*dltrl,struct rmnet_map_control_command_header*qcmd);void 
+DATARMNET7ed4cef8a3(struct rmnet_map_dl_ind_hdr*dlhdr);void DATARMNET613a81eca8(
+struct rmnet_map_dl_ind_trl*dltrl);int DATARMNET756778f14f(struct sk_buff*skb,
+struct rmnet_shs_clnt_s*DATARMNET9e820fbfe3);void DATARMNETa4bf9fbf64(u8 
+DATARMNET665469cfb6,u8 DATARMNET5447204733);void DATARMNETde8ee16f92(struct 
+DATARMNET63d7680df2*DATARMNET63b1a086d5);void DATARMNET45d8cdb224(struct 
+net_device*dev,struct net_device*vnd);void DATARMNET9297340f58(unsigned int 
+DATARMNET9f4bc49c6f);void DATARMNET7f1d9480cb(void*port);void 
+DATARMNETa4bd2ef52c(void*port);void DATARMNETe074a09496(void);void 
+DATARMNET23c7ddd780(struct DATARMNET63d7680df2*DATARMNET63b1a086d5,u8 
+DATARMNET5447204733);void DATARMNET349c3a0cab(u16 map_cpu,bool 
+DATARMNETb639f6e1b1);void DATARMNETe767554e6e(struct sk_buff*skb);u32 
 DATARMNETadb0248bd4(u8 DATARMNET42a992465f);
 #endif 
 

+ 161 - 153
shs/rmnet_shs_main.c

@@ -40,16 +40,17 @@
 #include <linux/cpumask.h>
 #include <linux/icmp.h>
 #include <linux/inet.h>
-static char*verinfo[]={"\x30\x66\x66\x65\x65\x39\x66\x65",
+static char*verinfo[]={"\x37\x66\x63\x32\x33\x39\x31\x66",
+"\x39\x35\x38\x61\x65\x34\x32\x34","\x30\x66\x66\x65\x65\x39\x66\x65",
 "\x32\x31\x30\x33\x65\x39\x38\x62","\x37\x61\x32\x34\x64\x35\x34\x61",
 "\x34\x34\x62\x37\x32\x33\x31\x32","\x62\x66\x61\x30\x39\x34\x62\x35",
 "\x62\x38\x38\x39\x38\x62\x66\x32","\x33\x35\x32\x37\x62\x38\x30\x65",
 "\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"};module_param_array(verinfo,charp,NULL,
-(0xcb7+5769-0x221c));MODULE_PARM_DESC(verinfo,
+"\x36\x35\x35\x37\x37\x63\x32\x32","\x65\x35\x37\x30\x63\x30\x35\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"
 );
 #define DATARMNET2f67183a86 2000000
@@ -425,7 +426,7 @@ DATARMNET63d7680df2,DATARMNET04c88b8191);if(DATARMNET3f85732c70->
 DATARMNETae4b27456e.DATARMNET6215127f48){DATARMNETed7800fc72=DATARMNET3f85732c70
 ->DATARMNETae4b27456e.DATARMNET6215127f48;DATARMNETa0df5de99d=
 DATARMNET3f85732c70->DATARMNETae4b27456e.DATARMNETbaa5765693;DATARMNETe02152c351
-(DATARMNET3f85732c70,DATARMNET6aecae7be2,DATARMNET5b5927fd7e);
+(DATARMNET3f85732c70,DATARMNET6aecae7be2,DATARMNET5b5927fd7e,NULL);
 DATARMNET8bf94cc2f7+=DATARMNETed7800fc72;DATARMNET76192fa639+=
 DATARMNETa0df5de99d;if(DATARMNET3f85732c70->map_cpu==DATARMNET42a992465f){
 DATARMNET61ab18a4bd+=DATARMNETed7800fc72;DATARMNET3f85732c70->queue_head=
@@ -445,58 +446,52 @@ DATARMNET33110a3ff5){struct DATARMNETa6f2d499b2*DATARMNET4b39dc1574=container_of
 (DATARMNET33110a3ff5,struct DATARMNETa6f2d499b2,DATARMNET33110a3ff5);
 DATARMNETfbc06e60f1(DATARMNET4b39dc1574->DATARMNET42c3ecbd5e);
 DATARMNET14ed771dfb[DATARMNETbb5757569c]++;}void DATARMNETcba2f7f7b6(struct 
-DATARMNET63d7680df2*DATARMNET63b1a086d5,u8 DATARMNETf345c1d909){struct sk_buff*
-skb=NULL;struct sk_buff*DATARMNETcebafc57a4=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;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&&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.
-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
-,DATARMNETfb753e521e,DATARMNET63b1a086d5->hash,DATARMNET1fcbf046ec,
-DATARMNETe20a9cab2b,DATARMNETb481d13a78,DATARMNET63b1a086d5,NULL);}void 
-DATARMNET23c7ddd780(struct DATARMNET63d7680df2*DATARMNET63b1a086d5,u8 
-DATARMNET5447204733){struct sk_buff*skb;struct sk_buff*DATARMNETcebafc57a4=NULL;
-u32 DATARMNETe20a9cab2b=(0xd2d+202-0xdf7);u32 DATARMNETb481d13a78=
+DATARMNET63d7680df2*DATARMNET63b1a086d5,u8 DATARMNETf345c1d909,struct sk_buff**
+DATARMNETc88d0a6cdd){struct sk_buff*skb=NULL;struct sk_buff*DATARMNETcebafc57a4=
+NULL;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;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&&
+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)&&!DATARMNET63b1a086d5->DATARMNET85c698ec34
+){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&&
+DATARMNETc88d0a6cdd){if(!*DATARMNETc88d0a6cdd){skb->prev=skb;*
+DATARMNETc88d0a6cdd=skb;}else{(*DATARMNETc88d0a6cdd)->prev->next=skb;(*
+DATARMNETc88d0a6cdd)->prev=skb;}}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;DATARMNET52de1f3dc0(
+DATARMNET4510abc30d,DATARMNETfb753e521e,DATARMNET63b1a086d5->hash,
+DATARMNET1fcbf046ec,DATARMNETe20a9cab2b,DATARMNETb481d13a78,DATARMNET63b1a086d5,
+NULL);}void DATARMNET23c7ddd780(struct DATARMNET63d7680df2*DATARMNET63b1a086d5,
+u8 DATARMNET5447204733){struct sk_buff*skb;struct sk_buff*DATARMNETcebafc57a4=
+NULL;u32 DATARMNETe20a9cab2b=(0xd2d+202-0xdf7);u32 DATARMNETb481d13a78=
 (0xd2d+202-0xdf7);u32 DATARMNET1fcbf046ec;u8 map,DATARMNET0258668025;if(!
 DATARMNET63b1a086d5->DATARMNETae4b27456e.head)return;map=DATARMNET63b1a086d5->
 DATARMNETfbbec4c537;DATARMNET0258668025=DATARMNET63b1a086d5->DATARMNETa59ce1fd2d
@@ -515,28 +510,28 @@ 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(
+DATARMNET63b1a086d5,u8 DATARMNETd87669e323,u8 DATARMNET5447204733,struct sk_buff
+**DATARMNETc88d0a6cdd){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
 (DATARMNET720469c0a9,DATARMNET998c6de143,(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),
 (0x16e8+787-0xc0c),(0x16e8+787-0xc0c),NULL,NULL);}if(DATARMNETe488c1c396(
 DATARMNET63b1a086d5,DATARMNETd87669e323,DATARMNET5447204733)){
-DATARMNETcba2f7f7b6(DATARMNET63b1a086d5,DATARMNET5447204733);DATARMNETbd864aa442
-=(0xd26+209-0xdf6);}DATARMNET52de1f3dc0(DATARMNET4510abc30d,DATARMNET64b02f64c6,
-DATARMNETbd864aa442,DATARMNETd87669e323,(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),
-DATARMNET63b1a086d5,NULL);return DATARMNETbd864aa442;}static void 
-DATARMNETc54e431bbc(u8 DATARMNET42a992465f,u8 DATARMNET7845d39672,u32 
+DATARMNETcba2f7f7b6(DATARMNET63b1a086d5,DATARMNET5447204733,DATARMNETc88d0a6cdd)
+;DATARMNETbd864aa442=(0xd26+209-0xdf6);}DATARMNET52de1f3dc0(DATARMNET4510abc30d,
+DATARMNET64b02f64c6,DATARMNETbd864aa442,DATARMNETd87669e323,(0x16e8+787-0xc0c),
+(0x16e8+787-0xc0c),DATARMNET63b1a086d5,NULL);return DATARMNETbd864aa442;}static 
+void DATARMNETc54e431bbc(u8 DATARMNET42a992465f,u8 DATARMNET7845d39672,u32 
 DATARMNETea08087fc0){u32 DATARMNETba6017a3a9=(!DATARMNET227d2ff866)?
 (0xd26+209-0xdf6):DATARMNET227d2ff866;int DATARMNETd9d8392917;if((
 DATARMNETd9d8392917=DATARMNET2af09ccd0b(DATARMNET42a992465f,DATARMNET7845d39672,
@@ -551,34 +546,38 @@ DATARMNETba5ea4329f(DATARMNET42a992465f));hrtimer_start(&DATARMNETba5ea4329f(
 DATARMNET42a992465f),ns_to_ktime(DATARMNETba6017a3a9*DATARMNET68fc0be252),
 HRTIMER_MODE_REL);DATARMNETb7ddf3c5dd[DATARMNETd9d8392917]++;}}void 
 DATARMNETe377e0368d(u8 DATARMNETded3da1a77,u8 DATARMNET5447204733){struct 
-DATARMNET63d7680df2*DATARMNET3f85732c70=NULL;struct list_head*
-DATARMNET7b34b7b5be=NULL,*next=NULL;int DATARMNET42a992465f;u32 
+DATARMNET63d7680df2*DATARMNET3f85732c70=NULL;struct DATARMNET63d7680df2*
+DATARMNETbb236c7d08=NULL;struct list_head*DATARMNET7b34b7b5be=NULL,*next=NULL;
+struct sk_buff*DATARMNETc88d0a6cdd=NULL;int DATARMNET42a992465f;u32 
 DATARMNET61ab18a4bd;u32 DATARMNETed7800fc72=(0xd2d+202-0xdf7);u32 
 DATARMNETa0df5de99d=(0xd2d+202-0xdf7);u32 DATARMNETe56f4fbbe6=(0xd2d+202-0xdf7);
 u32 DATARMNET8bf94cc2f7=(0xd2d+202-0xdf7);u32 DATARMNET76192fa639=
 (0xd2d+202-0xdf7);u32 DATARMNET870611bedd=(0xd2d+202-0xdf7);u32 
 DATARMNETa6424e3c4e=(0xd2d+202-0xdf7);u8 DATARMNET77e7f4db43=(0xd2d+202-0xdf7);
-DATARMNETe074a09496();DATARMNET52de1f3dc0(DATARMNET4510abc30d,
-DATARMNETde91850c28,DATARMNETecc0627c70.DATARMNETa2e32cdd3a,DATARMNETecc0627c70.
-DATARMNETc252a1f55d,(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),NULL,NULL);for(
-DATARMNET42a992465f=(0xd2d+202-0xdf7);DATARMNET42a992465f<DATARMNETc6782fed88;
-DATARMNET42a992465f++){DATARMNET61ab18a4bd=DATARMNETeb3978575d(
-DATARMNET42a992465f);DATARMNET870611bedd=(0xd2d+202-0xdf7);DATARMNETe56f4fbbe6=
-(0xd2d+202-0xdf7);list_for_each_safe(DATARMNET7b34b7b5be,next,&
+struct sk_buff*skb=NULL;struct sk_buff*DATARMNETcebafc57a4=NULL;struct 
+DATARMNETe600c5b727*DATARMNETa4055affd5=NULL;DATARMNETe074a09496();
+DATARMNET52de1f3dc0(DATARMNET4510abc30d,DATARMNETde91850c28,DATARMNETecc0627c70.
+DATARMNETa2e32cdd3a,DATARMNETecc0627c70.DATARMNETc252a1f55d,(0x16e8+787-0xc0c),
+(0x16e8+787-0xc0c),NULL,NULL);for(DATARMNET42a992465f=(0xd2d+202-0xdf7);
+DATARMNET42a992465f<DATARMNETc6782fed88;DATARMNET42a992465f++){
+DATARMNET61ab18a4bd=DATARMNETeb3978575d(DATARMNET42a992465f);DATARMNET870611bedd
+=(0xd2d+202-0xdf7);DATARMNETe56f4fbbe6=(0xd2d+202-0xdf7);list_for_each_safe(
+DATARMNET7b34b7b5be,next,&DATARMNET0997c5650d[DATARMNET42a992465f].
+DATARMNET3dc4262f53){DATARMNET3f85732c70=list_entry(DATARMNET7b34b7b5be,struct 
+DATARMNET63d7680df2,DATARMNET04c88b8191);DATARMNETe56f4fbbe6+=
+DATARMNET3f85732c70->DATARMNETae4b27456e.DATARMNET35234676d4;}if(
+DATARMNET12565c8f98){DATARMNETc54e431bbc(DATARMNET42a992465f,DATARMNET20dc6bb36b
+,DATARMNETe56f4fbbe6);}list_for_each_safe(DATARMNET7b34b7b5be,next,&
 DATARMNET0997c5650d[DATARMNET42a992465f].DATARMNET3dc4262f53){
 DATARMNET3f85732c70=list_entry(DATARMNET7b34b7b5be,struct DATARMNET63d7680df2,
-DATARMNET04c88b8191);DATARMNETe56f4fbbe6+=DATARMNET3f85732c70->
-DATARMNETae4b27456e.DATARMNET35234676d4;}if(DATARMNET12565c8f98){
-DATARMNETc54e431bbc(DATARMNET42a992465f,DATARMNET20dc6bb36b,DATARMNETe56f4fbbe6)
-;}list_for_each_safe(DATARMNET7b34b7b5be,next,&DATARMNET0997c5650d[
-DATARMNET42a992465f].DATARMNET3dc4262f53){DATARMNET3f85732c70=list_entry(
-DATARMNET7b34b7b5be,struct DATARMNET63d7680df2,DATARMNET04c88b8191);if(
-DATARMNET3f85732c70->DATARMNETae4b27456e.DATARMNET6215127f48){
-DATARMNETed7800fc72=DATARMNET3f85732c70->DATARMNETae4b27456e.DATARMNET6215127f48
-;DATARMNETa0df5de99d=DATARMNET3f85732c70->DATARMNETae4b27456e.
-DATARMNETbaa5765693;DATARMNETa6424e3c4e=DATARMNET3f85732c70->DATARMNETae4b27456e
-.DATARMNET35234676d4;DATARMNET77e7f4db43=DATARMNETe02152c351(DATARMNET3f85732c70
-,DATARMNETded3da1a77,DATARMNET5447204733);if(DATARMNET77e7f4db43){
+DATARMNET04c88b8191);if(DATARMNET3f85732c70->DATARMNETae4b27456e.
+DATARMNET6215127f48){if(DATARMNET3f85732c70->DATARMNET85c698ec34)
+DATARMNETbb236c7d08=DATARMNET3f85732c70;DATARMNETed7800fc72=DATARMNET3f85732c70
+->DATARMNETae4b27456e.DATARMNET6215127f48;DATARMNETa0df5de99d=
+DATARMNET3f85732c70->DATARMNETae4b27456e.DATARMNETbaa5765693;DATARMNETa6424e3c4e
+=DATARMNET3f85732c70->DATARMNETae4b27456e.DATARMNET35234676d4;
+DATARMNET77e7f4db43=DATARMNETe02152c351(DATARMNET3f85732c70,DATARMNETded3da1a77,
+DATARMNET5447204733,&DATARMNETc88d0a6cdd);if(DATARMNET77e7f4db43){
 DATARMNET870611bedd+=DATARMNETa6424e3c4e;DATARMNET8bf94cc2f7+=
 DATARMNETed7800fc72;DATARMNET76192fa639+=DATARMNETa0df5de99d;DATARMNET0997c5650d
 [DATARMNET3f85732c70->map_cpu].DATARMNET4133fc9428-=DATARMNETed7800fc72;
@@ -594,28 +593,36 @@ DATARMNET68d84e7b98[DATARMNET33a9d4759f]++;if(DATARMNETeea3cef5b6(
 DATARMNET42a992465f)>=DATARMNET84413d1257[DATARMNET42a992465f])
 DATARMNET84413d1257[DATARMNET42a992465f]=DATARMNETeea3cef5b6(DATARMNET42a992465f
 );}DATARMNETecc0627c70.DATARMNETc252a1f55d-=DATARMNET76192fa639;
-DATARMNETecc0627c70.DATARMNETa2e32cdd3a-=DATARMNET8bf94cc2f7;DATARMNET52de1f3dc0
-(DATARMNET4510abc30d,DATARMNET576793621a,DATARMNETecc0627c70.DATARMNETa2e32cdd3a
-,DATARMNETecc0627c70.DATARMNETc252a1f55d,DATARMNET8bf94cc2f7,DATARMNET76192fa639
-,NULL,NULL);if((DATARMNETecc0627c70.DATARMNETc252a1f55d<=(0xd2d+202-0xdf7))||(
+DATARMNETecc0627c70.DATARMNETa2e32cdd3a-=DATARMNET8bf94cc2f7;if(
+DATARMNETc88d0a6cdd&&DATARMNETbb236c7d08){DATARMNETa4055affd5=&
+DATARMNET0997c5650d[DATARMNETbb236c7d08->map_cpu];DATARMNETecc0627c70.
+DATARMNET75af9f3c31=(0xd26+209-0xdf6);spin_unlock_bh(&DATARMNET3764d083f0);
+DATARMNETbb236c7d08->DATARMNET0371465875=(0xd2d+202-0xdf7);for((skb=
+DATARMNETc88d0a6cdd);skb!=NULL;skb=DATARMNETcebafc57a4){DATARMNETcebafc57a4=skb
+->next;skb->next=NULL;DATARMNETde8ee16f92(DATARMNETbb236c7d08);rmnet_rx_handler(
+&skb);DATARMNET3e37ad2816(DATARMNETbb236c7d08,&DATARMNETa4055affd5->
+DATARMNET3dc4262f53);}spin_lock_bh(&DATARMNET3764d083f0);DATARMNETa871eeb7e7();
+DATARMNETecc0627c70.DATARMNET75af9f3c31=(0xd2d+202-0xdf7);DATARMNETecc0627c70.
+DATARMNETfeee6933fc=(0xd2d+202-0xdf7);DATARMNETecc0627c70.DATARMNET6625085b71=
+DATARMNETecc0627c70.DATARMNET7d667e828e;}DATARMNET52de1f3dc0(DATARMNET4510abc30d
+,DATARMNET576793621a,DATARMNETecc0627c70.DATARMNETa2e32cdd3a,DATARMNETecc0627c70
+.DATARMNETc252a1f55d,DATARMNET8bf94cc2f7,DATARMNET76192fa639,NULL,NULL);if((
+DATARMNETecc0627c70.DATARMNETc252a1f55d<=(0xd2d+202-0xdf7))||(
 DATARMNETecc0627c70.DATARMNETa2e32cdd3a<=(0xd2d+202-0xdf7))){DATARMNETecc0627c70
 .DATARMNETc252a1f55d=(0xd2d+202-0xdf7);DATARMNETecc0627c70.DATARMNETa2e32cdd3a=
 (0xd2d+202-0xdf7);DATARMNETecc0627c70.DATARMNETd9cfd2812b=(0xd2d+202-0xdf7);
-DATARMNETecc0627c70.DATARMNET34097703c8=DATARMNET8dcf06727b;if(
-DATARMNET365ddeca1c){if(hrtimer_active(&DATARMNETecc0627c70.DATARMNET6fd692fc7a)
-)hrtimer_cancel(&DATARMNETecc0627c70.DATARMNET6fd692fc7a);}}}void 
+DATARMNETecc0627c70.DATARMNET34097703c8=DATARMNET8dcf06727b;}}void 
 DATARMNETa4bf9fbf64(u8 DATARMNETded3da1a77,u8 DATARMNET5447204733){spin_lock_bh(
 &DATARMNET3764d083f0);DATARMNETe377e0368d(DATARMNETded3da1a77,
-DATARMNET5447204733);if(DATARMNET5447204733==DATARMNET5b5927fd7e){if(
-DATARMNET365ddeca1c&&DATARMNETecc0627c70.DATARMNETc252a1f55d&&
-DATARMNETecc0627c70.DATARMNETa2e32cdd3a){if(hrtimer_active(&DATARMNETecc0627c70.
-DATARMNET6fd692fc7a))hrtimer_cancel(&DATARMNETecc0627c70.DATARMNET6fd692fc7a);
-hrtimer_start(&DATARMNETecc0627c70.DATARMNET6fd692fc7a,ns_to_ktime(
-DATARMNET4ac8af832c*DATARMNET68fc0be252),HRTIMER_MODE_REL);}DATARMNET14ed771dfb[
-DATARMNETd45c383019]++;}spin_unlock_bh(&DATARMNET3764d083f0);}void 
-DATARMNET495dab3d72(struct sk_buff*skb,struct DATARMNET63d7680df2*
-DATARMNET63b1a086d5,struct rmnet_shs_clnt_s*DATARMNET0bf01e7c6f){u8 
-DATARMNET7d63e92341=(0xd2d+202-0xdf7);
+DATARMNET5447204733);spin_unlock_bh(&DATARMNET3764d083f0);if(DATARMNET5447204733
+==DATARMNET5b5927fd7e){if(DATARMNET365ddeca1c&&DATARMNETecc0627c70.
+DATARMNETc252a1f55d&&DATARMNETecc0627c70.DATARMNETa2e32cdd3a){if(hrtimer_active(
+&DATARMNETecc0627c70.DATARMNET6fd692fc7a))hrtimer_cancel(&DATARMNETecc0627c70.
+DATARMNET6fd692fc7a);hrtimer_start(&DATARMNETecc0627c70.DATARMNET6fd692fc7a,
+ns_to_ktime(DATARMNET4ac8af832c*DATARMNET68fc0be252),HRTIMER_MODE_REL);}
+DATARMNET14ed771dfb[DATARMNETd45c383019]++;}}void DATARMNET495dab3d72(struct 
+sk_buff*skb,struct DATARMNET63d7680df2*DATARMNET63b1a086d5,struct 
+rmnet_shs_clnt_s*DATARMNET0bf01e7c6f){u8 DATARMNET7d63e92341=(0xd2d+202-0xdf7);
 #ifdef DATARMNETdddae6afa8
 if(!(DATARMNET0bf01e7c6f->config&DATARMNET2a76d433b3)&&skb->cb[
 DATARMNET8fadb49f38]){DATARMNETe377e0368d((0xd2d+202-0xdf7),DATARMNET0b15fd8b54)
@@ -828,19 +835,19 @@ DATARMNETcfb5dc7296;int map_cpu;u32 DATARMNET5c4a331b9c,hash;u8 is_match_found=
 DATARMNET7c5ef97eab=(0xd2d+202-0xdf7);struct DATARMNETe600c5b727*
 DATARMNETa4055affd5;struct rmnet_priv*priv;u8 DATARMNET5b3782c91e=
 (0xd2d+202-0xdf7);struct DATARMNET177911299b DATARMNET9f249e95ee;int 
-DATARMNETd0bfb31db5=(0xd2d+202-0xdf7);if(!(DATARMNET0bf01e7c6f->config&
-RMNET_SHS_STMP_ALL)&&!DATARMNET9303cec796(skb,&DATARMNET5b3782c91e)){if(
-DATARMNET5b3782c91e){DATARMNETe767554e6e(skb);DATARMNET8d0d510d45(
-DATARMNETafc650134e,&DATARMNET9f249e95ee);DATARMNETb5d58adbe7(&
-DATARMNET9f249e95ee);}else{DATARMNETe767554e6e(skb);}return(0xd2d+202-0xdf7);}if
-((unlikely(!map))||!DATARMNETecc0627c70.DATARMNETfc89d842ae){DATARMNETe767554e6e
-(skb);DATARMNET015fb2ba0e(DATARMNET720469c0a9,DATARMNETe0fee0991a,
-(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),NULL
-,NULL);DATARMNET68d84e7b98[DATARMNETe3c02ddaeb]++;return(0xd2d+202-0xdf7);}
-DATARMNET52de1f3dc0(DATARMNET720469c0a9,DATARMNET856c53293b,(0x16e8+787-0xc0c),
-(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),skb,NULL);hash=
-skb_get_hash(skb);if(DATARMNET0bf01e7c6f->map_mask){skb->hash=57005;hash=57005;
-if(raw_smp_processor_id()==DATARMNETecc0627c70.DATARMNET6625085b71&&
+DATARMNETd0bfb31db5=(0xd2d+202-0xdf7);u8 DATARMNETd07e717728=(0xd2d+202-0xdf7);
+if(!(DATARMNET0bf01e7c6f->config&RMNET_SHS_STMP_ALL)&&!DATARMNET9303cec796(skb,&
+DATARMNET5b3782c91e)){if(DATARMNET5b3782c91e){DATARMNETe767554e6e(skb);
+DATARMNET8d0d510d45(DATARMNETafc650134e,&DATARMNET9f249e95ee);
+DATARMNETb5d58adbe7(&DATARMNET9f249e95ee);}else{DATARMNETe767554e6e(skb);}return
+(0xd2d+202-0xdf7);}if((unlikely(!map))||!DATARMNETecc0627c70.DATARMNETfc89d842ae
+){DATARMNETe767554e6e(skb);DATARMNET015fb2ba0e(DATARMNET720469c0a9,
+DATARMNETe0fee0991a,(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),
+(0x16e8+787-0xc0c),NULL,NULL);DATARMNET68d84e7b98[DATARMNETe3c02ddaeb]++;return
+(0xd2d+202-0xdf7);}DATARMNET52de1f3dc0(DATARMNET720469c0a9,DATARMNET856c53293b,
+(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),skb,
+NULL);hash=skb_get_hash(skb);if(DATARMNET0bf01e7c6f->map_mask){skb->hash=57005;
+hash=57005;if(raw_smp_processor_id()==DATARMNETecc0627c70.DATARMNET6625085b71&&
 DATARMNETecc0627c70.DATARMNET6625085b71!=DATARMNETecc0627c70.DATARMNET7d667e828e
 ){netif_rx(skb);DATARMNETecc0627c70.DATARMNETfeee6933fc++;if(DATARMNETecc0627c70
 .DATARMNETfeee6933fc>DATARMNETf4cacbb5dc){DATARMNETa4bf9fbf64(
@@ -896,9 +903,9 @@ DATARMNET04c88b8191);DATARMNET44459105b4(skb,node_p);DATARMNET350f55bfca(node_p)
 DATARMNET64bb8a8f57);kfree(node_p);break;}if(DATARMNET0bf01e7c6f->map_mask){
 DATARMNETe074a09496();DATARMNET02fc8b29a0(node_p,DATARMNET0bf01e7c6f,skb->dev);}
 else{node_p->DATARMNETfbbec4c537=DATARMNETecc0627c70.map_mask;node_p->
-DATARMNETa59ce1fd2d=DATARMNETecc0627c70.map_len;}DATARMNET0349051465(node_p->
-map_cpu);map_cpu=node_p->map_cpu;DATARMNETa4055affd5=&DATARMNET0997c5650d[
-map_cpu];priv=netdev_priv(node_p->dev);if(!priv){rm_err(
+DATARMNETa59ce1fd2d=DATARMNETecc0627c70.map_len;}map_cpu=node_p->map_cpu;
+DATARMNETa4055affd5=&DATARMNET0997c5650d[map_cpu];priv=netdev_priv(node_p->dev);
+if(!priv){rm_err(
 "\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(
@@ -917,28 +924,29 @@ DATARMNET720469c0a9,DATARMNETe0fee0991a,(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),
 (0x16e8+787-0xc0c),(0x16e8+787-0xc0c),NULL,NULL);return(0xd2d+202-0xdf7);}if(!
 DATARMNETecc0627c70.DATARMNETd9cfd2812b&&DATARMNETecc0627c70.DATARMNETa2e32cdd3a
 &&DATARMNET365ddeca1c){DATARMNETecc0627c70.DATARMNETd9cfd2812b=(0xd26+209-0xdf6)
-;DATARMNETecc0627c70.DATARMNET34097703c8=DATARMNET7bc926fdbe;if(hrtimer_active(&
-DATARMNETecc0627c70.DATARMNET6fd692fc7a)){DATARMNETda96251102(
-DATARMNET720469c0a9,DATARMNETf730f80f06,DATARMNET2f67183a86,(0x16e8+787-0xc0c),
-(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),skb,NULL);hrtimer_cancel(&
-DATARMNETecc0627c70.DATARMNET6fd692fc7a);}hrtimer_start(&DATARMNETecc0627c70.
-DATARMNET6fd692fc7a,ns_to_ktime(DATARMNET4ac8af832c*DATARMNET68fc0be252),
-HRTIMER_MODE_REL);DATARMNETda96251102(DATARMNET720469c0a9,DATARMNETdd870ee64c,
-DATARMNET2f67183a86,(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),skb
-,NULL);}spin_unlock_bh(&DATARMNET3764d083f0);if(DATARMNETecc0627c70.
-DATARMNETa2e32cdd3a>DATARMNET7d18c0bcf8){if(DATARMNET58b009b16b)
-DATARMNET14ed771dfb[DATARMNET802083239a]++;DATARMNET52de1f3dc0(
-DATARMNET4510abc30d,DATARMNET562b7d32a8,(0xd2d+202-0xdf7),(0x16e8+787-0xc0c),
-(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),NULL,NULL);DATARMNETa4bf9fbf64(
-DATARMNET0acd775aa8,DATARMNET0b15fd8b54);}else if(DATARMNETecc0627c70.
-DATARMNETc252a1f55d>DATARMNETea75c7b6f6){if(DATARMNET58b009b16b)
-DATARMNET14ed771dfb[DATARMNETed69052342]++;DATARMNET52de1f3dc0(
-DATARMNET4510abc30d,DATARMNET99640d60f7,(0xd2d+202-0xdf7),(0x16e8+787-0xc0c),
-(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),NULL,NULL);DATARMNETa4bf9fbf64(
-DATARMNET2217440c2e,DATARMNET0b15fd8b54);}else if(DATARMNET7c5ef97eab){
-DATARMNET52de1f3dc0(DATARMNET4510abc30d,DATARMNET562b7d32a8,(0xd26+209-0xdf6),
-DATARMNETecc0627c70.DATARMNETa2e32cdd3a,(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),
-NULL,NULL);if(DATARMNET58b009b16b)DATARMNET14ed771dfb[DATARMNETdf6ecde77a]++;
+;DATARMNETecc0627c70.DATARMNET34097703c8=DATARMNET7bc926fdbe;DATARMNETd07e717728
+=(0xd26+209-0xdf6);}spin_unlock_bh(&DATARMNET3764d083f0);if(DATARMNETd07e717728)
+{if(hrtimer_active(&DATARMNETecc0627c70.DATARMNET6fd692fc7a)){
+DATARMNETda96251102(DATARMNET720469c0a9,DATARMNETf730f80f06,DATARMNET2f67183a86,
+(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),skb,NULL);
+hrtimer_cancel(&DATARMNETecc0627c70.DATARMNET6fd692fc7a);}hrtimer_start(&
+DATARMNETecc0627c70.DATARMNET6fd692fc7a,ns_to_ktime(DATARMNET4ac8af832c*
+DATARMNET68fc0be252),HRTIMER_MODE_REL);DATARMNETda96251102(DATARMNET720469c0a9,
+DATARMNETdd870ee64c,DATARMNET2f67183a86,(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),
+(0x16e8+787-0xc0c),skb,NULL);}if(DATARMNETecc0627c70.DATARMNETa2e32cdd3a>
+DATARMNET7d18c0bcf8){if(DATARMNET58b009b16b)DATARMNET14ed771dfb[
+DATARMNET802083239a]++;DATARMNET52de1f3dc0(DATARMNET4510abc30d,
+DATARMNET562b7d32a8,(0xd2d+202-0xdf7),(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),
+(0x16e8+787-0xc0c),NULL,NULL);DATARMNETa4bf9fbf64(DATARMNET0acd775aa8,
+DATARMNET0b15fd8b54);}else if(DATARMNETecc0627c70.DATARMNETc252a1f55d>
+DATARMNETea75c7b6f6){if(DATARMNET58b009b16b)DATARMNET14ed771dfb[
+DATARMNETed69052342]++;DATARMNET52de1f3dc0(DATARMNET4510abc30d,
+DATARMNET99640d60f7,(0xd2d+202-0xdf7),(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),
+(0x16e8+787-0xc0c),NULL,NULL);DATARMNETa4bf9fbf64(DATARMNET2217440c2e,
+DATARMNET0b15fd8b54);}else if(DATARMNET7c5ef97eab){DATARMNET52de1f3dc0(
+DATARMNET4510abc30d,DATARMNET562b7d32a8,(0xd26+209-0xdf6),DATARMNETecc0627c70.
+DATARMNETa2e32cdd3a,(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),NULL,NULL);if(
+DATARMNET58b009b16b)DATARMNET14ed771dfb[DATARMNETdf6ecde77a]++;
 DATARMNETa4bf9fbf64(DATARMNET7c5ef97eab,DATARMNET0b15fd8b54);}else if((
 DATARMNET0bf01e7c6f->config&RMNET_SHS_NO_DLMKR)&&DATARMNETecc0627c70.
 DATARMNETa2e32cdd3a){if(DATARMNET58b009b16b)DATARMNET14ed771dfb[
@@ -968,10 +976,10 @@ DATARMNET756778f14f);rmnet_module_hook_register(&DATARMNET28a9685974,
 (0xd26+209-0xdf6));}void DATARMNET9297340f58(unsigned int DATARMNET9f4bc49c6f){
 DATARMNETdf74db7e38();DATARMNET90fe3a4b56();DATARMNETecc0627c70.
 DATARMNET9c869c1ec2=(0xd2d+202-0xdf7);unregister_oom_notifier(&
-DATARMNET105c85d84c);wakeup_source_unregister(DATARMNETecc0627c70.ws);if(
-DATARMNETecc0627c70.DATARMNETf5ab31b9b0)hrtimer_cancel(&DATARMNETecc0627c70.
-DATARMNET6fd692fc7a);hrtimer_cancel(&DATARMNETecc0627c70.DATARMNET645fb3b468);
-hrtimer_cancel(&DATARMNETecc0627c70.hrtimer_wake);memset(&DATARMNETecc0627c70,
+DATARMNET105c85d84c);if(DATARMNETecc0627c70.DATARMNETf5ab31b9b0)hrtimer_cancel(&
+DATARMNETecc0627c70.DATARMNET6fd692fc7a);hrtimer_cancel(&DATARMNETecc0627c70.
+DATARMNET645fb3b468);hrtimer_cancel(&DATARMNETecc0627c70.hrtimer_wake);
+wakeup_source_unregister(DATARMNETecc0627c70.ws);memset(&DATARMNETecc0627c70,
 (0xd2d+202-0xdf7),sizeof(DATARMNETecc0627c70));DATARMNETecc0627c70.port=NULL;
 DATARMNETecc0627c70.DATARMNETfc89d842ae=(0xd2d+202-0xdf7);DATARMNET12565c8f98=
 DATARMNET9f4bc49c6f;}

+ 68 - 59
shs/rmnet_shs_wq.c

@@ -459,15 +459,8 @@ DATARMNET42a992465f>=DATARMNETc6782fed88){DATARMNET68d84e7b98[
 DATARMNET709b59b0e6]++;return;}DATARMNETee9f72f13f=DATARMNET7b2c1bbf38->
 DATARMNET4b4a76b094-DATARMNET7b2c1bbf38->DATARMNET6edbc8b649;byte_diff=
 DATARMNET7b2c1bbf38->rx_bytes-DATARMNET7b2c1bbf38->DATARMNETde6a309f37;if(
-DATARMNET7b2c1bbf38->DATARMNET8a4e1d5aaa){DATARMNETd8a6375e9c(
-DATARMNET7b2c1bbf38,&DATARMNET3c48cbf7e4->DATARMNET73464778dc[
-DATARMNET42a992465f].DATARMNETab5c1e9ad5);rm_err(
-"\x53\x48\x53\x5f\x46\x4c\x4f\x57\x3a\x20\x61\x64\x64\x69\x6e\x67\x20\x66\x6c\x6f\x77\x20\x30\x78\x25\x78\x20\x6f\x6e\x20\x63\x70\x75\x5b\x25\x64\x5d\x20"
-"\x70\x70\x73\x3a\x20\x25\x6c\x6c\x75\x20\x7c\x20\x61\x76\x67\x5f\x70\x70\x73\x20\x25\x6c\x6c\x75"
-,DATARMNET7b2c1bbf38->hash,DATARMNET7b2c1bbf38->DATARMNET7c894c2f8f,
-DATARMNET7b2c1bbf38->DATARMNET324c1a8f98,DATARMNET7b2c1bbf38->
-DATARMNET253a9fc708);DATARMNET7b2c1bbf38->DATARMNET8a4e1d5aaa=(0xd2d+202-0xdf7);
-}if(DATARMNET42a992465f!=DATARMNET7b2c1bbf38->DATARMNET7c894c2f8f){rm_err(
+DATARMNET42a992465f!=DATARMNET7b2c1bbf38->DATARMNET7c894c2f8f&&!
+DATARMNET7b2c1bbf38->DATARMNET8a4e1d5aaa){rm_err(
 "\x53\x48\x53\x5f\x46\x4c\x4f\x57\x3a\x20\x6d\x6f\x76\x69\x6e\x67\x20\x66\x6c\x6f\x77\x20\x30\x78\x25\x78\x20\x6f\x6e\x20\x63\x70\x75\x5b\x25\x64\x5d\x20\x74\x6f\x20\x63\x70\x75\x5b\x25\x64\x5d\x20"
 "\x70\x70\x73\x3a\x20\x25\x6c\x6c\x75\x20\x7c\x20\x61\x76\x67\x5f\x70\x70\x73\x20\x25\x6c\x6c\x75"
 ,DATARMNET7b2c1bbf38->hash,DATARMNET7b2c1bbf38->DATARMNET7c894c2f8f,
@@ -479,35 +472,44 @@ NULL);DATARMNET9914e9761e(DATARMNET7b2c1bbf38,&DATARMNET3c48cbf7e4->
 DATARMNET73464778dc[DATARMNET42a992465f].DATARMNETab5c1e9ad5);
 DATARMNET0349051465(DATARMNET42a992465f);DATARMNET3669e7b703(DATARMNET7b2c1bbf38
 ->DATARMNET7c894c2f8f);DATARMNET7b2c1bbf38->DATARMNET7c894c2f8f=
-DATARMNET42a992465f;}DATARMNET3c48cbf7e4->DATARMNET73464778dc[
-DATARMNET42a992465f].DATARMNET7fc41d655d+=DATARMNETee9f72f13f;
-DATARMNET3c48cbf7e4->DATARMNET73464778dc[DATARMNET42a992465f].rx_bytes+=
-byte_diff;DATARMNET3c48cbf7e4->DATARMNET7fc41d655d+=DATARMNETee9f72f13f;
-DATARMNET3c48cbf7e4->rx_bytes+=byte_diff;}void DATARMNETdfb8ee742f(u16 
-DATARMNET035f475d5c,u16 DATARMNETcfb5dc7296,struct DATARMNET9b44b71ee9*ep){
-struct DATARMNET63d7680df2*node_p;struct DATARMNET6c78e47d24*DATARMNET7b2c1bbf38
-;struct hlist_node*tmp;u16 bkt;spin_lock_bh(&DATARMNET3764d083f0);
-hash_for_each_safe(DATARMNETe603c3a4b3,bkt,tmp,node_p,list){if(!node_p)continue;
-if(!node_p->DATARMNET341ea38662)continue;DATARMNET7b2c1bbf38=node_p->
-DATARMNET341ea38662;if((DATARMNET7b2c1bbf38->DATARMNET6e1a4eaf09==
-DATARMNET035f475d5c)&&(node_p->dev==ep->ep)){trace_rmnet_shs_wq_high(
-DATARMNET394831f22a,DATARMNET45edcec1e4,DATARMNET7b2c1bbf38->hash,
-DATARMNET7b2c1bbf38->DATARMNET6e1a4eaf09,DATARMNETcfb5dc7296,(0x16e8+787-0xc0c),
-DATARMNET7b2c1bbf38,NULL);node_p->DATARMNET341ea38662->DATARMNET6e1a4eaf09=
-DATARMNETcfb5dc7296;}}spin_unlock_bh(&DATARMNET3764d083f0);}static void 
-DATARMNETc2de347e4d(u32 DATARMNETa3f89581b5,struct DATARMNET6c78e47d24*
-DATARMNET7b2c1bbf38){if(DATARMNETa3f89581b5>=DATARMNET3563036124||
-DATARMNET7b2c1bbf38==NULL)return;DATARMNET7b2c1bbf38->DATARMNET61e1ee0e95[
-DATARMNETa3f89581b5]+=(0xd26+209-0xdf6);}static int DATARMNET6f56fe7597(u16 
-DATARMNET035f475d5c,u16 DATARMNETcfb5dc7296,struct DATARMNET9b44b71ee9*ep,u32 
-DATARMNET4da4612f1e,u32 DATARMNETa3f89581b5){struct DATARMNET63d7680df2*node_p;
-struct DATARMNET6c78e47d24*DATARMNET7b2c1bbf38;struct hlist_node*tmp;int rc=
-(0xd2d+202-0xdf7);u16 bkt;if(!ep){DATARMNET68d84e7b98[DATARMNETb8fe2c0e64]++;
-return(0xd2d+202-0xdf7);}if(DATARMNET035f475d5c>=DATARMNETc6782fed88||
-DATARMNETcfb5dc7296>=DATARMNETc6782fed88){DATARMNET68d84e7b98[
-DATARMNET54b67b8a75]++;return(0xd2d+202-0xdf7);}spin_lock_bh(&
-DATARMNET3764d083f0);hash_for_each_safe(DATARMNETe603c3a4b3,bkt,tmp,node_p,list)
-{if(!node_p)continue;if(!node_p->DATARMNET341ea38662)continue;
+DATARMNET42a992465f;}else if(DATARMNET7b2c1bbf38->DATARMNET8a4e1d5aaa){
+DATARMNET0349051465(DATARMNET42a992465f);DATARMNETd8a6375e9c(DATARMNET7b2c1bbf38
+,&DATARMNET3c48cbf7e4->DATARMNET73464778dc[DATARMNET42a992465f].
+DATARMNETab5c1e9ad5);rm_err(
+"\x53\x48\x53\x5f\x46\x4c\x4f\x57\x3a\x20\x61\x64\x64\x69\x6e\x67\x20\x66\x6c\x6f\x77\x20\x30\x78\x25\x78\x20\x6f\x6e\x20\x63\x70\x75\x5b\x25\x64\x5d\x20"
+"\x70\x70\x73\x3a\x20\x25\x6c\x6c\x75\x20\x7c\x20\x61\x76\x67\x5f\x70\x70\x73\x20\x25\x6c\x6c\x75"
+,DATARMNET7b2c1bbf38->hash,DATARMNET7b2c1bbf38->DATARMNET7c894c2f8f,
+DATARMNET7b2c1bbf38->DATARMNET324c1a8f98,DATARMNET7b2c1bbf38->
+DATARMNET253a9fc708);DATARMNET7b2c1bbf38->DATARMNET8a4e1d5aaa=(0xd2d+202-0xdf7);
+DATARMNET7b2c1bbf38->DATARMNET7c894c2f8f=DATARMNET42a992465f;}
+DATARMNET3c48cbf7e4->DATARMNET73464778dc[DATARMNET42a992465f].
+DATARMNET7fc41d655d+=DATARMNETee9f72f13f;DATARMNET3c48cbf7e4->
+DATARMNET73464778dc[DATARMNET42a992465f].rx_bytes+=byte_diff;DATARMNET3c48cbf7e4
+->DATARMNET7fc41d655d+=DATARMNETee9f72f13f;DATARMNET3c48cbf7e4->rx_bytes+=
+byte_diff;}void DATARMNETdfb8ee742f(u16 DATARMNET035f475d5c,u16 
+DATARMNETcfb5dc7296,struct DATARMNET9b44b71ee9*ep){struct DATARMNET63d7680df2*
+node_p;struct DATARMNET6c78e47d24*DATARMNET7b2c1bbf38;struct hlist_node*tmp;u16 
+bkt;spin_lock_bh(&DATARMNET3764d083f0);hash_for_each_safe(DATARMNETe603c3a4b3,
+bkt,tmp,node_p,list){if(!node_p)continue;if(!node_p->DATARMNET341ea38662)
+continue;DATARMNET7b2c1bbf38=node_p->DATARMNET341ea38662;if((DATARMNET7b2c1bbf38
+->DATARMNET6e1a4eaf09==DATARMNET035f475d5c)&&(node_p->dev==ep->ep)){
+trace_rmnet_shs_wq_high(DATARMNET394831f22a,DATARMNET45edcec1e4,
+DATARMNET7b2c1bbf38->hash,DATARMNET7b2c1bbf38->DATARMNET6e1a4eaf09,
+DATARMNETcfb5dc7296,(0x16e8+787-0xc0c),DATARMNET7b2c1bbf38,NULL);node_p->
+DATARMNET341ea38662->DATARMNET6e1a4eaf09=DATARMNETcfb5dc7296;}}spin_unlock_bh(&
+DATARMNET3764d083f0);}static void DATARMNETc2de347e4d(u32 DATARMNETa3f89581b5,
+struct DATARMNET6c78e47d24*DATARMNET7b2c1bbf38){if(DATARMNETa3f89581b5>=
+DATARMNET3563036124||DATARMNET7b2c1bbf38==NULL)return;DATARMNET7b2c1bbf38->
+DATARMNET61e1ee0e95[DATARMNETa3f89581b5]+=(0xd26+209-0xdf6);}static int 
+DATARMNET6f56fe7597(u16 DATARMNET035f475d5c,u16 DATARMNETcfb5dc7296,struct 
+DATARMNET9b44b71ee9*ep,u32 DATARMNET4da4612f1e,u32 DATARMNETa3f89581b5){struct 
+DATARMNET63d7680df2*node_p;struct DATARMNET6c78e47d24*DATARMNET7b2c1bbf38;struct
+ hlist_node*tmp;int rc=(0xd2d+202-0xdf7);u16 bkt;if(!ep){DATARMNET68d84e7b98[
+DATARMNETb8fe2c0e64]++;return(0xd2d+202-0xdf7);}if(DATARMNET035f475d5c>=
+DATARMNETc6782fed88||DATARMNETcfb5dc7296>=DATARMNETc6782fed88){
+DATARMNET68d84e7b98[DATARMNET54b67b8a75]++;return(0xd2d+202-0xdf7);}spin_lock_bh
+(&DATARMNET3764d083f0);hash_for_each_safe(DATARMNETe603c3a4b3,bkt,tmp,node_p,
+list){if(!node_p)continue;if(!node_p->DATARMNET341ea38662)continue;
 DATARMNET7b2c1bbf38=node_p->DATARMNET341ea38662;if(DATARMNET4da4612f1e!=
 (0xd2d+202-0xdf7)){if(DATARMNET7b2c1bbf38->hash!=DATARMNET4da4612f1e)continue;}
 rm_err(
@@ -777,31 +779,36 @@ list_head*DATARMNET7b34b7b5be=NULL,*next=NULL;rcu_read_lock();spin_lock_bh(&
 DATARMNET3764d083f0);list_for_each_safe(DATARMNET7b34b7b5be,next,&
 DATARMNET9825511866){DATARMNETd2a694d52a=list_entry(DATARMNET7b34b7b5be,struct 
 DATARMNET6c78e47d24,DATARMNET6de26f0feb);if(DATARMNETd2a694d52a->
-DATARMNET63b1a086d5==NULL)continue;node_p=DATARMNETd2a694d52a->
-DATARMNET63b1a086d5;DATARMNETf48008e7b6=DATARMNET36cfa76181(DATARMNETd2a694d52a
-->DATARMNET42ceaf5cc2);if((DATARMNET1154e4fac6(DATARMNETf48008e7b6,
-DATARMNETecc0627c70.DATARMNET64bb8a8f57)&&((node_p->DATARMNET85c698ec34&&!
-rcu_dereference(rmnet_shs_switch))||!node_p->DATARMNET85c698ec34))||
-DATARMNETcd94e0d3c7){trace_rmnet_shs_wq_low(DATARMNET394831f22a,
-DATARMNET5e2c5adaae,node_p->hash,DATARMNETf48008e7b6,(0x16e8+787-0xc0c),
-(0x16e8+787-0xc0c),node_p,DATARMNETd2a694d52a);DATARMNET23c7ddd780(node_p,
-DATARMNET5b5927fd7e);DATARMNET3669e7b703(DATARMNETd2a694d52a->
-DATARMNET7c894c2f8f);if(node_p){if(node_p->DATARMNET80eb31d7b8){spin_lock_bh(&
-DATARMNETd83ee17944);DATARMNETde8ee16f92(node_p);hash_del_rcu(&node_p->list);
-kfree(node_p);spin_unlock_bh(&DATARMNETd83ee17944);}else{DATARMNETde8ee16f92(
-node_p);hash_del_rcu(&node_p->list);kfree(node_p);}}rm_err(
+DATARMNET63b1a086d5==NULL)continue;if(DATARMNETecc0627c70.DATARMNET75af9f3c31&&!
+DATARMNETcd94e0d3c7)continue;node_p=DATARMNETd2a694d52a->DATARMNET63b1a086d5;
+DATARMNETf48008e7b6=DATARMNET36cfa76181(DATARMNETd2a694d52a->DATARMNET42ceaf5cc2
+);if((DATARMNET1154e4fac6(DATARMNETf48008e7b6,DATARMNETecc0627c70.
+DATARMNET64bb8a8f57)&&((node_p->DATARMNET85c698ec34&&!rcu_dereference(
+rmnet_shs_switch))||!node_p->DATARMNET85c698ec34))||DATARMNETcd94e0d3c7){
+trace_rmnet_shs_wq_low(DATARMNET394831f22a,DATARMNET5e2c5adaae,node_p->hash,
+DATARMNETf48008e7b6,(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),node_p,
+DATARMNETd2a694d52a);DATARMNET23c7ddd780(node_p,DATARMNET5b5927fd7e);
+DATARMNET3669e7b703(DATARMNETd2a694d52a->DATARMNET7c894c2f8f);if(node_p){if(
+node_p->DATARMNET80eb31d7b8){spin_lock_bh(&DATARMNETd83ee17944);
+DATARMNETde8ee16f92(node_p);hash_del_rcu(&node_p->list);node_p->
+DATARMNET04c88b8191.next=NULL;node_p->DATARMNET04c88b8191.prev=NULL;kfree(node_p
+);spin_unlock_bh(&DATARMNETd83ee17944);}else{DATARMNETde8ee16f92(node_p);
+hash_del_rcu(&node_p->list);node_p->DATARMNET04c88b8191.next=NULL;node_p->
+DATARMNET04c88b8191.prev=NULL;kfree(node_p);}}rm_err(
 "\x53\x48\x53\x5f\x46\x4c\x4f\x57\x3a\x20\x72\x65\x6d\x6f\x76\x69\x6e\x67\x20\x66\x6c\x6f\x77\x20\x30\x78\x25\x78\x20\x6f\x6e\x20\x63\x70\x75\x5b\x25\x64\x5d\x20"
 "\x70\x70\x73\x3a\x20\x25\x6c\x6c\x75\x20\x61\x76\x67\x5f\x70\x70\x73\x3a\x20\x25\x6c\x6c\x75"
 ,DATARMNETd2a694d52a->hash,DATARMNETd2a694d52a->DATARMNET7c894c2f8f,
 DATARMNETd2a694d52a->DATARMNET324c1a8f98,DATARMNETd2a694d52a->
 DATARMNET253a9fc708);DATARMNETb4a6870b3b(DATARMNETd2a694d52a);if(
 DATARMNETd2a694d52a->DATARMNET0bfc2b2c85==(0xd2d+202-0xdf7)||DATARMNETcd94e0d3c7
-){DATARMNET2fe780019f(DATARMNETd2a694d52a);kfree(DATARMNETd2a694d52a);}else{
-DATARMNETa6e92c3315(DATARMNETd2a694d52a);}atomic_long_dec(&DATARMNETecc0627c70.
-DATARMNET64bb8a8f57);}}spin_unlock_bh(&DATARMNET3764d083f0);rcu_read_unlock();}
-void DATARMNETe69c918dc8(struct DATARMNET9b44b71ee9*ep){struct rps_map*map;u8 
-len=(0xd2d+202-0xdf7);if(!ep||!ep->ep){DATARMNET68d84e7b98[DATARMNETb8fe2c0e64]
-++;return;}rcu_read_lock();if(!ep->ep){pr_info(
+){DATARMNET2fe780019f(DATARMNETd2a694d52a);DATARMNETd2a694d52a->
+DATARMNET6de26f0feb.next=NULL;DATARMNETd2a694d52a->DATARMNET6de26f0feb.prev=NULL
+;kfree(DATARMNETd2a694d52a);}else{DATARMNETa6e92c3315(DATARMNETd2a694d52a);}
+atomic_long_dec(&DATARMNETecc0627c70.DATARMNET64bb8a8f57);}}spin_unlock_bh(&
+DATARMNET3764d083f0);rcu_read_unlock();}void DATARMNETe69c918dc8(struct 
+DATARMNET9b44b71ee9*ep){struct rps_map*map;u8 len=(0xd2d+202-0xdf7);if(!ep||!ep
+->ep){DATARMNET68d84e7b98[DATARMNETb8fe2c0e64]++;return;}rcu_read_lock();if(!ep
+->ep){pr_info(
 "\x20\x72\x6d\x6e\x65\x74\x5f\x73\x68\x73\x20\x69\x6e\x76\x61\x6c\x69\x64\x20\x73\x74\x61\x74\x65\x20\x25\x70"
 ,ep->ep);DATARMNET68d84e7b98[DATARMNETb8fe2c0e64]++;return;}map=rcu_dereference(
 ep->ep->_rx->rps_map);ep->DATARMNET9fb369ce5f=(0xd2d+202-0xdf7);if(map!=NULL){
@@ -813,7 +820,8 @@ net_device*dev){struct DATARMNET9b44b71ee9*ep=NULL;struct DATARMNET9b44b71ee9*
 tmp=NULL;if(!dev){DATARMNET68d84e7b98[DATARMNETf5157a9b85]++;return;}
 spin_lock_bh(&DATARMNETec2a4f5211);list_for_each_entry_safe(ep,tmp,&
 DATARMNET30a3e83974,DATARMNET0763436b8d){if(ep->ep==dev){ep->DATARMNET4a4e6f66b5
-=(0xd2d+202-0xdf7);DATARMNETf7d317ed55(ep);kfree(ep);break;}}spin_unlock_bh(&
+=(0xd2d+202-0xdf7);DATARMNETf7d317ed55(ep);ep->DATARMNET0763436b8d.next=NULL;ep
+->DATARMNET0763436b8d.prev=NULL;kfree(ep);break;}}spin_unlock_bh(&
 DATARMNETec2a4f5211);}void DATARMNET7492293980(struct net_device*dev){struct 
 DATARMNET9b44b71ee9*ep=NULL;if(!dev){DATARMNET68d84e7b98[DATARMNETf5157a9b85]++;
 return;}spin_lock_bh(&DATARMNETec2a4f5211);ep=kzalloc(sizeof(*ep),GFP_ATOMIC);if
@@ -885,7 +893,8 @@ DATARMNET9b44b71ee9*ep=NULL;struct list_head*DATARMNET7b34b7b5be=NULL,*next=NULL
 (DATARMNET7b34b7b5be,struct DATARMNET9b44b71ee9,DATARMNET0763436b8d);
 trace_rmnet_shs_wq_high(DATARMNET5e796836fb,DATARMNET1ee5d0565d,
 (0x16e8+787-0xc0c),(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),ep,
-NULL);DATARMNETf7d317ed55(ep);kfree(ep);}}void DATARMNETf7dcab9a9e(void){if(!
+NULL);DATARMNETf7d317ed55(ep);ep->DATARMNET0763436b8d.next=NULL;ep->
+DATARMNET0763436b8d.prev=NULL;kfree(ep);}}void DATARMNETf7dcab9a9e(void){if(!
 DATARMNETf141197982||!DATARMNET9dc7755be5)return;DATARMNET28d33bd09f();
 DATARMNET5945236cd3(DATARMNET19092afcc2);trace_rmnet_shs_wq_high(
 DATARMNETc1e19aa345,DATARMNET7cf840e991,(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),

+ 109 - 91
wlan/rmnet_wlan_fragment.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 fragment handler framework
  *
@@ -14,65 +14,72 @@
 #include <linux/list.h>
 #include <linux/rculist.h>
 #include <linux/hashtable.h>
-#include <linux/hrtimer.h>
+#include <linux/workqueue.h>
 #include "rmnet_wlan.h"
 #include "rmnet_wlan_stats.h"
 #include "rmnet_wlan_fragment.h"
 #define DATARMNET598d70a086 ((0xeb7+1158-0x132d))
 #define DATARMNETeaee3af609 (const_ilog2(DATARMNET598d70a086))
-#define DATARMNET63a285d479 (110000000)
-#define DATARMNETb7cc384fbe (10000000)
+#define DATARMNET63a285d479 ((0xeb7+698-0x110d))
+#define DATARMNETdbb408ba5d ((0xef7+1112-0x131d))
 struct DATARMNETdadb4e2c65{union{__be32 DATARMNETdfe430c2d6;struct in6_addr 
 DATARMNET815cbb4bf5;};union{__be32 DATARMNET2cb607d686;struct in6_addr 
 DATARMNETc3f31215b7;};__be32 id;u16 DATARMNET611d08d671;u16 DATARMNETb65c469a15;
 u8 DATARMNET0d956cc77a;};struct DATARMNET6f3b954709{struct hlist_node 
 DATARMNETe8608dd267;spinlock_t DATARMNET94b1f9ee09;struct list_head 
-DATARMNET0f34bf3ea9;struct rcu_head DATARMNET28bfe9e6ad;struct hrtimer 
-DATARMNET9f31ce5d2d;struct DATARMNETdadb4e2c65 DATARMNET54338da2ff;struct 
-DATARMNET8d3c2559ca*DATARMNET7ed5754a5c;};static DEFINE_SPINLOCK(
-DATARMNET531b038fcd);static DEFINE_HASHTABLE(DATARMNET6e79f38051,
-DATARMNETeaee3af609);static int DATARMNET24669a931d(const struct sk_buff*
-DATARMNET543491eb0f,unsigned int*DATARMNETb65c469a15,int DATARMNETbfd7eb99fe,
-unsigned short*DATARMNET0823b5e89c,int*DATARMNETfb0677cc3c){unsigned int 
-DATARMNETab6f68a65c=skb_network_offset(DATARMNET543491eb0f)+sizeof(struct 
-ipv6hdr);u8 nexthdr=ipv6_hdr(DATARMNET543491eb0f)->nexthdr;bool 
-DATARMNET1034358542;if(DATARMNET0823b5e89c)*DATARMNET0823b5e89c=
-(0xd2d+202-0xdf7);if(*DATARMNETb65c469a15){struct ipv6hdr DATARMNET982faca395,*
-DATARMNETc46d75f0b8;DATARMNETc46d75f0b8=skb_header_pointer(DATARMNET543491eb0f,*
-DATARMNETb65c469a15,sizeof(DATARMNET982faca395),&DATARMNET982faca395);if(!
-DATARMNETc46d75f0b8||(DATARMNETc46d75f0b8->version!=(0xd03+244-0xdf1)))return-
-EBADMSG;DATARMNETab6f68a65c=*DATARMNETb65c469a15+sizeof(struct ipv6hdr);nexthdr=
-DATARMNETc46d75f0b8->nexthdr;}do{struct ipv6_opt_hdr DATARMNETb18a0d17a5,*
-DATARMNET7c56b76ea0;unsigned int DATARMNET4593c3f2c2;DATARMNET1034358542=(
-nexthdr==DATARMNETbfd7eb99fe);if((!ipv6_ext_hdr(nexthdr))||nexthdr==NEXTHDR_NONE
-){if(DATARMNETbfd7eb99fe<(0xd2d+202-0xdf7)||DATARMNET1034358542)break;return-
-ENOENT;}DATARMNET7c56b76ea0=skb_header_pointer(DATARMNET543491eb0f,
-DATARMNETab6f68a65c,sizeof(DATARMNETb18a0d17a5),&DATARMNETb18a0d17a5);if(!
-DATARMNET7c56b76ea0)return-EBADMSG;if(nexthdr==NEXTHDR_ROUTING){struct 
-ipv6_rt_hdr DATARMNET942c8f7153,*DATARMNETb2650cb3cb;DATARMNETb2650cb3cb=
+DATARMNET0f34bf3ea9;struct rcu_head DATARMNET28bfe9e6ad;struct 
+DATARMNETdadb4e2c65 DATARMNET54338da2ff;struct DATARMNET8d3c2559ca*
+DATARMNET7ed5754a5c;unsigned long DATARMNET763f2e5fac;bool DATARMNET1717afebc7;}
+;struct DATARMNET2f26f1d597{struct delayed_work DATARMNET190b4452e8;bool 
+DATARMNETcd94e0d3c7;};static DEFINE_SPINLOCK(DATARMNET531b038fcd);static 
+DEFINE_HASHTABLE(DATARMNET6e79f38051,DATARMNETeaee3af609);static u64 
+DATARMNETdef6cfba1c;static struct DATARMNET2f26f1d597 DATARMNETa41953a37b;static
+ int DATARMNET24669a931d(const struct sk_buff*DATARMNET543491eb0f,unsigned int*
+DATARMNETb65c469a15,int DATARMNETbfd7eb99fe,unsigned short*DATARMNET0823b5e89c,
+int*DATARMNETfb0677cc3c){unsigned int DATARMNETab6f68a65c=skb_network_offset(
+DATARMNET543491eb0f)+sizeof(struct ipv6hdr);u8 nexthdr=ipv6_hdr(
+DATARMNET543491eb0f)->nexthdr;bool DATARMNET1034358542;if(DATARMNET0823b5e89c)*
+DATARMNET0823b5e89c=(0xd2d+202-0xdf7);if(*DATARMNETb65c469a15){struct ipv6hdr 
+DATARMNET982faca395,*DATARMNETc46d75f0b8;DATARMNETc46d75f0b8=skb_header_pointer(
+DATARMNET543491eb0f,*DATARMNETb65c469a15,sizeof(DATARMNET982faca395),&
+DATARMNET982faca395);if(!DATARMNETc46d75f0b8||(DATARMNETc46d75f0b8->version!=
+(0xd03+244-0xdf1)))return-EBADMSG;DATARMNETab6f68a65c=*DATARMNETb65c469a15+
+sizeof(struct ipv6hdr);nexthdr=DATARMNETc46d75f0b8->nexthdr;}do{struct 
+ipv6_opt_hdr DATARMNETb18a0d17a5,*DATARMNET7c56b76ea0;unsigned int 
+DATARMNET4593c3f2c2;DATARMNET1034358542=(nexthdr==DATARMNETbfd7eb99fe);if((!
+ipv6_ext_hdr(nexthdr))||nexthdr==NEXTHDR_NONE){if(DATARMNETbfd7eb99fe<
+(0xd2d+202-0xdf7)||DATARMNET1034358542)break;return-ENOENT;}DATARMNET7c56b76ea0=
 skb_header_pointer(DATARMNET543491eb0f,DATARMNETab6f68a65c,sizeof(
-DATARMNET942c8f7153),&DATARMNET942c8f7153);if(!DATARMNETb2650cb3cb)return-
-EBADMSG;if(DATARMNETfb0677cc3c&&(*DATARMNETfb0677cc3c&IP6_FH_F_SKIP_RH)&&
-DATARMNETb2650cb3cb->segments_left==(0xd2d+202-0xdf7))DATARMNET1034358542=false;
-}if(nexthdr==NEXTHDR_FRAGMENT){unsigned short DATARMNET3ed4d6b164;__be16*
-DATARMNET748d4c9015;if(DATARMNETfb0677cc3c)*DATARMNETfb0677cc3c|=IP6_FH_F_FRAG;
-DATARMNET748d4c9015=skb_header_pointer(DATARMNET543491eb0f,DATARMNETab6f68a65c+
-offsetof(struct frag_hdr,frag_off),sizeof(DATARMNET3ed4d6b164),&
-DATARMNET3ed4d6b164);if(!DATARMNET748d4c9015)return-EBADMSG;DATARMNET3ed4d6b164=
-ntohs(*DATARMNET748d4c9015)&~(0xcfc+267-0xe00);if(DATARMNET3ed4d6b164){if(
-DATARMNETbfd7eb99fe<(0xd2d+202-0xdf7)&&((!ipv6_ext_hdr(DATARMNET7c56b76ea0->
-nexthdr))||DATARMNET7c56b76ea0->nexthdr==NEXTHDR_NONE)){if(DATARMNET0823b5e89c)*
-DATARMNET0823b5e89c=DATARMNET3ed4d6b164;return DATARMNET7c56b76ea0->nexthdr;}if(
-!DATARMNET1034358542)return-ENOENT;if(DATARMNET0823b5e89c)*DATARMNET0823b5e89c=
-DATARMNET3ed4d6b164;break;}DATARMNET4593c3f2c2=(0xd35+210-0xdff);}else if(
-nexthdr==NEXTHDR_AUTH){if(DATARMNETfb0677cc3c&&(*DATARMNETfb0677cc3c&
-IP6_FH_F_AUTH)&&(DATARMNETbfd7eb99fe<(0xd2d+202-0xdf7)))break;
-DATARMNET4593c3f2c2=ipv6_authlen(DATARMNET7c56b76ea0);}else DATARMNET4593c3f2c2=
-ipv6_optlen(DATARMNET7c56b76ea0);if(!DATARMNET1034358542){nexthdr=
-DATARMNET7c56b76ea0->nexthdr;DATARMNETab6f68a65c+=DATARMNET4593c3f2c2;}}while(!
-DATARMNET1034358542);*DATARMNETb65c469a15=DATARMNETab6f68a65c;return nexthdr;}
-static void DATARMNETc7c83f614f(struct DATARMNET6f3b954709*DATARMNET63b1a086d5,
-bool DATARMNET7a9bcaf1a3){struct DATARMNET8d3c2559ca*DATARMNET54338da2ff;int(*
+DATARMNETb18a0d17a5),&DATARMNETb18a0d17a5);if(!DATARMNET7c56b76ea0)return-
+EBADMSG;if(nexthdr==NEXTHDR_ROUTING){struct ipv6_rt_hdr DATARMNET942c8f7153,*
+DATARMNETb2650cb3cb;DATARMNETb2650cb3cb=skb_header_pointer(DATARMNET543491eb0f,
+DATARMNETab6f68a65c,sizeof(DATARMNET942c8f7153),&DATARMNET942c8f7153);if(!
+DATARMNETb2650cb3cb)return-EBADMSG;if(DATARMNETfb0677cc3c&&(*DATARMNETfb0677cc3c
+&IP6_FH_F_SKIP_RH)&&DATARMNETb2650cb3cb->segments_left==(0xd2d+202-0xdf7))
+DATARMNET1034358542=false;}if(nexthdr==NEXTHDR_FRAGMENT){unsigned short 
+DATARMNET3ed4d6b164;__be16*DATARMNET748d4c9015;if(DATARMNETfb0677cc3c)*
+DATARMNETfb0677cc3c|=IP6_FH_F_FRAG;DATARMNET748d4c9015=skb_header_pointer(
+DATARMNET543491eb0f,DATARMNETab6f68a65c+offsetof(struct frag_hdr,frag_off),
+sizeof(DATARMNET3ed4d6b164),&DATARMNET3ed4d6b164);if(!DATARMNET748d4c9015)return
+-EBADMSG;DATARMNET3ed4d6b164=ntohs(*DATARMNET748d4c9015)&~(0xcfc+267-0xe00);if(
+DATARMNET3ed4d6b164){if(DATARMNETbfd7eb99fe<(0xd2d+202-0xdf7)&&((!ipv6_ext_hdr(
+DATARMNET7c56b76ea0->nexthdr))||DATARMNET7c56b76ea0->nexthdr==NEXTHDR_NONE)){if(
+DATARMNET0823b5e89c)*DATARMNET0823b5e89c=DATARMNET3ed4d6b164;return 
+DATARMNET7c56b76ea0->nexthdr;}if(!DATARMNET1034358542)return-ENOENT;if(
+DATARMNET0823b5e89c)*DATARMNET0823b5e89c=DATARMNET3ed4d6b164;break;}
+DATARMNET4593c3f2c2=(0xd35+210-0xdff);}else if(nexthdr==NEXTHDR_AUTH){if(
+DATARMNETfb0677cc3c&&(*DATARMNETfb0677cc3c&IP6_FH_F_AUTH)&&(DATARMNETbfd7eb99fe<
+(0xd2d+202-0xdf7)))break;DATARMNET4593c3f2c2=ipv6_authlen(DATARMNET7c56b76ea0);}
+else DATARMNET4593c3f2c2=ipv6_optlen(DATARMNET7c56b76ea0);if(!
+DATARMNET1034358542){nexthdr=DATARMNET7c56b76ea0->nexthdr;DATARMNETab6f68a65c+=
+DATARMNET4593c3f2c2;}}while(!DATARMNET1034358542);*DATARMNETb65c469a15=
+DATARMNETab6f68a65c;return nexthdr;}static bool DATARMNET1bb071d045(struct 
+DATARMNET6f3b954709*DATARMNET63b1a086d5,unsigned long DATARMNET763f2e5fac){
+unsigned long DATARMNETc2d5c71ce1;DATARMNETc2d5c71ce1=msecs_to_jiffies(
+DATARMNET63a285d479);if(DATARMNET763f2e5fac-DATARMNET63b1a086d5->
+DATARMNET763f2e5fac>DATARMNETc2d5c71ce1)return true;return false;}static void 
+DATARMNETc7c83f614f(struct DATARMNET6f3b954709*DATARMNET63b1a086d5,bool 
+DATARMNET7a9bcaf1a3){struct DATARMNET8d3c2559ca*DATARMNET54338da2ff;int(*
 DATARMNET456ac0e8eb)(struct sk_buff*DATARMNET543491eb0f);struct sk_buff*
 DATARMNET543491eb0f,*DATARMNET0386f6f82a;unsigned long DATARMNETfb0677cc3c;
 DATARMNET456ac0e8eb=(DATARMNET7a9bcaf1a3)?netif_receive_skb:netif_rx;
@@ -87,16 +94,28 @@ DATARMNET54338da2ff)){DATARMNET248f120dd5=DATARMNETba232077da;
 DATARMNET456ac0e8eb(DATARMNET543491eb0f);}else{DATARMNET248f120dd5=
 DATARMNET7a58a5c1fc;}DATARMNET5ca94dbc3c(DATARMNET248f120dd5);}
 spin_unlock_irqrestore(&DATARMNET63b1a086d5->DATARMNET94b1f9ee09,
-DATARMNETfb0677cc3c);}static enum hrtimer_restart DATARMNETef43eced5f(struct 
-hrtimer*DATARMNET6e4292679f){struct DATARMNET6f3b954709*DATARMNET63b1a086d5;
-unsigned long DATARMNETfb0677cc3c;spin_lock_irqsave(&DATARMNET531b038fcd,
-DATARMNETfb0677cc3c);DATARMNET63b1a086d5=container_of(DATARMNET6e4292679f,struct
- DATARMNET6f3b954709,DATARMNET9f31ce5d2d);hash_del_rcu(&DATARMNET63b1a086d5->
-DATARMNETe8608dd267);DATARMNETc7c83f614f(DATARMNET63b1a086d5,false);kfree_rcu(
-DATARMNET63b1a086d5,DATARMNET28bfe9e6ad);spin_unlock_irqrestore(&
-DATARMNET531b038fcd,DATARMNETfb0677cc3c);DATARMNET5ca94dbc3c(DATARMNETd691057b85
-);return HRTIMER_NORESTART;}static bool DATARMNETc529ac78b2(struct 
-DATARMNETdadb4e2c65*DATARMNET75decd6f60,struct DATARMNETdadb4e2c65*
+DATARMNETfb0677cc3c);}static bool DATARMNETb636687df3(bool DATARMNETe78ad140cc){
+struct DATARMNET6f3b954709*DATARMNET63b1a086d5;struct hlist_node*
+DATARMNET0386f6f82a;unsigned long DATARMNET763f2e5fac;int DATARMNET5c2fd31d7b;
+DATARMNET763f2e5fac=jiffies;hash_for_each_safe(DATARMNET6e79f38051,
+DATARMNET5c2fd31d7b,DATARMNET0386f6f82a,DATARMNET63b1a086d5,DATARMNETe8608dd267)
+{if(DATARMNET63b1a086d5->DATARMNET1717afebc7)continue;if(DATARMNETe78ad140cc||
+DATARMNET1bb071d045(DATARMNET63b1a086d5,DATARMNET763f2e5fac)){
+DATARMNET63b1a086d5->DATARMNET1717afebc7=true;hash_del_rcu(&DATARMNET63b1a086d5
+->DATARMNETe8608dd267);DATARMNETc7c83f614f(DATARMNET63b1a086d5,false);kfree_rcu(
+DATARMNET63b1a086d5,DATARMNET28bfe9e6ad);DATARMNET5ca94dbc3c(DATARMNETd691057b85
+);DATARMNETdef6cfba1c--;}}return!!DATARMNETdef6cfba1c;}static void 
+DATARMNETad2b7fd8f5(struct work_struct*DATARMNET190b4452e8){struct 
+DATARMNET2f26f1d597*DATARMNET7500205a68;unsigned long DATARMNETfb0677cc3c;bool 
+DATARMNET6e1c466378;DATARMNET7500205a68=container_of(to_delayed_work(
+DATARMNET190b4452e8),struct DATARMNET2f26f1d597,DATARMNET190b4452e8);
+spin_lock_irqsave(&DATARMNET531b038fcd,DATARMNETfb0677cc3c);DATARMNET6e1c466378=
+DATARMNETb636687df3(DATARMNET7500205a68->DATARMNETcd94e0d3c7);if(
+DATARMNET6e1c466378){unsigned long DATARMNETf71ef1b8da;DATARMNETf71ef1b8da=
+msecs_to_jiffies(DATARMNETdbb408ba5d);schedule_delayed_work(&DATARMNET7500205a68
+->DATARMNET190b4452e8,DATARMNETf71ef1b8da);}spin_unlock_irqrestore(&
+DATARMNET531b038fcd,DATARMNETfb0677cc3c);}static bool DATARMNETc529ac78b2(struct
+ DATARMNETdadb4e2c65*DATARMNET75decd6f60,struct DATARMNETdadb4e2c65*
 DATARMNET6745cad668){if(DATARMNET75decd6f60->DATARMNET0d956cc77a!=
 DATARMNET6745cad668->DATARMNET0d956cc77a||DATARMNET75decd6f60->id!=
 DATARMNET6745cad668->id)return false;if(DATARMNET75decd6f60->DATARMNET0d956cc77a
@@ -110,33 +129,30 @@ DATARMNET52b387f6cd(struct DATARMNETdadb4e2c65*DATARMNET54338da2ff){struct
 DATARMNET6f3b954709*DATARMNET63b1a086d5;unsigned long DATARMNETfb0677cc3c;
 spin_lock_irqsave(&DATARMNET531b038fcd,DATARMNETfb0677cc3c);
 hash_for_each_possible_rcu(DATARMNET6e79f38051,DATARMNET63b1a086d5,
-DATARMNETe8608dd267,DATARMNET54338da2ff->id){if(DATARMNETc529ac78b2(
-DATARMNET54338da2ff,&DATARMNET63b1a086d5->DATARMNET54338da2ff))goto 
-DATARMNETbf4095f79e;}DATARMNET63b1a086d5=kzalloc(sizeof(*DATARMNET63b1a086d5),
-GFP_ATOMIC);if(!DATARMNET63b1a086d5)goto DATARMNETbf4095f79e;spin_lock_init(&
-DATARMNET63b1a086d5->DATARMNET94b1f9ee09);INIT_LIST_HEAD(&DATARMNET63b1a086d5->
-DATARMNET0f34bf3ea9);memcpy(&DATARMNET63b1a086d5->DATARMNET54338da2ff,
-DATARMNET54338da2ff,sizeof(*DATARMNET54338da2ff));hrtimer_init(&
-DATARMNET63b1a086d5->DATARMNET9f31ce5d2d,CLOCK_MONOTONIC,HRTIMER_MODE_REL);
-DATARMNET63b1a086d5->DATARMNET9f31ce5d2d.function=DATARMNETef43eced5f;
-hrtimer_start(&DATARMNET63b1a086d5->DATARMNET9f31ce5d2d,DATARMNET63a285d479,
-HRTIMER_MODE_REL);INIT_HLIST_NODE(&DATARMNET63b1a086d5->DATARMNETe8608dd267);
-hash_add_rcu(DATARMNET6e79f38051,&DATARMNET63b1a086d5->DATARMNETe8608dd267,
-DATARMNET54338da2ff->id);DATARMNETbf4095f79e:spin_unlock_irqrestore(&
-DATARMNET531b038fcd,DATARMNETfb0677cc3c);return DATARMNET63b1a086d5;}static int 
-DATARMNET9d6ad3b16f(struct sk_buff*DATARMNET543491eb0f,struct 
-DATARMNETb89ecedefc*DATARMNET3396919a68,struct DATARMNETdadb4e2c65*
-DATARMNET54338da2ff,struct DATARMNET8d3c2559ca*DATARMNET2d4b4cfc9e)__must_hold(
-RCU){struct DATARMNET6f3b954709*DATARMNET63b1a086d5;int DATARMNET61c2303133=
-(0xd26+209-0xdf6);DATARMNET5ca94dbc3c(DATARMNETd8273aa7e1);DATARMNET63b1a086d5=
-DATARMNET52b387f6cd(DATARMNET54338da2ff);if(!DATARMNET63b1a086d5){
-DATARMNET61c2303133=(-(0xd26+209-0xdf6));goto DATARMNETbf4095f79e;}if(unlikely(!
-hrtimer_is_queued(&DATARMNET63b1a086d5->DATARMNET9f31ce5d2d))){goto 
-DATARMNETbf4095f79e;}else if(hrtimer_get_remaining(&DATARMNET63b1a086d5->
-DATARMNET9f31ce5d2d)<=DATARMNETb7cc384fbe){goto DATARMNETbf4095f79e;}
-hrtimer_start(&DATARMNET63b1a086d5->DATARMNET9f31ce5d2d,DATARMNET63a285d479,
-HRTIMER_MODE_REL);if(DATARMNET63b1a086d5->DATARMNET7ed5754a5c){if(IS_ERR(
-DATARMNET63b1a086d5->DATARMNET7ed5754a5c))goto DATARMNETbf4095f79e;if(!
+DATARMNETe8608dd267,DATARMNET54338da2ff->id){if(DATARMNET63b1a086d5->
+DATARMNET1717afebc7)continue;if(DATARMNETc529ac78b2(DATARMNET54338da2ff,&
+DATARMNET63b1a086d5->DATARMNET54338da2ff))goto DATARMNETbf4095f79e;}
+DATARMNET63b1a086d5=kzalloc(sizeof(*DATARMNET63b1a086d5),GFP_ATOMIC);if(!
+DATARMNET63b1a086d5)goto DATARMNETbf4095f79e;spin_lock_init(&DATARMNET63b1a086d5
+->DATARMNET94b1f9ee09);INIT_LIST_HEAD(&DATARMNET63b1a086d5->DATARMNET0f34bf3ea9)
+;memcpy(&DATARMNET63b1a086d5->DATARMNET54338da2ff,DATARMNET54338da2ff,sizeof(*
+DATARMNET54338da2ff));INIT_HLIST_NODE(&DATARMNET63b1a086d5->DATARMNETe8608dd267)
+;hash_add_rcu(DATARMNET6e79f38051,&DATARMNET63b1a086d5->DATARMNETe8608dd267,
+DATARMNET54338da2ff->id);if(!DATARMNETdef6cfba1c){unsigned long 
+DATARMNETf71ef1b8da;DATARMNETf71ef1b8da=msecs_to_jiffies(DATARMNETdbb408ba5d);
+schedule_delayed_work(&DATARMNETa41953a37b.DATARMNET190b4452e8,
+DATARMNETf71ef1b8da);}DATARMNETdef6cfba1c++;DATARMNETbf4095f79e:
+spin_unlock_irqrestore(&DATARMNET531b038fcd,DATARMNETfb0677cc3c);return 
+DATARMNET63b1a086d5;}static int DATARMNET9d6ad3b16f(struct sk_buff*
+DATARMNET543491eb0f,struct DATARMNETb89ecedefc*DATARMNET3396919a68,struct 
+DATARMNETdadb4e2c65*DATARMNET54338da2ff,struct DATARMNET8d3c2559ca*
+DATARMNET2d4b4cfc9e)__must_hold(RCU){struct DATARMNET6f3b954709*
+DATARMNET63b1a086d5;int DATARMNET61c2303133=(0xd26+209-0xdf6);
+DATARMNET5ca94dbc3c(DATARMNETd8273aa7e1);DATARMNET63b1a086d5=DATARMNET52b387f6cd
+(DATARMNET54338da2ff);if(!DATARMNET63b1a086d5){DATARMNET61c2303133=(-
+(0xd26+209-0xdf6));goto DATARMNETbf4095f79e;}DATARMNET63b1a086d5->
+DATARMNET763f2e5fac=jiffies;if(DATARMNET63b1a086d5->DATARMNET7ed5754a5c){if(
+IS_ERR(DATARMNET63b1a086d5->DATARMNET7ed5754a5c))goto DATARMNETbf4095f79e;if(!
 DATARMNET4899053671(DATARMNET543491eb0f,DATARMNET63b1a086d5->DATARMNET7ed5754a5c
 )){DATARMNET5ca94dbc3c(DATARMNET7a58a5c1fc);DATARMNET61c2303133=
 (0xd2d+202-0xdf7);goto DATARMNETbf4095f79e;}DATARMNET5ca94dbc3c(
@@ -202,11 +218,13 @@ DATARMNETb65c469a15=htons(frag_hdr->frag_off)&IP6_OFFSET;DATARMNET54338da2ff.
 DATARMNET611d08d671=(u16)DATARMNET611d08d671;if(DATARMNET3396919a68->
 DATARMNET4924e79411==NEXTHDR_FRAGMENT)DATARMNET54338da2ff.DATARMNET611d08d671+=
 sizeof(*frag_hdr);return DATARMNET9d6ad3b16f(DATARMNET543491eb0f,
-DATARMNET3396919a68,&DATARMNET54338da2ff,DATARMNET2d4b4cfc9e);}void 
-DATARMNET8c0e010dfb(void){struct DATARMNET6f3b954709*DATARMNET63b1a086d5;int 
-DATARMNET5c2fd31d7b;rcu_read_lock();hash_for_each_rcu(DATARMNET6e79f38051,
-DATARMNET5c2fd31d7b,DATARMNET63b1a086d5,DATARMNETe8608dd267)hrtimer_cancel(&
-DATARMNET63b1a086d5->DATARMNET9f31ce5d2d);rcu_read_unlock();}void 
+DATARMNET3396919a68,&DATARMNET54338da2ff,DATARMNET2d4b4cfc9e);}int 
+DATARMNET49c2c17e77(void){INIT_DELAYED_WORK(&DATARMNETa41953a37b.
+DATARMNET190b4452e8,DATARMNETad2b7fd8f5);return(0xd2d+202-0xdf7);}void 
+DATARMNET8c0e010dfb(void){cancel_delayed_work_sync(&DATARMNETa41953a37b.
+DATARMNET190b4452e8);DATARMNETa41953a37b.DATARMNETcd94e0d3c7=true;
+schedule_delayed_work(&DATARMNETa41953a37b.DATARMNET190b4452e8,(0xd2d+202-0xdf7)
+);cancel_delayed_work_sync(&DATARMNETa41953a37b.DATARMNET190b4452e8);}void 
 DATARMNETedae8262e1(struct DATARMNET8d3c2559ca*DATARMNET54338da2ff){struct 
 DATARMNET6f3b954709*DATARMNET63b1a086d5;int DATARMNET5c2fd31d7b;rcu_read_lock();
 hash_for_each_rcu(DATARMNET6e79f38051,DATARMNET5c2fd31d7b,DATARMNET63b1a086d5,

+ 4 - 3
wlan/rmnet_wlan_fragment.h

@@ -1,5 +1,6 @@
 /* SPDX-License-Identifier: GPL-2.0-only */
 /* Copyright (c) 2021, The Linux Foundation. All rights reserved.
+ * Copyright (c) 2023, Qualcomm Innovation Center, Inc. All rights reserved.
  *
  * RMNET WLAN fragment handler framework
  *
@@ -13,8 +14,8 @@ int DATARMNET579f75aa50(struct sk_buff*DATARMNET543491eb0f,int
 DATARMNET611d08d671,struct DATARMNETb89ecedefc*DATARMNET3396919a68,struct 
 DATARMNET8d3c2559ca*DATARMNET2d4b4cfc9e);int DATARMNETaca8ca54ed(struct sk_buff*
 DATARMNET543491eb0f,int DATARMNET611d08d671,struct DATARMNETb89ecedefc*
-DATARMNET3396919a68,struct DATARMNET8d3c2559ca*DATARMNET2d4b4cfc9e);void 
-DATARMNET8c0e010dfb(void);void DATARMNETedae8262e1(struct DATARMNET8d3c2559ca*
-DATARMNET54338da2ff);
+DATARMNET3396919a68,struct DATARMNET8d3c2559ca*DATARMNET2d4b4cfc9e);int 
+DATARMNET49c2c17e77(void);void DATARMNET8c0e010dfb(void);void 
+DATARMNETedae8262e1(struct DATARMNET8d3c2559ca*DATARMNET54338da2ff);
 #endif
 

+ 10 - 5
wlan/rmnet_wlan_genl.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 Generic Netlink
  *
@@ -15,6 +15,7 @@
 #include "rmnet_wlan_genl.h"
 #include "rmnet_wlan.h"
 #include "rmnet_wlan_connection.h"
+#include "rmnet_wlan_fragment.h"
 #define DATARMNET5fe2c6571f (0xf07+1104-0x131d)
 static struct nla_policy DATARMNET19c5fce390[DATARMNETf6bbad94a5+
 (0xd26+209-0xdf6)]={[DATARMNET8c062d7709]=NLA_POLICY_EXACT_LEN(sizeof(struct 
@@ -289,12 +290,16 @@ DATARMNET61c2303133){pr_err(
 ,__func__,DATARMNET61c2303133);goto DATARMNET27d4697979;}DATARMNET61c2303133=
 DATARMNET9f106ed933();if(DATARMNET61c2303133){pr_err(
 "\x25\x73\x28\x29\x3a\x20\x63\x6f\x6e\x6e\x65\x63\x74\x69\x6f\x6e\x20\x6d\x61\x6e\x61\x67\x65\x6d\x65\x6e\x74\x20\x69\x6e\x69\x74\x20\x66\x61\x69\x6c\x65\x64\x3a\x20\x25\x69" "\n"
-,__func__,DATARMNET61c2303133);goto DATARMNETb042feb7e2;}DATARMNET333c107558();
+,__func__,DATARMNET61c2303133);goto DATARMNETb042feb7e2;}DATARMNET61c2303133=
+DATARMNET49c2c17e77();if(DATARMNET61c2303133){pr_err(
+"\x25\x73\x28\x29\x3a\x20\x66\x72\x61\x67\x6d\x65\x6e\x74\x20\x6d\x61\x6e\x61\x67\x65\x6d\x65\x6e\x74\x20\x69\x6e\x69\x74\x20\x66\x61\x69\x6c\x65\x64\x3a\x20\x25\x69" "\n"
+,__func__,DATARMNET61c2303133);goto DATARMNET321a78afb9;}DATARMNET333c107558();
 pr_info(
 "\x25\x73\x28\x29\x3a\x20\x72\x6d\x6e\x65\x74\x5f\x77\x6c\x61\x6e\x5f\x73\x65\x74\x5f\x68\x6f\x6f\x6b\x73\x20\x73\x65\x74" "\n"
-,__func__);return(0xd2d+202-0xdf7);DATARMNETb042feb7e2:genl_unregister_family(&
-DATARMNET61e8f41aae);DATARMNET27d4697979:return DATARMNET61c2303133;}static void
- __exit DATARMNET7a381832d5(void){int DATARMNET61c2303133;pr_info(
+,__func__);return(0xd2d+202-0xdf7);DATARMNET321a78afb9:DATARMNETf56cbaa2b1();
+DATARMNETb042feb7e2:genl_unregister_family(&DATARMNET61e8f41aae);
+DATARMNET27d4697979:return DATARMNET61c2303133;}static void __exit 
+DATARMNET7a381832d5(void){int DATARMNET61c2303133;pr_info(
 "\x25\x73\x28\x29\x3a\x20\x72\x6d\x6e\x65\x74\x5f\x77\x6c\x61\x6e\x20\x65\x78\x69\x74\x69\x6e\x67" "\n"
 ,__func__);DATARMNET61c2303133=DATARMNETf56cbaa2b1();if(DATARMNET61c2303133)
 pr_err(

+ 12 - 12
wlan/rmnet_wlan_main.c

@@ -25,18 +25,18 @@
 #include "rmnet_wlan_stats.h"
 #include "rmnet_wlan_fragment.h"
 #include "rmnet_wlan_connection.h"
-static char*verinfo[]={"\x30\x32\x39\x33\x31\x66\x62\x66",
-"\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,
+static char*verinfo[]={"\x66\x34\x35\x34\x32\x32\x62\x64",
+"\x30\x32\x39\x33\x31\x66\x62\x66","\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))