Просмотр исходного кода

rmnet_offload: I5146b3a016ef65b3e645138d1481f755cf1134a2

Updates the module to version I5146b3a016ef65b3e645138d1481f755cf1134a2.

Change-Id: I8cd4cf63a7e78c6f291f6065857eb9b1a441db44
Signed-off-by: Sean Tranchetti <[email protected]>
Sean Tranchetti 4 лет назад
Родитель
Сommit
11beb3d481

+ 88 - 103
offload/rmnet_offload_engine.c

@@ -28,10 +28,10 @@ DATARMNET1993bae165(u8 DATARMNET06d2413ad2){struct DATARMNETd7c9631acd*
 DATARMNET7c382e536d;int DATARMNETae0201901a;u32 DATARMNET737bbd41c3=
 (0xd2d+202-0xdf7);hash_for_each(DATARMNET4791268d67,DATARMNETae0201901a,
 DATARMNET7c382e536d,DATARMNETbd5d7d96d8){if(DATARMNET7c382e536d->
-DATARMNET1db11fa85e&&DATARMNET7c382e536d->DATARMNET550ca047ee==
-DATARMNET06d2413ad2){DATARMNET737bbd41c3++;DATARMNETa3055c21f2(
-DATARMNET7c382e536d);}}return DATARMNET737bbd41c3;}static bool 
-DATARMNET2013036d80(u8 DATARMNET06d2413ad2){u64 DATARMNET3924f3f9e3;
+DATARMNET1db11fa85e&&DATARMNET7c382e536d->DATARMNET78fd20ce0e.
+DATARMNET7fa8b2acbf==DATARMNET06d2413ad2){DATARMNET737bbd41c3++;
+DATARMNETa3055c21f2(DATARMNET7c382e536d);}}return DATARMNET737bbd41c3;}static 
+bool DATARMNET2013036d80(u8 DATARMNET06d2413ad2){u64 DATARMNET3924f3f9e3;
 DATARMNET3924f3f9e3=DATARMNETf1d1b8287f(DATARMNET6d2ed4b822);if(
 DATARMNET3924f3f9e3==DATARMNET2d89680280)return true;if(DATARMNET3924f3f9e3==
 DATARMNET03daf91a60&&DATARMNET06d2413ad2==DATARMNETfd5c3d30e5)return true;if(
@@ -39,48 +39,42 @@ DATARMNET3924f3f9e3==DATARMNET88a9920663&&DATARMNET06d2413ad2==
 DATARMNETa656f324b2)return true;return false;}static bool DATARMNET5a0f9fc3a2(
 struct DATARMNETd7c9631acd*DATARMNETaa568481cf,struct DATARMNETd812bcdbb5*
 DATARMNET5fe4c722a8){if(!DATARMNETaa568481cf->DATARMNET1db11fa85e)return false;
-if(DATARMNET5fe4c722a8->DATARMNETaebe0581f2==(0xd11+230-0xdf3)){struct 
-DATARMNET308c06fca6*DATARMNET699c2c62cd,*DATARMNET8814564ab9;DATARMNET699c2c62cd
-=DATARMNETaa568481cf->DATARMNETc1529262df;DATARMNET8814564ab9=
-DATARMNET5fe4c722a8->DATARMNET1469d7a840;if(DATARMNET699c2c62cd->
-DATARMNET1eb6c27583^DATARMNET8814564ab9->DATARMNET1eb6c27583||
-DATARMNET699c2c62cd->DATARMNET03e081f69f^DATARMNET8814564ab9->
-DATARMNET03e081f69f||DATARMNET699c2c62cd->DATARMNET2c091223da^
-DATARMNET8814564ab9->DATARMNET2c091223da||DATARMNET699c2c62cd->
-DATARMNET610d06a887^DATARMNET8814564ab9->DATARMNET610d06a887)return true;}else 
-if(DATARMNET5fe4c722a8->DATARMNETaebe0581f2==(0xd03+244-0xdf1)){__be32 
-DATARMNET25ffacbec5,DATARMNETb351dd927f;__be32 DATARMNET9422f16113;
-DATARMNET25ffacbec5=DATARMNETaa568481cf->DATARMNET6f0af6e7b3->
-DATARMNET0687f7ecdc;DATARMNETb351dd927f=DATARMNET5fe4c722a8->DATARMNET5559b05582
-->DATARMNET0687f7ecdc;DATARMNET9422f16113=DATARMNET25ffacbec5^
-DATARMNETb351dd927f;if(DATARMNET9422f16113&htonl(267386880))return true;}return 
-false;}static bool DATARMNET6895620058(struct DATARMNETd7c9631acd*
-DATARMNETaa568481cf,struct DATARMNETd812bcdbb5*DATARMNET5fe4c722a8){__be16 
-DATARMNETe085e1d838,DATARMNET487536824f,DATARMNETa664f6ed60,DATARMNET49b96367a2;
-if(!DATARMNETaa568481cf->DATARMNET1db11fa85e)return DATARMNETaa568481cf->
-DATARMNET381f1cadc4==DATARMNET5fe4c722a8->DATARMNET645e8912b8;if(
-DATARMNETaa568481cf->DATARMNET550ca047ee!=DATARMNET5fe4c722a8->
-DATARMNET098910da0f)return false;DATARMNETe085e1d838=DATARMNETaa568481cf->
-DATARMNET8600531f31->DATARMNET1b1c406ae9;DATARMNETa664f6ed60=DATARMNETaa568481cf
-->DATARMNET8600531f31->DATARMNETdf0e8545ee;DATARMNET487536824f=
-DATARMNET5fe4c722a8->DATARMNET0da3c8035d->DATARMNET1b1c406ae9;
-DATARMNET49b96367a2=DATARMNET5fe4c722a8->DATARMNET0da3c8035d->
-DATARMNETdf0e8545ee;if(DATARMNETe085e1d838^DATARMNET487536824f||
-DATARMNETa664f6ed60^DATARMNET49b96367a2)return false;if(DATARMNET5fe4c722a8->
-DATARMNETaebe0581f2==(0xd11+230-0xdf3)){struct DATARMNET308c06fca6*
-DATARMNET699c2c62cd,*DATARMNET8814564ab9;DATARMNET699c2c62cd=DATARMNETaa568481cf
-->DATARMNETc1529262df;DATARMNET8814564ab9=DATARMNET5fe4c722a8->
-DATARMNET1469d7a840;if(DATARMNET699c2c62cd->DATARMNET9bbd2ca483^
-DATARMNET8814564ab9->DATARMNET9bbd2ca483||DATARMNET699c2c62cd->
-DATARMNET11ef55b2bb^DATARMNET8814564ab9->DATARMNET11ef55b2bb)return false;}else 
-if(DATARMNET5fe4c722a8->DATARMNETaebe0581f2==(0xd03+244-0xdf1)){struct 
-DATARMNET64bb8f616e*DATARMNET699c2c62cd,*DATARMNET8814564ab9;DATARMNET699c2c62cd
-=DATARMNETaa568481cf->DATARMNET6f0af6e7b3;DATARMNET8814564ab9=
-DATARMNET5fe4c722a8->DATARMNET5559b05582;if(memcmp(DATARMNET699c2c62cd->
-DATARMNET31202449fc,DATARMNET8814564ab9->DATARMNET31202449fc,sizeof(
-DATARMNET8814564ab9->DATARMNET31202449fc))||memcmp(DATARMNET699c2c62cd->
-DATARMNETc657c0a139,DATARMNET8814564ab9->DATARMNETc657c0a139,sizeof(
-DATARMNET8814564ab9->DATARMNETc657c0a139)))return false;}else{return false;}
+if(DATARMNET5fe4c722a8->DATARMNET144d119066.DATARMNET388842c721==
+(0xd11+230-0xdf3)){struct DATARMNET4287f07234*DATARMNET699c2c62cd,*
+DATARMNET8814564ab9;DATARMNET699c2c62cd=&DATARMNETaa568481cf->
+DATARMNET78fd20ce0e;DATARMNET8814564ab9=&DATARMNET5fe4c722a8->
+DATARMNET144d119066;if(DATARMNET699c2c62cd->DATARMNET19b03754c4^
+DATARMNET8814564ab9->DATARMNET19b03754c4||DATARMNET699c2c62cd->
+DATARMNET57bf608183^DATARMNET8814564ab9->DATARMNET57bf608183||
+DATARMNET699c2c62cd->DATARMNETcf915688f5^DATARMNET8814564ab9->
+DATARMNETcf915688f5||DATARMNET699c2c62cd->DATARMNET4ca5ac9de1^
+DATARMNET8814564ab9->DATARMNET4ca5ac9de1)return true;}else if(
+DATARMNET5fe4c722a8->DATARMNET144d119066.DATARMNET388842c721==(0xd03+244-0xdf1))
+{__be32 DATARMNET25ffacbec5,DATARMNETb351dd927f;__be32 DATARMNET9422f16113;
+DATARMNET25ffacbec5=DATARMNETaa568481cf->DATARMNET78fd20ce0e.DATARMNETabd58f7f89
+;DATARMNETb351dd927f=DATARMNET5fe4c722a8->DATARMNET144d119066.
+DATARMNETabd58f7f89;;DATARMNET9422f16113=DATARMNET25ffacbec5^DATARMNETb351dd927f
+;if(DATARMNET9422f16113&htonl(267386880))return true;}return false;}static bool 
+DATARMNET6895620058(struct DATARMNETd7c9631acd*DATARMNETaa568481cf,struct 
+DATARMNETd812bcdbb5*DATARMNET5fe4c722a8){struct DATARMNET4287f07234*
+DATARMNET699c2c62cd,*DATARMNET8814564ab9;DATARMNET699c2c62cd=&
+DATARMNETaa568481cf->DATARMNET78fd20ce0e;DATARMNET8814564ab9=&
+DATARMNET5fe4c722a8->DATARMNET144d119066;if(!DATARMNETaa568481cf->
+DATARMNET1db11fa85e)return DATARMNETaa568481cf->DATARMNET381f1cadc4==
+DATARMNET5fe4c722a8->DATARMNET645e8912b8;if(DATARMNET699c2c62cd->
+DATARMNET7fa8b2acbf!=DATARMNET8814564ab9->DATARMNET7fa8b2acbf)return false;if(
+DATARMNET699c2c62cd->DATARMNETa60d2ae3f6^DATARMNET8814564ab9->
+DATARMNETa60d2ae3f6||DATARMNET699c2c62cd->DATARMNET5e7452ec23^
+DATARMNET8814564ab9->DATARMNET5e7452ec23)return false;if(DATARMNET8814564ab9->
+DATARMNET388842c721==(0xd11+230-0xdf3)){if(DATARMNET699c2c62cd->
+DATARMNET1a2be7b6c2^DATARMNET8814564ab9->DATARMNET1a2be7b6c2||
+DATARMNET699c2c62cd->DATARMNET0a28fa80f4^DATARMNET8814564ab9->
+DATARMNET0a28fa80f4)return false;}else if(DATARMNET8814564ab9->
+DATARMNET388842c721==(0xd03+244-0xdf1)){if(memcmp(DATARMNET699c2c62cd->
+DATARMNET949c2754de,DATARMNET8814564ab9->DATARMNET949c2754de,sizeof(
+DATARMNET8814564ab9->DATARMNET949c2754de))||memcmp(DATARMNET699c2c62cd->
+DATARMNET45ec858bc5,DATARMNET8814564ab9->DATARMNET45ec858bc5,sizeof(
+DATARMNET8814564ab9->DATARMNET45ec858bc5)))return false;}else{return false;}
 return true;}static struct DATARMNETd7c9631acd*DATARMNETd41def0046(void){struct 
 DATARMNET70f3b87b5d*DATARMNETe05748b000=DATARMNETc2a630b113();struct 
 DATARMNET907d58c807*DATARMNETa6f73cbe10;struct DATARMNETd7c9631acd*
@@ -111,22 +105,23 @@ DATARMNETbad3b5165e(DATARMNETddf572458d,DATARMNET737bbd41c3);return
 (0xd2d+202-0xdf7);}void DATARMNETa3055c21f2(struct DATARMNETd7c9631acd*
 DATARMNETaa568481cf){struct DATARMNET70f3b87b5d*DATARMNETe05748b000=
 DATARMNETc2a630b113();struct rmnet_frag_descriptor*DATARMNETd74aeaa49a,*
-DATARMNETa1625e27e2,*DATARMNET0386f6f82a;u32 DATARMNETf333d55b33=
-DATARMNETaa568481cf->DATARMNETcf28ae376b+DATARMNETaa568481cf->
-DATARMNETac72629d22+DATARMNETaa568481cf->DATARMNET3f4e88ab44;if(!
-DATARMNETaa568481cf->DATARMNET1db11fa85e)return;DATARMNETd74aeaa49a=
-list_first_entry(&DATARMNETaa568481cf->DATARMNETb76b79d0d5,struct 
-rmnet_frag_descriptor,list);if(!DATARMNETd74aeaa49a->gso_segs)
-DATARMNETd74aeaa49a->gso_segs=(0xd26+209-0xdf6);DATARMNETd74aeaa49a->gso_size=
-DATARMNETaa568481cf->DATARMNET1978d5d8de;DATARMNETa1625e27e2=DATARMNETd74aeaa49a
-;list_for_each_entry_safe_continue(DATARMNETa1625e27e2,DATARMNET0386f6f82a,&
-DATARMNETaa568481cf->DATARMNETb76b79d0d5,list){if(DATARMNETa1625e27e2->hdr_ptr==
-rmnet_frag_data_ptr(DATARMNETa1625e27e2)){if(!rmnet_frag_pull(
-DATARMNETa1625e27e2,DATARMNETe05748b000->DATARMNET403589239f,DATARMNETaa568481cf
-->DATARMNETac72629d22+DATARMNETaa568481cf->DATARMNET3f4e88ab44))continue;}
-list_del(&DATARMNETa1625e27e2->list);list_add_tail(&DATARMNETa1625e27e2->list,&
-DATARMNETd74aeaa49a->sub_frags);DATARMNETd74aeaa49a->gso_segs+=(
-DATARMNETa1625e27e2->gso_segs)?:(0xd26+209-0xdf6);}DATARMNETd74aeaa49a->hash=
+DATARMNETa1625e27e2,*DATARMNET0386f6f82a;struct DATARMNET4287f07234*
+DATARMNET699c2c62cd=&DATARMNETaa568481cf->DATARMNET78fd20ce0e;u32 
+DATARMNET567bdc7221=DATARMNET699c2c62cd->DATARMNET4ca5ac9de1+DATARMNET699c2c62cd
+->DATARMNET0aeee57ceb;u32 DATARMNETf333d55b33=DATARMNETaa568481cf->
+DATARMNETcf28ae376b+DATARMNET567bdc7221;if(!DATARMNETaa568481cf->
+DATARMNET1db11fa85e)return;DATARMNETd74aeaa49a=list_first_entry(&
+DATARMNETaa568481cf->DATARMNETb76b79d0d5,struct rmnet_frag_descriptor,list);if(!
+DATARMNETd74aeaa49a->gso_segs)DATARMNETd74aeaa49a->gso_segs=(0xd26+209-0xdf6);
+DATARMNETd74aeaa49a->gso_size=DATARMNETaa568481cf->DATARMNET1978d5d8de;
+DATARMNETa1625e27e2=DATARMNETd74aeaa49a;list_for_each_entry_safe_continue(
+DATARMNETa1625e27e2,DATARMNET0386f6f82a,&DATARMNETaa568481cf->
+DATARMNETb76b79d0d5,list){u32 DATARMNET904423d5e4=DATARMNETa1625e27e2->len-
+DATARMNET567bdc7221;if(!rmnet_frag_descriptor_add_frags_from(DATARMNETd74aeaa49a
+,DATARMNETa1625e27e2,DATARMNET567bdc7221,DATARMNET904423d5e4))
+DATARMNETd74aeaa49a->gso_segs+=(DATARMNETa1625e27e2->gso_segs)?:
+(0xd26+209-0xdf6);rmnet_recycle_frag_descriptor(DATARMNETa1625e27e2,
+DATARMNETe05748b000->DATARMNET403589239f);}DATARMNETd74aeaa49a->hash=
 DATARMNETaa568481cf->DATARMNET381f1cadc4;DATARMNET58a244b2fe(DATARMNETd74aeaa49a
 ,DATARMNETf333d55b33);DATARMNETaa568481cf->DATARMNET1db11fa85e=(0xd2d+202-0xdf7)
 ;DATARMNETaa568481cf->DATARMNETcf28ae376b=(0xd2d+202-0xdf7);}void 
