rmnet_offload: Fast-forward to I825409ad7d921ffde87ea421b0f17673ec8dc096

Combines the following versions:
rmnet_offload: Icbdb04bbb81a26ba2b71d7d945fb094ae9c7cd50
rmnet_offload: I953075b0b6feb493a52a36d332ece5bdf571e4e6
rmnet_offload: Ie23cbf615594250f411a4f277f0d250eaa6fed7e
rmnet_offload: I825409ad7d921ffde87ea421b0f17673ec8dc096

Change-Id: I4304483442f8a1235548400f151f67f645a14f4a
Signed-off-by: Sean Tranchetti <stranche@codeaurora.org>
This commit is contained in:
Sean Tranchetti
2020-08-31 15:32:14 -06:00
parent 21b93db1dd
commit 13f0e5d91f
2 changed files with 94 additions and 77 deletions

View File

@@ -1,4 +1,4 @@
/* Copyright (c) 2018-2020, The Linux Foundation. All rights reserved.
/* Copyright (c) 2018-2021, The Linux Foundation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
@@ -35,6 +35,14 @@ static const char*DATARMNET9be3ddbe97[]__always_unused={
"\x49\x33\x62\x36\x31\x30\x37\x35\x34\x33\x32\x32\x61\x66\x30\x39\x30\x66\x65\x39\x61\x65\x31\x34\x61\x61\x31\x38\x61\x35\x33\x34\x30\x66\x62\x61\x38\x36\x36\x64\x62"
,
"\x49\x35\x31\x34\x36\x62\x33\x61\x30\x31\x36\x65\x66\x36\x35\x62\x33\x65\x36\x34\x35\x31\x33\x38\x64\x31\x34\x38\x31\x66\x37\x35\x35\x63\x66\x31\x31\x33\x34\x61\x32"
,
"\x49\x63\x62\x64\x62\x30\x34\x62\x62\x62\x38\x31\x61\x32\x36\x62\x61\x32\x62\x37\x31\x64\x37\x64\x39\x34\x35\x66\x62\x30\x39\x34\x61\x65\x39\x63\x37\x63\x64\x35\x30"
,
"\x49\x39\x35\x33\x30\x37\x35\x62\x30\x62\x36\x66\x65\x62\x34\x39\x33\x61\x35\x32\x61\x33\x36\x64\x33\x33\x32\x65\x63\x65\x35\x62\x64\x66\x35\x37\x31\x65\x34\x65\x36"
,
"\x49\x65\x32\x33\x63\x62\x66\x36\x31\x35\x35\x39\x34\x32\x35\x30\x66\x34\x31\x31\x61\x34\x66\x32\x37\x37\x66\x30\x64\x32\x35\x30\x65\x61\x61\x36\x66\x65\x64\x37\x65"
,
"\x49\x38\x32\x35\x34\x30\x39\x61\x64\x37\x64\x39\x32\x31\x66\x66\x64\x65\x38\x37\x65\x61\x34\x32\x31\x62\x30\x66\x31\x37\x36\x37\x33\x65\x63\x38\x64\x63\x30\x39\x36"
,};static DEFINE_SPINLOCK(DATARMNET0b5e447f18);static u32 DATARMNETcb7325e02d(
struct DATARMNETd812bcdbb5*DATARMNET458b70e7e5){struct DATARMNET4287f07234*
DATARMNET8814564ab9=&DATARMNET458b70e7e5->DATARMNET144d119066;__be32
@@ -111,17 +119,17 @@ DATARMNET645e8912b8=DATARMNETcb7325e02d(DATARMNET458b70e7e5);DATARMNET458b70e7e5
->DATARMNET1ef22e4c76=DATARMNET9d1b321642->len-DATARMNET9d1b321642->ip_len-
DATARMNET9d1b321642->trans_len;DATARMNET458b70e7e5->DATARMNET719f68fb88=
DATARMNET9d1b321642;return false;}DATARMNETdf2dbc641f=rmnet_frag_data_ptr(
DATARMNET9d1b321642);DATARMNET5affe290b8=DATARMNET9d1b321642->len;
DATARMNET458b70e7e5->DATARMNET3eb91ee54d=true;DATARMNET8814564ab9->
DATARMNET388842c721=(DATARMNETdf2dbc641f[(0xd2d+202-0xdf7)]&(0xbf7+4405-0x1c3c))
>>(0xd11+230-0xdf3);if(DATARMNET8814564ab9->DATARMNET388842c721==
(0xd11+230-0xdf3)){struct DATARMNET308c06fca6*DATARMNET86f1f2cdc9,
DATARMNETbf6548198e;DATARMNET86f1f2cdc9=rmnet_frag_header_ptr(
DATARMNET9d1b321642,(0xd2d+202-0xdf7),sizeof(*DATARMNET86f1f2cdc9),&
DATARMNETbf6548198e);if(!DATARMNET86f1f2cdc9)goto DATARMNETaabe3a05f8;
DATARMNET8814564ab9->DATARMNET4ca5ac9de1=DATARMNET86f1f2cdc9->
DATARMNET610d06a887*(0xd11+230-0xdf3);DATARMNET8814564ab9->DATARMNET7fa8b2acbf=
DATARMNET86f1f2cdc9->DATARMNET953d32410f;DATARMNET8814564ab9->
DATARMNET9d1b321642);if(unlikely(!DATARMNETdf2dbc641f))return true;
DATARMNET5affe290b8=DATARMNET9d1b321642->len;DATARMNET458b70e7e5->
DATARMNET3eb91ee54d=true;DATARMNET8814564ab9->DATARMNET388842c721=(
DATARMNETdf2dbc641f[(0xd2d+202-0xdf7)]&(0xbf7+4405-0x1c3c))>>(0xd11+230-0xdf3);
if(DATARMNET8814564ab9->DATARMNET388842c721==(0xd11+230-0xdf3)){struct
DATARMNET308c06fca6*DATARMNET86f1f2cdc9,DATARMNETbf6548198e;DATARMNET86f1f2cdc9=
rmnet_frag_header_ptr(DATARMNET9d1b321642,(0xd2d+202-0xdf7),sizeof(*
DATARMNET86f1f2cdc9),&DATARMNETbf6548198e);if(!DATARMNET86f1f2cdc9)goto
DATARMNETaabe3a05f8;DATARMNET8814564ab9->DATARMNET4ca5ac9de1=DATARMNET86f1f2cdc9
->DATARMNET610d06a887*(0xd11+230-0xdf3);DATARMNET8814564ab9->DATARMNET7fa8b2acbf
=DATARMNET86f1f2cdc9->DATARMNET953d32410f;DATARMNET8814564ab9->
DATARMNET1a2be7b6c2=DATARMNET86f1f2cdc9->DATARMNET9bbd2ca483;DATARMNET8814564ab9
->DATARMNET0a28fa80f4=DATARMNET86f1f2cdc9->DATARMNET11ef55b2bb;
DATARMNET8814564ab9->DATARMNET19b03754c4=DATARMNET86f1f2cdc9->
@@ -225,18 +233,20 @@ DATARMNET645e8912b8;DATARMNET58a244b2fe(DATARMNET9d1b321642,DATARMNET5affe290b8)
void*DATARMNETf0d9de7e2f){}void DATARMNET95e1703026(struct rmnet_map_dl_ind_hdr*
DATARMNET7c7748ef7a,struct rmnet_map_control_command_header*DATARMNET8b07ee3e82)
{struct DATARMNET70f3b87b5d*DATARMNETe05748b000=DATARMNETc2a630b113();(void)
DATARMNET8b07ee3e82;if(DATARMNETe05748b000->DATARMNETa9f2b2f677.
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(
DATARMNET8b07ee3e82;DATARMNET664568fcd0();if(DATARMNETe05748b000->
DATARMNETa9f2b2f677.DATARMNETb165d2c5c4&&DATARMNETae70636c90())
DATARMNETa00cda79d0(DATARMNET372ef39ae4);DATARMNETe05748b000->
DATARMNETa9f2b2f677.DATARMNETb165d2c5c4=true;DATARMNETe05748b000->
DATARMNETa9f2b2f677.DATARMNETe2251ce433=DATARMNET7c7748ef7a->le.seq;
DATARMNETe05748b000->DATARMNETa9f2b2f677.DATARMNET7f59b108db=DATARMNET7c7748ef7a
->le.pkts;DATARMNET6a76048590();}void DATARMNETc9dd320f49(struct
rmnet_map_dl_ind_trl*DATARMNET2541770fea,struct rmnet_map_control_command_header
*DATARMNET8b07ee3e82){struct DATARMNET70f3b87b5d*DATARMNETe05748b000=
DATARMNETc2a630b113();(void)DATARMNET8b07ee3e82;DATARMNET664568fcd0();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);}
DATARMNETe05748b000->DATARMNETa9f2b2f677.DATARMNET7f59b108db=(0xd2d+202-0xdf7);
DATARMNET6a76048590();}

View File

@@ -1,4 +1,4 @@
/* Copyright (c) 2018-2020, The Linux Foundation. All rights reserved.
/* Copyright (c) 2018-2021, The Linux Foundation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
@@ -16,60 +16,67 @@
#include "rmnet_offload_engine.h"
#include "rmnet_offload_stats.h"
#include "rmnet_offload_knob.h"
static bool DATARMNET2818ea93ec(struct DATARMNETd812bcdbb5*DATARMNET5fe4c722a8){
struct DATARMNETd2991e8952*DATARMNET2e7cc88971,DATARMNETd1ff6cd568;__be32
DATARMNETa8eeab014d;u8 DATARMNET1464100e7a;DATARMNET2e7cc88971=
rmnet_frag_header_ptr(DATARMNET5fe4c722a8->DATARMNET719f68fb88,
DATARMNET5fe4c722a8->DATARMNET144d119066.DATARMNET4ca5ac9de1,sizeof(*
DATARMNET2e7cc88971),&DATARMNETd1ff6cd568);if(!DATARMNET2e7cc88971)return true;
DATARMNETa8eeab014d=(0xbf7+4796-0x1e04);DATARMNET1464100e7a=DATARMNET2e7cc88971
->DATARMNETd570802f3d;if((!DATARMNET5fe4c722a8->DATARMNET1ef22e4c76&&(
DATARMNET1464100e7a&(0xeb7+1158-0x132d)))||(DATARMNET1464100e7a&
DATARMNETa8eeab014d))return true;return false;}static bool DATARMNET829fcf5939(
struct DATARMNETd7c9631acd*DATARMNETaa568481cf,struct DATARMNETd812bcdbb5*
DATARMNET5fe4c722a8){struct DATARMNETd2991e8952*DATARMNET699c2c62cd,
DATARMNETee66845de4;struct DATARMNETd2991e8952*DATARMNET8814564ab9,
DATARMNETa27d4d22be;struct rmnet_frag_descriptor*DATARMNET48cfce4de4;u32
DATARMNET3c3abe9e2c,DATARMNETefc9df3df2;DATARMNET48cfce4de4=list_first_entry(&
DATARMNETaa568481cf->DATARMNETb76b79d0d5,struct rmnet_frag_descriptor,list);
DATARMNET699c2c62cd=rmnet_frag_header_ptr(DATARMNET48cfce4de4,
DATARMNETaa568481cf->DATARMNET78fd20ce0e.DATARMNET4ca5ac9de1,sizeof(*
DATARMNET699c2c62cd),&DATARMNETee66845de4);if(!DATARMNET699c2c62cd)return true;
union DATARMNETe0a7777e12{struct DATARMNETd2991e8952 DATARMNETe31a04a369;u8
DATARMNET021aa8e68d[(0xf07+1090-0x130d)];};static bool DATARMNET2818ea93ec(
struct DATARMNETd812bcdbb5*DATARMNET5fe4c722a8){struct DATARMNETd2991e8952*
DATARMNET2e7cc88971,DATARMNETd1ff6cd568;__be32 DATARMNETa8eeab014d;u8
DATARMNETfb0677cc3c;DATARMNET2e7cc88971=rmnet_frag_header_ptr(
DATARMNET5fe4c722a8->DATARMNET719f68fb88,DATARMNET5fe4c722a8->
DATARMNET144d119066.DATARMNET4ca5ac9de1,sizeof(*DATARMNET2e7cc88971),&
DATARMNETd1ff6cd568);if(!DATARMNET2e7cc88971)return true;DATARMNETa8eeab014d=
(0xbf7+4796-0x1e04);DATARMNETfb0677cc3c=DATARMNET2e7cc88971->DATARMNETd570802f3d
;if(DATARMNET5fe4c722a8->DATARMNET719f68fb88->tcp_flags_set)DATARMNETfb0677cc3c=
(u8)ntohs(DATARMNET5fe4c722a8->DATARMNET719f68fb88->tcp_flags);if((!
DATARMNET5fe4c722a8->DATARMNET1ef22e4c76&&(DATARMNETfb0677cc3c&
(0xeb7+1158-0x132d)))||(DATARMNETfb0677cc3c&DATARMNETa8eeab014d))return true;
return false;}static bool DATARMNET829fcf5939(struct DATARMNETd7c9631acd*
DATARMNETaa568481cf,struct DATARMNETd812bcdbb5*DATARMNET5fe4c722a8){union
DATARMNETe0a7777e12*DATARMNET699c2c62cd,DATARMNETee66845de4;union
DATARMNETe0a7777e12*DATARMNET8814564ab9,DATARMNETa27d4d22be;struct
rmnet_frag_descriptor*DATARMNET48cfce4de4;u32 DATARMNET3c3abe9e2c,
DATARMNETefc9df3df2;DATARMNET48cfce4de4=list_first_entry(&DATARMNETaa568481cf->
DATARMNETb76b79d0d5,struct rmnet_frag_descriptor,list);DATARMNET699c2c62cd=
rmnet_frag_header_ptr(DATARMNET48cfce4de4,DATARMNETaa568481cf->
DATARMNET78fd20ce0e.DATARMNET4ca5ac9de1,DATARMNETaa568481cf->DATARMNET78fd20ce0e
.DATARMNET0aeee57ceb,&DATARMNETee66845de4);if(!DATARMNET699c2c62cd)return true;
DATARMNET8814564ab9=rmnet_frag_header_ptr(DATARMNET5fe4c722a8->
DATARMNET719f68fb88,DATARMNET5fe4c722a8->DATARMNET144d119066.DATARMNET4ca5ac9de1
,sizeof(*DATARMNET8814564ab9),&DATARMNETa27d4d22be);if(!DATARMNET8814564ab9)
return true;DATARMNET3c3abe9e2c=DATARMNET699c2c62cd->DATARMNETcf2e43ad69*
(0xd11+230-0xdf3);if(DATARMNET8814564ab9->DATARMNETcf2e43ad69*(0xd11+230-0xdf3)
!=DATARMNET3c3abe9e2c)return true;for(DATARMNETefc9df3df2=sizeof(*
DATARMNET699c2c62cd);DATARMNETefc9df3df2<DATARMNET3c3abe9e2c;DATARMNETefc9df3df2
+=(0xd11+230-0xdf3)){if(*(u32*)((u8*)DATARMNET699c2c62cd+DATARMNETefc9df3df2)^*(
u32*)((u8*)DATARMNET8814564ab9+DATARMNETefc9df3df2))return true;}return false;}
static int DATARMNET9a13d70865(struct DATARMNETd7c9631acd*DATARMNETaa568481cf,
struct DATARMNETd812bcdbb5*DATARMNET5fe4c722a8){u64 DATARMNET7457d496cb;u32
DATARMNET95acece3fc;if(DATARMNET2818ea93ec(DATARMNET5fe4c722a8)){
DATARMNETa00cda79d0(DATARMNETb322de38be);return DATARMNET7af645849a;}if(!
DATARMNETaa568481cf->DATARMNET1db11fa85e)return DATARMNET0413b43080;if(
DATARMNET829fcf5939(DATARMNETaa568481cf,DATARMNET5fe4c722a8)){
DATARMNETa00cda79d0(DATARMNET38317c7efd);return DATARMNETb0bd5db24d;}if(
DATARMNET5fe4c722a8->DATARMNET144d119066.DATARMNETbc28a5970f^DATARMNETaa568481cf
->DATARMNET78fd20ce0e.DATARMNETbc28a5970f){DATARMNETa00cda79d0(
DATARMNET31c0e41f5a);return DATARMNET7af645849a;}DATARMNET95acece3fc=(
DATARMNET5fe4c722a8->DATARMNET719f68fb88->gso_size)?:DATARMNET5fe4c722a8->
DATARMNET1ef22e4c76;if(DATARMNET95acece3fc!=DATARMNETaa568481cf->
DATARMNET1978d5d8de){DATARMNETa00cda79d0(DATARMNET0cd1fa0d98);return
DATARMNETb0bd5db24d;}DATARMNET7457d496cb=DATARMNETf1d1b8287f(DATARMNETdf66588a73
);if(DATARMNET5fe4c722a8->DATARMNET1ef22e4c76+DATARMNETaa568481cf->
DATARMNETcf28ae376b>=DATARMNET7457d496cb){DATARMNETa00cda79d0(
DATARMNET1c0d243816);return DATARMNETb0bd5db24d;}DATARMNET5fe4c722a8->
DATARMNETf1b6b0a6cc=false;return DATARMNET0413b43080;}bool DATARMNET4c7cdc25b7(
struct DATARMNETd7c9631acd*DATARMNETaa568481cf,struct DATARMNETd812bcdbb5*
DATARMNET5fe4c722a8,bool DATARMNETd87669e323){int DATARMNETb14e52a504;if(
DATARMNETd87669e323){DATARMNETa00cda79d0(DATARMNET47a963957c);
,DATARMNET5fe4c722a8->DATARMNET144d119066.DATARMNET0aeee57ceb,&
DATARMNETa27d4d22be);if(!DATARMNET8814564ab9)return true;DATARMNET3c3abe9e2c=
DATARMNET699c2c62cd->DATARMNETe31a04a369.DATARMNETcf2e43ad69*(0xd11+230-0xdf3);
if(DATARMNET8814564ab9->DATARMNETe31a04a369.DATARMNETcf2e43ad69*
(0xd11+230-0xdf3)!=DATARMNET3c3abe9e2c)return true;for(DATARMNETefc9df3df2=
sizeof(DATARMNET699c2c62cd->DATARMNETe31a04a369);DATARMNETefc9df3df2<
DATARMNET3c3abe9e2c;DATARMNETefc9df3df2+=(0xd11+230-0xdf3)){if(*(u32*)(
DATARMNET699c2c62cd->DATARMNET021aa8e68d+DATARMNETefc9df3df2)^*(u32*)(
DATARMNET8814564ab9->DATARMNET021aa8e68d+DATARMNETefc9df3df2))return true;}
return false;}static int DATARMNET9a13d70865(struct DATARMNETd7c9631acd*
DATARMNETaa568481cf,struct DATARMNETd812bcdbb5*DATARMNET5fe4c722a8){u64
DATARMNET7457d496cb;u32 DATARMNET95acece3fc;if(DATARMNET2818ea93ec(
DATARMNET5fe4c722a8)){DATARMNETa00cda79d0(DATARMNETb322de38be);return
DATARMNET7af645849a;}if(!DATARMNETaa568481cf->DATARMNET1db11fa85e)return
DATARMNET0413b43080;if(DATARMNET829fcf5939(DATARMNETaa568481cf,
DATARMNET5fe4c722a8)){DATARMNETa00cda79d0(DATARMNET38317c7efd);return
DATARMNETb0bd5db24d;}if(DATARMNET5fe4c722a8->DATARMNET144d119066.
DATARMNETbc28a5970f^DATARMNETaa568481cf->DATARMNET78fd20ce0e.DATARMNETbc28a5970f
){DATARMNETa00cda79d0(DATARMNET31c0e41f5a);return DATARMNET7af645849a;}
DATARMNET95acece3fc=(DATARMNET5fe4c722a8->DATARMNET719f68fb88->gso_size)?:
DATARMNET5fe4c722a8->DATARMNET1ef22e4c76;if(DATARMNET95acece3fc!=
DATARMNETaa568481cf->DATARMNET1978d5d8de){DATARMNETa00cda79d0(
DATARMNET0cd1fa0d98);return DATARMNETb0bd5db24d;}DATARMNET7457d496cb=
DATARMNETf1d1b8287f(DATARMNETdf66588a73);if(DATARMNET5fe4c722a8->
DATARMNET1ef22e4c76+DATARMNETaa568481cf->DATARMNETcf28ae376b>=
DATARMNET7457d496cb){DATARMNETa00cda79d0(DATARMNET1c0d243816);return
DATARMNETb0bd5db24d;}DATARMNET5fe4c722a8->DATARMNETf1b6b0a6cc=false;return
DATARMNET0413b43080;}bool DATARMNET4c7cdc25b7(struct DATARMNETd7c9631acd*
DATARMNETaa568481cf,struct DATARMNETd812bcdbb5*DATARMNET5fe4c722a8,bool
DATARMNETd87669e323){int DATARMNETb14e52a504;if(DATARMNETd87669e323){
DATARMNETa00cda79d0(DATARMNET47a963957c);DATARMNETa3055c21f2(DATARMNETaa568481cf
);DATARMNET19d190f2bd(DATARMNET5fe4c722a8);return true;}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;}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;}
);}return true;}