From 1bd440c18d65e98a0bed068640c1de324cc1d9ba Mon Sep 17 00:00:00 2001 From: Sean Tranchetti Date: Mon, 15 Jun 2020 12:14:02 -0600 Subject: [PATCH] rmnet_offload: I6d6f925f3e321e1228d3873fc78218ba90e94506 Updates the module to version I6d6f925f3e321e1228d3873fc78218ba90e94506. Change-Id: I85c13aab81f3fc562692e85dd83d55d16e1a36ff --- offload/rmnet_offload_engine.c | 345 ++++++++++++++++----------------- offload/rmnet_offload_engine.h | 46 ++--- offload/rmnet_offload_knob.c | 109 ++++++----- offload/rmnet_offload_knob.h | 8 +- offload/rmnet_offload_main.c | 331 ++++++++++++++++--------------- offload/rmnet_offload_main.h | 84 ++++---- offload/rmnet_offload_state.c | 136 ++++++------- offload/rmnet_offload_state.h | 22 +-- offload/rmnet_offload_stats.c | 12 +- offload/rmnet_offload_stats.h | 24 +-- offload/rmnet_offload_tcp.c | 99 +++++----- offload/rmnet_offload_tcp.h | 8 +- offload/rmnet_offload_udp.c | 42 ++-- offload/rmnet_offload_udp.h | 8 +- 14 files changed, 635 insertions(+), 639 deletions(-) diff --git a/offload/rmnet_offload_engine.c b/offload/rmnet_offload_engine.c index 3b2a3b8bdcc7..ff75b7ec5477 100644 --- a/offload/rmnet_offload_engine.c +++ b/offload/rmnet_offload_engine.c @@ -21,176 +21,175 @@ #include "rmnet_offload_udp.h" #include "rmnet_offload_stats.h" #include "rmnet_offload_knob.h" -#define DATARMNETc9a92fd5dc \ - (const_ilog2(DATARMNET51fcd2e93a)) -static DEFINE_HASHTABLE(DATARMNETab0dbdf89d,DATARMNETc9a92fd5dc);static u32 -DATARMNETb2ff7800c4(u8 DATARMNET22afafde5e){struct DATARMNET31caee06e2* -DATARMNET0277af6816;int DATARMNET6090c652d3;u32 DATARMNET67497a3454= -(0x145b+644-0x16df);hash_for_each(DATARMNETab0dbdf89d,DATARMNET6090c652d3, -DATARMNET0277af6816,DATARMNET0a9c7c9a12){if(DATARMNET0277af6816-> -DATARMNET30d367f886&&DATARMNET0277af6816->DATARMNETb2a7197d60== -DATARMNET22afafde5e){DATARMNET67497a3454++;DATARMNET3bdaf91675( -DATARMNET0277af6816);}}return DATARMNET67497a3454;}static bool -DATARMNET5d54389061(u8 DATARMNET22afafde5e){u64 DATARMNET75cb1c0f3f; -DATARMNET75cb1c0f3f=DATARMNET3d487d950f(DATARMNETe9b360aea8);if( -DATARMNET75cb1c0f3f==DATARMNET651e3c6554)return true;if(DATARMNET75cb1c0f3f== -DATARMNETb94ae69059&&DATARMNET22afafde5e==DATARMNET70889e5696)return true;if( -DATARMNET75cb1c0f3f==DATARMNETda679f58ba&&DATARMNET22afafde5e== -DATARMNETb02d95e937)return true;return false;}static bool DATARMNET9c6847635e( -struct DATARMNET31caee06e2*DATARMNETd44a80d414,struct DATARMNETadd6ff90d0* -DATARMNETc3ffad4b30){if(!DATARMNETd44a80d414->DATARMNET30d367f886)return false; -if(DATARMNETc3ffad4b30->DATARMNET9f5b2909c8==(0x54a+6318-0x1df4)){struct -DATARMNETf61a39bce9*DATARMNETb5da236f91,*DATARMNET4e35bbb67d;DATARMNETb5da236f91 -=DATARMNETd44a80d414->DATARMNETd321db9bb1;DATARMNET4e35bbb67d= -DATARMNETc3ffad4b30->DATARMNET574a565f78;if(DATARMNETb5da236f91-> -DATARMNET58886f3d9d^DATARMNET4e35bbb67d->DATARMNET58886f3d9d|| -DATARMNETb5da236f91->DATARMNET14d3de9c1a^DATARMNET4e35bbb67d-> -DATARMNET14d3de9c1a||DATARMNETb5da236f91->DATARMNETa803e4f68b^ -DATARMNET4e35bbb67d->DATARMNETa803e4f68b||DATARMNETb5da236f91-> -DATARMNET422c25939d^DATARMNET4e35bbb67d->DATARMNET422c25939d)return true;}else -if(DATARMNETc3ffad4b30->DATARMNET9f5b2909c8==(0x1ff5+182-0x20a5)){__be32 -DATARMNET55aa748931,DATARMNET34282dc487;__be32 DATARMNETfc68f228ca; -DATARMNET55aa748931=DATARMNETd44a80d414->DATARMNET85d5545fb8-> -DATARMNETd750a8b9e5;DATARMNET34282dc487=DATARMNETc3ffad4b30->DATARMNET1dab0af728 -->DATARMNETd750a8b9e5;DATARMNETfc68f228ca=DATARMNET55aa748931^ -DATARMNET34282dc487;if(DATARMNETfc68f228ca&htonl(267386880))return true;}return -false;}static bool DATARMNETa96491b775(struct DATARMNET31caee06e2* -DATARMNETd44a80d414,struct DATARMNETadd6ff90d0*DATARMNETc3ffad4b30){__be16 -DATARMNETffe972c30a,DATARMNETfee6a33770,DATARMNET063a3638c1,DATARMNETf80930b49f; -if(!DATARMNETd44a80d414->DATARMNET30d367f886)return DATARMNETd44a80d414-> -DATARMNET2bb18bc9dd==DATARMNETc3ffad4b30->DATARMNET68ad0738e2;if( -DATARMNETd44a80d414->DATARMNETb2a7197d60!=DATARMNETc3ffad4b30-> -DATARMNET072708db10)return false;DATARMNETffe972c30a=DATARMNETd44a80d414-> -DATARMNETef42c82b6f->DATARMNETaad9b0a864;DATARMNET063a3638c1=DATARMNETd44a80d414 -->DATARMNETef42c82b6f->DATARMNETd751c12d13;DATARMNETfee6a33770= -DATARMNETc3ffad4b30->DATARMNETc51cdf696b->DATARMNETaad9b0a864; -DATARMNETf80930b49f=DATARMNETc3ffad4b30->DATARMNETc51cdf696b-> -DATARMNETd751c12d13;if(DATARMNETffe972c30a^DATARMNETfee6a33770|| -DATARMNET063a3638c1^DATARMNETf80930b49f)return false;if(DATARMNETc3ffad4b30-> -DATARMNET9f5b2909c8==(0x19f+8819-0x240e)){struct DATARMNETf61a39bce9* -DATARMNETb5da236f91,*DATARMNET4e35bbb67d;DATARMNETb5da236f91=DATARMNETd44a80d414 -->DATARMNETd321db9bb1;DATARMNET4e35bbb67d=DATARMNETc3ffad4b30-> -DATARMNET574a565f78;if(DATARMNETb5da236f91->DATARMNET7c6ed51964^ -DATARMNET4e35bbb67d->DATARMNET7c6ed51964||DATARMNETb5da236f91-> -DATARMNET799b2a47a5^DATARMNET4e35bbb67d->DATARMNET799b2a47a5)return false;}else -if(DATARMNETc3ffad4b30->DATARMNET9f5b2909c8==(0x53a+3466-0x12be)){struct -DATARMNETfab66e680d*DATARMNETb5da236f91,*DATARMNET4e35bbb67d;DATARMNETb5da236f91 -=DATARMNETd44a80d414->DATARMNET85d5545fb8;DATARMNET4e35bbb67d= -DATARMNETc3ffad4b30->DATARMNET1dab0af728;if(memcmp(DATARMNETb5da236f91-> -DATARMNET0f6f3a8868,DATARMNET4e35bbb67d->DATARMNET0f6f3a8868,sizeof( -DATARMNET4e35bbb67d->DATARMNET0f6f3a8868))||memcmp(DATARMNETb5da236f91-> -DATARMNET818f335f71,DATARMNET4e35bbb67d->DATARMNET818f335f71,sizeof( -DATARMNET4e35bbb67d->DATARMNET818f335f71)))return false;}else{return false;} -return true;}static struct DATARMNET31caee06e2*DATARMNET30062b5353(void){struct -DATARMNET8357daf015*DATARMNETf7e8f6395c=DATARMNETccc25794e0();struct -DATARMNET337e435e40*DATARMNET048da5e00c;struct DATARMNET31caee06e2* -DATARMNETc5c31601b9;DATARMNET048da5e00c=&DATARMNETf7e8f6395c-> -DATARMNETa3d1da1cba;if(DATARMNET048da5e00c->DATARMNET762f0d12b6< -DATARMNET51fcd2e93a){DATARMNETc5c31601b9=&DATARMNET048da5e00c-> -DATARMNET51e299cf9c[DATARMNET048da5e00c->DATARMNET762f0d12b6]; -DATARMNET048da5e00c->DATARMNET762f0d12b6++;return DATARMNETc5c31601b9;} -DATARMNETc5c31601b9=&DATARMNET048da5e00c->DATARMNET51e299cf9c[ -DATARMNET048da5e00c->DATARMNETded3d12c96];DATARMNET048da5e00c-> -DATARMNETded3d12c96++;DATARMNET048da5e00c->DATARMNETded3d12c96%= -DATARMNET51fcd2e93a;hash_del(&DATARMNETc5c31601b9->DATARMNET0a9c7c9a12); -if(DATARMNETc5c31601b9->DATARMNET30d367f886){DATARMNET5d24865423( -DATARMNETa05aa2c4a7);DATARMNET3bdaf91675(DATARMNETc5c31601b9);}return -DATARMNETc5c31601b9;}static void DATARMNET3d9424a1f2(void){ -DATARMNET8f8c3a4cc3();if(DATARMNET54fd6bf483())DATARMNET5d24865423( -DATARMNETc0fe927262);DATARMNET4c69e80b6f();}void DATARMNETafcdd1146f(void){ -rcu_assign_pointer(rmnet_perf_chain_end,DATARMNET3d9424a1f2);}void -DATARMNET28dfa538f2(void){rcu_assign_pointer(rmnet_perf_chain_end,NULL);}int -DATARMNET467c2610cd(u64 DATARMNET842aaafdc8,u64 DATARMNET7c1185ffbf){u32 -DATARMNET67497a3454=(0x52d+7239-0x2174);if(DATARMNET842aaafdc8== -DATARMNET7d2f8bdc64||DATARMNET7c1185ffbf==DATARMNET651e3c6554)return -(0x1053+1012-0x1447);switch(DATARMNET7c1185ffbf){case DATARMNETb94ae69059: -DATARMNET67497a3454=DATARMNETb2ff7800c4(DATARMNETb02d95e937);break;case -DATARMNETda679f58ba:DATARMNET67497a3454=DATARMNETb2ff7800c4(DATARMNET70889e5696) -;break;case DATARMNET7d2f8bdc64:DATARMNET67497a3454=DATARMNET54fd6bf483();break; -}DATARMNETa3edc29191(DATARMNET2ec91e73cf,DATARMNET67497a3454);return -(0x349+1374-0x8a7);}void DATARMNET3bdaf91675(struct DATARMNET31caee06e2* -DATARMNETd44a80d414){struct DATARMNET8357daf015*DATARMNETf7e8f6395c= -DATARMNETccc25794e0();struct rmnet_frag_descriptor*DATARMNETb2b92619af,* -DATARMNETe6a1f8e9a8,*DATARMNETb9b0dca770;u32 DATARMNET439e3442b2= -DATARMNETd44a80d414->DATARMNET5f92dbf405+DATARMNETd44a80d414-> -DATARMNET2e943b139f+DATARMNETd44a80d414->DATARMNET00656e1145;if(! -DATARMNETd44a80d414->DATARMNET30d367f886)return;DATARMNETb2b92619af= -list_first_entry(&DATARMNETd44a80d414->DATARMNETdaf24e965e,struct -rmnet_frag_descriptor,list);if(!DATARMNETb2b92619af->gso_segs) -DATARMNETb2b92619af->gso_segs=(0x1058+4757-0x22ec);DATARMNETb2b92619af->gso_size -=DATARMNETd44a80d414->DATARMNET632219f39d;DATARMNETe6a1f8e9a8= -DATARMNETb2b92619af;list_for_each_entry_safe_continue(DATARMNETe6a1f8e9a8, -DATARMNETb9b0dca770,&DATARMNETd44a80d414->DATARMNETdaf24e965e,list){if( -DATARMNETe6a1f8e9a8->hdr_ptr==rmnet_frag_data_ptr(DATARMNETe6a1f8e9a8)){if(! -rmnet_frag_pull(DATARMNETe6a1f8e9a8,DATARMNETf7e8f6395c->DATARMNET547651077b, -DATARMNETd44a80d414->DATARMNET2e943b139f+DATARMNETd44a80d414-> -DATARMNET00656e1145))continue;}list_del(&DATARMNETe6a1f8e9a8->list); -list_add_tail(&DATARMNETe6a1f8e9a8->list,&DATARMNETb2b92619af->sub_frags); -DATARMNETb2b92619af->gso_segs+=(DATARMNETe6a1f8e9a8->gso_segs)?: -(0x11b6+461-0x1382);}DATARMNETb2b92619af->hash=DATARMNETd44a80d414-> -DATARMNET2bb18bc9dd;DATARMNET654b85a739(DATARMNETb2b92619af,DATARMNET439e3442b2) -;DATARMNETd44a80d414->DATARMNET30d367f886=(0x1c9b+1105-0x20ec); -DATARMNETd44a80d414->DATARMNET5f92dbf405=(0xb26+2684-0x15a2);}void -DATARMNET8b657e07e9(u32 DATARMNETb7b515b920){struct DATARMNET31caee06e2* -DATARMNETd44a80d414;hash_for_each_possible(DATARMNETab0dbdf89d, -DATARMNETd44a80d414,DATARMNET0a9c7c9a12,DATARMNETb7b515b920){if( -DATARMNETd44a80d414->DATARMNET2bb18bc9dd==DATARMNETb7b515b920&& -DATARMNETd44a80d414->DATARMNET30d367f886)DATARMNET3bdaf91675(DATARMNETd44a80d414 -);}}u32 DATARMNET54fd6bf483(void){struct DATARMNET31caee06e2*DATARMNETd44a80d414 -;int DATARMNET6090c652d3;u32 DATARMNET67497a3454=(0x16b4+2078-0x1ed2); -hash_for_each(DATARMNETab0dbdf89d,DATARMNET6090c652d3,DATARMNETd44a80d414, -DATARMNET0a9c7c9a12){if(DATARMNETd44a80d414->DATARMNET30d367f886){ -DATARMNET67497a3454++;DATARMNET3bdaf91675(DATARMNETd44a80d414);}}return -DATARMNET67497a3454;}void DATARMNETfc01092f09(struct DATARMNET31caee06e2* -DATARMNETd44a80d414,struct DATARMNETadd6ff90d0*DATARMNETc3ffad4b30){if( -DATARMNETc3ffad4b30->DATARMNET1e7926dc4c){DATARMNETd44a80d414-> -DATARMNET6b35defba1=DATARMNETc3ffad4b30->DATARMNET9f5b2909c8;DATARMNETd44a80d414 -->DATARMNET2e943b139f=DATARMNETc3ffad4b30->DATARMNETa7eaea0d00; -DATARMNETd44a80d414->DATARMNETd321db9bb1=DATARMNETc3ffad4b30-> -DATARMNET574a565f78;DATARMNETd44a80d414->DATARMNETb2a7197d60=DATARMNETc3ffad4b30 -->DATARMNET072708db10;DATARMNETd44a80d414->DATARMNET00656e1145= -DATARMNETc3ffad4b30->DATARMNETfeb7c81ac7;DATARMNETd44a80d414-> -DATARMNET9a5f6d68d4=DATARMNETc3ffad4b30->DATARMNET7ff34eacb7;DATARMNETd44a80d414 -->DATARMNET2bb18bc9dd=DATARMNETc3ffad4b30->DATARMNET68ad0738e2; -DATARMNETd44a80d414->DATARMNET632219f39d=(DATARMNETc3ffad4b30-> -DATARMNET798fafaf36->gso_size)?:DATARMNETc3ffad4b30->DATARMNET5671455f38;if( -DATARMNETc3ffad4b30->DATARMNET072708db10==DATARMNET70889e5696){__be32 -DATARMNETff7464c709;if(DATARMNETc3ffad4b30->DATARMNET798fafaf36->tcp_seq_set) -DATARMNETff7464c709=DATARMNETc3ffad4b30->DATARMNET798fafaf36->tcp_seq;else -DATARMNETff7464c709=DATARMNETc3ffad4b30->DATARMNET7ff34eacb7-> -DATARMNET614032cc71;DATARMNETd44a80d414->DATARMNET956bd73340=ntohl( -DATARMNETff7464c709);}}if(DATARMNETc3ffad4b30->DATARMNET072708db10== -DATARMNET70889e5696)DATARMNETd44a80d414->DATARMNET956bd73340+= -DATARMNETc3ffad4b30->DATARMNET5671455f38;list_add_tail(&DATARMNETc3ffad4b30-> -DATARMNET798fafaf36->list,&DATARMNETd44a80d414->DATARMNETdaf24e965e); -DATARMNETd44a80d414->DATARMNET30d367f886++;DATARMNETd44a80d414-> -DATARMNET5f92dbf405+=DATARMNETc3ffad4b30->DATARMNET5671455f38;}bool -DATARMNET9b8a1a69f3(struct DATARMNETadd6ff90d0*DATARMNETc3ffad4b30){struct -DATARMNET31caee06e2*DATARMNETd44a80d414;bool DATARMNET262f926565=false;if(! -DATARMNET5d54389061(DATARMNETc3ffad4b30->DATARMNET072708db10)){ -DATARMNET5d24865423(DATARMNETdae7cbfd97);return false;}hash_for_each_possible( -DATARMNETab0dbdf89d,DATARMNETd44a80d414,DATARMNET0a9c7c9a12,DATARMNETc3ffad4b30 -->DATARMNET68ad0738e2){bool DATARMNET4e4b105fa2;if(!DATARMNETa96491b775( -DATARMNETd44a80d414,DATARMNETc3ffad4b30))continue;DATARMNETb9fc1ffb2f: -DATARMNET4e4b105fa2=DATARMNET9c6847635e(DATARMNETd44a80d414,DATARMNETc3ffad4b30) -;DATARMNETc3ffad4b30->DATARMNET1e7926dc4c=true;DATARMNET262f926565=true;switch( -DATARMNETc3ffad4b30->DATARMNET072708db10){case DATARMNET70889e5696:return -DATARMNETb25a21aeeb(DATARMNETd44a80d414,DATARMNETc3ffad4b30,DATARMNET4e4b105fa2) -;case DATARMNETb02d95e937:return DATARMNET9dd18589e3(DATARMNETd44a80d414, -DATARMNETc3ffad4b30,DATARMNET4e4b105fa2);default:return false;}}if(! -DATARMNET262f926565){DATARMNETd44a80d414=DATARMNET30062b5353(); -DATARMNETd44a80d414->DATARMNET2bb18bc9dd=DATARMNETc3ffad4b30-> -DATARMNET68ad0738e2;hash_add(DATARMNETab0dbdf89d,&DATARMNETd44a80d414-> -DATARMNET0a9c7c9a12,DATARMNETd44a80d414->DATARMNET2bb18bc9dd);goto -DATARMNETb9fc1ffb2f;}return false;}void DATARMNETde815547a0(void){struct -DATARMNET31caee06e2*DATARMNETd44a80d414;struct hlist_node*DATARMNETb9b0dca770; -int DATARMNET6090c652d3;hash_for_each_safe(DATARMNETab0dbdf89d, -DATARMNET6090c652d3,DATARMNETb9b0dca770,DATARMNETd44a80d414,DATARMNET0a9c7c9a12) -hash_del(&DATARMNETd44a80d414->DATARMNET0a9c7c9a12);}int DATARMNETcce014cb1d( -void){struct DATARMNET8357daf015*DATARMNETf7e8f6395c=DATARMNETccc25794e0();u8 -DATARMNET5d971be8b8;for(DATARMNET5d971be8b8=(0xec5+3020-0x1a91); -DATARMNET5d971be8b8DATARMNETa3d1da1cba.DATARMNET51e299cf9c[DATARMNET5d971be8b8];INIT_LIST_HEAD(& -DATARMNETd44a80d414->DATARMNETdaf24e965e);INIT_HLIST_NODE(&DATARMNETd44a80d414-> -DATARMNET0a9c7c9a12);}return DATARMNET6e89887168;} +#define DATARMNET644a5e11da \ + (const_ilog2(DATARMNET78d9393ac8)) +static DEFINE_HASHTABLE(DATARMNET4791268d67,DATARMNET644a5e11da);static u32 +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; +DATARMNET3924f3f9e3=DATARMNETf1d1b8287f(DATARMNET6d2ed4b822);if( +DATARMNET3924f3f9e3==DATARMNET2d89680280)return true;if(DATARMNET3924f3f9e3== +DATARMNET03daf91a60&&DATARMNET06d2413ad2==DATARMNETfd5c3d30e5)return true;if( +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;} +return true;}static struct DATARMNETd7c9631acd*DATARMNETd41def0046(void){struct +DATARMNET70f3b87b5d*DATARMNETe05748b000=DATARMNETc2a630b113();struct +DATARMNET907d58c807*DATARMNETa6f73cbe10;struct DATARMNETd7c9631acd* +DATARMNET6745427f98;DATARMNETa6f73cbe10=&DATARMNETe05748b000-> +DATARMNETebb45c8d86;if(DATARMNETa6f73cbe10->DATARMNET8dfc11cccd< +DATARMNET78d9393ac8){DATARMNET6745427f98=&DATARMNETa6f73cbe10-> +DATARMNET2846a01cce[DATARMNETa6f73cbe10->DATARMNET8dfc11cccd]; +DATARMNETa6f73cbe10->DATARMNET8dfc11cccd++;return DATARMNET6745427f98;} +DATARMNET6745427f98=&DATARMNETa6f73cbe10->DATARMNET2846a01cce[ +DATARMNETa6f73cbe10->DATARMNET57d435b225];DATARMNETa6f73cbe10-> +DATARMNET57d435b225++;DATARMNETa6f73cbe10->DATARMNET57d435b225%= +DATARMNET78d9393ac8;hash_del(&DATARMNET6745427f98->DATARMNETbd5d7d96d8);if( +DATARMNET6745427f98->DATARMNET1db11fa85e){DATARMNETa00cda79d0( +DATARMNETf3f92fc0b9);DATARMNETa3055c21f2(DATARMNET6745427f98);}return +DATARMNET6745427f98;}static void DATARMNETbe30d096c6(void){DATARMNET664568fcd0() +;if(DATARMNETae70636c90())DATARMNETa00cda79d0(DATARMNET5727f095ec); +DATARMNET6a76048590();}void DATARMNETd4230b6bfe(void){rcu_assign_pointer( +rmnet_perf_chain_end,DATARMNETbe30d096c6);}void DATARMNET560e127137(void){ +rcu_assign_pointer(rmnet_perf_chain_end,NULL);}int DATARMNET241493ab9a(u64 +DATARMNET0470698d6c,u64 DATARMNETfeff65e096){u32 DATARMNET737bbd41c3= +(0xd2d+202-0xdf7);if(DATARMNET0470698d6c==DATARMNET5fe3af8828|| +DATARMNETfeff65e096==DATARMNET2d89680280)return(0xd2d+202-0xdf7);switch( +DATARMNETfeff65e096){case DATARMNET03daf91a60:DATARMNET737bbd41c3= +DATARMNET1993bae165(DATARMNETa656f324b2);break;case DATARMNET88a9920663: +DATARMNET737bbd41c3=DATARMNET1993bae165(DATARMNETfd5c3d30e5);break;case +DATARMNET5fe3af8828:DATARMNET737bbd41c3=DATARMNETae70636c90();break;} +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= +DATARMNETaa568481cf->DATARMNET381f1cadc4;DATARMNET58a244b2fe(DATARMNETd74aeaa49a +,DATARMNETf333d55b33);DATARMNETaa568481cf->DATARMNET1db11fa85e=(0xd2d+202-0xdf7) +;DATARMNETaa568481cf->DATARMNETcf28ae376b=(0xd2d+202-0xdf7);}void +DATARMNETc38c135c9f(u32 DATARMNET3f8cc6fc24){struct DATARMNETd7c9631acd* +DATARMNETaa568481cf;hash_for_each_possible(DATARMNET4791268d67, +DATARMNETaa568481cf,DATARMNETbd5d7d96d8,DATARMNET3f8cc6fc24){if( +DATARMNETaa568481cf->DATARMNET381f1cadc4==DATARMNET3f8cc6fc24&& +DATARMNETaa568481cf->DATARMNET1db11fa85e)DATARMNETa3055c21f2(DATARMNETaa568481cf +);}}u32 DATARMNETae70636c90(void){struct DATARMNETd7c9631acd*DATARMNETaa568481cf +;int DATARMNETae0201901a;u32 DATARMNET737bbd41c3=(0xd2d+202-0xdf7);hash_for_each +(DATARMNET4791268d67,DATARMNETae0201901a,DATARMNETaa568481cf,DATARMNETbd5d7d96d8 +){if(DATARMNETaa568481cf->DATARMNET1db11fa85e){DATARMNET737bbd41c3++; +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-> +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( +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); +DATARMNETefc9df3df2DATARMNETebb45c8d86.DATARMNET2846a01cce[DATARMNETefc9df3df2];INIT_LIST_HEAD(& +DATARMNETaa568481cf->DATARMNETb76b79d0d5);INIT_HLIST_NODE(&DATARMNETaa568481cf-> +DATARMNETbd5d7d96d8);}return DATARMNET0529bb9c4e;} diff --git a/offload/rmnet_offload_engine.h b/offload/rmnet_offload_engine.h index 58461dd522b1..4bec62eccca3 100644 --- a/offload/rmnet_offload_engine.h +++ b/offload/rmnet_offload_engine.h @@ -10,29 +10,29 @@ * GNU General Public License for more details. */ -#ifndef DATARMNETd6b6392f17 -#define DATARMNETd6b6392f17 +#ifndef DATARMNETbf894466c7 +#define DATARMNETbf894466c7 #include #include "rmnet_offload_main.h" -#define DATARMNET51fcd2e93a (0x4f2+8429-0x25ad) -enum{DATARMNET08dbe31d07,DATARMNET6b149bc29f,DATARMNET7d8a4bb6b1,};enum{ -DATARMNETf9e24b5cc7,DATARMNET651e3c6554=DATARMNETf9e24b5cc7,DATARMNETb94ae69059, -DATARMNETda679f58ba,DATARMNET7d2f8bdc64,DATARMNETb2380d39af=DATARMNET7d2f8bdc64, -};struct DATARMNET31caee06e2{struct hlist_node DATARMNET0a9c7c9a12;struct -list_head DATARMNETdaf24e965e;union{struct DATARMNETf61a39bce9* -DATARMNETd321db9bb1;struct DATARMNETfab66e680d*DATARMNET85d5545fb8;};union{ -struct DATARMNET1bffb1c388*DATARMNET9a5f6d68d4;struct DATARMNET2d87db499d* -DATARMNETef42c82b6f;};u32 DATARMNET2bb18bc9dd;u16 DATARMNET5f92dbf405;u16 -DATARMNET2e943b139f;u16 DATARMNET00656e1145;u8 DATARMNET6b35defba1;u8 -DATARMNETb2a7197d60;u32 DATARMNET956bd73340;u16 DATARMNET632219f39d;u8 -DATARMNET30d367f886;};struct DATARMNET337e435e40{struct DATARMNET31caee06e2 -DATARMNET51e299cf9c[DATARMNET51fcd2e93a];u8 DATARMNET762f0d12b6;u8 -DATARMNETded3d12c96;};void DATARMNETafcdd1146f(void);void DATARMNET28dfa538f2( -void);int DATARMNET467c2610cd(u64 DATARMNET842aaafdc8,u64 DATARMNET7c1185ffbf); -void DATARMNET3bdaf91675(struct DATARMNET31caee06e2*DATARMNETd44a80d414);void -DATARMNET8b657e07e9(u32 DATARMNETb7b515b920);u32 DATARMNET54fd6bf483(void);void -DATARMNETfc01092f09(struct DATARMNET31caee06e2*DATARMNETd44a80d414,struct -DATARMNETadd6ff90d0*DATARMNETc3ffad4b30);bool DATARMNET9b8a1a69f3(struct -DATARMNETadd6ff90d0*DATARMNETc3ffad4b30);void DATARMNETde815547a0(void);int -DATARMNETcce014cb1d(void); +#define DATARMNET78d9393ac8 (0xef7+1112-0x131d) +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); #endif diff --git a/offload/rmnet_offload_knob.c b/offload/rmnet_offload_knob.c index cd892a026ad8..076a0b91b1a4 100644 --- a/offload/rmnet_offload_knob.c +++ b/offload/rmnet_offload_knob.c @@ -14,62 +14,61 @@ #include "rmnet_offload_knob.h" #include "rmnet_offload_main.h" #include "rmnet_offload_engine.h" -#define DATARMNET619b9d5952(DATARMNETc8bfe161a0) \ - static int __ ## DATARMNETc8bfe161a0(const char *DATARMNETc94d3d8015, const \ -struct kernel_param *DATARMNET8a7a56afc0) \ +#define DATARMNET7996ea045b(DATARMNET4c4a5ce272) \ + static int __ ## DATARMNET4c4a5ce272(const char *DATARMNETcc6099cb14, const \ +struct kernel_param *DATARMNETb3ce0fdc63) \ { \ - return DATARMNETedcd606b67(DATARMNETc94d3d8015, DATARMNET8a7a56afc0, \ -DATARMNETc8bfe161a0); \ + return DATARMNETf467eaf6fc(DATARMNETcc6099cb14, DATARMNETb3ce0fdc63, \ +DATARMNET4c4a5ce272); \ } -#define DATARMNETb11903a752(DATARMNETc8bfe161a0, DATARMNET3047f26bfe, \ -DATARMNET4ca0476636, DATARMNET4835fba60c, DATARMNET5303ed5f85) \ - (struct DATARMNET7f0280a448) { \ - .DATARMNETd30c98c72c = DATARMNET3047f26bfe, \ - .DATARMNET9d5e08f187 = DATARMNET4ca0476636, \ - .DATARMNETbcb261586d = DATARMNET4835fba60c, \ - .DATARMNETf1c3fbdd8c = DATARMNET5303ed5f85, \ - .DATARMNET900f84a38b = { \ - .set = __ ## DATARMNETc8bfe161a0, \ - .get = param_get_ullong, \ +#define DATARMNETce9a74c748(DATARMNET4c4a5ce272, DATARMNET91574ba67a, \ +DATARMNET8f535916a4, DATARMNETae9bf9b111, DATARMNETbdf6f9d425) \ + (struct DATARMNET5374f6eafa) { \ + .DATARMNETd67569df12 = DATARMNET91574ba67a, \ + .DATARMNET949fb858da = DATARMNET8f535916a4, \ + .DATARMNET6c81c0097b = DATARMNETae9bf9b111, \ + .DATARMNET8a7dce7d36 = DATARMNETbdf6f9d425, \ + .DATARMNET9cee06cbe4 = { \ + .set = __ ## DATARMNET4c4a5ce272, \ }, \ } -#define DATARMNET72f6e45b34(DATARMNETbed8e2ed0c, DATARMNETc8bfe161a0) \ - module_param_cb(DATARMNETbed8e2ed0c, &DATARMNETb73677dd8c[DATARMNETc8bfe161a0].\ -DATARMNET900f84a38b, \ - &DATARMNETb73677dd8c[DATARMNETc8bfe161a0].DATARMNETd30c98c72c, \ -(0x1027+73-0xecc)) -struct DATARMNET7f0280a448{u64 DATARMNETd30c98c72c;u64 DATARMNET9d5e08f187;u64 -DATARMNETbcb261586d;int(*DATARMNETf1c3fbdd8c)(u64 DATARMNET2582fdae21,u64 -DATARMNET8371e203e8);struct kernel_param_ops DATARMNET900f84a38b;};static int -DATARMNETedcd606b67(const char*DATARMNETc94d3d8015,const struct kernel_param* -DATARMNET8a7a56afc0,u32 DATARMNETc8bfe161a0);DATARMNET619b9d5952( -DATARMNETee792ef3a0);DATARMNET619b9d5952(DATARMNETfbbc8e2e06); -DATARMNET619b9d5952(DATARMNETe9b360aea8);static struct DATARMNET7f0280a448 -DATARMNETb73677dd8c[DATARMNET6fb580e7bf]={DATARMNETb11903a752( -DATARMNETee792ef3a0,65000,(0x194d+2561-0x234e),65000,NULL),DATARMNETb11903a752( -DATARMNETfbbc8e2e06,65000,(0xfad+322-0x10ef),65000,NULL),DATARMNETb11903a752( -DATARMNETe9b360aea8,DATARMNET651e3c6554,DATARMNETf9e24b5cc7,DATARMNETb2380d39af, -DATARMNET467c2610cd),};static int DATARMNETedcd606b67(const char* -DATARMNETc94d3d8015,const struct kernel_param*DATARMNET8a7a56afc0,u32 -DATARMNETc8bfe161a0){struct DATARMNET7f0280a448*DATARMNETc628cb3ed7;unsigned -long long DATARMNET8371e203e8;u64 DATARMNET2582fdae21;int DATARMNET094475d445;if -(DATARMNETc8bfe161a0>=DATARMNET6fb580e7bf)return-EINVAL;DATARMNET094475d445= -kstrtoull(DATARMNETc94d3d8015,(0x1173+3661-0x1fc0),&DATARMNET8371e203e8);if( -DATARMNET094475d445<(0x2f4+3088-0xf04))return DATARMNET094475d445; -DATARMNETc628cb3ed7=&DATARMNETb73677dd8c[DATARMNETc8bfe161a0];if((u64) -DATARMNET8371e203e8DATARMNET9d5e08f187||(u64) -DATARMNET8371e203e8>DATARMNETc628cb3ed7->DATARMNETbcb261586d)return-ERANGE; -DATARMNET8f8c3a4cc3();DATARMNET2582fdae21=*(u64*)DATARMNET8a7a56afc0->arg;if(( -u64)DATARMNET8371e203e8==DATARMNET2582fdae21){DATARMNET4c69e80b6f();return -(0x451+6295-0x1ce8);}if(DATARMNETc628cb3ed7->DATARMNETf1c3fbdd8c){ -DATARMNET094475d445=DATARMNETc628cb3ed7->DATARMNETf1c3fbdd8c(DATARMNET2582fdae21 -,(u64)DATARMNET8371e203e8);if(DATARMNET094475d445<(0x1079+5304-0x2531)){ -DATARMNET4c69e80b6f();return DATARMNET094475d445;}}*(u64*)DATARMNET8a7a56afc0-> -arg=(u64)DATARMNET8371e203e8;DATARMNET4c69e80b6f();return(0x2a0+9324-0x270c);} -DATARMNET72f6e45b34(rmnet_offload_knob0,DATARMNETee792ef3a0);DATARMNET72f6e45b34 -(rmnet_offload_knob1,DATARMNETfbbc8e2e06);DATARMNET72f6e45b34( -rmnet_offload_knob2,DATARMNETe9b360aea8);u64 DATARMNET3d487d950f(u32 -DATARMNETc8bfe161a0){struct DATARMNET7f0280a448*DATARMNETc628cb3ed7;if( -DATARMNETc8bfe161a0>=DATARMNET6fb580e7bf)return(u64)~(0xc14+2053-0x1419); -DATARMNETc628cb3ed7=&DATARMNETb73677dd8c[DATARMNETc8bfe161a0];return -DATARMNETc628cb3ed7->DATARMNETd30c98c72c;} +#define DATARMNET584f34118e(DATARMNETe1196c6554, DATARMNET4c4a5ce272) \ + module_param_cb(DATARMNETe1196c6554, &DATARMNET07ae1e39fb[DATARMNET4c4a5ce272].\ +DATARMNET9cee06cbe4, \ + &DATARMNET07ae1e39fb[DATARMNET4c4a5ce272].DATARMNETd67569df12, \ +(0xdb7+6665-0x261c)) +struct DATARMNET5374f6eafa{u64 DATARMNETd67569df12;u64 DATARMNET949fb858da;u64 +DATARMNET6c81c0097b;int(*DATARMNET8a7dce7d36)(u64 DATARMNET7e07157b72,u64 +DATARMNETcd597b0a1b);struct kernel_param_ops DATARMNET9cee06cbe4;};static int +DATARMNETf467eaf6fc(const char*DATARMNETcc6099cb14,const struct kernel_param* +DATARMNETb3ce0fdc63,u32 DATARMNET4c4a5ce272);DATARMNET7996ea045b( +DATARMNETdf66588a73);DATARMNET7996ea045b(DATARMNET9c85bb95a3); +DATARMNET7996ea045b(DATARMNET6d2ed4b822);static struct DATARMNET5374f6eafa +DATARMNET07ae1e39fb[DATARMNET94aa767bca]={DATARMNETce9a74c748( +DATARMNETdf66588a73,65000,(0xd2d+202-0xdf7),65000,NULL),DATARMNETce9a74c748( +DATARMNET9c85bb95a3,65000,(0xd2d+202-0xdf7),65000,NULL),DATARMNETce9a74c748( +DATARMNET6d2ed4b822,DATARMNET2d89680280,DATARMNETa2ddeec85f,DATARMNETaccb69cf16, +DATARMNET241493ab9a),};static int DATARMNETf467eaf6fc(const char* +DATARMNETcc6099cb14,const struct kernel_param*DATARMNETb3ce0fdc63,u32 +DATARMNET4c4a5ce272){struct DATARMNET5374f6eafa*DATARMNET0751f2024d;unsigned +long long DATARMNETcd597b0a1b;u64 DATARMNET7e07157b72;int DATARMNETb14e52a504;if +(DATARMNET4c4a5ce272>=DATARMNET94aa767bca)return-EINVAL;DATARMNETb14e52a504= +kstrtoull(DATARMNETcc6099cb14,(0xd2d+202-0xdf7),&DATARMNETcd597b0a1b);if( +DATARMNETb14e52a504<(0xd2d+202-0xdf7))return DATARMNETb14e52a504; +DATARMNET0751f2024d=&DATARMNET07ae1e39fb[DATARMNET4c4a5ce272];if((u64) +DATARMNETcd597b0a1bDATARMNET949fb858da||(u64) +DATARMNETcd597b0a1b>DATARMNET0751f2024d->DATARMNET6c81c0097b)return-ERANGE; +DATARMNET664568fcd0();DATARMNET7e07157b72=*(u64*)DATARMNETb3ce0fdc63->arg;if(( +u64)DATARMNETcd597b0a1b==DATARMNET7e07157b72){DATARMNET6a76048590();return +(0xd2d+202-0xdf7);}if(DATARMNET0751f2024d->DATARMNET8a7dce7d36){ +DATARMNETb14e52a504=DATARMNET0751f2024d->DATARMNET8a7dce7d36(DATARMNET7e07157b72 +,(u64)DATARMNETcd597b0a1b);if(DATARMNETb14e52a504<(0xd2d+202-0xdf7)){ +DATARMNET6a76048590();return DATARMNETb14e52a504;}}*(u64*)DATARMNETb3ce0fdc63-> +arg=(u64)DATARMNETcd597b0a1b;DATARMNET6a76048590();return(0xd2d+202-0xdf7);} +DATARMNET584f34118e(rmnet_offload_knob0,DATARMNETdf66588a73);DATARMNET584f34118e +(rmnet_offload_knob1,DATARMNET9c85bb95a3);DATARMNET584f34118e( +rmnet_offload_knob2,DATARMNET6d2ed4b822);u64 DATARMNETf1d1b8287f(u32 +DATARMNET4c4a5ce272){struct DATARMNET5374f6eafa*DATARMNET0751f2024d;if( +DATARMNET4c4a5ce272>=DATARMNET94aa767bca)return(u64)~(0xd2d+202-0xdf7); +DATARMNET0751f2024d=&DATARMNET07ae1e39fb[DATARMNET4c4a5ce272];return +DATARMNET0751f2024d->DATARMNETd67569df12;} diff --git a/offload/rmnet_offload_knob.h b/offload/rmnet_offload_knob.h index 906f81efd36b..9d82c35d18c0 100644 --- a/offload/rmnet_offload_knob.h +++ b/offload/rmnet_offload_knob.h @@ -10,9 +10,9 @@ * GNU General Public License for more details. */ -#ifndef DATARMNET3d4ba93d76 -#define DATARMNET3d4ba93d76 +#ifndef DATARMNET5833be0738 +#define DATARMNET5833be0738 #include -enum{DATARMNETee792ef3a0,DATARMNETfbbc8e2e06,DATARMNETe9b360aea8, -DATARMNET6fb580e7bf,};u64 DATARMNET3d487d950f(u32 DATARMNETc8bfe161a0); +enum{DATARMNETdf66588a73,DATARMNET9c85bb95a3,DATARMNET6d2ed4b822, +DATARMNET94aa767bca,};u64 DATARMNETf1d1b8287f(u32 DATARMNET4c4a5ce272); #endif diff --git a/offload/rmnet_offload_main.c b/offload/rmnet_offload_main.c index 0562023137d4..c94f16a3a3df 100644 --- a/offload/rmnet_offload_main.c +++ b/offload/rmnet_offload_main.c @@ -21,170 +21,169 @@ #include "rmnet_offload_state.h" #include "rmnet_offload_engine.h" #include "rmnet_offload_stats.h" -static const char*DATARMNET9a36480134[]__always_unused={ +static const char*DATARMNET9be3ddbe97[]__always_unused={ "\x49\x37\x32\x31\x62\x64\x36\x39\x35\x32\x31\x66\x65\x34\x61\x61\x38\x64\x61\x65\x62\x65\x66\x62\x32\x38\x30\x64\x38\x64\x31\x35\x30\x39\x66\x39\x31\x65\x36\x37\x33" -,};static DEFINE_SPINLOCK(DATARMNET56235f0bb4);static u32 DATARMNETf6597f07e9( -struct DATARMNETadd6ff90d0*DATARMNET809d788099){__be32 DATARMNET51e56c6582[ -(0x5b9+1700-0xc52)];u32 DATARMNETb65409e3b5;__be16 DATARMNETe048999b85= -(0xb0c+7037-0x2689),DATARMNET6b15e99cb9=(0x6dc+1549-0xce9);if( -DATARMNET809d788099->DATARMNET072708db10==DATARMNETb02d95e937|| -DATARMNET809d788099->DATARMNET072708db10==DATARMNET70889e5696){struct -DATARMNET2d87db499d*DATARMNET5829e80183=DATARMNET809d788099->DATARMNETc51cdf696b -;DATARMNETe048999b85=DATARMNET5829e80183->DATARMNETaad9b0a864; -DATARMNET6b15e99cb9=DATARMNET5829e80183->DATARMNETd751c12d13;}if( -DATARMNET809d788099->DATARMNET9f5b2909c8==(0x10f3+703-0x13ae)){struct -DATARMNETf61a39bce9*DATARMNETf7a5ea0c29=DATARMNET809d788099->DATARMNET574a565f78 -;DATARMNET51e56c6582[(0x167b+1973-0x1e30)]=DATARMNETf7a5ea0c29-> -DATARMNET799b2a47a5;DATARMNET51e56c6582[(0xcb3+6554-0x264c)]=DATARMNETf7a5ea0c29 -->DATARMNET7c6ed51964;DATARMNET51e56c6582[(0x1c51+2147-0x24b2)]= -DATARMNETf7a5ea0c29->DATARMNET065f40367c;DATARMNET51e56c6582[ -(0x1092+2502-0x1a55)]=DATARMNET6b15e99cb9;DATARMNET51e56c6582[ -(0x1300+1818-0x1a16)]=DATARMNETe048999b85;DATARMNETb65409e3b5= -(0x1ac+8562-0x2319);}else{struct DATARMNETfab66e680d*DATARMNET6bd3c60da4= -DATARMNET809d788099->DATARMNET1dab0af728;memcpy(&DATARMNET51e56c6582[ -(0x11d+5240-0x1595)],&DATARMNET6bd3c60da4->DATARMNET818f335f71[ -(0x8dd+4882-0x1bef)],sizeof(DATARMNET6bd3c60da4->DATARMNET818f335f71));memcpy(& -DATARMNET51e56c6582[(0xbbd+5094-0x1f9e)],&DATARMNET6bd3c60da4-> -DATARMNET0f6f3a8868[(0x2fb+6889-0x1de4)],sizeof(DATARMNET6bd3c60da4-> -DATARMNET818f335f71));DATARMNET51e56c6582[(0x1438+742-0x1716)]= -DATARMNET6bd3c60da4->DATARMNETa2be9ad0de;DATARMNET51e56c6582[(0x411+5381-0x190d) -]=DATARMNET6b15e99cb9;DATARMNET51e56c6582[(0x1e1+3364-0xefb)]= -DATARMNETe048999b85;DATARMNETb65409e3b5=(0x59b+5231-0x19ff);}return jhash2( -DATARMNET51e56c6582,DATARMNETb65409e3b5,(0xeea+3831-0x1de1));}static void -DATARMNETee281dc788(u32 DATARMNET0eb96739bf){u32 DATARMNETc7bc65a2a5;if( -DATARMNET0eb96739bf>50000)DATARMNETc7bc65a2a5=DATARMNETd096b7b9cd;else if( -DATARMNET0eb96739bf>30000)DATARMNETc7bc65a2a5=DATARMNET1e2ecb33d1;else if( -DATARMNET0eb96739bf>23000)DATARMNETc7bc65a2a5=DATARMNET3b1a812e5c;else if( -DATARMNET0eb96739bf>14500)DATARMNETc7bc65a2a5=DATARMNET64bf04bc47;else if( -DATARMNET0eb96739bf>(0x22ed+7824-0x2625))DATARMNETc7bc65a2a5=DATARMNET7069e38e48 -;else if(DATARMNET0eb96739bf>(0x1fd3+2486-0x2411))DATARMNETc7bc65a2a5= -DATARMNETc005f7933f;else DATARMNETc7bc65a2a5=DATARMNET2eb3321438; -DATARMNET5d24865423(DATARMNETc7bc65a2a5);}static bool DATARMNET00b745f472(struct - rmnet_frag_descriptor*DATARMNETa41162aa9b,struct DATARMNETadd6ff90d0* -DATARMNET809d788099){u8*DATARMNET218e3007fa;u16 DATARMNET0eb96739bf;u16 -DATARMNET0d3dcef7b0;if(DATARMNETa41162aa9b->hdrs_valid){DATARMNET809d788099-> -DATARMNET9f5b2909c8=DATARMNETa41162aa9b->ip_proto;DATARMNET809d788099-> -DATARMNETa7eaea0d00=DATARMNETa41162aa9b->ip_len;DATARMNET809d788099-> -DATARMNET072708db10=DATARMNETa41162aa9b->trans_proto;DATARMNET809d788099-> -DATARMNETfeb7c81ac7=DATARMNETa41162aa9b->trans_len;DATARMNET809d788099-> -DATARMNET574a565f78=(struct DATARMNETf61a39bce9*)DATARMNETa41162aa9b->hdr_ptr; -DATARMNET809d788099->DATARMNET7ff34eacb7=(struct DATARMNET1bffb1c388*)( -DATARMNETa41162aa9b->hdr_ptr+DATARMNETa41162aa9b->ip_len);DATARMNET809d788099-> -DATARMNET68ad0738e2=DATARMNETf6597f07e9(DATARMNET809d788099);DATARMNET809d788099 -->DATARMNET5671455f38=skb_frag_size(&DATARMNETa41162aa9b->frag);if( -DATARMNETa41162aa9b->hdr_ptr==rmnet_frag_data_ptr(DATARMNETa41162aa9b)) -DATARMNET809d788099->DATARMNET5671455f38-=DATARMNETa41162aa9b->ip_len+ -DATARMNETa41162aa9b->trans_len;DATARMNET809d788099->DATARMNET798fafaf36= -DATARMNETa41162aa9b;return false;}DATARMNET218e3007fa=rmnet_frag_data_ptr( -DATARMNETa41162aa9b);DATARMNET0eb96739bf=skb_frag_size(&DATARMNETa41162aa9b-> -frag);DATARMNET809d788099->DATARMNET2f3cb41448=true;DATARMNET809d788099-> -DATARMNET9f5b2909c8=(DATARMNET218e3007fa[(0x2a+5400-0x1542)]& -(0x1881+3821-0x267e))>>(0x16d+792-0x481);if(DATARMNET809d788099-> -DATARMNET9f5b2909c8==(0x73a+2289-0x1027)){struct DATARMNETf61a39bce9* -DATARMNETf7a5ea0c29;DATARMNETf7a5ea0c29=(struct DATARMNETf61a39bce9*) -DATARMNET218e3007fa;DATARMNET809d788099->DATARMNET574a565f78=DATARMNETf7a5ea0c29 -;DATARMNET809d788099->DATARMNETa7eaea0d00=DATARMNETf7a5ea0c29-> -DATARMNET422c25939d*(0x1235+3369-0x1f5a);DATARMNET809d788099-> -DATARMNET072708db10=DATARMNETf7a5ea0c29->DATARMNET065f40367c;if( -DATARMNETf7a5ea0c29->DATARMNETa803e4f68b&htons(16383)){DATARMNET5d24865423( -DATARMNET433e163a43);goto DATARMNET02a8afcd23;}DATARMNET0d3dcef7b0=ntohs( -DATARMNETf7a5ea0c29->DATARMNETefd12e7a2b);DATARMNET809d788099-> -DATARMNET6cc77c7b3f=DATARMNET0d3dcef7b0!=DATARMNET0eb96739bf;}else if( -DATARMNET809d788099->DATARMNET9f5b2909c8==(0x79a+292-0x8b8)){struct -DATARMNETfab66e680d*DATARMNET6bd3c60da4;int DATARMNET5fc606c6dc;__be16 -DATARMNETe95a0a73b9;u8 DATARMNETcb5c3d9e39;DATARMNET6bd3c60da4=(struct -DATARMNETfab66e680d*)DATARMNET218e3007fa;DATARMNET809d788099-> -DATARMNET1dab0af728=DATARMNET6bd3c60da4;DATARMNETcb5c3d9e39=DATARMNET6bd3c60da4 -->DATARMNETa2be9ad0de;DATARMNET5fc606c6dc=rmnet_frag_ipv6_skip_exthdr( -DATARMNETa41162aa9b,sizeof(*DATARMNET6bd3c60da4),&DATARMNETcb5c3d9e39,& -DATARMNETe95a0a73b9);if(DATARMNET5fc606c6dc<(0x13d7+456-0x159f)){goto -DATARMNET02a8afcd23;}DATARMNET809d788099->DATARMNETa7eaea0d00=(u16) -DATARMNET5fc606c6dc;DATARMNET809d788099->DATARMNET072708db10=DATARMNETcb5c3d9e39 -;if(DATARMNETe95a0a73b9){if(DATARMNET809d788099->DATARMNET072708db10== -DATARMNET75cddb74df)DATARMNET809d788099->DATARMNETa7eaea0d00+= -(0xc6f+3338-0x1971);DATARMNET5d24865423(DATARMNET433e163a43);goto -DATARMNET02a8afcd23;}DATARMNET0d3dcef7b0=ntohs(DATARMNET6bd3c60da4-> -DATARMNET5aeba29b95)+sizeof(*DATARMNET6bd3c60da4);DATARMNET809d788099-> -DATARMNET6cc77c7b3f=DATARMNET0d3dcef7b0!=DATARMNET0eb96739bf;}else{return true;} -DATARMNET218e3007fa+=DATARMNET809d788099->DATARMNETa7eaea0d00;if( -DATARMNET809d788099->DATARMNET072708db10==DATARMNET70889e5696){struct -DATARMNET1bffb1c388*DATARMNETbd1c0986f8;DATARMNETbd1c0986f8=(struct -DATARMNET1bffb1c388*)DATARMNET218e3007fa;DATARMNET809d788099-> -DATARMNET7ff34eacb7=DATARMNETbd1c0986f8;DATARMNET809d788099->DATARMNETfeb7c81ac7 -=DATARMNETbd1c0986f8->DATARMNET686636af95*(0xcb9+267-0xdc0);}else if( -DATARMNET809d788099->DATARMNET072708db10==DATARMNETb02d95e937){struct -DATARMNET2d87db499d*DATARMNET5829e80183;DATARMNET5829e80183=(struct -DATARMNET2d87db499d*)DATARMNET218e3007fa;DATARMNET809d788099-> -DATARMNETc51cdf696b=DATARMNET5829e80183;DATARMNET809d788099->DATARMNETfeb7c81ac7 -=sizeof(*DATARMNET5829e80183);}else{goto DATARMNET02a8afcd23;} -DATARMNET809d788099->DATARMNET2f3cb41448=false;DATARMNET809d788099-> -DATARMNET68ad0738e2=DATARMNETf6597f07e9(DATARMNET809d788099);if(! -DATARMNET809d788099->DATARMNET6cc77c7b3f){DATARMNETa41162aa9b->ip_proto= -DATARMNET809d788099->DATARMNET9f5b2909c8;DATARMNETa41162aa9b->ip_len= -DATARMNET809d788099->DATARMNETa7eaea0d00;DATARMNETa41162aa9b->trans_proto= -DATARMNET809d788099->DATARMNET072708db10;DATARMNETa41162aa9b->trans_len= -DATARMNET809d788099->DATARMNETfeb7c81ac7;DATARMNETa41162aa9b->hdrs_valid= -(0x9a3+3898-0x18dc);}DATARMNET02a8afcd23:DATARMNET809d788099-> -DATARMNET5671455f38=DATARMNET0eb96739bf-DATARMNET809d788099->DATARMNETa7eaea0d00 --DATARMNET809d788099->DATARMNETfeb7c81ac7;if(DATARMNET809d788099-> -DATARMNET6cc77c7b3f)DATARMNET5d24865423(DATARMNETf4e67e1692);DATARMNET809d788099 -->DATARMNET798fafaf36=DATARMNETa41162aa9b;return false;}static void -DATARMNET5eaded9c32(struct rmnet_frag_descriptor*DATARMNETa41162aa9b,struct -rmnet_port*DATARMNETe8a5f322f0){struct DATARMNET8357daf015*DATARMNETf7e8f6395c= -DATARMNETccc25794e0();struct DATARMNETadd6ff90d0 DATARMNET809d788099;memset(& -DATARMNET809d788099,(0x1b23+1630-0x2181),sizeof(DATARMNET809d788099)); -DATARMNET8f8c3a4cc3();DATARMNETf7e8f6395c->DATARMNET547651077b= -DATARMNETe8a5f322f0;if(DATARMNET00b745f472(DATARMNETa41162aa9b,& -DATARMNET809d788099)){DATARMNET5d24865423(DATARMNET056a0fe195); -rmnet_recycle_frag_descriptor(DATARMNETa41162aa9b,DATARMNETe8a5f322f0);goto -DATARMNETe1f307999b;}DATARMNET5d24865423(DATARMNET18d408a5a5);if( -DATARMNET809d788099.DATARMNET2f3cb41448){goto DATARMNET52a3ca33f8;}else if( -DATARMNET809d788099.DATARMNET6cc77c7b3f){DATARMNET8b657e07e9(DATARMNET809d788099 -.DATARMNET68ad0738e2);goto DATARMNET52a3ca33f8;}if(!DATARMNETa41162aa9b-> -csum_valid){goto DATARMNET52a3ca33f8;}if(!DATARMNET9b8a1a69f3(& -DATARMNET809d788099))goto DATARMNET52a3ca33f8;goto DATARMNETe1f307999b; -DATARMNET52a3ca33f8:DATARMNETf9d626d72b(&DATARMNET809d788099); -DATARMNETe1f307999b:DATARMNET4c69e80b6f();}void DATARMNET8f8c3a4cc3(void){ -spin_lock_bh(&DATARMNET56235f0bb4);}void DATARMNET4c69e80b6f(void){ -spin_unlock_bh(&DATARMNET56235f0bb4);}void DATARMNETd9ec5f4e65(void){ -rcu_assign_pointer(rmnet_perf_desc_entry,DATARMNET5eaded9c32);}void -DATARMNET848914898b(void){rcu_assign_pointer(rmnet_perf_desc_entry,NULL);}bool -DATARMNET4e490d9d37(void){void(*DATARMNETb4f3500b6d)(struct -rmnet_frag_descriptor*DATARMNETa41162aa9b,struct rmnet_port*DATARMNETe8a5f322f0) -;rcu_read_lock();DATARMNETb4f3500b6d=rcu_dereference(rmnet_perf_desc_entry); -rcu_read_unlock();return DATARMNETb4f3500b6d!=NULL;}void DATARMNET654b85a739( -struct rmnet_frag_descriptor*DATARMNETa41162aa9b,u32 DATARMNET30fde83b85){struct - DATARMNET8357daf015*DATARMNETf7e8f6395c=DATARMNETccc25794e0(); -DATARMNETee281dc788(DATARMNET30fde83b85);DATARMNET5d24865423(DATARMNET6b8a6c4f4e -);rmnet_frag_deliver(DATARMNETa41162aa9b,DATARMNETf7e8f6395c-> -DATARMNET547651077b);}void DATARMNETf9d626d72b(struct DATARMNETadd6ff90d0* -DATARMNET809d788099){struct rmnet_frag_descriptor*DATARMNETa41162aa9b= -DATARMNET809d788099->DATARMNET798fafaf36;u32 DATARMNET0eb96739bf= -DATARMNET809d788099->DATARMNET5671455f38+DATARMNET809d788099-> -DATARMNETa7eaea0d00+DATARMNET809d788099->DATARMNETfeb7c81ac7;if( -DATARMNET0eb96739bf>65536)return;if(!DATARMNET809d788099->DATARMNET2f3cb41448) -DATARMNETa41162aa9b->hash=DATARMNET809d788099->DATARMNET68ad0738e2; -DATARMNET654b85a739(DATARMNETa41162aa9b,DATARMNET0eb96739bf);}void -DATARMNETfaa320a86a(void*DATARMNETe8a5f322f0){(void)DATARMNETe8a5f322f0; -DATARMNETafcdd1146f();}void DATARMNET6b57fa3471(void*DATARMNETe8a5f322f0){struct - DATARMNET8357daf015*DATARMNETf7e8f6395c=DATARMNETccc25794e0();(void) -DATARMNETe8a5f322f0;if(DATARMNETf7e8f6395c->DATARMNETfe5583a585. -DATARMNETf82a9c29ed)DATARMNET28dfa538f2();}void DATARMNET4aefca6d3c(struct -rmnet_map_dl_ind_hdr*DATARMNETf3449c6d59,struct rmnet_map_control_command_header -*DATARMNET23a4adcff8){struct DATARMNET8357daf015*DATARMNETf7e8f6395c= -DATARMNETccc25794e0();(void)DATARMNET23a4adcff8;if(DATARMNETf7e8f6395c-> -DATARMNETfe5583a585.DATARMNETecff29bcbf&&DATARMNET54fd6bf483()) -DATARMNET5d24865423(DATARMNET51527f883c);DATARMNETf7e8f6395c-> -DATARMNETfe5583a585.DATARMNETecff29bcbf=true;DATARMNETf7e8f6395c-> -DATARMNETfe5583a585.DATARMNET26e013d9f7=DATARMNETf3449c6d59->le.seq; -DATARMNETf7e8f6395c->DATARMNETfe5583a585.DATARMNETdd6feb57a5=DATARMNETf3449c6d59 -->le.pkts;}void DATARMNET94edfae28d(struct rmnet_map_dl_ind_trl* -DATARMNET0303d63d24,struct rmnet_map_control_command_header*DATARMNET23a4adcff8) -{struct DATARMNET8357daf015*DATARMNETf7e8f6395c=DATARMNETccc25794e0();(void) -DATARMNET23a4adcff8;if(DATARMNETf7e8f6395c->DATARMNETfe5583a585. -DATARMNET26e013d9f7!=DATARMNET0303d63d24->seq_le)DATARMNET5d24865423( -DATARMNETae9ed9e102);if(DATARMNET54fd6bf483())DATARMNET5d24865423( -DATARMNET3f56a10f4d);DATARMNETf7e8f6395c->DATARMNETfe5583a585. -DATARMNETecff29bcbf=false;DATARMNETf7e8f6395c->DATARMNETfe5583a585. -DATARMNET26e013d9f7=(0x1dfd+911-0x218c);DATARMNETf7e8f6395c->DATARMNETfe5583a585 -.DATARMNETdd6feb57a5=(0x2bb+6482-0x1c0d);} +, +"\x49\x36\x64\x36\x66\x39\x32\x35\x66\x33\x65\x33\x32\x31\x65\x31\x32\x32\x38\x64\x33\x38\x37\x33\x66\x63\x37\x38\x32\x31\x38\x62\x61\x39\x30\x65\x39\x34\x35\x30\x36" +,};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+ +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)){ +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= +(0xd26+209-0xdf6);}DATARMNETaabe3a05f8:DATARMNET458b70e7e5->DATARMNET1ef22e4c76= +DATARMNET5affe290b8-DATARMNET458b70e7e5->DATARMNETbecebb23ac-DATARMNET458b70e7e5 +->DATARMNET0ab9b2ce3b;if(DATARMNET458b70e7e5->DATARMNET8f59f5a745) +DATARMNETa00cda79d0(DATARMNET52b7da9033);DATARMNET458b70e7e5-> +DATARMNET719f68fb88=DATARMNET9d1b321642;return false;}static void +DATARMNET29e8d137c4(struct rmnet_frag_descriptor*DATARMNET9d1b321642,struct +rmnet_port*DATARMNETf0d9de7e2f){struct DATARMNET70f3b87b5d*DATARMNETe05748b000= +DATARMNETc2a630b113();struct DATARMNETd812bcdbb5 DATARMNET458b70e7e5;memset(& +DATARMNET458b70e7e5,(0xd2d+202-0xdf7),sizeof(DATARMNET458b70e7e5)); +DATARMNET664568fcd0();DATARMNETe05748b000->DATARMNET403589239f= +DATARMNETf0d9de7e2f;if(DATARMNET1a7ed9a6a2(DATARMNET9d1b321642,& +DATARMNET458b70e7e5)){DATARMNETa00cda79d0(DATARMNET1cddffce49); +rmnet_recycle_frag_descriptor(DATARMNET9d1b321642,DATARMNETf0d9de7e2f);goto +DATARMNETbf4095f79e;}DATARMNETa00cda79d0(DATARMNET9b3fdb0e16);if( +DATARMNET458b70e7e5.DATARMNET3eb91ee54d){goto DATARMNET806c6f8e60;}else if( +DATARMNET458b70e7e5.DATARMNET8f59f5a745){DATARMNETc38c135c9f(DATARMNET458b70e7e5 +.DATARMNET645e8912b8);goto DATARMNET806c6f8e60;}if(!DATARMNET9d1b321642-> +csum_valid){goto DATARMNET806c6f8e60;}if(!DATARMNETfbf5798e15(& +DATARMNET458b70e7e5))goto DATARMNET806c6f8e60;goto DATARMNETbf4095f79e; +DATARMNET806c6f8e60:DATARMNET19d190f2bd(&DATARMNET458b70e7e5); +DATARMNETbf4095f79e:DATARMNET6a76048590();}void DATARMNET664568fcd0(void){ +spin_lock_bh(&DATARMNET0b5e447f18);}void DATARMNET6a76048590(void){ +spin_unlock_bh(&DATARMNET0b5e447f18);}void DATARMNET818b960147(void){ +rcu_assign_pointer(rmnet_perf_desc_entry,DATARMNET29e8d137c4);}void +DATARMNETba38823a2f(void){rcu_assign_pointer(rmnet_perf_desc_entry,NULL);}bool +DATARMNET19eb0de3b2(void){void(*DATARMNET27ebcde4bf)(struct +rmnet_frag_descriptor*DATARMNET9d1b321642,struct rmnet_port*DATARMNETf0d9de7e2f) +;rcu_read_lock();DATARMNET27ebcde4bf=rcu_dereference(rmnet_perf_desc_entry); +rcu_read_unlock();return DATARMNET27ebcde4bf!=NULL;}void DATARMNET58a244b2fe( +struct rmnet_frag_descriptor*DATARMNET9d1b321642,u32 DATARMNET0d47fb783d){struct + DATARMNET70f3b87b5d*DATARMNETe05748b000=DATARMNETc2a630b113(); +DATARMNETe26a68d20e(DATARMNET0d47fb783d);DATARMNETa00cda79d0(DATARMNET65843ad009 +);rmnet_frag_deliver(DATARMNET9d1b321642,DATARMNETe05748b000-> +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)DATARMNETf0d9de7e2f; +DATARMNETd4230b6bfe();}void DATARMNETb7e47d7254(void*DATARMNETf0d9de7e2f){struct + DATARMNET70f3b87b5d*DATARMNETe05748b000=DATARMNETc2a630b113();(void) +DATARMNETf0d9de7e2f;if(DATARMNETe05748b000->DATARMNETa9f2b2f677. +DATARMNETc2832b8f85)DATARMNET560e127137();}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.DATARMNETb165d2c5c4&&DATARMNETae70636c90()) +DATARMNETa00cda79d0(DATARMNET372ef39ae4);DATARMNETe05748b000-> +DATARMNETa9f2b2f677.DATARMNETb165d2c5c4=true;DATARMNETe05748b000-> +DATARMNETa9f2b2f677.DATARMNETe2251ce433=DATARMNET7c7748ef7a->le.seq; +DATARMNETe05748b000->DATARMNETa9f2b2f677.DATARMNET7f59b108db=DATARMNET7c7748ef7a +->le.pkts;}void DATARMNETc9dd320f49(struct rmnet_map_dl_ind_trl* +DATARMNET2541770fea,struct rmnet_map_control_command_header*DATARMNET8b07ee3e82) +{struct DATARMNET70f3b87b5d*DATARMNETe05748b000=DATARMNETc2a630b113();(void) +DATARMNET8b07ee3e82;if(DATARMNETe05748b000->DATARMNETa9f2b2f677. +DATARMNETe2251ce433!=DATARMNET2541770fea->seq_le)DATARMNETa00cda79d0( +DATARMNET30a4d88ea6);if(DATARMNETae70636c90())DATARMNETa00cda79d0( +DATARMNETa03ed3629e);DATARMNETe05748b000->DATARMNETa9f2b2f677. +DATARMNETb165d2c5c4=false;DATARMNETe05748b000->DATARMNETa9f2b2f677. +DATARMNETe2251ce433=(0xd2d+202-0xdf7);DATARMNETe05748b000->DATARMNETa9f2b2f677. +DATARMNET7f59b108db=(0xd2d+202-0xdf7);} diff --git a/offload/rmnet_offload_main.h b/offload/rmnet_offload_main.h index 0c9a84db12a3..613d5b28ea11 100644 --- a/offload/rmnet_offload_main.h +++ b/offload/rmnet_offload_main.h @@ -10,61 +10,61 @@ * GNU General Public License for more details. */ -#ifndef DATARMNET8ff259402c -#define DATARMNET8ff259402c +#ifndef DATARMNET3f65517842 +#define DATARMNET3f65517842 #include #include #include "rmnet_descriptor.h" #include "rmnet_map.h" -#define DATARMNET70889e5696 (0x11e1+4818-0x24ad) -#define DATARMNETb02d95e937 (0x398+2717-0xe24) -#define DATARMNET75cddb74df (0x1d0+8549-0x2309) -struct DATARMNETf61a39bce9{ +#define DATARMNETfd5c3d30e5 (0xd03+244-0xdf1) +#define DATARMNETa656f324b2 (0xeb7+1151-0x1325) +#define DATARMNET5b166167a8 (0xec7+1138-0x130d) +struct DATARMNET308c06fca6{ #if defined(__LITTLE_ENDIAN_BITFIELD) -u8 DATARMNET422c25939d:(0xc6f+4384-0x1d8b);u8 DATARMNET8f06b45a68: -(0xe4+813-0x40d); +u8 DATARMNET610d06a887:(0xd11+230-0xdf3);u8 DATARMNET7af6b06548: +(0xd11+230-0xdf3); #elif defined (__BIG_ENDIAN_BITFIELD) -u8 DATARMNET8f06b45a68:(0x297+3591-0x109a);u8 DATARMNET422c25939d: -(0x504+4747-0x178b); +u8 DATARMNET7af6b06548:(0xd11+230-0xdf3);u8 DATARMNET610d06a887: +(0xd11+230-0xdf3); #else #error " error" #endif -u8 DATARMNET14d3de9c1a;__be16 DATARMNETefd12e7a2b;__be16 DATARMNET4de0560151; -__be16 DATARMNETa803e4f68b;u8 DATARMNET58886f3d9d;u8 DATARMNET065f40367c;__be16 -DATARMNET32d70026ed;__be32 DATARMNET7c6ed51964;__be32 DATARMNET799b2a47a5;}; -struct DATARMNETfab66e680d{__be32 DATARMNETd750a8b9e5;__be16 DATARMNET5aeba29b95 -;u8 DATARMNETa2be9ad0de;u8 DATARMNET63034bb4af;__be32 DATARMNET0f6f3a8868[ -(0xf34+819-0x1263)];__be32 DATARMNET818f335f71[(0xda6+1408-0x1322)];};struct -DATARMNET1bffb1c388{__be16 DATARMNET1addfaf963;__be16 DATARMNET88b102698d;__be32 - DATARMNET614032cc71;__be32 DATARMNET5e09091b6e; +u8 DATARMNET03e081f69f;__be16 DATARMNET8e175ac02d;__be16 DATARMNET4acf94d119; +__be16 DATARMNET2c091223da;u8 DATARMNET1eb6c27583;u8 DATARMNET953d32410f;__be16 +DATARMNET9e4950461a;__be32 DATARMNET9bbd2ca483;__be32 DATARMNET11ef55b2bb;}; +struct DATARMNET64bb8f616e{__be32 DATARMNET0687f7ecdc;__be16 DATARMNETaa340485c5 +;u8 DATARMNET7244bfdc4f;u8 DATARMNET00f98dd445;__be32 DATARMNET31202449fc[ +(0xd11+230-0xdf3)];__be32 DATARMNETc657c0a139[(0xd11+230-0xdf3)];};struct +DATARMNETd2991e8952{__be16 DATARMNET6acbeeebb1;__be16 DATARMNET29b8c05d14;__be32 + DATARMNETb3e70104e0;__be32 DATARMNET9a9c9d060a; #if defined(__LITTLE_ENDIAN_BITFIELD) -u8 DATARMNET0f1c1adba0:(0x975+7513-0x26ca);u8 DATARMNET686636af95: -(0x5d8+6880-0x20b4); +u8 DATARMNET655b34c160:(0xd11+230-0xdf3);u8 DATARMNETcf2e43ad69: +(0xd11+230-0xdf3); #elif defined (__BIG_ENDIAN_BITFIELD) -u8 DATARMNET686636af95:(0x882+5440-0x1dbe);u8 DATARMNET0f1c1adba0: -(0xbc6+6497-0x2523); +u8 DATARMNETcf2e43ad69:(0xd11+230-0xdf3);u8 DATARMNET655b34c160: +(0xd11+230-0xdf3); #else #error " error" #endif -u8 DATARMNETf538480d20;__be16 DATARMNETf62e1ed00e;__be16 DATARMNETefa4b043cf; -__be16 DATARMNETd93b885d17;};struct DATARMNET2d87db499d{__be16 -DATARMNETaad9b0a864;__be16 DATARMNETd751c12d13;__be16 DATARMNET69d29eba58;__be16 - DATARMNET7efecd6ba5;};struct DATARMNETadd6ff90d0{struct rmnet_frag_descriptor* -DATARMNET798fafaf36;union{struct DATARMNETf61a39bce9*DATARMNET574a565f78;struct -DATARMNETfab66e680d*DATARMNET1dab0af728;};union{struct DATARMNET1bffb1c388* -DATARMNET7ff34eacb7;struct DATARMNET2d87db499d*DATARMNETc51cdf696b;};u32 -DATARMNET68ad0738e2;u16 DATARMNET5671455f38;u16 DATARMNETa7eaea0d00;u16 -DATARMNETfeb7c81ac7;u8 DATARMNET9f5b2909c8;u8 DATARMNET072708db10;bool -DATARMNET1e7926dc4c;bool DATARMNET2f3cb41448;bool DATARMNET6cc77c7b3f;};void -DATARMNET8f8c3a4cc3(void);void DATARMNET4c69e80b6f(void);void -DATARMNETd9ec5f4e65(void);void DATARMNET848914898b(void);bool -DATARMNET4e490d9d37(void);void DATARMNET654b85a739(struct rmnet_frag_descriptor* -DATARMNETa41162aa9b,u32 DATARMNET0eb96739bf);void DATARMNETf9d626d72b(struct -DATARMNETadd6ff90d0*DATARMNET809d788099);void DATARMNETfaa320a86a(void* -DATARMNETe8a5f322f0);void DATARMNET6b57fa3471(void*DATARMNETe8a5f322f0);void -DATARMNET4aefca6d3c(struct rmnet_map_dl_ind_hdr*DATARMNETf3449c6d59,struct -rmnet_map_control_command_header*DATARMNET23a4adcff8);void DATARMNET94edfae28d( -struct rmnet_map_dl_ind_trl*DATARMNET0303d63d24,struct -rmnet_map_control_command_header*DATARMNET23a4adcff8); +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 +DATARMNETf1b6b0a6cc;bool DATARMNET3eb91ee54d;bool DATARMNET8f59f5a745;};void +DATARMNET664568fcd0(void);void DATARMNET6a76048590(void);void +DATARMNET818b960147(void);void DATARMNETba38823a2f(void);bool +DATARMNET19eb0de3b2(void);void DATARMNET58a244b2fe(struct rmnet_frag_descriptor* +DATARMNET9d1b321642,u32 DATARMNET5affe290b8);void DATARMNET19d190f2bd(struct +DATARMNETd812bcdbb5*DATARMNET458b70e7e5);void DATARMNET9292bebdd3(void* +DATARMNETf0d9de7e2f);void DATARMNETb7e47d7254(void*DATARMNETf0d9de7e2f);void +DATARMNET95e1703026(struct rmnet_map_dl_ind_hdr*DATARMNET7c7748ef7a,struct +rmnet_map_control_command_header*DATARMNET8b07ee3e82);void DATARMNETc9dd320f49( +struct rmnet_map_dl_ind_trl*DATARMNET2541770fea,struct +rmnet_map_control_command_header*DATARMNET8b07ee3e82); #endif diff --git a/offload/rmnet_offload_state.c b/offload/rmnet_offload_state.c index 3d48e3b1ed13..2d6b821a2bda 100644 --- a/offload/rmnet_offload_state.c +++ b/offload/rmnet_offload_state.c @@ -18,83 +18,83 @@ #include "rmnet_offload_state.h" #include "rmnet_offload_engine.h" MODULE_LICENSE("\x47\x50\x4c\x20\x76\x32"); -#define DATARMNET47b52951b8 (0x68d+4280-0x1745) -static struct DATARMNET8357daf015*DATARMNETf7e8f6395c;static void -DATARMNET39b47bda29(void){struct rmnet_port*DATARMNETe8a5f322f0= -DATARMNETf7e8f6395c->DATARMNET547651077b;struct DATARMNET92f4d48c56* -DATARMNET18063ff0ab;qmi_rmnet_ps_ind_deregister(DATARMNETe8a5f322f0,& -DATARMNETf7e8f6395c->DATARMNETa0db7ef12a);DATARMNET18063ff0ab=& -DATARMNETf7e8f6395c->DATARMNETfe5583a585;if(DATARMNET18063ff0ab-> -DATARMNETf82a9c29ed)rmnet_map_dl_ind_deregister(DATARMNETe8a5f322f0,& -DATARMNET18063ff0ab->DATARMNET524c210c13);}static void DATARMNET296eb47249(void) -{if(!DATARMNETf7e8f6395c)return;DATARMNET39b47bda29();DATARMNET848914898b(); -DATARMNET28dfa538f2();DATARMNET54fd6bf483();DATARMNETde815547a0();kfree( -DATARMNETf7e8f6395c);DATARMNETf7e8f6395c=NULL;}static int DATARMNETd813fadf76( -void){struct rmnet_port*DATARMNETe8a5f322f0=DATARMNETf7e8f6395c-> -DATARMNET547651077b;struct qmi_rmnet_ps_ind*DATARMNET83359ae71d;struct -DATARMNET92f4d48c56*DATARMNET18063ff0ab;struct rmnet_map_dl_ind* -DATARMNET524c210c13;int DATARMNET094475d445=DATARMNET6e89887168; -DATARMNET83359ae71d=&DATARMNETf7e8f6395c->DATARMNETa0db7ef12a; -DATARMNET83359ae71d->ps_on_handler=DATARMNETfaa320a86a;DATARMNET83359ae71d-> -ps_off_handler=DATARMNET6b57fa3471;if(qmi_rmnet_ps_ind_register( -DATARMNETe8a5f322f0,DATARMNET83359ae71d)){DATARMNET094475d445= -DATARMNETee330d5a81;pr_warn( +#define DATARMNET1f03ff7987 (0xd2d+202-0xdf7) +static struct DATARMNET70f3b87b5d*DATARMNETe05748b000;static void +DATARMNETac9c8c14b1(void){struct rmnet_port*DATARMNETf0d9de7e2f= +DATARMNETe05748b000->DATARMNET403589239f;struct DATARMNET74bb35b8f2* +DATARMNET87b015f76f;qmi_rmnet_ps_ind_deregister(DATARMNETf0d9de7e2f,& +DATARMNETe05748b000->DATARMNET341393eda2);DATARMNET87b015f76f=& +DATARMNETe05748b000->DATARMNETa9f2b2f677;if(DATARMNET87b015f76f-> +DATARMNETc2832b8f85)rmnet_map_dl_ind_deregister(DATARMNETf0d9de7e2f,& +DATARMNET87b015f76f->DATARMNET8633ae8f1e);}static void DATARMNET345f805b34(void) +{if(!DATARMNETe05748b000)return;DATARMNETac9c8c14b1();DATARMNETba38823a2f(); +DATARMNET560e127137();DATARMNETae70636c90();DATARMNETb98b78b8e3();kfree( +DATARMNETe05748b000);DATARMNETe05748b000=NULL;}static int DATARMNETd68e3594a7( +void){struct rmnet_port*DATARMNETf0d9de7e2f=DATARMNETe05748b000-> +DATARMNET403589239f;struct qmi_rmnet_ps_ind*DATARMNETbc78d7fd3c;struct +DATARMNET74bb35b8f2*DATARMNET87b015f76f;struct rmnet_map_dl_ind* +DATARMNET8633ae8f1e;int DATARMNETb14e52a504=DATARMNET0529bb9c4e; +DATARMNETbc78d7fd3c=&DATARMNETe05748b000->DATARMNET341393eda2; +DATARMNETbc78d7fd3c->ps_on_handler=DATARMNET9292bebdd3;DATARMNETbc78d7fd3c-> +ps_off_handler=DATARMNETb7e47d7254;if(qmi_rmnet_ps_ind_register( +DATARMNETf0d9de7e2f,DATARMNETbc78d7fd3c)){DATARMNETb14e52a504= +DATARMNET8e1c5c09f8;pr_warn( "\x25\x73\x28\x29\x3a\x20\x50\x53\x20\x43\x42\x20\x72\x65\x67\x69\x73\x74\x72\x61\x74\x69\x6f\x6e\x20\x66\x61\x69\x6c\x65\x64" "\n" -,__func__);}if(DATARMNETe8a5f322f0->data_format& -RMNET_INGRESS_FORMAT_DL_MARKER_V2){DATARMNET18063ff0ab=&DATARMNETf7e8f6395c-> -DATARMNETfe5583a585;DATARMNET524c210c13=&DATARMNET18063ff0ab-> -DATARMNET524c210c13;DATARMNET524c210c13->priority=DATARMNET47b52951b8; -DATARMNET524c210c13->dl_hdr_handler_v2=DATARMNET4aefca6d3c;DATARMNET524c210c13-> -dl_trl_handler_v2=DATARMNET94edfae28d;if(rmnet_map_dl_ind_register( -DATARMNETe8a5f322f0,DATARMNET524c210c13)){DATARMNETafcdd1146f(); -DATARMNET094475d445=DATARMNETee330d5a81;pr_warn( +,__func__);}if(DATARMNETf0d9de7e2f->data_format& +RMNET_INGRESS_FORMAT_DL_MARKER_V2){DATARMNET87b015f76f=&DATARMNETe05748b000-> +DATARMNETa9f2b2f677;DATARMNET8633ae8f1e=&DATARMNET87b015f76f-> +DATARMNET8633ae8f1e;DATARMNET8633ae8f1e->priority=DATARMNET1f03ff7987; +DATARMNET8633ae8f1e->dl_hdr_handler_v2=DATARMNET95e1703026;DATARMNET8633ae8f1e-> +dl_trl_handler_v2=DATARMNETc9dd320f49;if(rmnet_map_dl_ind_register( +DATARMNETf0d9de7e2f,DATARMNET8633ae8f1e)){DATARMNETd4230b6bfe(); +DATARMNETb14e52a504=DATARMNET8e1c5c09f8;pr_warn( "\x25\x73\x28\x29\x3a\x20\x44\x4c\x20\x43\x42\x20\x72\x65\x67\x69\x73\x74\x72\x61\x74\x61\x74\x69\x6f\x6e\x20\x66\x61\x69\x6c\x65\x64" "\n" -,__func__);}else{DATARMNET18063ff0ab->DATARMNETf82a9c29ed=true;}}else{ -DATARMNETafcdd1146f();DATARMNET094475d445=DATARMNETee330d5a81;pr_warn( +,__func__);}else{DATARMNET87b015f76f->DATARMNETc2832b8f85=true;}}else{ +DATARMNETd4230b6bfe();DATARMNETb14e52a504=DATARMNET8e1c5c09f8;pr_warn( "\x25\x73\x28\x29\x3a\x20\x44\x4c\x20\x6e\x6f\x74\x20\x65\x6e\x61\x62\x6c\x65\x64" "\n" -,__func__);}return DATARMNET094475d445;}static int DATARMNETbe48169564(struct -rmnet_port*DATARMNETe8a5f322f0){int DATARMNET094475d445;DATARMNETf7e8f6395c= -kzalloc(sizeof(*DATARMNETf7e8f6395c),GFP_KERNEL);if(!DATARMNETf7e8f6395c){pr_err +,__func__);}return DATARMNETb14e52a504;}static int DATARMNET9f53d54812(struct +rmnet_port*DATARMNETf0d9de7e2f){int DATARMNETb14e52a504;DATARMNETe05748b000= +kzalloc(sizeof(*DATARMNETe05748b000),GFP_KERNEL);if(!DATARMNETe05748b000){pr_err ( "\x25\x73\x28\x29\x3a\x20\x52\x65\x73\x6f\x75\x72\x63\x65\x20\x61\x6c\x6c\x6f\x63\x61\x74\x69\x6f\x6e\x20\x66\x61\x69\x6c\x65\x64" "\n" -,__func__);return DATARMNETc50a12ee59;}DATARMNETf7e8f6395c->DATARMNET547651077b= -DATARMNETe8a5f322f0;DATARMNET094475d445=DATARMNETcce014cb1d();if( -DATARMNET094475d445<(0x15bb+934-0x1961))goto DATARMNET77e7361053; -DATARMNET094475d445=DATARMNETd813fadf76();if(DATARMNET094475d445!= -DATARMNET6e89887168){pr_warn( +,__func__);return DATARMNETb881657565;}DATARMNETe05748b000->DATARMNET403589239f= +DATARMNETf0d9de7e2f;DATARMNETb14e52a504=DATARMNETdbcaf01255();if( +DATARMNETb14e52a504<(0xd2d+202-0xdf7))goto DATARMNET1d7e728ddf; +DATARMNETb14e52a504=DATARMNETd68e3594a7();if(DATARMNETb14e52a504!= +DATARMNET0529bb9c4e){pr_warn( "\x25\x73\x28\x29\x3a\x20\x43\x61\x6c\x6c\x62\x61\x63\x6b\x20\x72\x65\x67\x69\x73\x74\x72\x61\x74\x69\x6f\x6e\x20\x66\x61\x69\x6c\x65\x64" "\n" -,__func__);}DATARMNETd9ec5f4e65();return DATARMNET094475d445;DATARMNET77e7361053 -:kfree(DATARMNETf7e8f6395c);DATARMNETf7e8f6395c=NULL;return DATARMNET094475d445; -}static int DATARMNETe4f68c17d0(struct notifier_block*DATARMNET9e976b309a, -unsigned long DATARMNET081daa57e7,void*DATARMNET71ffe74cda){struct net_device* -DATARMNET6db6ebb1e7=netdev_notifier_info_to_dev(DATARMNET71ffe74cda);struct -rmnet_port*DATARMNETe8a5f322f0;struct rmnet_priv*DATARMNET64e0e8cc28;int -DATARMNET094475d445;(void)DATARMNET9e976b309a;if(!DATARMNET6db6ebb1e7)goto -DATARMNET02a8afcd23;switch(DATARMNET081daa57e7){case NETDEV_REGISTER:if( -DATARMNETf7e8f6395c||DATARMNET4e490d9d37()||strncmp(DATARMNET6db6ebb1e7->name, -"\x72\x6d\x6e\x65\x74\x5f\x64\x61\x74\x61",(0xeab+5835-0x256c)))goto -DATARMNET02a8afcd23;DATARMNET64e0e8cc28=netdev_priv(DATARMNET6db6ebb1e7); -DATARMNETe8a5f322f0=rmnet_get_port(DATARMNET64e0e8cc28->real_dev);if(! -DATARMNETe8a5f322f0){pr_err( +,__func__);}DATARMNET818b960147();return DATARMNETb14e52a504;DATARMNET1d7e728ddf +:kfree(DATARMNETe05748b000);DATARMNETe05748b000=NULL;return DATARMNETb14e52a504; +}static int DATARMNET7dec24813e(struct notifier_block*DATARMNET272c159b3c, +unsigned long DATARMNET4abd997295,void*DATARMNET3f254bae11){struct net_device* +DATARMNET00dcb79bc4=netdev_notifier_info_to_dev(DATARMNET3f254bae11);struct +rmnet_port*DATARMNETf0d9de7e2f;struct rmnet_priv*DATARMNETe823dcf978;int +DATARMNETb14e52a504;(void)DATARMNET272c159b3c;if(!DATARMNET00dcb79bc4)goto +DATARMNETaabe3a05f8;switch(DATARMNET4abd997295){case NETDEV_REGISTER:if( +DATARMNETe05748b000||DATARMNET19eb0de3b2()||strncmp(DATARMNET00dcb79bc4->name, +"\x72\x6d\x6e\x65\x74\x5f\x64\x61\x74\x61",(0xd27+224-0xdfd)))goto +DATARMNETaabe3a05f8;DATARMNETe823dcf978=netdev_priv(DATARMNET00dcb79bc4); +DATARMNETf0d9de7e2f=rmnet_get_port(DATARMNETe823dcf978->real_dev);if(! +DATARMNETf0d9de7e2f){pr_err( "\x25\x73\x28\x29\x3a\x20\x49\x6e\x76\x61\x6c\x69\x64\x20\x72\x6d\x6e\x65\x74\x20\x63\x6f\x6e\x66\x69\x67\x75\x72\x61\x74\x69\x6f\x6e\x20\x6f\x6e\x20\x25\x73" "\n" -,__func__,DATARMNET6db6ebb1e7->name);goto DATARMNET02a8afcd23;}pr_info( +,__func__,DATARMNET00dcb79bc4->name);goto DATARMNETaabe3a05f8;}pr_info( "\x25\x73\x28\x29\x3a\x20\x49\x6e\x69\x74\x69\x61\x6c\x69\x7a\x69\x6e\x67\x20\x6f\x6e\x20\x64\x65\x76\x69\x63\x65\x20\x25\x73" "\n" -,__func__,DATARMNET6db6ebb1e7->name);DATARMNET094475d445=DATARMNETbe48169564( -DATARMNETe8a5f322f0);if(DATARMNET094475d445==DATARMNETc50a12ee59){pr_err( +,__func__,DATARMNET00dcb79bc4->name);DATARMNETb14e52a504=DATARMNET9f53d54812( +DATARMNETf0d9de7e2f);if(DATARMNETb14e52a504==DATARMNETb881657565){pr_err( "\x25\x73\x28\x29\x3a\x20\x49\x6e\x69\x74\x69\x61\x6c\x69\x7a\x61\x74\x69\x6f\x6e\x20\x66\x61\x69\x6c\x65\x64" "\n" -,__func__);goto DATARMNET02a8afcd23;}break;case NETDEV_UNREGISTER:if(! -DATARMNETf7e8f6395c||!DATARMNET4e490d9d37()||strncmp(DATARMNET6db6ebb1e7->name, -DATARMNETf7e8f6395c->DATARMNET547651077b->dev->name,IFNAMSIZ))goto -DATARMNET02a8afcd23;pr_info( +,__func__);goto DATARMNETaabe3a05f8;}break;case NETDEV_UNREGISTER:if(! +DATARMNETe05748b000||!DATARMNET19eb0de3b2()||strncmp(DATARMNET00dcb79bc4->name, +DATARMNETe05748b000->DATARMNET403589239f->dev->name,IFNAMSIZ))goto +DATARMNETaabe3a05f8;pr_info( "\x25\x73\x28\x29\x3a\x20\x55\x6e\x69\x6e\x69\x74\x69\x61\x6c\x69\x7a\x69\x6e\x67\x20\x6f\x6e\x20\x64\x65\x76\x69\x63\x65\x20\x25\x73" "\n" -,__func__,DATARMNET6db6ebb1e7->name);DATARMNET296eb47249();break;} -DATARMNET02a8afcd23:return NOTIFY_DONE;}static struct notifier_block -DATARMNET4dff0c2c8a={.notifier_call=DATARMNETe4f68c17d0,.priority= -(0xc93+6150-0x2498),};static int __init DATARMNET99216255df(void){pr_info( +,__func__,DATARMNET00dcb79bc4->name);DATARMNET345f805b34();break;} +DATARMNETaabe3a05f8:return NOTIFY_DONE;}static struct notifier_block +DATARMNETcae9c64c41={.notifier_call=DATARMNET7dec24813e,.priority= +(0xd26+209-0xdf6),};static int __init DATARMNETb1c42acd9c(void){pr_info( "\x25\x73\x28\x29\x3a\x20\x72\x6d\x6e\x65\x74\x5f\x6f\x66\x66\x6c\x6f\x61\x64\x20\x69\x6e\x69\x74\x69\x61\x6c\x69\x7a\x69\x6e\x67" "\n" -,__func__);return register_netdevice_notifier(&DATARMNET4dff0c2c8a);}static void - __exit DATARMNET16134ceac1(void){pr_info( +,__func__);return register_netdevice_notifier(&DATARMNETcae9c64c41);}static void + __exit DATARMNET0f6d85e415(void){pr_info( "\x25\x73\x28\x29\x3a\x20\x72\x6d\x6e\x65\x74\x5f\x6f\x66\x66\x6c\x6f\x61\x64\x20\x65\x78\x69\x74\x69\x6e\x67" "\n" -,__func__);unregister_netdevice_notifier(&DATARMNET4dff0c2c8a);}struct -DATARMNET8357daf015*DATARMNETccc25794e0(void){return DATARMNETf7e8f6395c;} -module_init(DATARMNET99216255df);module_exit(DATARMNET16134ceac1); +,__func__);unregister_netdevice_notifier(&DATARMNETcae9c64c41);}struct +DATARMNET70f3b87b5d*DATARMNETc2a630b113(void){return DATARMNETe05748b000;} +module_init(DATARMNETb1c42acd9c);module_exit(DATARMNET0f6d85e415); diff --git a/offload/rmnet_offload_state.h b/offload/rmnet_offload_state.h index 1234c4860024..26bae2398196 100644 --- a/offload/rmnet_offload_state.h +++ b/offload/rmnet_offload_state.h @@ -10,19 +10,19 @@ * GNU General Public License for more details. */ -#ifndef DATARMNETdd185571da -#define DATARMNETdd185571da +#ifndef DATARMNETc03e325706 +#define DATARMNETc03e325706 #include "rmnet_offload_engine.h" #include "rmnet_map.h" #include "rmnet_descriptor.h" #include "qmi_rmnet.h" -enum{DATARMNET6e89887168,DATARMNETee330d5a81,DATARMNETc50a12ee59,};extern void(* -rmnet_perf_desc_entry)(struct rmnet_frag_descriptor*DATARMNETa41162aa9b,struct -rmnet_port*DATARMNETe8a5f322f0);extern void(*rmnet_perf_chain_end)(void);struct -DATARMNET92f4d48c56{struct rmnet_map_dl_ind DATARMNET524c210c13;u32 -DATARMNET26e013d9f7;u32 DATARMNETdd6feb57a5;bool DATARMNETf82a9c29ed;bool -DATARMNETecff29bcbf;};struct DATARMNET8357daf015{struct rmnet_port* -DATARMNET547651077b;struct DATARMNET92f4d48c56 DATARMNETfe5583a585;struct -qmi_rmnet_ps_ind DATARMNETa0db7ef12a;struct DATARMNET337e435e40 -DATARMNETa3d1da1cba;};struct DATARMNET8357daf015*DATARMNETccc25794e0(void); +enum{DATARMNET0529bb9c4e,DATARMNET8e1c5c09f8,DATARMNETb881657565,};extern void(* +rmnet_perf_desc_entry)(struct rmnet_frag_descriptor*DATARMNET9d1b321642,struct +rmnet_port*DATARMNETf0d9de7e2f);extern void(*rmnet_perf_chain_end)(void);struct +DATARMNET74bb35b8f2{struct rmnet_map_dl_ind DATARMNET8633ae8f1e;u32 +DATARMNETe2251ce433;u32 DATARMNET7f59b108db;bool DATARMNETc2832b8f85;bool +DATARMNETb165d2c5c4;};struct DATARMNET70f3b87b5d{struct rmnet_port* +DATARMNET403589239f;struct DATARMNET74bb35b8f2 DATARMNETa9f2b2f677;struct +qmi_rmnet_ps_ind DATARMNET341393eda2;struct DATARMNET907d58c807 +DATARMNETebb45c8d86;};struct DATARMNET70f3b87b5d*DATARMNETc2a630b113(void); #endif diff --git a/offload/rmnet_offload_stats.c b/offload/rmnet_offload_stats.c index 3741e82c3bdf..2b4139842576 100644 --- a/offload/rmnet_offload_stats.c +++ b/offload/rmnet_offload_stats.c @@ -12,9 +12,9 @@ #include #include "rmnet_offload_stats.h" -static u64 DATARMNET3ef80acde3[DATARMNET730e872425];module_param_array_named( -rmnet_offload_stat,DATARMNET3ef80acde3,ullong,NULL,(0x1889+1291-0x1c70));void -DATARMNETa3edc29191(u32 DATARMNET637046c4bc,u64 DATARMNETef3ecb031d){if( -DATARMNET637046c4bc -enum{DATARMNET18d408a5a5,DATARMNET6b8a6c4f4e,DATARMNET056a0fe195, -DATARMNET51527f883c,DATARMNETae9ed9e102,DATARMNET3f56a10f4d,DATARMNET433e163a43, -DATARMNETf4e67e1692,DATARMNETa05aa2c4a7,DATARMNETc0fe927262,DATARMNETdae7cbfd97, -DATARMNET2ec91e73cf,DATARMNET135dd1f8ca,DATARMNETf410872acc,DATARMNETa5e27cdfa7, -DATARMNETd13a32652d,DATARMNET1cacdd7cfc,DATARMNET7dbef260b1,DATARMNET76bca11273, -DATARMNETaee7f80b20,DATARMNETb3aa109946,DATARMNET2eb3321438,DATARMNETc005f7933f, -DATARMNET7069e38e48,DATARMNET64bf04bc47,DATARMNET3b1a812e5c,DATARMNET1e2ecb33d1, -DATARMNETd096b7b9cd,DATARMNET730e872425,};void DATARMNETa3edc29191(u32 -DATARMNET637046c4bc,u64 DATARMNETef3ecb031d);void DATARMNET5d24865423(u32 -DATARMNET637046c4bc); +enum{DATARMNET9b3fdb0e16,DATARMNET65843ad009,DATARMNET1cddffce49, +DATARMNET372ef39ae4,DATARMNET30a4d88ea6,DATARMNETa03ed3629e,DATARMNET807e4dad18, +DATARMNET52b7da9033,DATARMNETf3f92fc0b9,DATARMNET5727f095ec,DATARMNET6a894ab63d, +DATARMNETddf572458d,DATARMNET47a963957c,DATARMNETb322de38be,DATARMNET38317c7efd, +DATARMNET31c0e41f5a,DATARMNET0cd1fa0d98,DATARMNET1c0d243816,DATARMNETc34a778ea2, +DATARMNETbc56977b7e,DATARMNETc9b8ef90d1,DATARMNET92f3434694,DATARMNETa76d93355c, +DATARMNET3067ea3199,DATARMNETf335e26298,DATARMNET8e1480cff2,DATARMNET787b04223a, +DATARMNETa121404606,DATARMNETd04f96aa13,};void DATARMNETbad3b5165e(u32 +DATARMNET248f120dd5,u64 DATARMNETb639f6e1b1);void DATARMNETa00cda79d0(u32 +DATARMNET248f120dd5); #endif diff --git a/offload/rmnet_offload_tcp.c b/offload/rmnet_offload_tcp.c index 749829d508d5..8709e6776590 100644 --- a/offload/rmnet_offload_tcp.c +++ b/offload/rmnet_offload_tcp.c @@ -15,54 +15,53 @@ #include "rmnet_offload_engine.h" #include "rmnet_offload_stats.h" #include "rmnet_offload_knob.h" -static bool DATARMNET505c932e93(struct DATARMNETadd6ff90d0*DATARMNETc3ffad4b30){ -struct DATARMNET1bffb1c388*DATARMNETbd1c0986f8=DATARMNETc3ffad4b30-> -DATARMNET7ff34eacb7;__be32 DATARMNETae352fd67d;u8 DATARMNETf72fff5724= -DATARMNETbd1c0986f8->DATARMNETf538480d20;DATARMNETae352fd67d=(0x89d+3341-0x14fb) -;if((!DATARMNETc3ffad4b30->DATARMNET5671455f38&&(DATARMNETf72fff5724& -(0x32d+5244-0x1799)))||(DATARMNETf72fff5724&DATARMNETae352fd67d))return true; -return false;}static bool DATARMNET4863e9c5ae(struct DATARMNET31caee06e2* -DATARMNETd44a80d414,struct DATARMNETadd6ff90d0*DATARMNETc3ffad4b30){struct -DATARMNET1bffb1c388*DATARMNETb5da236f91,*DATARMNET4e35bbb67d;u32 -DATARMNETf5bcfe1e17,DATARMNET5d971be8b8;DATARMNETb5da236f91=DATARMNETd44a80d414 -->DATARMNET9a5f6d68d4;DATARMNET4e35bbb67d=DATARMNETc3ffad4b30-> -DATARMNET7ff34eacb7;DATARMNETf5bcfe1e17=DATARMNETb5da236f91->DATARMNET686636af95 -*(0x1cd7+2514-0x26a5);if(DATARMNET4e35bbb67d->DATARMNET686636af95* -(0xee3+4488-0x2067)!=DATARMNETf5bcfe1e17)return true;for(DATARMNET5d971be8b8= -sizeof(*DATARMNETb5da236f91);DATARMNET5d971be8b8DATARMNET7ff34eacb7;u64 DATARMNETd9527bfa5e;u32 -DATARMNET8875527b54,DATARMNETfc02a09052;if(DATARMNET505c932e93( -DATARMNETc3ffad4b30)){DATARMNET5d24865423(DATARMNETf410872acc);return -DATARMNET08dbe31d07;}if(!DATARMNETd44a80d414->DATARMNET30d367f886)return -DATARMNET7d8a4bb6b1;if(DATARMNET4863e9c5ae(DATARMNETd44a80d414, -DATARMNETc3ffad4b30)){DATARMNET5d24865423(DATARMNETa5e27cdfa7);return -DATARMNET6b149bc29f;}DATARMNET8875527b54=(DATARMNETc3ffad4b30-> -DATARMNET798fafaf36->tcp_seq_set)?ntohl(DATARMNETc3ffad4b30->DATARMNET798fafaf36 -->tcp_seq):ntohl(DATARMNET4e35bbb67d->DATARMNET614032cc71);if( -DATARMNET8875527b54^DATARMNETd44a80d414->DATARMNET956bd73340){ -DATARMNET5d24865423(DATARMNETd13a32652d);return DATARMNET08dbe31d07;} -DATARMNETfc02a09052=(DATARMNETc3ffad4b30->DATARMNET798fafaf36->gso_size)?: -DATARMNETc3ffad4b30->DATARMNET5671455f38;if(DATARMNETfc02a09052!= -DATARMNETd44a80d414->DATARMNET632219f39d){DATARMNET5d24865423( -DATARMNET1cacdd7cfc);return DATARMNET6b149bc29f;}DATARMNETd9527bfa5e= -DATARMNET3d487d950f(DATARMNETee792ef3a0);if(DATARMNETc3ffad4b30-> -DATARMNET5671455f38+DATARMNETd44a80d414->DATARMNET5f92dbf405>= -DATARMNETd9527bfa5e){DATARMNET5d24865423(DATARMNET7dbef260b1);return -DATARMNET6b149bc29f;}DATARMNETc3ffad4b30->DATARMNET1e7926dc4c=false;return -DATARMNET7d8a4bb6b1;}bool DATARMNETb25a21aeeb(struct DATARMNET31caee06e2* -DATARMNETd44a80d414,struct DATARMNETadd6ff90d0*DATARMNETc3ffad4b30,bool -DATARMNETc72284bb2d){int DATARMNET094475d445;if(DATARMNETc72284bb2d){ -DATARMNET5d24865423(DATARMNET135dd1f8ca);DATARMNET3bdaf91675(DATARMNETd44a80d414 -);DATARMNETf9d626d72b(DATARMNETc3ffad4b30);return true;}DATARMNET094475d445= -DATARMNETb12f1716fd(DATARMNETd44a80d414,DATARMNETc3ffad4b30);if( -DATARMNET094475d445==DATARMNET7d8a4bb6b1){DATARMNETfc01092f09( -DATARMNETd44a80d414,DATARMNETc3ffad4b30);}else if(DATARMNET094475d445== -DATARMNET6b149bc29f){DATARMNET3bdaf91675(DATARMNETd44a80d414); -DATARMNETfc01092f09(DATARMNETd44a80d414,DATARMNETc3ffad4b30);}else{ -DATARMNET3bdaf91675(DATARMNETd44a80d414);DATARMNETf9d626d72b(DATARMNETc3ffad4b30 +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) +!=DATARMNET3c3abe9e2c)return true;for(DATARMNETefc9df3df2=sizeof(* +DATARMNET699c2c62cd);DATARMNETefc9df3df2DATARMNET96c6c71653;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{ +DATARMNETa3055c21f2(DATARMNETaa568481cf);DATARMNET19d190f2bd(DATARMNET5fe4c722a8 );}return true;} diff --git a/offload/rmnet_offload_tcp.h b/offload/rmnet_offload_tcp.h index 01d2e6e6b6e5..d695e7601bc4 100644 --- a/offload/rmnet_offload_tcp.h +++ b/offload/rmnet_offload_tcp.h @@ -10,10 +10,10 @@ * GNU General Public License for more details. */ -#ifndef DATARMNETc3f978cfbc -#define DATARMNETc3f978cfbc +#ifndef DATARMNET1f0bf20b47 +#define DATARMNET1f0bf20b47 #include "rmnet_offload_main.h" #include "rmnet_offload_engine.h" -bool DATARMNETb25a21aeeb(struct DATARMNET31caee06e2*DATARMNETd44a80d414,struct -DATARMNETadd6ff90d0*DATARMNETc3ffad4b30,bool DATARMNETc72284bb2d); +bool DATARMNET4c7cdc25b7(struct DATARMNETd7c9631acd*DATARMNETaa568481cf,struct +DATARMNETd812bcdbb5*DATARMNET5fe4c722a8,bool DATARMNETd87669e323); #endif diff --git a/offload/rmnet_offload_udp.c b/offload/rmnet_offload_udp.c index 95c19510fcff..fb3b824027ad 100644 --- a/offload/rmnet_offload_udp.c +++ b/offload/rmnet_offload_udp.c @@ -15,25 +15,25 @@ #include "rmnet_offload_engine.h" #include "rmnet_offload_stats.h" #include "rmnet_offload_knob.h" -static int DATARMNET83d48307c2(struct DATARMNET31caee06e2*DATARMNETd44a80d414, -struct DATARMNETadd6ff90d0*DATARMNETc3ffad4b30){u64 DATARMNET0ee619d1b8;u16 -DATARMNETfc02a09052;if(!DATARMNETd44a80d414->DATARMNET30d367f886)return -DATARMNET7d8a4bb6b1;DATARMNETfc02a09052=(DATARMNETc3ffad4b30-> -DATARMNET798fafaf36->gso_size)?:DATARMNETc3ffad4b30->DATARMNET5671455f38;if( -DATARMNETfc02a09052!=DATARMNETd44a80d414->DATARMNET632219f39d){ -DATARMNET5d24865423(DATARMNETaee7f80b20);return DATARMNET6b149bc29f;} -DATARMNET0ee619d1b8=DATARMNET3d487d950f(DATARMNETfbbc8e2e06);if( -DATARMNETc3ffad4b30->DATARMNET5671455f38+DATARMNETd44a80d414-> -DATARMNET5f92dbf405>=DATARMNET0ee619d1b8){DATARMNET5d24865423( -DATARMNETb3aa109946);return DATARMNET6b149bc29f;}DATARMNETc3ffad4b30-> -DATARMNET1e7926dc4c=false;return DATARMNET7d8a4bb6b1;}bool DATARMNET9dd18589e3( -struct DATARMNET31caee06e2*DATARMNETd44a80d414,struct DATARMNETadd6ff90d0* -DATARMNETc3ffad4b30,bool DATARMNETc72284bb2d){int DATARMNET094475d445;if( -DATARMNETc72284bb2d){DATARMNET5d24865423(DATARMNET76bca11273); -DATARMNET3bdaf91675(DATARMNETd44a80d414);DATARMNETf9d626d72b(DATARMNETc3ffad4b30 -);return true;}DATARMNET094475d445=DATARMNET83d48307c2(DATARMNETd44a80d414, -DATARMNETc3ffad4b30);if(DATARMNET094475d445==DATARMNET7d8a4bb6b1){ -DATARMNETfc01092f09(DATARMNETd44a80d414,DATARMNETc3ffad4b30);}else if( -DATARMNET094475d445==DATARMNET6b149bc29f){DATARMNET3bdaf91675( -DATARMNETd44a80d414);DATARMNETfc01092f09(DATARMNETd44a80d414,DATARMNETc3ffad4b30 +static int DATARMNETdf8e0dc3a0(struct DATARMNETd7c9631acd*DATARMNETaa568481cf, +struct DATARMNETd812bcdbb5*DATARMNET5fe4c722a8){u64 DATARMNET71c7d18d88;u16 +DATARMNET95acece3fc;if(!DATARMNETaa568481cf->DATARMNET1db11fa85e)return +DATARMNET0413b43080;DATARMNET95acece3fc=(DATARMNET5fe4c722a8-> +DATARMNET719f68fb88->gso_size)?:DATARMNET5fe4c722a8->DATARMNET1ef22e4c76;if( +DATARMNET95acece3fc!=DATARMNETaa568481cf->DATARMNET1978d5d8de){ +DATARMNETa00cda79d0(DATARMNETbc56977b7e);return DATARMNETb0bd5db24d;} +DATARMNET71c7d18d88=DATARMNETf1d1b8287f(DATARMNET9c85bb95a3);if( +DATARMNET5fe4c722a8->DATARMNET1ef22e4c76+DATARMNETaa568481cf-> +DATARMNETcf28ae376b>=DATARMNET71c7d18d88){DATARMNETa00cda79d0( +DATARMNETc9b8ef90d1);return DATARMNETb0bd5db24d;}DATARMNET5fe4c722a8-> +DATARMNETf1b6b0a6cc=false;return DATARMNET0413b43080;}bool DATARMNET8dc47eb7af( +struct DATARMNETd7c9631acd*DATARMNETaa568481cf,struct DATARMNETd812bcdbb5* +DATARMNET5fe4c722a8,bool DATARMNETd87669e323){int DATARMNETb14e52a504;if( +DATARMNETd87669e323){DATARMNETa00cda79d0(DATARMNETc34a778ea2); +DATARMNETa3055c21f2(DATARMNETaa568481cf);DATARMNET19d190f2bd(DATARMNET5fe4c722a8 +);return true;}DATARMNETb14e52a504=DATARMNETdf8e0dc3a0(DATARMNETaa568481cf, +DATARMNET5fe4c722a8);if(DATARMNETb14e52a504==DATARMNET0413b43080){ +DATARMNET33aa5df9ef(DATARMNETaa568481cf,DATARMNET5fe4c722a8);}else if( +DATARMNETb14e52a504==DATARMNETb0bd5db24d){DATARMNETa3055c21f2( +DATARMNETaa568481cf);DATARMNET33aa5df9ef(DATARMNETaa568481cf,DATARMNET5fe4c722a8 );}return true;} diff --git a/offload/rmnet_offload_udp.h b/offload/rmnet_offload_udp.h index 9e2d847e3ee1..bc702390def6 100644 --- a/offload/rmnet_offload_udp.h +++ b/offload/rmnet_offload_udp.h @@ -10,10 +10,10 @@ * GNU General Public License for more details. */ -#ifndef DATARMNET4acb030b4f -#define DATARMNET4acb030b4f +#ifndef DATARMNETd4ae2cf0b5 +#define DATARMNETd4ae2cf0b5 #include "rmnet_offload_main.h" #include "rmnet_offload_engine.h" -bool DATARMNET9dd18589e3(struct DATARMNET31caee06e2*DATARMNETd44a80d414,struct -DATARMNETadd6ff90d0*DATARMNETc3ffad4b30,bool DATARMNETc72284bb2d); +bool DATARMNET8dc47eb7af(struct DATARMNETd7c9631acd*DATARMNETaa568481cf,struct +DATARMNETd812bcdbb5*DATARMNET5fe4c722a8,bool DATARMNETd87669e323); #endif