@@ -142,54 +137,44 @@ DATARMNETaa568481cf->DATARMNET1db11fa85e)DATARMNETa3055c21f2(DATARMNETaa568481cf
 DATARMNETa3055c21f2(DATARMNETaa568481cf);}}return DATARMNET737bbd41c3;}void 
 DATARMNET33aa5df9ef(struct DATARMNETd7c9631acd*DATARMNETaa568481cf,struct 
 DATARMNETd812bcdbb5*DATARMNET5fe4c722a8){if(DATARMNET5fe4c722a8->
-DATARMNETf1b6b0a6cc){DATARMNETaa568481cf->DATARMNET7e15783110=
-DATARMNET5fe4c722a8->DATARMNETaebe0581f2;DATARMNETaa568481cf->
-DATARMNETac72629d22=DATARMNET5fe4c722a8->DATARMNETbecebb23ac;DATARMNETaa568481cf
-->DATARMNETc1529262df=DATARMNET5fe4c722a8->DATARMNET1469d7a840;
-DATARMNETaa568481cf->DATARMNET550ca047ee=DATARMNET5fe4c722a8->
-DATARMNET098910da0f;DATARMNETaa568481cf->DATARMNET3f4e88ab44=DATARMNET5fe4c722a8
-->DATARMNET0ab9b2ce3b;DATARMNETaa568481cf->DATARMNET8cd2f78e4f=
-DATARMNET5fe4c722a8->DATARMNET96c6c71653;DATARMNETaa568481cf->
-DATARMNET381f1cadc4=DATARMNET5fe4c722a8->DATARMNET645e8912b8;DATARMNETaa568481cf
-->DATARMNET1978d5d8de=(DATARMNET5fe4c722a8->DATARMNET719f68fb88->gso_size)?:
-DATARMNET5fe4c722a8->DATARMNET1ef22e4c76;if(DATARMNET5fe4c722a8->
-DATARMNET098910da0f==DATARMNETfd5c3d30e5){__be32 DATARMNET0849981c7c;if(
-DATARMNET5fe4c722a8->DATARMNET719f68fb88->tcp_seq_set)DATARMNET0849981c7c=
-DATARMNET5fe4c722a8->DATARMNET719f68fb88->tcp_seq;else DATARMNET0849981c7c=
-DATARMNET5fe4c722a8->DATARMNET96c6c71653->DATARMNETb3e70104e0;
-DATARMNETaa568481cf->DATARMNETd3a1a2b9b5=ntohl(DATARMNET0849981c7c);}}if(
-DATARMNET5fe4c722a8->DATARMNET098910da0f==DATARMNETfd5c3d30e5)
-DATARMNETaa568481cf->DATARMNETd3a1a2b9b5+=DATARMNET5fe4c722a8->
+DATARMNETf1b6b0a6cc){memcpy(&DATARMNETaa568481cf->DATARMNET78fd20ce0e,&
+DATARMNET5fe4c722a8->DATARMNET144d119066,sizeof(DATARMNETaa568481cf->
+DATARMNET78fd20ce0e));DATARMNETaa568481cf->DATARMNET381f1cadc4=
+DATARMNET5fe4c722a8->DATARMNET645e8912b8;DATARMNETaa568481cf->
+DATARMNET1978d5d8de=(DATARMNET5fe4c722a8->DATARMNET719f68fb88->gso_size)?:
+DATARMNET5fe4c722a8->DATARMNET1ef22e4c76;}if(DATARMNET5fe4c722a8->
+DATARMNET144d119066.DATARMNET7fa8b2acbf==DATARMNETfd5c3d30e5)DATARMNETaa568481cf
+->DATARMNET78fd20ce0e.DATARMNETbc28a5970f+=DATARMNET5fe4c722a8->
 DATARMNET1ef22e4c76;list_add_tail(&DATARMNET5fe4c722a8->DATARMNET719f68fb88->
 list,&DATARMNETaa568481cf->DATARMNETb76b79d0d5);DATARMNETaa568481cf->
 DATARMNET1db11fa85e++;DATARMNETaa568481cf->DATARMNETcf28ae376b+=
 DATARMNET5fe4c722a8->DATARMNET1ef22e4c76;}bool DATARMNETfbf5798e15(struct 
 DATARMNETd812bcdbb5*DATARMNET5fe4c722a8){struct DATARMNETd7c9631acd*
-DATARMNETaa568481cf;bool DATARMNET885970f252=false;if(!DATARMNET2013036d80(
-DATARMNET5fe4c722a8->DATARMNET098910da0f)){DATARMNETa00cda79d0(
+DATARMNETaa568481cf;bool DATARMNET885970f252=false;u8 DATARMNET9695aa5b1d=
+DATARMNET5fe4c722a8->DATARMNET144d119066.DATARMNET7fa8b2acbf;if(!
+DATARMNET2013036d80(DATARMNET9695aa5b1d)){DATARMNETa00cda79d0(
 DATARMNET6a894ab63d);return false;}hash_for_each_possible(DATARMNET4791268d67,
 DATARMNETaa568481cf,DATARMNETbd5d7d96d8,DATARMNET5fe4c722a8->DATARMNET645e8912b8
 ){bool DATARMNET2dd83daa1c;if(!DATARMNET6895620058(DATARMNETaa568481cf,
 DATARMNET5fe4c722a8))continue;DATARMNETc6f994577c:DATARMNET2dd83daa1c=
 DATARMNET5a0f9fc3a2(DATARMNETaa568481cf,DATARMNET5fe4c722a8);DATARMNET5fe4c722a8
-->DATARMNETf1b6b0a6cc=true;DATARMNET885970f252=true;switch(DATARMNET5fe4c722a8->
-DATARMNET098910da0f){case DATARMNETfd5c3d30e5:return DATARMNET4c7cdc25b7(
-DATARMNETaa568481cf,DATARMNET5fe4c722a8,DATARMNET2dd83daa1c);case 
-DATARMNETa656f324b2:return DATARMNET8dc47eb7af(DATARMNETaa568481cf,
-DATARMNET5fe4c722a8,DATARMNET2dd83daa1c);default:return false;}}if(!
-DATARMNET885970f252){DATARMNETaa568481cf=DATARMNETd41def0046();
-DATARMNETaa568481cf->DATARMNET381f1cadc4=DATARMNET5fe4c722a8->
-DATARMNET645e8912b8;hash_add(DATARMNET4791268d67,&DATARMNETaa568481cf->
-DATARMNETbd5d7d96d8,DATARMNETaa568481cf->DATARMNET381f1cadc4);goto 
-DATARMNETc6f994577c;}return false;}void DATARMNETb98b78b8e3(void){struct 
-DATARMNETd7c9631acd*DATARMNETaa568481cf;struct hlist_node*DATARMNET0386f6f82a;
-int DATARMNETae0201901a;hash_for_each_safe(DATARMNET4791268d67,
-DATARMNETae0201901a,DATARMNET0386f6f82a,DATARMNETaa568481cf,DATARMNETbd5d7d96d8)
-hash_del(&DATARMNETaa568481cf->DATARMNETbd5d7d96d8);}int DATARMNETdbcaf01255(
-void){struct DATARMNET70f3b87b5d*DATARMNETe05748b000=DATARMNETc2a630b113();u8 
-DATARMNETefc9df3df2;for(DATARMNETefc9df3df2=(0xd2d+202-0xdf7);
-DATARMNETefc9df3df2<DATARMNET78d9393ac8;DATARMNETefc9df3df2++){struct 
-DATARMNETd7c9631acd*DATARMNETaa568481cf;DATARMNETaa568481cf=&DATARMNETe05748b000
-->DATARMNETebb45c8d86.DATARMNET2846a01cce[DATARMNETefc9df3df2];INIT_LIST_HEAD(&
-DATARMNETaa568481cf->DATARMNETb76b79d0d5);INIT_HLIST_NODE(&DATARMNETaa568481cf->
-DATARMNETbd5d7d96d8);}return DATARMNET0529bb9c4e;}
+->DATARMNETf1b6b0a6cc=true;DATARMNET885970f252=true;switch(DATARMNET9695aa5b1d){
+case DATARMNETfd5c3d30e5:return DATARMNET4c7cdc25b7(DATARMNETaa568481cf,
+DATARMNET5fe4c722a8,DATARMNET2dd83daa1c);case DATARMNETa656f324b2:return 
+DATARMNET8dc47eb7af(DATARMNETaa568481cf,DATARMNET5fe4c722a8,DATARMNET2dd83daa1c)
+;default:return false;}}if(!DATARMNET885970f252){DATARMNETaa568481cf=
+DATARMNETd41def0046();DATARMNETaa568481cf->DATARMNET381f1cadc4=
+DATARMNET5fe4c722a8->DATARMNET645e8912b8;hash_add(DATARMNET4791268d67,&
+DATARMNETaa568481cf->DATARMNETbd5d7d96d8,DATARMNETaa568481cf->
+DATARMNET381f1cadc4);goto DATARMNETc6f994577c;}return false;}void 
+DATARMNETb98b78b8e3(void){struct DATARMNETd7c9631acd*DATARMNETaa568481cf;struct 
+hlist_node*DATARMNET0386f6f82a;int DATARMNETae0201901a;hash_for_each_safe(
+DATARMNET4791268d67,DATARMNETae0201901a,DATARMNET0386f6f82a,DATARMNETaa568481cf,
+DATARMNETbd5d7d96d8)hash_del(&DATARMNETaa568481cf->DATARMNETbd5d7d96d8);}int 
+DATARMNETdbcaf01255(void){struct DATARMNET70f3b87b5d*DATARMNETe05748b000=
+DATARMNETc2a630b113();u8 DATARMNETefc9df3df2;for(DATARMNETefc9df3df2=
+(0xd2d+202-0xdf7);DATARMNETefc9df3df2<DATARMNET78d9393ac8;DATARMNETefc9df3df2++)
+{struct DATARMNETd7c9631acd*DATARMNETaa568481cf;DATARMNETaa568481cf=&
+DATARMNETe05748b000->DATARMNETebb45c8d86.DATARMNET2846a01cce[DATARMNETefc9df3df2
+];INIT_LIST_HEAD(&DATARMNETaa568481cf->DATARMNETb76b79d0d5);INIT_HLIST_NODE(&
+DATARMNETaa568481cf->DATARMNETbd5d7d96d8);}return DATARMNET0529bb9c4e;}

