ソースを参照

rmnet_wlan: I19cce4bd8c763f185fc8740bfe77639c372db3a1

Updates the module to version I19cce4bd8c763f185fc8740bfe77639c372db3a1.

Change-Id: I500fc85707632ea849ca47d602dfc7526f229c0a
Signed-off-by: Sean Tranchetti <[email protected]>
Sean Tranchetti 4 年 前
コミット
51dcd0c035
5 ファイル変更128 行追加26 行削除
  1. 3 2
      wlan/rmnet_wlan.h
  2. 19 16
      wlan/rmnet_wlan_connection.c
  3. 4 4
      wlan/rmnet_wlan_genl.c
  4. 100 3
      wlan/rmnet_wlan_main.c
  5. 2 1
      wlan/rmnet_wlan_stats.h

+ 3 - 2
wlan/rmnet_wlan.h

@@ -15,8 +15,9 @@ struct DATARMNETb89ecedefc{union{__be16 DATARMNETf0d9de7e2f;__be32
 DATARMNET906b2ee561;};u8 DATARMNET0d956cc77a;u8 DATARMNET4924e79411;};struct 
 DATARMNET8d3c2559ca{struct net_device*DATARMNET57656f6f2f;union{__be32 
 DATARMNET0dc14167a1;struct in6_addr DATARMNET5700daac01;};u8 DATARMNET0d956cc77a
-;};int DATARMNET4899053671(struct sk_buff*DATARMNET543491eb0f,struct 
-DATARMNET8d3c2559ca*DATARMNET2d4b4cfc9e);bool DATARMNET4eafcdee07(struct 
+;};void DATARMNET7ca470d54b(struct sk_buff*DATARMNET543491eb0f,u32 
+DATARMNET1464100e7a);int DATARMNET4899053671(struct sk_buff*DATARMNET543491eb0f,
+struct DATARMNET8d3c2559ca*DATARMNET2d4b4cfc9e);bool DATARMNET4eafcdee07(struct 
 DATARMNETb89ecedefc*DATARMNET3396919a68);int DATARMNET53f12a0f7d(struct 
 DATARMNETb89ecedefc*DATARMNETcadc2ef9aa,u32 DATARMNETef77661260,struct genl_info
 *DATARMNET54338da2ff);int DATARMNET07f6485c9b(struct DATARMNETb89ecedefc*

+ 19 - 16
wlan/rmnet_wlan_connection.c

@@ -55,7 +55,8 @@ pkt_type==PACKET_LOOPBACK)goto DATARMNETbf4095f79e;if(DATARMNET543491eb0f->
 protocol==htons(ETH_P_IP)){struct iphdr*DATARMNET86f1f2cdc9,DATARMNETbf6548198e;
 DATARMNET86f1f2cdc9=skb_header_pointer(DATARMNET543491eb0f,(0xd2d+202-0xdf7),
 sizeof(*DATARMNET86f1f2cdc9),&DATARMNETbf6548198e);if(!DATARMNET86f1f2cdc9)goto 
-DATARMNETbf4095f79e;if(DATARMNET86f1f2cdc9->protocol!=IPPROTO_ICMP)goto 
+DATARMNETbf4095f79e;if(DATARMNET86f1f2cdc9->protocol==IPPROTO_TCP)goto 
+DATARMNET9b3d23a43b;if(DATARMNET86f1f2cdc9->protocol!=IPPROTO_ICMP)goto 
 DATARMNETbf4095f79e;DATARMNETa76763310b.DATARMNETdfe430c2d6=DATARMNET86f1f2cdc9
 ->saddr;DATARMNETa76763310b.DATARMNET2cb607d686=DATARMNET86f1f2cdc9->daddr;
 DATARMNETa76763310b.DATARMNET0d956cc77a=(0xd11+230-0xdf3);}else if(
@@ -67,12 +68,13 @@ DATARMNETbf4095f79e;DATARMNET65293f17c4=DATARMNETbf55123e5b->nexthdr;if(
 ipv6_skip_exthdr(DATARMNET543491eb0f,sizeof(*DATARMNETbf55123e5b),&
 DATARMNET65293f17c4,&frag_off)<(0xd2d+202-0xdf7))goto DATARMNETbf4095f79e;if(
 frag_off&&DATARMNET65293f17c4==NEXTHDR_FRAGMENT)goto DATARMNETbf4095f79e;if(
-DATARMNET65293f17c4!=IPPROTO_ICMPV6)goto DATARMNETbf4095f79e;memcpy(&
-DATARMNETa76763310b.DATARMNET815cbb4bf5,&DATARMNETbf55123e5b->saddr,sizeof(
-DATARMNETa76763310b.DATARMNET815cbb4bf5));memcpy(&DATARMNETa76763310b.
-DATARMNETc3f31215b7,&DATARMNETbf55123e5b->daddr,sizeof(DATARMNETa76763310b.
-DATARMNETc3f31215b7));DATARMNETa76763310b.DATARMNET0d956cc77a=(0xd03+244-0xdf1);
-}else{goto DATARMNETbf4095f79e;}rcu_read_lock();hash_for_each_possible_rcu(
+DATARMNET65293f17c4==IPPROTO_TCP)goto DATARMNET9b3d23a43b;if(DATARMNET65293f17c4
+!=IPPROTO_ICMPV6)goto DATARMNETbf4095f79e;memcpy(&DATARMNETa76763310b.
+DATARMNET815cbb4bf5,&DATARMNETbf55123e5b->saddr,sizeof(DATARMNETa76763310b.
+DATARMNET815cbb4bf5));memcpy(&DATARMNETa76763310b.DATARMNETc3f31215b7,&
+DATARMNETbf55123e5b->daddr,sizeof(DATARMNETa76763310b.DATARMNETc3f31215b7));
+DATARMNETa76763310b.DATARMNET0d956cc77a=(0xd03+244-0xdf1);}else{goto 
+DATARMNETbf4095f79e;}rcu_read_lock();hash_for_each_possible_rcu(
 DATARMNET5413d6f8ec,DATARMNET63b1a086d5,DATARMNETe8608dd267,DATARMNETa76763310b.
 DATARMNET2cb607d686){if(!DATARMNET5f3c9ed4da(&DATARMNET63b1a086d5->
 DATARMNET54338da2ff,&DATARMNETa76763310b))continue;if(likely(hrtimer_is_queued(&
@@ -91,15 +93,16 @@ DATARMNET299a8a08b5;hrtimer_start(&DATARMNET63b1a086d5->DATARMNET9f31ce5d2d,
 DATARMNET5da8c68c19,HRTIMER_MODE_REL);hash_add_rcu(DATARMNET5413d6f8ec,&
 DATARMNET63b1a086d5->DATARMNETe8608dd267,DATARMNETa76763310b.DATARMNET2cb607d686
 );spin_unlock_irqrestore(&DATARMNET820642743b,DATARMNETfb0677cc3c);
-DATARMNETbf4095f79e:return RX_HANDLER_PASS;}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(!
+DATARMNETbf4095f79e:return RX_HANDLER_PASS;DATARMNET9b3d23a43b:
+DATARMNET7ca470d54b(DATARMNET543491eb0f,TCP_FLAG_SYN);return RX_HANDLER_PASS;}
+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||strncmp(DATARMNET00dcb79bc4->name,
 "\x72\x5f\x72\x6d\x6e\x65\x74\x5f\x64\x61\x74\x61",(0xd19+238-0xdfb)))return 
 NOTIFY_DONE;if(!strncmp(DATARMNET00dcb79bc4->name,

+ 4 - 4
wlan/rmnet_wlan_genl.c

@@ -110,7 +110,7 @@ DATARMNET4306ab415b,(0xd2d+202-0xdf7),(0xec7+1166-0x132d));memcpy(
 DATARMNET4306ab415b,DATARMNETc5a5c7fda2,DATARMNETdb8d3e0f02>(0xec7+1166-0x132d)?
 (0xec7+1166-0x132d):DATARMNETdb8d3e0f02);DATARMNETab6f68a65c=DATARMNET4306ab415b
 ;while(len<=DATARMNETdb8d3e0f02){if(DATARMNET4306ab415b[len]!=
-((char)(0x8a+8919-0x2327))&&DATARMNET4306ab415b[len]!='\0'){len++;continue;}
+((char)(0x5a2+5525-0x1afd))&&DATARMNET4306ab415b[len]!='\0'){len++;continue;}
 DATARMNET4306ab415b[len]='\0';DATARMNETb14e52a504=kstrtou16((const char*)
 DATARMNETab6f68a65c,(0xeb7+1158-0x132d),&DATARMNET87504a9b3a);if(
 DATARMNETb14e52a504)return(0xd2d+202-0xdf7);DATARMNET1be23954c3[
@@ -127,7 +127,7 @@ DATARMNET87504a9b3a=(0xd2d+202-0xdf7);memset(DATARMNET4306ab415b,
 (0xd2d+202-0xdf7),(0xeb7+1158-0x132d));memcpy(DATARMNET4306ab415b,
 DATARMNETc5a5c7fda2,DATARMNETdb8d3e0f02>(0xeb7+1158-0x132d)?(0xeb7+1158-0x132d):
 DATARMNETdb8d3e0f02);DATARMNETab6f68a65c=DATARMNET4306ab415b;while(len<=
-DATARMNETdb8d3e0f02){if(DATARMNET4306ab415b[len]!=((char)(0x18d0+974-0x1c70))&&
+DATARMNETdb8d3e0f02){if(DATARMNET4306ab415b[len]!=((char)(0xd3+306-0x1d7))&&
 DATARMNET4306ab415b[len]!='\0'){len++;continue;}DATARMNET4306ab415b[len]='\0';
 DATARMNETb14e52a504=kstrtou8((const char*)DATARMNETab6f68a65c,(0xd2d+202-0xdf7),
 &DATARMNET87504a9b3a);if(DATARMNETb14e52a504)return(0xd2d+202-0xdf7);
@@ -143,7 +143,7 @@ GENL_SET_ERR_MSG(DATARMNET54338da2ff,
 "\x4d\x75\x73\x74\x20\x73\x70\x65\x63\x69\x66\x79\x20\x46\x57\x44\x20\x64\x65\x76\x69\x63\x65\x20\x61\x6e\x64\x20\x61\x64\x64\x72\x65\x73\x73"
 );return-EINVAL;}DATARMNETef7cdd7b6b=DATARMNET54338da2ff->attrs[
 DATARMNETea4b56dc2b];DATARMNETd7f4d7c495=nla_data(DATARMNETef7cdd7b6b);if(strchr
-(DATARMNETd7f4d7c495,((char)(0x1d68+1264-0x221e)))){if(DATARMNETb58e83bef5(
+(DATARMNETd7f4d7c495,((char)(0x9e2+7400-0x2690)))){if(DATARMNETb58e83bef5(
 DATARMNETd7f4d7c495,nla_len(DATARMNETef7cdd7b6b),DATARMNET2d4b4cfc9e.
 DATARMNET5700daac01.s6_addr)!=(0xd26+209-0xdf6)){GENL_SET_ERR_MSG(
 DATARMNET54338da2ff,
@@ -170,7 +170,7 @@ GENL_SET_ERR_MSG(DATARMNET54338da2ff,
 "\x4d\x75\x73\x74\x20\x73\x70\x65\x63\x69\x66\x79\x20\x46\x57\x44\x20\x64\x65\x76\x69\x63\x65\x20\x61\x6e\x64\x20\x61\x64\x64\x72\x65\x73\x73"
 );return-EINVAL;}DATARMNETef7cdd7b6b=DATARMNET54338da2ff->attrs[
 DATARMNETea4b56dc2b];DATARMNETd7f4d7c495=nla_data(DATARMNETef7cdd7b6b);if(strchr
-(DATARMNETd7f4d7c495,((char)(0x1352+1724-0x19d4)))){if(DATARMNETb58e83bef5(
+(DATARMNETd7f4d7c495,((char)(0x867+4466-0x199f)))){if(DATARMNETb58e83bef5(
 DATARMNETd7f4d7c495,nla_len(DATARMNETef7cdd7b6b),DATARMNET2d4b4cfc9e.
 DATARMNET5700daac01.s6_addr)!=(0xd26+209-0xdf6)){GENL_SET_ERR_MSG(
 DATARMNET54338da2ff,

+ 100 - 3
wlan/rmnet_wlan_main.c

@@ -11,6 +11,7 @@
 #include <net/netlink.h>
 #include <net/ip.h>
 #include <net/ipv6.h>
+#include <net/tcp.h>
 #include <linux/rcupdate.h>
 #include <linux/list.h>
 #include <linux/rculist.h>
@@ -233,12 +234,108 @@ unregister_netdevice_notifier(&DATARMNETa1726000d8);if(!DATARMNET268a8314cf)
 DATARMNET30500ba48c[(0xd2d+202-0xdf7)]=(0xd2d+202-0xdf7);return 
 DATARMNET268a8314cf;}static void DATARMNETbb4efa5b3d(void){DATARMNET116f9a46aa()
 ;DATARMNETfbd1701415=(0xd2d+202-0xdf7);DATARMNET8c0e010dfb();DATARMNETe5b03fe375
-();DATARMNETad43e44c7e();}int DATARMNET4899053671(struct sk_buff*
+();DATARMNETad43e44c7e();}static int DATARMNET38ebe8f319(struct sk_buff*
+DATARMNET543491eb0f,int DATARMNET1faf88208b){if(!pskb_may_pull(
+DATARMNET543491eb0f,DATARMNET1faf88208b))return-ENOMEM;if(!skb_cloned(
+DATARMNET543491eb0f)||skb_clone_writable(DATARMNET543491eb0f,DATARMNET1faf88208b
+))return(0xd2d+202-0xdf7);return pskb_expand_head(DATARMNET543491eb0f,
+(0xd2d+202-0xdf7),(0xd2d+202-0xdf7),GFP_ATOMIC);}static void DATARMNET9a8d756527
+(__sum16*DATARMNETc2284e5688,struct sk_buff*DATARMNET543491eb0f,__be32 
+DATARMNET9080427d4e,__be32 DATARMNETc0e620c987,bool DATARMNETcb0345b337){if(
+DATARMNET543491eb0f->ip_summed!=CHECKSUM_PARTIAL){csum_replace4(
+DATARMNETc2284e5688,DATARMNET9080427d4e,DATARMNETc0e620c987);if(
+DATARMNET543491eb0f->ip_summed==CHECKSUM_COMPLETE&&DATARMNETcb0345b337){
+DATARMNET543491eb0f->csum=csum_sub(~(DATARMNET543491eb0f->csum),(__wsum)
+DATARMNET9080427d4e);DATARMNET543491eb0f->csum=~csum_add(DATARMNET543491eb0f->
+csum,(__wsum)DATARMNETc0e620c987);}}else if(DATARMNETcb0345b337){__wsum 
+DATARMNET0386f6f82a=csum_unfold(*DATARMNETc2284e5688);DATARMNET0386f6f82a=
+csum_sub(DATARMNET0386f6f82a,(__wsum)DATARMNET9080427d4e);DATARMNET0386f6f82a=
+csum_add(DATARMNET0386f6f82a,(__wsum)DATARMNETc0e620c987);*DATARMNETc2284e5688=~
+csum_fold(DATARMNET0386f6f82a);}}static void DATARMNETc03853e26d(__sum16*
+DATARMNETc2284e5688,struct sk_buff*DATARMNET543491eb0f,__be16 
+DATARMNET9080427d4e,__be16 DATARMNETc0e620c987,bool DATARMNETcb0345b337){
+DATARMNET9a8d756527(DATARMNETc2284e5688,DATARMNET543491eb0f,(__be32)
+DATARMNET9080427d4e,(__be32)DATARMNETc0e620c987,DATARMNETcb0345b337);}static 
+unsigned int DATARMNET7060ca9a47(u8*DATARMNET54fdee4fda,unsigned int 
+DATARMNET6396f657b3){if(DATARMNET54fdee4fda[DATARMNET6396f657b3]==TCPOPT_EOL||
+DATARMNET54fdee4fda[DATARMNET6396f657b3]==TCPOPT_NOP||!DATARMNET54fdee4fda[
+DATARMNET6396f657b3+(0xd26+209-0xdf6)])return(0xd26+209-0xdf6);return 
+DATARMNET54fdee4fda[DATARMNET6396f657b3+(0xd26+209-0xdf6)];}void 
+DATARMNET7ca470d54b(struct sk_buff*DATARMNET543491eb0f,u32 DATARMNET1464100e7a){
+struct tcphdr*DATARMNET668416551c;u8 DATARMNET630b15102e[(0xf07+1090-0x130d)];u8
+*DATARMNET54fdee4fda;__be16 DATARMNETdda9f3dd51=htons((0xef7+3481-0x181c));u16 
+DATARMNET611d08d671;u16 DATARMNET7fa3427233;unsigned int DATARMNETefc9df3df2;
+__be32 DATARMNET572f0d1999;u8 DATARMNET0d956cc77a;if(DATARMNET543491eb0f->
+protocol==htons(ETH_P_IP)){struct iphdr*DATARMNET86f1f2cdc9,DATARMNETbf6548198e;
+DATARMNET0d956cc77a=(0xd11+230-0xdf3);DATARMNET86f1f2cdc9=skb_header_pointer(
+DATARMNET543491eb0f,(0xd2d+202-0xdf7),sizeof(*DATARMNET86f1f2cdc9),&
+DATARMNETbf6548198e);if(!DATARMNET86f1f2cdc9)goto DATARMNET268a8314cf;if(
+DATARMNET86f1f2cdc9->protocol!=IPPROTO_TCP)goto DATARMNETed6aa0a77f;
+DATARMNET611d08d671=DATARMNET86f1f2cdc9->ihl*(0xd11+230-0xdf3);}else if(
+DATARMNET543491eb0f->protocol==htons(ETH_P_IPV6)){struct ipv6hdr*
+DATARMNETbf55123e5b,DATARMNETcf1d9e2c1e;__be16 frag_off;u8 DATARMNETa8d8445982;
+DATARMNET0d956cc77a=(0xd03+244-0xdf1);DATARMNETbf55123e5b=skb_header_pointer(
+DATARMNET543491eb0f,(0xd2d+202-0xdf7),sizeof(*DATARMNETbf55123e5b),&
+DATARMNETcf1d9e2c1e);if(!DATARMNETbf55123e5b)goto DATARMNET268a8314cf;
+DATARMNETa8d8445982=DATARMNETbf55123e5b->nexthdr;DATARMNET611d08d671=
+ipv6_skip_exthdr(DATARMNET543491eb0f,sizeof(*DATARMNETbf55123e5b),&
+DATARMNETa8d8445982,&frag_off);if(DATARMNET611d08d671<(0xd2d+202-0xdf7))goto 
+DATARMNET268a8314cf;if(DATARMNETa8d8445982!=IPPROTO_TCP)goto DATARMNETed6aa0a77f
+;}else{goto DATARMNET268a8314cf;}DATARMNET668416551c=skb_header_pointer(
+DATARMNET543491eb0f,DATARMNET611d08d671,sizeof(*DATARMNET668416551c),&
+DATARMNET630b15102e);if(!DATARMNET668416551c)goto DATARMNET268a8314cf;if(!(
+tcp_flag_word(DATARMNET668416551c)&DATARMNET1464100e7a))goto DATARMNETed6aa0a77f
+;DATARMNET7fa3427233=DATARMNET668416551c->doff*(0xd11+230-0xdf3);if(
+DATARMNET38ebe8f319(DATARMNET543491eb0f,DATARMNET611d08d671+DATARMNET7fa3427233)
+)goto DATARMNET268a8314cf;DATARMNET668416551c=skb_header_pointer(
+DATARMNET543491eb0f,DATARMNET611d08d671,DATARMNET7fa3427233,&DATARMNET630b15102e
+);if(!DATARMNET668416551c)goto DATARMNET268a8314cf;DATARMNET54fdee4fda=(u8*)
+DATARMNET668416551c;for(DATARMNETefc9df3df2=sizeof(*DATARMNET668416551c);
+DATARMNETefc9df3df2<DATARMNET7fa3427233;DATARMNETefc9df3df2+=DATARMNET7060ca9a47
+(DATARMNET54fdee4fda,DATARMNETefc9df3df2)){__be16*DATARMNETb3032fac16;if(
+DATARMNET54fdee4fda[DATARMNETefc9df3df2]!=TCPOPT_MSS||DATARMNET54fdee4fda[
+DATARMNETefc9df3df2+(0xd26+209-0xdf6)]!=TCPOLEN_MSS)continue;DATARMNETb3032fac16
+=(__be16*)(&DATARMNET54fdee4fda[DATARMNETefc9df3df2+(0xd1f+216-0xdf5)]);if(*
+DATARMNETb3032fac16<=DATARMNETdda9f3dd51)goto DATARMNETed6aa0a77f;
+DATARMNETc03853e26d(&DATARMNET668416551c->check,DATARMNET543491eb0f,*
+DATARMNETb3032fac16,DATARMNETdda9f3dd51,false);*DATARMNETb3032fac16=
+DATARMNETdda9f3dd51;DATARMNET5ca94dbc3c(DATARMNETef2af4f071);return;}if(
+DATARMNET543491eb0f->len>DATARMNET611d08d671+DATARMNET7fa3427233||
+DATARMNET7fa3427233>=(0xf07+1090-0x130d))goto DATARMNETed6aa0a77f;if(
+skb_tailroom(DATARMNET543491eb0f)<TCPOLEN_MSS){if(pskb_expand_head(
+DATARMNET543491eb0f,(0xd2d+202-0xdf7),TCPOLEN_MSS-skb_tailroom(
+DATARMNET543491eb0f),GFP_ATOMIC))goto DATARMNET268a8314cf;DATARMNET668416551c=
+skb_header_pointer(DATARMNET543491eb0f,DATARMNET611d08d671,DATARMNET7fa3427233,&
+DATARMNET630b15102e);if(!DATARMNET668416551c)goto DATARMNET268a8314cf;}
+DATARMNETc03853e26d(&DATARMNET668416551c->check,DATARMNET543491eb0f,htons(
+DATARMNET543491eb0f->len-DATARMNET611d08d671),htons(DATARMNET543491eb0f->len-
+DATARMNET611d08d671+TCPOLEN_MSS),true);DATARMNET54fdee4fda=skb_put(
+DATARMNET543491eb0f,TCPOLEN_MSS);if(DATARMNET0d956cc77a==(0xd11+230-0xdf3))
+DATARMNETdda9f3dd51=htons(min_t(u16,ntohs(DATARMNETdda9f3dd51),
+(0x545+2434-0xcaf)));else DATARMNETdda9f3dd51=htons(min_t(u16,ntohs(
+DATARMNETdda9f3dd51),(0xbf7+4058-0x170d)));DATARMNET54fdee4fda[(0xd2d+202-0xdf7)
+]=TCPOPT_MSS;DATARMNET54fdee4fda[(0xd26+209-0xdf6)]=TCPOLEN_MSS;*((__be16*)(
+DATARMNET54fdee4fda+(0xd1f+216-0xdf5)))=DATARMNETdda9f3dd51;DATARMNET9a8d756527(
+&DATARMNET668416551c->check,DATARMNET543491eb0f,(0xd2d+202-0xdf7),*((__be32*)
+DATARMNET54fdee4fda),false);DATARMNET572f0d1999=tcp_flag_word(
+DATARMNET668416551c);DATARMNET668416551c->doff++;DATARMNET9a8d756527(&
+DATARMNET668416551c->check,DATARMNET543491eb0f,DATARMNET572f0d1999,tcp_flag_word
+(DATARMNET668416551c),false);if(DATARMNET0d956cc77a==(0xd11+230-0xdf3)){struct 
+iphdr*DATARMNET86f1f2cdc9=ip_hdr(DATARMNET543491eb0f);csum_replace2(&
+DATARMNET86f1f2cdc9->check,DATARMNET86f1f2cdc9->tot_len,htons(
+DATARMNET543491eb0f->len));DATARMNET86f1f2cdc9->tot_len=htons(
+DATARMNET543491eb0f->len);}else{struct ipv6hdr*DATARMNETbf55123e5b=ipv6_hdr(
+DATARMNET543491eb0f);DATARMNETbf55123e5b->payload_len=htons(ntohs(
+DATARMNETbf55123e5b->payload_len)+TCPOLEN_MSS);}DATARMNET5ca94dbc3c(
+DATARMNETef2af4f071);return;DATARMNETed6aa0a77f:DATARMNET5ca94dbc3c(
+DATARMNETebc1b87b7d);return;DATARMNET268a8314cf:DATARMNET5ca94dbc3c(
+DATARMNET21bdbe6a27);return;}int DATARMNET4899053671(struct sk_buff*
 DATARMNET543491eb0f,struct DATARMNET8d3c2559ca*DATARMNET54338da2ff){struct 
 net_device*DATARMNET00dcb79bc4;DATARMNET00dcb79bc4=READ_ONCE(DATARMNET54338da2ff
 ->DATARMNET57656f6f2f);if(!DATARMNET00dcb79bc4){DATARMNET5ca94dbc3c(
-DATARMNET591885a019);return-ENODEV;}DATARMNET543491eb0f->dev=DATARMNET00dcb79bc4
-;dev_queue_xmit(DATARMNET543491eb0f);DATARMNET5ca94dbc3c(DATARMNETf4c2a83526);
+DATARMNET591885a019);return-ENODEV;}DATARMNET7ca470d54b(DATARMNET543491eb0f,
+TCP_FLAG_SYN|TCP_FLAG_ACK);DATARMNET543491eb0f->dev=DATARMNET00dcb79bc4;
+dev_queue_xmit(DATARMNET543491eb0f);DATARMNET5ca94dbc3c(DATARMNETf4c2a83526);
 return(0xd2d+202-0xdf7);}bool DATARMNET4eafcdee07(struct DATARMNETb89ecedefc*
 DATARMNET3396919a68)__must_hold(RCU){struct DATARMNET745f724205*
 DATARMNET63b1a086d5;hash_for_each_possible_rcu(DATARMNET1903907456,

+ 2 - 1
wlan/rmnet_wlan_stats.h

@@ -11,6 +11,7 @@
 enum{DATARMNET12d881921a,DATARMNET9f24b86462,DATARMNET735bb8578c,
 DATARMNETf4c2a83526,DATARMNET591885a019,DATARMNETd8273aa7e1,DATARMNET7a58a5c1fc,
 DATARMNETba232077da,DATARMNETe75ad1a949,DATARMNETd691057b85,DATARMNETd1ad664d00,
-DATARMNETc6bf075f65,};void DATARMNET5ca94dbc3c(u32 DATARMNET248f120dd5);
+DATARMNETef2af4f071,DATARMNETebc1b87b7d,DATARMNET21bdbe6a27,DATARMNETc6bf075f65,
+};void DATARMNET5ca94dbc3c(u32 DATARMNET248f120dd5);
 #endif