Browse Source

rmnet_wlan: I99ae1b3640bd39ef5af69769701e356166dfa294

Updates the module to version I99ae1b3640bd39ef5af69769701e356166dfa294.

CRs-Fixed: 3731036
Change-Id: I99ae1b3640bd39ef5af69769701e356166dfa294
Signed-off-by: Sean Tranchetti <[email protected]>
Subash Abhinov Kasiviswanathan 1 year ago
parent
commit
a478ad3bd5
2 changed files with 132 additions and 131 deletions
  1. 119 118
      wlan/rmnet_wlan_connection.c
  2. 13 13
      wlan/rmnet_wlan_main.c

+ 119 - 118
wlan/rmnet_wlan_connection.c

@@ -13,7 +13,7 @@
 #include <linux/rcupdate.h>
 #include <linux/rcupdate.h>
 #include <linux/hashtable.h>
 #include <linux/hashtable.h>
 #include <linux/if_ether.h>
 #include <linux/if_ether.h>
-#include <linux/hrtimer.h>
+#include <linux/workqueue.h>
 #include <net/ip.h>
 #include <net/ip.h>
 #include <net/ipv6.h>
 #include <net/ipv6.h>
 #include <net/dst.h>
 #include <net/dst.h>
@@ -22,53 +22,73 @@
 #include "rmnet_wlan.h"
 #include "rmnet_wlan.h"
 #include "rmnet_wlan_connection.h"
 #include "rmnet_wlan_connection.h"
 #include "rmnet_wlan_stats.h"
 #include "rmnet_wlan_stats.h"