+ 13 - 16
offload/rmnet_offload_engine.h

@@ -19,20 +19,17 @@ enum{DATARMNET7af645849a,DATARMNETb0bd5db24d,DATARMNET0413b43080,};enum{
 DATARMNETa2ddeec85f,DATARMNET2d89680280=DATARMNETa2ddeec85f,DATARMNET03daf91a60,
 DATARMNET88a9920663,DATARMNET5fe3af8828,DATARMNETaccb69cf16=DATARMNET5fe3af8828,
 };struct DATARMNETd7c9631acd{struct hlist_node DATARMNETbd5d7d96d8;struct 
-list_head DATARMNETb76b79d0d5;union{struct DATARMNET308c06fca6*
-DATARMNETc1529262df;struct DATARMNET64bb8f616e*DATARMNET6f0af6e7b3;};union{
-struct DATARMNETd2991e8952*DATARMNET8cd2f78e4f;struct DATARMNET0b82084e89*
-DATARMNET8600531f31;};u32 DATARMNET381f1cadc4;u16 DATARMNETcf28ae376b;u16 
-DATARMNETac72629d22;u16 DATARMNET3f4e88ab44;u8 DATARMNET7e15783110;u8 
-DATARMNET550ca047ee;u32 DATARMNETd3a1a2b9b5;u16 DATARMNET1978d5d8de;u8 
-DATARMNET1db11fa85e;};struct DATARMNET907d58c807{struct DATARMNETd7c9631acd 
-DATARMNET2846a01cce[DATARMNET78d9393ac8];u8 DATARMNET8dfc11cccd;u8 
-DATARMNET57d435b225;};void DATARMNETd4230b6bfe(void);void DATARMNET560e127137(
-void);int DATARMNET241493ab9a(u64 DATARMNET0470698d6c,u64 DATARMNETfeff65e096);
-void DATARMNETa3055c21f2(struct DATARMNETd7c9631acd*DATARMNETaa568481cf);void 
-DATARMNETc38c135c9f(u32 DATARMNET3f8cc6fc24);u32 DATARMNETae70636c90(void);void 
-DATARMNET33aa5df9ef(struct DATARMNETd7c9631acd*DATARMNETaa568481cf,struct 
-DATARMNETd812bcdbb5*DATARMNET5fe4c722a8);bool DATARMNETfbf5798e15(struct 
-DATARMNETd812bcdbb5*DATARMNET5fe4c722a8);void DATARMNETb98b78b8e3(void);int 
-DATARMNETdbcaf01255(void);
+list_head DATARMNETb76b79d0d5;struct DATARMNET4287f07234 DATARMNET78fd20ce0e;u32
+ DATARMNET381f1cadc4;u16 DATARMNETcf28ae376b;u32 DATARMNETd3a1a2b9b5;u16 
+DATARMNET1978d5d8de;u8 DATARMNET1db11fa85e;};struct DATARMNET907d58c807{struct 
+DATARMNETd7c9631acd DATARMNET2846a01cce[DATARMNET78d9393ac8];u8 
+DATARMNET8dfc11cccd;u8 DATARMNET57d435b225;};void DATARMNETd4230b6bfe(void);void
+ DATARMNET560e127137(void);int DATARMNET241493ab9a(u64 DATARMNET0470698d6c,u64 
+DATARMNETfeff65e096);void DATARMNETa3055c21f2(struct DATARMNETd7c9631acd*
+DATARMNETaa568481cf);void DATARMNETc38c135c9f(u32 DATARMNET3f8cc6fc24);u32 
+DATARMNETae70636c90(void);void DATARMNET33aa5df9ef(struct DATARMNETd7c9631acd*
+DATARMNETaa568481cf,struct DATARMNETd812bcdbb5*DATARMNET5fe4c722a8);bool 
+DATARMNETfbf5798e15(struct DATARMNETd812bcdbb5*DATARMNET5fe4c722a8);void 
+DATARMNETb98b78b8e3(void);int DATARMNETdbcaf01255(void);
 #endif
+

+ 151 - 102
offload/rmnet_offload_main.c

@@ -33,107 +33,156 @@ static const char*DATARMNET9be3ddbe97[]__always_unused={
 "\x49\x30\x64\x64\x66\x33\x66\x66\x30\x34\x36\x66\x31\x62\x39\x33\x66\x63\x31\x39\x62\x62\x38\x35\x62\x31\x38\x64\x30\x34\x30\x63\x33\x34\x33\x62\x39\x39\x66\x37\x33"
 ,
 "\x49\x33\x62\x36\x31\x30\x37\x35\x34\x33\x32\x32\x61\x66\x30\x39\x30\x66\x65\x39\x61\x65\x31\x34\x61\x61\x31\x38\x61\x35\x33\x34\x30\x66\x62\x61\x38\x36\x36\x64\x62"
+,
+"\x49\x35\x31\x34\x36\x62\x33\x61\x30\x31\x36\x65\x66\x36\x35\x62\x33\x65\x36\x34\x35\x31\x33\x38\x64\x31\x34\x38\x31\x66\x37\x35\x35\x63\x66\x31\x31\x33\x34\x61\x32"
 ,};static DEFINE_SPINLOCK(DATARMNET0b5e447f18);static u32 DATARMNETcb7325e02d(
-struct DATARMNETd812bcdbb5*DATARMNET458b70e7e5){__be32 DATARMNETdfd47b00ff[
-(0xd20+231-0xdfc)];u32 DATARMNET5ebf661879;__be16 DATARMNET08e913477e=
-(0xd2d+202-0xdf7),DATARMNETda7f7fa492=(0xd2d+202-0xdf7);if(DATARMNET458b70e7e5->
-DATARMNET098910da0f==DATARMNETa656f324b2||DATARMNET458b70e7e5->
-DATARMNET098910da0f==DATARMNETfd5c3d30e5){struct DATARMNET0b82084e89*
-DATARMNET75be5f3406=DATARMNET458b70e7e5->DATARMNET0da3c8035d;DATARMNET08e913477e
-=DATARMNET75be5f3406->DATARMNET1b1c406ae9;DATARMNETda7f7fa492=
-DATARMNET75be5f3406->DATARMNETdf0e8545ee;}if(DATARMNET458b70e7e5->
-DATARMNETaebe0581f2==(0xd11+230-0xdf3)){struct DATARMNET308c06fca6*
-DATARMNET86f1f2cdc9=DATARMNET458b70e7e5->DATARMNET1469d7a840;DATARMNETdfd47b00ff
-[(0xd2d+202-0xdf7)]=DATARMNET86f1f2cdc9->DATARMNET11ef55b2bb;DATARMNETdfd47b00ff
-[(0xd26+209-0xdf6)]=DATARMNET86f1f2cdc9->DATARMNET9bbd2ca483;DATARMNETdfd47b00ff
-[(0xd1f+216-0xdf5)]=DATARMNET86f1f2cdc9->DATARMNET953d32410f;DATARMNETdfd47b00ff
-[(0xd18+223-0xdf4)]=DATARMNETda7f7fa492;DATARMNETdfd47b00ff[(0xd11+230-0xdf3)]=
-DATARMNET08e913477e;DATARMNET5ebf661879=(0xd0a+237-0xdf2);}else{struct 
-DATARMNET64bb8f616e*DATARMNETbf55123e5b=DATARMNET458b70e7e5->DATARMNET5559b05582
-;memcpy(&DATARMNETdfd47b00ff[(0xd2d+202-0xdf7)],&DATARMNETbf55123e5b->
-DATARMNETc657c0a139[(0xd2d+202-0xdf7)],sizeof(DATARMNETbf55123e5b->
-DATARMNETc657c0a139));memcpy(&DATARMNETdfd47b00ff[(0xd0a+237-0xdf2)],&
-DATARMNETbf55123e5b->DATARMNET31202449fc[(0xd2d+202-0xdf7)],sizeof(
-DATARMNETbf55123e5b->DATARMNETc657c0a139));DATARMNETdfd47b00ff[(0xd35+210-0xdff)
-]=DATARMNETbf55123e5b->DATARMNET7244bfdc4f;DATARMNETdfd47b00ff[9]=
-DATARMNETda7f7fa492;DATARMNETdfd47b00ff[(0xd27+224-0xdfd)]=DATARMNET08e913477e;
-DATARMNET5ebf661879=(0xd20+231-0xdfc);}return jhash2(DATARMNETdfd47b00ff,
-DATARMNET5ebf661879,(0xd2d+202-0xdf7));}static void DATARMNETe26a68d20e(u32 
-DATARMNET5affe290b8){u32 DATARMNET2991ac9aa9;if(DATARMNET5affe290b8>50000)
-DATARMNET2991ac9aa9=DATARMNETa121404606;else if(DATARMNET5affe290b8>30000)
-DATARMNET2991ac9aa9=DATARMNET787b04223a;else if(DATARMNET5affe290b8>23000)
-DATARMNET2991ac9aa9=DATARMNET8e1480cff2;else if(DATARMNET5affe290b8>14500)
-DATARMNET2991ac9aa9=DATARMNETf335e26298;else if(DATARMNET5affe290b8>7000)
-DATARMNET2991ac9aa9=DATARMNET3067ea3199;else if(DATARMNET5affe290b8>
-(0x5b4+1875-0x78f))DATARMNET2991ac9aa9=DATARMNETa76d93355c;else 
-DATARMNET2991ac9aa9=DATARMNET92f3434694;DATARMNETa00cda79d0(DATARMNET2991ac9aa9)
-;}static bool DATARMNET1a7ed9a6a2(struct rmnet_frag_descriptor*
-DATARMNET9d1b321642,struct DATARMNETd812bcdbb5*DATARMNET458b70e7e5){u8*
-DATARMNETdf2dbc641f;u16 DATARMNET5affe290b8;u16 DATARMNETdaa9248df1;if(
-DATARMNET9d1b321642->hdrs_valid){DATARMNET458b70e7e5->DATARMNETaebe0581f2=
-DATARMNET9d1b321642->ip_proto;DATARMNET458b70e7e5->DATARMNETbecebb23ac=
-DATARMNET9d1b321642->ip_len;DATARMNET458b70e7e5->DATARMNET098910da0f=
-DATARMNET9d1b321642->trans_proto;DATARMNET458b70e7e5->DATARMNET0ab9b2ce3b=
-DATARMNET9d1b321642->trans_len;DATARMNET458b70e7e5->DATARMNET1469d7a840=(struct 
-DATARMNET308c06fca6*)DATARMNET9d1b321642->hdr_ptr;DATARMNET458b70e7e5->
-DATARMNET96c6c71653=(struct DATARMNETd2991e8952*)(DATARMNET9d1b321642->hdr_ptr+
-DATARMNET9d1b321642->ip_len);DATARMNET458b70e7e5->DATARMNET645e8912b8=
-DATARMNETcb7325e02d(DATARMNET458b70e7e5);DATARMNET458b70e7e5->
-DATARMNET1ef22e4c76=skb_frag_size(&DATARMNET9d1b321642->frag);if(
-DATARMNET9d1b321642->hdr_ptr==rmnet_frag_data_ptr(DATARMNET9d1b321642))
-DATARMNET458b70e7e5->DATARMNET1ef22e4c76-=DATARMNET9d1b321642->ip_len+
+struct DATARMNETd812bcdbb5*DATARMNET458b70e7e5){struct DATARMNET4287f07234*
+DATARMNET8814564ab9=&DATARMNET458b70e7e5->DATARMNET144d119066;__be32 
+DATARMNETdfd47b00ff[(0xd20+231-0xdfc)];u32 DATARMNET5ebf661879;__be16 
+DATARMNET08e913477e=(0xd2d+202-0xdf7),DATARMNETda7f7fa492=(0xd2d+202-0xdf7);if(
+DATARMNET8814564ab9->DATARMNET7fa8b2acbf==DATARMNETa656f324b2||
+DATARMNET8814564ab9->DATARMNET7fa8b2acbf==DATARMNETfd5c3d30e5){
+DATARMNET08e913477e=DATARMNET8814564ab9->DATARMNETa60d2ae3f6;DATARMNETda7f7fa492
+=DATARMNET8814564ab9->DATARMNET5e7452ec23;}if(DATARMNET8814564ab9->
+DATARMNET388842c721==(0xd11+230-0xdf3)){DATARMNETdfd47b00ff[(0xd2d+202-0xdf7)]=
+DATARMNET8814564ab9->DATARMNET0a28fa80f4;DATARMNETdfd47b00ff[(0xd26+209-0xdf6)]=
+DATARMNET8814564ab9->DATARMNET1a2be7b6c2;DATARMNETdfd47b00ff[(0xd1f+216-0xdf5)]=
+DATARMNET8814564ab9->DATARMNET7fa8b2acbf;DATARMNETdfd47b00ff[(0xd18+223-0xdf4)]=
+DATARMNETda7f7fa492;DATARMNETdfd47b00ff[(0xd11+230-0xdf3)]=DATARMNET08e913477e;
+DATARMNET5ebf661879=(0xd0a+237-0xdf2);}else{memcpy(&DATARMNETdfd47b00ff[
+(0xd2d+202-0xdf7)],&DATARMNET8814564ab9->DATARMNET45ec858bc5[(0xd2d+202-0xdf7)],
+sizeof(DATARMNET8814564ab9->DATARMNET45ec858bc5));memcpy(&DATARMNETdfd47b00ff[
+(0xd0a+237-0xdf2)],&DATARMNET8814564ab9->DATARMNET949c2754de[(0xd2d+202-0xdf7)],
+sizeof(DATARMNET8814564ab9->DATARMNET45ec858bc5));DATARMNETdfd47b00ff[
+(0xd35+210-0xdff)]=DATARMNET8814564ab9->DATARMNET7fa8b2acbf;DATARMNETdfd47b00ff[
+9]=DATARMNETda7f7fa492;DATARMNETdfd47b00ff[(0xd27+224-0xdfd)]=
+DATARMNET08e913477e;DATARMNET5ebf661879=(0xd20+231-0xdfc);}return jhash2(
+DATARMNETdfd47b00ff,DATARMNET5ebf661879,(0xd2d+202-0xdf7));}static void 
+DATARMNETe26a68d20e(u32 DATARMNET5affe290b8){u32 DATARMNET2991ac9aa9;if(
+DATARMNET5affe290b8>50000)DATARMNET2991ac9aa9=DATARMNETa121404606;else if(
+DATARMNET5affe290b8>30000)DATARMNET2991ac9aa9=DATARMNET787b04223a;else if(
+DATARMNET5affe290b8>23000)DATARMNET2991ac9aa9=DATARMNET8e1480cff2;else if(
+DATARMNET5affe290b8>14500)DATARMNET2991ac9aa9=DATARMNETf335e26298;else if(
+DATARMNET5affe290b8>7000)DATARMNET2991ac9aa9=DATARMNET3067ea3199;else if(
+DATARMNET5affe290b8>(0x5b4+1875-0x78f))DATARMNET2991ac9aa9=DATARMNETa76d93355c;
+else DATARMNET2991ac9aa9=DATARMNET92f3434694;DATARMNETa00cda79d0(
+DATARMNET2991ac9aa9);}static bool DATARMNET1a7ed9a6a2(struct 
+rmnet_frag_descriptor*DATARMNET9d1b321642,struct DATARMNETd812bcdbb5*
+DATARMNET458b70e7e5){struct DATARMNET4287f07234*DATARMNET8814564ab9=&
+DATARMNET458b70e7e5->DATARMNET144d119066;u8*DATARMNETdf2dbc641f;u16 
+DATARMNET5affe290b8;u16 DATARMNETdaa9248df1;if(DATARMNET9d1b321642->hdrs_valid){
+struct DATARMNETd2991e8952*DATARMNET2e7cc88971,DATARMNETd1ff6cd568;
+DATARMNET8814564ab9->DATARMNET388842c721=DATARMNET9d1b321642->ip_proto;
+DATARMNET8814564ab9->DATARMNET4ca5ac9de1=DATARMNET9d1b321642->ip_len;
+DATARMNET8814564ab9->DATARMNET7fa8b2acbf=DATARMNET9d1b321642->trans_proto;
+DATARMNET8814564ab9->DATARMNET0aeee57ceb=DATARMNET9d1b321642->trans_len;
+DATARMNET5affe290b8=DATARMNET9d1b321642->len;if(DATARMNET8814564ab9->
+DATARMNET388842c721==(0xd11+230-0xdf3)){struct DATARMNET308c06fca6*
+DATARMNET86f1f2cdc9,DATARMNETbf6548198e;DATARMNET86f1f2cdc9=
+rmnet_frag_header_ptr(DATARMNET9d1b321642,(0xd2d+202-0xdf7),sizeof(*
+DATARMNET86f1f2cdc9),&DATARMNETbf6548198e);if(!DATARMNET86f1f2cdc9)goto 
+DATARMNETaabe3a05f8;DATARMNET8814564ab9->DATARMNET1a2be7b6c2=DATARMNET86f1f2cdc9
+->DATARMNET9bbd2ca483;DATARMNET8814564ab9->DATARMNET0a28fa80f4=
+DATARMNET86f1f2cdc9->DATARMNET11ef55b2bb;DATARMNET8814564ab9->
+DATARMNET19b03754c4=DATARMNET86f1f2cdc9->DATARMNET1eb6c27583;DATARMNET8814564ab9
+->DATARMNET57bf608183=DATARMNET86f1f2cdc9->DATARMNET03e081f69f;
+DATARMNET8814564ab9->DATARMNETcf915688f5=DATARMNET86f1f2cdc9->
+DATARMNET2c091223da;}else{struct DATARMNET64bb8f616e*DATARMNETbf55123e5b,
+DATARMNETcf1d9e2c1e;DATARMNETbf55123e5b=rmnet_frag_header_ptr(
+DATARMNET9d1b321642,(0xd2d+202-0xdf7),sizeof(*DATARMNETbf55123e5b),&
+DATARMNETcf1d9e2c1e);if(!DATARMNETbf55123e5b)goto DATARMNETaabe3a05f8;memcpy(&
+DATARMNET8814564ab9->DATARMNET949c2754de[(0xd2d+202-0xdf7)],&DATARMNETbf55123e5b
+->DATARMNET31202449fc[(0xd2d+202-0xdf7)],sizeof(DATARMNETbf55123e5b->
+DATARMNET31202449fc));memcpy(&DATARMNET8814564ab9->DATARMNET45ec858bc5[
+(0xd2d+202-0xdf7)],&DATARMNETbf55123e5b->DATARMNETc657c0a139[(0xd2d+202-0xdf7)],
+sizeof(DATARMNETbf55123e5b->DATARMNETc657c0a139));DATARMNET8814564ab9->
+DATARMNETabd58f7f89=DATARMNETbf55123e5b->DATARMNET0687f7ecdc;}
+DATARMNET2e7cc88971=rmnet_frag_header_ptr(DATARMNET9d1b321642,
+DATARMNET8814564ab9->DATARMNET4ca5ac9de1,sizeof(*DATARMNET2e7cc88971),&
+DATARMNETd1ff6cd568);if(!DATARMNET2e7cc88971)goto DATARMNETaabe3a05f8;
+DATARMNET8814564ab9->DATARMNETa60d2ae3f6=DATARMNET2e7cc88971->
+DATARMNET6acbeeebb1;DATARMNET8814564ab9->DATARMNET5e7452ec23=DATARMNET2e7cc88971
+->DATARMNET29b8c05d14;if(DATARMNET8814564ab9->DATARMNET7fa8b2acbf==
+DATARMNETfd5c3d30e5){__be32 DATARMNET0849981c7c;if(DATARMNET9d1b321642->
+tcp_seq_set)DATARMNET0849981c7c=DATARMNET9d1b321642->tcp_seq;else 
+DATARMNET0849981c7c=DATARMNET2e7cc88971->DATARMNETb3e70104e0;DATARMNET8814564ab9
+->DATARMNETbc28a5970f=ntohl(DATARMNET0849981c7c);}DATARMNET458b70e7e5->
+DATARMNET645e8912b8=DATARMNETcb7325e02d(DATARMNET458b70e7e5);DATARMNET458b70e7e5
+->DATARMNET1ef22e4c76=DATARMNET9d1b321642->len-DATARMNET9d1b321642->ip_len-
 DATARMNET9d1b321642->trans_len;DATARMNET458b70e7e5->DATARMNET719f68fb88=
 DATARMNET9d1b321642;return false;}DATARMNETdf2dbc641f=rmnet_frag_data_ptr(
-DATARMNET9d1b321642);DATARMNET5affe290b8=skb_frag_size(&DATARMNET9d1b321642->
-frag);DATARMNET458b70e7e5->DATARMNET3eb91ee54d=true;DATARMNET458b70e7e5->
-DATARMNETaebe0581f2=(DATARMNETdf2dbc641f[(0xd2d+202-0xdf7)]&(0xbf7+4405-0x1c3c))
->>(0xd11+230-0xdf3);if(DATARMNET458b70e7e5->DATARMNETaebe0581f2==
-(0xd11+230-0xdf3)){struct DATARMNET308c06fca6*DATARMNET86f1f2cdc9;
-DATARMNET86f1f2cdc9=(struct DATARMNET308c06fca6*)DATARMNETdf2dbc641f;
-DATARMNET458b70e7e5->DATARMNET1469d7a840=DATARMNET86f1f2cdc9;DATARMNET458b70e7e5
-->DATARMNETbecebb23ac=DATARMNET86f1f2cdc9->DATARMNET610d06a887*(0xd11+230-0xdf3)
-;DATARMNET458b70e7e5->DATARMNET098910da0f=DATARMNET86f1f2cdc9->
-DATARMNET953d32410f;if(DATARMNET86f1f2cdc9->DATARMNET2c091223da&htons(16383)){
+DATARMNET9d1b321642);DATARMNET5affe290b8=DATARMNET9d1b321642->len;
+DATARMNET458b70e7e5->DATARMNET3eb91ee54d=true;DATARMNET8814564ab9->
+DATARMNET388842c721=(DATARMNETdf2dbc641f[(0xd2d+202-0xdf7)]&(0xbf7+4405-0x1c3c))
+>>(0xd11+230-0xdf3);if(DATARMNET8814564ab9->DATARMNET388842c721==
+(0xd11+230-0xdf3)){struct DATARMNET308c06fca6*DATARMNET86f1f2cdc9,
+DATARMNETbf6548198e;DATARMNET86f1f2cdc9=rmnet_frag_header_ptr(
+DATARMNET9d1b321642,(0xd2d+202-0xdf7),sizeof(*DATARMNET86f1f2cdc9),&
+DATARMNETbf6548198e);if(!DATARMNET86f1f2cdc9)goto DATARMNETaabe3a05f8;
+DATARMNET8814564ab9->DATARMNET4ca5ac9de1=DATARMNET86f1f2cdc9->
+DATARMNET610d06a887*(0xd11+230-0xdf3);DATARMNET8814564ab9->DATARMNET7fa8b2acbf=
+DATARMNET86f1f2cdc9->DATARMNET953d32410f;DATARMNET8814564ab9->
+DATARMNET1a2be7b6c2=DATARMNET86f1f2cdc9->DATARMNET9bbd2ca483;DATARMNET8814564ab9
+->DATARMNET0a28fa80f4=DATARMNET86f1f2cdc9->DATARMNET11ef55b2bb;
+DATARMNET8814564ab9->DATARMNET19b03754c4=DATARMNET86f1f2cdc9->
+DATARMNET1eb6c27583;DATARMNET8814564ab9->DATARMNET57bf608183=DATARMNET86f1f2cdc9
+->DATARMNET03e081f69f;DATARMNET8814564ab9->DATARMNETcf915688f5=
+DATARMNET86f1f2cdc9->DATARMNET2c091223da;if(DATARMNET86f1f2cdc9->
+DATARMNET2c091223da&htons(16383)){DATARMNETa00cda79d0(DATARMNET807e4dad18);goto 
+DATARMNETaabe3a05f8;}DATARMNETdaa9248df1=ntohs(DATARMNET86f1f2cdc9->
+DATARMNET8e175ac02d);DATARMNET458b70e7e5->DATARMNET8f59f5a745=
+DATARMNETdaa9248df1!=DATARMNET5affe290b8;}else if(DATARMNET8814564ab9->
+DATARMNET388842c721==(0xd03+244-0xdf1)){struct DATARMNET64bb8f616e*
+DATARMNETbf55123e5b,DATARMNETcf1d9e2c1e;int DATARMNET0549c61885;__be16 
+DATARMNET833503918f;u8 DATARMNET3f56a2bcf4;DATARMNETbf55123e5b=
+rmnet_frag_header_ptr(DATARMNET9d1b321642,(0xd2d+202-0xdf7),sizeof(*
+DATARMNETbf55123e5b),&DATARMNETcf1d9e2c1e);if(!DATARMNETbf55123e5b)goto 
+DATARMNETaabe3a05f8;DATARMNET3f56a2bcf4=DATARMNETbf55123e5b->DATARMNET7244bfdc4f
+;DATARMNET0549c61885=rmnet_frag_ipv6_skip_exthdr(DATARMNET9d1b321642,sizeof(*
+DATARMNETbf55123e5b),&DATARMNET3f56a2bcf4,&DATARMNET833503918f);if(
+DATARMNET0549c61885<(0xd2d+202-0xdf7)){goto DATARMNETaabe3a05f8;}
+DATARMNET8814564ab9->DATARMNET4ca5ac9de1=(u16)DATARMNET0549c61885;
+DATARMNET8814564ab9->DATARMNET7fa8b2acbf=DATARMNET3f56a2bcf4;memcpy(&
+DATARMNET8814564ab9->DATARMNET949c2754de[(0xd2d+202-0xdf7)],&DATARMNETbf55123e5b
+->DATARMNET31202449fc[(0xd2d+202-0xdf7)],sizeof(DATARMNETbf55123e5b->
+DATARMNET31202449fc));memcpy(&DATARMNET8814564ab9->DATARMNET45ec858bc5[
+(0xd2d+202-0xdf7)],&DATARMNETbf55123e5b->DATARMNETc657c0a139[(0xd2d+202-0xdf7)],
+sizeof(DATARMNETbf55123e5b->DATARMNETc657c0a139));DATARMNET8814564ab9->
+DATARMNETabd58f7f89=DATARMNETbf55123e5b->DATARMNET0687f7ecdc;if(
+DATARMNET833503918f){if(DATARMNET8814564ab9->DATARMNET7fa8b2acbf==
+DATARMNET5b166167a8)DATARMNET8814564ab9->DATARMNET4ca5ac9de1+=(0xd35+210-0xdff);
 DATARMNETa00cda79d0(DATARMNET807e4dad18);goto DATARMNETaabe3a05f8;}
-DATARMNETdaa9248df1=ntohs(DATARMNET86f1f2cdc9->DATARMNET8e175ac02d);
-DATARMNET458b70e7e5->DATARMNET8f59f5a745=DATARMNETdaa9248df1!=
-DATARMNET5affe290b8;}else if(DATARMNET458b70e7e5->DATARMNETaebe0581f2==
-(0xd03+244-0xdf1)){struct DATARMNET64bb8f616e*DATARMNETbf55123e5b;int 
-DATARMNET0549c61885;__be16 DATARMNET833503918f;u8 DATARMNET3f56a2bcf4;
-DATARMNETbf55123e5b=(struct DATARMNET64bb8f616e*)DATARMNETdf2dbc641f;
-DATARMNET458b70e7e5->DATARMNET5559b05582=DATARMNETbf55123e5b;DATARMNET3f56a2bcf4
-=DATARMNETbf55123e5b->DATARMNET7244bfdc4f;DATARMNET0549c61885=
-rmnet_frag_ipv6_skip_exthdr(DATARMNET9d1b321642,sizeof(*DATARMNETbf55123e5b),&
-DATARMNET3f56a2bcf4,&DATARMNET833503918f);if(DATARMNET0549c61885<
-(0xd2d+202-0xdf7)){goto DATARMNETaabe3a05f8;}DATARMNET458b70e7e5->
-DATARMNETbecebb23ac=(u16)DATARMNET0549c61885;DATARMNET458b70e7e5->
-DATARMNET098910da0f=DATARMNET3f56a2bcf4;if(DATARMNET833503918f){if(
-DATARMNET458b70e7e5->DATARMNET098910da0f==DATARMNET5b166167a8)
-DATARMNET458b70e7e5->DATARMNETbecebb23ac+=(0xd35+210-0xdff);DATARMNETa00cda79d0(
-DATARMNET807e4dad18);goto DATARMNETaabe3a05f8;}DATARMNETdaa9248df1=ntohs(
-DATARMNETbf55123e5b->DATARMNETaa340485c5)+sizeof(*DATARMNETbf55123e5b);
-DATARMNET458b70e7e5->DATARMNET8f59f5a745=DATARMNETdaa9248df1!=
-DATARMNET5affe290b8;}else{return true;}DATARMNETdf2dbc641f+=DATARMNET458b70e7e5
-->DATARMNETbecebb23ac;if(DATARMNET458b70e7e5->DATARMNET098910da0f==
-DATARMNETfd5c3d30e5){struct DATARMNETd2991e8952*DATARMNET2e7cc88971;
-DATARMNET2e7cc88971=(struct DATARMNETd2991e8952*)DATARMNETdf2dbc641f;
-DATARMNET458b70e7e5->DATARMNET96c6c71653=DATARMNET2e7cc88971;DATARMNET458b70e7e5
-->DATARMNET0ab9b2ce3b=DATARMNET2e7cc88971->DATARMNETcf2e43ad69*(0xd11+230-0xdf3)
-;}else if(DATARMNET458b70e7e5->DATARMNET098910da0f==DATARMNETa656f324b2){struct 
-DATARMNET0b82084e89*DATARMNET75be5f3406;DATARMNET75be5f3406=(struct 
-DATARMNET0b82084e89*)DATARMNETdf2dbc641f;DATARMNET458b70e7e5->
-DATARMNET0da3c8035d=DATARMNET75be5f3406;DATARMNET458b70e7e5->DATARMNET0ab9b2ce3b
-=sizeof(*DATARMNET75be5f3406);}else{goto DATARMNETaabe3a05f8;}
-DATARMNET458b70e7e5->DATARMNET3eb91ee54d=false;DATARMNET458b70e7e5->
-DATARMNET645e8912b8=DATARMNETcb7325e02d(DATARMNET458b70e7e5);if(!
-DATARMNET458b70e7e5->DATARMNET8f59f5a745){DATARMNET9d1b321642->ip_proto=
-DATARMNET458b70e7e5->DATARMNETaebe0581f2;DATARMNET9d1b321642->ip_len=
-DATARMNET458b70e7e5->DATARMNETbecebb23ac;DATARMNET9d1b321642->trans_proto=
-DATARMNET458b70e7e5->DATARMNET098910da0f;DATARMNET9d1b321642->trans_len=
-DATARMNET458b70e7e5->DATARMNET0ab9b2ce3b;DATARMNET9d1b321642->hdrs_valid=
+DATARMNETdaa9248df1=ntohs(DATARMNETbf55123e5b->DATARMNETaa340485c5)+sizeof(*
+DATARMNETbf55123e5b);DATARMNET458b70e7e5->DATARMNET8f59f5a745=
+DATARMNETdaa9248df1!=DATARMNET5affe290b8;}else{return true;}if(
+DATARMNET8814564ab9->DATARMNET7fa8b2acbf==DATARMNETfd5c3d30e5){struct 
+DATARMNETd2991e8952*DATARMNET2e7cc88971,DATARMNETd1ff6cd568;DATARMNET2e7cc88971=
+rmnet_frag_header_ptr(DATARMNET9d1b321642,DATARMNET8814564ab9->
+DATARMNET4ca5ac9de1,sizeof(*DATARMNET2e7cc88971),&DATARMNETd1ff6cd568);if(!
+DATARMNET2e7cc88971)goto DATARMNETaabe3a05f8;DATARMNET8814564ab9->
+DATARMNET0aeee57ceb=DATARMNET2e7cc88971->DATARMNETcf2e43ad69*(0xd11+230-0xdf3);
+DATARMNET8814564ab9->DATARMNETa60d2ae3f6=DATARMNET2e7cc88971->
+DATARMNET6acbeeebb1;DATARMNET8814564ab9->DATARMNET5e7452ec23=DATARMNET2e7cc88971
+->DATARMNET29b8c05d14;DATARMNET8814564ab9->DATARMNETbc28a5970f=ntohl(
+DATARMNET2e7cc88971->DATARMNETb3e70104e0);}else if(DATARMNET8814564ab9->
+DATARMNET7fa8b2acbf==DATARMNETa656f324b2){struct DATARMNET0b82084e89*
+DATARMNET75be5f3406,DATARMNETc82d2f4e16;DATARMNET75be5f3406=
+rmnet_frag_header_ptr(DATARMNET9d1b321642,DATARMNET8814564ab9->
+DATARMNET4ca5ac9de1,sizeof(*DATARMNET75be5f3406),&DATARMNETc82d2f4e16);if(!
+DATARMNET75be5f3406)goto DATARMNETaabe3a05f8;DATARMNET8814564ab9->
+DATARMNET0aeee57ceb=sizeof(*DATARMNET75be5f3406);DATARMNET8814564ab9->
+DATARMNETa60d2ae3f6=DATARMNET75be5f3406->DATARMNET1b1c406ae9;DATARMNET8814564ab9
+->DATARMNET5e7452ec23=DATARMNET75be5f3406->DATARMNETdf0e8545ee;}else{goto 
+DATARMNETaabe3a05f8;}DATARMNET458b70e7e5->DATARMNET3eb91ee54d=false;
+DATARMNET458b70e7e5->DATARMNET645e8912b8=DATARMNETcb7325e02d(DATARMNET458b70e7e5
+);if(!DATARMNET458b70e7e5->DATARMNET8f59f5a745){DATARMNET9d1b321642->ip_proto=
+DATARMNET8814564ab9->DATARMNET388842c721;DATARMNET9d1b321642->ip_len=
+DATARMNET8814564ab9->DATARMNET4ca5ac9de1;DATARMNET9d1b321642->trans_proto=
+DATARMNET8814564ab9->DATARMNET7fa8b2acbf;DATARMNET9d1b321642->trans_len=
+DATARMNET8814564ab9->DATARMNET0aeee57ceb;DATARMNET9d1b321642->hdrs_valid=
 (0xd26+209-0xdf6);}DATARMNETaabe3a05f8:DATARMNET458b70e7e5->DATARMNET1ef22e4c76=
-DATARMNET5affe290b8-DATARMNET458b70e7e5->DATARMNETbecebb23ac-DATARMNET458b70e7e5
-->DATARMNET0ab9b2ce3b;if(DATARMNET458b70e7e5->DATARMNET8f59f5a745)
+DATARMNET5affe290b8-DATARMNET8814564ab9->DATARMNET4ca5ac9de1-DATARMNET8814564ab9
+->DATARMNET0aeee57ceb;if(DATARMNET458b70e7e5->DATARMNET8f59f5a745)
 DATARMNETa00cda79d0(DATARMNET52b7da9033);DATARMNET458b70e7e5->
 DATARMNET719f68fb88=DATARMNET9d1b321642;return false;}static void 
 DATARMNET29e8d137c4(struct rmnet_frag_descriptor*DATARMNET9d1b321642,struct 
@@ -168,12 +217,12 @@ DATARMNET403589239f);}void DATARMNET19d190f2bd(struct DATARMNETd812bcdbb5*
 DATARMNET458b70e7e5){struct rmnet_frag_descriptor*DATARMNET9d1b321642=
 DATARMNET458b70e7e5->DATARMNET719f68fb88;u32 DATARMNET5affe290b8=
 DATARMNET458b70e7e5->DATARMNET1ef22e4c76+DATARMNET458b70e7e5->
-DATARMNETbecebb23ac+DATARMNET458b70e7e5->DATARMNET0ab9b2ce3b;if(
-DATARMNET5affe290b8>65536)return;if(!DATARMNET458b70e7e5->DATARMNET3eb91ee54d)
-DATARMNET9d1b321642->hash=DATARMNET458b70e7e5->DATARMNET645e8912b8;
-DATARMNET58a244b2fe(DATARMNET9d1b321642,DATARMNET5affe290b8);}void 
-DATARMNET9292bebdd3(void*DATARMNETf0d9de7e2f){}void DATARMNETb7e47d7254(void*
-DATARMNETf0d9de7e2f){}void DATARMNET95e1703026(struct rmnet_map_dl_ind_hdr*
+DATARMNET144d119066.DATARMNET4ca5ac9de1+DATARMNET458b70e7e5->DATARMNET144d119066
+.DATARMNET0aeee57ceb;if(DATARMNET5affe290b8>65536)return;if(!DATARMNET458b70e7e5
+->DATARMNET3eb91ee54d)DATARMNET9d1b321642->hash=DATARMNET458b70e7e5->
+DATARMNET645e8912b8;DATARMNET58a244b2fe(DATARMNET9d1b321642,DATARMNET5affe290b8)
+;}void DATARMNET9292bebdd3(void*DATARMNETf0d9de7e2f){}void DATARMNETb7e47d7254(
+void*DATARMNETf0d9de7e2f){}void DATARMNET95e1703026(struct rmnet_map_dl_ind_hdr*
 DATARMNET7c7748ef7a,struct rmnet_map_control_command_header*DATARMNET8b07ee3e82)
 {struct DATARMNET70f3b87b5d*DATARMNETe05748b000=DATARMNETc2a630b113();(void)
 DATARMNET8b07ee3e82;if(DATARMNETe05748b000->DATARMNETa9f2b2f677.

+ 9 - 6
offload/rmnet_offload_main.h

@@ -49,12 +49,15 @@ u8 DATARMNETcf2e43ad69:(0xd11+230-0xdf3);u8 DATARMNET655b34c160:
 u8 DATARMNETd570802f3d;__be16 DATARMNET807cd6af6c;__be16 DATARMNET8891a7f7ce;
 __be16 DATARMNET9921296467;};struct DATARMNET0b82084e89{__be16 
 DATARMNET1b1c406ae9;__be16 DATARMNETdf0e8545ee;__be16 DATARMNET39a05c5524;__be16
- DATARMNET45a3ebe8e3;};struct DATARMNETd812bcdbb5{struct rmnet_frag_descriptor*
-DATARMNET719f68fb88;union{struct DATARMNET308c06fca6*DATARMNET1469d7a840;struct 
-DATARMNET64bb8f616e*DATARMNET5559b05582;};union{struct DATARMNETd2991e8952*
-DATARMNET96c6c71653;struct DATARMNET0b82084e89*DATARMNET0da3c8035d;};u32 
-DATARMNET645e8912b8;u16 DATARMNET1ef22e4c76;u16 DATARMNETbecebb23ac;u16 
-DATARMNET0ab9b2ce3b;u8 DATARMNETaebe0581f2;u8 DATARMNET098910da0f;bool 
+ DATARMNET45a3ebe8e3;};struct DATARMNET4287f07234{__be16 DATARMNETa60d2ae3f6;
+__be16 DATARMNET5e7452ec23;union{__be32 DATARMNET1a2be7b6c2;__be32 
+DATARMNET949c2754de[(0xd11+230-0xdf3)];};union{__be32 DATARMNET0a28fa80f4;__be32
+ DATARMNET45ec858bc5[(0xd11+230-0xdf3)];};union{struct{u8 DATARMNET19b03754c4;u8
+ DATARMNET57bf608183;__be16 DATARMNETcf915688f5;};__be32 DATARMNETabd58f7f89;};
+u32 DATARMNETbc28a5970f;u16 DATARMNET4ca5ac9de1;u16 DATARMNET0aeee57ceb;u8 
+DATARMNET388842c721;u8 DATARMNET7fa8b2acbf;};struct DATARMNETd812bcdbb5{struct 
+rmnet_frag_descriptor*DATARMNET719f68fb88;struct DATARMNET4287f07234 
+DATARMNET144d119066;u32 DATARMNET645e8912b8;u16 DATARMNET1ef22e4c76;bool 
 DATARMNETf1b6b0a6cc;bool DATARMNET3eb91ee54d;bool DATARMNET8f59f5a745;};void 
 DATARMNET664568fcd0(void);void DATARMNET6a76048590(void);void 
 DATARMNET818b960147(void);void DATARMNETba38823a2f(void);bool 

+ 51 - 43
offload/rmnet_offload_tcp.c

@@ -10,58 +10,66 @@
  * GNU General Public License for more details.
  */
 
+#include <linux/list.h>
 #include "rmnet_descriptor.h"
 #include "rmnet_offload_main.h"
 #include "rmnet_offload_engine.h"
 #include "rmnet_offload_stats.h"
 #include "rmnet_offload_knob.h"
 static bool DATARMNET2818ea93ec(struct DATARMNETd812bcdbb5*DATARMNET5fe4c722a8){
-struct DATARMNETd2991e8952*DATARMNET2e7cc88971=DATARMNET5fe4c722a8->
-DATARMNET96c6c71653;__be32 DATARMNETa8eeab014d;u8 DATARMNET1464100e7a=
-DATARMNET2e7cc88971->DATARMNETd570802f3d;DATARMNETa8eeab014d=(0xbf7+4796-0x1e04)
-;if((!DATARMNET5fe4c722a8->DATARMNET1ef22e4c76&&(DATARMNET1464100e7a&
-(0xeb7+1158-0x132d)))||(DATARMNET1464100e7a&DATARMNETa8eeab014d))return true;
-return false;}static bool DATARMNET829fcf5939(struct DATARMNETd7c9631acd*
-DATARMNETaa568481cf,struct DATARMNETd812bcdbb5*DATARMNET5fe4c722a8){struct 
-DATARMNETd2991e8952*DATARMNET699c2c62cd,*DATARMNET8814564ab9;u32 
-DATARMNET3c3abe9e2c,DATARMNETefc9df3df2;DATARMNET699c2c62cd=DATARMNETaa568481cf
-->DATARMNET8cd2f78e4f;DATARMNET8814564ab9=DATARMNET5fe4c722a8->
-DATARMNET96c6c71653;DATARMNET3c3abe9e2c=DATARMNET699c2c62cd->DATARMNETcf2e43ad69
-*(0xd11+230-0xdf3);if(DATARMNET8814564ab9->DATARMNETcf2e43ad69*(0xd11+230-0xdf3)
+struct DATARMNETd2991e8952*DATARMNET2e7cc88971,DATARMNETd1ff6cd568;__be32 
+DATARMNETa8eeab014d;u8 DATARMNET1464100e7a;DATARMNET2e7cc88971=
+rmnet_frag_header_ptr(DATARMNET5fe4c722a8->DATARMNET719f68fb88,
+DATARMNET5fe4c722a8->DATARMNET144d119066.DATARMNET4ca5ac9de1,sizeof(*
+DATARMNET2e7cc88971),&DATARMNETd1ff6cd568);if(!DATARMNET2e7cc88971)return true;
+DATARMNETa8eeab014d=(0xbf7+4796-0x1e04);DATARMNET1464100e7a=DATARMNET2e7cc88971
+->DATARMNETd570802f3d;if((!DATARMNET5fe4c722a8->DATARMNET1ef22e4c76&&(
+DATARMNET1464100e7a&(0xeb7+1158-0x132d)))||(DATARMNET1464100e7a&
+DATARMNETa8eeab014d))return true;return false;}static bool DATARMNET829fcf5939(
+struct DATARMNETd7c9631acd*DATARMNETaa568481cf,struct DATARMNETd812bcdbb5*
+DATARMNET5fe4c722a8){struct DATARMNETd2991e8952*DATARMNET699c2c62cd,
+DATARMNETee66845de4;struct DATARMNETd2991e8952*DATARMNET8814564ab9,
+DATARMNETa27d4d22be;struct rmnet_frag_descriptor*DATARMNET48cfce4de4;u32 
+DATARMNET3c3abe9e2c,DATARMNETefc9df3df2;DATARMNET48cfce4de4=list_first_entry(&
+DATARMNETaa568481cf->DATARMNETb76b79d0d5,struct rmnet_frag_descriptor,list);
+DATARMNET699c2c62cd=rmnet_frag_header_ptr(DATARMNET48cfce4de4,
+DATARMNETaa568481cf->DATARMNET78fd20ce0e.DATARMNET4ca5ac9de1,sizeof(*
+DATARMNET699c2c62cd),&DATARMNETee66845de4);if(!DATARMNET699c2c62cd)return true;
+DATARMNET8814564ab9=rmnet_frag_header_ptr(DATARMNET5fe4c722a8->
+DATARMNET719f68fb88,DATARMNET5fe4c722a8->DATARMNET144d119066.DATARMNET4ca5ac9de1
+,sizeof(*DATARMNET8814564ab9),&DATARMNETa27d4d22be);if(!DATARMNET8814564ab9)
+return true;DATARMNET3c3abe9e2c=DATARMNET699c2c62cd->DATARMNETcf2e43ad69*
+(0xd11+230-0xdf3);if(DATARMNET8814564ab9->DATARMNETcf2e43ad69*(0xd11+230-0xdf3)
 !=DATARMNET3c3abe9e2c)return true;for(DATARMNETefc9df3df2=sizeof(*
 DATARMNET699c2c62cd);DATARMNETefc9df3df2<DATARMNET3c3abe9e2c;DATARMNETefc9df3df2
 +=(0xd11+230-0xdf3)){if(*(u32*)((u8*)DATARMNET699c2c62cd+DATARMNETefc9df3df2)^*(
 u32*)((u8*)DATARMNET8814564ab9+DATARMNETefc9df3df2))return true;}return false;}
 static int DATARMNET9a13d70865(struct DATARMNETd7c9631acd*DATARMNETaa568481cf,
-struct DATARMNETd812bcdbb5*DATARMNET5fe4c722a8){struct DATARMNETd2991e8952*
-DATARMNET8814564ab9=DATARMNET5fe4c722a8->DATARMNET96c6c71653;u64 
-DATARMNET7457d496cb;u32 DATARMNET7032feb866,DATARMNET95acece3fc;if(
-DATARMNET2818ea93ec(DATARMNET5fe4c722a8)){DATARMNETa00cda79d0(
-DATARMNETb322de38be);return DATARMNET7af645849a;}if(!DATARMNETaa568481cf->
-DATARMNET1db11fa85e)return DATARMNET0413b43080;if(DATARMNET829fcf5939(
-DATARMNETaa568481cf,DATARMNET5fe4c722a8)){DATARMNETa00cda79d0(
-DATARMNET38317c7efd);return DATARMNETb0bd5db24d;}DATARMNET7032feb866=(
-DATARMNET5fe4c722a8->DATARMNET719f68fb88->tcp_seq_set)?ntohl(DATARMNET5fe4c722a8
-->DATARMNET719f68fb88->tcp_seq):ntohl(DATARMNET8814564ab9->DATARMNETb3e70104e0);
-if(DATARMNET7032feb866^DATARMNETaa568481cf->DATARMNETd3a1a2b9b5){
-DATARMNETa00cda79d0(DATARMNET31c0e41f5a);return DATARMNET7af645849a;}
-DATARMNET95acece3fc=(DATARMNET5fe4c722a8->DATARMNET719f68fb88->gso_size)?:
-DATARMNET5fe4c722a8->DATARMNET1ef22e4c76;if(DATARMNET95acece3fc!=
-DATARMNETaa568481cf->DATARMNET1978d5d8de){DATARMNETa00cda79d0(
-DATARMNET0cd1fa0d98);return DATARMNETb0bd5db24d;}DATARMNET7457d496cb=
-DATARMNETf1d1b8287f(DATARMNETdf66588a73);if(DATARMNET5fe4c722a8->
-DATARMNET1ef22e4c76+DATARMNETaa568481cf->DATARMNETcf28ae376b>=
-DATARMNET7457d496cb){DATARMNETa00cda79d0(DATARMNET1c0d243816);return 
-DATARMNETb0bd5db24d;}DATARMNET5fe4c722a8->DATARMNETf1b6b0a6cc=false;return 
-DATARMNET0413b43080;}bool DATARMNET4c7cdc25b7(struct DATARMNETd7c9631acd*
-DATARMNETaa568481cf,struct DATARMNETd812bcdbb5*DATARMNET5fe4c722a8,bool 
-DATARMNETd87669e323){int DATARMNETb14e52a504;if(DATARMNETd87669e323){
-DATARMNETa00cda79d0(DATARMNET47a963957c);DATARMNETa3055c21f2(DATARMNETaa568481cf
-);DATARMNET19d190f2bd(DATARMNET5fe4c722a8);return true;}DATARMNETb14e52a504=
-DATARMNET9a13d70865(DATARMNETaa568481cf,DATARMNET5fe4c722a8);if(
-DATARMNETb14e52a504==DATARMNET0413b43080){DATARMNET33aa5df9ef(
-DATARMNETaa568481cf,DATARMNET5fe4c722a8);}else if(DATARMNETb14e52a504==
-DATARMNETb0bd5db24d){DATARMNETa3055c21f2(DATARMNETaa568481cf);
-DATARMNET33aa5df9ef(DATARMNETaa568481cf,DATARMNET5fe4c722a8);}else{
+struct DATARMNETd812bcdbb5*DATARMNET5fe4c722a8){u64 DATARMNET7457d496cb;u32 
+DATARMNET95acece3fc;if(DATARMNET2818ea93ec(DATARMNET5fe4c722a8)){
+DATARMNETa00cda79d0(DATARMNETb322de38be);return DATARMNET7af645849a;}if(!
+DATARMNETaa568481cf->DATARMNET1db11fa85e)return DATARMNET0413b43080;if(
+DATARMNET829fcf5939(DATARMNETaa568481cf,DATARMNET5fe4c722a8)){
+DATARMNETa00cda79d0(DATARMNET38317c7efd);return DATARMNETb0bd5db24d;}if(
+DATARMNET5fe4c722a8->DATARMNET144d119066.DATARMNETbc28a5970f^DATARMNETaa568481cf
+->DATARMNET78fd20ce0e.DATARMNETbc28a5970f){DATARMNETa00cda79d0(
+DATARMNET31c0e41f5a);return DATARMNET7af645849a;}DATARMNET95acece3fc=(
+DATARMNET5fe4c722a8->DATARMNET719f68fb88->gso_size)?:DATARMNET5fe4c722a8->
+DATARMNET1ef22e4c76;if(DATARMNET95acece3fc!=DATARMNETaa568481cf->
+DATARMNET1978d5d8de){DATARMNETa00cda79d0(DATARMNET0cd1fa0d98);return 
+DATARMNETb0bd5db24d;}DATARMNET7457d496cb=DATARMNETf1d1b8287f(DATARMNETdf66588a73
+);if(DATARMNET5fe4c722a8->DATARMNET1ef22e4c76+DATARMNETaa568481cf->
+DATARMNETcf28ae376b>=DATARMNET7457d496cb){DATARMNETa00cda79d0(
+DATARMNET1c0d243816);return DATARMNETb0bd5db24d;}DATARMNET5fe4c722a8->
+DATARMNETf1b6b0a6cc=false;return DATARMNET0413b43080;}bool DATARMNET4c7cdc25b7(
+struct DATARMNETd7c9631acd*DATARMNETaa568481cf,struct DATARMNETd812bcdbb5*
+DATARMNET5fe4c722a8,bool DATARMNETd87669e323){int DATARMNETb14e52a504;if(
+DATARMNETd87669e323){DATARMNETa00cda79d0(DATARMNET47a963957c);
 DATARMNETa3055c21f2(DATARMNETaa568481cf);DATARMNET19d190f2bd(DATARMNET5fe4c722a8
-);}return true;}
+);return true;}DATARMNETb14e52a504=DATARMNET9a13d70865(DATARMNETaa568481cf,
+DATARMNET5fe4c722a8);if(DATARMNETb14e52a504==DATARMNET0413b43080){
+DATARMNET33aa5df9ef(DATARMNETaa568481cf,DATARMNET5fe4c722a8);}else if(
+DATARMNETb14e52a504==DATARMNETb0bd5db24d){DATARMNETa3055c21f2(
+DATARMNETaa568481cf);DATARMNET33aa5df9ef(DATARMNETaa568481cf,DATARMNET5fe4c722a8
+);}else{DATARMNETa3055c21f2(DATARMNETaa568481cf);DATARMNET19d190f2bd(
+DATARMNET5fe4c722a8);}return true;}