-#define DATARMNET5da8c68c19 (2000000000)
+#define DATARMNET5da8c68c19 ((0x16a8+1565-0x14f5))
+#define DATARMNET4d011802ef ((0xdf7+6169-0x241c))
 #define DATARMNET8fc07fbb24 ((0xeb7+1158-0x132d))
 #define DATARMNET8fc07fbb24 ((0xeb7+1158-0x132d))
 #define DATARMNETeaf0945284 \
 #define DATARMNETeaf0945284 \
 	(const_ilog2(DATARMNET8fc07fbb24))
 	(const_ilog2(DATARMNET8fc07fbb24))
 extern void(*rmnet_wlan_ll_tuple_hook)(struct sk_buff*DATARMNET543491eb0f);
 extern void(*rmnet_wlan_ll_tuple_hook)(struct sk_buff*DATARMNET543491eb0f);
 struct DATARMNET4f49486833{struct hlist_node DATARMNETe8608dd267;struct rcu_head
 struct DATARMNET4f49486833{struct hlist_node DATARMNETe8608dd267;struct rcu_head
- DATARMNET28bfe9e6ad;struct hrtimer DATARMNET9f31ce5d2d;struct 
-DATARMNET0ca9d8ead7 DATARMNET54338da2ff;struct DATARMNET8d3c2559ca 
-DATARMNET7ed5754a5c;};static DEFINE_SPINLOCK(DATARMNET820642743b);static 
-DEFINE_HASHTABLE(DATARMNET5413d6f8ec,DATARMNETeaf0945284);static bool 
-DATARMNET5f3c9ed4da(struct DATARMNET0ca9d8ead7*DATARMNET75decd6f60,struct 
-DATARMNET0ca9d8ead7*DATARMNET6745cad668){if(DATARMNET75decd6f60->
-DATARMNET0d956cc77a!=DATARMNET6745cad668->DATARMNET0d956cc77a)return false;if(
-DATARMNET75decd6f60->DATARMNET0d956cc77a==(0xd11+230-0xdf3))return 
-DATARMNET75decd6f60->DATARMNETdfe430c2d6==DATARMNET6745cad668->
-DATARMNETdfe430c2d6&&DATARMNET75decd6f60->DATARMNET2cb607d686==
-DATARMNET6745cad668->DATARMNET2cb607d686;return!ipv6_addr_cmp(&
-DATARMNET75decd6f60->DATARMNET815cbb4bf5,&DATARMNET6745cad668->
-DATARMNET815cbb4bf5)&&!ipv6_addr_cmp(&DATARMNET75decd6f60->DATARMNETc3f31215b7,&
-DATARMNET6745cad668->DATARMNETc3f31215b7);}static enum hrtimer_restart 
-DATARMNET299a8a08b5(struct hrtimer*DATARMNET6e4292679f){struct 
-DATARMNET4f49486833*DATARMNET63b1a086d5;unsigned long DATARMNETfb0677cc3c;
-spin_lock_irqsave(&DATARMNET820642743b,DATARMNETfb0677cc3c);DATARMNET63b1a086d5=
-container_of(DATARMNET6e4292679f,struct DATARMNET4f49486833,DATARMNET9f31ce5d2d)
-;hash_del_rcu(&DATARMNET63b1a086d5->DATARMNETe8608dd267);kfree_rcu(
-DATARMNET63b1a086d5,DATARMNET28bfe9e6ad);spin_unlock_irqrestore(&
-DATARMNET820642743b,DATARMNETfb0677cc3c);return HRTIMER_NORESTART;}static 
-rx_handler_result_t DATARMNETc9ed97754a(struct sk_buff*DATARMNET543491eb0f,
-uint8_t DATARMNET1a901c3d09){if(DATARMNET543491eb0f->dev&&(DATARMNET543491eb0f->
-protocol==htons(ETH_P_IP))&&DATARMNET1a901c3d09==DATARMNET9bfbc31cd6){struct 
-iphdr*DATARMNET86f1f2cdc9,DATARMNETbf6548198e;struct net_device*
-DATARMNET813ca18d06=NULL;struct flowi4 DATARMNET099aa93adc={};struct rtable*
-DATARMNET066b8bd537;struct neighbour*DATARMNET3f85732c70;int DATARMNET268a8314cf
-=(0xd2d+202-0xdf7);DATARMNET86f1f2cdc9=skb_header_pointer(DATARMNET543491eb0f,
-(0xd2d+202-0xdf7),sizeof(*DATARMNET86f1f2cdc9),&DATARMNETbf6548198e);if(!
-DATARMNET86f1f2cdc9){DATARMNET17f6bc1be5(DATARMNET15454f969d);goto 
-DATARMNETc1174a0f45;}DATARMNET813ca18d06=dev_get_by_name_rcu(&init_net,
-DATARMNET934406764d());if(!DATARMNET813ca18d06){DATARMNET17f6bc1be5(
-DATARMNETfa4b3dd44a);goto DATARMNETc1174a0f45;}DATARMNET543491eb0f->dev=
-DATARMNET813ca18d06;memcpy(&DATARMNET099aa93adc.saddr,&DATARMNET86f1f2cdc9->
-saddr,sizeof(__be32));memcpy(&DATARMNET099aa93adc.daddr,&DATARMNET86f1f2cdc9->
-daddr,sizeof(__be32));DATARMNET099aa93adc.flowi4_oif=DATARMNET813ca18d06->
-ifindex;DATARMNET099aa93adc.flowi4_flags=FLOWI_FLAG_KNOWN_NH;DATARMNET066b8bd537
-=ip_route_output_key(&init_net,&DATARMNET099aa93adc);if(IS_ERR(
-DATARMNET066b8bd537)){DATARMNET17f6bc1be5(DATARMNET72ab5e86d8);goto 
-DATARMNETc1174a0f45;}DATARMNET3f85732c70=dst_neigh_lookup(&DATARMNET066b8bd537->
-dst,&DATARMNET099aa93adc.daddr);ip_rt_put(DATARMNET066b8bd537);if(!
+ DATARMNET28bfe9e6ad;struct DATARMNET0ca9d8ead7 DATARMNET54338da2ff;struct 
+DATARMNET8d3c2559ca*DATARMNET7ed5754a5c;unsigned long DATARMNET763f2e5fac;bool 
+DATARMNET1717afebc7;};struct DATARMNETeb4a7e58d8{struct delayed_work 
+DATARMNET190b4452e8;bool DATARMNETcd94e0d3c7;};static DEFINE_SPINLOCK(
+DATARMNET820642743b);static DEFINE_HASHTABLE(DATARMNET5413d6f8ec,
+DATARMNETeaf0945284);static u32 DATARMNETf658004dbc;static struct 
+DATARMNETeb4a7e58d8 DATARMNET0b04fde883;static bool DATARMNET5f3c9ed4da(struct 
+DATARMNET0ca9d8ead7*DATARMNET75decd6f60,struct DATARMNET0ca9d8ead7*
+DATARMNET6745cad668){if(DATARMNET75decd6f60->DATARMNET0d956cc77a!=
+DATARMNET6745cad668->DATARMNET0d956cc77a)return false;if(DATARMNET75decd6f60->
+DATARMNET0d956cc77a==(0xd11+230-0xdf3))return DATARMNET75decd6f60->
+DATARMNETdfe430c2d6==DATARMNET6745cad668->DATARMNETdfe430c2d6&&
+DATARMNET75decd6f60->DATARMNET2cb607d686==DATARMNET6745cad668->
+DATARMNET2cb607d686;return!ipv6_addr_cmp(&DATARMNET75decd6f60->
+DATARMNET815cbb4bf5,&DATARMNET6745cad668->DATARMNET815cbb4bf5)&&!ipv6_addr_cmp(&
+DATARMNET75decd6f60->DATARMNETc3f31215b7,&DATARMNET6745cad668->
+DATARMNETc3f31215b7);}static bool DATARMNET64cb643bf6(struct DATARMNET4f49486833
+*DATARMNET63b1a086d5,unsigned long DATARMNET763f2e5fac){unsigned long 
+DATARMNETc2d5c71ce1;DATARMNETc2d5c71ce1=msecs_to_jiffies(DATARMNET5da8c68c19);if
+(DATARMNET763f2e5fac-DATARMNET63b1a086d5->DATARMNET763f2e5fac>
+DATARMNETc2d5c71ce1)return true;return false;}static bool DATARMNETd0a7ffc2d1(
+bool DATARMNETe78ad140cc){struct DATARMNET4f49486833*DATARMNET63b1a086d5;struct 
+hlist_node*DATARMNET0386f6f82a;unsigned long DATARMNET763f2e5fac;int 
+DATARMNET5c2fd31d7b;DATARMNET763f2e5fac=jiffies;hash_for_each_safe(
+DATARMNET5413d6f8ec,DATARMNET5c2fd31d7b,DATARMNET0386f6f82a,DATARMNET63b1a086d5,
+DATARMNETe8608dd267){if(DATARMNET63b1a086d5->DATARMNET1717afebc7)continue;if(
+DATARMNETe78ad140cc||DATARMNET64cb643bf6(DATARMNET63b1a086d5,DATARMNET763f2e5fac
+)){DATARMNET63b1a086d5->DATARMNET1717afebc7=true;hash_del_rcu(&
+DATARMNET63b1a086d5->DATARMNETe8608dd267);kfree_rcu(DATARMNET63b1a086d5,
+DATARMNET28bfe9e6ad);DATARMNETf658004dbc--;}}return!!DATARMNETf658004dbc;}static
+ void DATARMNET8211acc766(struct work_struct*DATARMNET190b4452e8){struct 
+DATARMNETeb4a7e58d8*DATARMNET563f32ea64;unsigned long DATARMNETfb0677cc3c;bool 
+DATARMNET6e1c466378;DATARMNET563f32ea64=container_of(to_delayed_work(
+DATARMNET190b4452e8),struct DATARMNETeb4a7e58d8,DATARMNET190b4452e8);
+spin_lock_irqsave(&DATARMNET820642743b,DATARMNETfb0677cc3c);DATARMNET6e1c466378=
+DATARMNETd0a7ffc2d1(DATARMNET563f32ea64->DATARMNETcd94e0d3c7);if(
+DATARMNET6e1c466378){unsigned long DATARMNETf71ef1b8da;DATARMNETf71ef1b8da=
+msecs_to_jiffies(DATARMNET4d011802ef);schedule_delayed_work(&DATARMNET563f32ea64
+->DATARMNET190b4452e8,DATARMNETf71ef1b8da);}spin_unlock_irqrestore(&
+DATARMNET820642743b,DATARMNETfb0677cc3c);}static rx_handler_result_t 
+DATARMNETc9ed97754a(struct sk_buff*DATARMNET543491eb0f,uint8_t 
+DATARMNET1a901c3d09){if(DATARMNET543491eb0f->dev&&(DATARMNET543491eb0f->protocol
+==htons(ETH_P_IP))&&DATARMNET1a901c3d09==DATARMNET9bfbc31cd6){struct iphdr*
+DATARMNET86f1f2cdc9,DATARMNETbf6548198e;struct net_device*DATARMNET813ca18d06=
+NULL;struct flowi4 DATARMNET099aa93adc={};struct rtable*DATARMNET066b8bd537;
+struct neighbour*DATARMNET3f85732c70;int DATARMNET268a8314cf=(0xd2d+202-0xdf7);
+DATARMNET86f1f2cdc9=skb_header_pointer(DATARMNET543491eb0f,(0xd2d+202-0xdf7),
+sizeof(*DATARMNET86f1f2cdc9),&DATARMNETbf6548198e);if(!DATARMNET86f1f2cdc9){
+DATARMNET17f6bc1be5(DATARMNET15454f969d);goto DATARMNETc1174a0f45;}
+DATARMNET813ca18d06=dev_get_by_name_rcu(&init_net,DATARMNET934406764d());if(!
+DATARMNET813ca18d06){DATARMNET17f6bc1be5(DATARMNETfa4b3dd44a);goto 
+DATARMNETc1174a0f45;}DATARMNET543491eb0f->dev=DATARMNET813ca18d06;memcpy(&
+DATARMNET099aa93adc.saddr,&DATARMNET86f1f2cdc9->saddr,sizeof(__be32));memcpy(&
+DATARMNET099aa93adc.daddr,&DATARMNET86f1f2cdc9->daddr,sizeof(__be32));
+DATARMNET099aa93adc.flowi4_oif=DATARMNET813ca18d06->ifindex;DATARMNET099aa93adc.
+flowi4_flags=FLOWI_FLAG_KNOWN_NH;DATARMNET066b8bd537=ip_route_output_key(&
+init_net,&DATARMNET099aa93adc);if(IS_ERR(DATARMNET066b8bd537)){
+DATARMNET17f6bc1be5(DATARMNET72ab5e86d8);goto DATARMNETc1174a0f45;}
+DATARMNET3f85732c70=dst_neigh_lookup(&DATARMNET066b8bd537->dst,&
+DATARMNET099aa93adc.daddr);ip_rt_put(DATARMNET066b8bd537);if(!
 DATARMNET3f85732c70){DATARMNET17f6bc1be5(DATARMNET0e6bd55b8b);goto 
 DATARMNET3f85732c70){DATARMNET17f6bc1be5(DATARMNET0e6bd55b8b);goto 
 DATARMNETc1174a0f45;}if(DATARMNET3f85732c70->dev!=DATARMNET543491eb0f->dev||!
 DATARMNETc1174a0f45;}if(DATARMNET3f85732c70->dev!=DATARMNET543491eb0f->dev||!
 DATARMNET3f85732c70->dev->header_ops){DATARMNET17f6bc1be5(DATARMNET64aecaa865);
 DATARMNET3f85732c70->dev->header_ops){DATARMNET17f6bc1be5(DATARMNET64aecaa865);
@@ -259,74 +279,60 @@ DATARMNETbf55123e5b->daddr,sizeof(DATARMNETa76763310b.DATARMNETc3f31215b7));
 DATARMNETa76763310b.DATARMNET0d956cc77a=(0xd03+244-0xdf1);}else{goto 
 DATARMNETa76763310b.DATARMNET0d956cc77a=(0xd03+244-0xdf1);}else{goto 
 DATARMNETbf4095f79e;}rcu_read_lock();hash_for_each_possible_rcu(
 DATARMNETbf4095f79e;}rcu_read_lock();hash_for_each_possible_rcu(
 DATARMNET5413d6f8ec,DATARMNET63b1a086d5,DATARMNETe8608dd267,DATARMNETa76763310b.
 DATARMNET5413d6f8ec,DATARMNET63b1a086d5,DATARMNETe8608dd267,DATARMNETa76763310b.
-DATARMNET2cb607d686){if(!DATARMNET5f3c9ed4da(&DATARMNET63b1a086d5->
-DATARMNET54338da2ff,&DATARMNETa76763310b))continue;if(likely(hrtimer_is_queued(&
-DATARMNET63b1a086d5->DATARMNET9f31ce5d2d)))hrtimer_start(&DATARMNET63b1a086d5->
-DATARMNET9f31ce5d2d,DATARMNET5da8c68c19,HRTIMER_MODE_REL);rcu_read_unlock();goto
- DATARMNETbf4095f79e;}rcu_read_unlock();spin_lock_irqsave(&DATARMNET820642743b,
-DATARMNETfb0677cc3c);DATARMNET63b1a086d5=kzalloc(sizeof(*DATARMNET63b1a086d5),
-GFP_ATOMIC);if(!DATARMNET63b1a086d5){spin_unlock_irqrestore(&DATARMNET820642743b
-,DATARMNETfb0677cc3c);goto DATARMNETbf4095f79e;}INIT_HLIST_NODE(&
-DATARMNET63b1a086d5->DATARMNETe8608dd267);memcpy(&DATARMNET63b1a086d5->
-DATARMNET54338da2ff,&DATARMNETa76763310b,sizeof(DATARMNETa76763310b));
-DATARMNET63b1a086d5->DATARMNET7ed5754a5c.DATARMNET57656f6f2f=DATARMNET543491eb0f
-->dev;hrtimer_init(&DATARMNET63b1a086d5->DATARMNET9f31ce5d2d,CLOCK_MONOTONIC,
-HRTIMER_MODE_REL);DATARMNET63b1a086d5->DATARMNET9f31ce5d2d.function=
-DATARMNET299a8a08b5;hrtimer_start(&DATARMNET63b1a086d5->DATARMNET9f31ce5d2d,
-DATARMNET5da8c68c19,HRTIMER_MODE_REL);hash_add_rcu(DATARMNET5413d6f8ec,&
+DATARMNET2cb607d686){if(DATARMNET63b1a086d5->DATARMNET1717afebc7)continue;if(!
+DATARMNET5f3c9ed4da(&DATARMNET63b1a086d5->DATARMNET54338da2ff,&
+DATARMNETa76763310b))continue;DATARMNET63b1a086d5->DATARMNET763f2e5fac=jiffies;
+rcu_read_unlock();goto DATARMNETbf4095f79e;}rcu_read_unlock();spin_lock_irqsave(
+&DATARMNET820642743b,DATARMNETfb0677cc3c);DATARMNET63b1a086d5=kzalloc(sizeof(*
+DATARMNET63b1a086d5),GFP_ATOMIC);if(!DATARMNET63b1a086d5){spin_unlock_irqrestore
+(&DATARMNET820642743b,DATARMNETfb0677cc3c);goto DATARMNETbf4095f79e;}
+INIT_HLIST_NODE(&DATARMNET63b1a086d5->DATARMNETe8608dd267);memcpy(&
+DATARMNET63b1a086d5->DATARMNET54338da2ff,&DATARMNETa76763310b,sizeof(
+DATARMNETa76763310b));DATARMNET63b1a086d5->DATARMNET7ed5754a5c=&
+DATARMNET8184934307->DATARMNET7ed5754a5c;hash_add_rcu(DATARMNET5413d6f8ec,&
 DATARMNET63b1a086d5->DATARMNETe8608dd267,DATARMNETa76763310b.DATARMNET2cb607d686
 DATARMNET63b1a086d5->DATARMNETe8608dd267,DATARMNETa76763310b.DATARMNET2cb607d686
-);spin_unlock_irqrestore(&DATARMNET820642743b,DATARMNETfb0677cc3c);
-DATARMNETbf4095f79e:return DATARMNETc9ed97754a(DATARMNET543491eb0f,
-DATARMNET1a901c3d09);DATARMNET9b3d23a43b:DATARMNET7ca470d54b(DATARMNET543491eb0f
-,TCP_FLAG_SYN);return DATARMNETc9ed97754a(DATARMNET543491eb0f,
-DATARMNET1a901c3d09);}static void DATARMNETbc6bd11f47(struct net_device*
-DATARMNET00dcb79bc4){struct DATARMNET4f49486833*DATARMNET63b1a086d5;int 
-DATARMNET5c2fd31d7b;rcu_read_lock();hash_for_each_rcu(DATARMNET5413d6f8ec,
-DATARMNET5c2fd31d7b,DATARMNET63b1a086d5,DATARMNETe8608dd267){if(
-DATARMNET63b1a086d5->DATARMNET7ed5754a5c.DATARMNET57656f6f2f==
-DATARMNET00dcb79bc4)hrtimer_cancel(&DATARMNET63b1a086d5->DATARMNET9f31ce5d2d);}
-rcu_read_unlock();}static int DATARMNET81ab4de243(struct notifier_block*
-DATARMNET272c159b3c,unsigned long DATARMNET7f045a1e6e,void*data){struct 
-net_device*DATARMNET00dcb79bc4=netdev_notifier_info_to_dev(data);if(!
-DATARMNET00dcb79bc4||DATARMNETaba2beb199(DATARMNET00dcb79bc4->name,
-"\x72\x5f\x72\x6d\x6e\x65\x74\x5f\x64\x61\x74\x61",(0xd19+238-0xdfb)))return 
-NOTIFY_DONE;switch(DATARMNET7f045a1e6e){case NETDEV_UNREGISTER:
-DATARMNETbc6bd11f47(DATARMNET00dcb79bc4);break;default:break;}return NOTIFY_DONE
-;}static struct notifier_block DATARMNET61d0113123={.notifier_call=
-DATARMNET81ab4de243,};struct DATARMNET8d3c2559ca*DATARMNET07f0e0f286(struct 
-DATARMNET0ca9d8ead7*DATARMNET54338da2ff)__must_hold(RCU){struct 
-DATARMNET4f49486833*DATARMNET63b1a086d5;hash_for_each_possible_rcu(
+);if(!DATARMNETf658004dbc){unsigned long DATARMNETf71ef1b8da;DATARMNETf71ef1b8da
+=msecs_to_jiffies(DATARMNET4d011802ef);schedule_delayed_work(&
+DATARMNET0b04fde883.DATARMNET190b4452e8,DATARMNETf71ef1b8da);}
+DATARMNETf658004dbc++;spin_unlock_irqrestore(&DATARMNET820642743b,
+DATARMNETfb0677cc3c);DATARMNETbf4095f79e:return DATARMNETc9ed97754a(
+DATARMNET543491eb0f,DATARMNET1a901c3d09);DATARMNET9b3d23a43b:DATARMNET7ca470d54b
+(DATARMNET543491eb0f,TCP_FLAG_SYN);return DATARMNETc9ed97754a(
+DATARMNET543491eb0f,DATARMNET1a901c3d09);}struct DATARMNET8d3c2559ca*
+DATARMNET07f0e0f286(struct DATARMNET0ca9d8ead7*DATARMNET54338da2ff)__must_hold(
+RCU){struct DATARMNET4f49486833*DATARMNET63b1a086d5;hash_for_each_possible_rcu(
 DATARMNET5413d6f8ec,DATARMNET63b1a086d5,DATARMNETe8608dd267,DATARMNET54338da2ff
 DATARMNET5413d6f8ec,DATARMNET63b1a086d5,DATARMNETe8608dd267,DATARMNET54338da2ff
-->DATARMNET2cb607d686){if(!DATARMNET5f3c9ed4da(&DATARMNET63b1a086d5->
-DATARMNET54338da2ff,DATARMNET54338da2ff))continue;return&DATARMNET63b1a086d5->
-DATARMNET7ed5754a5c;}return NULL;}void DATARMNETf4e1a29dbc(void){struct 
-DATARMNET4f49486833*DATARMNET63b1a086d5;int DATARMNET5c2fd31d7b;rcu_read_lock();
-hash_for_each_rcu(DATARMNET5413d6f8ec,DATARMNET5c2fd31d7b,DATARMNET63b1a086d5,
-DATARMNETe8608dd267)hrtimer_cancel(&DATARMNET63b1a086d5->DATARMNET9f31ce5d2d);
-rcu_read_unlock();}void DATARMNET6f73df41cd(struct sk_buff*DATARMNET543491eb0f){
-int protocol=-(0xd26+209-0xdf6);struct DATARMNETe117226f58*DATARMNET3396919a68=
-rcu_dereference(DATARMNETcde6e442f5);if(!DATARMNET3396919a68)return;if(
-DATARMNET543491eb0f->protocol==htons(ETH_P_IP)){struct iphdr*DATARMNET86f1f2cdc9
-,DATARMNETbf6548198e;DATARMNET86f1f2cdc9=skb_header_pointer(DATARMNET543491eb0f,
-(0xd2d+202-0xdf7),sizeof(*DATARMNET86f1f2cdc9),&DATARMNETbf6548198e);if(!
-DATARMNET86f1f2cdc9)return;if(DATARMNET86f1f2cdc9->version!=DATARMNET3396919a68
-->DATARMNET0d956cc77a&&DATARMNET86f1f2cdc9->saddr!=DATARMNET3396919a68->
-DATARMNETdfe430c2d6&&DATARMNET86f1f2cdc9->daddr!=DATARMNET3396919a68->
-DATARMNET2cb607d686)return;protocol=DATARMNET86f1f2cdc9->protocol;}else if(
-DATARMNET543491eb0f->protocol==htons(ETH_P_IPV6)){struct ipv6hdr*
-DATARMNETbf55123e5b,DATARMNETcf1d9e2c1e;DATARMNETbf55123e5b=skb_header_pointer(
-DATARMNET543491eb0f,(0xd2d+202-0xdf7),sizeof(*DATARMNETbf55123e5b),&
-DATARMNETcf1d9e2c1e);if(!DATARMNETbf55123e5b)return;if(DATARMNETbf55123e5b->
-version!=DATARMNET3396919a68->DATARMNET0d956cc77a&&ipv6_addr_cmp(&
-DATARMNETbf55123e5b->saddr,&DATARMNET3396919a68->DATARMNET815cbb4bf5)&&
-ipv6_addr_cmp(&DATARMNETbf55123e5b->daddr,&DATARMNET3396919a68->
-DATARMNETc3f31215b7))return;protocol=DATARMNETbf55123e5b->nexthdr;}if(protocol==
-IPPROTO_UDP){if(udp_hdr(DATARMNET543491eb0f)->source==DATARMNET3396919a68->
-DATARMNET08e913477e&&udp_hdr(DATARMNET543491eb0f)->dest==DATARMNET3396919a68->
-DATARMNETda7f7fa492)goto DATARMNET9573fcc9c6;}return;DATARMNET9573fcc9c6:
-DATARMNET543491eb0f->priority=2607612160;DATARMNET5ca94dbc3c(DATARMNETc2cade1d75
-);}static rx_handler_result_t DATARMNETd2f80b03ce(struct sk_buff**
-DATARMNET89946cec52){struct net_device*DATARMNET00dcb79bc4;if(!
+->DATARMNET2cb607d686){if(DATARMNET63b1a086d5->DATARMNET1717afebc7)continue;if(!
+DATARMNET5f3c9ed4da(&DATARMNET63b1a086d5->DATARMNET54338da2ff,
+DATARMNET54338da2ff))continue;return DATARMNET63b1a086d5->DATARMNET7ed5754a5c;}
+return NULL;}void DATARMNETf4e1a29dbc(void){cancel_delayed_work_sync(&
+DATARMNET0b04fde883.DATARMNET190b4452e8);DATARMNET0b04fde883.DATARMNETcd94e0d3c7
+=true;schedule_delayed_work(&DATARMNET0b04fde883.DATARMNET190b4452e8,
+(0xd2d+202-0xdf7));cancel_delayed_work_sync(&DATARMNET0b04fde883.
+DATARMNET190b4452e8);}void DATARMNET6f73df41cd(struct sk_buff*
+DATARMNET543491eb0f){int protocol=-(0xd26+209-0xdf6);struct DATARMNETe117226f58*
+DATARMNET3396919a68=rcu_dereference(DATARMNETcde6e442f5);if(!DATARMNET3396919a68
+)return;if(DATARMNET543491eb0f->protocol==htons(ETH_P_IP)){struct iphdr*
+DATARMNET86f1f2cdc9,DATARMNETbf6548198e;DATARMNET86f1f2cdc9=skb_header_pointer(
+DATARMNET543491eb0f,(0xd2d+202-0xdf7),sizeof(*DATARMNET86f1f2cdc9),&
+DATARMNETbf6548198e);if(!DATARMNET86f1f2cdc9)return;if(DATARMNET86f1f2cdc9->
+version!=DATARMNET3396919a68->DATARMNET0d956cc77a&&DATARMNET86f1f2cdc9->saddr!=
+DATARMNET3396919a68->DATARMNETdfe430c2d6&&DATARMNET86f1f2cdc9->daddr!=
+DATARMNET3396919a68->DATARMNET2cb607d686)return;protocol=DATARMNET86f1f2cdc9->
+protocol;}else if(DATARMNET543491eb0f->protocol==htons(ETH_P_IPV6)){struct 
+ipv6hdr*DATARMNETbf55123e5b,DATARMNETcf1d9e2c1e;DATARMNETbf55123e5b=
+skb_header_pointer(DATARMNET543491eb0f,(0xd2d+202-0xdf7),sizeof(*
+DATARMNETbf55123e5b),&DATARMNETcf1d9e2c1e);if(!DATARMNETbf55123e5b)return;if(
+DATARMNETbf55123e5b->version!=DATARMNET3396919a68->DATARMNET0d956cc77a&&
+ipv6_addr_cmp(&DATARMNETbf55123e5b->saddr,&DATARMNET3396919a68->
+DATARMNET815cbb4bf5)&&ipv6_addr_cmp(&DATARMNETbf55123e5b->daddr,&
+DATARMNET3396919a68->DATARMNETc3f31215b7))return;protocol=DATARMNETbf55123e5b->
+nexthdr;}if(protocol==IPPROTO_UDP){if(udp_hdr(DATARMNET543491eb0f)->source==
+DATARMNET3396919a68->DATARMNET08e913477e&&udp_hdr(DATARMNET543491eb0f)->dest==
+DATARMNET3396919a68->DATARMNETda7f7fa492)goto DATARMNET9573fcc9c6;}return;
+DATARMNET9573fcc9c6:DATARMNET543491eb0f->priority=2607612160;DATARMNET5ca94dbc3c
+(DATARMNETc2cade1d75);}static rx_handler_result_t DATARMNETd2f80b03ce(struct 
+sk_buff**DATARMNET89946cec52){struct net_device*DATARMNET00dcb79bc4;if(!
 DATARMNET89946cec52||!(*DATARMNET89946cec52)||!(*DATARMNET89946cec52)->dev)
 DATARMNET89946cec52||!(*DATARMNET89946cec52)||!(*DATARMNET89946cec52)->dev)
 return RX_HANDLER_PASS;DATARMNET00dcb79bc4=(*DATARMNET89946cec52)->dev;if(!
 return RX_HANDLER_PASS;DATARMNET00dcb79bc4=(*DATARMNET89946cec52)->dev;if(!
 DATARMNETaba2beb199(DATARMNET00dcb79bc4->name,
 DATARMNETaba2beb199(DATARMNET00dcb79bc4->name,
@@ -343,12 +349,7 @@ DATARMNET333c107558(void){rcu_assign_pointer(rmnet_wlan_ll_tuple_hook,
 DATARMNET6f73df41cd);rmnet_module_hook_register(DATARMNET1928843de7,ARRAY_SIZE(
 DATARMNET6f73df41cd);rmnet_module_hook_register(DATARMNET1928843de7,ARRAY_SIZE(
 DATARMNET1928843de7));}void DATARMNET4c08c7210c(void){rcu_assign_pointer(
 DATARMNET1928843de7));}void DATARMNET4c08c7210c(void){rcu_assign_pointer(
 rmnet_wlan_ll_tuple_hook,NULL);rmnet_module_hook_unregister(DATARMNET1928843de7,
 rmnet_wlan_ll_tuple_hook,NULL);rmnet_module_hook_unregister(DATARMNET1928843de7,
-ARRAY_SIZE(DATARMNET1928843de7));}int DATARMNET9f106ed933(void){int 
-DATARMNET268a8314cf;DATARMNET268a8314cf=register_netdevice_notifier(&
-DATARMNET61d0113123);if(DATARMNET268a8314cf)pr_err(
-"\x25\x73\x28\x29\x3a\x20\x6e\x6f\x74\x69\x66\x69\x65\x72\x20\x66\x61\x69\x6c\x65\x64" "\n"
-,__func__);return DATARMNET268a8314cf;}int DATARMNETf56cbaa2b1(void){int 
-DATARMNET268a8314cf;DATARMNET268a8314cf=unregister_netdevice_notifier(&
-DATARMNET61d0113123);if(DATARMNET268a8314cf)pr_err(
-"\x25\x73\x28\x29\x3a\x20\x6e\x6f\x74\x69\x66\x65\x72\x20\x66\x61\x69\x6c\x65\x64" "\n"
-,__func__);return DATARMNET268a8314cf;}
+ARRAY_SIZE(DATARMNET1928843de7));}int DATARMNET9f106ed933(void){
+INIT_DELAYED_WORK(&DATARMNET0b04fde883.DATARMNET190b4452e8,DATARMNET8211acc766);
+return(0xd2d+202-0xdf7);}int DATARMNETf56cbaa2b1(void){DATARMNETf4e1a29dbc();
+return(0xd2d+202-0xdf7);}

+ 13 - 13
wlan/rmnet_wlan_main.c

@@ -25,17 +25,17 @@
 #include "rmnet_wlan_stats.h"
 #include "rmnet_wlan_stats.h"
 #include "rmnet_wlan_fragment.h"
 #include "rmnet_wlan_fragment.h"
 #include "rmnet_wlan_connection.h"
 #include "rmnet_wlan_connection.h"
-static char*verinfo[]={"\x63\x32\x30\x33\x65\x36\x39\x39",
-"\x35\x66\x66\x38\x62\x34\x38\x34","\x62\x33\x30\x63\x65\x32\x36\x36",
-"\x37\x32\x39\x63\x61\x37\x33\x37","\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"};
-module_param_array(verinfo,charp,NULL,(0xcb7+5769-0x221c));MODULE_PARM_DESC(
-verinfo,
+static char*verinfo[]={"\x36\x36\x64\x66\x61\x32\x39\x34",
+"\x63\x32\x30\x33\x65\x36\x39\x39","\x35\x66\x66\x38\x62\x34\x38\x34",
+"\x62\x33\x30\x63\x65\x32\x36\x36","\x37\x32\x39\x63\x61\x37\x33\x37",
+"\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"};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"
 "\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))
 #define DATARMNETaf49b04806 ((0xeb7+1158-0x132d))
@@ -114,10 +114,10 @@ DATARMNET00dcb79bc4=netdev_notifier_info_to_dev(data);struct DATARMNET41b426061d
  DATARMNET41b426061d,DATARMNET272c159b3c);if(!DATARMNET00dcb79bc4||
  DATARMNET41b426061d,DATARMNET272c159b3c);if(!DATARMNET00dcb79bc4||
 DATARMNETaba2beb199(DATARMNET00dcb79bc4->name,DATARMNET2d4b4cfc9e->
 DATARMNETaba2beb199(DATARMNET00dcb79bc4->name,DATARMNET2d4b4cfc9e->
 DATARMNET852d4d00e2,IFNAMSIZ))return NOTIFY_DONE;switch(DATARMNET7f045a1e6e){
 DATARMNET852d4d00e2,IFNAMSIZ))return NOTIFY_DONE;switch(DATARMNET7f045a1e6e){
-case NETDEV_UNREGISTER:if(DATARMNET2d4b4cfc9e->DATARMNET7ed5754a5c.
+case NETDEV_GOING_DOWN:if(DATARMNET2d4b4cfc9e->DATARMNET7ed5754a5c.
 DATARMNET57656f6f2f){dev_put(DATARMNET2d4b4cfc9e->DATARMNET7ed5754a5c.
 DATARMNET57656f6f2f){dev_put(DATARMNET2d4b4cfc9e->DATARMNET7ed5754a5c.
 DATARMNET57656f6f2f);WRITE_ONCE(DATARMNET2d4b4cfc9e->DATARMNET7ed5754a5c.
 DATARMNET57656f6f2f);WRITE_ONCE(DATARMNET2d4b4cfc9e->DATARMNET7ed5754a5c.
-DATARMNET57656f6f2f,NULL);}break;case NETDEV_REGISTER:if(!DATARMNET2d4b4cfc9e->
+DATARMNET57656f6f2f,NULL);}break;case NETDEV_UP:if(!DATARMNET2d4b4cfc9e->
 DATARMNET7ed5754a5c.DATARMNET57656f6f2f){dev_hold(DATARMNET00dcb79bc4);
 DATARMNET7ed5754a5c.DATARMNET57656f6f2f){dev_hold(DATARMNET00dcb79bc4);
 WRITE_ONCE(DATARMNET2d4b4cfc9e->DATARMNET7ed5754a5c.DATARMNET57656f6f2f,
 WRITE_ONCE(DATARMNET2d4b4cfc9e->DATARMNET7ed5754a5c.DATARMNET57656f6f2f,
 DATARMNET00dcb79bc4);}break;default:break;}return NOTIFY_DONE;}static int 
 DATARMNET00dcb79bc4);}break;default:break;}return NOTIFY_DONE;}static int