From 88335da291b38059100339bd2a76342d0be934df Mon Sep 17 00:00:00 2001 From: Git User Date: Thu, 28 Nov 2019 01:40:03 -0800 Subject: [PATCH 01/36] Initial empty repository From 670ea10293800fa796b0dbc9499698f71696d96f Mon Sep 17 00:00:00 2001 From: Sean Tranchetti Date: Tue, 26 May 2020 17:43:00 -0600 Subject: [PATCH 02/36] rmnet_offload: I721bd69521fe4aa8daebefb280d8d1509f91e673 Update module to version I721bd69521fe4aa8daebefb280d8d1509f91e673 Change-Id: I321b1be25fbed91b164c9fae9b606a2d87b62c92 --- datarmnet_ext_dlkm_vendor_board.mk | 7 + datarmnet_ext_dlkm_vendor_product.mk | 1 + offload/Android.mk | 44 ++++++ offload/Kbuild | 10 ++ offload/Kconfig | 10 ++ offload/Makefile | 13 ++ offload/rmnet_offload_engine.c | 196 +++++++++++++++++++++++++++ offload/rmnet_offload_engine.h | 38 ++++++ offload/rmnet_offload_knob.c | 75 ++++++++++ offload/rmnet_offload_knob.h | 18 +++ offload/rmnet_offload_main.c | 190 ++++++++++++++++++++++++++ offload/rmnet_offload_main.h | 70 ++++++++++ offload/rmnet_offload_state.c | 100 ++++++++++++++ offload/rmnet_offload_state.h | 28 ++++ offload/rmnet_offload_stats.c | 20 +++ offload/rmnet_offload_stats.h | 27 ++++ offload/rmnet_offload_tcp.c | 68 ++++++++++ offload/rmnet_offload_tcp.h | 19 +++ offload/rmnet_offload_udp.c | 39 ++++++ offload/rmnet_offload_udp.h | 19 +++ 20 files changed, 992 insertions(+) create mode 100644 datarmnet_ext_dlkm_vendor_board.mk create mode 100644 datarmnet_ext_dlkm_vendor_product.mk create mode 100644 offload/Android.mk create mode 100644 offload/Kbuild create mode 100644 offload/Kconfig create mode 100644 offload/Makefile create mode 100644 offload/rmnet_offload_engine.c create mode 100644 offload/rmnet_offload_engine.h create mode 100644 offload/rmnet_offload_knob.c create mode 100644 offload/rmnet_offload_knob.h create mode 100644 offload/rmnet_offload_main.c create mode 100644 offload/rmnet_offload_main.h create mode 100644 offload/rmnet_offload_state.c create mode 100644 offload/rmnet_offload_state.h create mode 100644 offload/rmnet_offload_stats.c create mode 100644 offload/rmnet_offload_stats.h create mode 100644 offload/rmnet_offload_tcp.c create mode 100644 offload/rmnet_offload_tcp.h create mode 100644 offload/rmnet_offload_udp.c create mode 100644 offload/rmnet_offload_udp.h diff --git a/datarmnet_ext_dlkm_vendor_board.mk b/datarmnet_ext_dlkm_vendor_board.mk new file mode 100644 index 000000000000..cb75ff4176c6 --- /dev/null +++ b/datarmnet_ext_dlkm_vendor_board.mk @@ -0,0 +1,7 @@ +#Build rmnet modules +DATA_DLKM_BOARD_PLATFORMS_LIST := lahaina +ifneq ($(TARGET_BOARD_AUTO),true) +ifeq ($(call is-board-platform-in-list,$(DATA_DLKM_BOARD_PLATFORMS_LIST)),true) +BOARD_VENDOR_KERNEL_MODULES += $(KERNEL_MODULES_OUT)/rmnet_offload.ko +endif +endif diff --git a/datarmnet_ext_dlkm_vendor_product.mk b/datarmnet_ext_dlkm_vendor_product.mk new file mode 100644 index 000000000000..8dc049f686bf --- /dev/null +++ b/datarmnet_ext_dlkm_vendor_product.mk @@ -0,0 +1 @@ +PRODUCT_PACKAGES += rmnet_offload.ko diff --git a/offload/Android.mk b/offload/Android.mk new file mode 100644 index 000000000000..132f51a2a913 --- /dev/null +++ b/offload/Android.mk @@ -0,0 +1,44 @@ +ifneq ($(TARGET_BOARD_AUTO),true) +ifneq ($(TARGET_PRODUCT),qssi) + +RMNET_OFFLOAD_DLKM_PLATFORMS_LIST := lahaina + +ifeq ($(call is-board-platform-in-list, $(RMNET_OFFLOAD_DLKM_PLATFORMS_LIST)),true) +LOCAL_PATH := $(call my-dir) +include $(CLEAR_VARS) + +LOCAL_MODULE_PATH := $(KERNEL_MODULES_OUT) + +LOCAL_MODULE := rmnet_offload.ko +LOCAL_SRC_FILES := \ + rmnet_offload_state.c \ + rmnet_offload_main.c \ + rmnet_offload_engine.c \ + rmnet_offload_tcp.c \ + rmnet_offload_udp.c \ + rmnet_offload_stats.c \ + rmnet_offload_knob.c + + +#path from build top to the core directory +RMNET_CORE_PATH := vendor/qcom/opensource/datarmnet/core +DLKM_DIR := $(TOP)/device/qcom/common/dlkm +#absolute path to the build directory. Can't use $(TOP) here since +#that resolves to ., and we pass this to Kbuild, where . is different +RMNET_CORE_INC_DIR := $(shell pwd)/$(RMNET_CORE_PATH) + +#pass variables down to Kbuild environment +KBUILD_OPTIONS := RMNET_CORE_INC_DIR=$(RMNET_CORE_INC_DIR) +KBUILD_OPTIONS += RMNET_CORE_PATH=$(RMNET_CORE_PATH) +KBUILD_OPTIONS_GKI := RMNET_CORE_INC_DIR=$(RMNET_CORE_INC_DIR) +KBUILD_OPTIONS_GKI += RMNET_CORE_PATH=$(RMNET_CORE_PATH)/gki + +#Must be built after the core rmnet module +LOCAL_ADDITIONAL_DEPENDENCIES := $(TARGET_OUT_INTERMEDIATES)/$(RMNET_CORE_PATH)/rmnet_core.ko +LOCAL_ADDITIONAL_DEPENDENCIES_GKI := $(TARGET_OUT_INTERMEDIATES)/$(RMNET_CORE_PATH)/gki/rmnet_core.ko + +include $(DLKM_DIR)/AndroidKernelModule.mk + +endif #End of check for target +endif #End of Check for qssi target +endif #End of check for AUTO Target diff --git a/offload/Kbuild b/offload/Kbuild new file mode 100644 index 000000000000..6b244bd4903f --- /dev/null +++ b/offload/Kbuild @@ -0,0 +1,10 @@ +#rmnet_perf needs the symbols from the core driver module +KBUILD_EXTRA_SYMBOLS := $(shell pwd)/../../$(RMNET_CORE_PATH)/Module.symvers + +obj-m += rmnet_offload.o +#Need core headers +ccflags-y := -I$(RMNET_CORE_INC_DIR) +rmnet_offload-y := rmnet_offload_state.o rmnet_offload_main.o \ + rmnet_offload_engine.o rmnet_offload_tcp.o \ + rmnet_offload_udp.o rmnet_offload_stats.o \ + rmnet_offload_knob.o diff --git a/offload/Kconfig b/offload/Kconfig new file mode 100644 index 000000000000..13799e314321 --- /dev/null +++ b/offload/Kconfig @@ -0,0 +1,10 @@ +# +# RMNET_OFFLOAD driver +# + +menuconfig RMNET_OFFLOAD + tristate "Rmnet offload support" + default m + depends on RMNET_CORE + ---help--- + Offload support for the RmNet driver diff --git a/offload/Makefile b/offload/Makefile new file mode 100644 index 000000000000..268d1f2eddb3 --- /dev/null +++ b/offload/Makefile @@ -0,0 +1,13 @@ +#By default build for CLD +RMNET_OFFLOAD_SELECT := CONFIG_RMNET_OFFLOAD=m +KBUILD_OPTIONS += $(RMNET_OFFLOAD_SELECT) +KBUILD_OPTIONS += $(KBUILD_EXTRA) # Extra config if any + +all: + $(MAKE) -C $(KERNEL_SRC) M=$(shell pwd) modules $(KBUILD_OPTIONS) + +modules_install: + $(MAKE) INSTALL_MOD_STRIP=1 -C $(KERNEL_SRC) M=$(shell pwd) modules_install + +clean: + $(MAKE) -C $(KERNEL_SRC) M=$(PWD) clean diff --git a/offload/rmnet_offload_engine.c b/offload/rmnet_offload_engine.c new file mode 100644 index 000000000000..3b2a3b8bdcc7 --- /dev/null +++ b/offload/rmnet_offload_engine.c @@ -0,0 +1,196 @@ +/* Copyright (c) 2018-2020, 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 + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +#include +#include +#include +#include "rmnet_descriptor.h" +#include "rmnet_offload_state.h" +#include "rmnet_offload_engine.h" +#include "rmnet_offload_main.h" +#include "rmnet_offload_tcp.h" +#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;} diff --git a/offload/rmnet_offload_engine.h b/offload/rmnet_offload_engine.h new file mode 100644 index 000000000000..58461dd522b1 --- /dev/null +++ b/offload/rmnet_offload_engine.h @@ -0,0 +1,38 @@ +/* Copyright (c) 2018-2020, 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 + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +#ifndef DATARMNETd6b6392f17 +#define DATARMNETd6b6392f17 +#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); +#endif diff --git a/offload/rmnet_offload_knob.c b/offload/rmnet_offload_knob.c new file mode 100644 index 000000000000..cd892a026ad8 --- /dev/null +++ b/offload/rmnet_offload_knob.c @@ -0,0 +1,75 @@ +/* Copyright (c) 2018-2020, 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 + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +#include +#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) \ + { \ + return DATARMNETedcd606b67(DATARMNETc94d3d8015, DATARMNET8a7a56afc0, \ +DATARMNETc8bfe161a0); \ + } +#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 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;} diff --git a/offload/rmnet_offload_knob.h b/offload/rmnet_offload_knob.h new file mode 100644 index 000000000000..906f81efd36b --- /dev/null +++ b/offload/rmnet_offload_knob.h @@ -0,0 +1,18 @@ +/* Copyright (c) 2018-2020, 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 + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +#ifndef DATARMNET3d4ba93d76 +#define DATARMNET3d4ba93d76 +#include +enum{DATARMNETee792ef3a0,DATARMNETfbbc8e2e06,DATARMNETe9b360aea8, +DATARMNET6fb580e7bf,};u64 DATARMNET3d487d950f(u32 DATARMNETc8bfe161a0); +#endif diff --git a/offload/rmnet_offload_main.c b/offload/rmnet_offload_main.c new file mode 100644 index 000000000000..0562023137d4 --- /dev/null +++ b/offload/rmnet_offload_main.c @@ -0,0 +1,190 @@ +/* Copyright (c) 2018-2020, 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 + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +#include +#include +#include +#include +#include "rmnet_descriptor.h" +#include "rmnet_handlers.h" +#include "rmnet_map.h" +#include "rmnet_offload_main.h" +#include "rmnet_offload_state.h" +#include "rmnet_offload_engine.h" +#include "rmnet_offload_stats.h" +static const char*DATARMNET9a36480134[]__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);} diff --git a/offload/rmnet_offload_main.h b/offload/rmnet_offload_main.h new file mode 100644 index 000000000000..0c9a84db12a3 --- /dev/null +++ b/offload/rmnet_offload_main.h @@ -0,0 +1,70 @@ +/* Copyright (c) 2018-2020, 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 + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +#ifndef DATARMNET8ff259402c +#define DATARMNET8ff259402c +#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{ +#if defined(__LITTLE_ENDIAN_BITFIELD) +u8 DATARMNET422c25939d:(0xc6f+4384-0x1d8b);u8 DATARMNET8f06b45a68: +(0xe4+813-0x40d); +#elif defined (__BIG_ENDIAN_BITFIELD) +u8 DATARMNET8f06b45a68:(0x297+3591-0x109a);u8 DATARMNET422c25939d: +(0x504+4747-0x178b); +#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; +#if defined(__LITTLE_ENDIAN_BITFIELD) +u8 DATARMNET0f1c1adba0:(0x975+7513-0x26ca);u8 DATARMNET686636af95: +(0x5d8+6880-0x20b4); +#elif defined (__BIG_ENDIAN_BITFIELD) +u8 DATARMNET686636af95:(0x882+5440-0x1dbe);u8 DATARMNET0f1c1adba0: +(0xbc6+6497-0x2523); +#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); +#endif + diff --git a/offload/rmnet_offload_state.c b/offload/rmnet_offload_state.c new file mode 100644 index 000000000000..3d48e3b1ed13 --- /dev/null +++ b/offload/rmnet_offload_state.c @@ -0,0 +1,100 @@ +/* Copyright (c) 2018-2020, 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 + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +#include +#include +#include "rmnet_map.h" +#include "rmnet_private.h" +#include "qmi_rmnet.h" +#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( +"\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( +"\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( +"\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 +( +"\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( +"\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( +"\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( +"\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( +"\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( +"\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( +"\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( +"\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); diff --git a/offload/rmnet_offload_state.h b/offload/rmnet_offload_state.h new file mode 100644 index 000000000000..1234c4860024 --- /dev/null +++ b/offload/rmnet_offload_state.h @@ -0,0 +1,28 @@ +/* Copyright (c) 2013-2014, 2016-2017, 2019-2020 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 + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +#ifndef DATARMNETdd185571da +#define DATARMNETdd185571da +#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); +#endif diff --git a/offload/rmnet_offload_stats.c b/offload/rmnet_offload_stats.c new file mode 100644 index 000000000000..3741e82c3bdf --- /dev/null +++ b/offload/rmnet_offload_stats.c @@ -0,0 +1,20 @@ +/* Copyright (c) 2018-2020, 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 + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +#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); +#endif + diff --git a/offload/rmnet_offload_tcp.c b/offload/rmnet_offload_tcp.c new file mode 100644 index 000000000000..749829d508d5 --- /dev/null +++ b/offload/rmnet_offload_tcp.c @@ -0,0 +1,68 @@ +/* Copyright (c) 2018-2020, 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 + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +#include "rmnet_descriptor.h" +#include "rmnet_offload_main.h" +#include "rmnet_offload_engine.h" +#include "rmnet_offload_stats.h" +#include "rmnet_offload_knob.h" +static bool 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 +);}return true;} diff --git a/offload/rmnet_offload_tcp.h b/offload/rmnet_offload_tcp.h new file mode 100644 index 000000000000..01d2e6e6b6e5 --- /dev/null +++ b/offload/rmnet_offload_tcp.h @@ -0,0 +1,19 @@ +/* Copyright (c) 2018-2020, 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 + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +#ifndef DATARMNETc3f978cfbc +#define DATARMNETc3f978cfbc +#include "rmnet_offload_main.h" +#include "rmnet_offload_engine.h" +bool DATARMNETb25a21aeeb(struct DATARMNET31caee06e2*DATARMNETd44a80d414,struct +DATARMNETadd6ff90d0*DATARMNETc3ffad4b30,bool DATARMNETc72284bb2d); +#endif diff --git a/offload/rmnet_offload_udp.c b/offload/rmnet_offload_udp.c new file mode 100644 index 000000000000..95c19510fcff --- /dev/null +++ b/offload/rmnet_offload_udp.c @@ -0,0 +1,39 @@ +/* Copyright (c) 2018-2020, 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 + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +#include "rmnet_descriptor.h" +#include "rmnet_offload_main.h" +#include "rmnet_offload_engine.h" +#include "rmnet_offload_stats.h" +#include "rmnet_offload_knob.h" +static 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 +);}return true;} diff --git a/offload/rmnet_offload_udp.h b/offload/rmnet_offload_udp.h new file mode 100644 index 000000000000..9e2d847e3ee1 --- /dev/null +++ b/offload/rmnet_offload_udp.h @@ -0,0 +1,19 @@ +/* Copyright (c) 2018-2020, 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 + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +#ifndef DATARMNET4acb030b4f +#define DATARMNET4acb030b4f +#include "rmnet_offload_main.h" +#include "rmnet_offload_engine.h" +bool DATARMNET9dd18589e3(struct DATARMNET31caee06e2*DATARMNETd44a80d414,struct +DATARMNETadd6ff90d0*DATARMNETc3ffad4b30,bool DATARMNETc72284bb2d); +#endif From 6648503cde22830bcc7bccbc6591a930ac37287e Mon Sep 17 00:00:00 2001 From: Subash Abhinov Kasiviswanathan Date: Mon, 8 Jun 2020 11:56:22 -0700 Subject: [PATCH 03/36] rmnet_shs: Ie9d6b5f64d2e94d8a8c3fb99fdcee1b13ae2ec6d Initial driver from Ie9d6b5f64d2e94d8a8c3fb99fdcee1b13ae2ec6d Change-Id: Ia4ed6cfe70067833a756f6d3f592e36e65bc9731 Signed-off-by: Subash Abhinov Kasiviswanathan --- datarmnet_ext_dlkm_vendor_board.mk | 1 + datarmnet_ext_dlkm_vendor_product.mk | 1 + shs/Android.mk | 45 ++ shs/Kbuild | 14 + shs/Kconfig | 10 + shs/Makefile | 13 + shs/rmnet_shs.h | 146 +++++ shs/rmnet_shs_common.c | 161 ++++++ shs/rmnet_shs_common.h | 45 ++ shs/rmnet_shs_config.c | 89 +++ shs/rmnet_shs_config.h | 26 + shs/rmnet_shs_freq.c | 66 +++ shs/rmnet_shs_freq.h | 19 + shs/rmnet_shs_main.c | 658 +++++++++++++++++++++ shs/rmnet_shs_modules.c | 207 +++++++ shs/rmnet_shs_modules.h | 56 ++ shs/rmnet_shs_wq.c | 826 +++++++++++++++++++++++++++ shs/rmnet_shs_wq.h | 123 ++++ shs/rmnet_shs_wq_genl.c | 169 ++++++ shs/rmnet_shs_wq_genl.h | 44 ++ shs/rmnet_shs_wq_mem.c | 526 +++++++++++++++++ shs/rmnet_shs_wq_mem.h | 69 +++ 22 files changed, 3314 insertions(+) create mode 100644 shs/Android.mk create mode 100644 shs/Kbuild create mode 100644 shs/Kconfig create mode 100644 shs/Makefile create mode 100644 shs/rmnet_shs.h create mode 100644 shs/rmnet_shs_common.c create mode 100644 shs/rmnet_shs_common.h create mode 100644 shs/rmnet_shs_config.c create mode 100644 shs/rmnet_shs_config.h create mode 100644 shs/rmnet_shs_freq.c create mode 100644 shs/rmnet_shs_freq.h create mode 100644 shs/rmnet_shs_main.c create mode 100644 shs/rmnet_shs_modules.c create mode 100644 shs/rmnet_shs_modules.h create mode 100644 shs/rmnet_shs_wq.c create mode 100644 shs/rmnet_shs_wq.h create mode 100644 shs/rmnet_shs_wq_genl.c create mode 100644 shs/rmnet_shs_wq_genl.h create mode 100644 shs/rmnet_shs_wq_mem.c create mode 100644 shs/rmnet_shs_wq_mem.h diff --git a/datarmnet_ext_dlkm_vendor_board.mk b/datarmnet_ext_dlkm_vendor_board.mk index cb75ff4176c6..127403852a62 100644 --- a/datarmnet_ext_dlkm_vendor_board.mk +++ b/datarmnet_ext_dlkm_vendor_board.mk @@ -3,5 +3,6 @@ DATA_DLKM_BOARD_PLATFORMS_LIST := lahaina ifneq ($(TARGET_BOARD_AUTO),true) ifeq ($(call is-board-platform-in-list,$(DATA_DLKM_BOARD_PLATFORMS_LIST)),true) BOARD_VENDOR_KERNEL_MODULES += $(KERNEL_MODULES_OUT)/rmnet_offload.ko +BOARD_VENDOR_KERNEL_MODULES += $(KERNEL_MODULES_OUT)/rmnet_shs.ko endif endif diff --git a/datarmnet_ext_dlkm_vendor_product.mk b/datarmnet_ext_dlkm_vendor_product.mk index 8dc049f686bf..3d0f64c1c0ee 100644 --- a/datarmnet_ext_dlkm_vendor_product.mk +++ b/datarmnet_ext_dlkm_vendor_product.mk @@ -1 +1,2 @@ PRODUCT_PACKAGES += rmnet_offload.ko +PRODUCT_PACKAGES += rmnet_shs.ko diff --git a/shs/Android.mk b/shs/Android.mk new file mode 100644 index 000000000000..9e9f90b8cc88 --- /dev/null +++ b/shs/Android.mk @@ -0,0 +1,45 @@ +ifneq ($(TARGET_PRODUCT),qssi) +RMNET_SHS_DLKM_PLATFORMS_LIST := lahaina + +ifeq ($(call is-board-platform-in-list, $(RMNET_SHS_DLKM_PLATFORMS_LIST)),true) +#Make file to create RMNET_SHS DLKM +LOCAL_PATH := $(call my-dir) +include $(CLEAR_VARS) + +LOCAL_CFLAGS := -Wno-macro-redefined -Wno-unused-function -Wall -Werror +LOCAL_CLANG :=true + +LOCAL_MODULE_PATH := $(KERNEL_MODULES_OUT) +LOCAL_MODULE := rmnet_shs.ko + +LOCAL_SRC_FILES := \ + rmnet_shs_main.c \ + rmnet_shs_config.c \ + rmnet_shs_common.c \ + rmnet_shs_modules.c \ + rmnet_shs_wq.c \ + rmnet_shs_freq.c \ + rmnet_shs_wq_mem.c \ + rmnet_shs_wq_genl.c + +#path from build top to the core directory +RMNET_CORE_PATH := vendor/qcom/opensource/datarmnet/core +DLKM_DIR := $(TOP)/device/qcom/common/dlkm +#absolute path to the build directory. Can't use $(TOP) here since +#that resolves to ., and we pass this to Kbuild, where . is different +RMNET_CORE_INC_DIR := $(shell pwd)/$(RMNET_CORE_PATH) + +#pass variables down to Kbuild environment +KBUILD_OPTIONS := RMNET_CORE_INC_DIR=$(RMNET_CORE_INC_DIR) +KBUILD_OPTIONS += RMNET_CORE_PATH=$(RMNET_CORE_PATH) +KBUILD_OPTIONS_GKI := RMNET_CORE_INC_DIR=$(RMNET_CORE_INC_DIR) +KBUILD_OPTIONS_GKI += RMNET_CORE_PATH=$(RMNET_CORE_PATH)/gki + +#Must be built after the core rmnet module +LOCAL_ADDITIONAL_DEPENDENCIES := $(TARGET_OUT_INTERMEDIATES)/$(RMNET_CORE_PATH)/rmnet_core.ko +LOCAL_ADDITIONAL_DEPENDENCIES_GKI := $(TARGET_OUT_INTERMEDIATES)/$(RMNET_CORE_PATH)/gki/rmnet_core.ko + +include $(DLKM_DIR)/AndroidKernelModule.mk + +endif #End of Check for target +endif #End of Check for qssi target diff --git a/shs/Kbuild b/shs/Kbuild new file mode 100644 index 000000000000..96499e26eab5 --- /dev/null +++ b/shs/Kbuild @@ -0,0 +1,14 @@ +#rmnet_shs needs the symbols from the core driver module +KBUILD_EXTRA_SYMBOLS := $(shell pwd)/../../$(RMNET_CORE_PATH)/Module.symvers + +obj-m += rmnet_shs.o +#Need core headers +ccflags-y := -I$(RMNET_CORE_INC_DIR) +rmnet_shs-y := rmnet_shs_config.o \ + rmnet_shs_main.o \ + rmnet_shs_common.o \ + rmnet_shs_wq.o \ + rmnet_shs_freq.o \ + rmnet_shs_wq_mem.o \ + rmnet_shs_wq_genl.o \ + rmnet_shs_modules.o diff --git a/shs/Kconfig b/shs/Kconfig new file mode 100644 index 000000000000..41b0e08e8123 --- /dev/null +++ b/shs/Kconfig @@ -0,0 +1,10 @@ +# +# RMNET_SHS driver +# + +menuconfig RMNET_SHS + tristate "Rmnet SHS driver" + default m + depends on RMNET_CORE + ---help--- + performance mode of rmnet driver diff --git a/shs/Makefile b/shs/Makefile new file mode 100644 index 000000000000..d2989ad7081f --- /dev/null +++ b/shs/Makefile @@ -0,0 +1,13 @@ +KERNEL_SRC ?= /lib/modules/$(shell uname -r)/build + +KBUILD_OPTIONS := RMNET_SHS_ROOT=$(PWD) +KBUILD_OPTIONS += MODNAME?=rmnet_shs + +all: + $(MAKE) -C $(KERNEL_SRC) M=$(shell pwd) modules $(KBUILD_OPTIONS) + +modules_install: + $(MAKE) INSTALL_MOD_STRIP=1 -C $(KERNEL_SRC) M=$(shell pwd) modules_install + +clean: + $(MAKE) -C $(KERNEL_SRC) M=$(PWD) clean diff --git a/shs/rmnet_shs.h b/shs/rmnet_shs.h new file mode 100644 index 000000000000..b381b8055cb1 --- /dev/null +++ b/shs/rmnet_shs.h @@ -0,0 +1,146 @@ +/* Copyright (c) 2018-2020 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 + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + */ + +#include +#include +#include +#include +#include +#include +#include "rmnet_shs_wq.h" +#ifndef DATARMNETbd5709177a +#define DATARMNETbd5709177a +#include "rmnet_shs_freq.h" +#include "rmnet_config.h" +#include "rmnet_map.h" +#include "rmnet_private.h" +#include "rmnet_handlers.h" +#include "rmnet_trace.h" +#include "qmi_rmnet.h" +#define DATARMNETe603c3a4b3 DATARMNETbfe1afe595 +#define DATARMNET25437d35fd 9 +#define DATARMNET4899358462 (0xec7+1108-0x12fd) +#define DATARMNET401583e606 (0xd11+230-0xdf3) +#define DATARMNETc6782fed88 (0xd35+210-0xdff) +#define DATARMNETbc3c416b77 (0xbf7+4405-0x1c3c) +#define DATARMNET2edff26954 (0xd2d+202-0xdf7) +#define DATARMNET752465942a (0xbf7+4364-0x1c04) +#define DATARMNETbfe31ef643 (0xc07+1233-0xe1c) +#define DATARMNET7a815512d3 (0xef7+1100-0x12fd) +#define DATARMNET270b564b55 (0xd27+224-0xdfd) +#define DATARMNET1c2d76f636 (0xf07+658-0x110d) +#define DATARMNET2922c89d50 (0xd1f+216-0xdf5) +#define DATARMNET015fb2ba0e(...) \ + do { if (DATARMNET756bdd424a) trace_rmnet_shs_err(__VA_ARGS__); } while (\ +(0xd2d+202-0xdf7)) +#define DATARMNET52de1f3dc0(...) \ + do { if (DATARMNET756bdd424a) trace_rmnet_shs_high(__VA_ARGS__); } while (\ +(0xd2d+202-0xdf7)) +#define DATARMNETda96251102(...) \ + do { if (DATARMNET756bdd424a) trace_rmnet_shs_low(__VA_ARGS__); } while (\ +(0xd2d+202-0xdf7)) +#define DATARMNETd82a2ed45e 204800 +#define DATARMNETc668d192f2 (0xec7+1093-0x12f5) +#define DATARMNETb38cb72105 80000 +#define DATARMNETac6d632788 (80000*DATARMNETc668d192f2) +#define DATARMNET243c638e7d 210000 +#define DATARMNET03fd42433e (210000*DATARMNETc668d192f2) +#define DATARMNET9bc9e0cac3 (0xd2d+202-0xdf7) +#define DATARMNET22feab5726 40000 +#define DATARMNET4298ee0d38 (40000*DATARMNETc668d192f2) +#define DATARMNET3a9bca9cba 20000 +#define DATARMNETcdee526004 (DATARMNET243c638e7d / (0xd1f+216-0xdf5)) +struct DATARMNETa6f2d499b2{struct hrtimer DATARMNET758a55f103;struct work_struct + DATARMNET33110a3ff5;struct timespec DATARMNET251b97a380;int DATARMNETe61d62310f +;u8 DATARMNET42c3ecbd5e;};struct DATARMNETa6b20d7e8b{struct hrtimer +DATARMNET6fd692fc7a;struct rmnet_map_dl_ind DATARMNET08dbb5ab35;struct +qmi_rmnet_ps_ind rmnet_idl_ind_cb;struct rmnet_port*port;struct +DATARMNETa6f2d499b2 DATARMNET132b9c7dc4[DATARMNETc6782fed88];u64 +DATARMNETbd3a0ee74e[DATARMNETc6782fed88];long DATARMNETc252a1f55d;long +DATARMNETa2e32cdd3a;u32 DATARMNET9c869c1ec2;u16 DATARMNET64bb8a8f57;u8 +DATARMNETd9cfd2812b;u8 DATARMNETf5ab31b9b0;u8 DATARMNET34097703c8;u8 +DATARMNETfc89d842ae;u8 DATARMNET6fe0db3a49;u8 map_mask;u8 map_len;};struct +DATARMNETa034b2e60c{struct sk_buff*head;struct sk_buff*tail;u64 +DATARMNETbaa5765693;u32 DATARMNET6215127f48;u32 DATARMNET35234676d4;};struct +DATARMNET63d7680df2{union{struct iphdr DATARMNETac9bbaad7c;struct ipv6hdr +DATARMNET1688a97aa4;}ip_hdr;union{struct tcphdr tp;struct udphdr up;} +DATARMNETe33b41dad9;struct list_head DATARMNET04c88b8191;struct net_device*dev; +struct DATARMNET6c78e47d24*DATARMNET341ea38662;struct DATARMNETa034b2e60c +DATARMNETae4b27456e;struct hlist_node list;u64 DATARMNET11930c5df8;u64 +DATARMNETa8940e4a7b;u64 DATARMNET2594c418db;u32 queue_head;u32 hash;u16 +map_index;u16 map_cpu;u16 DATARMNET1e9d25d9ff;u8 DATARMNETa1099c74fe;u8 +DATARMNET6250e93187;u8 mux_id;};enum DATARMNET156842d55e{DATARMNET7bc926fdbe, +DATARMNETb3e3b2a799,DATARMNET8dcf06727b};enum DATARMNET8463cba7c7{ +DATARMNETc3bce05be2,DATARMNET14067f0be4,DATARMNET28bb261646,DATARMNET67b67dc88f, +DATARMNET0efbbe2821,DATARMNETa4267dfd8a,DATARMNETeccb61ebc3};enum +DATARMNETf355367410{DATARMNET557ff68d74,DATARMNET1c55e5fdb1,DATARMNET4ab5a31d0c, +DATARMNETde2dd86539};enum DATARMNET3f3bc61c03{DATARMNETf5157a9b85, +DATARMNET709b59b0e6,DATARMNET99db6e7d86,DATARMNETe3c02ddaeb,DATARMNET394acaf558, +DATARMNETef8cbfa62f,DATARMNETe6e77f9f03,DATARMNETecdf13872c,DATARMNETd1687e0776, +DATARMNET1828d69e96,DATARMNET40ceff078e,DATARMNET42b73d0f3f,DATARMNETb8fe2c0e64, +DATARMNET72db8b9bac,DATARMNET33a9d4759f,DATARMNET46966e7828,DATARMNETa1f9420686, +DATARMNET54b67b8a75,DATARMNETac729c3d29,DATARMNET6533f70c87,DATARMNET6f6efeaf61, +DATARMNETcc0ef52ccb,DATARMNETf8de7cb644,DATARMNETdd6bf3de6b,DATARMNETf3110711cb} +;enum DATARMNETd751e3ec84{DATARMNET802083239a,DATARMNETed69052342, +DATARMNETcfb1764a91,DATARMNET84a9e136b8,DATARMNET01bf75e27c,DATARMNETd45c383019, +DATARMNETbb5757569c,DATARMNETc8058e2cff,DATARMNET3cef75f6cd};struct +DATARMNETfd554c7eac{struct sk_buff*skb;struct DATARMNETfd554c7eac*next;};struct +DATARMNET37ef896af8{struct work_struct DATARMNET33110a3ff5;struct rmnet_port* +port;};struct DATARMNETe600c5b727{struct list_head DATARMNET3dc4262f53;u32 +DATARMNETae196235f2;u32 qtail;u32 DATARMNET96571b28de;u32 DATARMNET4133fc9428; +u32 seg;u8 DATARMNETef866573e0;u8 DATARMNET1e1f197118;};enum DATARMNETf0a06dc55a +{DATARMNET1790979ccf,DATARMNETd5eb6398da,DATARMNETcd24fca747,DATARMNETe50d824af7 +,DATARMNET6b317c4c73,DATARMNET75d955c408,DATARMNETf3aaad06eb,DATARMNET720469c0a9 +,DATARMNET4510abc30d,DATARMNET23f8730007,};enum DATARMNETc1d9e38720{ +DATARMNET0b15fd8b54,DATARMNET5b5927fd7e,DATARMNETba3049005f};enum +DATARMNET4f392b0182{DATARMNET72cb00fdc0,DATARMNET443dab7031,DATARMNET96db46917c, +DATARMNET89958f9b63,DATARMNET6d7a3a033a,DATARMNET16a68afc17,DATARMNET916f444e0a, +DATARMNETe9a79499ac,DATARMNET89f4779456,DATARMNETa94c7e31a0,DATARMNET116c96c236, +DATARMNET9da2ea4f74,DATARMNETe55953a107,DATARMNET43225b7a7c,DATARMNET4dbb6812b5, +DATARMNETbf80eada88,DATARMNET26438cb654,DATARMNETa6d85c8497,DATARMNET650a0ef6e1, +DATARMNET3e031f1532,DATARMNET9f467b9ce4,DATARMNETc154fd2d48,DATARMNET5874e1ecd7, +DATARMNET4f09dc5794,DATARMNET11a1fd3964,DATARMNETf2fc7954d4,DATARMNET4e91ddb48a, +DATARMNET16befe9635,DATARMNET856c53293b,DATARMNET7e63a08ad4,DATARMNETf7c8c7aa3f, +DATARMNET08b6defcff,DATARMNETf5c836f9ae,DATARMNETdd870ee64c,DATARMNETf730f80f06, +DATARMNET998c6de143,DATARMNETe7afce2292,DATARMNETe0fee0991a,DATARMNETbc2a6aea12, +DATARMNETde91850c28,DATARMNET237e7bd5f6,DATARMNETf16e78412b,DATARMNET83147a2e7d, +DATARMNET816bb1e327,DATARMNETf311f20c00,DATARMNETa2bd301af7,DATARMNET99640d60f7, +DATARMNET562b7d32a8,DATARMNET0808844559,DATARMNET5410705c1c,DATARMNET022082b219, +DATARMNETe4ee0d2636,DATARMNET23b8465daf,DATARMNET052f49b190,DATARMNETfb753e521e, +DATARMNET64b02f64c6,DATARMNET576793621a,DATARMNETc262b24b02,DATARMNET4ebbc01257, +DATARMNET595eed6ea2,DATARMNETde090e8314,DATARMNETa593d87b38,DATARMNET8a2898988b, +DATARMNET0709c9f764,};extern struct DATARMNET37ef896af8 DATARMNET1731db288b; +extern spinlock_t DATARMNET3764d083f0;extern spinlock_t DATARMNETec2a4f5211; +extern spinlock_t DATARMNETfbdbab2ef6;extern struct hlist_head +DATARMNETe603c3a4b3[(0xd26+209-0xdf6)<<(DATARMNET25437d35fd)];extern void +rmnet_deliver_skb(struct sk_buff*skb,struct rmnet_port*port);extern int(* +rmnet_shs_skb_entry)(struct sk_buff*skb,struct rmnet_port*port);int +DATARMNET362b15f941(u16 cpu);void DATARMNETeacad8334e(void);void +DATARMNETe1f95274f1(void);unsigned int DATARMNET02cdd9b125(void);int +DATARMNET310c3eb16e(u8 mask);int DATARMNETe02152c351(struct DATARMNET63d7680df2* +DATARMNET63b1a086d5,u8 DATARMNETd87669e323,u8 DATARMNET5447204733);void +DATARMNET78bb6be330(struct rmnet_map_dl_ind_hdr*dlhdr,struct +rmnet_map_control_command_header*qcmd);void DATARMNETf61cd23b90(struct +rmnet_map_dl_ind_trl*dltrl,struct rmnet_map_control_command_header*qcmd);void +DATARMNET7ed4cef8a3(struct rmnet_map_dl_ind_hdr*dlhdr);void DATARMNET613a81eca8( +struct rmnet_map_dl_ind_trl*dltrl);int DATARMNET756778f14f(struct sk_buff*skb, +struct rmnet_port*port);void DATARMNETa4bf9fbf64(u8 DATARMNET665469cfb6,u8 +DATARMNET5447204733);void DATARMNETde8ee16f92(struct DATARMNET63d7680df2* +DATARMNET63b1a086d5);void DATARMNET45d8cdb224(struct net_device*dev,struct +net_device*vnd);void DATARMNET9297340f58(unsigned int DATARMNET9f4bc49c6f);void +DATARMNET7f1d9480cb(void*port);void DATARMNETa4bd2ef52c(void*port);void +DATARMNETe074a09496(void);void DATARMNET23c7ddd780(struct DATARMNET63d7680df2* +DATARMNET63b1a086d5,u8 DATARMNET5447204733);void DATARMNET349c3a0cab(u16 map_cpu +,bool DATARMNETb639f6e1b1);u32 DATARMNETadb0248bd4(u8 DATARMNET42a992465f); +#endif + diff --git a/shs/rmnet_shs_common.c b/shs/rmnet_shs_common.c new file mode 100644 index 000000000000..7d5a7fa520fb --- /dev/null +++ b/shs/rmnet_shs_common.c @@ -0,0 +1,161 @@ +/* Copyright (c) 2020 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 + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + */ + +#include "rmnet_shs.h" +#include "rmnet_shs_wq.h" +#include "rmnet_shs_modules.h" +#define DATARMNET48a89fcc16 (0xd26+209-0xdf6) +#define DATARMNETbfe901fc62 (0xd2d+202-0xdf7) +void DATARMNET4095253347(struct DATARMNET9b44b71ee9*ep){trace_rmnet_shs_wq_low( +DATARMNET5e796836fb,DATARMNET7fc202c4c1,(0x16e8+787-0xc0c),(0x16e8+787-0xc0c), +(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),ep,NULL);list_add(&ep->DATARMNET0763436b8d +,&DATARMNET30a3e83974);}void DATARMNETf7d317ed55(struct DATARMNET9b44b71ee9*ep){ +trace_rmnet_shs_wq_low(DATARMNET5e796836fb,DATARMNET7643ab0f49, +(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),ep, +NULL);list_del_init(&ep->DATARMNET0763436b8d);}void DATARMNET36e5e526fa(struct +DATARMNET6c78e47d24*DATARMNETd2a694d52a){unsigned long flags; +trace_rmnet_shs_wq_low(DATARMNET238d08f0df,DATARMNET3f2d29c867, +(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),(0x16e8+787-0xc0c), +DATARMNETd2a694d52a,NULL);spin_lock_irqsave(&DATARMNETfbdbab2ef6,flags);list_add +(&DATARMNETd2a694d52a->DATARMNET6de26f0feb,&DATARMNET9825511866); +spin_unlock_irqrestore(&DATARMNETfbdbab2ef6,flags);}void DATARMNET2fe780019f( +struct DATARMNET6c78e47d24*DATARMNETd2a694d52a){unsigned long flags; +trace_rmnet_shs_wq_low(DATARMNET238d08f0df,DATARMNET5a3ea29c57, +(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),(0x16e8+787-0xc0c), +DATARMNETd2a694d52a,NULL);spin_lock_irqsave(&DATARMNETfbdbab2ef6,flags); +list_del_init(&DATARMNETd2a694d52a->DATARMNET6de26f0feb);spin_unlock_irqrestore( +&DATARMNETfbdbab2ef6,flags);}void DATARMNETb4a6870b3b(struct DATARMNET6c78e47d24 +*DATARMNETd2a694d52a){unsigned long flags;trace_rmnet_shs_wq_low( +DATARMNET92b282b12c,DATARMNETdb9197631d,(0x16e8+787-0xc0c),(0x16e8+787-0xc0c), +(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),DATARMNETd2a694d52a,NULL); +spin_lock_irqsave(&DATARMNETfbdbab2ef6,flags);list_del_init(&DATARMNETd2a694d52a +->DATARMNET742867e97a);spin_unlock_irqrestore(&DATARMNETfbdbab2ef6,flags);}void +DATARMNETd8a6375e9c(struct DATARMNET6c78e47d24*DATARMNETd2a694d52a,struct +list_head*head){unsigned long flags;trace_rmnet_shs_wq_low(DATARMNET92b282b12c, +DATARMNET4b58d51c6a,(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),(0x16e8+787-0xc0c), +(0x16e8+787-0xc0c),DATARMNETd2a694d52a,NULL);spin_lock_irqsave(& +DATARMNETfbdbab2ef6,flags);list_add(&DATARMNETd2a694d52a->DATARMNET742867e97a, +head);spin_unlock_irqrestore(&DATARMNETfbdbab2ef6,flags);}void +DATARMNET9914e9761e(struct DATARMNET6c78e47d24*DATARMNETd2a694d52a,struct +list_head*head){unsigned long flags;trace_rmnet_shs_wq_low(DATARMNET92b282b12c, +DATARMNETfd4d416388,DATARMNETd2a694d52a->DATARMNET7c894c2f8f,(0x16e8+787-0xc0c), +(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),DATARMNETd2a694d52a,NULL); +spin_lock_irqsave(&DATARMNETfbdbab2ef6,flags);list_move(&DATARMNETd2a694d52a-> +DATARMNET742867e97a,head);spin_unlock_irqrestore(&DATARMNETfbdbab2ef6,flags);} +void DATARMNET6bf538fa23(void){spin_lock_bh(&DATARMNETec2a4f5211);}void +DATARMNETaea4c85748(void){spin_unlock_bh(&DATARMNETec2a4f5211);}void +DATARMNETe46c480d71(void){u8 mask=DATARMNET752465942a;u8 DATARMNET998de79791= +(0xd2d+202-0xdf7);struct DATARMNET9b44b71ee9*ep;list_for_each_entry(ep,& +DATARMNET30a3e83974,DATARMNET0763436b8d){if(!ep->DATARMNET4a4e6f66b5)continue;if +(ep->DATARMNET9fb369ce5f){mask&=ep->DATARMNET9fb369ce5f;DATARMNET998de79791= +(0xd26+209-0xdf6);}}if(!DATARMNET998de79791){DATARMNETecc0627c70.map_mask= +(0xd2d+202-0xdf7);DATARMNETecc0627c70.map_len=(0xd2d+202-0xdf7);return;}else if( +DATARMNETecc0627c70.map_mask!=mask){DATARMNETecc0627c70.map_mask=mask; +DATARMNETecc0627c70.map_len=DATARMNET310c3eb16e(mask);}}void DATARMNETde8ee16f92 +(struct DATARMNET63d7680df2*DATARMNET63b1a086d5){DATARMNETda96251102( +DATARMNETd5eb6398da,DATARMNETe9a79499ac,(0x16e8+787-0xc0c),(0x16e8+787-0xc0c), +(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),NULL,NULL);list_del_init(& +DATARMNET63b1a086d5->DATARMNET04c88b8191);DATARMNET349c3a0cab( +DATARMNET63b1a086d5->map_cpu,DATARMNETbfe901fc62);}void DATARMNET3e37ad2816( +struct DATARMNET63d7680df2*DATARMNET63b1a086d5,struct list_head* +DATARMNET4d030eb9b5){DATARMNETda96251102(DATARMNETd5eb6398da,DATARMNET16a68afc17 +,(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),(0x16e8+787-0xc0c), +NULL,NULL);list_add(&DATARMNET63b1a086d5->DATARMNET04c88b8191, +DATARMNET4d030eb9b5);DATARMNET349c3a0cab(DATARMNET63b1a086d5->map_cpu, +DATARMNET48a89fcc16);}void DATARMNETe102b3a798(struct DATARMNET63d7680df2* +DATARMNET63b1a086d5,struct list_head*DATARMNET4d030eb9b5,int DATARMNETa7a5705ab0 +){DATARMNETda96251102(DATARMNETd5eb6398da,DATARMNET916f444e0a,(0x16e8+787-0xc0c) +,(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),NULL,NULL);list_move(& +DATARMNET63b1a086d5->DATARMNET04c88b8191,DATARMNET4d030eb9b5); +DATARMNET349c3a0cab(DATARMNET63b1a086d5->map_cpu,DATARMNET48a89fcc16); +DATARMNET349c3a0cab((u16)DATARMNETa7a5705ab0,DATARMNETbfe901fc62);}void +DATARMNET4bde88919f(u8 cpu,int count){if(cpu= +DATARMNETc6782fed88){DATARMNET68d84e7b98[DATARMNET54b67b8a75]++;return +(0xd2d+202-0xdf7);}return DATARMNET713717107f[cpu];}inline int +DATARMNET362b15f941(u16 cpu){return!(((0xd26+209-0xdf6)< +DATARMNET253a9fc708>DATARMNETdcaff77beb->DATARMNET253a9fc708)return- +(0xd26+209-0xdf6);else if(DATARMNET40e125212a->DATARMNET253a9fc708< +DATARMNETdcaff77beb->DATARMNET253a9fc708)return(0xd26+209-0xdf6);return +(0xd2d+202-0xdf7);}int DATARMNET85af86a36d(void*priv,struct list_head* +DATARMNET9cf7d31274,struct list_head*DATARMNET5444bd3b6f){struct +DATARMNET47a6995138*DATARMNETdad817a72a;struct DATARMNET47a6995138* +DATARMNET11d167e92b;if(!DATARMNET9cf7d31274||!DATARMNET5444bd3b6f)return +(0xd2d+202-0xdf7);DATARMNETdad817a72a=list_entry(DATARMNET9cf7d31274,struct +DATARMNET47a6995138,DATARMNET02523bfb57);DATARMNET11d167e92b=list_entry( +DATARMNET5444bd3b6f,struct DATARMNET47a6995138,DATARMNET02523bfb57);if( +DATARMNETdad817a72a->DATARMNET4da6031170>DATARMNET11d167e92b-> +DATARMNET4da6031170)return-(0xd26+209-0xdf6);else if(DATARMNETdad817a72a-> +DATARMNET4da6031170DATARMNET4da6031170)return +(0xd26+209-0xdf6);return(0xd2d+202-0xdf7);}int DATARMNETf181a18009(struct +net_device*dev){u8 DATARMNETde5894dad9;u8 DATARMNETd9e9d4ff7e;int +DATARMNET895df156d7=-(0xd26+209-0xdf6);u8 is_match_found=(0xd2d+202-0xdf7); +struct DATARMNET9b44b71ee9*ep=NULL;unsigned long flags;if(!dev){ +DATARMNET68d84e7b98[DATARMNETf5157a9b85]++;return DATARMNET895df156d7;} +spin_lock_irqsave(&DATARMNETec2a4f5211,flags);list_for_each_entry(ep,& +DATARMNET30a3e83974,DATARMNET0763436b8d){if(!ep)continue;if(!ep-> +DATARMNET4a4e6f66b5)continue;if(ep->ep==dev){is_match_found=(0xd26+209-0xdf6); +break;}}if(!is_match_found){DATARMNET68d84e7b98[DATARMNETb8fe2c0e64]++; +spin_unlock_irqrestore(&DATARMNETec2a4f5211,flags);return DATARMNET895df156d7;} +DATARMNETde5894dad9=ep->DATARMNET6bda8fe27e;DATARMNETd9e9d4ff7e=ep-> +DATARMNETd7a83774f8;while(DATARMNETde5894dad9 +DATARMNET5af04d0405[DATARMNETde5894dad9]>=(0xd2d+202-0xdf7)){DATARMNET895df156d7 +=ep->DATARMNET5af04d0405[DATARMNETde5894dad9];break;}DATARMNETde5894dad9++;}if(( +DATARMNET895df156d7>=(0xd2d+202-0xdf7))||((ep->DATARMNET6bda8fe27e+ +(0xd26+209-0xdf6))>=ep->DATARMNETd7a83774f8))ep->DATARMNET6bda8fe27e=((ep-> +DATARMNET6bda8fe27e+(0xd26+209-0xdf6))%ep->DATARMNETd7a83774f8); +spin_unlock_irqrestore(&DATARMNETec2a4f5211,flags);return DATARMNET895df156d7;} +int DATARMNET98b2a0ce62(struct net_device*dev){struct DATARMNET9b44b71ee9*ep= +NULL;int DATARMNET895df156d7=-(0xd26+209-0xdf6);u8 DATARMNETcc5b7cd962;u8 +DATARMNET15bde5cb53;u8 is_match_found=(0xd2d+202-0xdf7);unsigned long flags;if(! +dev){DATARMNET68d84e7b98[DATARMNETf5157a9b85]++;return DATARMNET895df156d7;} +spin_lock_irqsave(&DATARMNETec2a4f5211,flags);list_for_each_entry(ep,& +DATARMNET30a3e83974,DATARMNET0763436b8d){if(!ep)continue;if(!ep-> +DATARMNET4a4e6f66b5)continue;if(ep->ep==dev){is_match_found=(0xd26+209-0xdf6); +break;}}if(!is_match_found){DATARMNET68d84e7b98[DATARMNETb8fe2c0e64]++; +spin_unlock_irqrestore(&DATARMNETec2a4f5211,flags);return DATARMNET895df156d7;} +DATARMNETcc5b7cd962=ep->DATARMNET121a654efd;DATARMNET15bde5cb53=ep-> +DATARMNET847276e5af;while(DATARMNETcc5b7cd962 +DATARMNET7167e10d99[DATARMNETcc5b7cd962]>=(0xd2d+202-0xdf7)){DATARMNET895df156d7 +=ep->DATARMNET7167e10d99[DATARMNETcc5b7cd962];break;}DATARMNETcc5b7cd962++;}if( +DATARMNET895df156d7>=(0xd2d+202-0xdf7))ep->DATARMNET121a654efd=(( +DATARMNETcc5b7cd962+(0xd26+209-0xdf6))%DATARMNET15bde5cb53); +spin_unlock_irqrestore(&DATARMNETec2a4f5211,flags);return DATARMNET895df156d7;} +void DATARMNET7f1d9480cb(void*port){DATARMNET4063c95208();}void +DATARMNETa4bd2ef52c(void*port){DATARMNET7b6c061b06();}u8 DATARMNET928c931df9( +struct rps_map*map){u8 mask=(0xd2d+202-0xdf7);u8 i;for(i=(0xd2d+202-0xdf7);ilen;i++)mask|=(0xd26+209-0xdf6)<cpus[i];return mask;}int +DATARMNET310c3eb16e(u8 mask){u8 i;u8 DATARMNETc2284e5688=(0xd2d+202-0xdf7);for(i +=(0xd2d+202-0xdf7);i +#include +#include +#include "rmnet_map.h" +#include "rmnet_private.h" +#include "rmnet_shs_config.h" +#include "rmnet_shs.h" +#include "rmnet_shs_wq.h" +#include "rmnet_shs_wq_genl.h" +#include "rmnet_shs_common.h" +#include "rmnet_shs_modules.h" +static int DATARMNETe9173bbe0e(struct notifier_block*DATARMNET272c159b3c, +unsigned long DATARMNET7f045a1e6e,void*data);static struct notifier_block +DATARMNET5fc54f7a13 __read_mostly={.notifier_call=DATARMNETe9173bbe0e,.priority= +(0xd1f+216-0xdf5),};static const char*DATARMNETbc8418e817[]={"\x39\x37\x33\x31"} +;static int DATARMNET2cb9ae589c;int __init DATARMNET163e93649e(void){pr_info( +"\x25\x73\x28\x29\x3a\x20\x53\x74\x61\x72\x74\x69\x6e\x67\x20\x72\x6d\x6e\x65\x74\x20\x53\x48\x53\x20\x6d\x6f\x64\x75\x6c\x65\x20\x25\x73\x20" "\n" +,__func__,DATARMNETbc8418e817[(0xd2d+202-0xdf7)]);trace_rmnet_shs_high( +DATARMNET1790979ccf,DATARMNET72cb00fdc0,(0x16e8+787-0xc0c),(0x16e8+787-0xc0c), +(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),NULL,NULL);if(DATARMNET0dbc627e8f()){ +rm_err("\x25\x73", +"\x53\x48\x53\x5f\x47\x4e\x4c\x3a\x20\x46\x61\x69\x6c\x65\x64\x20\x74\x6f\x20\x69\x6e\x69\x74\x20\x67\x65\x6e\x65\x72\x69\x63\x20\x6e\x65\x74\x6c\x69\x6e\x6b" +);}return register_netdevice_notifier(&DATARMNET5fc54f7a13);}void __exit +DATARMNETf3298dab6f(void){trace_rmnet_shs_high(DATARMNET1790979ccf, +DATARMNET89958f9b63,(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),(0x16e8+787-0xc0c), +(0x16e8+787-0xc0c),NULL,NULL);unregister_netdevice_notifier(&DATARMNET5fc54f7a13 +);DATARMNETeabd69d1ab();pr_info( +"\x25\x73\x28\x29\x3a\x20\x45\x78\x69\x74\x69\x6e\x67\x20\x72\x6d\x6e\x65\x74\x20\x53\x48\x53\x20\x6d\x6f\x64\x75\x6c\x65" "\n" +,__func__);}static int DATARMNETe9173bbe0e(struct notifier_block* +DATARMNET272c159b3c,unsigned long DATARMNET7f045a1e6e,void*data){struct +net_device*dev=netdev_notifier_info_to_dev(data);struct rmnet_priv*priv;struct +rmnet_port*port;int ret=(0xd2d+202-0xdf7);if(!dev){DATARMNET68d84e7b98[ +DATARMNETf5157a9b85]++;return NOTIFY_DONE;}if(!(strncmp(dev->name, +"\x72\x6d\x6e\x65\x74\x5f\x64\x61\x74\x61",(0xd27+224-0xdfd))==(0xd2d+202-0xdf7) +||strncmp(dev->name,"\x72\x5f\x72\x6d\x6e\x65\x74\x5f\x64\x61\x74\x61", +(0xd19+238-0xdfb))==(0xd2d+202-0xdf7)))return NOTIFY_DONE;switch( +DATARMNET7f045a1e6e){case NETDEV_UNREGISTER:DATARMNETd6ee05f1b4(dev); +DATARMNET2cb9ae589c--;if(!DATARMNET2cb9ae589c&&DATARMNETecc0627c70. +DATARMNETfc89d842ae){unsigned int DATARMNET9f4bc49c6f;pr_info( +"\x72\x6d\x6e\x65\x74\x5f\x73\x68\x73\x20\x64\x65\x69\x6e\x69\x74\x20\x25\x73\x20\x67\x6f\x69\x6e\x67\x20\x64\x6f\x77\x6e\x20" +,dev->name);RCU_INIT_POINTER(rmnet_shs_skb_entry,NULL); +qmi_rmnet_ps_ind_deregister(DATARMNETecc0627c70.port,&DATARMNETecc0627c70. +rmnet_idl_ind_cb);DATARMNETeacad8334e();DATARMNET9f4bc49c6f=DATARMNET02cdd9b125( +);DATARMNETf7dcab9a9e();DATARMNET9297340f58(DATARMNET9f4bc49c6f); +trace_rmnet_shs_high(DATARMNET1790979ccf,DATARMNET443dab7031,(0x16e8+787-0xc0c), +(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),NULL,NULL);}break;case +NETDEV_REGISTER:DATARMNET2cb9ae589c++;if(DATARMNET2cb9ae589c&&! +DATARMNETecc0627c70.DATARMNETfc89d842ae){pr_info( +"\x72\x6d\x6e\x65\x74\x5f\x73\x68\x73\x20\x69\x6e\x69\x74\x69\x61\x6c\x69\x7a\x69\x6e\x67\x20\x25\x73" +,dev->name);priv=netdev_priv(dev);port=rmnet_get_port(priv->real_dev);if(!port){ +pr_err( +"\x72\x6d\x6e\x65\x74\x5f\x73\x68\x73\x3a\x20\x69\x6e\x76\x61\x6c\x69\x64\x20\x72\x6d\x6e\x65\x74\x5f\x70\x6f\x72\x74" +);break;}DATARMNET45d8cdb224(priv->real_dev,dev);DATARMNET3ae0d614d6(priv-> +real_dev);DATARMNETe1f95274f1();DATARMNETecc0627c70.DATARMNETf5ab31b9b0= +(0xd26+209-0xdf6);}DATARMNET7492293980(dev);break;case NETDEV_UP:if(! +DATARMNETecc0627c70.DATARMNET9c869c1ec2&&DATARMNETecc0627c70.DATARMNETfc89d842ae +){port=DATARMNETecc0627c70.port;if(!port){pr_err( +"\x72\x6d\x6e\x65\x74\x5f\x73\x68\x73\x3a\x20\x69\x6e\x76\x61\x6c\x69\x64\x20\x72\x6d\x6e\x65\x74\x5f\x63\x66\x67\x5f\x70\x6f\x72\x74" +);break;}DATARMNETecc0627c70.DATARMNET08dbb5ab35.priority=RMNET_SHS;if(port-> +data_format&RMNET_INGRESS_FORMAT_DL_MARKER_V2){DATARMNETecc0627c70. +DATARMNET08dbb5ab35.dl_hdr_handler_v2=&DATARMNET78bb6be330;DATARMNETecc0627c70. +DATARMNET08dbb5ab35.dl_trl_handler_v2=&DATARMNETf61cd23b90;}DATARMNETecc0627c70. +rmnet_idl_ind_cb.ps_on_handler=&DATARMNET7f1d9480cb;DATARMNETecc0627c70. +rmnet_idl_ind_cb.ps_off_handler=&DATARMNETa4bd2ef52c;ret= +rmnet_map_dl_ind_register(port,&DATARMNETecc0627c70.DATARMNET08dbb5ab35);if(ret) +pr_err( +"\x25\x73\x28\x29\x3a\x20\x72\x6d\x6e\x65\x74\x20\x64\x6c\x5f\x69\x6e\x64\x20\x72\x65\x67\x69\x73\x74\x72\x61\x74\x69\x6f\x6e\x20\x66\x61\x69\x6c" "\n" +,__func__);ret=qmi_rmnet_ps_ind_register(port,&DATARMNETecc0627c70. +rmnet_idl_ind_cb);if(ret)pr_err( +"\x25\x73\x28\x29\x3a\x20\x72\x6d\x6e\x65\x74\x20\x70\x73\x5f\x69\x6e\x64\x20\x72\x65\x67\x69\x73\x74\x72\x61\x74\x69\x6f\x6e\x20\x66\x61\x69\x6c" "\n" +,__func__);DATARMNETe46c480d71();DATARMNET0a6fb12cb2();DATARMNETecc0627c70. +DATARMNET9c869c1ec2=(0xd26+209-0xdf6);trace_rmnet_shs_high(DATARMNET1790979ccf, +DATARMNET443dab7031,(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),(0x16e8+787-0xc0c), +(0x16e8+787-0xc0c),NULL,NULL);RCU_INIT_POINTER(rmnet_shs_skb_entry, +DATARMNET756778f14f);}break;default:break;}return NOTIFY_DONE;}module_init( +DATARMNET163e93649e);module_exit(DATARMNETf3298dab6f); diff --git a/shs/rmnet_shs_config.h b/shs/rmnet_shs_config.h new file mode 100644 index 000000000000..ac99913202f5 --- /dev/null +++ b/shs/rmnet_shs_config.h @@ -0,0 +1,26 @@ +/* Copyright (c) 2018-2020 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 + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + */ + +#include +#include +#include +#ifndef DATARMNET104309e08f +#define DATARMNET104309e08f +#define DATARMNETadb2d068fe (0xd26+209-0xdf6) +#define DATARMNET8120d41372 (0xd1f+216-0xdf5) +#define DATARMNET47c2367f93 (0xd18+223-0xdf4) +extern struct DATARMNETa6b20d7e8b DATARMNETecc0627c70;extern int +rmnet_is_real_dev_registered(const struct net_device*real_dev);int __init +DATARMNET163e93649e(void);void __exit DATARMNETf3298dab6f(void); +#endif + diff --git a/shs/rmnet_shs_freq.c b/shs/rmnet_shs_freq.c new file mode 100644 index 000000000000..d4bcf80c3686 --- /dev/null +++ b/shs/rmnet_shs_freq.c @@ -0,0 +1,66 @@ +/* Copyright (c) 2020 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 + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + */ + +#include +#include "rmnet_shs.h" +#include "rmnet_shs_freq.h" +#include +#include +#define DATARMNET81fe789d21 INT_MAX +#define DATARMNET3e06a1e794 (0xd2d+202-0xdf7) +#define DATARMNET59b491fbc9 DATARMNET81fe789d21 +struct DATARMNET66fa8c4c30{unsigned int DATARMNET103c8d34fe;unsigned int +DATARMNET1159aa2cb6;};unsigned int DATARMNET666c9ff35e __read_mostly= +(0xd26+209-0xdf6);module_param(DATARMNET666c9ff35e,uint,(0xdb7+6665-0x261c)); +MODULE_PARM_DESC(DATARMNET666c9ff35e, +"\x45\x6e\x61\x62\x6c\x65\x2f\x64\x69\x73\x61\x62\x6c\x65\x20\x66\x72\x65\x71\x20\x62\x6f\x6f\x73\x74\x20\x66\x65\x61\x74\x75\x72\x65" +);struct workqueue_struct*DATARMNETde8f350999;struct DATARMNET4e6b0cd2b8{struct +DATARMNET66fa8c4c30 __percpu*DATARMNET9dd9bc4abb;};static struct +DATARMNET4e6b0cd2b8 DATARMNETc4b1be7898;static struct work_struct +DATARMNETbfcbb4b8ac;static int DATARMNETb1e8f00240(struct notifier_block* +DATARMNET272c159b3c,unsigned long val,void*data){return NOTIFY_OK;}static struct + notifier_block DATARMNET50781dba43={.notifier_call=DATARMNETb1e8f00240,};static + void DATARMNET13c1a83eb3(struct work_struct*DATARMNET33110a3ff5){unsigned int i +;get_online_cpus();for_each_online_cpu(i){cpufreq_update_policy(i);} +put_online_cpus();}void DATARMNET82d7f4ffa2(void){struct DATARMNET66fa8c4c30* +DATARMNETe24d518157;int i;for_each_possible_cpu(i){DATARMNETe24d518157= +per_cpu_ptr(DATARMNETc4b1be7898.DATARMNET9dd9bc4abb,i);DATARMNETe24d518157-> +DATARMNET103c8d34fe=DATARMNET3e06a1e794;DATARMNETe24d518157->DATARMNET1159aa2cb6 +=DATARMNET81fe789d21;}}void DATARMNETfb7007f025(void){struct DATARMNET66fa8c4c30 +*DATARMNETe24d518157;int i;for_each_possible_cpu(i){if(((0xd26+209-0xdf6)<DATARMNET103c8d34fe= +DATARMNET59b491fbc9;DATARMNETe24d518157->DATARMNET1159aa2cb6=DATARMNET81fe789d21 +;trace_rmnet_freq_boost(i,DATARMNETe24d518157->DATARMNET103c8d34fe);}if( +work_pending(&DATARMNETbfcbb4b8ac))return;if(DATARMNETde8f350999)queue_work( +DATARMNETde8f350999,&DATARMNETbfcbb4b8ac);}void DATARMNET371703c28d(void){struct + DATARMNET66fa8c4c30*DATARMNETe24d518157;int i;for_each_possible_cpu(i){if(( +(0xd26+209-0xdf6)< +DATARMNET103c8d34fe=DATARMNET3e06a1e794;DATARMNETe24d518157->DATARMNET1159aa2cb6 +=DATARMNET81fe789d21;trace_rmnet_freq_reset(i,DATARMNETe24d518157-> +DATARMNET103c8d34fe);}if(work_pending(&DATARMNETbfcbb4b8ac))return;if( +DATARMNETde8f350999)queue_work(DATARMNETde8f350999,&DATARMNETbfcbb4b8ac);}int +DATARMNETe6e8431304(void){DATARMNETc4b1be7898.DATARMNET9dd9bc4abb=alloc_percpu( +struct DATARMNET66fa8c4c30);if(!DATARMNETc4b1be7898.DATARMNET9dd9bc4abb)return- +ENOMEM;if(!DATARMNETde8f350999)DATARMNETde8f350999=alloc_workqueue( +"\x73\x68\x73\x5f\x62\x6f\x6f\x73\x74\x5f\x77\x71",WQ_HIGHPRI,(0xd2d+202-0xdf7)) +;if(!DATARMNETde8f350999){free_percpu(DATARMNETc4b1be7898.DATARMNET9dd9bc4abb); +return-EFAULT;}INIT_WORK(&DATARMNETbfcbb4b8ac,DATARMNET13c1a83eb3);if( +DATARMNET666c9ff35e)cpufreq_register_notifier(&DATARMNET50781dba43, +CPUFREQ_POLICY_NOTIFIER);DATARMNET82d7f4ffa2();return(0xd2d+202-0xdf7);}int +DATARMNETdf74db7e38(void){DATARMNET82d7f4ffa2();cancel_work_sync(& +DATARMNETbfcbb4b8ac);if(DATARMNETde8f350999){destroy_workqueue( +DATARMNETde8f350999);DATARMNETde8f350999=NULL;}if(DATARMNET666c9ff35e) +cpufreq_unregister_notifier(&DATARMNET50781dba43,CPUFREQ_POLICY_NOTIFIER); +free_percpu(DATARMNETc4b1be7898.DATARMNET9dd9bc4abb);return(0xd2d+202-0xdf7);} diff --git a/shs/rmnet_shs_freq.h b/shs/rmnet_shs_freq.h new file mode 100644 index 000000000000..975d4a35865c --- /dev/null +++ b/shs/rmnet_shs_freq.h @@ -0,0 +1,19 @@ +/* Copyright (c) 2020 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 + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + */ + +#ifndef DATARMNETef19703014 +#define DATARMNETef19703014 +int DATARMNETe6e8431304(void);int DATARMNETdf74db7e38(void);void +DATARMNETfb7007f025(void);void DATARMNET371703c28d(void); +#endif + diff --git a/shs/rmnet_shs_main.c b/shs/rmnet_shs_main.c new file mode 100644 index 000000000000..b697f292e81c --- /dev/null +++ b/shs/rmnet_shs_main.c @@ -0,0 +1,658 @@ +/* Copyright (c) 2018-2020 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 + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include "rmnet_shs.h" +#include "rmnet_shs_config.h" +#include "rmnet_shs_wq.h" +#include "rmnet_shs_modules.h" +#include "rmnet_shs_common.h" +#define DATARMNET2f67183a86 2000000 +#define DATARMNET68fc0be252 1000000 +#define DATARMNETd391fbd694 (0xd2d+202-0xdf7) +#define DATARMNETae2e980d66 (0xd11+230-0xdf3) +#define DATARMNET249a927510 (0xd27+224-0xdfd) +#define DATARMNET904145ccb9 (0xd11+230-0xdf3) +#define DATARMNETb91aee91fd -(0xd26+209-0xdf6) +#define DATARMNET00d5787aad 2000000 +#define DATARMNET8948dc953d (0xd0a+237-0xdf2) +#define DATARMNET20dc6bb36b (0xd26+209-0xdf6) +#define DATARMNET3de2536baf(CPU) (per_cpu(softnet_data, CPU).input_pkt_queue) +#define DATARMNET832731a933(CPU) (per_cpu(softnet_data, CPU).process_queue) +#define DATARMNET78ec5e8746(DATARMNETfbfdc7f27e, CPU) (per_cpu(\ +DATARMNETfbfdc7f27e, CPU).input_queue_tail) +#define DATARMNET9c1c20df35(DATARMNETfbfdc7f27e, CPU) (per_cpu(\ +DATARMNETfbfdc7f27e, CPU).input_queue_head) +#define DATARMNETba5ea4329f(CPU) DATARMNETecc0627c70.DATARMNET132b9c7dc4[CPU].\ +DATARMNET758a55f103 +#define DATARMNETec970d7090 (0xd26+209-0xdf6) +#define DATARMNET8fadb49f38 (0xd2d+202-0xdf7) +#define DATARMNET48a89fcc16 (0xd26+209-0xdf6) +#define DATARMNETbfe901fc62 (0xd2d+202-0xdf7) +DEFINE_SPINLOCK(DATARMNET3764d083f0);DEFINE_HASHTABLE(DATARMNETe603c3a4b3, +DATARMNET25437d35fd);struct DATARMNETe600c5b727 DATARMNET0997c5650d[ +DATARMNETc6782fed88];int DATARMNETcff375d916[DATARMNETc6782fed88];struct +DATARMNETa6b20d7e8b DATARMNETecc0627c70;struct DATARMNET37ef896af8 shs_rx_work; +int DATARMNET9303cec796(struct sk_buff*skb){int DATARMNETbd864aa442= +(0xd2d+202-0xdf7);struct iphdr*ip4h;struct ipv6hdr*ip6h;if(!skb_is_nonlinear(skb +)){switch(skb->protocol){case htons(ETH_P_IP):if(!ip_is_fragment(ip_hdr(skb))&&( +(ip_hdr(skb)->protocol==IPPROTO_TCP)||(ip_hdr(skb)->protocol==IPPROTO_UDP))){ +DATARMNETbd864aa442=(0xd26+209-0xdf6);break;}if(ip_hdr(skb)->protocol== +IPPROTO_ICMP){skb->hash=(0xd2d+202-0xdf7);skb->sw_hash=(0xd26+209-0xdf6);}break; +case htons(ETH_P_IPV6):if(!(ipv6_hdr(skb)->nexthdr==NEXTHDR_FRAGMENT)&&(( +ipv6_hdr(skb)->nexthdr==IPPROTO_TCP)||(ipv6_hdr(skb)->nexthdr==IPPROTO_UDP))){ +DATARMNETbd864aa442=(0xd26+209-0xdf6);break;}if(ipv6_hdr(skb)->nexthdr== +IPPROTO_ICMP){skb->hash=(0xd2d+202-0xdf7);skb->sw_hash=(0xd26+209-0xdf6);}break; +default:break;}}else{switch(skb->protocol){case htons(ETH_P_IP):ip4h=(struct +iphdr*)rmnet_map_data_ptr(skb);if(!(ntohs(ip4h->frag_off)&IP_MF)&&((ntohs(ip4h-> +frag_off)&IP_OFFSET)==(0xd2d+202-0xdf7))&&(ip4h->protocol==IPPROTO_TCP||ip4h-> +protocol==IPPROTO_UDP)){DATARMNETbd864aa442=(0xd26+209-0xdf6);break;}if(ip4h-> +protocol==IPPROTO_ICMP){skb->hash=(0xd2d+202-0xdf7);skb->sw_hash= +(0xd26+209-0xdf6);}break;case htons(ETH_P_IPV6):ip6h=(struct ipv6hdr*) +rmnet_map_data_ptr(skb);if(!(ip6h->nexthdr==NEXTHDR_FRAGMENT)&&((ip6h->nexthdr== +IPPROTO_TCP)||(ip6h->nexthdr==IPPROTO_UDP))){DATARMNETbd864aa442= +(0xd26+209-0xdf6);break;}if(ip6h->nexthdr==IPPROTO_ICMP){skb->hash= +(0xd2d+202-0xdf7);skb->sw_hash=(0xd26+209-0xdf6);}break;default:break;}} +DATARMNETda96251102(DATARMNETcd24fca747,DATARMNET116c96c236,DATARMNETbd864aa442, +(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),skb,NULL);return +DATARMNETbd864aa442;}static void DATARMNETfa919d00dc(int cpu,int +DATARMNET8a461bad56){struct timespec DATARMNET2e47295bf1;struct timespec* +DATARMNET736ac5582e;long DATARMNETb64270afc1;int DATARMNETa67155ba38=( +DATARMNETa1ac2608b5tv_sec)+ +DATARMNET2e47295bf1.tv_nsec-DATARMNET736ac5582e->tv_nsec;if(DATARMNETb64270afc1 +>=DATARMNETa67155ba38*DATARMNET68fc0be252){if(DATARMNETecc0627c70. +DATARMNET132b9c7dc4[cpu].DATARMNETe61d62310f>DATARMNETd75e474598[cpu]) +DATARMNETd75e474598[cpu]=DATARMNETecc0627c70.DATARMNET132b9c7dc4[cpu]. +DATARMNETe61d62310f;DATARMNETecc0627c70.DATARMNET132b9c7dc4[cpu]. +DATARMNET251b97a380.tv_sec=DATARMNET2e47295bf1.tv_sec;DATARMNETecc0627c70. +DATARMNET132b9c7dc4[cpu].DATARMNET251b97a380.tv_nsec=DATARMNET2e47295bf1.tv_nsec +;DATARMNETecc0627c70.DATARMNET132b9c7dc4[cpu].DATARMNETe61d62310f= +DATARMNET8a461bad56;}else{DATARMNETecc0627c70.DATARMNET132b9c7dc4[cpu]. +DATARMNETe61d62310f+=DATARMNET8a461bad56;}}static void DATARMNETe767554e6e( +struct sk_buff*skb){DATARMNETda96251102(DATARMNET6b317c4c73,DATARMNET43225b7a7c, +(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),skb, +NULL);netif_receive_skb(skb);}static void DATARMNET514ce0bf59(struct sk_buff*skb +){struct rmnet_priv*priv;DATARMNETda96251102(DATARMNET6b317c4c73, +DATARMNET43225b7a7c,(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),(0x16e8+787-0xc0c), +(0x16e8+787-0xc0c),skb,NULL);priv=netdev_priv(skb->dev);gro_cells_receive(&priv +->gro_cells,skb);}static struct sk_buff*DATARMNET0e315f0262(struct sk_buff*skb, +u16 DATARMNETf8272cfb41){struct skb_shared_info*shinfo=skb_shinfo(skb);struct +sk_buff*DATARMNET6643e66666,*tmp;u16 gso_size=shinfo->gso_size;u16 gso_segs= +shinfo->gso_segs;if(DATARMNETf8272cfb41>=gso_segs){return NULL;}shinfo->gso_segs +=DIV_ROUND_UP(gso_segs,DATARMNETf8272cfb41);shinfo->gso_size=gso_size* +DATARMNETf8272cfb41;DATARMNET6643e66666=__skb_gso_segment(skb,NETIF_F_SG,false); +if(unlikely(IS_ERR_OR_NULL(DATARMNET6643e66666))){shinfo->gso_size=gso_size; +shinfo->gso_segs=gso_segs;return NULL;}for(tmp=DATARMNET6643e66666;tmp;tmp=tmp-> +next){struct skb_shared_info*DATARMNETa7dac37e66=skb_shinfo(tmp); +DATARMNETa7dac37e66->gso_size=gso_size;if(gso_segs>=DATARMNETf8272cfb41) +DATARMNETa7dac37e66->gso_segs=DATARMNETf8272cfb41;else DATARMNETa7dac37e66-> +gso_segs=gso_segs;gso_segs-=DATARMNETf8272cfb41;}return DATARMNET6643e66666;} +static void DATARMNET21243b86ae(struct sk_buff*DATARMNETe08e18123e,u8 +DATARMNETf345c1d909,u16 DATARMNET87636d0152){struct sk_buff*skb=NULL;struct +sk_buff*DATARMNETcebafc57a4=NULL;struct sk_buff*DATARMNET39bcb0d197=NULL;int +count=(0xd2d+202-0xdf7);DATARMNETda96251102(DATARMNET6b317c4c73, +DATARMNET43225b7a7c,(0xd26+209-0xdf6),(0x16e8+787-0xc0c),(0x16e8+787-0xc0c), +(0x16e8+787-0xc0c),DATARMNETe08e18123e,NULL);DATARMNET39bcb0d197= +DATARMNET0e315f0262(DATARMNETe08e18123e,DATARMNET87636d0152);if( +DATARMNET39bcb0d197==NULL){if(DATARMNETf345c1d909==DATARMNET0b15fd8b54) +netif_receive_skb(DATARMNETe08e18123e);else netif_rx(DATARMNETe08e18123e);return +;}for((skb=DATARMNET39bcb0d197);skb!=NULL;skb=DATARMNETcebafc57a4){ +DATARMNETcebafc57a4=skb->next;skb->hash=DATARMNETe08e18123e->hash;skb->dev= +DATARMNETe08e18123e->dev;skb->next=NULL;if(DATARMNETf345c1d909== +DATARMNET0b15fd8b54)netif_receive_skb(skb);else netif_rx(skb);count+= +(0xd26+209-0xdf6);}consume_skb(DATARMNETe08e18123e);return;}int +DATARMNET2efb1a51c7(struct DATARMNET63d7680df2*node_p){int ret=(0xd2d+202-0xdf7) +;int DATARMNET42c3ecbd5e=(0xd26+209-0xdf6);u16 idx=(0xd2d+202-0xdf7);for(idx= +(0xd2d+202-0xdf7);idxDATARMNET341ea38662 +->DATARMNET1a1d89d417&DATARMNET42c3ecbd5e)ret++;DATARMNET42c3ecbd5e= +DATARMNET42c3ecbd5e<<(0xd26+209-0xdf6);}return ret;}u32 DATARMNET8532ab3089(u32 +index,u32 DATARMNET0258668025,u32 hash){int DATARMNETebbd4cd1d9[ +DATARMNETc6782fed88/(0xd1f+216-0xdf5)]={(0xd35+210-0xdff),(0xd11+230-0xdf3), +(0xd18+223-0xdf4),(0xd1f+216-0xdf5)};u32 ret=(0xd2d+202-0xdf7);if(! +DATARMNET0258668025){DATARMNET68d84e7b98[DATARMNETef8cbfa62f]++;return ret;}if( +DATARMNET0258668025>(0xd26+209-0xdf6)]) +|(hash&1048575);DATARMNETda96251102(DATARMNETf3aaad06eb,DATARMNET4e91ddb48a,ret, +hash,index,DATARMNET0258668025,NULL,NULL);return ret;}int DATARMNET762cfa52fe(u8 + mask){int ret=DATARMNETb91aee91fd;int DATARMNETd416f5b047=DATARMNETb91aee91fd; +u8 DATARMNET05e5e122cd=(0xd2d+202-0xdf7);u8 i;for(i=(0xd2d+202-0xdf7);i< +DATARMNETc6782fed88;i++){if(!(mask&((0xd26+209-0xdf6)<=DATARMNETd82a2ed45e) +DATARMNETf54fdb137b=DATARMNET98b2a0ce62(dev);DATARMNET52de1f3dc0( +DATARMNET720469c0a9,DATARMNET7e63a08ad4,DATARMNETf54fdb137b,DATARMNETab155dfd5d, +(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),NULL,NULL);return DATARMNETf54fdb137b;}int + DATARMNET6af33ebb5b(struct DATARMNET63d7680df2*DATARMNET63b1a086d5){int cpu= +DATARMNETb91aee91fd;if(DATARMNET0997c5650d[DATARMNET63b1a086d5->map_cpu]. +DATARMNETef866573e0&&DATARMNET362b15f941(DATARMNET63b1a086d5->map_cpu)){cpu= +DATARMNET762cfa52fe(DATARMNETbc3c416b77&DATARMNETecc0627c70.map_mask);if(cpu< +(0xd2d+202-0xdf7)&&DATARMNET63b1a086d5->DATARMNET341ea38662!=NULL)cpu= +DATARMNET63b1a086d5->DATARMNET341ea38662->DATARMNET6e1a4eaf09;}else if( +DATARMNET63b1a086d5->DATARMNET341ea38662!=NULL)cpu=DATARMNET63b1a086d5-> +DATARMNET341ea38662->DATARMNET6e1a4eaf09;return cpu;}int DATARMNETb6bff4a724( +struct DATARMNET63d7680df2*DATARMNET63b1a086d5){int cpu,idx=DATARMNETb91aee91fd; +cpu=DATARMNET6af33ebb5b(DATARMNET63b1a086d5);idx=DATARMNET04e8d1b862(cpu, +DATARMNETecc0627c70.map_mask);if(unlikely(idx<(0xd2d+202-0xdf7)))idx= +DATARMNET04e8d1b862(DATARMNET63b1a086d5->map_cpu,DATARMNETecc0627c70.map_mask); +DATARMNETda96251102(DATARMNETf3aaad06eb,DATARMNETf2fc7954d4,DATARMNET63b1a086d5 +->hash,cpu,idx,(0x16e8+787-0xc0c),DATARMNET63b1a086d5,NULL);return idx;}static +int DATARMNET2af09ccd0b(int cpu,int DATARMNET63a222ae1f,int DATARMNETea08087fc0) +{int ret=(0xd2d+202-0xdf7);if(DATARMNETecc0627c70.DATARMNET132b9c7dc4[cpu]. +DATARMNETe61d62310f>=DATARMNET449e126dd3){ret=DATARMNET0efbbe2821;}if( +DATARMNET63a222ae1f&&((DATARMNETeea3cef5b6(cpu)+DATARMNETea08087fc0)>= +DATARMNET35fe073bc2))ret=DATARMNETa4267dfd8a;return ret;}void +DATARMNET349c3a0cab(u16 map_cpu,bool DATARMNETb639f6e1b1){if(map_cpu< +DATARMNETc6782fed88)(DATARMNETb639f6e1b1)?DATARMNETcff375d916[map_cpu]++: +DATARMNETcff375d916[map_cpu]--;else DATARMNET68d84e7b98[DATARMNETcc0ef52ccb]++;} +void DATARMNETb1157fd5c4(u8 DATARMNET42a992465f){if(DATARMNET42a992465f>= +DATARMNETc6782fed88)return;rcu_read_lock();DATARMNET0997c5650d[ +DATARMNET42a992465f].DATARMNETae196235f2=DATARMNET9c1c20df35(softnet_data, +DATARMNET42a992465f);DATARMNET0997c5650d[DATARMNET42a992465f].qtail= +DATARMNET78ec5e8746(softnet_data,DATARMNET42a992465f);rcu_read_unlock(); +DATARMNET0997c5650d[DATARMNET42a992465f].DATARMNET96571b28de=DATARMNET0997c5650d +[DATARMNET42a992465f].qtail-DATARMNET0997c5650d[DATARMNET42a992465f]. +DATARMNETae196235f2;DATARMNETda96251102(DATARMNET75d955c408,DATARMNET5874e1ecd7, +DATARMNET42a992465f,DATARMNET0997c5650d[DATARMNET42a992465f].DATARMNETae196235f2 +,DATARMNET0997c5650d[DATARMNET42a992465f].qtail,(0x16e8+787-0xc0c),NULL,NULL);} +void DATARMNETe074a09496(void){u8 DATARMNET42a992465f;rcu_read_lock();for( +DATARMNET42a992465f=(0xd2d+202-0xdf7);DATARMNET42a992465fmap_cpu;if(DATARMNET5c4a331b9c< +(0xd2d+202-0xdf7)){DATARMNET63b1a086d5->DATARMNET6250e93187=(0xd2d+202-0xdf7); +ret=(0xd26+209-0xdf6);break;}DATARMNET63b1a086d5->DATARMNET6250e93187= +(0xd26+209-0xdf6);if(!map){DATARMNET63b1a086d5->DATARMNET6250e93187= +(0xd2d+202-0xdf7);ret=(0xd26+209-0xdf6);break;}if(DATARMNET5c4a331b9c== +DATARMNET63b1a086d5->map_index){ret=(0xd26+209-0xdf6);break;}DATARMNETd3673fd5f0 +=DATARMNETadb0248bd4(DATARMNET63b1a086d5->map_cpu);DATARMNET9bbfe49633= +DATARMNET63b1a086d5->queue_head;DATARMNET42a992465f=DATARMNET63b1a086d5->map_cpu +;if((DATARMNETd3673fd5f0>=DATARMNET9bbfe49633)||(DATARMNETd87669e323)){if( +DATARMNETa7909611da){DATARMNETcfb5dc7296=DATARMNETaef946bb68(DATARMNET5c4a331b9c +,DATARMNETecc0627c70.map_mask);if(DATARMNETcfb5dc7296<(0xd2d+202-0xdf7)){ret= +(0xd26+209-0xdf6);break;}DATARMNET0997c5650d[DATARMNETcfb5dc7296]. +DATARMNET4133fc9428+=DATARMNET63b1a086d5->DATARMNETae4b27456e. +DATARMNET6215127f48;DATARMNET0997c5650d[DATARMNET63b1a086d5->map_cpu]. +DATARMNET4133fc9428-=DATARMNET63b1a086d5->DATARMNETae4b27456e. +DATARMNET6215127f48;DATARMNET63b1a086d5->map_index=DATARMNET5c4a331b9c; +DATARMNET63b1a086d5->map_cpu=DATARMNETcfb5dc7296;DATARMNET8ceb7a8cc9= +DATARMNET63b1a086d5->map_cpu;if(DATARMNETd3673fd5f0DATARMNET341ea38662->DATARMNET6e1a4eaf09= +DATARMNET8ceb7a8cc9;DATARMNET0997c5650d[DATARMNET8ceb7a8cc9].DATARMNET1e1f197118 +=(0xd26+209-0xdf6);DATARMNETb7ddf3c5dd[DATARMNETc3bce05be2]++;}else{ +DATARMNETb7ddf3c5dd[DATARMNET14067f0be4]++;}DATARMNET373e474754=& +DATARMNET0997c5650d[DATARMNET63b1a086d5->map_cpu];DATARMNETe074a09496(); +DATARMNET63b1a086d5->queue_head=DATARMNET373e474754->DATARMNETae196235f2; +DATARMNETe102b3a798(DATARMNET63b1a086d5,&DATARMNET373e474754-> +DATARMNET3dc4262f53,DATARMNET42a992465f);DATARMNET52de1f3dc0(DATARMNET4510abc30d +,DATARMNET052f49b190,DATARMNET63b1a086d5->map_cpu,DATARMNET5a2e9192f9, +(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),DATARMNET63b1a086d5,NULL);}ret= +(0xd26+209-0xdf6);}}while((0xd2d+202-0xdf7));DATARMNETda96251102( +DATARMNET4510abc30d,DATARMNET23b8465daf,ret,DATARMNET63b1a086d5->map_cpu, +DATARMNET5a2e9192f9,(0x16e8+787-0xc0c),DATARMNET63b1a086d5,NULL);return ret;} +void DATARMNETfbc06e60f1(u8 DATARMNET42a992465f){struct DATARMNET63d7680df2* +DATARMNET3f85732c70;struct list_head*DATARMNET7b34b7b5be,*next;unsigned long +ht_flags;u32 DATARMNET61ab18a4bd;u32 DATARMNETed7800fc72=(0xd2d+202-0xdf7);u32 +DATARMNETa0df5de99d=(0xd2d+202-0xdf7);u32 DATARMNET8bf94cc2f7=(0xd2d+202-0xdf7); +u32 DATARMNET76192fa639=(0xd2d+202-0xdf7);DATARMNETe074a09496(); +DATARMNET52de1f3dc0(DATARMNET4510abc30d,DATARMNETde91850c28,DATARMNETecc0627c70. +DATARMNETa2e32cdd3a,DATARMNETecc0627c70.DATARMNETc252a1f55d,(0x16e8+787-0xc0c), +(0x16e8+787-0xc0c),NULL,NULL);local_bh_disable();spin_lock_irqsave(& +DATARMNET3764d083f0,ht_flags);DATARMNET61ab18a4bd=DATARMNETeb3978575d( +DATARMNET42a992465f);list_for_each_safe(DATARMNET7b34b7b5be,next,& +DATARMNET0997c5650d[DATARMNET42a992465f].DATARMNET3dc4262f53){ +DATARMNET3f85732c70=list_entry(DATARMNET7b34b7b5be,struct DATARMNET63d7680df2, +DATARMNET04c88b8191);if(DATARMNET3f85732c70!=NULL&&DATARMNET3f85732c70-> +DATARMNETae4b27456e.DATARMNET6215127f48){DATARMNETed7800fc72=DATARMNET3f85732c70 +->DATARMNETae4b27456e.DATARMNET6215127f48;DATARMNETa0df5de99d= +DATARMNET3f85732c70->DATARMNETae4b27456e.DATARMNETbaa5765693;DATARMNETe02152c351 +(DATARMNET3f85732c70,(0xd26+209-0xdf6),DATARMNET5b5927fd7e);DATARMNET8bf94cc2f7 ++=DATARMNETed7800fc72;DATARMNET76192fa639+=DATARMNETa0df5de99d;if( +DATARMNET3f85732c70->map_cpu==DATARMNET42a992465f){DATARMNET61ab18a4bd+= +DATARMNETed7800fc72;DATARMNET3f85732c70->queue_head=DATARMNET61ab18a4bd;}}} +DATARMNETecc0627c70.DATARMNETc252a1f55d-=DATARMNET76192fa639;DATARMNETecc0627c70 +.DATARMNETa2e32cdd3a-=DATARMNET8bf94cc2f7;DATARMNET0997c5650d[ +DATARMNET42a992465f].DATARMNETef866573e0=(0xd2d+202-0xdf7);DATARMNETecc0627c70. +DATARMNET132b9c7dc4[DATARMNET42a992465f].DATARMNETe61d62310f=(0xd2d+202-0xdf7); +DATARMNET0997c5650d[DATARMNET42a992465f].DATARMNET4133fc9428=(0xd2d+202-0xdf7); +spin_unlock_irqrestore(&DATARMNET3764d083f0,ht_flags);local_bh_enable(); +DATARMNET52de1f3dc0(DATARMNET4510abc30d,DATARMNET576793621a,DATARMNETecc0627c70. +DATARMNETa2e32cdd3a,DATARMNETecc0627c70.DATARMNETc252a1f55d,DATARMNET8bf94cc2f7, +DATARMNET76192fa639,NULL,NULL);}static void DATARMNET056c939591(struct +work_struct*DATARMNET33110a3ff5){struct DATARMNETa6f2d499b2*DATARMNET4b39dc1574= +container_of(DATARMNET33110a3ff5,struct DATARMNETa6f2d499b2,DATARMNET33110a3ff5) +;DATARMNETfbc06e60f1(DATARMNET4b39dc1574->DATARMNET42c3ecbd5e); +DATARMNET14ed771dfb[DATARMNETbb5757569c]++;}void DATARMNETcba2f7f7b6(struct +DATARMNET63d7680df2*DATARMNET63b1a086d5,u8 DATARMNETf345c1d909){struct sk_buff* +skb=NULL;struct sk_buff*DATARMNETcebafc57a4=NULL;u32 DATARMNETe20a9cab2b= +(0xd2d+202-0xdf7);u32 DATARMNETb481d13a78=(0xd2d+202-0xdf7);u32 +DATARMNET1fcbf046ec=(0xd2d+202-0xdf7);u8 map=(0xd2d+202-0xdf7), +DATARMNET0258668025=(0xd2d+202-0xdf7);u16 DATARMNET87636d0152=(0xd2d+202-0xdf7); +if(!DATARMNET63b1a086d5->DATARMNETae4b27456e.head)return;map=DATARMNETecc0627c70 +.map_mask;DATARMNET0258668025=DATARMNETecc0627c70.map_len;if(map){ +DATARMNET1fcbf046ec=DATARMNET8532ab3089(DATARMNET63b1a086d5->map_index, +DATARMNET0258668025,DATARMNET63b1a086d5->DATARMNETae4b27456e.head->hash);}else{ +DATARMNET63b1a086d5->DATARMNET6250e93187=(0xd2d+202-0xdf7);}DATARMNET52de1f3dc0( +DATARMNET4510abc30d,DATARMNETe4ee0d2636,DATARMNET63b1a086d5->hash, +DATARMNET1fcbf046ec,DATARMNET63b1a086d5->DATARMNETae4b27456e.DATARMNET6215127f48 +,DATARMNET63b1a086d5->DATARMNETae4b27456e.DATARMNETbaa5765693, +DATARMNET63b1a086d5,DATARMNET63b1a086d5->DATARMNETae4b27456e.head); +DATARMNET87636d0152=(u16)DATARMNET63b1a086d5->DATARMNET341ea38662-> +DATARMNET87636d0152;for((skb=DATARMNET63b1a086d5->DATARMNETae4b27456e.head);skb +!=NULL;skb=DATARMNETcebafc57a4){DATARMNETcebafc57a4=skb->next;if( +DATARMNET63b1a086d5->DATARMNET6250e93187)skb->hash=DATARMNET1fcbf046ec;skb->next +=NULL;DATARMNETe20a9cab2b+=(0xd26+209-0xdf6);DATARMNETb481d13a78+=skb->len;if( +DATARMNET87636d0152>(0xd2d+202-0xdf7)){if(DATARMNET63b1a086d5-> +DATARMNET1e9d25d9ff==IPPROTO_UDP)DATARMNET68d84e7b98[DATARMNETdd6bf3de6b]++; +DATARMNET21243b86ae(skb,DATARMNETf345c1d909,DATARMNET87636d0152);}else{if( +DATARMNETf345c1d909==DATARMNET0b15fd8b54)DATARMNETe767554e6e(skb);else +DATARMNET514ce0bf59(skb);}}DATARMNET63b1a086d5->DATARMNETae4b27456e. +DATARMNET6215127f48=(0xd2d+202-0xdf7);DATARMNET63b1a086d5->DATARMNETae4b27456e. +DATARMNETbaa5765693=(0xd2d+202-0xdf7);DATARMNET63b1a086d5->DATARMNETae4b27456e. +head=NULL;DATARMNET63b1a086d5->DATARMNETae4b27456e.tail=NULL;DATARMNET52de1f3dc0 +(DATARMNET4510abc30d,DATARMNETfb753e521e,DATARMNET63b1a086d5->hash, +DATARMNET1fcbf046ec,DATARMNETe20a9cab2b,DATARMNETb481d13a78,DATARMNET63b1a086d5, +NULL);}void DATARMNET23c7ddd780(struct DATARMNET63d7680df2*DATARMNET63b1a086d5, +u8 DATARMNET5447204733){struct sk_buff*skb;struct sk_buff*DATARMNETcebafc57a4= +NULL;u32 DATARMNETe20a9cab2b=(0xd2d+202-0xdf7);u32 DATARMNETb481d13a78= +(0xd2d+202-0xdf7);u32 DATARMNET1fcbf046ec;u8 map,DATARMNET0258668025;if(! +DATARMNET63b1a086d5->DATARMNETae4b27456e.head)return;map=DATARMNETecc0627c70. +map_mask;DATARMNET0258668025=DATARMNETecc0627c70.map_len;if(map){ +DATARMNET1fcbf046ec=DATARMNET8532ab3089(DATARMNET63b1a086d5->map_index, +DATARMNET0258668025,DATARMNET63b1a086d5->DATARMNETae4b27456e.head->hash);}else{ +DATARMNET63b1a086d5->DATARMNET6250e93187=(0xd2d+202-0xdf7);}for((skb= +DATARMNET63b1a086d5->DATARMNETae4b27456e.head);skb!=NULL;skb=DATARMNETcebafc57a4 +){DATARMNETcebafc57a4=skb->next;if(DATARMNET63b1a086d5->DATARMNET6250e93187)skb +->hash=DATARMNET1fcbf046ec;skb->next=NULL;DATARMNETe20a9cab2b+=(0xd26+209-0xdf6) +;DATARMNETb481d13a78+=skb->len;if(DATARMNET5447204733==DATARMNET0b15fd8b54) +DATARMNETe767554e6e(skb);else DATARMNET514ce0bf59(skb);}DATARMNET68d84e7b98[ +DATARMNET72db8b9bac]++;DATARMNETecc0627c70.DATARMNETc252a1f55d-= +DATARMNETb481d13a78;DATARMNETecc0627c70.DATARMNETa2e32cdd3a-=DATARMNETe20a9cab2b +;DATARMNET0997c5650d[DATARMNET63b1a086d5->map_cpu].DATARMNET4133fc9428-= +DATARMNETe20a9cab2b;}int DATARMNETe02152c351(struct DATARMNET63d7680df2* +DATARMNET63b1a086d5,u8 DATARMNETd87669e323,u8 DATARMNET5447204733){int +DATARMNETbd864aa442=(0xd2d+202-0xdf7);int map=DATARMNETecc0627c70.map_mask;int +DATARMNET5643f7b5e9;DATARMNET52de1f3dc0(DATARMNET4510abc30d,DATARMNET022082b219, +DATARMNETd87669e323,DATARMNET5447204733,(0x16e8+787-0xc0c),(0x16e8+787-0xc0c), +DATARMNET63b1a086d5,NULL);if(DATARMNETaef946bb68(DATARMNET63b1a086d5->map_index, +map)!=DATARMNET63b1a086d5->map_cpu){DATARMNET5643f7b5e9=DATARMNET04e8d1b862( +DATARMNET63b1a086d5->map_cpu,map);if(DATARMNET5643f7b5e9>=(0xd2d+202-0xdf7)){ +DATARMNET63b1a086d5->map_index=DATARMNET5643f7b5e9;DATARMNET63b1a086d5->map_cpu= +DATARMNETaef946bb68(DATARMNET5643f7b5e9,map);}else{DATARMNET63b1a086d5-> +map_index=DATARMNET2edff26954;DATARMNET63b1a086d5->map_cpu=DATARMNETaef946bb68( +DATARMNET2edff26954,map);if(DATARMNET63b1a086d5->map_cpu<(0xd2d+202-0xdf7)) +DATARMNET63b1a086d5->map_cpu=DATARMNET2edff26954;}DATARMNETd87669e323= +(0xd26+209-0xdf6);DATARMNET68d84e7b98[DATARMNETa1f9420686]++;DATARMNET015fb2ba0e +(DATARMNET720469c0a9,DATARMNET998c6de143,(0x16e8+787-0xc0c),(0x16e8+787-0xc0c), +(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),NULL,NULL);}if(DATARMNETe488c1c396( +DATARMNET63b1a086d5,DATARMNETd87669e323)){DATARMNETcba2f7f7b6( +DATARMNET63b1a086d5,DATARMNET5447204733);DATARMNETbd864aa442=(0xd26+209-0xdf6);} +DATARMNET52de1f3dc0(DATARMNET4510abc30d,DATARMNET64b02f64c6,DATARMNETbd864aa442, +DATARMNETd87669e323,(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),DATARMNET63b1a086d5, +NULL);return DATARMNETbd864aa442;}static void DATARMNETc54e431bbc(u8 +DATARMNET42a992465f,u8 DATARMNET7845d39672,u32 DATARMNETea08087fc0){u32 +DATARMNETba6017a3a9=(!DATARMNET227d2ff866)?(0xd26+209-0xdf6):DATARMNET227d2ff866 +;int DATARMNETd9d8392917;if((DATARMNETd9d8392917=DATARMNET2af09ccd0b( +DATARMNET42a992465f,DATARMNET7845d39672,DATARMNETea08087fc0))&& +DATARMNET362b15f941(DATARMNET42a992465f)&&!DATARMNET0997c5650d[ +DATARMNET42a992465f].DATARMNETef866573e0){DATARMNETba6017a3a9=(! +DATARMNET7845d39672)?DATARMNET249a927510:DATARMNETba6017a3a9;DATARMNET0997c5650d +[DATARMNET42a992465f].DATARMNETef866573e0=(0xd26+209-0xdf6);DATARMNETfb7007f025( +);if(hrtimer_active(&DATARMNETba5ea4329f(DATARMNET42a992465f)))hrtimer_cancel(& +DATARMNETba5ea4329f(DATARMNET42a992465f));hrtimer_start(&DATARMNETba5ea4329f( +DATARMNET42a992465f),ns_to_ktime(DATARMNETba6017a3a9*DATARMNET68fc0be252), +HRTIMER_MODE_REL);DATARMNETb7ddf3c5dd[DATARMNETd9d8392917]++;}}void +DATARMNETe377e0368d(u8 DATARMNETded3da1a77,u8 DATARMNET5447204733){struct +DATARMNET63d7680df2*DATARMNET3f85732c70=NULL;struct list_head* +DATARMNET7b34b7b5be=NULL,*next=NULL;int DATARMNET42a992465f;u32 +DATARMNET61ab18a4bd;u32 DATARMNETed7800fc72=(0xd2d+202-0xdf7);u32 +DATARMNETa0df5de99d=(0xd2d+202-0xdf7);u32 DATARMNETe56f4fbbe6=(0xd2d+202-0xdf7); +u32 DATARMNET8bf94cc2f7=(0xd2d+202-0xdf7);u32 DATARMNET76192fa639= +(0xd2d+202-0xdf7);u32 DATARMNET870611bedd=(0xd2d+202-0xdf7);u32 +DATARMNETa6424e3c4e=(0xd2d+202-0xdf7);u8 DATARMNET77e7f4db43=(0xd2d+202-0xdf7); +DATARMNETe074a09496();DATARMNET52de1f3dc0(DATARMNET4510abc30d, +DATARMNETde91850c28,DATARMNETecc0627c70.DATARMNETa2e32cdd3a,DATARMNETecc0627c70. +DATARMNETc252a1f55d,(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),NULL,NULL);for( +DATARMNET42a992465f=(0xd2d+202-0xdf7);DATARMNET42a992465f +DATARMNETae4b27456e.DATARMNET35234676d4;}if(DATARMNET12565c8f98){ +DATARMNETc54e431bbc(DATARMNET42a992465f,DATARMNET20dc6bb36b,DATARMNETe56f4fbbe6) +;}list_for_each_safe(DATARMNET7b34b7b5be,next,&DATARMNET0997c5650d[ +DATARMNET42a992465f].DATARMNET3dc4262f53){DATARMNET3f85732c70=list_entry( +DATARMNET7b34b7b5be,struct DATARMNET63d7680df2,DATARMNET04c88b8191);if( +DATARMNET3f85732c70!=NULL&&DATARMNET3f85732c70->DATARMNETae4b27456e. +DATARMNET6215127f48){DATARMNETed7800fc72=DATARMNET3f85732c70-> +DATARMNETae4b27456e.DATARMNET6215127f48;DATARMNETa0df5de99d=DATARMNET3f85732c70 +->DATARMNETae4b27456e.DATARMNETbaa5765693;DATARMNETa6424e3c4e= +DATARMNET3f85732c70->DATARMNETae4b27456e.DATARMNET35234676d4;DATARMNET77e7f4db43 +=DATARMNETe02152c351(DATARMNET3f85732c70,DATARMNETded3da1a77,DATARMNET5447204733 +);if(DATARMNET77e7f4db43){DATARMNET870611bedd+=DATARMNETa6424e3c4e; +DATARMNET8bf94cc2f7+=DATARMNETed7800fc72;DATARMNET76192fa639+= +DATARMNETa0df5de99d;DATARMNET0997c5650d[DATARMNET3f85732c70->map_cpu]. +DATARMNET4133fc9428-=DATARMNETed7800fc72;DATARMNET3f85732c70-> +DATARMNETae4b27456e.DATARMNET35234676d4=(0xd2d+202-0xdf7);if(DATARMNET3f85732c70 +->map_cpu==DATARMNET42a992465f){DATARMNET61ab18a4bd+=DATARMNETed7800fc72; +DATARMNET3f85732c70->queue_head=DATARMNET61ab18a4bd;}}}}if(DATARMNET12565c8f98){ +if(DATARMNET362b15f941(DATARMNET42a992465f)&&!DATARMNET0997c5650d[ +DATARMNET42a992465f].DATARMNETef866573e0)DATARMNETfa919d00dc(DATARMNET42a992465f +,DATARMNET870611bedd);DATARMNETc54e431bbc(DATARMNET42a992465f, +DATARMNET20dc6bb36b,(0xd2d+202-0xdf7));}if(DATARMNET0997c5650d[ +DATARMNET42a992465f].DATARMNET4133fc9428<(0xd2d+202-0xdf7))DATARMNET68d84e7b98[ +DATARMNET33a9d4759f]++;if(DATARMNETeea3cef5b6(DATARMNET42a992465f)>= +DATARMNET84413d1257[DATARMNET42a992465f])DATARMNET84413d1257[DATARMNET42a992465f +]=DATARMNETeea3cef5b6(DATARMNET42a992465f);}DATARMNETecc0627c70. +DATARMNETc252a1f55d-=DATARMNET76192fa639;DATARMNETecc0627c70.DATARMNETa2e32cdd3a +-=DATARMNET8bf94cc2f7;DATARMNET52de1f3dc0(DATARMNET4510abc30d, +DATARMNET576793621a,DATARMNETecc0627c70.DATARMNETa2e32cdd3a,DATARMNETecc0627c70. +DATARMNETc252a1f55d,DATARMNET8bf94cc2f7,DATARMNET76192fa639,NULL,NULL);if(( +DATARMNETecc0627c70.DATARMNETc252a1f55d<=(0xd2d+202-0xdf7))||( +DATARMNETecc0627c70.DATARMNETa2e32cdd3a<=(0xd2d+202-0xdf7))){DATARMNETecc0627c70 +.DATARMNETc252a1f55d=(0xd2d+202-0xdf7);DATARMNETecc0627c70.DATARMNETa2e32cdd3a= +(0xd2d+202-0xdf7);DATARMNETecc0627c70.DATARMNETd9cfd2812b=(0xd2d+202-0xdf7); +DATARMNETecc0627c70.DATARMNET34097703c8=DATARMNET8dcf06727b;if( +DATARMNET365ddeca1c){if(hrtimer_active(&DATARMNETecc0627c70.DATARMNET6fd692fc7a) +)hrtimer_cancel(&DATARMNETecc0627c70.DATARMNET6fd692fc7a);}}}void +DATARMNETa4bf9fbf64(u8 DATARMNETded3da1a77,u8 DATARMNET5447204733){unsigned long + ht_flags;spin_lock_irqsave(&DATARMNET3764d083f0,ht_flags);DATARMNETe377e0368d( +DATARMNETded3da1a77,DATARMNET5447204733);if(DATARMNET5447204733== +DATARMNET5b5927fd7e){if(DATARMNET365ddeca1c&&DATARMNETecc0627c70. +DATARMNETc252a1f55d&&DATARMNETecc0627c70.DATARMNETa2e32cdd3a){if(hrtimer_active( +&DATARMNETecc0627c70.DATARMNET6fd692fc7a))hrtimer_cancel(&DATARMNETecc0627c70. +DATARMNET6fd692fc7a);hrtimer_start(&DATARMNETecc0627c70.DATARMNET6fd692fc7a, +ns_to_ktime(DATARMNET4ac8af832c*DATARMNET68fc0be252),HRTIMER_MODE_REL);} +DATARMNET14ed771dfb[DATARMNETd45c383019]++;}spin_unlock_irqrestore(& +DATARMNET3764d083f0,ht_flags);}void DATARMNET495dab3d72(struct sk_buff*skb, +struct DATARMNET63d7680df2*DATARMNET63b1a086d5){u8 DATARMNET7d63e92341= +(0xd2d+202-0xdf7);if(skb->cb[DATARMNET8fadb49f38]){DATARMNETe377e0368d( +(0xd2d+202-0xdf7),DATARMNET0b15fd8b54);DATARMNET14ed771dfb[DATARMNETc8058e2cff] +++;DATARMNET7d63e92341=(0xd26+209-0xdf6);}if(skb_shinfo(skb)->gso_segs){ +DATARMNET63b1a086d5->DATARMNET11930c5df8+=skb_shinfo(skb)->gso_segs; +DATARMNET0997c5650d[DATARMNET63b1a086d5->map_cpu].DATARMNET4133fc9428++; +DATARMNET63b1a086d5->DATARMNETae4b27456e.DATARMNET35234676d4+=skb_shinfo(skb)-> +gso_segs;}else{DATARMNET63b1a086d5->DATARMNET11930c5df8+=(0xd26+209-0xdf6); +DATARMNET0997c5650d[DATARMNET63b1a086d5->map_cpu].DATARMNET4133fc9428++; +DATARMNET63b1a086d5->DATARMNETae4b27456e.DATARMNET35234676d4++;} +DATARMNET63b1a086d5->DATARMNETa8940e4a7b+=(0xd26+209-0xdf6);DATARMNET63b1a086d5 +->DATARMNET2594c418db+=skb->len;DATARMNET63b1a086d5->DATARMNETae4b27456e. +DATARMNETbaa5765693+=skb->len;DATARMNETecc0627c70.DATARMNETc252a1f55d+=skb->len; +if(DATARMNET63b1a086d5->DATARMNETae4b27456e.DATARMNET6215127f48> +(0xd2d+202-0xdf7)){DATARMNET63b1a086d5->DATARMNETae4b27456e.tail->next=skb; +DATARMNET63b1a086d5->DATARMNETae4b27456e.tail=DATARMNET63b1a086d5-> +DATARMNETae4b27456e.tail->next;}else{DATARMNET63b1a086d5->DATARMNETae4b27456e. +head=skb;DATARMNET63b1a086d5->DATARMNETae4b27456e.tail=skb;}DATARMNET63b1a086d5 +->DATARMNETae4b27456e.DATARMNET6215127f48+=(0xd26+209-0xdf6);DATARMNETecc0627c70 +.DATARMNETa2e32cdd3a+=(0xd26+209-0xdf6);if(unlikely(DATARMNET7d63e92341)) +DATARMNETe377e0368d((0xd2d+202-0xdf7),DATARMNET0b15fd8b54);DATARMNET52de1f3dc0( +DATARMNET720469c0a9,DATARMNETf5c836f9ae,DATARMNET63b1a086d5->DATARMNETae4b27456e +.DATARMNET6215127f48,DATARMNET63b1a086d5->DATARMNETae4b27456e. +DATARMNETbaa5765693,DATARMNETecc0627c70.DATARMNETa2e32cdd3a,DATARMNETecc0627c70. +DATARMNETc252a1f55d,skb,DATARMNET63b1a086d5);}static void DATARMNETa7afc8cdaa( +struct work_struct*DATARMNET33110a3ff5){u8 DATARMNET665469cfb6=(0xd2d+202-0xdf7) +;DATARMNET52de1f3dc0(DATARMNET4510abc30d,DATARMNET816bb1e327,DATARMNET665469cfb6 +,DATARMNETecc0627c70.DATARMNET34097703c8,(0x16e8+787-0xc0c),(0x16e8+787-0xc0c), +NULL,NULL);if(DATARMNETecc0627c70.DATARMNETa2e32cdd3a&&DATARMNETecc0627c70. +DATARMNET34097703c8==DATARMNETb3e3b2a799){local_bh_disable();DATARMNETa4bf9fbf64 +(DATARMNET665469cfb6,DATARMNET5b5927fd7e);local_bh_enable();}DATARMNET52de1f3dc0 +(DATARMNET4510abc30d,DATARMNETf311f20c00,DATARMNET665469cfb6,(0x16e8+787-0xc0c), +(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),NULL,NULL);}enum hrtimer_restart +DATARMNET0a73c53ae6(struct hrtimer*DATARMNET6e4292679f){enum hrtimer_restart ret +=HRTIMER_NORESTART;DATARMNET52de1f3dc0(DATARMNET4510abc30d,DATARMNET237e7bd5f6, +DATARMNETecc0627c70.DATARMNET34097703c8,(0x16e8+787-0xc0c),(0x16e8+787-0xc0c), +(0x16e8+787-0xc0c),NULL,NULL);if(DATARMNETecc0627c70.DATARMNETa2e32cdd3a> +(0xd2d+202-0xdf7)){if(DATARMNETecc0627c70.DATARMNET34097703c8== +DATARMNET7bc926fdbe){DATARMNETecc0627c70.DATARMNET34097703c8=DATARMNETb3e3b2a799 +;hrtimer_forward(DATARMNET6e4292679f,hrtimer_cb_get_time(DATARMNET6e4292679f), +ns_to_ktime(DATARMNET00d5787aad));ret=HRTIMER_RESTART;DATARMNET52de1f3dc0( +DATARMNET4510abc30d,DATARMNETf16e78412b,DATARMNETecc0627c70.DATARMNETa2e32cdd3a, +(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),NULL,NULL);}else if( +DATARMNETecc0627c70.DATARMNET34097703c8==DATARMNET8dcf06727b){ +DATARMNETecc0627c70.DATARMNET34097703c8=DATARMNET7bc926fdbe;}else if( +DATARMNETecc0627c70.DATARMNET34097703c8==DATARMNETb3e3b2a799){ +DATARMNET52de1f3dc0(DATARMNET4510abc30d,DATARMNET83147a2e7d,DATARMNETecc0627c70. +DATARMNET34097703c8,(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),(0x16e8+787-0xc0c), +NULL,NULL);schedule_work((struct work_struct*)&shs_rx_work);}}return ret;}enum +hrtimer_restart DATARMNET4ce9744605(struct hrtimer*DATARMNET6e4292679f){const +enum hrtimer_restart ret=HRTIMER_NORESTART;struct DATARMNETa6f2d499b2* +DATARMNET4b39dc1574=container_of(DATARMNET6e4292679f,struct DATARMNETa6f2d499b2, +DATARMNET758a55f103);DATARMNET371703c28d();schedule_work(&DATARMNET4b39dc1574-> +DATARMNET33110a3ff5);return ret;}void DATARMNETe1f95274f1(void){int i;for(i= +(0xd2d+202-0xdf7);idev)){ +DATARMNET68d84e7b98[DATARMNETf8de7cb644]++;atomic_long_inc(&skb->dev->rx_dropped +);input_queue_head_incr(DATARMNETe95ad852b4);DATARMNETe95ad852b4->dropped++; +kfree_skb(skb);}}rtnl_unlock();return(0xd2d+202-0xdf7);}static int +DATARMNET2aa4ef6ff9(struct notifier_block*DATARMNETea991f24f2,unsigned long +DATARMNET7ee7b05b93,void*DATARMNETe53e117dd2){int DATARMNETc3193054f2, +DATARMNET25fc1e341e,cpu;int*DATARMNETc628e18b55=(int*)DATARMNETe53e117dd2;struct + sk_buff_head*DATARMNET49115bea94;struct sk_buff_head*DATARMNETaf21dd6000; +for_each_possible_cpu(cpu){DATARMNET49115bea94=&DATARMNET3de2536baf(cpu); +DATARMNETaf21dd6000=&DATARMNET832731a933(cpu);DATARMNETc3193054f2=skb_queue_len( +DATARMNET49115bea94);DATARMNET25fc1e341e=skb_queue_len(DATARMNETaf21dd6000);if( +DATARMNET1ad396a890&&(DATARMNETc3193054f2+DATARMNET25fc1e341e)>= +DATARMNET1ad396a890){DATARMNET82e88dbb56(&per_cpu(softnet_data,cpu). +input_pkt_queue,cpu);DATARMNETc3193054f2=skb_queue_len(DATARMNET49115bea94); +DATARMNET25fc1e341e=skb_queue_len(DATARMNETaf21dd6000);if(DATARMNET25fc1e341e>= +DATARMNET1ad396a890){DATARMNET82e88dbb56(DATARMNET49115bea94,cpu);}(* +DATARMNETc628e18b55)++;}}return(0xd2d+202-0xdf7);}static struct notifier_block +DATARMNET105c85d84c={.notifier_call=DATARMNET2aa4ef6ff9,};void +DATARMNET78bb6be330(struct rmnet_map_dl_ind_hdr*dlhdr,struct +rmnet_map_control_command_header*qcmd){DATARMNET7ed4cef8a3(dlhdr);}void +DATARMNET7ed4cef8a3(struct rmnet_map_dl_ind_hdr*dlhdr){DATARMNETda96251102( +DATARMNET23f8730007,DATARMNET4ebbc01257,dlhdr->le.seq,dlhdr->le.pkts, +(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),NULL,NULL);if(DATARMNETecc0627c70. +DATARMNETa2e32cdd3a>(0xd2d+202-0xdf7)&&DATARMNETecc0627c70.DATARMNET6fe0db3a49!= +DATARMNET4ab5a31d0c){DATARMNET14ed771dfb[DATARMNET01bf75e27c]++; +DATARMNETa4bf9fbf64((0xd2d+202-0xdf7),DATARMNET0b15fd8b54);}DATARMNETecc0627c70. +DATARMNET6fe0db3a49=DATARMNET1c55e5fdb1;}void DATARMNETf61cd23b90(struct +rmnet_map_dl_ind_trl*dltrl,struct rmnet_map_control_command_header*qcmd){ +DATARMNET613a81eca8(dltrl);}void DATARMNET613a81eca8(struct rmnet_map_dl_ind_trl +*dltrl){DATARMNET52de1f3dc0(DATARMNET23f8730007,DATARMNET0808844559, +DATARMNETecc0627c70.DATARMNETa2e32cdd3a,(0xd2d+202-0xdf7),dltrl->seq_le, +(0x16e8+787-0xc0c),NULL,NULL);DATARMNETecc0627c70.DATARMNET6fe0db3a49= +DATARMNET4ab5a31d0c;if(DATARMNETecc0627c70.DATARMNETa2e32cdd3a>(0xd2d+202-0xdf7) +){DATARMNET14ed771dfb[DATARMNET84a9e136b8]++;DATARMNETa4bf9fbf64( +(0xd2d+202-0xdf7),DATARMNET0b15fd8b54);}}void DATARMNET45d8cdb224(struct +net_device*dev,struct net_device*vnd){struct rps_map*map;int rc;u8 +DATARMNET0e4304d903;u8 map_mask;u8 map_len;if(DATARMNETecc0627c70. +DATARMNETfc89d842ae)return;map=rcu_dereference(vnd->_rx->rps_map);if(!map){ +map_mask=(0xd2d+202-0xdf7);map_len=(0xd2d+202-0xdf7);}else{map_mask= +DATARMNET928c931df9(map);map_len=DATARMNET310c3eb16e(map_mask);} +DATARMNETecc0627c70.port=rmnet_get_port(dev);DATARMNETecc0627c70.map_mask= +map_mask;DATARMNETecc0627c70.map_len=map_len;for(DATARMNET0e4304d903= +(0xd2d+202-0xdf7);DATARMNET0e4304d903DATARMNETae4b27456e.head);buf!=NULL;buf=DATARMNET9a788b5480 +){DATARMNET9a788b5480=buf->next;if(buf)consume_skb(buf);}DATARMNET63b1a086d5-> +DATARMNETae4b27456e.DATARMNET6215127f48=(0xd2d+202-0xdf7);DATARMNET63b1a086d5-> +DATARMNETae4b27456e.DATARMNETbaa5765693=(0xd2d+202-0xdf7);DATARMNET63b1a086d5-> +DATARMNETae4b27456e.head=NULL;DATARMNET63b1a086d5->DATARMNETae4b27456e.tail=NULL +;}DATARMNETecc0627c70.DATARMNETc252a1f55d=(0xd2d+202-0xdf7);DATARMNETecc0627c70. +DATARMNETa2e32cdd3a=(0xd2d+202-0xdf7);DATARMNETecc0627c70.DATARMNETd9cfd2812b= +(0xd2d+202-0xdf7);DATARMNETecc0627c70.DATARMNET34097703c8=DATARMNET8dcf06727b; +spin_unlock_irqrestore(&DATARMNET3764d083f0,ht_flags);}void DATARMNET44459105b4( +struct sk_buff*skb,struct DATARMNET63d7680df2*node_p){struct iphdr*ip4h;struct +ipv6hdr*ip6h;struct tcphdr*tp;struct udphdr*up;int len=(0xd2d+202-0xdf7);u16 +ip_len=(0xd2d+202-0xdf7);__be16 frag_off;u8 protocol;node_p->DATARMNETa1099c74fe +=(0xd2d+202-0xdf7);if(!skb_is_nonlinear(skb)){switch(skb->protocol){case htons( +ETH_P_IP):node_p->DATARMNET1e9d25d9ff=ip_hdr(skb)->protocol;memcpy(&(node_p-> +ip_hdr.DATARMNETac9bbaad7c),ip_hdr(skb),sizeof(struct iphdr));ip_len=ip_hdr(skb) +->ihl*(0xd11+230-0xdf3);node_p->DATARMNETa1099c74fe=!(ip_hdr(skb)->frag_off& +htons(IP_DF));break;case htons(ETH_P_IPV6):node_p->DATARMNET1e9d25d9ff=ipv6_hdr( +skb)->nexthdr;memcpy(&(node_p->ip_hdr.DATARMNET1688a97aa4),ip_hdr(skb),sizeof( +struct ipv6hdr));protocol=ipv6_hdr(skb)->nexthdr;len=ipv6_skip_exthdr(skb,sizeof +(*ip6h),&protocol,&frag_off);if(len<(0xd2d+202-0xdf7)){return;}ip_len=(u16)len; +break;default:break;}}else{switch(skb->protocol){case htons(ETH_P_IP):ip4h=( +struct iphdr*)rmnet_map_data_ptr(skb);node_p->DATARMNET1e9d25d9ff=ip4h->protocol +;memcpy(&(node_p->ip_hdr.DATARMNETac9bbaad7c),ip4h,sizeof(struct iphdr));ip_len= +ip4h->ihl*(0xd11+230-0xdf3);node_p->DATARMNETa1099c74fe=!(ip4h->frag_off&htons( +IP_DF));break;case htons(ETH_P_IPV6):ip6h=(struct ipv6hdr*)rmnet_map_data_ptr( +skb);node_p->DATARMNET1e9d25d9ff=ip6h->nexthdr;memcpy(&(node_p->ip_hdr. +DATARMNET1688a97aa4),ip6h,sizeof(struct ipv6hdr));protocol=ipv6_hdr(skb)-> +nexthdr;len=ipv6_skip_exthdr(skb,sizeof(*ip6h),&protocol,&frag_off);if(len< +(0xd2d+202-0xdf7)){return;}ip_len=(u16)len;break;default:break;}}if(node_p-> +DATARMNET1e9d25d9ff==IPPROTO_TCP){if(!skb_is_nonlinear(skb)){tp=(struct tcphdr*) +(skb->data+ip_len);}else{tp=(struct tcphdr*)(rmnet_map_data_ptr(skb)+ip_len);} +memcpy(&(node_p->DATARMNETe33b41dad9.tp),tp,sizeof(struct tcphdr));}else if( +node_p->DATARMNET1e9d25d9ff==IPPROTO_UDP){if(!skb_is_nonlinear(skb)){up=(struct +udphdr*)(skb->data+ip_len);}else{up=(struct udphdr*)(rmnet_map_data_ptr(skb)+ +ip_len);}memcpy(&(node_p->DATARMNETe33b41dad9.up),up,sizeof(struct udphdr));} +else{}}int DATARMNET756778f14f(struct sk_buff*skb,struct rmnet_port*port){struct + DATARMNET63d7680df2*node_p;struct hlist_node*tmp;struct net_device*dev=skb->dev +;int map=DATARMNETecc0627c70.map_mask;unsigned long ht_flags;int +DATARMNETcfb5dc7296;int map_cpu;u64 DATARMNET138d6d02d2=(0xd2d+202-0xdf7);u32 +DATARMNET5c4a331b9c,hash;u8 is_match_found=(0xd2d+202-0xdf7);u8 +DATARMNET935af10724=(0xd2d+202-0xdf7);struct DATARMNETe600c5b727* +DATARMNETa4055affd5;struct rmnet_priv*priv;if(!DATARMNET9303cec796(skb)){ +DATARMNETe767554e6e(skb);return(0xd2d+202-0xdf7);}if((unlikely(!map))||! +DATARMNETecc0627c70.DATARMNETfc89d842ae){DATARMNETe767554e6e(skb); +DATARMNET015fb2ba0e(DATARMNET720469c0a9,DATARMNETe0fee0991a,(0x16e8+787-0xc0c), +(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),NULL,NULL); +DATARMNET68d84e7b98[DATARMNETe3c02ddaeb]++;return(0xd2d+202-0xdf7);} +DATARMNET52de1f3dc0(DATARMNET720469c0a9,DATARMNET856c53293b,(0x16e8+787-0xc0c), +(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),skb,NULL);hash= +skb_get_hash(skb);spin_lock_irqsave(&DATARMNET3764d083f0,ht_flags);do{ +hash_for_each_possible_safe(DATARMNETe603c3a4b3,node_p,tmp,list,hash){if(hash!= +node_p->hash)continue;DATARMNETda96251102(DATARMNET720469c0a9, +DATARMNET08b6defcff,(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),(0x16e8+787-0xc0c), +(0x16e8+787-0xc0c),skb,NULL);DATARMNET5c4a331b9c=node_p->map_index; +DATARMNET495dab3d72(skb,node_p);is_match_found=(0xd26+209-0xdf6); +DATARMNET935af10724=(0xd26+209-0xdf6);break;}if(is_match_found)break; +DATARMNETcfb5dc7296=DATARMNET217fe38119(DATARMNET138d6d02d2,dev);if( +DATARMNETcfb5dc7296<(0xd2d+202-0xdf7)){DATARMNET68d84e7b98[DATARMNETa1f9420686] +++;break;}if(DATARMNETecc0627c70.DATARMNET64bb8a8f57>DATARMNETbfe31ef643){ +DATARMNET68d84e7b98[DATARMNETe6e77f9f03]++;break;}node_p=kzalloc(sizeof(*node_p) +,GFP_ATOMIC);if(!node_p){DATARMNET68d84e7b98[DATARMNET394acaf558]++;break;} +DATARMNETecc0627c70.DATARMNET64bb8a8f57++;node_p->dev=skb->dev;node_p->hash=skb +->hash;node_p->map_cpu=DATARMNETcfb5dc7296;node_p->map_index=DATARMNET04e8d1b862 +(node_p->map_cpu,map);INIT_LIST_HEAD(&node_p->DATARMNET04c88b8191); +DATARMNET44459105b4(skb,node_p);DATARMNET0349051465(node_p->map_cpu); +DATARMNET350f55bfca(node_p);map_cpu=node_p->map_cpu;DATARMNETa4055affd5=& +DATARMNET0997c5650d[map_cpu];priv=netdev_priv(node_p->dev);if(!priv){rm_err( +"\x70\x72\x69\x76\x20\x66\x6f\x72\x20\x6e\x65\x74\x64\x65\x76\x20\x69\x73\x20\x6e\x75\x6c\x6c\x20\x66\x6f\x72\x20\x68\x61\x73\x68\x20\x30\x78\x25\x78" +,node_p->hash);DATARMNET68d84e7b98[DATARMNETf5157a9b85]++;}else{node_p-> +DATARMNET341ea38662->mux_id=priv->mux_id;rm_err( +"\x53\x48\x53\x5f\x4d\x55\x58\x3a\x20\x6d\x75\x78\x20\x69\x64\x20\x66\x6f\x72\x20\x68\x61\x73\x68\x20\x30\x78\x25\x78\x20\x69\x73\x20\x25\x64" +,node_p->hash,node_p->DATARMNET341ea38662->mux_id);}DATARMNET3e37ad2816(node_p,& +DATARMNETa4055affd5->DATARMNET3dc4262f53);hash_add_rcu(DATARMNETe603c3a4b3,& +node_p->list,skb->hash);DATARMNET495dab3d72(skb,node_p);DATARMNET935af10724= +(0xd26+209-0xdf6);break;}while((0xd2d+202-0xdf7));if(!DATARMNET935af10724){ +spin_unlock_irqrestore(&DATARMNET3764d083f0,ht_flags);DATARMNET68d84e7b98[ +DATARMNET99db6e7d86]++;DATARMNETe767554e6e(skb);DATARMNET015fb2ba0e( +DATARMNET720469c0a9,DATARMNETe0fee0991a,(0x16e8+787-0xc0c),(0x16e8+787-0xc0c), +(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),NULL,NULL);return(0xd2d+202-0xdf7);}if(! +DATARMNETecc0627c70.DATARMNETd9cfd2812b&&DATARMNETecc0627c70.DATARMNETa2e32cdd3a +&&DATARMNET365ddeca1c){DATARMNETecc0627c70.DATARMNETd9cfd2812b=(0xd26+209-0xdf6) +;DATARMNETecc0627c70.DATARMNET34097703c8=DATARMNET7bc926fdbe;if(hrtimer_active(& +DATARMNETecc0627c70.DATARMNET6fd692fc7a)){DATARMNETda96251102( +DATARMNET720469c0a9,DATARMNETf730f80f06,DATARMNET2f67183a86,(0x16e8+787-0xc0c), +(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),skb,NULL);hrtimer_cancel(& +DATARMNETecc0627c70.DATARMNET6fd692fc7a);}hrtimer_start(&DATARMNETecc0627c70. +DATARMNET6fd692fc7a,ns_to_ktime(DATARMNET4ac8af832c*DATARMNET68fc0be252), +HRTIMER_MODE_REL);DATARMNETda96251102(DATARMNET720469c0a9,DATARMNETdd870ee64c, +DATARMNET2f67183a86,(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),skb +,NULL);}spin_unlock_irqrestore(&DATARMNET3764d083f0,ht_flags);if( +DATARMNETecc0627c70.DATARMNETa2e32cdd3a>DATARMNET7d18c0bcf8){if( +DATARMNET58b009b16b)DATARMNET14ed771dfb[DATARMNET802083239a]++; +DATARMNET52de1f3dc0(DATARMNET4510abc30d,DATARMNET562b7d32a8,(0xd2d+202-0xdf7), +(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),NULL,NULL); +DATARMNETa4bf9fbf64((0xd26+209-0xdf6),DATARMNET0b15fd8b54);}else if( +DATARMNETecc0627c70.DATARMNETc252a1f55d>DATARMNETea75c7b6f6){if( +DATARMNET58b009b16b)DATARMNET14ed771dfb[DATARMNETed69052342]++; +DATARMNET52de1f3dc0(DATARMNET4510abc30d,DATARMNET99640d60f7,(0xd2d+202-0xdf7), +(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),NULL,NULL); +DATARMNETa4bf9fbf64((0xd26+209-0xdf6),DATARMNET0b15fd8b54);}else if( +DATARMNETecc0627c70.DATARMNET34097703c8==DATARMNETb3e3b2a799){ +DATARMNET14ed771dfb[DATARMNETcfb1764a91]++;DATARMNET52de1f3dc0( +DATARMNET4510abc30d,DATARMNETa2bd301af7,(0xd26+209-0xdf6),DATARMNETecc0627c70. +DATARMNETa2e32cdd3a,(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),NULL,NULL); +DATARMNETa4bf9fbf64((0xd2d+202-0xdf7),DATARMNET0b15fd8b54);}else if( +DATARMNETecc0627c70.DATARMNETa2e32cdd3a&&DATARMNETecc0627c70.DATARMNET6fe0db3a49 +!=DATARMNET1c55e5fdb1){DATARMNET14ed771dfb[DATARMNET01bf75e27c]++; +DATARMNETa4bf9fbf64((0xd2d+202-0xdf7),DATARMNET0b15fd8b54);}return +(0xd2d+202-0xdf7);}void DATARMNET9297340f58(unsigned int DATARMNET9f4bc49c6f){ +DATARMNETdf74db7e38();DATARMNETecc0627c70.DATARMNET08dbb5ab35.dl_hdr_handler_v2= +NULL;DATARMNETecc0627c70.DATARMNET08dbb5ab35.dl_trl_handler_v2=NULL; +rmnet_map_dl_ind_deregister(DATARMNETecc0627c70.port,&DATARMNETecc0627c70. +DATARMNET08dbb5ab35);DATARMNETecc0627c70.DATARMNET9c869c1ec2=(0xd2d+202-0xdf7); +unregister_oom_notifier(&DATARMNET105c85d84c);if(DATARMNETecc0627c70. +DATARMNETf5ab31b9b0)hrtimer_cancel(&DATARMNETecc0627c70.DATARMNET6fd692fc7a); +memset(&DATARMNETecc0627c70,(0xd2d+202-0xdf7),sizeof(DATARMNETecc0627c70)); +DATARMNETecc0627c70.port=NULL;DATARMNETecc0627c70.DATARMNETfc89d842ae= +(0xd2d+202-0xdf7);DATARMNET12565c8f98=DATARMNET9f4bc49c6f;} diff --git a/shs/rmnet_shs_modules.c b/shs/rmnet_shs_modules.c new file mode 100644 index 000000000000..b98762442899 --- /dev/null +++ b/shs/rmnet_shs_modules.c @@ -0,0 +1,207 @@ +/* Copyright (c) 2020 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 + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + */ + +#include "rmnet_shs.h" +unsigned int DATARMNET1fc3ad67fd __read_mostly=DATARMNETe4c625a3a3;module_param( +DATARMNET1fc3ad67fd,uint,(0xdb7+6665-0x261c));MODULE_PARM_DESC( +DATARMNET1fc3ad67fd, +"\x49\x6e\x74\x65\x72\x76\x61\x6c\x20\x62\x65\x74\x77\x65\x65\x6e\x20\x77\x71\x20\x72\x75\x6e\x73\x20\x28\x6d\x73\x29" +);unsigned long DATARMNETa804c0b904 __read_mostly=DATARMNET4899358462; +module_param(DATARMNETa804c0b904,ulong,(0xdb7+6665-0x261c));MODULE_PARM_DESC( +DATARMNETa804c0b904, +"\x4d\x61\x78\x20\x66\x6c\x6f\x77\x20\x69\x6e\x61\x63\x74\x69\x76\x65\x20\x74\x69\x6d\x65\x20\x62\x65\x66\x6f\x72\x65\x20\x63\x6c\x65\x61\x6e\x20\x75\x70" +);unsigned int DATARMNETcab56af6d5 __read_mostly=(0xeb7+710-0x112d);module_param +(DATARMNETcab56af6d5,uint,(0xdb7+6665-0x261c));MODULE_PARM_DESC( +DATARMNETcab56af6d5, +"\x6d\x6f\x76\x69\x6e\x67\x20\x61\x76\x65\x72\x61\x67\x65\x20\x77\x65\x69\x67\x68\x74\x61\x67\x65" +);unsigned long long DATARMNET713717107f[DATARMNETc6782fed88]__read_mostly={ +DATARMNETb38cb72105,DATARMNETb38cb72105,DATARMNETb38cb72105,DATARMNETb38cb72105, +DATARMNET243c638e7d,DATARMNET243c638e7d,DATARMNET243c638e7d,DATARMNET243c638e7d} +;module_param_array(DATARMNET713717107f,ullong,NULL,(0xdb7+6665-0x261c)); +MODULE_PARM_DESC(DATARMNET713717107f, +"\x4d\x61\x78\x20\x70\x6b\x74\x73\x20\x63\x6f\x72\x65\x20\x63\x61\x6e\x20\x68\x61\x6e\x64\x6c\x65" +);unsigned long long DATARMNET4793ed48af[DATARMNETc6782fed88]__read_mostly={ +DATARMNET9bc9e0cac3,DATARMNET9bc9e0cac3,DATARMNET9bc9e0cac3,DATARMNET9bc9e0cac3, +DATARMNET22feab5726,DATARMNET22feab5726,DATARMNET22feab5726,DATARMNET22feab5726} +;module_param_array(DATARMNET4793ed48af,ullong,NULL,(0xdb7+6665-0x261c)); +MODULE_PARM_DESC(DATARMNET4793ed48af, +"\x4d\x69\x6e\x20\x70\x6b\x74\x73\x20\x63\x6f\x72\x65\x20\x63\x61\x6e\x20\x68\x61\x6e\x64\x6c\x65" +);unsigned int DATARMNET18f2ba4444[DATARMNETc6782fed88];module_param_array( +DATARMNET18f2ba4444,uint,NULL,(0xcb7+5769-0x221c));MODULE_PARM_DESC( +DATARMNET18f2ba4444, +"\x4e\x75\x6d\x20\x66\x6c\x6f\x77\x73\x20\x70\x72\x6f\x63\x65\x73\x73\x65\x64\x20\x70\x65\x72\x20\x63\x6f\x72\x65" +);unsigned int DATARMNET2d482e7d9f[DATARMNETc6782fed88];module_param_array( +DATARMNET2d482e7d9f,uint,NULL,(0xcb7+5769-0x221c));MODULE_PARM_DESC( +DATARMNET2d482e7d9f, +"\x4e\x75\x6d\x20\x66\x69\x6c\x74\x65\x72\x65\x64\x20\x66\x6c\x6f\x77\x73\x20\x70\x65\x72\x20\x63\x6f\x72\x65" +);unsigned long long DATARMNET77240d48ee[DATARMNETc6782fed88];module_param_array +(DATARMNET77240d48ee,ullong,NULL,(0xcb7+5769-0x221c));MODULE_PARM_DESC( +DATARMNET77240d48ee, +"\x53\x48\x53\x20\x73\x74\x61\x6d\x70\x20\x62\x79\x74\x65\x73\x20\x70\x65\x72\x20\x43\x50\x55" +);unsigned long long DATARMNET77189ab85c[DATARMNETc6782fed88];module_param_array +(DATARMNET77189ab85c,ullong,NULL,(0xcb7+5769-0x221c));MODULE_PARM_DESC( +DATARMNET77189ab85c, +"\x53\x48\x53\x20\x73\x74\x61\x6d\x70\x20\x74\x6f\x74\x61\x6c\x20\x70\x6b\x74\x73\x20\x70\x65\x72\x20\x43\x50\x55" +);unsigned long long DATARMNET79263b1183[DATARMNETc6782fed88];module_param_array +(DATARMNET79263b1183,ullong,NULL,(0xcb7+5769-0x221c));MODULE_PARM_DESC( +DATARMNET79263b1183, +"\x53\x48\x53\x20\x73\x74\x61\x6d\x70\x20\x65\x6e\x71\x20\x72\x61\x74\x65\x20\x70\x65\x72\x20\x43\x50\x55" +);unsigned long long DATARMNET229d52b629[DATARMNETc6782fed88];module_param_array +(DATARMNET229d52b629,ullong,NULL,(0xcb7+5769-0x221c));MODULE_PARM_DESC( +DATARMNET229d52b629, +"\x53\x48\x53\x20\x73\x74\x61\x6d\x70\x20\x70\x6b\x74\x20\x65\x6e\x71\x20\x72\x61\x74\x65\x20\x70\x65\x72\x20\x43\x50\x55" +);unsigned long long DATARMNETd27ed7efea[DATARMNETc6782fed88];module_param_array +(DATARMNETd27ed7efea,ullong,NULL,(0xcb7+5769-0x221c));MODULE_PARM_DESC( +DATARMNETd27ed7efea, +"\x53\x48\x53\x20\x6e\x77\x20\x73\x74\x61\x63\x6b\x20\x71\x75\x65\x75\x65\x20\x70\x72\x6f\x63\x65\x73\x73\x65\x64\x20\x64\x69\x66\x66" +);unsigned long long DATARMNET377ecf13ca[DATARMNETc6782fed88];module_param_array +(DATARMNET377ecf13ca,ullong,NULL,(0xcb7+5769-0x221c));MODULE_PARM_DESC( +DATARMNET377ecf13ca, +"\x53\x48\x53\x20\x6e\x77\x20\x71\x75\x65\x75\x65\x20\x70\x72\x6f\x63\x65\x73\x73\x65\x64\x20\x74\x6f\x74\x61\x6c" +);unsigned long DATARMNETbf3b6fdfc8[DATARMNET2f9ea73326];module_param_array( +DATARMNETbf3b6fdfc8,ulong,NULL,(0xcb7+5769-0x221c));MODULE_PARM_DESC( +DATARMNETbf3b6fdfc8, +"\x53\x48\x53\x20\x73\x74\x61\x6d\x70\x20\x68\x61\x73\x68\x20\x66\x6c\x6f\x77"); +unsigned long DATARMNET0fec241216[DATARMNET2f9ea73326];module_param_array( +DATARMNET0fec241216,ulong,NULL,(0xcb7+5769-0x221c));MODULE_PARM_DESC( +DATARMNET0fec241216, +"\x53\x48\x53\x20\x73\x74\x61\x6d\x70\x20\x68\x61\x73\x68\x20\x74\x72\x61\x6e\x73\x70\x6f\x72\x74\x20\x70\x72\x6f\x74\x6f\x63\x6f\x6c" +);unsigned long long DATARMNET9e5e8e4048[DATARMNET2f9ea73326];module_param_array +(DATARMNET9e5e8e4048,ullong,NULL,(0xcb7+5769-0x221c));MODULE_PARM_DESC( +DATARMNET9e5e8e4048, +"\x53\x48\x53\x20\x73\x74\x61\x6d\x70\x20\x69\x6e\x61\x63\x74\x69\x76\x65\x20\x66\x6c\x6f\x77\x20\x74\x69\x6d\x65" +);int DATARMNETdba344c809[DATARMNET2f9ea73326]={-(0xd26+209-0xdf6),- +(0xd26+209-0xdf6),-(0xd26+209-0xdf6),-(0xd26+209-0xdf6),-(0xd26+209-0xdf6),- +(0xd26+209-0xdf6),-(0xd26+209-0xdf6),-(0xd26+209-0xdf6),-(0xd26+209-0xdf6),- +(0xd26+209-0xdf6),-(0xd26+209-0xdf6),-(0xd26+209-0xdf6),-(0xd26+209-0xdf6),- +(0xd26+209-0xdf6),-(0xd26+209-0xdf6),-(0xd26+209-0xdf6)};module_param_array( +DATARMNETdba344c809,int,NULL,(0xcb7+5769-0x221c));MODULE_PARM_DESC( +DATARMNETdba344c809, +"\x53\x48\x53\x20\x73\x74\x61\x6d\x70\x20\x66\x6c\x6f\x77\x20\x70\x72\x6f\x63\x65\x73\x73\x69\x6e\x67\x20\x43\x50\x55" +);int DATARMNET99a934c43a[DATARMNET2f9ea73326]={-(0xd26+209-0xdf6),- +(0xd26+209-0xdf6),-(0xd26+209-0xdf6),-(0xd26+209-0xdf6),-(0xd26+209-0xdf6),- +(0xd26+209-0xdf6),-(0xd26+209-0xdf6),-(0xd26+209-0xdf6),-(0xd26+209-0xdf6),- +(0xd26+209-0xdf6),-(0xd26+209-0xdf6),-(0xd26+209-0xdf6),-(0xd26+209-0xdf6),- +(0xd26+209-0xdf6),-(0xd26+209-0xdf6),-(0xd26+209-0xdf6)};module_param_array( +DATARMNET99a934c43a,int,NULL,(0xcb7+5769-0x221c));MODULE_PARM_DESC( +DATARMNET99a934c43a, +"\x53\x48\x53\x20\x73\x74\x61\x6d\x70\x20\x66\x6c\x6f\x77\x20\x70\x72\x6f\x63\x20\x43\x50\x55" +);unsigned long long DATARMNET47956cbb0f[DATARMNET2f9ea73326];module_param_array +(DATARMNET47956cbb0f,ullong,NULL,(0xcb7+5769-0x221c));MODULE_PARM_DESC( +DATARMNET47956cbb0f, +"\x53\x48\x53\x20\x73\x74\x61\x6d\x70\x20\x62\x79\x74\x65\x73\x20\x70\x65\x72\x20\x66\x6c\x6f\x77" +);unsigned long long DATARMNET338c8e7a2b[DATARMNET2f9ea73326];module_param_array +(DATARMNET338c8e7a2b,ullong,NULL,(0xcb7+5769-0x221c));MODULE_PARM_DESC( +DATARMNET338c8e7a2b, +"\x53\x48\x53\x20\x73\x74\x61\x6d\x70\x20\x74\x6f\x74\x61\x6c\x20\x70\x6b\x74\x73\x20\x70\x65\x72\x20\x66\x6c\x6f\x77" +);unsigned long long DATARMNET4b1ae621cd[DATARMNET2f9ea73326];module_param_array +(DATARMNET4b1ae621cd,ullong,NULL,(0xcb7+5769-0x221c));MODULE_PARM_DESC( +DATARMNET4b1ae621cd, +"\x53\x48\x53\x20\x73\x74\x61\x6d\x70\x20\x65\x6e\x71\x20\x72\x61\x74\x65\x20\x70\x65\x72\x20\x66\x6c\x6f\x77" +);unsigned long long DATARMNETf5133a99c6[DATARMNET2f9ea73326];module_param_array +(DATARMNETf5133a99c6,ullong,NULL,(0xcb7+5769-0x221c));MODULE_PARM_DESC( +DATARMNETf5133a99c6, +"\x53\x48\x53\x20\x73\x74\x61\x6d\x70\x20\x70\x6b\x74\x20\x65\x6e\x71\x20\x72\x61\x74\x65\x20\x70\x65\x72\x20\x66\x6c\x6f\x77" +);unsigned long long DATARMNETc5d73c43e6[DATARMNET2f9ea73326];module_param_array +(DATARMNETc5d73c43e6,ullong,NULL,(0xcb7+5769-0x221c));MODULE_PARM_DESC( +DATARMNETc5d73c43e6, +"\x53\x48\x53\x20\x53\x75\x67\x67\x65\x73\x74\x20\x53\x69\x6c\x76\x65\x72\x20\x74\x6f\x20\x47\x6f\x6c\x64" +);unsigned long long DATARMNETf4aa8ec23f[DATARMNET2f9ea73326];module_param_array +(DATARMNETf4aa8ec23f,ullong,NULL,(0xcb7+5769-0x221c));MODULE_PARM_DESC( +DATARMNETf4aa8ec23f, +"\x53\x48\x53\x20\x53\x75\x67\x67\x65\x73\x74\x20\x47\x6f\x6c\x64\x20\x74\x6f\x20\x53\x69\x6c\x76\x65\x72" +);unsigned long long DATARMNET6d75219ffb[DATARMNET2f9ea73326];module_param_array +(DATARMNET6d75219ffb,ullong,NULL,(0xcb7+5769-0x221c));MODULE_PARM_DESC( +DATARMNET6d75219ffb, +"\x53\x48\x53\x20\x53\x75\x67\x67\x65\x73\x74\x20\x47\x6f\x6c\x64\x20\x42\x61\x6c\x61\x6e\x63\x65" +);unsigned long DATARMNETb7ddf3c5dd[DATARMNETeccb61ebc3];module_param_array( +DATARMNETb7ddf3c5dd,ulong,NULL,(0xcb7+5769-0x221c));MODULE_PARM_DESC( +DATARMNETb7ddf3c5dd, +"\x72\x6d\x6e\x65\x74\x20\x73\x68\x73\x20\x73\x6b\x62\x20\x63\x6f\x72\x65\x20\x73\x77\x74\x69\x63\x68\x20\x74\x79\x70\x65" +);unsigned long DATARMNET14ed771dfb[DATARMNET3cef75f6cd];module_param_array( +DATARMNET14ed771dfb,ulong,NULL,(0xcb7+5769-0x221c));MODULE_PARM_DESC( +DATARMNET14ed771dfb, +"\x72\x6d\x6e\x65\x74\x20\x73\x68\x73\x20\x73\x6b\x62\x20\x66\x6c\x75\x73\x68\x20\x74\x72\x69\x67\x67\x65\x72\x20\x74\x79\x70\x65" +);unsigned int DATARMNETea75c7b6f6 __read_mostly=271800*(0xeb7+710-0x112d); +module_param(DATARMNETea75c7b6f6,uint,(0xdb7+6665-0x261c));MODULE_PARM_DESC( +DATARMNETea75c7b6f6, +"\x4d\x61\x78\x69\x6d\x75\x6d\x20\x62\x79\x74\x65\x20\x6d\x6f\x64\x75\x6c\x65\x20\x77\x69\x6c\x6c\x20\x70\x61\x72\x6b" +);unsigned int DATARMNET7d18c0bcf8 __read_mostly=(0xa58+3472-0xfb4)* +(0xd35+210-0xdff);module_param(DATARMNET7d18c0bcf8,uint,(0xdb7+6665-0x261c)); +MODULE_PARM_DESC(DATARMNET7d18c0bcf8, +"\x4d\x61\x78\x69\x6d\x75\x6d\x20\x70\x6b\x74\x73\x20\x6d\x6f\x64\x75\x6c\x65\x20\x77\x69\x6c\x6c\x20\x70\x61\x72\x6b" +);unsigned int DATARMNET227d2ff866 __read_mostly=(0xec7+1131-0x1305); +module_param(DATARMNET227d2ff866,uint,(0xdb7+6665-0x261c));MODULE_PARM_DESC( +DATARMNET227d2ff866, +"\x4d\x61\x78\x20\x77\x61\x69\x74\x20\x6d\x6f\x64\x75\x6c\x65\x20\x77\x69\x6c\x6c\x20\x77\x61\x69\x74\x20\x64\x75\x72\x69\x6e\x67\x20\x6d\x6f\x76\x65\x20\x74\x6f\x20\x70\x65\x72\x66\x20\x63\x6f\x72\x65\x20\x69\x6e\x20\x6d\x73" +);unsigned int DATARMNETa1ac2608b5 __read_mostly=(0xeb7+1130-0x130d); +module_param(DATARMNETa1ac2608b5,uint,(0xdb7+6665-0x261c));MODULE_PARM_DESC( +DATARMNETa1ac2608b5, +"\x4d\x61\x78\x20\x69\x6e\x74\x65\x72\x76\x61\x6c\x20\x77\x65\x20\x73\x61\x6d\x70\x6c\x65\x20\x66\x6f\x72\x20\x69\x6e\x73\x74\x61\x6e\x74\x20\x62\x75\x72\x73\x74\x20\x70\x72\x69\x6f\x72\x69\x74\x69\x7a\x69\x6e\x67" +);unsigned int DATARMNET12565c8f98 __read_mostly=(0xd26+209-0xdf6);module_param( +DATARMNET12565c8f98,uint,(0xdb7+6665-0x261c));MODULE_PARM_DESC( +DATARMNET12565c8f98, +"\x43\x6f\x6e\x66\x69\x67\x75\x72\x61\x62\x6c\x65\x20\x6f\x70\x74\x69\x6f\x6e\x20\x74\x6f\x20\x65\x6e\x61\x62\x6c\x65\x20\x72\x78\x20\x72\x61\x74\x65\x20\x63\x70\x75\x20\x73\x77\x69\x74\x63\x68\x69\x6e\x67" +);unsigned int DATARMNET365ddeca1c __read_mostly=(0xd26+209-0xdf6);module_param( +DATARMNET365ddeca1c,uint,(0xdb7+6665-0x261c));MODULE_PARM_DESC( +DATARMNET365ddeca1c, +"\x4f\x70\x74\x69\x6f\x6e\x20\x74\x6f\x20\x65\x6e\x61\x62\x6c\x65\x20\x66\x61\x6c\x6c\x20\x62\x61\x63\x6b\x20\x6c\x69\x6d\x69\x74\x20\x66\x6f\x72\x20\x70\x61\x72\x6b\x69\x6e\x67" +);unsigned int DATARMNET35fe073bc2 __read_mostly=(0xf07+3937-0x1a1c); +module_param(DATARMNET35fe073bc2,uint,(0xdb7+6665-0x261c));MODULE_PARM_DESC( +DATARMNET35fe073bc2, +"\x4d\x61\x78\x20\x70\x6b\x74\x73\x20\x69\x6e\x20\x62\x61\x63\x6b\x6c\x6f\x67\x20\x70\x72\x69\x6f\x72\x69\x74\x69\x7a\x69\x6e\x67" +);unsigned int DATARMNET449e126dd3 __read_mostly=(0x10d9+1551-0xd24); +module_param(DATARMNET449e126dd3,uint,(0xdb7+6665-0x261c));MODULE_PARM_DESC( +DATARMNET449e126dd3, +"\x4d\x61\x78\x20\x70\x6b\x74\x73\x20\x69\x6e\x20\x61\x20\x69\x6e\x73\x74\x61\x6e\x74\x20\x62\x75\x72\x73\x74\x20\x69\x6e\x74\x65\x72\x76\x61\x6c\x20\x62\x65\x66\x6f\x72\x65\x20\x70\x72\x69\x6f\x72\x69\x74\x69\x7a\x69\x6e\x67" +);unsigned int DATARMNET4ac8af832c __read_mostly=(0xd03+244-0xdf1);module_param( +DATARMNET4ac8af832c,uint,(0xdb7+6665-0x261c));MODULE_PARM_DESC( +DATARMNET4ac8af832c, +"\x4f\x70\x74\x69\x6f\x6e\x20\x74\x6f\x20\x63\x6f\x6e\x66\x69\x67\x75\x72\x65\x20\x66\x61\x6c\x6c\x20\x62\x61\x63\x6b\x20\x64\x75\x72\x61\x74\x69\x6f\x6e" +);unsigned int DATARMNETa7909611da __read_mostly=(0xd26+209-0xdf6);module_param( +DATARMNETa7909611da,uint,(0xdb7+6665-0x261c));MODULE_PARM_DESC( +DATARMNETa7909611da, +"\x53\x77\x69\x74\x63\x68\x20\x63\x6f\x72\x65\x20\x75\x70\x6f\x6e\x20\x68\x69\x74\x74\x69\x6e\x67\x20\x74\x68\x72\x65\x73\x68\x6f\x6c\x64" +);unsigned int DATARMNET84413d1257[DATARMNETc6782fed88];module_param_array( +DATARMNET84413d1257,uint,NULL,(0xdb7+6665-0x261c));MODULE_PARM_DESC( +DATARMNET84413d1257, +"\x4d\x61\x78\x20\x71\x75\x65\x75\x65\x20\x6c\x65\x6e\x67\x74\x68\x20\x73\x65\x65\x6e\x20\x6f\x66\x20\x65\x61\x63\x68\x20\x63\x6f\x72\x65" +);unsigned int DATARMNET443cf5aaaf[DATARMNETc6782fed88];module_param_array( +DATARMNET443cf5aaaf,uint,NULL,(0xdb7+6665-0x261c));MODULE_PARM_DESC( +DATARMNET443cf5aaaf, +"\x4f\x4f\x4f\x20\x63\x6f\x75\x6e\x74\x20\x66\x6f\x72\x20\x65\x61\x63\x68\x20\x63\x70\x75" +);unsigned int DATARMNETd75e474598[DATARMNETc6782fed88];module_param_array( +DATARMNETd75e474598,uint,NULL,(0xdb7+6665-0x261c));MODULE_PARM_DESC( +DATARMNETd75e474598, +"\x4d\x61\x78\x20\x63\x6f\x72\x65\x73\x75\x6d\x20\x73\x65\x65\x6e\x20\x6f\x66\x20\x65\x61\x63\x68\x20\x63\x6f\x72\x65" +);unsigned int DATARMNET25c61a512c __read_mostly=(0xd18+223-0xdf4);module_param( +DATARMNET25c61a512c,uint,(0xdb7+6665-0x261c));MODULE_PARM_DESC( +DATARMNET25c61a512c, +"\x53\x74\x61\x79\x69\x6e\x67\x20\x64\x75\x72\x61\x74\x69\x6f\x6e\x20\x66\x6f\x72\x20\x6e\x65\x74\x72\x78\x20\x73\x77\x69\x74\x63\x68" +);unsigned int DATARMNET1ad396a890 __read_mostly=(0x25f8+1428-0x1804); +module_param(DATARMNET1ad396a890,uint,(0xdb7+6665-0x261c));MODULE_PARM_DESC( +DATARMNET1ad396a890, +"\x4d\x61\x78\x20\x72\x6d\x6e\x65\x74\x20\x70\x72\x65\x2d\x62\x61\x63\x6b\x6c\x6f\x67" +);unsigned int DATARMNET756bdd424a __read_mostly;module_param( +DATARMNET756bdd424a,uint,(0xdb7+6665-0x261c));MODULE_PARM_DESC( +DATARMNET756bdd424a, +"\x72\x6d\x6e\x65\x74\x5f\x73\x68\x73\x5f\x64\x65\x62\x75\x67");unsigned int +DATARMNET58b009b16b __read_mostly=(0xd26+209-0xdf6);module_param( +DATARMNET58b009b16b,uint,(0xdb7+6665-0x261c));MODULE_PARM_DESC( +DATARMNET58b009b16b, +"\x45\x6e\x61\x62\x6c\x65\x20\x44\x69\x73\x61\x62\x6c\x65\x20\x73\x74\x61\x74\x73\x20\x63\x6f\x6c\x6c\x65\x63\x74\x69\x6f\x6e" +);unsigned long DATARMNET68d84e7b98[DATARMNETf3110711cb];module_param_array( +DATARMNET68d84e7b98,ulong,NULL,(0xcb7+5769-0x221c));MODULE_PARM_DESC( +DATARMNET68d84e7b98, +"\x72\x6d\x6e\x65\x74\x20\x73\x68\x73\x20\x63\x72\x74\x69\x63\x61\x6c\x20\x65\x72\x72\x6f\x72\x20\x74\x79\x70\x65" +); diff --git a/shs/rmnet_shs_modules.h b/shs/rmnet_shs_modules.h new file mode 100644 index 000000000000..7b40ce344eee --- /dev/null +++ b/shs/rmnet_shs_modules.h @@ -0,0 +1,56 @@ +/* Copyright (c) 2020 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 + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + */ + +#include "rmnet_shs_wq.h" +#include "rmnet_shs_common.h" +#include "rmnet_shs.h" +#ifndef DATARMNET2883628e72 +#define DATARMNET2883628e72 +extern unsigned int DATARMNET1fc3ad67fd;extern unsigned long DATARMNETa804c0b904 +;extern unsigned int DATARMNETcab56af6d5 __read_mostly;extern unsigned long long + DATARMNET713717107f[DATARMNETc6782fed88];extern unsigned long long +DATARMNET4793ed48af[DATARMNETc6782fed88];extern unsigned int DATARMNET18f2ba4444 +[DATARMNETc6782fed88];extern unsigned int DATARMNET2d482e7d9f[ +DATARMNETc6782fed88];extern unsigned long long DATARMNET77240d48ee[ +DATARMNETc6782fed88];extern unsigned long long DATARMNET77189ab85c[ +DATARMNETc6782fed88];extern unsigned long long DATARMNET79263b1183[ +DATARMNETc6782fed88];extern unsigned long long DATARMNET229d52b629[ +DATARMNETc6782fed88];extern unsigned long long DATARMNETd27ed7efea[ +DATARMNETc6782fed88];extern unsigned long long DATARMNET377ecf13ca[ +DATARMNETc6782fed88];extern unsigned long DATARMNETbf3b6fdfc8[ +DATARMNET2f9ea73326];extern unsigned long DATARMNET0fec241216[ +DATARMNET2f9ea73326];extern unsigned long long DATARMNET9e5e8e4048[ +DATARMNET2f9ea73326];extern int DATARMNETdba344c809[DATARMNET2f9ea73326];extern +int DATARMNET99a934c43a[DATARMNET2f9ea73326];extern unsigned long long +DATARMNET47956cbb0f[DATARMNET2f9ea73326];extern unsigned long long +DATARMNET338c8e7a2b[DATARMNET2f9ea73326];extern unsigned long long +DATARMNET4b1ae621cd[DATARMNET2f9ea73326];extern unsigned long long +DATARMNETf5133a99c6[DATARMNET2f9ea73326];extern unsigned long long +DATARMNETc5d73c43e6[DATARMNET2f9ea73326];extern unsigned long long +DATARMNETf4aa8ec23f[DATARMNET2f9ea73326];extern unsigned long long +DATARMNET6d75219ffb[DATARMNET2f9ea73326];extern unsigned long +DATARMNETb7ddf3c5dd[DATARMNETeccb61ebc3];extern unsigned long +DATARMNET14ed771dfb[DATARMNET3cef75f6cd];extern unsigned int DATARMNETea75c7b6f6 +;extern unsigned int DATARMNET7d18c0bcf8;extern unsigned int DATARMNET227d2ff866 +;extern unsigned int DATARMNETa1ac2608b5;extern unsigned int DATARMNET12565c8f98 +;extern unsigned int DATARMNET365ddeca1c;extern unsigned int DATARMNET35fe073bc2 +;extern unsigned int DATARMNET449e126dd3;extern unsigned int DATARMNET4ac8af832c +;extern unsigned int DATARMNETa7909611da;extern unsigned int DATARMNET84413d1257 +[DATARMNETc6782fed88];extern unsigned int DATARMNET443cf5aaaf[ +DATARMNETc6782fed88];extern unsigned int DATARMNETd75e474598[DATARMNETc6782fed88 +];extern unsigned int DATARMNET25c61a512c;extern unsigned int +DATARMNET1ad396a890;extern unsigned int DATARMNET756bdd424a;extern unsigned int +DATARMNET58b009b16b __read_mostly;extern unsigned long DATARMNET68d84e7b98[ +DATARMNETf3110711cb]; +#endif + diff --git a/shs/rmnet_shs_wq.c b/shs/rmnet_shs_wq.c new file mode 100644 index 000000000000..e21a3f8afb49 --- /dev/null +++ b/shs/rmnet_shs_wq.c @@ -0,0 +1,826 @@ +/* Copyright (c) 2018-2020 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 + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + */ + +#include "rmnet_shs.h" +#include "rmnet_shs_wq_genl.h" +#include "rmnet_shs_wq_mem.h" +#include +#include +#include +#include +#include "rmnet_shs_modules.h" +#include "rmnet_shs_common.h" +MODULE_LICENSE("\x47\x50\x4c\x20\x76\x32"); +#define DATARMNET59f7cb903f (0xc07+4861-0x1e3c) +#define DATARMNET832dcfb5f8 (0xeb7+698-0x110d) +#define DATARMNET53bef3c026 (0xd2d+202-0xdf7) +#define DATARMNETc5db038c35 (0xd26+209-0xdf6) +#define DATARMNETbe271c415b ((!DATARMNET25c61a512c) ? (0xd1f+216-0xdf5) : \ +DATARMNET25c61a512c) +#define DATARMNET2f8c32c8eb ((0xd1f+216-0xdf5)) +DEFINE_SPINLOCK(DATARMNETfbdbab2ef6);DEFINE_SPINLOCK(DATARMNETec2a4f5211);static + time_t DATARMNETb3a4036d6d;static struct workqueue_struct*DATARMNETf141197982; +static struct DATARMNETa144e2bd00*DATARMNET9dc7755be5;static struct +DATARMNETc8fdbf9c85 DATARMNET6cdd58e74c;struct list_head DATARMNET9825511866= +LIST_HEAD_INIT(DATARMNET9825511866);static int DATARMNETe038d33545;struct +list_head DATARMNET30a3e83974=LIST_HEAD_INIT(DATARMNET30a3e83974);void +DATARMNETa6e92c3315(struct DATARMNET6c78e47d24*DATARMNETd2a694d52a){ +DATARMNETd2a694d52a->DATARMNETadd51beef4=(0xd2d+202-0xdf7);DATARMNETd2a694d52a-> +DATARMNET68714ac92c=(0xd2d+202-0xdf7);DATARMNETd2a694d52a->DATARMNET63b1a086d5= +NULL;DATARMNETd2a694d52a->DATARMNET42ceaf5cc2=(0xd2d+202-0xdf7); +DATARMNETd2a694d52a->DATARMNET4b4a76b094=(0xd2d+202-0xdf7);DATARMNETd2a694d52a-> +DATARMNETa7352711af=(0xd2d+202-0xdf7);DATARMNETd2a694d52a->rx_bytes= +(0xd2d+202-0xdf7);DATARMNETd2a694d52a->DATARMNET324c1a8f98=(0xd2d+202-0xdf7); +DATARMNETd2a694d52a->DATARMNETbb80fccd97=(0xd2d+202-0xdf7);DATARMNETd2a694d52a-> +DATARMNET6edbc8b649=(0xd2d+202-0xdf7);DATARMNETd2a694d52a->DATARMNETde6a309f37= +(0xd2d+202-0xdf7);DATARMNETd2a694d52a->DATARMNET9fb369ce5f=(0xd2d+202-0xdf7); +DATARMNETd2a694d52a->DATARMNET17f2abdf03=(0xd2d+202-0xdf7);DATARMNETd2a694d52a-> +DATARMNET399c840115=(0xd2d+202-0xdf7);DATARMNETd2a694d52a->DATARMNET1a1d89d417= +(0xd2d+202-0xdf7);DATARMNETd2a694d52a->DATARMNETb932033f50=(0xd2d+202-0xdf7); +DATARMNETd2a694d52a->hash=(0xd2d+202-0xdf7);DATARMNETd2a694d52a-> +DATARMNET6e1a4eaf09=(0xd2d+202-0xdf7);DATARMNETd2a694d52a->DATARMNET7c894c2f8f= +(0xd2d+202-0xdf7);DATARMNETd2a694d52a->DATARMNET87636d0152=(0xd2d+202-0xdf7); +DATARMNETd2a694d52a->DATARMNET1e9d25d9ff=(0xd2d+202-0xdf7);DATARMNETd2a694d52a-> +DATARMNETb5f5519502=(-(0xd26+209-0xdf6));INIT_LIST_HEAD(&DATARMNETd2a694d52a-> +DATARMNET742867e97a);DATARMNETd2a694d52a->DATARMNET8a4e1d5aaa=(0xd2d+202-0xdf7); +DATARMNETd2a694d52a->DATARMNET0dc393a345=(0xd2d+202-0xdf7); +trace_rmnet_shs_wq_low(DATARMNET238d08f0df,DATARMNETb43d929c3b, +DATARMNETd2a694d52a->DATARMNET0bfc2b2c85,(0x16e8+787-0xc0c),(0x16e8+787-0xc0c), +(0x16e8+787-0xc0c),DATARMNETd2a694d52a,NULL);}void DATARMNETf5b8fce55d(u8 +DATARMNETe9030b7691,u8 DATARMNET1f19f4b029){struct DATARMNET6c78e47d24* +DATARMNETd2a694d52a=NULL;while(DATARMNETe9030b7691>(0xd2d+202-0xdf7)){ +DATARMNETd2a694d52a=kzalloc(sizeof(*DATARMNETd2a694d52a),GFP_ATOMIC);if( +DATARMNETd2a694d52a){DATARMNETd2a694d52a->DATARMNET0bfc2b2c85= +DATARMNET1f19f4b029;DATARMNETa6e92c3315(DATARMNETd2a694d52a);INIT_LIST_HEAD(& +DATARMNETd2a694d52a->DATARMNET6de26f0feb);INIT_LIST_HEAD(&DATARMNETd2a694d52a-> +DATARMNET742867e97a);DATARMNET36e5e526fa(DATARMNETd2a694d52a);}else{ +DATARMNET68d84e7b98[DATARMNET1828d69e96]++;}DATARMNETd2a694d52a=NULL; +DATARMNETe9030b7691--;}}struct DATARMNET6c78e47d24*DATARMNETb062995420(void){ +struct DATARMNET6c78e47d24*DATARMNETd2a694d52a=NULL;struct DATARMNET6c78e47d24* +DATARMNETe70783182f=NULL;unsigned long flags;spin_lock_irqsave(& +DATARMNETfbdbab2ef6,flags);list_for_each_entry(DATARMNETd2a694d52a,& +DATARMNET9825511866,DATARMNET6de26f0feb){if(DATARMNETd2a694d52a==NULL)continue; +if(DATARMNETd2a694d52a->DATARMNET0dc393a345==(0xd2d+202-0xdf7)){ +DATARMNETe70783182f=DATARMNETd2a694d52a;DATARMNETe70783182f->DATARMNET0dc393a345 +=(0xd26+209-0xdf6);DATARMNETe70783182f->DATARMNET8a4e1d5aaa=(0xd26+209-0xdf6); +break;}}spin_unlock_irqrestore(&DATARMNETfbdbab2ef6,flags);if( +DATARMNETe70783182f){trace_rmnet_shs_wq_low(DATARMNET238d08f0df, +DATARMNET8d783e2a07,DATARMNETd2a694d52a->DATARMNET0bfc2b2c85,(0x16e8+787-0xc0c), +(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),DATARMNETd2a694d52a,NULL);return +DATARMNETe70783182f;}DATARMNETe70783182f=kzalloc(sizeof(*DATARMNETd2a694d52a), +GFP_ATOMIC);if(!DATARMNETe70783182f){DATARMNET68d84e7b98[DATARMNET1828d69e96]++; +return NULL;}DATARMNETa6e92c3315(DATARMNETe70783182f);DATARMNETe70783182f-> +DATARMNET0bfc2b2c85=(0xd2d+202-0xdf7);DATARMNETe70783182f->DATARMNET0dc393a345= +(0xd26+209-0xdf6);DATARMNETe70783182f->DATARMNET8a4e1d5aaa=(0xd26+209-0xdf6); +INIT_LIST_HEAD(&DATARMNETe70783182f->DATARMNET6de26f0feb);INIT_LIST_HEAD(& +DATARMNETe70783182f->DATARMNET742867e97a);trace_rmnet_shs_wq_low( +DATARMNET238d08f0df,DATARMNET4b15fcda7c,DATARMNETe70783182f->DATARMNET0bfc2b2c85 +,(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),DATARMNETe70783182f, +NULL);DATARMNET36e5e526fa(DATARMNETe70783182f);return DATARMNETe70783182f;}void +DATARMNET350f55bfca(struct DATARMNET63d7680df2*node_p){struct timespec time;if(! +node_p){DATARMNET68d84e7b98[DATARMNETac729c3d29]++;return;}node_p-> +DATARMNET341ea38662=DATARMNETb062995420();if(node_p->DATARMNET341ea38662!=NULL){ +(void)getnstimeofday(&time);node_p->DATARMNET341ea38662->hash=node_p->hash; +node_p->DATARMNET341ea38662->DATARMNET1e9d25d9ff=node_p->DATARMNET1e9d25d9ff; +node_p->DATARMNET341ea38662->DATARMNET7c894c2f8f=node_p->map_cpu;node_p-> +DATARMNET341ea38662->DATARMNET6e1a4eaf09=node_p->map_cpu;node_p-> +DATARMNET341ea38662->DATARMNET87636d0152=(0xd2d+202-0xdf7);if( +DATARMNETc252c204a8&&node_p->DATARMNET341ea38662->DATARMNET1e9d25d9ff== +IPPROTO_TCP)node_p->DATARMNET341ea38662->DATARMNET87636d0152=DATARMNET2f8c32c8eb +;node_p->DATARMNET341ea38662->DATARMNET63b1a086d5=node_p;node_p-> +DATARMNET341ea38662->DATARMNETadd51beef4=DATARMNETe6671dbf38(time.tv_sec)+time. +tv_nsec;node_p->DATARMNET341ea38662->DATARMNET68714ac92c=DATARMNETe6671dbf38( +time.tv_sec)+time.tv_nsec;}trace_rmnet_shs_wq_high(DATARMNET238d08f0df, +DATARMNET31d8e00b80,(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),(0x16e8+787-0xc0c), +(0x16e8+787-0xc0c),node_p,node_p->DATARMNET341ea38662);}static u64 +DATARMNETf553c2afd2(struct DATARMNET6c78e47d24*DATARMNETd2a694d52a){u64 +DATARMNET253a9fc708,DATARMNET950c035603;u16 DATARMNETab4cf0ad84, +DATARMNET0c72af011b;if(!DATARMNETd2a694d52a){DATARMNET68d84e7b98[ +DATARMNETac729c3d29]++;return(0xd2d+202-0xdf7);}if(DATARMNET362b15f941( +DATARMNETd2a694d52a->DATARMNET7c894c2f8f)){DATARMNETab4cf0ad84= +DATARMNETcab56af6d5;DATARMNET0c72af011b=(0xeb7+698-0x110d)-DATARMNETcab56af6d5;} +else{DATARMNET0c72af011b=DATARMNETcab56af6d5;DATARMNETab4cf0ad84= +(0xeb7+698-0x110d)-DATARMNETcab56af6d5;}if(DATARMNETd2a694d52a-> +DATARMNET6c2816c16a==(0xd2d+202-0xdf7)){DATARMNET253a9fc708=DATARMNETd2a694d52a +->DATARMNET324c1a8f98;}else{DATARMNET950c035603=(DATARMNETd2a694d52a-> +DATARMNET6c2816c16a+DATARMNETd2a694d52a->DATARMNET253a9fc708)/(0xd1f+216-0xdf5); +DATARMNET253a9fc708=(((DATARMNETab4cf0ad84*DATARMNETd2a694d52a-> +DATARMNET324c1a8f98)+(DATARMNET0c72af011b*DATARMNET950c035603))/( +DATARMNETab4cf0ad84+DATARMNET0c72af011b));}return DATARMNET253a9fc708;}static +u64 DATARMNET183789850d(u16 DATARMNET42a992465f){u64 DATARMNET253a9fc708, +DATARMNET950c035603;u16 DATARMNETab4cf0ad84,DATARMNET0c72af011b;struct +DATARMNET228056d4b7*DATARMNETf632b170b1;struct DATARMNETc8fdbf9c85* +DATARMNET7bea4a06a6=&DATARMNET6cdd58e74c;if(DATARMNET42a992465f>= +DATARMNETc6782fed88){DATARMNET68d84e7b98[DATARMNET54b67b8a75]++;return +(0xd2d+202-0xdf7);}DATARMNETf632b170b1=&DATARMNET7bea4a06a6->DATARMNET73464778dc +[DATARMNET42a992465f];if(DATARMNET362b15f941(DATARMNET42a992465f)){ +DATARMNETab4cf0ad84=DATARMNETcab56af6d5;DATARMNET0c72af011b=(0xeb7+698-0x110d)- +DATARMNETcab56af6d5;}else{DATARMNET0c72af011b=DATARMNETcab56af6d5; +DATARMNETab4cf0ad84=(0xeb7+698-0x110d)-DATARMNETcab56af6d5;}if( +DATARMNETf632b170b1->DATARMNET27c3925eff==(0xd2d+202-0xdf7)){DATARMNET253a9fc708 +=DATARMNETf632b170b1->DATARMNET253a9fc708;}else{DATARMNET950c035603=( +DATARMNETf632b170b1->DATARMNET27c3925eff+DATARMNETf632b170b1-> +DATARMNET253a9fc708)/(0xd1f+216-0xdf5);DATARMNET253a9fc708=((( +DATARMNETab4cf0ad84*DATARMNETf632b170b1->DATARMNET324c1a8f98)+( +DATARMNET0c72af011b*DATARMNET950c035603))/(DATARMNETab4cf0ad84+ +DATARMNET0c72af011b));}trace_rmnet_shs_wq_high(DATARMNET39a68a0eba, +DATARMNETde65aa00a6,DATARMNET42a992465f,DATARMNETf632b170b1->DATARMNET324c1a8f98 +,DATARMNETf632b170b1->DATARMNET27c3925eff,DATARMNET253a9fc708,NULL,NULL);return +DATARMNET253a9fc708;}void DATARMNET0aa47ce397(struct DATARMNET6c78e47d24* +DATARMNET7b2c1bbf38){struct DATARMNET63d7680df2*node_p=NULL;struct +DATARMNET9b44b71ee9*ep=NULL;if(!DATARMNET7b2c1bbf38){DATARMNET68d84e7b98[ +DATARMNETac729c3d29]++;return;}node_p=DATARMNET7b2c1bbf38->DATARMNET63b1a086d5; +list_for_each_entry(ep,&DATARMNET30a3e83974,DATARMNET0763436b8d){if(ep&&(node_p +->dev==ep->ep)){DATARMNET7b2c1bbf38->DATARMNET9fb369ce5f=ep->DATARMNET9fb369ce5f +;DATARMNET7b2c1bbf38->DATARMNET399c840115=ep->DATARMNET24a91635db; +DATARMNET7b2c1bbf38->DATARMNET1a1d89d417=ep->DATARMNET1a1d89d417;if( +DATARMNET7b2c1bbf38->DATARMNET1e9d25d9ff==IPPROTO_TCP){rm_err( +"\x53\x48\x53\x5f\x54\x43\x50\x3a\x20\x61\x64\x64\x69\x6e\x67\x20\x54\x43\x50\x20\x62\x70\x73\x20\x25\x6c\x75\x20\x74\x6f\x20\x65\x70\x5f\x74\x6f\x74\x61\x6c\x20\x25\x6c\x75\x20\x65\x70\x20\x6e\x61\x6d\x65\x20\x25\x73" +,DATARMNET7b2c1bbf38->DATARMNETbb80fccd97,ep->DATARMNET4eb77c78e6,node_p->dev-> +name);ep->DATARMNET4eb77c78e6+=DATARMNET7b2c1bbf38->DATARMNETbb80fccd97;}else if +(DATARMNET7b2c1bbf38->DATARMNET1e9d25d9ff==IPPROTO_UDP){rm_err( +"\x53\x48\x53\x5f\x55\x44\x50\x3a\x20\x61\x64\x64\x69\x6e\x67\x20\x55\x44\x50\x20\x72\x78\x5f\x62\x70\x73\x20\x25\x6c\x75\x20\x74\x6f\x20\x65\x70\x5f\x74\x6f\x74\x61\x6c\x20\x25\x6c\x75\x20\x65\x70\x20\x6e\x61\x6d\x65\x20\x25\x73" +,DATARMNET7b2c1bbf38->DATARMNETbb80fccd97,ep->DATARMNET257fc4b2d4,node_p->dev-> +name);ep->DATARMNET257fc4b2d4+=DATARMNET7b2c1bbf38->DATARMNETbb80fccd97;}break;} +}trace_rmnet_shs_wq_low(DATARMNET394831f22a,DATARMNET35902389b3, +DATARMNET7b2c1bbf38->DATARMNET9fb369ce5f,DATARMNET7b2c1bbf38-> +DATARMNET399c840115,DATARMNET7b2c1bbf38->DATARMNET1a1d89d417,(0x16e8+787-0xc0c), +DATARMNET7b2c1bbf38,node_p);}void DATARMNETc55315279b(struct DATARMNET6c78e47d24 +*DATARMNETdbe9f3dbe3,struct DATARMNET63d7680df2*node_p){int idx= +DATARMNETe038d33545;if(!DATARMNET58b009b16b)return;if(!DATARMNETdbe9f3dbe3||! +node_p){DATARMNET68d84e7b98[DATARMNETac729c3d29]++;return;}if( +DATARMNETdbe9f3dbe3->DATARMNETb5f5519502<(0xd2d+202-0xdf7)){idx=idx% +DATARMNET2f9ea73326;DATARMNETdbe9f3dbe3->DATARMNETb5f5519502=idx; +DATARMNETe038d33545++;}DATARMNETbf3b6fdfc8[DATARMNETdbe9f3dbe3-> +DATARMNETb5f5519502]=DATARMNETdbe9f3dbe3->hash;DATARMNET0fec241216[ +DATARMNETdbe9f3dbe3->DATARMNETb5f5519502]=node_p->DATARMNET1e9d25d9ff; +DATARMNET9e5e8e4048[DATARMNETdbe9f3dbe3->DATARMNETb5f5519502]= +DATARMNET36cfa76181(DATARMNETdbe9f3dbe3->DATARMNET42ceaf5cc2); +DATARMNET4b1ae621cd[DATARMNETdbe9f3dbe3->DATARMNETb5f5519502]= +DATARMNETdbe9f3dbe3->DATARMNETbb80fccd97;DATARMNETf5133a99c6[DATARMNETdbe9f3dbe3 +->DATARMNETb5f5519502]=DATARMNETdbe9f3dbe3->DATARMNET324c1a8f98; +DATARMNET47956cbb0f[DATARMNETdbe9f3dbe3->DATARMNETb5f5519502]= +DATARMNETdbe9f3dbe3->rx_bytes;DATARMNET338c8e7a2b[DATARMNETdbe9f3dbe3-> +DATARMNETb5f5519502]=DATARMNETdbe9f3dbe3->DATARMNET4b4a76b094; +DATARMNETdba344c809[DATARMNETdbe9f3dbe3->DATARMNETb5f5519502]= +DATARMNETdbe9f3dbe3->DATARMNET7c894c2f8f;DATARMNET99a934c43a[DATARMNETdbe9f3dbe3 +->DATARMNETb5f5519502]=DATARMNETdbe9f3dbe3->DATARMNET6e1a4eaf09; +DATARMNETc5d73c43e6[DATARMNETdbe9f3dbe3->DATARMNETb5f5519502]= +DATARMNETdbe9f3dbe3->DATARMNET61e1ee0e95[DATARMNETed5a873a00]; +DATARMNETf4aa8ec23f[DATARMNETdbe9f3dbe3->DATARMNETb5f5519502]= +DATARMNETdbe9f3dbe3->DATARMNET61e1ee0e95[DATARMNETd7a3f55a51]; +DATARMNET6d75219ffb[DATARMNETdbe9f3dbe3->DATARMNETb5f5519502]= +DATARMNETdbe9f3dbe3->DATARMNET61e1ee0e95[DATARMNETefe8657028];}u8 +DATARMNETd245b71b63(struct DATARMNET6c78e47d24*DATARMNETdbe9f3dbe3,struct +DATARMNET63d7680df2*node_p){if(!DATARMNETdbe9f3dbe3||!node_p){ +DATARMNET68d84e7b98[DATARMNETac729c3d29]++;return(0xd2d+202-0xdf7);}if(node_p-> +DATARMNET11930c5df8==DATARMNETdbe9f3dbe3->DATARMNET4b4a76b094)return +(0xd2d+202-0xdf7);return(0xd26+209-0xdf6);}void DATARMNETb49b4f6385(struct +DATARMNET6c78e47d24*DATARMNETdbe9f3dbe3,struct DATARMNET63d7680df2*node_p){ +time_t DATARMNET96f21fddc1;if(!DATARMNETdbe9f3dbe3||!node_p){DATARMNET68d84e7b98 +[DATARMNETac729c3d29]++;return;}DATARMNET96f21fddc1=DATARMNETb3a4036d6d- +DATARMNETdbe9f3dbe3->DATARMNETadd51beef4;DATARMNETdbe9f3dbe3-> +DATARMNET42ceaf5cc2=DATARMNET96f21fddc1;trace_rmnet_shs_wq_low( +DATARMNET394831f22a,DATARMNET08cee5b48c,DATARMNETdbe9f3dbe3->hash, +DATARMNET96f21fddc1,(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),DATARMNETdbe9f3dbe3, +NULL);}void DATARMNET9a7769cf21(struct DATARMNET6c78e47d24*DATARMNETdbe9f3dbe3){ +time_t DATARMNET96f21fddc1;u64 DATARMNETee9f72f13f,DATARMNET539a572f34, +DATARMNET33b006454e;struct DATARMNET63d7680df2*node_p;if(!DATARMNETdbe9f3dbe3){ +DATARMNET68d84e7b98[DATARMNETac729c3d29]++;return;}node_p=DATARMNETdbe9f3dbe3-> +DATARMNET63b1a086d5;if(!DATARMNETd245b71b63(DATARMNETdbe9f3dbe3,node_p)){ +DATARMNETdbe9f3dbe3->DATARMNET324c1a8f98=(0xd2d+202-0xdf7);DATARMNETdbe9f3dbe3-> +DATARMNET253a9fc708=(0xd2d+202-0xdf7);DATARMNETdbe9f3dbe3->DATARMNETbb80fccd97= +(0xd2d+202-0xdf7);DATARMNETb49b4f6385(DATARMNETdbe9f3dbe3,node_p); +DATARMNETc55315279b(DATARMNETdbe9f3dbe3,node_p);return;}trace_rmnet_shs_wq_low( +DATARMNET394831f22a,DATARMNET91e905574d,DATARMNETdbe9f3dbe3->hash, +(0x16e8+787-0xc0c),DATARMNETdbe9f3dbe3->DATARMNET324c1a8f98,DATARMNETdbe9f3dbe3 +->DATARMNETbb80fccd97,DATARMNETdbe9f3dbe3,NULL);DATARMNET0aa47ce397( +DATARMNETdbe9f3dbe3);DATARMNETdbe9f3dbe3->DATARMNET42ceaf5cc2=(0xd2d+202-0xdf7); +DATARMNETdbe9f3dbe3->DATARMNET68714ac92c=node_p->DATARMNET341ea38662-> +DATARMNETadd51beef4;DATARMNETdbe9f3dbe3->DATARMNET6edbc8b649=node_p-> +DATARMNET341ea38662->DATARMNET4b4a76b094;DATARMNETdbe9f3dbe3-> +DATARMNET4025a4ec90=node_p->DATARMNET341ea38662->DATARMNETa7352711af; +DATARMNETdbe9f3dbe3->DATARMNETde6a309f37=node_p->DATARMNET341ea38662->rx_bytes; +DATARMNETdbe9f3dbe3->DATARMNETadd51beef4=DATARMNETb3a4036d6d;DATARMNETdbe9f3dbe3 +->DATARMNET4b4a76b094=node_p->DATARMNET11930c5df8;DATARMNETdbe9f3dbe3-> +DATARMNETa7352711af=node_p->DATARMNETa8940e4a7b;DATARMNETdbe9f3dbe3->rx_bytes= +node_p->DATARMNET2594c418db;DATARMNET96f21fddc1=(DATARMNETdbe9f3dbe3-> +DATARMNETadd51beef4-DATARMNETdbe9f3dbe3->DATARMNET68714ac92c); +DATARMNETee9f72f13f=DATARMNETdbe9f3dbe3->DATARMNET4b4a76b094-DATARMNETdbe9f3dbe3 +->DATARMNET6edbc8b649;DATARMNET539a572f34=DATARMNETdbe9f3dbe3-> +DATARMNETa7352711af-DATARMNETdbe9f3dbe3->DATARMNET4025a4ec90;DATARMNET33b006454e +=DATARMNETdbe9f3dbe3->rx_bytes-DATARMNETdbe9f3dbe3->DATARMNETde6a309f37; +DATARMNETd2da2e8466( +"\x53\x48\x53\x5f\x53\x45\x47\x53\x3a\x20\x68\x61\x73\x68\x20\x30\x78\x25\x78\x20\x63\x6f\x61\x6c\x20\x73\x6b\x62\x20\x3d\x20\x25\x6c\x75\x20\x7c\x20\x6c\x61\x73\x74\x20\x63\x6f\x61\x6c\x20\x73\x6b\x62\x20\x3d\x20\x25\x6c\x75\x20\x7c\x20\x72\x78\x20\x73\x6b\x62\x20\x3d\x20\x25\x6c\x75\x20\x7c\x20\x6c\x61\x73\x74\x20\x72\x78\x20\x73\x6b\x62\x20\x25\x6c\x75" +,DATARMNETdbe9f3dbe3->hash,DATARMNETdbe9f3dbe3->DATARMNETa7352711af, +DATARMNETdbe9f3dbe3->DATARMNET4025a4ec90,DATARMNETdbe9f3dbe3-> +DATARMNET4b4a76b094,DATARMNETdbe9f3dbe3->DATARMNET6edbc8b649); +DATARMNETdbe9f3dbe3->DATARMNET324c1a8f98=DATARMNET855e9d7062(DATARMNETee9f72f13f +)/(DATARMNET96f21fddc1);DATARMNETdbe9f3dbe3->DATARMNETbb80fccd97= +DATARMNET855e9d7062(DATARMNET33b006454e)/(DATARMNET96f21fddc1); +DATARMNETdbe9f3dbe3->DATARMNETbb80fccd97=DATARMNET64577537b7(DATARMNETdbe9f3dbe3 +->DATARMNETbb80fccd97);DATARMNETdbe9f3dbe3->DATARMNET253a9fc708= +DATARMNETf553c2afd2(DATARMNETdbe9f3dbe3);if(DATARMNET539a572f34> +(0xd2d+202-0xdf7)){DATARMNETdbe9f3dbe3->DATARMNET95266642d1=DATARMNETee9f72f13f/ +DATARMNET539a572f34;DATARMNETd2da2e8466( +"\x53\x48\x53\x5f\x53\x45\x47\x53\x3a\x20\x61\x76\x67\x20\x73\x65\x67\x73\x20\x3d\x20\x25\x6c\x75\x20\x73\x6b\x62\x5f\x64\x69\x66\x66\x20\x3d\x20\x25\x6c\x75\x20\x63\x6f\x61\x6c\x5f\x73\x6b\x62\x5f\x64\x69\x66\x66\x20\x3d\x20\x25\x6c\x75" +,DATARMNETdbe9f3dbe3->DATARMNET95266642d1,DATARMNETee9f72f13f, +DATARMNET539a572f34);}else{DATARMNETdbe9f3dbe3->DATARMNET95266642d1= +(0xd2d+202-0xdf7);}DATARMNETdbe9f3dbe3->DATARMNET6c2816c16a=DATARMNETdbe9f3dbe3 +->DATARMNET324c1a8f98;DATARMNETc55315279b(DATARMNETdbe9f3dbe3,node_p); +trace_rmnet_shs_wq_high(DATARMNET394831f22a,DATARMNETb0ed796e8c, +DATARMNETdbe9f3dbe3->hash,DATARMNETdbe9f3dbe3->DATARMNET324c1a8f98, +DATARMNETdbe9f3dbe3->DATARMNETbb80fccd97,(DATARMNET96f21fddc1/1000000), +DATARMNETdbe9f3dbe3,NULL);}static void DATARMNET33f47350f0(u16 cpu,struct +DATARMNET228056d4b7*DATARMNETcf7ef40ff9){if(!DATARMNET58b009b16b)return;if(cpu>= +DATARMNETc6782fed88){DATARMNET68d84e7b98[DATARMNET54b67b8a75]++;return;}if(! +DATARMNETcf7ef40ff9){DATARMNET68d84e7b98[DATARMNETac729c3d29]++;return;} +DATARMNET79263b1183[cpu]=DATARMNETcf7ef40ff9->DATARMNETbb80fccd97; +DATARMNET229d52b629[cpu]=DATARMNETcf7ef40ff9->DATARMNET324c1a8f98; +DATARMNET18f2ba4444[cpu]=DATARMNETcf7ef40ff9->flows;DATARMNET77240d48ee[cpu]= +DATARMNETcf7ef40ff9->rx_bytes;DATARMNET77189ab85c[cpu]=DATARMNETcf7ef40ff9-> +DATARMNET7fc41d655d;DATARMNETd27ed7efea[cpu]=DATARMNETcf7ef40ff9-> +DATARMNET69770f8ef7;DATARMNET377ecf13ca[cpu]=DATARMNETcf7ef40ff9-> +DATARMNET17380ba0f8;}static void DATARMNET8b2fb5dc3c(void){struct +DATARMNETc8fdbf9c85*DATARMNET3c48cbf7e4=&DATARMNET6cdd58e74c;struct rmnet_port* +port;u64 DATARMNETe3ed6089ca,byte_diff;time_t DATARMNET96f21fddc1; +DATARMNET3c48cbf7e4->DATARMNET601156672d=DATARMNET3c48cbf7e4-> +DATARMNET4947607c52;DATARMNET3c48cbf7e4->DATARMNETbfe25a2160=DATARMNET3c48cbf7e4 +->DATARMNET903a2cea81;port=DATARMNETecc0627c70.port;if(!port){ +DATARMNET68d84e7b98[DATARMNET42b73d0f3f]++;return;}DATARMNET3c48cbf7e4-> +DATARMNET903a2cea81=port->stats.dl_hdr_total_pkts;DATARMNET3c48cbf7e4-> +DATARMNET4947607c52=port->stats.dl_hdr_total_bytes;DATARMNET96f21fddc1= +DATARMNETb3a4036d6d-DATARMNET3c48cbf7e4->DATARMNET68714ac92c;DATARMNETe3ed6089ca +=DATARMNET3c48cbf7e4->DATARMNET903a2cea81-DATARMNET3c48cbf7e4-> +DATARMNETbfe25a2160;byte_diff=DATARMNET3c48cbf7e4->DATARMNET4947607c52- +DATARMNET3c48cbf7e4->DATARMNET601156672d;DATARMNET3c48cbf7e4-> +DATARMNET3067b3dafd=DATARMNET855e9d7062(DATARMNETe3ed6089ca)/DATARMNET96f21fddc1 +;DATARMNET3c48cbf7e4->DATARMNET47334112aa=DATARMNET855e9d7062(byte_diff)/ +DATARMNET96f21fddc1;DATARMNET3c48cbf7e4->DATARMNET47334112aa=DATARMNET64577537b7 +(DATARMNET3c48cbf7e4->DATARMNET47334112aa);}static void DATARMNET0ce3f33785(void +){struct DATARMNETc8fdbf9c85*DATARMNET3c48cbf7e4=&DATARMNET6cdd58e74c;u64 +DATARMNETe3ed6089ca,byte_diff,DATARMNETccb5dc8a5c,DATARMNET4df302dbd6;time_t +DATARMNET96f21fddc1;DATARMNET96f21fddc1=DATARMNETb3a4036d6d-DATARMNET3c48cbf7e4 +->DATARMNET68714ac92c;DATARMNETe3ed6089ca=(DATARMNET3c48cbf7e4-> +DATARMNET7fc41d655d-DATARMNET3c48cbf7e4->DATARMNET9853a006ae);byte_diff= +DATARMNET3c48cbf7e4->rx_bytes-DATARMNET3c48cbf7e4->DATARMNETde6a309f37; +DATARMNETccb5dc8a5c=DATARMNET855e9d7062(DATARMNETe3ed6089ca)/DATARMNET96f21fddc1 +;DATARMNET4df302dbd6=DATARMNET855e9d7062(byte_diff)/DATARMNET96f21fddc1; +DATARMNET3c48cbf7e4->DATARMNET8233cb4988=DATARMNET3c48cbf7e4-> +DATARMNETbb80fccd97;DATARMNET3c48cbf7e4->DATARMNET27c3925eff=DATARMNET3c48cbf7e4 +->DATARMNET324c1a8f98;DATARMNET3c48cbf7e4->DATARMNETbb80fccd97= +DATARMNET64577537b7(DATARMNET4df302dbd6);DATARMNET3c48cbf7e4-> +DATARMNET324c1a8f98=DATARMNETccb5dc8a5c;DATARMNET3c48cbf7e4->DATARMNET68714ac92c +=DATARMNETb3a4036d6d;DATARMNET3c48cbf7e4->DATARMNETde6a309f37= +DATARMNET3c48cbf7e4->rx_bytes;DATARMNET3c48cbf7e4->DATARMNET9853a006ae= +DATARMNET3c48cbf7e4->DATARMNET7fc41d655d;trace_rmnet_shs_wq_high( +DATARMNET0dd7951b5e,DATARMNET709474066f,DATARMNET3c48cbf7e4->DATARMNET324c1a8f98 +,DATARMNET3c48cbf7e4->DATARMNET3067b3dafd,DATARMNET3c48cbf7e4-> +DATARMNETbb80fccd97,DATARMNET3c48cbf7e4->DATARMNET47334112aa,NULL,NULL);}static +void DATARMNET73d2153565(u16 cpu){struct DATARMNET228056d4b7*DATARMNETcf7ef40ff9 +;time_t DATARMNET96f21fddc1;u64 DATARMNET55fffa9aa9,DATARMNETedf00aed6f;u64 +DATARMNET8233cb4988,DATARMNET27c3925eff;u32 DATARMNET8f1cb43b32;if(cpu>= +DATARMNETc6782fed88){DATARMNET68d84e7b98[DATARMNET54b67b8a75]++;return;} +DATARMNETcf7ef40ff9=&DATARMNET6cdd58e74c.DATARMNET73464778dc[cpu]; +DATARMNET55fffa9aa9=DATARMNETcf7ef40ff9->DATARMNET7fc41d655d-DATARMNETcf7ef40ff9 +->DATARMNET9853a006ae;DATARMNET8f1cb43b32=DATARMNETadb0248bd4(cpu);if( +DATARMNETcf7ef40ff9->DATARMNET14b0d18481==(0xd2d+202-0xdf7))DATARMNETcf7ef40ff9 +->DATARMNET14b0d18481=DATARMNET8f1cb43b32;DATARMNETcf7ef40ff9-> +DATARMNET8b9956a3f9=DATARMNETcf7ef40ff9->DATARMNETae196235f2;DATARMNETcf7ef40ff9 +->DATARMNETae196235f2=DATARMNET8f1cb43b32;DATARMNETcf7ef40ff9-> +DATARMNET69770f8ef7=DATARMNETcf7ef40ff9->DATARMNETae196235f2-DATARMNETcf7ef40ff9 +->DATARMNET8b9956a3f9;DATARMNETcf7ef40ff9->DATARMNET17380ba0f8= +DATARMNETcf7ef40ff9->DATARMNETae196235f2-DATARMNETcf7ef40ff9-> +DATARMNET14b0d18481;if(DATARMNET0997c5650d[cpu].DATARMNET1e1f197118) +DATARMNET0997c5650d[cpu].DATARMNET1e1f197118=(DATARMNET0997c5650d[cpu]. +DATARMNET1e1f197118+(0xd26+209-0xdf6))%(DATARMNETbe271c415b);if( +DATARMNET55fffa9aa9==(0xd2d+202-0xdf7)){DATARMNETcf7ef40ff9->DATARMNET68714ac92c +=DATARMNETb3a4036d6d;DATARMNETcf7ef40ff9->DATARMNETbb80fccd97=(0xd2d+202-0xdf7); +DATARMNETcf7ef40ff9->DATARMNET324c1a8f98=(0xd2d+202-0xdf7);DATARMNETcf7ef40ff9-> +DATARMNET253a9fc708=(0xd2d+202-0xdf7);if(DATARMNETc252c204a8){ +DATARMNETc6439e3d71(&DATARMNET6cdd58e74c,DATARMNETcf7ef40ff9,& +DATARMNETe46ae760db);}DATARMNET33f47350f0(cpu,DATARMNETcf7ef40ff9);return;} +DATARMNET96f21fddc1=DATARMNETb3a4036d6d-DATARMNETcf7ef40ff9->DATARMNET68714ac92c +;DATARMNETedf00aed6f=DATARMNETcf7ef40ff9->rx_bytes-DATARMNETcf7ef40ff9-> +DATARMNETde6a309f37;DATARMNET8233cb4988=DATARMNETcf7ef40ff9->DATARMNETbb80fccd97 +;DATARMNET27c3925eff=DATARMNETcf7ef40ff9->DATARMNET324c1a8f98; +DATARMNETcf7ef40ff9->DATARMNET324c1a8f98=DATARMNET855e9d7062(DATARMNET55fffa9aa9 +)/DATARMNET96f21fddc1;DATARMNETcf7ef40ff9->DATARMNETbb80fccd97= +DATARMNET855e9d7062(DATARMNETedf00aed6f)/DATARMNET96f21fddc1;DATARMNETcf7ef40ff9 +->DATARMNETbb80fccd97=DATARMNET64577537b7(DATARMNETcf7ef40ff9-> +DATARMNETbb80fccd97);DATARMNETcf7ef40ff9->DATARMNET253a9fc708= +DATARMNET183789850d(cpu);DATARMNETcf7ef40ff9->DATARMNET8233cb4988= +DATARMNET8233cb4988;DATARMNETcf7ef40ff9->DATARMNET27c3925eff=DATARMNET27c3925eff +;DATARMNETcf7ef40ff9->DATARMNET68714ac92c=DATARMNETb3a4036d6d; +DATARMNETcf7ef40ff9->DATARMNET9853a006ae=DATARMNETcf7ef40ff9-> +DATARMNET7fc41d655d;DATARMNETcf7ef40ff9->DATARMNETde6a309f37=DATARMNETcf7ef40ff9 +->rx_bytes;DATARMNETcf7ef40ff9->DATARMNETc0b20e240a=DATARMNETcf7ef40ff9-> +DATARMNETbb80fccd97;if(DATARMNETc252c204a8){DATARMNETc6439e3d71(& +DATARMNET6cdd58e74c,DATARMNETcf7ef40ff9,&DATARMNETe46ae760db);} +trace_rmnet_shs_wq_high(DATARMNET39a68a0eba,DATARMNET95d1ddcb1a,cpu, +DATARMNETcf7ef40ff9->flows,DATARMNETcf7ef40ff9->DATARMNET324c1a8f98, +DATARMNETcf7ef40ff9->DATARMNETbb80fccd97,NULL,NULL);DATARMNET33f47350f0(cpu, +DATARMNETcf7ef40ff9);}static void DATARMNET617b443145(void){u16 cpu; +trace_rmnet_shs_wq_high(DATARMNET39a68a0eba,DATARMNET6bde6a5171, +(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),NULL +,NULL);for(cpu=(0xd2d+202-0xdf7);cpu +DATARMNET63b1a086d5;if(DATARMNET7b2c1bbf38->DATARMNET42ceaf5cc2> +(0xd2d+202-0xdf7))return;DATARMNET42a992465f=node_p->map_cpu;if( +DATARMNET42a992465f>=DATARMNETc6782fed88){DATARMNET68d84e7b98[ +DATARMNET709b59b0e6]++;return;}DATARMNETee9f72f13f=DATARMNET7b2c1bbf38-> +DATARMNET4b4a76b094-DATARMNET7b2c1bbf38->DATARMNET6edbc8b649;byte_diff= +DATARMNET7b2c1bbf38->rx_bytes-DATARMNET7b2c1bbf38->DATARMNETde6a309f37;if( +DATARMNET7b2c1bbf38->DATARMNET8a4e1d5aaa){DATARMNETd8a6375e9c( +DATARMNET7b2c1bbf38,&DATARMNET3c48cbf7e4->DATARMNET73464778dc[ +DATARMNET42a992465f].DATARMNETab5c1e9ad5);rm_err( +"\x53\x48\x53\x5f\x46\x4c\x4f\x57\x3a\x20\x61\x64\x64\x69\x6e\x67\x20\x66\x6c\x6f\x77\x20\x30\x78\x25\x78\x20\x6f\x6e\x20\x63\x70\x75\x5b\x25\x64\x5d\x20" +"\x70\x70\x73\x3a\x20\x25\x6c\x6c\x75\x20\x7c\x20\x61\x76\x67\x5f\x70\x70\x73\x20\x25\x6c\x6c\x75" +,DATARMNET7b2c1bbf38->hash,DATARMNET7b2c1bbf38->DATARMNET7c894c2f8f, +DATARMNET7b2c1bbf38->DATARMNET324c1a8f98,DATARMNET7b2c1bbf38-> +DATARMNET253a9fc708);DATARMNET7b2c1bbf38->DATARMNET8a4e1d5aaa=(0xd2d+202-0xdf7); +}if(DATARMNET42a992465f!=DATARMNET7b2c1bbf38->DATARMNET7c894c2f8f){rm_err( +"\x53\x48\x53\x5f\x46\x4c\x4f\x57\x3a\x20\x6d\x6f\x76\x69\x6e\x67\x20\x66\x6c\x6f\x77\x20\x30\x78\x25\x78\x20\x6f\x6e\x20\x63\x70\x75\x5b\x25\x64\x5d\x20\x74\x6f\x20\x63\x70\x75\x5b\x25\x64\x5d\x20" +"\x70\x70\x73\x3a\x20\x25\x6c\x6c\x75\x20\x7c\x20\x61\x76\x67\x5f\x70\x70\x73\x20\x25\x6c\x6c\x75" +,DATARMNET7b2c1bbf38->hash,DATARMNET7b2c1bbf38->DATARMNET7c894c2f8f, +DATARMNET42a992465f,DATARMNET7b2c1bbf38->DATARMNET324c1a8f98,DATARMNET7b2c1bbf38 +->DATARMNET253a9fc708);trace_rmnet_shs_wq_high(DATARMNET394831f22a, +DATARMNET29c0bc0151,DATARMNET7b2c1bbf38->hash,DATARMNET7b2c1bbf38-> +DATARMNET7c894c2f8f,DATARMNET42a992465f,(0x16e8+787-0xc0c),DATARMNET7b2c1bbf38, +NULL);DATARMNET9914e9761e(DATARMNET7b2c1bbf38,&DATARMNET3c48cbf7e4-> +DATARMNET73464778dc[DATARMNET42a992465f].DATARMNETab5c1e9ad5); +DATARMNET0349051465(DATARMNET42a992465f);DATARMNET3669e7b703(DATARMNET7b2c1bbf38 +->DATARMNET7c894c2f8f);DATARMNET7b2c1bbf38->DATARMNET7c894c2f8f= +DATARMNET42a992465f;}DATARMNET3c48cbf7e4->DATARMNET73464778dc[ +DATARMNET42a992465f].DATARMNET7fc41d655d+=DATARMNETee9f72f13f; +DATARMNET3c48cbf7e4->DATARMNET73464778dc[DATARMNET42a992465f].rx_bytes+= +byte_diff;DATARMNET3c48cbf7e4->DATARMNET7fc41d655d+=DATARMNETee9f72f13f; +DATARMNET3c48cbf7e4->rx_bytes+=byte_diff;}void DATARMNETdfb8ee742f(u16 +DATARMNET035f475d5c,u16 DATARMNETcfb5dc7296,struct DATARMNET9b44b71ee9*ep){ +struct DATARMNET63d7680df2*node_p;struct DATARMNET6c78e47d24*DATARMNET7b2c1bbf38 +;u16 bkt;hash_for_each(DATARMNETe603c3a4b3,bkt,node_p,list){if(!node_p)continue; +if(!node_p->DATARMNET341ea38662)continue;DATARMNET7b2c1bbf38=node_p-> +DATARMNET341ea38662;if((DATARMNET7b2c1bbf38->DATARMNET6e1a4eaf09== +DATARMNET035f475d5c)&&(node_p->dev==ep->ep)){trace_rmnet_shs_wq_high( +DATARMNET394831f22a,DATARMNET45edcec1e4,DATARMNET7b2c1bbf38->hash, +DATARMNET7b2c1bbf38->DATARMNET6e1a4eaf09,DATARMNETcfb5dc7296,(0x16e8+787-0xc0c), +DATARMNET7b2c1bbf38,NULL);node_p->DATARMNET341ea38662->DATARMNET6e1a4eaf09= +DATARMNETcfb5dc7296;}}}static void DATARMNETc2de347e4d(u32 DATARMNETa3f89581b5, +struct DATARMNET6c78e47d24*DATARMNET7b2c1bbf38){if(DATARMNETa3f89581b5>= +DATARMNET3563036124||DATARMNET7b2c1bbf38==NULL)return;DATARMNET7b2c1bbf38-> +DATARMNET61e1ee0e95[DATARMNETa3f89581b5]+=(0xd26+209-0xdf6);}static int +DATARMNET6f56fe7597(u16 DATARMNET035f475d5c,u16 DATARMNETcfb5dc7296,struct +DATARMNET9b44b71ee9*ep,u32 DATARMNET4da4612f1e,u32 DATARMNETa3f89581b5){struct +DATARMNET63d7680df2*node_p;struct DATARMNET6c78e47d24*DATARMNET7b2c1bbf38;int rc +=(0xd2d+202-0xdf7);u16 bkt;if(!ep){DATARMNET68d84e7b98[DATARMNETb8fe2c0e64]++; +return(0xd2d+202-0xdf7);}if(DATARMNET035f475d5c>=DATARMNETc6782fed88|| +DATARMNETcfb5dc7296>=DATARMNETc6782fed88){DATARMNET68d84e7b98[ +DATARMNET54b67b8a75]++;return(0xd2d+202-0xdf7);}hash_for_each( +DATARMNETe603c3a4b3,bkt,node_p,list){if(!node_p)continue;if(!node_p-> +DATARMNET341ea38662)continue;DATARMNET7b2c1bbf38=node_p->DATARMNET341ea38662;if( +DATARMNET4da4612f1e!=(0xd2d+202-0xdf7)){if(DATARMNET7b2c1bbf38->hash!= +DATARMNET4da4612f1e)continue;}rm_err( +"\x53\x48\x53\x5f\x48\x54\x3a\x20\x3e\x3e\x20\x20\x73\x75\x67\x67\x20\x63\x70\x75\x20\x25\x64\x20\x7c\x20\x6f\x6c\x64\x20\x63\x70\x75\x20\x25\x64\x20\x7c\x20\x6e\x65\x77\x5f\x63\x70\x75\x20\x25\x64\x20\x7c\x20" +"\x6d\x61\x70\x5f\x63\x70\x75\x20\x3d\x20\x25\x64\x20\x7c\x20\x66\x6c\x6f\x77\x20\x30\x78\x25\x78" +,DATARMNET7b2c1bbf38->DATARMNET6e1a4eaf09,DATARMNET035f475d5c, +DATARMNETcfb5dc7296,node_p->map_cpu,DATARMNET4da4612f1e);if((DATARMNET7b2c1bbf38 +->DATARMNET6e1a4eaf09==DATARMNET035f475d5c)&&(node_p->dev==ep->ep)){ +trace_rmnet_shs_wq_high(DATARMNET394831f22a,DATARMNET45edcec1e4, +DATARMNET7b2c1bbf38->hash,DATARMNET7b2c1bbf38->DATARMNET6e1a4eaf09, +DATARMNETcfb5dc7296,(0x16e8+787-0xc0c),DATARMNET7b2c1bbf38,NULL);node_p-> +DATARMNET341ea38662->DATARMNET6e1a4eaf09=DATARMNETcfb5dc7296;DATARMNETc2de347e4d +(DATARMNETa3f89581b5,DATARMNET7b2c1bbf38);if(DATARMNET4da4612f1e){rm_err( +"\x53\x48\x53\x5f\x43\x48\x4e\x47\x3a\x20\x6d\x6f\x76\x69\x6e\x67\x20\x73\x69\x6e\x67\x6c\x65\x20\x66\x6c\x6f\x77\x3a\x20\x66\x6c\x6f\x77\x20\x30\x78\x25\x78\x20" +"\x73\x75\x67\x67\x5f\x63\x70\x75\x20\x63\x68\x61\x6e\x67\x65\x64\x20\x66\x72\x6f\x6d\x20\x25\x64\x20\x74\x6f\x20\x25\x64" +,DATARMNET7b2c1bbf38->hash,DATARMNET035f475d5c,node_p->DATARMNET341ea38662-> +DATARMNET6e1a4eaf09);return(0xd26+209-0xdf6);}rm_err( +"\x53\x48\x53\x5f\x43\x48\x4e\x47\x3a\x20\x6d\x6f\x76\x69\x6e\x67\x20\x61\x6c\x6c\x20\x66\x6c\x6f\x77\x73\x3a\x20\x66\x6c\x6f\x77\x20\x30\x78\x25\x78\x20" +"\x73\x75\x67\x67\x5f\x63\x70\x75\x20\x63\x68\x61\x6e\x67\x65\x64\x20\x66\x72\x6f\x6d\x20\x25\x64\x20\x74\x6f\x20\x25\x64" +,DATARMNET7b2c1bbf38->hash,DATARMNET035f475d5c,node_p->DATARMNET341ea38662-> +DATARMNET6e1a4eaf09);rc|=(0xd26+209-0xdf6);}}return rc;}u64 DATARMNETd406e89a85( +u32 DATARMNETfaedbb66a9){int DATARMNET42a992465f;u64 DATARMNET5a8059a7ce= +(0xd2d+202-0xdf7);struct DATARMNETc8fdbf9c85*DATARMNET7bea4a06a6=& +DATARMNET6cdd58e74c;for(DATARMNET42a992465f=(0xd2d+202-0xdf7); +DATARMNET42a992465fDATARMNET73464778dc[DATARMNET42a992465f]. +DATARMNET324c1a8f98>DATARMNET5a8059a7ce)){DATARMNET5a8059a7ce= +DATARMNET7bea4a06a6->DATARMNET73464778dc[DATARMNET42a992465f]. +DATARMNET324c1a8f98;}}return DATARMNET5a8059a7ce;}int DATARMNET362c14e98b(u16 +DATARMNETfaedbb66a9){struct DATARMNETc8fdbf9c85*DATARMNET7bea4a06a6=& +DATARMNET6cdd58e74c;struct DATARMNET228056d4b7*DATARMNET65385af8a0;u64 +DATARMNET609049f7b7=U64_MAX;u32 DATARMNET84d36cfd28=U32_MAX;int +DATARMNETbd864aa442=-(0xd26+209-0xdf6);int DATARMNETd415a9f9bd=- +(0xd26+209-0xdf6);int DATARMNETb6773d2790=-(0xd26+209-0xdf6);int +DATARMNET42a992465f=(0xd2d+202-0xdf7);u16 DATARMNETdebcca6b26;for( +DATARMNET42a992465f=(0xd2d+202-0xdf7);DATARMNET42a992465fDATARMNET73464778dc[ +DATARMNET42a992465f];trace_rmnet_shs_wq_low(DATARMNET39a68a0eba, +DATARMNET55cd50e666,DATARMNET42a992465f,DATARMNET65385af8a0->DATARMNET324c1a8f98 +,DATARMNET609049f7b7,(0xd2d+202-0xdf7),NULL,NULL);if(DATARMNET65385af8a0->flows +==(0xd2d+202-0xdf7)){DATARMNETb6773d2790=DATARMNET42a992465f;break;}if( +DATARMNET65385af8a0->DATARMNET324c1a8f98==(0xd2d+202-0xdf7)&&DATARMNET65385af8a0 +->flowsflows; +DATARMNETd415a9f9bd=DATARMNET42a992465f;}if(DATARMNET65385af8a0-> +DATARMNET324c1a8f98<=DATARMNET609049f7b7){DATARMNET609049f7b7= +DATARMNET65385af8a0->DATARMNET324c1a8f98;DATARMNETbd864aa442=DATARMNET42a992465f +;}}if(DATARMNETb6773d2790>=(0xd2d+202-0xdf7))DATARMNETbd864aa442= +DATARMNETb6773d2790;else if(DATARMNETd415a9f9bd>=(0xd2d+202-0xdf7)) +DATARMNETbd864aa442=DATARMNETd415a9f9bd;return DATARMNETbd864aa442;}u16 +DATARMNET3c1fc10379(u16 DATARMNET7c894c2f8f,struct DATARMNET9b44b71ee9*ep){ +struct DATARMNETc8fdbf9c85*DATARMNET7bea4a06a6=&DATARMNET6cdd58e74c;struct +DATARMNET228056d4b7*DATARMNET373ff1422a,*DATARMNETd8755a1440;u64 +DATARMNETf115ef7639,DATARMNET64bef917cb,DATARMNET85bfb4b2ca;u64 +DATARMNET264b01f4d5,DATARMNET53ce143c7e=(0xd2d+202-0xdf7);u16 +DATARMNETd668725d64=DATARMNET7c894c2f8f;u16 DATARMNET42a992465f;u8 +DATARMNETca535905d7;u32 DATARMNETa7176e3ad8=(0xd2d+202-0xdf7);if(!ep){ +DATARMNET68d84e7b98[DATARMNETb8fe2c0e64]++;return DATARMNETd668725d64;} +DATARMNETd8755a1440=&DATARMNET7bea4a06a6->DATARMNET73464778dc[ +DATARMNET7c894c2f8f];DATARMNET85bfb4b2ca=DATARMNETd8755a1440-> +DATARMNET324c1a8f98;DATARMNET264b01f4d5=DATARMNET713717107f[DATARMNET7c894c2f8f] +;DATARMNET53ce143c7e=DATARMNET4793ed48af[DATARMNET7c894c2f8f];if(! +DATARMNET362b15f941(DATARMNET7c894c2f8f)&&(DATARMNET85bfb4b2ca> +DATARMNET53ce143c7e)){return DATARMNETd668725d64;}if(DATARMNET0997c5650d[ +DATARMNET7c894c2f8f].DATARMNET1e1f197118)return DATARMNET7c894c2f8f;for( +DATARMNET42a992465f=(0xd2d+202-0xdf7);DATARMNET42a992465fDATARMNET9fb369ce5f);if((DATARMNET42a992465f== +DATARMNET7c894c2f8f)||(!DATARMNETca535905d7)||!cpu_online(DATARMNET7c894c2f8f)) +continue;DATARMNET264b01f4d5=DATARMNET713717107f[DATARMNET42a992465f]; +DATARMNET53ce143c7e=DATARMNET4793ed48af[DATARMNET42a992465f];DATARMNET373ff1422a +=&DATARMNET7bea4a06a6->DATARMNET73464778dc[DATARMNET42a992465f]; +DATARMNETf115ef7639=DATARMNET373ff1422a->DATARMNET324c1a8f98;DATARMNET64bef917cb +=DATARMNETf115ef7639+DATARMNET85bfb4b2ca;trace_rmnet_shs_wq_low( +DATARMNET39a68a0eba,DATARMNETcd209744bd,DATARMNET7c894c2f8f,DATARMNET42a992465f, +DATARMNET64bef917cb,DATARMNETf115ef7639,NULL,NULL);if((DATARMNET64bef917cb> +DATARMNET53ce143c7e)&&(DATARMNET64bef917cbDATARMNET73464778dc[DATARMNETd668725d64].DATARMNET324c1a8f98,NULL,NULL);return + DATARMNETd668725d64;}void DATARMNET466244e5d6(u16 DATARMNETc790ff30fc){struct +DATARMNET9b44b71ee9*ep=NULL;u16 DATARMNETcfb5dc7296;list_for_each_entry(ep,& +DATARMNET30a3e83974,DATARMNET0763436b8d){if(!ep)continue;if(!ep-> +DATARMNET4a4e6f66b5)continue;DATARMNETcfb5dc7296=DATARMNET3c1fc10379( +DATARMNETc790ff30fc,ep);if(DATARMNETcfb5dc7296!=DATARMNETc790ff30fc) +DATARMNETdfb8ee742f(DATARMNETc790ff30fc,DATARMNETcfb5dc7296,ep);}}int +DATARMNET769bbe36c6(u16 DATARMNET7c894c2f8f,u16 DATARMNET208ea67e1d,struct +DATARMNET9b44b71ee9*ep){u16 DATARMNET553df5e12a=(0xd2d+202-0xdf7);if(!ep){ +DATARMNET68d84e7b98[DATARMNETb8fe2c0e64]++;return(0xd2d+202-0xdf7);}if( +DATARMNET7c894c2f8f>=DATARMNETc6782fed88||DATARMNET208ea67e1d>= +DATARMNETc6782fed88){DATARMNET68d84e7b98[DATARMNET54b67b8a75]++;return +(0xd2d+202-0xdf7);}DATARMNET553df5e12a=((0xd26+209-0xdf6)<DATARMNET9fb369ce5f;rm_err( +"\x53\x48\x53\x5f\x4d\x41\x53\x4b\x3a\x20\x20\x63\x75\x72\x20\x63\x70\x75\x20\x5b\x25\x64\x5d\x20\x7c\x20\x64\x65\x73\x74\x5f\x63\x70\x75\x20\x5b\x25\x64\x5d\x20\x7c\x20" +"\x65\x70\x5f\x72\x70\x73\x5f\x6d\x61\x73\x6b\x20\x3d\x20\x30\x78\x25\x78\x20\x7c\x20\x63\x70\x75\x5f\x6f\x6e\x6c\x69\x6e\x65\x28\x64\x65\x73\x74\x29\x20\x3d\x20\x25\x64" +"\x63\x70\x75\x5f\x69\x6e\x5f\x72\x70\x73\x5f\x6d\x61\x73\x6b\x20\x3d\x20\x25\x64\x20\x7c\x63\x70\x75\x20\x69\x73\x6f\x6c\x61\x74\x65\x64\x28\x64\x65\x73\x74\x29\x20\x3d\x20\x25\x64" +,DATARMNET7c894c2f8f,DATARMNET208ea67e1d,ep->DATARMNET9fb369ce5f,cpu_online( +DATARMNET208ea67e1d),DATARMNET553df5e12a,cpu_isolated(DATARMNET208ea67e1d));if( +DATARMNET7c894c2f8f==DATARMNET208ea67e1d||!cpu_online(DATARMNET208ea67e1d)||! +DATARMNET553df5e12a||cpu_isolated(DATARMNET208ea67e1d)){return(0xd2d+202-0xdf7); +}return(0xd26+209-0xdf6);}int DATARMNET5f72606f6f(u16 DATARMNETc790ff30fc,u16 +DATARMNET208ea67e1d,u32 DATARMNET4da4612f1e,u32 DATARMNETa3f89581b5){unsigned +long flags;struct DATARMNET9b44b71ee9*ep;if(DATARMNETc790ff30fc>= +DATARMNETc6782fed88||DATARMNET208ea67e1d>=DATARMNETc6782fed88){ +DATARMNET68d84e7b98[DATARMNET54b67b8a75]++;return(0xd2d+202-0xdf7);} +spin_lock_irqsave(&DATARMNETec2a4f5211,flags);list_for_each_entry(ep,& +DATARMNET30a3e83974,DATARMNET0763436b8d){if(!ep)continue;if(!ep-> +DATARMNET4a4e6f66b5)continue;if(!DATARMNET769bbe36c6(DATARMNETc790ff30fc, +DATARMNET208ea67e1d,ep)){rm_err( +"\x53\x48\x53\x5f\x46\x44\x45\x53\x43\x3a\x20\x3e\x3e\x20\x43\x61\x6e\x6e\x6f\x74\x20\x6d\x6f\x76\x65\x20\x66\x6c\x6f\x77\x20\x30\x78\x25\x78\x20\x6f\x6e\x20\x65\x70" +"\x20\x66\x72\x6f\x6d\x20\x63\x70\x75\x5b\x25\x64\x5d\x20\x74\x6f\x20\x63\x70\x75\x5b\x25\x64\x5d" +,DATARMNET4da4612f1e,DATARMNETc790ff30fc,DATARMNET208ea67e1d);continue;}if( +DATARMNET6f56fe7597(DATARMNETc790ff30fc,DATARMNET208ea67e1d,ep, +DATARMNET4da4612f1e,DATARMNETa3f89581b5)){rm_err( +"\x53\x48\x53\x5f\x46\x44\x45\x53\x43\x3a\x20\x3e\x3e\x20\x66\x6c\x6f\x77\x20\x30\x78\x25\x78\x20\x77\x61\x73\x20\x73\x75\x67\x67\x65\x73\x74\x65\x64\x20\x74\x6f" +"\x20\x6d\x6f\x76\x65\x20\x66\x72\x6f\x6d\x20\x63\x70\x75\x5b\x25\x64\x5d\x20\x74\x6f\x20\x63\x70\x75\x5b\x25\x64\x5d\x20\x73\x75\x67\x67\x5f\x74\x79\x70\x65\x20\x5b\x25\x64\x5d" +,DATARMNET4da4612f1e,DATARMNETc790ff30fc,DATARMNET208ea67e1d,DATARMNETa3f89581b5 +);spin_unlock_irqrestore(&DATARMNETec2a4f5211,flags);return(0xd26+209-0xdf6);}} +spin_unlock_irqrestore(&DATARMNETec2a4f5211,flags);return(0xd2d+202-0xdf7);}int +DATARMNETf85599b9d8(u32 DATARMNET8c11bd9466,u8 DATARMNET87636d0152){struct +DATARMNET63d7680df2*node_p;struct DATARMNET6c78e47d24*DATARMNET7b2c1bbf38; +unsigned long ht_flags;u16 bkt;spin_lock_irqsave(&DATARMNET3764d083f0,ht_flags); +hash_for_each(DATARMNETe603c3a4b3,bkt,node_p,list){if(!node_p)continue;if(! +node_p->DATARMNET341ea38662)continue;DATARMNET7b2c1bbf38=node_p-> +DATARMNET341ea38662;if(DATARMNET7b2c1bbf38->hash!=DATARMNET8c11bd9466)continue; +rm_err( +"\x53\x48\x53\x5f\x48\x54\x3a\x20\x3e\x3e\x20\x73\x65\x67\x6d\x65\x6e\x74\x61\x74\x69\x6f\x6e\x20\x6f\x6e\x20\x68\x61\x73\x68\x20\x30\x78\x25\x78\x20\x73\x65\x67\x73\x5f\x70\x65\x72\x5f\x73\x6b\x62\x20\x25\x75" +,DATARMNET8c11bd9466,DATARMNET87636d0152);trace_rmnet_shs_wq_high( +DATARMNET394831f22a,DATARMNET213a62da0d,DATARMNET7b2c1bbf38->hash, +DATARMNET87636d0152,(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),DATARMNET7b2c1bbf38, +NULL);node_p->DATARMNET341ea38662->DATARMNET87636d0152=DATARMNET87636d0152; +spin_unlock_irqrestore(&DATARMNET3764d083f0,ht_flags);return(0xd26+209-0xdf6);} +spin_unlock_irqrestore(&DATARMNET3764d083f0,ht_flags);rm_err( +"\x53\x48\x53\x5f\x48\x54\x3a\x20\x3e\x3e\x20\x73\x65\x67\x6d\x65\x6e\x74\x61\x74\x69\x6f\x6e\x20\x6f\x6e\x20\x68\x61\x73\x68\x20\x30\x78\x25\x78\x20\x73\x65\x67\x73\x5f\x70\x65\x72\x5f\x73\x6b\x62\x20\x25\x75\x20\x6e\x6f\x74\x20\x73\x65\x74\x20\x2d\x20\x68\x61\x73\x68\x20\x6e\x6f\x74\x20\x66\x6f\x75\x6e\x64" +,DATARMNET8c11bd9466,DATARMNET87636d0152);return(0xd2d+202-0xdf7);}void +DATARMNET5e1aaed12b(void){struct DATARMNETc8fdbf9c85*DATARMNET7bea4a06a6=& +DATARMNET6cdd58e74c;struct DATARMNET228056d4b7*DATARMNETf632b170b1;struct +DATARMNET6c78e47d24*DATARMNETd2a694d52a;int flows,i;u16 DATARMNET42a992465f= +(0xd2d+202-0xdf7);if(!DATARMNETdfb4d931bc)return;for(DATARMNET42a992465f= +(0xd2d+202-0xdf7);DATARMNET42a992465fDATARMNET73464778dc[ +DATARMNET42a992465f];flows=DATARMNET7bea4a06a6->DATARMNET73464778dc[ +DATARMNET42a992465f].flows;rm_err( +"\x53\x48\x53\x5f\x43\x50\x55\x3a\x20\x63\x70\x75\x5b\x25\x64\x5d\x3a\x20\x66\x6c\x6f\x77\x73\x3d\x25\x64\x20\x70\x70\x73\x3d\x25\x6c\x6c\x75\x20\x62\x70\x73\x3d\x25\x6c\x6c\x75\x20" +"\x71\x68\x65\x61\x64\x5f\x64\x69\x66\x66\x20\x25\x75\x20\x71\x68\x65\x61\x64\x5f\x74\x6f\x74\x61\x6c\x20\x3d\x20\x25\x75\x20\x71\x68\x65\x61\x64\x5f\x73\x74\x61\x72\x74\x20\x3d\x20\x25\x75\x20" +"\x71\x68\x65\x61\x64\x20\x3d\x20\x25\x75\x20\x71\x68\x65\x61\x64\x5f\x6c\x61\x73\x74\x20\x3d\x20\x25\x75\x20\x69\x73\x6f\x6c\x61\x74\x65\x64\x20\x3d\x20\x25\x64\x20" +,DATARMNET42a992465f,flows,DATARMNETf632b170b1->DATARMNET324c1a8f98, +DATARMNETf632b170b1->DATARMNETbb80fccd97,DATARMNETf632b170b1-> +DATARMNET69770f8ef7,DATARMNETf632b170b1->DATARMNET17380ba0f8,DATARMNETf632b170b1 +->DATARMNET14b0d18481,DATARMNETf632b170b1->DATARMNETae196235f2, +DATARMNETf632b170b1->DATARMNET8b9956a3f9,cpu_isolated(DATARMNET42a992465f)); +list_for_each_entry(DATARMNETd2a694d52a,&DATARMNET9825511866,DATARMNET6de26f0feb +){if(!DATARMNETd2a694d52a)continue;if(DATARMNETd2a694d52a->DATARMNET0dc393a345== +(0xd2d+202-0xdf7))continue;if(DATARMNETd2a694d52a->DATARMNET63b1a086d5){if( +DATARMNETd2a694d52a->DATARMNET7c894c2f8f==DATARMNET42a992465f)rm_err( +"\x53\x48\x53\x5f\x43\x50\x55\x3a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3e\x20\x66\x6c\x6f\x77\x20\x30\x78\x25\x78\x20" +"\x77\x69\x74\x68\x20\x70\x70\x73\x20\x25\x6c\x6c\x75\x20\x61\x76\x67\x5f\x70\x70\x73\x20\x25\x6c\x6c\x75\x20\x72\x78\x5f\x62\x70\x73\x20\x25\x6c\x6c\x75\x20" +,DATARMNETd2a694d52a->hash,DATARMNETd2a694d52a->DATARMNET324c1a8f98, +DATARMNETd2a694d52a->DATARMNET253a9fc708,DATARMNETd2a694d52a-> +DATARMNETbb80fccd97);}}for(i=(0xd2d+202-0xdf7);i<(0xd18+223-0xdf4)-flows;i++){ +rm_err("\x25\x73", +"\x53\x48\x53\x5f\x43\x50\x55\x3a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3e\x20"); +}}}void DATARMNET468586cca6(struct list_head*DATARMNETb436c3f30b){struct +DATARMNET09a412b1c6*DATARMNET4238158b2a;if(!DATARMNETdfb4d931bc)return;if(! +DATARMNETb436c3f30b){rm_err("\x25\x73", +"\x53\x48\x53\x5f\x47\x44\x4d\x41\x3a\x20\x47\x6f\x6c\x64\x20\x46\x6c\x6f\x77\x73\x20\x4c\x69\x73\x74\x20\x69\x73\x20\x4e\x55\x4c\x4c" +);return;}rm_err("\x25\x73", +"\x53\x48\x53\x5f\x47\x44\x4d\x41\x3a\x20\x4c\x69\x73\x74\x20\x6f\x66\x20\x73\x6f\x72\x74\x65\x64\x20\x67\x6f\x6c\x64\x20\x66\x6c\x6f\x77\x73\x3a" +);list_for_each_entry(DATARMNET4238158b2a,DATARMNETb436c3f30b, +DATARMNETd502c0412a){if(!DATARMNET4238158b2a)continue;rm_err( +"\x53\x48\x53\x5f\x47\x44\x4d\x41\x3a\x20\x3e\x20\x66\x6c\x6f\x77\x20\x30\x78\x25\x78\x20\x77\x69\x74\x68\x20\x70\x70\x73\x20\x25\x6c\x6c\x75\x20\x6f\x6e\x20\x63\x70\x75\x5b\x25\x64\x5d" +,DATARMNET4238158b2a->hash,DATARMNET4238158b2a->DATARMNET324c1a8f98, +DATARMNET4238158b2a->DATARMNET42a992465f);}}void DATARMNET7792d4f4ad(struct +list_head*DATARMNETe46ae760db,struct list_head*DATARMNETb436c3f30b,struct +list_head*DATARMNETf0fb155a9c,struct list_head*DATARMNET3208cd0982){if(! +DATARMNETe46ae760db||!DATARMNETb436c3f30b||!DATARMNETf0fb155a9c||! +DATARMNET3208cd0982){DATARMNET68d84e7b98[DATARMNETac729c3d29]++;return;} +list_sort(NULL,DATARMNETe46ae760db,&DATARMNET85af86a36d);list_sort(NULL, +DATARMNETb436c3f30b,&DATARMNETd5c15f1ff3);list_sort(NULL,DATARMNET3208cd0982,& +DATARMNETd5c15f1ff3);DATARMNET5157210c44(DATARMNETe46ae760db); +DATARMNET0e273eab79(DATARMNETb436c3f30b);DATARMNETe15af8eb6d(DATARMNETf0fb155a9c +);DATARMNET78f3a0ca4f(DATARMNET3208cd0982);DATARMNET78666f33a1(); +DATARMNET5945236cd3(DATARMNET7afb49ee3f);trace_rmnet_shs_wq_high( +DATARMNETa0ecb9daac,DATARMNET1fc50aac59,(0x16e8+787-0xc0c),(0x16e8+787-0xc0c), +(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),NULL,NULL);}void DATARMNET95736008d9(void) +{struct DATARMNETc8fdbf9c85*DATARMNET7bea4a06a6=&DATARMNET6cdd58e74c;struct +DATARMNET228056d4b7*DATARMNET373ff1422a;u64 DATARMNETc7c10881f4, +DATARMNET4a7d30059b,DATARMNETed01f76643;u64 DATARMNET629c75e1fa, +DATARMNET253a9fc708;u64 DATARMNET264b01f4d5,DATARMNET53ce143c7e= +(0xd2d+202-0xdf7);u16 DATARMNET42a992465f,DATARMNETab4cf0ad84, +DATARMNET0c72af011b;int flows;for(DATARMNET42a992465f=(0xd2d+202-0xdf7); +DATARMNET42a992465fDATARMNET73464778dc[DATARMNET42a992465f].flows;if(flows<= +(0xd2d+202-0xdf7))continue;DATARMNET373ff1422a=&DATARMNET7bea4a06a6-> +DATARMNET73464778dc[DATARMNET42a992465f];DATARMNETc7c10881f4=DATARMNET373ff1422a +->DATARMNET324c1a8f98;DATARMNET4a7d30059b=DATARMNET373ff1422a-> +DATARMNET27c3925eff;DATARMNETed01f76643=DATARMNET373ff1422a->DATARMNET253a9fc708 +;DATARMNET264b01f4d5=DATARMNET713717107f[DATARMNET42a992465f]; +DATARMNET53ce143c7e=DATARMNET4793ed48af[DATARMNET42a992465f];if( +DATARMNET362b15f941(DATARMNET42a992465f)){DATARMNETab4cf0ad84= +DATARMNETcab56af6d5;DATARMNET0c72af011b=(0xeb7+698-0x110d)-DATARMNETcab56af6d5;} +else{DATARMNET0c72af011b=DATARMNETcab56af6d5;DATARMNETab4cf0ad84= +(0xeb7+698-0x110d)-DATARMNETcab56af6d5;}DATARMNET629c75e1fa=(DATARMNET4a7d30059b ++DATARMNETed01f76643)/(0xd1f+216-0xdf5);DATARMNET253a9fc708=(( +DATARMNETab4cf0ad84*DATARMNETc7c10881f4)+(DATARMNET0c72af011b* +DATARMNET629c75e1fa))/(DATARMNETab4cf0ad84+DATARMNET0c72af011b); +DATARMNET373ff1422a->DATARMNET253a9fc708=DATARMNET253a9fc708; +trace_rmnet_shs_wq_high(DATARMNET39a68a0eba,DATARMNETde65aa00a6, +DATARMNET42a992465f,DATARMNETc7c10881f4,DATARMNET4a7d30059b,DATARMNET253a9fc708, +NULL,NULL);if((DATARMNET253a9fc708>DATARMNET264b01f4d5)||((DATARMNET253a9fc708< +DATARMNET53ce143c7e)&&(DATARMNETc7c10881f4DATARMNET9fb369ce5f;DATARMNETc312f6517d=ep->DATARMNET24a91635db; +DATARMNETc35b40fa7b=ep->DATARMNET1a1d89d417;memset(ep->DATARMNET5af04d0405,- +(0xd26+209-0xdf6),sizeof(*ep->DATARMNET5af04d0405)*DATARMNETc6782fed88);memset( +ep->DATARMNET7167e10d99,-(0xd26+209-0xdf6),sizeof(*ep->DATARMNET7167e10d99)* +DATARMNETc6782fed88);do{DATARMNET9025861a27=DATARMNET362c14e98b( +DATARMNETc312f6517d);if(DATARMNET9025861a27>=(0xd2d+202-0xdf7)){ep-> +DATARMNET5af04d0405[DATARMNETffd83bb362]=DATARMNET9025861a27;DATARMNETc312f6517d +=DATARMNETc312f6517d&~((0xd26+209-0xdf6)< +DATARMNET5af04d0405[(0xd2d+202-0xdf7)],ep->DATARMNET5af04d0405[(0xd26+209-0xdf6) +],ep->DATARMNET5af04d0405[(0xd1f+216-0xdf5)],ep->DATARMNETd7a83774f8,ep,NULL);do +{DATARMNETef87f9e251=DATARMNET362c14e98b(DATARMNETc35b40fa7b);if( +DATARMNETef87f9e251>=(0xd2d+202-0xdf7)){ep->DATARMNET7167e10d99[ +DATARMNET24f6ce5dc0]=DATARMNETef87f9e251;DATARMNETc35b40fa7b=DATARMNETc35b40fa7b +&~((0xd26+209-0xdf6)<DATARMNETd7a83774f8= +DATARMNETffd83bb362;ep->DATARMNET847276e5af=DATARMNET24f6ce5dc0;ep-> +DATARMNET6bda8fe27e=(0xd2d+202-0xdf7);ep->DATARMNET121a654efd=(0xd2d+202-0xdf7); +trace_rmnet_shs_wq_low(DATARMNET39a68a0eba,DATARMNETffec99a10f,ep-> +DATARMNET7167e10d99[(0xd2d+202-0xdf7)],ep->DATARMNET7167e10d99[(0xd26+209-0xdf6) +],ep->DATARMNET7167e10d99[(0xd1f+216-0xdf5)],ep->DATARMNET847276e5af,ep,NULL); +return;}void DATARMNET0a6fb12cb2(void){struct DATARMNET9b44b71ee9*ep=NULL; +list_for_each_entry(ep,&DATARMNET30a3e83974,DATARMNET0763436b8d){if(!ep)continue +;if(!ep->DATARMNET4a4e6f66b5)continue;DATARMNETe00453a3e4(ep);}}static int +DATARMNET1154e4fac6(time_t time,int DATARMNET64bb8a8f57){int ret=false;if(time> +DATARMNETa804c0b904)ret=true;else if(DATARMNET64bb8a8f57>DATARMNET1c2d76f636&& +time>DATARMNET2922c89d50)ret=true;else if(DATARMNET64bb8a8f57> +DATARMNET7a815512d3&&time>DATARMNET270b564b55)ret=true;return ret;}void +DATARMNET39391a8bc5(u8 DATARMNETcd94e0d3c7){struct DATARMNET63d7680df2*node_p= +NULL;time_t DATARMNETf48008e7b6;unsigned long ht_flags;struct +DATARMNET6c78e47d24*DATARMNETd2a694d52a=NULL;struct list_head* +DATARMNET7b34b7b5be=NULL,*next=NULL;list_for_each_safe(DATARMNET7b34b7b5be,next, +&DATARMNET9825511866){DATARMNETd2a694d52a=list_entry(DATARMNET7b34b7b5be,struct +DATARMNET6c78e47d24,DATARMNET6de26f0feb);if(DATARMNETd2a694d52a==NULL)continue; +if(DATARMNETd2a694d52a->DATARMNET63b1a086d5==NULL)continue;node_p= +DATARMNETd2a694d52a->DATARMNET63b1a086d5;DATARMNETf48008e7b6=DATARMNET36cfa76181 +(DATARMNETd2a694d52a->DATARMNET42ceaf5cc2);if(DATARMNET1154e4fac6( +DATARMNETf48008e7b6,DATARMNETecc0627c70.DATARMNET64bb8a8f57)|| +DATARMNETcd94e0d3c7){trace_rmnet_shs_wq_low(DATARMNET394831f22a, +DATARMNET5e2c5adaae,node_p->hash,DATARMNETf48008e7b6,(0x16e8+787-0xc0c), +(0x16e8+787-0xc0c),node_p,DATARMNETd2a694d52a);spin_lock_irqsave(& +DATARMNET3764d083f0,ht_flags);DATARMNET23c7ddd780(node_p,DATARMNET5b5927fd7e); +DATARMNET3669e7b703(DATARMNETd2a694d52a->DATARMNET7c894c2f8f);if(node_p){ +DATARMNETde8ee16f92(node_p);hash_del_rcu(&node_p->list);kfree(node_p);}rm_err( +"\x53\x48\x53\x5f\x46\x4c\x4f\x57\x3a\x20\x72\x65\x6d\x6f\x76\x69\x6e\x67\x20\x66\x6c\x6f\x77\x20\x30\x78\x25\x78\x20\x6f\x6e\x20\x63\x70\x75\x5b\x25\x64\x5d\x20" +"\x70\x70\x73\x3a\x20\x25\x6c\x6c\x75\x20\x61\x76\x67\x5f\x70\x70\x73\x3a\x20\x25\x6c\x6c\x75" +,DATARMNETd2a694d52a->hash,DATARMNETd2a694d52a->DATARMNET7c894c2f8f, +DATARMNETd2a694d52a->DATARMNET324c1a8f98,DATARMNETd2a694d52a-> +DATARMNET253a9fc708);DATARMNETb4a6870b3b(DATARMNETd2a694d52a);if( +DATARMNETd2a694d52a->DATARMNET0bfc2b2c85==(0xd2d+202-0xdf7)||DATARMNETcd94e0d3c7 +){DATARMNET2fe780019f(DATARMNETd2a694d52a);kfree(DATARMNETd2a694d52a);}else{ +DATARMNETa6e92c3315(DATARMNETd2a694d52a);}DATARMNETecc0627c70. +DATARMNET64bb8a8f57--;spin_unlock_irqrestore(&DATARMNET3764d083f0,ht_flags);}}} +void DATARMNETe69c918dc8(struct DATARMNET9b44b71ee9*ep){struct rps_map*map;u8 +len=(0xd2d+202-0xdf7);if(!ep||!ep->ep){DATARMNET68d84e7b98[DATARMNETb8fe2c0e64] +++;return;}rcu_read_lock();if(!ep->ep){pr_info( +"\x20\x72\x6d\x6e\x65\x74\x5f\x73\x68\x73\x20\x69\x6e\x76\x61\x6c\x69\x64\x20\x73\x74\x61\x74\x65\x20\x25\x70" +,ep->ep);DATARMNET68d84e7b98[DATARMNETb8fe2c0e64]++;return;}map=rcu_dereference( +ep->ep->_rx->rps_map);ep->DATARMNET9fb369ce5f=(0xd2d+202-0xdf7);if(map!=NULL){ +for(len=(0xd2d+202-0xdf7);lenlen;len++)ep->DATARMNET9fb369ce5f|=( +(0xd26+209-0xdf6)<cpus[len]);}rcu_read_unlock();ep->DATARMNET24a91635db=ep +->DATARMNET9fb369ce5f&(0xeb7+1101-0x12f5);ep->DATARMNET1a1d89d417=ep-> +DATARMNET9fb369ce5f&(0xbf7+4405-0x1c3c);}void DATARMNETd6ee05f1b4(struct +net_device*dev){struct DATARMNET9b44b71ee9*ep=NULL;struct DATARMNET9b44b71ee9* +tmp=NULL;unsigned long flags;if(!dev){DATARMNET68d84e7b98[DATARMNETf5157a9b85]++ +;return;}spin_lock_irqsave(&DATARMNETec2a4f5211,flags);list_for_each_entry_safe( +ep,tmp,&DATARMNET30a3e83974,DATARMNET0763436b8d){if(!ep)continue;if(ep->ep==dev) +{ep->DATARMNET4a4e6f66b5=(0xd2d+202-0xdf7);DATARMNETf7d317ed55(ep);kfree(ep); +break;}}spin_unlock_irqrestore(&DATARMNETec2a4f5211,flags);}void +DATARMNET7492293980(struct net_device*dev){struct DATARMNET9b44b71ee9*ep=NULL; +unsigned long flags;if(!dev){DATARMNET68d84e7b98[DATARMNETf5157a9b85]++;return;} +spin_lock_irqsave(&DATARMNETec2a4f5211,flags);ep=kzalloc(sizeof(*ep),GFP_ATOMIC) +;if(!ep){DATARMNET68d84e7b98[DATARMNET40ceff078e]++;spin_unlock_irqrestore(& +DATARMNETec2a4f5211,flags);return;}ep->ep=dev;ep->DATARMNET4a4e6f66b5= +(0xd26+209-0xdf6);INIT_LIST_HEAD(&ep->DATARMNET0763436b8d);DATARMNETe69c918dc8( +ep);DATARMNET4095253347(ep);spin_unlock_irqrestore(&DATARMNETec2a4f5211,flags);} +void DATARMNET039ac6d55d(void){struct DATARMNET9b44b71ee9*ep=NULL; +list_for_each_entry(ep,&DATARMNET30a3e83974,DATARMNET0763436b8d){if(!ep)continue +;if(!ep->DATARMNET4a4e6f66b5)continue;DATARMNETe69c918dc8(ep);ep-> +DATARMNET257fc4b2d4=(0xd2d+202-0xdf7);ep->DATARMNET4eb77c78e6=(0xd2d+202-0xdf7); +}}void DATARMNETedc898218c(void){int cpu,DATARMNETc790ff30fc;int +DATARMNET421230d879;struct DATARMNET6c78e47d24*DATARMNETd2a694d52a=NULL;for(cpu= +(0xd2d+202-0xdf7);cpuDATARMNET0dc393a345==(0xd2d+202-0xdf7))continue;if( +DATARMNETd2a694d52a->DATARMNET253a9fc708>DATARMNET832dcfb5f8&& +DATARMNETd2a694d52a->DATARMNET4b4a76b094>DATARMNET59f7cb903f)if( +DATARMNETd2a694d52a->DATARMNET7c894c2f8fDATARMNET7c894c2f8f;DATARMNET2d482e7d9f +[DATARMNET421230d879]++;}DATARMNETc790ff30fc=DATARMNETd2a694d52a-> +DATARMNET7c894c2f8f;if(DATARMNETc790ff30fc>=DATARMNETc6782fed88){continue;}if( +DATARMNETd2a694d52a->DATARMNET63b1a086d5->DATARMNET341ea38662-> +DATARMNET87636d0152>(0xd2d+202-0xdf7)){DATARMNET0997c5650d[DATARMNETc790ff30fc]. +seg++;}}}void DATARMNETcd6e26f0ad(void){struct timespec time;struct +DATARMNET6c78e47d24*DATARMNETd2a694d52a=NULL;(void)getnstimeofday(&time); +DATARMNETb3a4036d6d=DATARMNETe6671dbf38(time.tv_sec)+time.tv_nsec; +DATARMNET039ac6d55d();DATARMNETe46c480d71();list_for_each_entry( +DATARMNETd2a694d52a,&DATARMNET9825511866,DATARMNET6de26f0feb){if(! +DATARMNETd2a694d52a)continue;if(DATARMNETd2a694d52a->DATARMNET0dc393a345== +(0xd2d+202-0xdf7))continue;if(DATARMNETd2a694d52a->DATARMNET63b1a086d5){ +DATARMNET9a7769cf21(DATARMNETd2a694d52a);DATARMNET5b2ed86112(DATARMNETd2a694d52a +);if(DATARMNETc252c204a8){if(DATARMNETd2a694d52a->DATARMNET63b1a086d5-> +DATARMNETa1099c74fe==(0xd2d+202-0xdf7)){DATARMNET6f4b0915d3(DATARMNETd2a694d52a, +&DATARMNET3208cd0982);}DATARMNET6f4b0915d3(DATARMNETd2a694d52a,& +DATARMNET3208cd0982);if(!DATARMNET362b15f941(DATARMNETd2a694d52a-> +DATARMNET7c894c2f8f)){DATARMNET24e4475345(DATARMNETd2a694d52a,& +DATARMNET6c23f11e81);}if(DATARMNETd2a694d52a->DATARMNET1e9d25d9ff==IPPROTO_TCP){ +DATARMNET28a80d526e(DATARMNETd2a694d52a,&DATARMNETf91b305f4e);}}else{ +DATARMNETd2a694d52a->DATARMNET63b1a086d5->DATARMNET341ea38662-> +DATARMNET87636d0152=(0xd2d+202-0xdf7);}}}DATARMNET617b443145(); +DATARMNET0ce3f33785();DATARMNET8b2fb5dc3c();if(DATARMNETc252c204a8){rm_err( +"\x25\x73", +"\x53\x48\x53\x5f\x55\x50\x44\x41\x54\x45\x3a\x20\x55\x73\x65\x72\x73\x70\x61\x63\x65\x20\x63\x6f\x6e\x6e\x65\x63\x74\x65\x64\x2c\x20\x72\x65\x6c\x79\x69\x6e\x67\x20\x6f\x6e\x20\x75\x73\x65\x72\x73\x70\x61\x63\x65\x20\x65\x76\x61\x6c\x75\x61\x74\x69\x6f\x6e" +);DATARMNET7792d4f4ad(&DATARMNETe46ae760db,&DATARMNET6c23f11e81,& +DATARMNETf91b305f4e,&DATARMNET3208cd0982);DATARMNETa1b141715b(& +DATARMNET6c23f11e81);DATARMNET3af54cd726(&DATARMNETf91b305f4e); +DATARMNETb177316a15(&DATARMNETe46ae760db);DATARMNETcc489fbbad(& +DATARMNET3208cd0982);}else{rm_err("\x25\x73", +"\x53\x48\x53\x5f\x55\x50\x44\x41\x54\x45\x3a\x20\x73\x68\x73\x20\x75\x73\x65\x72\x73\x70\x61\x63\x65\x20\x6e\x6f\x74\x20\x63\x6f\x6e\x6e\x65\x63\x74\x65\x64\x2c\x20\x75\x73\x69\x6e\x67\x20\x64\x65\x66\x61\x75\x6c\x74\x20\x6c\x6f\x67\x69\x63" +);DATARMNET95736008d9();}DATARMNET0a6fb12cb2();DATARMNETedc898218c();}void +DATARMNETb4b5fc9686(struct work_struct*DATARMNET33110a3ff5){unsigned long flags; +unsigned long DATARMNET28085cfd14;trace_rmnet_shs_wq_high(DATARMNET4fe8e8c1a9, +DATARMNET5a417740cb,(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),(0x16e8+787-0xc0c), +(0x16e8+787-0xc0c),NULL,NULL);spin_lock_irqsave(&DATARMNETec2a4f5211,flags); +DATARMNETcd6e26f0ad();spin_unlock_irqrestore(&DATARMNETec2a4f5211,flags); +DATARMNET39391a8bc5(DATARMNET53bef3c026);DATARMNET5e1aaed12b(); +DATARMNET28085cfd14=msecs_to_jiffies(DATARMNET1fc3ad67fd);queue_delayed_work( +DATARMNETf141197982,&DATARMNET9dc7755be5->DATARMNET1150269da2, +DATARMNET28085cfd14);trace_rmnet_shs_wq_high(DATARMNET4fe8e8c1a9, +DATARMNET848d2ddfa7,(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),(0x16e8+787-0xc0c), +(0x16e8+787-0xc0c),NULL,NULL);}void DATARMNET5fb4151598(void){struct +DATARMNET9b44b71ee9*ep=NULL;struct list_head*DATARMNET7b34b7b5be=NULL,*next=NULL +;list_for_each_safe(DATARMNET7b34b7b5be,next,&DATARMNET30a3e83974){ep=list_entry +(DATARMNET7b34b7b5be,struct DATARMNET9b44b71ee9,DATARMNET0763436b8d);if(!ep) +continue;trace_rmnet_shs_wq_high(DATARMNET5e796836fb,DATARMNET1ee5d0565d, +(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),ep, +NULL);DATARMNETf7d317ed55(ep);kfree(ep);}}void DATARMNETf7dcab9a9e(void){if(! +DATARMNETf141197982||!DATARMNET9dc7755be5)return;DATARMNET28d33bd09f(); +DATARMNET5945236cd3(DATARMNET19092afcc2);trace_rmnet_shs_wq_high( +DATARMNETc1e19aa345,DATARMNET7cf840e991,(0x16e8+787-0xc0c),(0x16e8+787-0xc0c), +(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),NULL,NULL);cancel_delayed_work_sync(& +DATARMNET9dc7755be5->DATARMNET1150269da2);drain_workqueue(DATARMNETf141197982); +destroy_workqueue(DATARMNETf141197982);kfree(DATARMNET9dc7755be5); +DATARMNET9dc7755be5=NULL;DATARMNETf141197982=NULL;DATARMNET39391a8bc5( +DATARMNETc5db038c35);DATARMNET5fb4151598();trace_rmnet_shs_wq_high( +DATARMNETc1e19aa345,DATARMNETa5cdfd53b3,(0x16e8+787-0xc0c),(0x16e8+787-0xc0c), +(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),NULL,NULL);}void DATARMNETd3d1d13f44(void) +{u8 DATARMNET42a992465f;struct DATARMNET228056d4b7*DATARMNET7bea4a06a6;for( +DATARMNET42a992465f=(0xd2d+202-0xdf7);DATARMNET42a992465f +DATARMNETab5c1e9ad5);DATARMNET7bea4a06a6->DATARMNET42a992465f= +DATARMNET42a992465f;}}void DATARMNET4063c95208(void){int cpu;if( +DATARMNETf141197982&&DATARMNET9dc7755be5)cancel_delayed_work_sync(& +DATARMNET9dc7755be5->DATARMNET1150269da2);for(cpu=(0xd2d+202-0xdf7);cpu< +DATARMNETc6782fed88;cpu++)DATARMNET2d482e7d9f[cpu]=(0xd2d+202-0xdf7);}void +DATARMNET7b6c061b06(void){if(DATARMNETf141197982&&DATARMNET9dc7755be5) +queue_delayed_work(DATARMNETf141197982,&DATARMNET9dc7755be5->DATARMNET1150269da2 +,(0xd2d+202-0xdf7));}void DATARMNET3ae0d614d6(struct net_device*dev){if( +DATARMNETf141197982)return;if(!dev){DATARMNET68d84e7b98[DATARMNETf5157a9b85]++; +return;}DATARMNETf5f83b943f();trace_rmnet_shs_wq_high(DATARMNET9104d544fa, +DATARMNET1b421b0381,(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),(0x16e8+787-0xc0c), +(0x16e8+787-0xc0c),NULL,NULL);DATARMNETf141197982=alloc_workqueue( +"\x72\x6d\x6e\x65\x74\x5f\x73\x68\x73\x5f\x77\x71",WQ_CPU_INTENSIVE, +(0xd26+209-0xdf6));if(!DATARMNETf141197982){DATARMNET68d84e7b98[ +DATARMNETecdf13872c]++;return;}DATARMNET9dc7755be5=kmalloc(sizeof(struct +DATARMNETa144e2bd00),GFP_ATOMIC);if(!DATARMNET9dc7755be5){DATARMNET68d84e7b98[ +DATARMNETd1687e0776]++;DATARMNETf7dcab9a9e();return;}DATARMNETf5b8fce55d( +DATARMNET138a989ecb,(0xd26+209-0xdf6));DATARMNETd3d1d13f44(); +INIT_DEFERRABLE_WORK(&DATARMNET9dc7755be5->DATARMNET1150269da2, +DATARMNETb4b5fc9686);trace_rmnet_shs_wq_high(DATARMNET9104d544fa, +DATARMNETb196f64ee0,(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),(0x16e8+787-0xc0c), +(0x16e8+787-0xc0c),NULL,NULL);}int DATARMNETb709a938b5(u16 cpu){int flows=- +(0xd26+209-0xdf6);if(cpu>=DATARMNETc6782fed88){DATARMNET68d84e7b98[ +DATARMNET709b59b0e6]++;return flows;}flows=DATARMNET6cdd58e74c. +DATARMNET73464778dc[cpu].flows;trace_rmnet_shs_wq_low(DATARMNET39a68a0eba, +DATARMNET0e287157de,cpu,flows,(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),NULL,NULL); +return flows;}int DATARMNET392890a12b(void){u16 cpu;int DATARMNET59bd820724=- +(0xd26+209-0xdf6);int DATARMNET847bd62811;for(cpu=(0xd2d+202-0xdf7);cpu< +DATARMNETc6782fed88;cpu++){DATARMNET847bd62811=DATARMNETb709a938b5(cpu);if( +DATARMNET847bd62811>DATARMNET59bd820724)DATARMNET59bd820724=DATARMNET847bd62811; +trace_rmnet_shs_wq_low(DATARMNET39a68a0eba,DATARMNETc2a28b3abe,cpu, +DATARMNET847bd62811,DATARMNET59bd820724,(0x16e8+787-0xc0c),NULL,NULL);}return +DATARMNET59bd820724;}int DATARMNETdd3b17f0c3(u16 cpu){u32 DATARMNET1802cc4803= +(0xd26+209-0xdf6)<<(0xd11+230-0xdf3);u32 DATARMNETb998398361=(0xd26+209-0xdf6); +u16 DATARMNETaff7dd6611=(0xd2d+202-0xdf7);u16 DATARMNET2ab4b15bd2= +(0xd11+230-0xdf3);int DATARMNET59bd820724=-(0xd26+209-0xdf6);int +DATARMNET847bd62811;if(cpu>DATARMNETc6782fed88){DATARMNET68d84e7b98[ +DATARMNET709b59b0e6]++;return DATARMNET59bd820724;}DATARMNETb998398361<<=cpu;if( +DATARMNETb998398361>=DATARMNET1802cc4803){DATARMNETaff7dd6611=(0xd11+230-0xdf3); +DATARMNET2ab4b15bd2=DATARMNETc6782fed88;}for(;DATARMNETaff7dd6611< +DATARMNET2ab4b15bd2;DATARMNETaff7dd6611++){DATARMNET847bd62811= +DATARMNETb709a938b5(DATARMNETaff7dd6611);if(DATARMNET847bd62811> +DATARMNET59bd820724)DATARMNET59bd820724=DATARMNET847bd62811;} +trace_rmnet_shs_wq_low(DATARMNET39a68a0eba,DATARMNET23906b61e9, +DATARMNETaff7dd6611,DATARMNET2ab4b15bd2,cpu,DATARMNET59bd820724,NULL,NULL); +return DATARMNET59bd820724;}void DATARMNET0349051465(u16 cpu){if(cpu>= +DATARMNETc6782fed88){DATARMNET68d84e7b98[DATARMNET54b67b8a75]++;return;} +DATARMNET6cdd58e74c.DATARMNET73464778dc[cpu].flows++;trace_rmnet_shs_wq_low( +DATARMNET39a68a0eba,DATARMNET0832f93bf0,cpu,DATARMNET6cdd58e74c. +DATARMNET73464778dc[cpu].flows,(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),NULL,NULL); +}void DATARMNET3669e7b703(u16 cpu){if(cpu>=DATARMNETc6782fed88){ +DATARMNET68d84e7b98[DATARMNET54b67b8a75]++;return;}if(DATARMNET6cdd58e74c. +DATARMNET73464778dc[cpu].flows>(0xd2d+202-0xdf7))DATARMNET6cdd58e74c. +DATARMNET73464778dc[cpu].flows--;trace_rmnet_shs_wq_low(DATARMNET39a68a0eba, +DATARMNETecb00bceb2,cpu,DATARMNET6cdd58e74c.DATARMNET73464778dc[cpu].flows, +(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),NULL,NULL);} diff --git a/shs/rmnet_shs_wq.h b/shs/rmnet_shs_wq.h new file mode 100644 index 000000000000..184e81d80172 --- /dev/null +++ b/shs/rmnet_shs_wq.h @@ -0,0 +1,123 @@ +/* Copyright (c) 2018-2020, 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 + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + */ + +#ifndef DATARMNETa58841a91d +#define DATARMNETa58841a91d +#include "rmnet_shs_config.h" +#include "rmnet_shs.h" +#define DATARMNETdfb4d931bc (0xd2d+202-0xdf7) +#define DATARMNETf0dc5ccb6f (0xd2d+202-0xdf7) +#define rm_err(DATARMNET6c3cf5865b, ...) \ + do { if (DATARMNETdfb4d931bc) pr_err(DATARMNET6c3cf5865b, __VA_ARGS__); } while\ + ((0xd2d+202-0xdf7)) +#define DATARMNETd2da2e8466(DATARMNET6c3cf5865b, ...) \ + do { if (DATARMNETf0dc5ccb6f) pr_err(DATARMNET6c3cf5865b, __VA_ARGS__); } while\ + ((0xd2d+202-0xdf7)) +#define DATARMNET2f9ea73326 (0xeb7+1158-0x132d) +#define DATARMNET855e9d7062(DATARMNET5f1b691e95) ((DATARMNET5f1b691e95)*\ +1000000000) +#define DATARMNETe6671dbf38(DATARMNET5f1b691e95) ((DATARMNET5f1b691e95)*\ +1000000000) +#define DATARMNET36cfa76181(DATARMNET5f1b691e95) ((DATARMNET5f1b691e95)/\ +1000000000) +#define DATARMNET64577537b7(DATARMNET5f1b691e95) ((DATARMNET5f1b691e95)*\ +(0xd35+210-0xdff)) +#define DATARMNET138a989ecb (0xeb7+1158-0x132d) +#define DATARMNETe4c625a3a3 (0xeb7+698-0x110d) +extern struct list_head DATARMNET30a3e83974;struct DATARMNET9b44b71ee9{u64 +DATARMNET4eb77c78e6;u64 DATARMNET257fc4b2d4;struct list_head DATARMNET0763436b8d +;struct net_device*ep;int DATARMNET5af04d0405[DATARMNETc6782fed88];int +DATARMNET7167e10d99[DATARMNETc6782fed88];u16 DATARMNET24a91635db;u16 +DATARMNET1a1d89d417;u16 DATARMNET9fb369ce5f;u8 DATARMNET4a4e6f66b5;int +DATARMNET6bda8fe27e;int DATARMNET121a654efd;int DATARMNETd7a83774f8;int +DATARMNET847276e5af;};struct DATARMNET0737a3aa12{struct list_head +DATARMNETd0c222566b;struct DATARMNET9b44b71ee9 ep;};enum DATARMNET0780ebfa33{ +DATARMNET8866cd9e9a,DATARMNETed5a873a00,DATARMNETd7a3f55a51,DATARMNETefe8657028, +DATARMNET3563036124,};struct DATARMNET6c78e47d24{unsigned long int +DATARMNET61e1ee0e95[DATARMNET3563036124];struct list_head DATARMNET742867e97a; +struct list_head DATARMNET6de26f0feb;struct DATARMNET63d7680df2* +DATARMNET63b1a086d5;time_t DATARMNETadd51beef4;time_t DATARMNET68714ac92c;time_t + DATARMNET42ceaf5cc2;u64 DATARMNET4b4a76b094;u64 rx_bytes;u64 +DATARMNETa7352711af;u64 DATARMNET324c1a8f98;u64 DATARMNETbb80fccd97;u64 +DATARMNET6c2816c16a;u64 DATARMNET253a9fc708;u64 DATARMNET95266642d1;u64 +DATARMNET6edbc8b649;u64 DATARMNET4025a4ec90;u64 DATARMNETde6a309f37;u32 +DATARMNET9fb369ce5f;u32 DATARMNET17f2abdf03;u32 DATARMNET399c840115;u32 +DATARMNET1a1d89d417;u32 DATARMNETb932033f50;u32 hash;int DATARMNETb5f5519502;u16 + DATARMNET6e1a4eaf09;u16 DATARMNET7c894c2f8f;u16 DATARMNET1e9d25d9ff;u8 mux_id; +u8 DATARMNET0dc393a345;u8 DATARMNET0bfc2b2c85;u8 DATARMNET8a4e1d5aaa;u8 +DATARMNET87636d0152;};struct DATARMNET228056d4b7{struct list_head +DATARMNETab5c1e9ad5;time_t DATARMNET68714ac92c;u64 DATARMNET9853a006ae;u64 +DATARMNETde6a309f37;u64 DATARMNETc589c49a2e;u64 DATARMNET7fc41d655d;u64 rx_bytes +;u64 DATARMNET57f040bb2c;u64 DATARMNET324c1a8f98;u64 DATARMNETbb80fccd97;u64 +DATARMNET27c3925eff;u64 DATARMNET8233cb4988;u64 DATARMNET253a9fc708;u64 +DATARMNETc0b20e240a;u32 DATARMNETae196235f2;u32 DATARMNET8b9956a3f9;u32 +DATARMNET69770f8ef7;u32 DATARMNET14b0d18481;u32 DATARMNET17380ba0f8;int flows; +u16 DATARMNET42a992465f;};struct DATARMNETc8fdbf9c85{struct DATARMNET228056d4b7 +DATARMNET73464778dc[DATARMNETc6782fed88];time_t DATARMNET68714ac92c;u64 +DATARMNET601156672d;u64 DATARMNETbfe25a2160;u64 DATARMNET4947607c52;u64 +DATARMNET903a2cea81;u64 DATARMNET3067b3dafd;u64 DATARMNET47334112aa;u64 +DATARMNET9853a006ae;u64 DATARMNETde6a309f37;u64 DATARMNETc589c49a2e;u64 +DATARMNET27c3925eff;u64 DATARMNET8233cb4988;u64 DATARMNET7fc41d655d;u64 rx_bytes +;u64 DATARMNET57f040bb2c;u64 DATARMNET324c1a8f98;u64 DATARMNETbb80fccd97;u32 +DATARMNET9fb369ce5f;u32 DATARMNET399c840115;u32 DATARMNET1a1d89d417;u32 +DATARMNETb932033f50;int DATARMNET5af04d0405[DATARMNETc6782fed88];int +DATARMNET7167e10d99[DATARMNETc6782fed88];int DATARMNET6bda8fe27e;int +DATARMNET121a654efd;int DATARMNETd7a83774f8;int DATARMNET847276e5af;int flows;u8 + cpus;};struct DATARMNETa144e2bd00{struct delayed_work DATARMNET1150269da2;}; +struct DATARMNET47a6995138{struct list_head DATARMNET02523bfb57;u64 +DATARMNET18b7a5b761;u64 DATARMNET4da6031170;u64 DATARMNET4df302dbd6;u16 +DATARMNET42a992465f;};struct DATARMNET09a412b1c6{struct list_head +DATARMNETd502c0412a;u64 DATARMNET324c1a8f98;u64 DATARMNET253a9fc708;u32 hash;u16 + DATARMNET42a992465f;};struct DATARMNET13c47d154e{struct list_head +DATARMNETec0e3cb8f0;union{struct iphdr DATARMNETac9bbaad7c;struct ipv6hdr +DATARMNET1688a97aa4;}ip_hdr;union{struct tcphdr tp;struct udphdr up;} +DATARMNETe33b41dad9;u64 DATARMNET324c1a8f98;u64 DATARMNET253a9fc708;u64 +DATARMNETbb80fccd97;u64 DATARMNET95266642d1;u32 hash;u16 DATARMNET42a992465f;u16 + trans_proto;u8 mux_id;};struct DATARMNETa52c09a590{struct list_head +DATARMNET6f898987df;u64 DATARMNET324c1a8f98;u64 DATARMNET253a9fc708;u64 +DATARMNETbb80fccd97;u32 hash;u16 DATARMNET42a992465f;};enum DATARMNET8487fb1a16{ +DATARMNET9104d544fa,DATARMNET4fe8e8c1a9,DATARMNETc1e19aa345,DATARMNET5e796836fb, +DATARMNET238d08f0df,DATARMNET92b282b12c,DATARMNET394831f22a,DATARMNET39a68a0eba, +DATARMNET0dd7951b5e,DATARMNETa0ecb9daac,};enum DATARMNETb2fa0397cc{ +DATARMNET34ace72e7e,DATARMNET7fc202c4c1,DATARMNET7643ab0f49,DATARMNET1ee5d0565d, +DATARMNETfab7330394,DATARMNET72f22d7cf7,DATARMNETf81dcb955d,DATARMNET3f2d29c867, +DATARMNET5a3ea29c57,DATARMNETb43d929c3b,DATARMNET31d8e00b80,DATARMNET8d783e2a07, +DATARMNET4b15fcda7c,DATARMNET08284be63e,DATARMNET8ce5a018df,DATARMNET57cad43bb7, +DATARMNET4b58d51c6a,DATARMNETfd4d416388,DATARMNETdb9197631d,DATARMNET067f70ac85, +DATARMNET91e905574d,DATARMNET35902389b3,DATARMNET29c0bc0151,DATARMNET45edcec1e4, +DATARMNET5b2500c971,DATARMNET08cee5b48c,DATARMNET5e2c5adaae,DATARMNETb0ed796e8c, +DATARMNET6bde6a5171,DATARMNET55cd50e666,DATARMNET0832f93bf0,DATARMNETecb00bceb2, +DATARMNET0e287157de,DATARMNETc2a28b3abe,DATARMNET23906b61e9,DATARMNET95d1ddcb1a, +DATARMNETbdcc04c8d8,DATARMNETcd209744bd,DATARMNETde65aa00a6,DATARMNETf4dabe20e4, +DATARMNETb9205423e5,DATARMNETffec99a10f,DATARMNET5c7c474d94,DATARMNET4af220a9f9, +DATARMNET709474066f,DATARMNET9a286e7654,DATARMNET5a417740cb,DATARMNET848d2ddfa7, +DATARMNET59a1cb0962,DATARMNET1b421b0381,DATARMNETb196f64ee0,DATARMNET7cf840e991, +DATARMNETa5cdfd53b3,DATARMNETd7f7ade458,DATARMNET53e4a6b394,DATARMNETd1d3902361, +DATARMNET1fc50aac59,DATARMNET213a62da0d,DATARMNETf814701a94,DATARMNET166a43f3aa, +};extern struct DATARMNETe600c5b727 DATARMNET0997c5650d[DATARMNETc6782fed88]; +extern struct list_head DATARMNET9825511866;void DATARMNET3ae0d614d6(struct +net_device*dev);void DATARMNETf7dcab9a9e(void);void DATARMNET7b6c061b06(void); +void DATARMNET4063c95208(void);void DATARMNETe46c480d71(void);u64 +DATARMNETd406e89a85(u32 DATARMNETfaedbb66a9);void DATARMNET350f55bfca(struct +DATARMNET63d7680df2*node_p);int DATARMNET362c14e98b(u16 DATARMNETfaedbb66a9);int + DATARMNETf181a18009(struct net_device*dev);int DATARMNET98b2a0ce62(struct +net_device*dev);u64 DATARMNETfc888b4d3e(u16 cpu);void DATARMNET0349051465(u16 +cpu);void DATARMNET3669e7b703(u16 cpu);void DATARMNET54ebea1d15(void);void +DATARMNET7492293980(struct net_device*dev);void DATARMNETd6ee05f1b4(struct +net_device*dev);void DATARMNET0a6fb12cb2(void);int DATARMNET5f72606f6f(u16 +DATARMNETc790ff30fc,u16 DATARMNET208ea67e1d,u32 DATARMNET4da4612f1e,u32 +DATARMNETa3f89581b5);int DATARMNETf85599b9d8(u32 DATARMNET8c11bd9466,u8 +DATARMNET87636d0152);void DATARMNET6bf538fa23(void);void DATARMNETaea4c85748( +void); +#endif + diff --git a/shs/rmnet_shs_wq_genl.c b/shs/rmnet_shs_wq_genl.c new file mode 100644 index 000000000000..dd46dca31c53 --- /dev/null +++ b/shs/rmnet_shs_wq_genl.c @@ -0,0 +1,169 @@ +/* Copyright (c) 2019-2020 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 + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + */ + +#include "rmnet_shs_modules.h" +#include "rmnet_shs_common.h" +#include "rmnet_shs_wq_genl.h" +#include +#include +MODULE_LICENSE("\x47\x50\x4c\x20\x76\x32");static struct net*DATARMNETb01cbc5ec9 +;static u32 DATARMNET373156e169;uint32_t DATARMNET7c4038843f;int +DATARMNETc252c204a8; +#define DATARMNETe429c5f3dd (0xbf7+4364-0x1c04) +static struct nla_policy DATARMNET23b45455b1[DATARMNETcecb35ee33+ +(0xd26+209-0xdf6)]={[DATARMNET7d289a7bfa]={.type=NLA_S32},[DATARMNET813a742587]= +{.type=NLA_EXACT_LEN,.len=sizeof(struct DATARMNET6c41b886b2)},[ +DATARMNET50e1cd26c7]={.type=NLA_EXACT_LEN,.len=sizeof(struct DATARMNET837c876a22 +)},[DATARMNETaa0fe5a855]={.type=NLA_NUL_STRING,.len=DATARMNETe429c5f3dd},}; +#define DATARMNETcfe22ed4d3(DATARMNET5aeb0ef9bc, DATARMNETbd9859b58e) \ + { \ + .cmd = DATARMNET5aeb0ef9bc, \ + .doit = DATARMNETbd9859b58e, \ + .dumpit = NULL, \ + .flags = (0xd2d+202-0xdf7), \ + } +static const struct genl_ops DATARMNETf2d168ff8d[]={DATARMNETcfe22ed4d3( +DATARMNETafd55f4acf,DATARMNET740f3b34b3),DATARMNETcfe22ed4d3(DATARMNET8e3adfc5dd +,DATARMNET29175fb5fc),DATARMNETcfe22ed4d3(DATARMNETffb2945689, +DATARMNETd81d2866ba),DATARMNETcfe22ed4d3(DATARMNET51b1ee5a68,DATARMNETc850634243 +),};struct genl_family DATARMNETecc643c219={.hdrsize=(0xd2d+202-0xdf7),.name= +DATARMNET0228d9f101,.version=DATARMNET0fa03ac25b,.maxattr=DATARMNETcecb35ee33,. +policy=DATARMNET23b45455b1,.ops=DATARMNETf2d168ff8d,.n_ops=ARRAY_SIZE( +DATARMNETf2d168ff8d),};int DATARMNET5d4ca1da1c(struct genl_info* +DATARMNET54338da2ff,int val){struct sk_buff*skb;void*msg_head;int rc;skb= +genlmsg_new(NLMSG_GOODSIZE,GFP_ATOMIC);if(skb==NULL)goto DATARMNETbf4095f79e; +msg_head=genlmsg_put(skb,(0xd2d+202-0xdf7),DATARMNET54338da2ff->snd_seq+ +(0xd26+209-0xdf6),&DATARMNETecc643c219,(0xd2d+202-0xdf7),DATARMNETafd55f4acf);if +(msg_head==NULL){rc=-ENOMEM;goto DATARMNETbf4095f79e;}rc=nla_put_u32(skb, +DATARMNET7d289a7bfa,val);if(rc!=(0xd2d+202-0xdf7))goto DATARMNETbf4095f79e; +genlmsg_end(skb,msg_head);rc=genlmsg_unicast(genl_info_net(DATARMNET54338da2ff), +skb,DATARMNET54338da2ff->snd_portid);if(rc!=(0xd2d+202-0xdf7))goto +DATARMNETbf4095f79e;rm_err( +"\x53\x48\x53\x5f\x47\x4e\x4c\x3a\x20\x53\x75\x63\x63\x65\x73\x73\x66\x75\x6c\x6c\x79\x20\x73\x65\x6e\x74\x20\x69\x6e\x74\x20\x25\x64" "\n" +,val);return(0xd2d+202-0xdf7);DATARMNETbf4095f79e:rm_err( +"\x53\x48\x53\x5f\x47\x4e\x4c\x3a\x20\x46\x41\x49\x4c\x45\x44\x20\x74\x6f\x20\x73\x65\x6e\x64\x20\x69\x6e\x74\x20\x25\x64" "\n" +,val);return-(0xd26+209-0xdf6);}int DATARMNET5945236cd3(int val){struct sk_buff* +skb;void*msg_head;int rc;if(DATARMNETb01cbc5ec9==NULL){rm_err( +"\x53\x48\x53\x5f\x47\x4e\x4c\x3a\x20\x46\x41\x49\x4c\x45\x44\x20\x74\x6f\x20\x73\x65\x6e\x64\x20\x69\x6e\x74\x20\x25\x64\x20\x2d\x20\x6c\x61\x73\x74\x5f\x6e\x65\x74\x20\x69\x73\x20\x4e\x55\x4c\x4c" "\n" +,val);return-(0xd26+209-0xdf6);}skb=genlmsg_new(NLMSG_GOODSIZE,GFP_ATOMIC);if( +skb==NULL)goto DATARMNETbf4095f79e;msg_head=genlmsg_put(skb,(0xd2d+202-0xdf7), +DATARMNET7c4038843f++,&DATARMNETecc643c219,(0xd2d+202-0xdf7),DATARMNETafd55f4acf +);if(msg_head==NULL){rc=-ENOMEM;goto DATARMNETbf4095f79e;}rc=nla_put_u32(skb, +DATARMNET7d289a7bfa,val);if(rc!=(0xd2d+202-0xdf7))goto DATARMNETbf4095f79e; +genlmsg_end(skb,msg_head);rc=genlmsg_unicast(DATARMNETb01cbc5ec9,skb, +DATARMNET373156e169);if(rc!=(0xd2d+202-0xdf7))goto DATARMNETbf4095f79e;rm_err( +"\x53\x48\x53\x5f\x47\x4e\x4c\x3a\x20\x53\x75\x63\x63\x65\x73\x73\x66\x75\x6c\x6c\x79\x20\x73\x65\x6e\x74\x20\x69\x6e\x74\x20\x25\x64" "\n" +,val);return(0xd2d+202-0xdf7);DATARMNETbf4095f79e:rm_err( +"\x53\x48\x53\x5f\x47\x4e\x4c\x3a\x20\x46\x41\x49\x4c\x45\x44\x20\x74\x6f\x20\x73\x65\x6e\x64\x20\x69\x6e\x74\x20\x25\x64" "\n" +,val);DATARMNETc252c204a8=(0xd2d+202-0xdf7);return-(0xd26+209-0xdf6);}int +DATARMNETa9a7fa898c(void){struct sk_buff*skb;void*msg_head;int rc;int val= +DATARMNET7c4038843f++;rm_err( +"\x53\x48\x53\x5f\x47\x4e\x4c\x3a\x20\x54\x72\x79\x69\x6e\x67\x20\x74\x6f\x20\x73\x65\x6e\x64\x20\x6d\x73\x67\x20\x25\x64" "\n" +,val);skb=genlmsg_new(NLMSG_GOODSIZE,GFP_ATOMIC);if(skb==NULL)goto +DATARMNETbf4095f79e;msg_head=genlmsg_put(skb,(0xd2d+202-0xdf7), +DATARMNET7c4038843f++,&DATARMNETecc643c219,(0xd2d+202-0xdf7),DATARMNETafd55f4acf +);if(msg_head==NULL){rc=-ENOMEM;goto DATARMNETbf4095f79e;}rc=nla_put_u32(skb, +DATARMNET7d289a7bfa,val);if(rc!=(0xd2d+202-0xdf7))goto DATARMNETbf4095f79e; +genlmsg_end(skb,msg_head);genlmsg_multicast(&DATARMNETecc643c219,skb, +(0xd2d+202-0xdf7),(0xd2d+202-0xdf7),GFP_ATOMIC);rm_err( +"\x53\x48\x53\x5f\x47\x4e\x4c\x3a\x20\x53\x75\x63\x63\x65\x73\x73\x66\x75\x6c\x6c\x79\x20\x73\x65\x6e\x74\x20\x69\x6e\x74\x20\x25\x64" "\n" +,val);return(0xd2d+202-0xdf7);DATARMNETbf4095f79e:rm_err( +"\x53\x48\x53\x5f\x47\x4e\x4c\x3a\x20\x46\x41\x49\x4c\x45\x44\x20\x74\x6f\x20\x73\x65\x6e\x64\x20\x69\x6e\x74\x20\x25\x64" "\n" +,val);DATARMNETc252c204a8=(0xd2d+202-0xdf7);return-(0xd26+209-0xdf6);}int +DATARMNET740f3b34b3(struct sk_buff*DATARMNETaafc1d9519,struct genl_info* +DATARMNET54338da2ff){rm_err("\x25\x73", +"\x53\x48\x53\x5f\x47\x4e\x4c\x3a\x20\x72\x6d\x6e\x65\x74\x5f\x73\x68\x73\x5f\x67\x65\x6e\x6c\x5f\x64\x6d\x61\x5f\x69\x6e\x69\x74" +);if(DATARMNET54338da2ff==NULL){rm_err("\x25\x73", +"\x53\x48\x53\x5f\x47\x4e\x4c\x3a\x20\x61\x6e\x20\x65\x72\x72\x6f\x72\x20\x6f\x63\x63\x75\x72\x65\x64\x20\x2d\x20\x69\x6e\x66\x6f\x20\x69\x73\x20\x6e\x75\x6c\x6c" +);return-(0xd26+209-0xdf6);}return(0xd2d+202-0xdf7);}int DATARMNETd81d2866ba( +struct sk_buff*DATARMNETaafc1d9519,struct genl_info*DATARMNET54338da2ff){struct +nlattr*na;struct DATARMNET837c876a22 DATARMNET1317c6a4a2;int rc= +(0xd2d+202-0xdf7);rm_err("\x25\x73", +"\x53\x48\x53\x5f\x47\x4e\x4c\x3a\x20\x72\x6d\x6e\x65\x74\x5f\x73\x68\x73\x5f\x67\x65\x6e\x6c\x5f\x73\x65\x74\x5f\x66\x6c\x6f\x77\x5f\x73\x65\x67\x6d\x65\x6e\x74\x61\x74\x69\x6f\x6e" +);if(DATARMNET54338da2ff==NULL){rm_err("\x25\x73", +"\x53\x48\x53\x5f\x47\x4e\x4c\x3a\x20\x61\x6e\x20\x65\x72\x72\x6f\x72\x20\x6f\x63\x63\x75\x72\x65\x64\x20\x2d\x20\x69\x6e\x66\x6f\x20\x69\x73\x20\x6e\x75\x6c\x6c" +);return-(0xd26+209-0xdf6);}na=DATARMNET54338da2ff->attrs[DATARMNET50e1cd26c7]; +if(na){if(nla_memcpy(&DATARMNET1317c6a4a2,na,sizeof(DATARMNET1317c6a4a2))> +(0xd2d+202-0xdf7)){rm_err( +"\x53\x48\x53\x5f\x47\x4e\x4c\x3a\x20\x72\x65\x63\x76\x20\x73\x65\x67\x6d\x65\x6e\x74\x61\x74\x69\x6f\x6e\x20\x72\x65\x71\x20" +"\x68\x61\x73\x68\x5f\x74\x6f\x5f\x73\x65\x74\x20\x3d\x20\x30\x78\x25\x78\x20\x73\x65\x67\x73\x5f\x70\x65\x72\x5f\x73\x6b\x62\x20\x3d\x20\x25\x75" +,DATARMNET1317c6a4a2.DATARMNET8c11bd9466,DATARMNET1317c6a4a2.DATARMNET87636d0152 +);rc=DATARMNETf85599b9d8(DATARMNET1317c6a4a2.DATARMNET8c11bd9466, +DATARMNET1317c6a4a2.DATARMNET87636d0152);if(rc==(0xd26+209-0xdf6)){ +DATARMNET5d4ca1da1c(DATARMNET54338da2ff,DATARMNET0cb8735618); +trace_rmnet_shs_wq_high(DATARMNETa0ecb9daac,DATARMNETf814701a94, +DATARMNET1317c6a4a2.DATARMNET8c11bd9466,DATARMNET1317c6a4a2.DATARMNET87636d0152, +(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),NULL,NULL);}else{DATARMNET5d4ca1da1c( +DATARMNET54338da2ff,DATARMNET00895c1601);trace_rmnet_shs_wq_high( +DATARMNETa0ecb9daac,DATARMNET166a43f3aa,DATARMNET1317c6a4a2.DATARMNET8c11bd9466, +DATARMNET1317c6a4a2.DATARMNET87636d0152,(0x16e8+787-0xc0c),(0x16e8+787-0xc0c), +NULL,NULL);return(0xd2d+202-0xdf7);}}else{rm_err( +"\x53\x48\x53\x5f\x47\x4e\x4c\x3a\x20\x6e\x6c\x61\x5f\x6d\x65\x6d\x63\x70\x79\x20\x66\x61\x69\x6c\x65\x64\x20\x25\x64" "\n" +,DATARMNET50e1cd26c7);DATARMNET5d4ca1da1c(DATARMNET54338da2ff, +DATARMNET00895c1601);return(0xd2d+202-0xdf7);}}else{rm_err( +"\x53\x48\x53\x5f\x47\x4e\x4c\x3a\x20\x6e\x6f\x20\x69\x6e\x66\x6f\x2d\x3e\x61\x74\x74\x72\x73\x20\x25\x64" "\n" +,DATARMNET50e1cd26c7);DATARMNET5d4ca1da1c(DATARMNET54338da2ff, +DATARMNET00895c1601);return(0xd2d+202-0xdf7);}return(0xd2d+202-0xdf7);}int +DATARMNET29175fb5fc(struct sk_buff*DATARMNETaafc1d9519,struct genl_info* +DATARMNET54338da2ff){struct nlattr*na;struct DATARMNET6c41b886b2 +DATARMNET7f0ce2d6ad;int rc=(0xd2d+202-0xdf7);rm_err("\x25\x73", +"\x53\x48\x53\x5f\x47\x4e\x4c\x3a\x20\x72\x6d\x6e\x65\x74\x5f\x73\x68\x73\x5f\x67\x65\x6e\x6c\x5f\x74\x72\x79\x5f\x74\x6f\x5f\x6d\x6f\x76\x65\x5f\x66\x6c\x6f\x77" +);if(DATARMNET54338da2ff==NULL){rm_err("\x25\x73", +"\x53\x48\x53\x5f\x47\x4e\x4c\x3a\x20\x61\x6e\x20\x65\x72\x72\x6f\x72\x20\x6f\x63\x63\x75\x72\x65\x64\x20\x2d\x20\x69\x6e\x66\x6f\x20\x69\x73\x20\x6e\x75\x6c\x6c" +);return-(0xd26+209-0xdf6);}na=DATARMNET54338da2ff->attrs[DATARMNET813a742587]; +if(na){if(nla_memcpy(&DATARMNET7f0ce2d6ad,na,sizeof(DATARMNET7f0ce2d6ad))> +(0xd2d+202-0xdf7)){rm_err( +"\x53\x48\x53\x5f\x47\x4e\x4c\x3a\x20\x63\x75\x72\x5f\x63\x70\x75\x20\x3d\x25\x75\x20\x64\x65\x73\x74\x5f\x63\x70\x75\x20\x3d\x20\x25\x75\x20" +"\x68\x61\x73\x68\x5f\x74\x6f\x5f\x6d\x6f\x76\x65\x20\x3d\x20\x30\x78\x25\x78\x20\x73\x75\x67\x67\x5f\x74\x79\x70\x65\x20\x3d\x20\x25\x75" +,DATARMNET7f0ce2d6ad.DATARMNETc790ff30fc,DATARMNET7f0ce2d6ad.DATARMNET208ea67e1d +,DATARMNET7f0ce2d6ad.DATARMNET4da4612f1e,DATARMNET7f0ce2d6ad.DATARMNETa3f89581b5 +);rc=DATARMNET5f72606f6f(DATARMNET7f0ce2d6ad.DATARMNETc790ff30fc, +DATARMNET7f0ce2d6ad.DATARMNET208ea67e1d,DATARMNET7f0ce2d6ad.DATARMNET4da4612f1e, +DATARMNET7f0ce2d6ad.DATARMNETa3f89581b5);if(rc==(0xd26+209-0xdf6)){ +DATARMNET5d4ca1da1c(DATARMNET54338da2ff,DATARMNET598eb03fad); +trace_rmnet_shs_wq_high(DATARMNETa0ecb9daac,DATARMNETd7f7ade458, +DATARMNET7f0ce2d6ad.DATARMNETc790ff30fc,DATARMNET7f0ce2d6ad.DATARMNET208ea67e1d, +DATARMNET7f0ce2d6ad.DATARMNET4da4612f1e,DATARMNET7f0ce2d6ad.DATARMNETa3f89581b5, +NULL,NULL);}else{DATARMNET5d4ca1da1c(DATARMNET54338da2ff,DATARMNETe64295b6cb); +trace_rmnet_shs_wq_high(DATARMNETa0ecb9daac,DATARMNET53e4a6b394, +DATARMNET7f0ce2d6ad.DATARMNETc790ff30fc,DATARMNET7f0ce2d6ad.DATARMNET208ea67e1d, +DATARMNET7f0ce2d6ad.DATARMNET4da4612f1e,DATARMNET7f0ce2d6ad.DATARMNETa3f89581b5, +NULL,NULL);return(0xd2d+202-0xdf7);}}else{rm_err( +"\x53\x48\x53\x5f\x47\x4e\x4c\x3a\x20\x6e\x6c\x61\x5f\x6d\x65\x6d\x63\x70\x79\x20\x66\x61\x69\x6c\x65\x64\x20\x25\x64" "\n" +,DATARMNET813a742587);DATARMNET5d4ca1da1c(DATARMNET54338da2ff, +DATARMNETe64295b6cb);return(0xd2d+202-0xdf7);}}else{rm_err( +"\x53\x48\x53\x5f\x47\x4e\x4c\x3a\x20\x6e\x6f\x20\x69\x6e\x66\x6f\x2d\x3e\x61\x74\x74\x72\x73\x20\x25\x64" "\n" +,DATARMNET813a742587);DATARMNET5d4ca1da1c(DATARMNET54338da2ff, +DATARMNETe64295b6cb);return(0xd2d+202-0xdf7);}return(0xd2d+202-0xdf7);}int +DATARMNETc850634243(struct sk_buff*DATARMNETaafc1d9519,struct genl_info* +DATARMNET54338da2ff){rm_err("\x25\x73", +"\x53\x48\x53\x5f\x47\x4e\x4c\x3a\x20\x72\x6d\x6e\x65\x74\x5f\x73\x68\x73\x5f\x67\x65\x6e\x6c\x5f\x6d\x65\x6d\x5f\x73\x79\x6e\x63" +);if(!DATARMNETc252c204a8)DATARMNETc252c204a8=(0xd26+209-0xdf6); +trace_rmnet_shs_wq_high(DATARMNETa0ecb9daac,DATARMNETd1d3902361, +(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),NULL +,NULL);if(DATARMNET54338da2ff==NULL){rm_err("\x25\x73", +"\x53\x48\x53\x5f\x47\x4e\x4c\x3a\x20\x61\x6e\x20\x65\x72\x72\x6f\x72\x20\x6f\x63\x63\x75\x72\x65\x64\x20\x2d\x20\x69\x6e\x66\x6f\x20\x69\x73\x20\x6e\x75\x6c\x6c" +);return-(0xd26+209-0xdf6);}DATARMNETb01cbc5ec9=genl_info_net( +DATARMNET54338da2ff);DATARMNET373156e169=DATARMNET54338da2ff->snd_portid;return +(0xd2d+202-0xdf7);}int DATARMNET0dbc627e8f(void){int ret;DATARMNETc252c204a8= +(0xd2d+202-0xdf7);ret=genl_register_family(&DATARMNETecc643c219);if(ret!= +(0xd2d+202-0xdf7)){rm_err( +"\x53\x48\x53\x5f\x47\x4e\x4c\x3a\x20\x72\x65\x67\x69\x73\x74\x65\x72\x20\x66\x61\x6d\x69\x6c\x79\x20\x66\x61\x69\x6c\x65\x64\x3a\x20\x25\x69" +,ret);genl_unregister_family(&DATARMNETecc643c219);return-(0xd26+209-0xdf6);} +rm_err( +"\x53\x48\x53\x5f\x47\x4e\x4c\x3a\x20\x73\x75\x63\x63\x65\x73\x73\x66\x75\x6c\x6c\x79\x20\x72\x65\x67\x69\x73\x74\x65\x72\x65\x64\x20\x67\x65\x6e\x65\x72\x69\x63\x20\x6e\x65\x74\x6c\x69\x6e\x6b\x20\x66\x61\x6d\x69\x6c\x69\x79\x3a\x20\x25\x73" +,DATARMNET0228d9f101);return(0xd2d+202-0xdf7);}int DATARMNETeabd69d1ab(void){int + ret;DATARMNET5945236cd3(DATARMNET19092afcc2);ret=genl_unregister_family(& +DATARMNETecc643c219);if(ret!=(0xd2d+202-0xdf7)){rm_err( +"\x53\x48\x53\x5f\x47\x4e\x4c\x3a\x20\x75\x6e\x72\x65\x67\x69\x73\x74\x65\x72\x20\x66\x61\x6d\x69\x6c\x79\x20\x66\x61\x69\x6c\x65\x64\x3a\x20\x25\x69" "\n" +,ret);}DATARMNETc252c204a8=(0xd2d+202-0xdf7);return(0xd2d+202-0xdf7);} diff --git a/shs/rmnet_shs_wq_genl.h b/shs/rmnet_shs_wq_genl.h new file mode 100644 index 000000000000..7e6ac62c5bd6 --- /dev/null +++ b/shs/rmnet_shs_wq_genl.h @@ -0,0 +1,44 @@ +/* Copyright (c) 2019-2020 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 + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + */ + +#ifndef DATARMNETf34a2d1928 +#define DATARMNETf34a2d1928 +#include "rmnet_shs.h" +#include +#define DATARMNET0fa03ac25b (0xd26+209-0xdf6) +#define DATARMNET0228d9f101 "\x52\x4d\x4e\x45\x54\x5f\x53\x48\x53" +#define DATARMNETe64295b6cb (0xbb7+853-0xc3c) +#define DATARMNET598eb03fad (0xbc7+788-0xc04) +#define DATARMNET7afb49ee3f (0xd07+2129-0x121c) +#define DATARMNET00895c1601 (0xdc7+3085-0x163c) +#define DATARMNET0cb8735618 (0xdb7+3102-0x1634) +#define DATARMNET19092afcc2 (0xec7+1152-0x131d) +extern int DATARMNETc252c204a8;enum{DATARMNET9491b185b7,DATARMNETafd55f4acf, +DATARMNET8e3adfc5dd,DATARMNETffb2945689,DATARMNET51b1ee5a68,DATARMNET5b3796e25a, +};enum{DATARMNET603b776397,DATARMNETaa0fe5a855,DATARMNET7d289a7bfa, +DATARMNET813a742587,DATARMNET50e1cd26c7,DATARMNET0158bf4d2b,}; +#define DATARMNETcecb35ee33 (DATARMNET0158bf4d2b - (0xd26+209-0xdf6)) +struct DATARMNET6c41b886b2{uint32_t DATARMNET4da4612f1e;uint32_t +DATARMNETa3f89581b5;uint16_t DATARMNETc790ff30fc;uint16_t DATARMNET208ea67e1d;}; +struct DATARMNET837c876a22{uint32_t DATARMNET8c11bd9466;uint32_t +DATARMNET87636d0152;};int DATARMNET740f3b34b3(struct sk_buff*DATARMNETaafc1d9519 +,struct genl_info*DATARMNET54338da2ff);int DATARMNET29175fb5fc(struct sk_buff* +DATARMNETaafc1d9519,struct genl_info*DATARMNET54338da2ff);int +DATARMNETd81d2866ba(struct sk_buff*DATARMNETaafc1d9519,struct genl_info* +DATARMNET54338da2ff);int DATARMNETc850634243(struct sk_buff*DATARMNETaafc1d9519, +struct genl_info*DATARMNET54338da2ff);int DATARMNET5d4ca1da1c(struct genl_info* +DATARMNET54338da2ff,int val);int DATARMNET5945236cd3(int val);int +DATARMNETa9a7fa898c(void);int DATARMNET0dbc627e8f(void);int DATARMNETeabd69d1ab( +void); +#endif + diff --git a/shs/rmnet_shs_wq_mem.c b/shs/rmnet_shs_wq_mem.c new file mode 100644 index 000000000000..6dded942a271 --- /dev/null +++ b/shs/rmnet_shs_wq_mem.c @@ -0,0 +1,526 @@ +/* Copyright (c) 2019-2020 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 + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + */ + +#include "rmnet_shs_modules.h" +#include "rmnet_shs_common.h" +#include "rmnet_shs_wq_mem.h" +#include +#include +MODULE_LICENSE("\x47\x50\x4c\x20\x76\x32");struct proc_dir_entry* +DATARMNETe4c5563cdb;struct DATARMNET33582f7450 DATARMNET63c47f3c37[ +DATARMNETc6782fed88];struct DATARMNETf44cda1bf2 DATARMNET22b4032799[ +DATARMNET75c69edb82];struct DATARMNET3a84fbfeae DATARMNETb0d78d576f[ +DATARMNET75c69edb82];struct DATARMNETc13d990bf1 DATARMNET3d25ff4ef4[ +DATARMNET67578af78f];struct DATARMNET57ccbe14f3 DATARMNETf46265286b[ +DATARMNETe4d15b9332];struct list_head DATARMNET6c23f11e81=LIST_HEAD_INIT( +DATARMNET6c23f11e81);struct list_head DATARMNETf91b305f4e=LIST_HEAD_INIT( +DATARMNETf91b305f4e);struct list_head DATARMNETe46ae760db=LIST_HEAD_INIT( +DATARMNETe46ae760db);struct list_head DATARMNET3208cd0982=LIST_HEAD_INIT( +DATARMNET3208cd0982);struct DATARMNETa41d4c4a12*DATARMNET410036d5ac;struct +DATARMNETa41d4c4a12*DATARMNET19c47a9f3a;struct DATARMNETa41d4c4a12* +DATARMNET22e796eff3;struct DATARMNETa41d4c4a12*DATARMNET9b8000d2a7;struct +DATARMNETa41d4c4a12*DATARMNET67d31dc40a;static void DATARMNET6069bf201a(struct +vm_area_struct*vma){return;}static void DATARMNET0f6b7f3f93(struct +vm_area_struct*vma){return;}static vm_fault_t DATARMNET9efe8a3d18(struct +vm_fault*DATARMNETca901b4e1f){struct page*page=NULL;struct DATARMNETa41d4c4a12* +DATARMNET54338da2ff;DATARMNET6bf538fa23();if(DATARMNET410036d5ac){ +DATARMNET54338da2ff=(struct DATARMNETa41d4c4a12*)DATARMNETca901b4e1f->vma-> +vm_private_data;if(DATARMNET54338da2ff->data){page=virt_to_page( +DATARMNET54338da2ff->data);get_page(page);DATARMNETca901b4e1f->page=page;}else{ +DATARMNETaea4c85748();return VM_FAULT_SIGSEGV;}}else{DATARMNETaea4c85748(); +return VM_FAULT_SIGSEGV;}DATARMNETaea4c85748();return(0xd2d+202-0xdf7);}static +vm_fault_t DATARMNETd005aa7157(struct vm_fault*DATARMNETca901b4e1f){struct page* +page=NULL;struct DATARMNETa41d4c4a12*DATARMNET54338da2ff;DATARMNET6bf538fa23(); +if(DATARMNET19c47a9f3a){DATARMNET54338da2ff=(struct DATARMNETa41d4c4a12*) +DATARMNETca901b4e1f->vma->vm_private_data;if(DATARMNET54338da2ff->data){page= +virt_to_page(DATARMNET54338da2ff->data);get_page(page);DATARMNETca901b4e1f->page +=page;}else{DATARMNETaea4c85748();return VM_FAULT_SIGSEGV;}}else{ +DATARMNETaea4c85748();return VM_FAULT_SIGSEGV;}DATARMNETaea4c85748();return +(0xd2d+202-0xdf7);}static vm_fault_t DATARMNETb3a7180954(struct vm_fault* +DATARMNETca901b4e1f){struct page*page=NULL;struct DATARMNETa41d4c4a12* +DATARMNET54338da2ff;DATARMNET6bf538fa23();if(DATARMNET22e796eff3){ +DATARMNET54338da2ff=(struct DATARMNETa41d4c4a12*)DATARMNETca901b4e1f->vma-> +vm_private_data;if(DATARMNET54338da2ff->data){page=virt_to_page( +DATARMNET54338da2ff->data);get_page(page);DATARMNETca901b4e1f->page=page;}else{ +DATARMNETaea4c85748();return VM_FAULT_SIGSEGV;}}else{DATARMNETaea4c85748(); +return VM_FAULT_SIGSEGV;}DATARMNETaea4c85748();return(0xd2d+202-0xdf7);}static +vm_fault_t DATARMNETe35719979c(struct vm_fault*DATARMNETca901b4e1f){struct page* +page=NULL;struct DATARMNETa41d4c4a12*DATARMNET54338da2ff;DATARMNET6bf538fa23(); +if(DATARMNET9b8000d2a7){DATARMNET54338da2ff=(struct DATARMNETa41d4c4a12*) +DATARMNETca901b4e1f->vma->vm_private_data;if(DATARMNET54338da2ff->data){page= +virt_to_page(DATARMNET54338da2ff->data);get_page(page);DATARMNETca901b4e1f->page +=page;}else{DATARMNETaea4c85748();return VM_FAULT_SIGSEGV;}}else{ +DATARMNETaea4c85748();return VM_FAULT_SIGSEGV;}DATARMNETaea4c85748();return +(0xd2d+202-0xdf7);}static vm_fault_t DATARMNETe421c4e1db(struct vm_fault* +DATARMNETca901b4e1f){struct page*page=NULL;struct DATARMNETa41d4c4a12* +DATARMNET54338da2ff;DATARMNET6bf538fa23();if(DATARMNET67d31dc40a){ +DATARMNET54338da2ff=(struct DATARMNETa41d4c4a12*)DATARMNETca901b4e1f->vma-> +vm_private_data;if(DATARMNET54338da2ff->data){page=virt_to_page( +DATARMNET54338da2ff->data);get_page(page);DATARMNETca901b4e1f->page=page;}else{ +DATARMNETaea4c85748();return VM_FAULT_SIGSEGV;}}else{DATARMNETaea4c85748(); +return VM_FAULT_SIGSEGV;}DATARMNETaea4c85748();return(0xd2d+202-0xdf7);}static +const struct vm_operations_struct DATARMNETfa4e968e7d={.close= +DATARMNET0f6b7f3f93,.open=DATARMNET6069bf201a,.fault=DATARMNET9efe8a3d18,}; +static const struct vm_operations_struct DATARMNETe9c0626068={.close= +DATARMNET0f6b7f3f93,.open=DATARMNET6069bf201a,.fault=DATARMNETd005aa7157,}; +static const struct vm_operations_struct DATARMNET9a89317a86={.close= +DATARMNET0f6b7f3f93,.open=DATARMNET6069bf201a,.fault=DATARMNETb3a7180954,}; +static const struct vm_operations_struct DATARMNET5462c2ce60={.close= +DATARMNET0f6b7f3f93,.open=DATARMNET6069bf201a,.fault=DATARMNETe35719979c,}; +static const struct vm_operations_struct DATARMNET41944cc550={.close= +DATARMNET0f6b7f3f93,.open=DATARMNET6069bf201a,.fault=DATARMNETe421c4e1db,}; +static int DATARMNET54418f934d(struct file*DATARMNET3cc114dce0,struct +vm_area_struct*vma){vma->vm_ops=&DATARMNETfa4e968e7d;vma->vm_flags|= +VM_DONTEXPAND|VM_DONTDUMP;vma->vm_private_data=DATARMNET3cc114dce0->private_data +;return(0xd2d+202-0xdf7);}static int DATARMNETc55748448d(struct file* +DATARMNET3cc114dce0,struct vm_area_struct*vma){vma->vm_ops=&DATARMNETe9c0626068; +vma->vm_flags|=VM_DONTEXPAND|VM_DONTDUMP;vma->vm_private_data= +DATARMNET3cc114dce0->private_data;return(0xd2d+202-0xdf7);}static int +DATARMNET43c6d751a2(struct file*DATARMNET3cc114dce0,struct vm_area_struct*vma){ +vma->vm_ops=&DATARMNET9a89317a86;vma->vm_flags|=VM_DONTEXPAND|VM_DONTDUMP;vma-> +vm_private_data=DATARMNET3cc114dce0->private_data;return(0xd2d+202-0xdf7);} +static int DATARMNET7cc042bdf3(struct file*DATARMNET3cc114dce0,struct +vm_area_struct*vma){vma->vm_ops=&DATARMNET5462c2ce60;vma->vm_flags|= +VM_DONTEXPAND|VM_DONTDUMP;vma->vm_private_data=DATARMNET3cc114dce0->private_data +;return(0xd2d+202-0xdf7);}static int DATARMNET444e2eb654(struct file* +DATARMNET3cc114dce0,struct vm_area_struct*vma){vma->vm_ops=&DATARMNET41944cc550; +vma->vm_flags|=VM_DONTEXPAND|VM_DONTDUMP;vma->vm_private_data= +DATARMNET3cc114dce0->private_data;return(0xd2d+202-0xdf7);}static int +DATARMNET33a80d3bf7(struct inode*inode,struct file*DATARMNET3cc114dce0){struct +DATARMNETa41d4c4a12*DATARMNET54338da2ff;rm_err("\x25\x73", +"\x53\x48\x53\x5f\x4d\x45\x4d\x3a\x20\x72\x6d\x6e\x65\x74\x5f\x73\x68\x73\x5f\x6f\x70\x65\x6e\x20\x2d\x20\x65\x6e\x74\x72\x79" "\n" +);DATARMNET6bf538fa23();if(!DATARMNET410036d5ac){DATARMNET54338da2ff=kzalloc( +sizeof(struct DATARMNETa41d4c4a12),GFP_ATOMIC);if(!DATARMNET54338da2ff)goto +DATARMNET1d7e728ddf;DATARMNET54338da2ff->data=(char*)get_zeroed_page(GFP_ATOMIC) +;if(!DATARMNET54338da2ff->data){kfree(DATARMNET54338da2ff);goto +DATARMNET1d7e728ddf;}DATARMNET410036d5ac=DATARMNET54338da2ff;refcount_set(& +DATARMNET410036d5ac->refcnt,(0xd26+209-0xdf6));rm_err( +"\x53\x48\x53\x5f\x4d\x45\x4d\x3a\x20\x76\x69\x72\x74\x5f\x74\x6f\x5f\x70\x68\x79\x73\x20\x3d\x20\x30\x78\x25\x6c\x6c\x78\x20\x63\x61\x70\x5f\x73\x68\x61\x72\x65\x64\x20\x3d\x20\x30\x78\x25\x6c\x6c\x78" "\n" +,(unsigned long long)virt_to_phys((void*)DATARMNET54338da2ff),(unsigned long +long)virt_to_phys((void*)DATARMNET410036d5ac));}else{refcount_inc(& +DATARMNET410036d5ac->refcnt);}DATARMNET3cc114dce0->private_data= +DATARMNET410036d5ac;DATARMNETaea4c85748();rm_err("\x25\x73", +"\x53\x48\x53\x5f\x4d\x45\x4d\x3a\x20\x72\x6d\x6e\x65\x74\x5f\x73\x68\x73\x5f\x6f\x70\x65\x6e\x20\x2d\x20\x4f\x4b" "\n" +);return(0xd2d+202-0xdf7);DATARMNET1d7e728ddf:DATARMNETaea4c85748();rm_err( +"\x25\x73", +"\x53\x48\x53\x5f\x4d\x45\x4d\x3a\x20\x72\x6d\x6e\x65\x74\x5f\x73\x68\x73\x5f\x6f\x70\x65\x6e\x20\x2d\x20\x46\x41\x49\x4c\x45\x44" "\n" +);return-ENOMEM;}static int DATARMNET0935e3beb9(struct inode*inode,struct file* +DATARMNET3cc114dce0){struct DATARMNETa41d4c4a12*DATARMNET54338da2ff;rm_err( +"\x25\x73", +"\x53\x48\x53\x5f\x4d\x45\x4d\x3a\x20\x72\x6d\x6e\x65\x74\x5f\x73\x68\x73\x5f\x6f\x70\x65\x6e\x20\x67\x5f\x66\x6c\x6f\x77\x73\x20\x2d\x20\x65\x6e\x74\x72\x79" "\n" +);DATARMNET6bf538fa23();if(!DATARMNET19c47a9f3a){DATARMNET54338da2ff=kzalloc( +sizeof(struct DATARMNETa41d4c4a12),GFP_ATOMIC);if(!DATARMNET54338da2ff)goto +DATARMNET1d7e728ddf;DATARMNET54338da2ff->data=(char*)get_zeroed_page(GFP_ATOMIC) +;if(!DATARMNET54338da2ff->data){kfree(DATARMNET54338da2ff);goto +DATARMNET1d7e728ddf;}DATARMNET19c47a9f3a=DATARMNET54338da2ff;refcount_set(& +DATARMNET19c47a9f3a->refcnt,(0xd26+209-0xdf6));rm_err( +"\x53\x48\x53\x5f\x4d\x45\x4d\x3a\x20\x76\x69\x72\x74\x5f\x74\x6f\x5f\x70\x68\x79\x73\x20\x3d\x20\x30\x78\x25\x6c\x6c\x78\x20\x67\x66\x6c\x6f\x77\x5f\x73\x68\x61\x72\x65\x64\x20\x3d\x20\x30\x78\x25\x6c\x6c\x78" "\n" +,(unsigned long long)virt_to_phys((void*)DATARMNET54338da2ff),(unsigned long +long)virt_to_phys((void*)DATARMNET19c47a9f3a));}else{refcount_inc(& +DATARMNET19c47a9f3a->refcnt);}DATARMNET3cc114dce0->private_data= +DATARMNET19c47a9f3a;DATARMNETaea4c85748();return(0xd2d+202-0xdf7); +DATARMNET1d7e728ddf:DATARMNETaea4c85748();rm_err("\x25\x73", +"\x53\x48\x53\x5f\x4d\x45\x4d\x3a\x20\x72\x6d\x6e\x65\x74\x5f\x73\x68\x73\x5f\x6f\x70\x65\x6e\x20\x2d\x20\x46\x41\x49\x4c\x45\x44" "\n" +);return-ENOMEM;}static int DATARMNETfbd34e70a2(struct inode*inode,struct file* +DATARMNET3cc114dce0){struct DATARMNETa41d4c4a12*DATARMNET54338da2ff;rm_err( +"\x25\x73", +"\x53\x48\x53\x5f\x4d\x45\x4d\x3a\x20\x72\x6d\x6e\x65\x74\x5f\x73\x68\x73\x5f\x6f\x70\x65\x6e\x20\x73\x73\x5f\x66\x6c\x6f\x77\x73\x20\x2d\x20\x65\x6e\x74\x72\x79" "\n" +);DATARMNET6bf538fa23();if(!DATARMNET22e796eff3){DATARMNET54338da2ff=kzalloc( +sizeof(struct DATARMNETa41d4c4a12),GFP_ATOMIC);if(!DATARMNET54338da2ff)goto +DATARMNET1d7e728ddf;DATARMNET54338da2ff->data=(char*)get_zeroed_page(GFP_ATOMIC) +;if(!DATARMNET54338da2ff->data){kfree(DATARMNET54338da2ff);goto +DATARMNET1d7e728ddf;}DATARMNET22e796eff3=DATARMNET54338da2ff;refcount_set(& +DATARMNET22e796eff3->refcnt,(0xd26+209-0xdf6));rm_err( +"\x53\x48\x53\x5f\x4d\x45\x4d\x3a\x20\x76\x69\x72\x74\x5f\x74\x6f\x5f\x70\x68\x79\x73\x20\x3d\x20\x30\x78\x25\x6c\x6c\x78\x20\x73\x73\x66\x6c\x6f\x77\x5f\x73\x68\x61\x72\x65\x64\x20\x3d\x20\x30\x78\x25\x6c\x6c\x78" "\n" +,(unsigned long long)virt_to_phys((void*)DATARMNET54338da2ff),(unsigned long +long)virt_to_phys((void*)DATARMNET22e796eff3));}else{refcount_inc(& +DATARMNET22e796eff3->refcnt);}DATARMNET3cc114dce0->private_data= +DATARMNET22e796eff3;DATARMNETaea4c85748();return(0xd2d+202-0xdf7); +DATARMNET1d7e728ddf:DATARMNETaea4c85748();rm_err("\x25\x73", +"\x53\x48\x53\x5f\x4d\x45\x4d\x3a\x20\x72\x6d\x6e\x65\x74\x5f\x73\x68\x73\x5f\x6f\x70\x65\x6e\x20\x2d\x20\x46\x41\x49\x4c\x45\x44" "\n" +);return-ENOMEM;}static int DATARMNET57bcb932f3(struct inode*inode,struct file* +DATARMNET3cc114dce0){struct DATARMNETa41d4c4a12*DATARMNET54338da2ff;rm_err( +"\x25\x73", +"\x53\x48\x53\x5f\x4d\x45\x4d\x3a\x20\x72\x6d\x6e\x65\x74\x5f\x73\x68\x73\x5f\x6f\x70\x65\x6e\x20\x66\x66\x6c\x6f\x77\x73\x20\x2d\x20\x65\x6e\x74\x72\x79" "\n" +);DATARMNET6bf538fa23();if(!DATARMNET9b8000d2a7){DATARMNET54338da2ff=kzalloc( +sizeof(struct DATARMNETa41d4c4a12),GFP_ATOMIC);if(!DATARMNET54338da2ff)goto +DATARMNET1d7e728ddf;DATARMNET54338da2ff->data=(char*)get_zeroed_page(GFP_ATOMIC) +;if(!DATARMNET54338da2ff->data){kfree(DATARMNET54338da2ff);goto +DATARMNET1d7e728ddf;}DATARMNET9b8000d2a7=DATARMNET54338da2ff;refcount_set(& +DATARMNET9b8000d2a7->refcnt,(0xd26+209-0xdf6));rm_err( +"\x53\x48\x53\x5f\x4d\x45\x4d\x3a\x20\x76\x69\x72\x74\x5f\x74\x6f\x5f\x70\x68\x79\x73\x20\x3d\x20\x30\x78\x25\x6c\x6c\x78\x20\x66\x66\x6c\x6f\x77\x5f\x73\x68\x61\x72\x65\x64\x20\x3d\x20\x30\x78\x25\x6c\x6c\x78" "\n" +,(unsigned long long)virt_to_phys((void*)DATARMNET54338da2ff),(unsigned long +long)virt_to_phys((void*)DATARMNET9b8000d2a7));}else{refcount_inc(& +DATARMNET9b8000d2a7->refcnt);}DATARMNET3cc114dce0->private_data= +DATARMNET9b8000d2a7;DATARMNETaea4c85748();return(0xd2d+202-0xdf7); +DATARMNET1d7e728ddf:DATARMNETaea4c85748();rm_err("\x25\x73", +"\x53\x48\x53\x5f\x4d\x45\x4d\x3a\x20\x72\x6d\x6e\x65\x74\x5f\x73\x68\x73\x5f\x6f\x70\x65\x6e\x20\x2d\x20\x46\x41\x49\x4c\x45\x44" "\n" +);return-ENOMEM;}static int DATARMNETb9d10d8cc0(struct inode*inode,struct file* +DATARMNET3cc114dce0){struct DATARMNETa41d4c4a12*DATARMNET54338da2ff;rm_err( +"\x25\x73", +"\x53\x48\x53\x5f\x4d\x45\x4d\x3a\x20\x72\x6d\x6e\x65\x74\x5f\x73\x68\x73\x5f\x6f\x70\x65\x6e\x20\x6e\x65\x74\x64\x65\x76\x20\x2d\x20\x65\x6e\x74\x72\x79" "\n" +);DATARMNET6bf538fa23();if(!DATARMNET67d31dc40a){DATARMNET54338da2ff=kzalloc( +sizeof(struct DATARMNETa41d4c4a12),GFP_ATOMIC);if(!DATARMNET54338da2ff)goto +DATARMNET1d7e728ddf;DATARMNET54338da2ff->data=(char*)get_zeroed_page(GFP_ATOMIC) +;if(!DATARMNET54338da2ff->data){kfree(DATARMNET54338da2ff);goto +DATARMNET1d7e728ddf;}DATARMNET67d31dc40a=DATARMNET54338da2ff;refcount_set(& +DATARMNET67d31dc40a->refcnt,(0xd26+209-0xdf6));rm_err( +"\x53\x48\x53\x5f\x4d\x45\x4d\x3a\x20\x76\x69\x72\x74\x5f\x74\x6f\x5f\x70\x68\x79\x73\x20\x3d\x20\x30\x78\x25\x6c\x6c\x78\x20\x6e\x65\x74\x64\x65\x76\x5f\x73\x68\x61\x72\x65\x64\x20\x3d\x20\x30\x78\x25\x6c\x6c\x78" "\n" +,(unsigned long long)virt_to_phys((void*)DATARMNET54338da2ff),(unsigned long +long)virt_to_phys((void*)DATARMNET67d31dc40a));}else{refcount_inc(& +DATARMNET67d31dc40a->refcnt);}DATARMNET3cc114dce0->private_data= +DATARMNET67d31dc40a;DATARMNETaea4c85748();return(0xd2d+202-0xdf7); +DATARMNET1d7e728ddf:DATARMNETaea4c85748();return-ENOMEM;}static ssize_t +DATARMNETaf2aa1d70f(struct file*DATARMNET3cc114dce0,char __user*buf,size_t len, +loff_t*DATARMNET6396f657b3){return DATARMNET29d29f44cf;}static ssize_t +DATARMNET4761dcd3fd(struct file*DATARMNET3cc114dce0,const char __user*buf,size_t + len,loff_t*DATARMNET6396f657b3){return len;}static int DATARMNETcfbc4f0c39( +struct inode*inode,struct file*DATARMNET3cc114dce0){struct DATARMNETa41d4c4a12* +DATARMNET54338da2ff;rm_err("\x25\x73", +"\x53\x48\x53\x5f\x4d\x45\x4d\x3a\x20\x72\x6d\x6e\x65\x74\x5f\x73\x68\x73\x5f\x72\x65\x6c\x65\x61\x73\x65\x20\x2d\x20\x65\x6e\x74\x72\x79" "\n" +);DATARMNET6bf538fa23();if(DATARMNET410036d5ac){DATARMNET54338da2ff= +DATARMNET3cc114dce0->private_data;if(refcount_read(&DATARMNET54338da2ff->refcnt) +<=(0xd26+209-0xdf6)){free_page((unsigned long)DATARMNET54338da2ff->data);kfree( +DATARMNET54338da2ff);DATARMNET410036d5ac=NULL;DATARMNET3cc114dce0->private_data= +NULL;}else{refcount_dec(&DATARMNET54338da2ff->refcnt);}}DATARMNETaea4c85748(); +return(0xd2d+202-0xdf7);}static int DATARMNET2a9f67714f(struct inode*inode, +struct file*DATARMNET3cc114dce0){struct DATARMNETa41d4c4a12*DATARMNET54338da2ff; +rm_err("\x25\x73", +"\x53\x48\x53\x5f\x4d\x45\x4d\x3a\x20\x72\x6d\x6e\x65\x74\x5f\x73\x68\x73\x5f\x72\x65\x6c\x65\x61\x73\x65\x20\x2d\x20\x65\x6e\x74\x72\x79" "\n" +);DATARMNET6bf538fa23();if(DATARMNET19c47a9f3a){DATARMNET54338da2ff= +DATARMNET3cc114dce0->private_data;if(refcount_read(&DATARMNET54338da2ff->refcnt) +<=(0xd26+209-0xdf6)){free_page((unsigned long)DATARMNET54338da2ff->data);kfree( +DATARMNET54338da2ff);DATARMNET19c47a9f3a=NULL;DATARMNET3cc114dce0->private_data= +NULL;}else{refcount_dec(&DATARMNET54338da2ff->refcnt);}}DATARMNETaea4c85748(); +return(0xd2d+202-0xdf7);}static int DATARMNET968bc5b80d(struct inode*inode, +struct file*DATARMNET3cc114dce0){struct DATARMNETa41d4c4a12*DATARMNET54338da2ff; +rm_err("\x25\x73", +"\x53\x48\x53\x5f\x4d\x45\x4d\x3a\x20\x72\x6d\x6e\x65\x74\x5f\x73\x68\x73\x5f\x72\x65\x6c\x65\x61\x73\x65\x20\x2d\x20\x65\x6e\x74\x72\x79" "\n" +);DATARMNET6bf538fa23();if(DATARMNET22e796eff3){DATARMNET54338da2ff= +DATARMNET3cc114dce0->private_data;if(refcount_read(&DATARMNET54338da2ff->refcnt) +<=(0xd26+209-0xdf6)){free_page((unsigned long)DATARMNET54338da2ff->data);kfree( +DATARMNET54338da2ff);DATARMNET22e796eff3=NULL;DATARMNET3cc114dce0->private_data= +NULL;}else{refcount_dec(&DATARMNET54338da2ff->refcnt);}}DATARMNETaea4c85748(); +return(0xd2d+202-0xdf7);}static int DATARMNET59b415aded(struct inode*inode, +struct file*DATARMNET3cc114dce0){struct DATARMNETa41d4c4a12*DATARMNET54338da2ff; +rm_err("\x25\x73", +"\x53\x48\x53\x5f\x4d\x45\x4d\x3a\x20\x72\x6d\x6e\x65\x74\x5f\x73\x68\x73\x5f\x72\x65\x6c\x65\x61\x73\x65\x20\x2d\x20\x65\x6e\x74\x72\x79" "\n" +);DATARMNET6bf538fa23();if(DATARMNET9b8000d2a7){DATARMNET54338da2ff= +DATARMNET3cc114dce0->private_data;if(refcount_read(&DATARMNET54338da2ff->refcnt) +<=(0xd26+209-0xdf6)){free_page((unsigned long)DATARMNET54338da2ff->data);kfree( +DATARMNET54338da2ff);DATARMNET9b8000d2a7=NULL;DATARMNET3cc114dce0->private_data= +NULL;}else{refcount_dec(&DATARMNET54338da2ff->refcnt);}}DATARMNETaea4c85748(); +return(0xd2d+202-0xdf7);}static int DATARMNET18464ea5e3(struct inode*inode, +struct file*DATARMNET3cc114dce0){struct DATARMNETa41d4c4a12*DATARMNET54338da2ff; +rm_err("\x25\x73", +"\x53\x48\x53\x5f\x4d\x45\x4d\x3a\x20\x72\x6d\x6e\x65\x74\x5f\x73\x68\x73\x5f\x72\x65\x6c\x65\x61\x73\x65\x20\x6e\x65\x74\x64\x65\x76\x20\x2d\x20\x65\x6e\x74\x72\x79" "\n" +);DATARMNET6bf538fa23();if(DATARMNET67d31dc40a){DATARMNET54338da2ff= +DATARMNET3cc114dce0->private_data;if(refcount_read(&DATARMNET54338da2ff->refcnt) +<=(0xd26+209-0xdf6)){free_page((unsigned long)DATARMNET54338da2ff->data);kfree( +DATARMNET54338da2ff);DATARMNET67d31dc40a=NULL;DATARMNET3cc114dce0->private_data= +NULL;}else{refcount_dec(&DATARMNET54338da2ff->refcnt);}}DATARMNETaea4c85748(); +return(0xd2d+202-0xdf7);}static const struct file_operations DATARMNET668485bd14 +={.owner=THIS_MODULE,.mmap=DATARMNET54418f934d,.open=DATARMNET33a80d3bf7,. +release=DATARMNETcfbc4f0c39,.read=DATARMNETaf2aa1d70f,.write=DATARMNET4761dcd3fd +,};static const struct file_operations DATARMNETe84fbaa6af={.owner=THIS_MODULE,. +mmap=DATARMNETc55748448d,.open=DATARMNET0935e3beb9,.release=DATARMNET2a9f67714f, +.read=DATARMNETaf2aa1d70f,.write=DATARMNET4761dcd3fd,};static const struct +file_operations DATARMNET8fe5f892a8={.owner=THIS_MODULE,.mmap= +DATARMNET43c6d751a2,.open=DATARMNETfbd34e70a2,.release=DATARMNET968bc5b80d,.read +=DATARMNETaf2aa1d70f,.write=DATARMNET4761dcd3fd,};static const struct +file_operations DATARMNET0104d40d4b={.owner=THIS_MODULE,.mmap= +DATARMNET7cc042bdf3,.open=DATARMNET57bcb932f3,.release=DATARMNET59b415aded,.read +=DATARMNETaf2aa1d70f,.write=DATARMNET4761dcd3fd,};static const struct +file_operations DATARMNET6eb63d9ad0={.owner=THIS_MODULE,.mmap= +DATARMNET444e2eb654,.open=DATARMNETb9d10d8cc0,.release=DATARMNET18464ea5e3,.read +=DATARMNETaf2aa1d70f,.write=DATARMNET4761dcd3fd,};void DATARMNET28a80d526e( +struct DATARMNET6c78e47d24*DATARMNETd2a694d52a,struct list_head* +DATARMNETf0fb155a9c){struct DATARMNETa52c09a590*DATARMNET0f551e8a47;if(! +DATARMNETd2a694d52a||!DATARMNETf0fb155a9c){DATARMNET68d84e7b98[ +DATARMNETac729c3d29]++;return;}DATARMNET0f551e8a47=kzalloc(sizeof(* +DATARMNET0f551e8a47),GFP_ATOMIC);if(DATARMNET0f551e8a47!=NULL){ +DATARMNET0f551e8a47->DATARMNET253a9fc708=DATARMNETd2a694d52a-> +DATARMNET253a9fc708;DATARMNET0f551e8a47->DATARMNET42a992465f=DATARMNETd2a694d52a +->DATARMNET7c894c2f8f;DATARMNET0f551e8a47->hash=DATARMNETd2a694d52a->hash; +DATARMNET0f551e8a47->DATARMNET324c1a8f98=DATARMNETd2a694d52a-> +DATARMNET324c1a8f98;DATARMNET0f551e8a47->DATARMNETbb80fccd97=DATARMNETd2a694d52a +->DATARMNETbb80fccd97;list_add(&DATARMNET0f551e8a47->DATARMNET6f898987df, +DATARMNETf0fb155a9c);}else{DATARMNET68d84e7b98[DATARMNET6533f70c87]++;}}void +DATARMNET3af54cd726(struct list_head*DATARMNETf0fb155a9c){struct +DATARMNETa52c09a590*DATARMNET0f551e8a47;struct list_head*DATARMNET7b34b7b5be,* +next;if(!DATARMNETf0fb155a9c){DATARMNET68d84e7b98[DATARMNETac729c3d29]++;return; +}list_for_each_safe(DATARMNET7b34b7b5be,next,DATARMNETf0fb155a9c){ +DATARMNET0f551e8a47=list_entry(DATARMNET7b34b7b5be,struct DATARMNETa52c09a590, +DATARMNET6f898987df);if(!DATARMNET0f551e8a47)continue;list_del_init(& +DATARMNET0f551e8a47->DATARMNET6f898987df);kfree(DATARMNET0f551e8a47);}}void +DATARMNET24e4475345(struct DATARMNET6c78e47d24*DATARMNETd2a694d52a,struct +list_head*DATARMNETb436c3f30b){struct DATARMNET09a412b1c6*DATARMNET4238158b2a;if +(!DATARMNETd2a694d52a||!DATARMNETb436c3f30b){DATARMNET68d84e7b98[ +DATARMNETac729c3d29]++;return;}if(!DATARMNET362b15f941(DATARMNETd2a694d52a-> +DATARMNET7c894c2f8f)){DATARMNET4238158b2a=kzalloc(sizeof(*DATARMNET4238158b2a), +GFP_ATOMIC);if(DATARMNET4238158b2a!=NULL){DATARMNET4238158b2a-> +DATARMNET253a9fc708=DATARMNETd2a694d52a->DATARMNET253a9fc708;DATARMNET4238158b2a +->DATARMNET42a992465f=DATARMNETd2a694d52a->DATARMNET7c894c2f8f; +DATARMNET4238158b2a->hash=DATARMNETd2a694d52a->hash;DATARMNET4238158b2a-> +DATARMNET324c1a8f98=DATARMNETd2a694d52a->DATARMNET324c1a8f98;list_add(& +DATARMNET4238158b2a->DATARMNETd502c0412a,DATARMNETb436c3f30b);}else{ +DATARMNET68d84e7b98[DATARMNET6533f70c87]++;}}}void DATARMNETa1b141715b(struct +list_head*DATARMNETb436c3f30b){struct DATARMNET09a412b1c6*DATARMNET4238158b2a; +struct list_head*DATARMNET7b34b7b5be,*next;if(!DATARMNETb436c3f30b){ +DATARMNET68d84e7b98[DATARMNETac729c3d29]++;return;}list_for_each_safe( +DATARMNET7b34b7b5be,next,DATARMNETb436c3f30b){DATARMNET4238158b2a=list_entry( +DATARMNET7b34b7b5be,struct DATARMNET09a412b1c6,DATARMNETd502c0412a);if(! +DATARMNET4238158b2a)continue;list_del_init(&DATARMNET4238158b2a-> +DATARMNETd502c0412a);kfree(DATARMNET4238158b2a);}}void DATARMNETc6439e3d71( +struct DATARMNETc8fdbf9c85*DATARMNET7bea4a06a6,struct DATARMNET228056d4b7* +DATARMNETf632b170b1,struct list_head*DATARMNETe46ae760db){u64 +DATARMNET264b01f4d5,DATARMNET53ce143c7e=(0xd2d+202-0xdf7);struct +DATARMNET47a6995138*DATARMNETace28a2c7f;int flows=(0xd2d+202-0xdf7);if(! +DATARMNETf632b170b1||!DATARMNETe46ae760db){DATARMNET68d84e7b98[ +DATARMNETac729c3d29]++;return;}flows=DATARMNET7bea4a06a6->DATARMNET73464778dc[ +DATARMNETf632b170b1->DATARMNET42a992465f].flows;DATARMNET264b01f4d5= +DATARMNET713717107f[DATARMNETf632b170b1->DATARMNET42a992465f]; +DATARMNET53ce143c7e=DATARMNET4793ed48af[DATARMNETf632b170b1->DATARMNET42a992465f +];DATARMNETace28a2c7f=kzalloc(sizeof(*DATARMNETace28a2c7f),GFP_ATOMIC);if( +DATARMNETace28a2c7f==NULL){DATARMNET68d84e7b98[DATARMNET6533f70c87]++;return;} +DATARMNETace28a2c7f->DATARMNET42a992465f=DATARMNETf632b170b1-> +DATARMNET42a992465f;if(flows<=(0xd2d+202-0xdf7)){DATARMNETace28a2c7f-> +DATARMNET18b7a5b761=DATARMNET264b01f4d5;DATARMNETace28a2c7f->DATARMNET4da6031170 +=DATARMNET264b01f4d5;DATARMNETace28a2c7f->DATARMNET4df302dbd6=(0xd2d+202-0xdf7); +list_add(&DATARMNETace28a2c7f->DATARMNET02523bfb57,DATARMNETe46ae760db);return;} +if(DATARMNETf632b170b1->DATARMNET324c1a8f98DATARMNET18b7a5b761=DATARMNET264b01f4d5-DATARMNETf632b170b1 +->DATARMNET324c1a8f98;}else{DATARMNETace28a2c7f->DATARMNET18b7a5b761= +(0xd2d+202-0xdf7);}if(DATARMNETf632b170b1->DATARMNET253a9fc708< +DATARMNET264b01f4d5){DATARMNETace28a2c7f->DATARMNET4da6031170= +DATARMNET264b01f4d5-DATARMNETf632b170b1->DATARMNET253a9fc708;}else{ +DATARMNETace28a2c7f->DATARMNET4da6031170=(0xd2d+202-0xdf7);}DATARMNETace28a2c7f +->DATARMNET4df302dbd6=DATARMNETf632b170b1->DATARMNETbb80fccd97;list_add(& +DATARMNETace28a2c7f->DATARMNET02523bfb57,DATARMNETe46ae760db);}void +DATARMNETb177316a15(struct list_head*DATARMNETe46ae760db){struct +DATARMNET47a6995138*DATARMNETace28a2c7f;struct list_head*DATARMNET7b34b7b5be,* +next;if(!DATARMNETe46ae760db){DATARMNET68d84e7b98[DATARMNETac729c3d29]++;return; +}list_for_each_safe(DATARMNET7b34b7b5be,next,DATARMNETe46ae760db){ +DATARMNETace28a2c7f=list_entry(DATARMNET7b34b7b5be,struct DATARMNET47a6995138, +DATARMNET02523bfb57);if(!DATARMNETace28a2c7f)continue;list_del_init(& +DATARMNETace28a2c7f->DATARMNET02523bfb57);kfree(DATARMNETace28a2c7f);}}void +DATARMNET6f4b0915d3(struct DATARMNET6c78e47d24*DATARMNETd2a694d52a,struct +list_head*DATARMNET3208cd0982){struct DATARMNET13c47d154e*DATARMNETf02b2a5be7;if +(!DATARMNETd2a694d52a||!DATARMNET3208cd0982){DATARMNET68d84e7b98[ +DATARMNETac729c3d29]++;return;}DATARMNETf02b2a5be7=kzalloc(sizeof(* +DATARMNETf02b2a5be7),GFP_ATOMIC);if(DATARMNETf02b2a5be7!=NULL&& +DATARMNETd2a694d52a->DATARMNET63b1a086d5!=NULL){DATARMNETf02b2a5be7-> +DATARMNET253a9fc708=DATARMNETd2a694d52a->DATARMNET253a9fc708;DATARMNETf02b2a5be7 +->DATARMNET42a992465f=DATARMNETd2a694d52a->DATARMNET7c894c2f8f; +DATARMNETf02b2a5be7->hash=DATARMNETd2a694d52a->hash;DATARMNETf02b2a5be7-> +DATARMNET324c1a8f98=DATARMNETd2a694d52a->DATARMNET324c1a8f98;DATARMNETf02b2a5be7 +->DATARMNETbb80fccd97=DATARMNETd2a694d52a->DATARMNETbb80fccd97; +DATARMNETf02b2a5be7->trans_proto=DATARMNETd2a694d52a->DATARMNET1e9d25d9ff; +DATARMNETf02b2a5be7->mux_id=DATARMNETd2a694d52a->mux_id;DATARMNETf02b2a5be7-> +DATARMNET95266642d1=DATARMNETd2a694d52a->DATARMNET95266642d1;rm_err( +"\x53\x48\x53\x5f\x46\x4d\x55\x58\x3a\x20\x6d\x75\x78\x20\x69\x64\x20\x66\x6f\x72\x20\x66\x66\x20\x68\x61\x73\x68\x20\x30\x78\x25\x78\x20\x69\x73\x20\x25\x64\x20\x74\x70\x20\x25\x64" +,DATARMNETf02b2a5be7->hash,DATARMNETf02b2a5be7->mux_id,DATARMNETf02b2a5be7-> +trans_proto);memcpy(&DATARMNETf02b2a5be7->ip_hdr,&DATARMNETd2a694d52a-> +DATARMNET63b1a086d5->ip_hdr,sizeof(DATARMNETf02b2a5be7->ip_hdr));memcpy(& +DATARMNETf02b2a5be7->DATARMNETe33b41dad9,&DATARMNETd2a694d52a-> +DATARMNET63b1a086d5->DATARMNETe33b41dad9,sizeof(DATARMNETf02b2a5be7-> +DATARMNETe33b41dad9));list_add(&DATARMNETf02b2a5be7->DATARMNETec0e3cb8f0, +DATARMNET3208cd0982);}else{DATARMNET68d84e7b98[DATARMNET6533f70c87]++;}}void +DATARMNETcc489fbbad(struct list_head*DATARMNET3208cd0982){struct +DATARMNET13c47d154e*DATARMNETf02b2a5be7;struct list_head*DATARMNET7b34b7b5be,* +next;if(!DATARMNET3208cd0982){DATARMNET68d84e7b98[DATARMNETac729c3d29]++;return; +}list_for_each_safe(DATARMNET7b34b7b5be,next,DATARMNET3208cd0982){ +DATARMNETf02b2a5be7=list_entry(DATARMNET7b34b7b5be,struct DATARMNET13c47d154e, +DATARMNETec0e3cb8f0);if(!DATARMNETf02b2a5be7)continue;list_del_init(& +DATARMNETf02b2a5be7->DATARMNETec0e3cb8f0);kfree(DATARMNETf02b2a5be7);}}void +DATARMNET5157210c44(struct list_head*DATARMNETe46ae760db){struct +DATARMNET47a6995138*DATARMNETace28a2c7f;uint16_t idx=(0xd2d+202-0xdf7);if(! +DATARMNETe46ae760db){rm_err("\x25\x73", +"\x53\x48\x53\x5f\x53\x43\x41\x50\x53\x3a\x20\x43\x50\x55\x20\x43\x61\x70\x61\x63\x69\x74\x69\x65\x73\x20\x4c\x69\x73\x74\x20\x69\x73\x20\x4e\x55\x4c\x4c" +);return;}rm_err("\x25\x73", +"\x53\x48\x53\x5f\x53\x43\x41\x50\x53\x3a\x20\x53\x6f\x72\x74\x65\x64\x20\x43\x50\x55\x20\x43\x61\x70\x61\x63\x69\x74\x69\x65\x73\x3a" +);list_for_each_entry(DATARMNETace28a2c7f,DATARMNETe46ae760db, +DATARMNET02523bfb57){if(!DATARMNETace28a2c7f)continue;if(idx>= +DATARMNETc6782fed88)break;rm_err( +"\x53\x48\x53\x5f\x53\x43\x41\x50\x53\x3a\x20\x3e\x20\x63\x70\x75\x5b\x25\x64\x5d\x20\x77\x69\x74\x68\x20\x70\x70\x73\x20\x63\x61\x70\x61\x63\x69\x74\x79\x20\x3d\x20\x25\x6c\x6c\x75\x20\x7c\x20" +"\x61\x76\x67\x20\x70\x70\x73\x20\x63\x61\x70\x20\x3d\x20\x25\x6c\x6c\x75\x20\x62\x70\x73\x20\x3d\x20\x25\x6c\x6c\x75" +,DATARMNETace28a2c7f->DATARMNET42a992465f,DATARMNETace28a2c7f-> +DATARMNET18b7a5b761,DATARMNETace28a2c7f->DATARMNET4da6031170,DATARMNETace28a2c7f +->DATARMNET4df302dbd6);DATARMNET63c47f3c37[idx].DATARMNET4da6031170= +DATARMNETace28a2c7f->DATARMNET4da6031170;DATARMNET63c47f3c37[idx]. +DATARMNET18b7a5b761=DATARMNETace28a2c7f->DATARMNET18b7a5b761;DATARMNET63c47f3c37 +[idx].DATARMNET4df302dbd6=DATARMNETace28a2c7f->DATARMNET4df302dbd6; +DATARMNET63c47f3c37[idx].DATARMNET42a992465f=DATARMNETace28a2c7f-> +DATARMNET42a992465f;idx+=(0xd26+209-0xdf6);}rm_err( +"\x53\x48\x53\x5f\x4d\x45\x4d\x3a\x20\x63\x61\x70\x5f\x64\x6d\x61\x5f\x70\x74\x72\x20\x3d\x20\x30\x78\x25\x6c\x6c\x78\x20\x61\x64\x64\x72\x20\x3d\x20\x30\x78\x25\x70\x4b" "\n" +,(unsigned long long)virt_to_phys((void*)DATARMNET410036d5ac), +DATARMNET410036d5ac);if(!DATARMNET410036d5ac){rm_err("\x25\x73", +"\x53\x48\x53\x5f\x57\x52\x49\x54\x45\x3a\x20\x63\x61\x70\x5f\x73\x68\x61\x72\x65\x64\x20\x69\x73\x20\x4e\x55\x4c\x4c" +);return;}memcpy((char*)DATARMNET410036d5ac->data,(void*)&DATARMNET63c47f3c37[ +(0xd2d+202-0xdf7)],sizeof(DATARMNET63c47f3c37));}void DATARMNET0e273eab79(struct + list_head*DATARMNETb436c3f30b){struct DATARMNET09a412b1c6*DATARMNET4238158b2a; +uint16_t idx=(0xd2d+202-0xdf7);int DATARMNETcde08f6e7d=(0xd2d+202-0xdf7);if(! +DATARMNETb436c3f30b){rm_err("\x25\x73", +"\x53\x48\x53\x5f\x53\x47\x4f\x4c\x44\x3a\x20\x47\x6f\x6c\x64\x20\x46\x6c\x6f\x77\x73\x20\x4c\x69\x73\x74\x20\x69\x73\x20\x4e\x55\x4c\x4c" +);return;}rm_err("\x25\x73", +"\x53\x48\x53\x5f\x53\x47\x4f\x4c\x44\x3a\x20\x4c\x69\x73\x74\x20\x6f\x66\x20\x73\x6f\x72\x74\x65\x64\x20\x67\x6f\x6c\x64\x20\x66\x6c\x6f\x77\x73\x3a" +);list_for_each_entry(DATARMNET4238158b2a,DATARMNETb436c3f30b, +DATARMNETd502c0412a){if(!DATARMNET4238158b2a)continue;if(DATARMNET4238158b2a-> +DATARMNET324c1a8f98==(0xd2d+202-0xdf7)){continue;}if(idx>=DATARMNET75c69edb82){ +break;}rm_err( +"\x53\x48\x53\x5f\x53\x47\x4f\x4c\x44\x3a\x20\x3e\x20\x66\x6c\x6f\x77\x20\x30\x78\x25\x78\x20\x77\x69\x74\x68\x20\x70\x70\x73\x20\x25\x6c\x6c\x75\x20\x6f\x6e\x20\x63\x70\x75\x5b\x25\x64\x5d" +,DATARMNET4238158b2a->hash,DATARMNET4238158b2a->DATARMNET324c1a8f98, +DATARMNET4238158b2a->DATARMNET42a992465f);DATARMNETcde08f6e7d+=(0xd26+209-0xdf6) +;DATARMNET22b4032799[idx].DATARMNET42a992465f=DATARMNET4238158b2a-> +DATARMNET42a992465f;DATARMNET22b4032799[idx].hash=DATARMNET4238158b2a->hash; +DATARMNET22b4032799[idx].DATARMNET253a9fc708=DATARMNET4238158b2a-> +DATARMNET253a9fc708;DATARMNET22b4032799[idx].DATARMNET324c1a8f98= +DATARMNET4238158b2a->DATARMNET324c1a8f98;idx+=(0xd26+209-0xdf6);}rm_err( +"\x53\x48\x53\x5f\x4d\x45\x4d\x3a\x20\x67\x66\x6c\x6f\x77\x5f\x64\x6d\x61\x5f\x70\x74\x72\x20\x3d\x20\x30\x78\x25\x6c\x6c\x78\x20\x61\x64\x64\x72\x20\x3d\x20\x30\x78\x25\x70\x4b" "\n" +,(unsigned long long)virt_to_phys((void*)DATARMNET19c47a9f3a), +DATARMNET19c47a9f3a);if(!DATARMNET19c47a9f3a){rm_err("\x25\x73", +"\x53\x48\x53\x5f\x57\x52\x49\x54\x45\x3a\x20\x67\x66\x6c\x6f\x77\x5f\x73\x68\x61\x72\x65\x64\x20\x69\x73\x20\x4e\x55\x4c\x4c" +);return;}rm_err( +"\x53\x48\x53\x5f\x53\x47\x4f\x4c\x44\x3a\x20\x6e\x75\x6d\x20\x67\x6f\x6c\x64\x20\x66\x6c\x6f\x77\x73\x20\x3d\x20\x25\x75" "\n" +,idx);memcpy(((char*)DATARMNET19c47a9f3a->data),&idx,sizeof(idx));memcpy(((char* +)DATARMNET19c47a9f3a->data+sizeof(uint16_t)),(void*)&DATARMNET22b4032799[ +(0xd2d+202-0xdf7)],sizeof(DATARMNET22b4032799));}void DATARMNETe15af8eb6d(struct + list_head*DATARMNETf0fb155a9c){struct DATARMNETa52c09a590*DATARMNET0f551e8a47; +uint16_t idx=(0xd2d+202-0xdf7);int DATARMNET6d96003717=(0xd2d+202-0xdf7);if(! +DATARMNETf0fb155a9c){rm_err("\x25\x73", +"\x53\x48\x53\x5f\x53\x4c\x4f\x57\x3a\x20\x53\x53\x20\x46\x6c\x6f\x77\x73\x20\x4c\x69\x73\x74\x20\x69\x73\x20\x4e\x55\x4c\x4c" +);return;}rm_err("\x25\x73", +"\x53\x48\x53\x5f\x53\x4c\x4f\x57\x3a\x20\x4c\x69\x73\x74\x20\x6f\x66\x20\x73\x6f\x72\x74\x65\x64\x20\x73\x73\x20\x66\x6c\x6f\x77\x73\x3a" +);list_for_each_entry(DATARMNET0f551e8a47,DATARMNETf0fb155a9c, +DATARMNET6f898987df){if(!DATARMNET0f551e8a47)continue;if(DATARMNET0f551e8a47-> +DATARMNET324c1a8f98==(0xd2d+202-0xdf7)){continue;}if(idx>=DATARMNET75c69edb82){ +break;}rm_err( +"\x53\x48\x53\x5f\x53\x4c\x4f\x57\x3a\x20\x3e\x20\x66\x6c\x6f\x77\x20\x30\x78\x25\x78\x20\x77\x69\x74\x68\x20\x70\x70\x73\x20\x25\x6c\x6c\x75\x20\x6f\x6e\x20\x63\x70\x75\x5b\x25\x64\x5d" +,DATARMNET0f551e8a47->hash,DATARMNET0f551e8a47->DATARMNET324c1a8f98, +DATARMNET0f551e8a47->DATARMNET42a992465f);DATARMNET6d96003717+=(0xd26+209-0xdf6) +;DATARMNETb0d78d576f[idx].DATARMNET42a992465f=DATARMNET0f551e8a47-> +DATARMNET42a992465f;DATARMNETb0d78d576f[idx].hash=DATARMNET0f551e8a47->hash; +DATARMNETb0d78d576f[idx].DATARMNET253a9fc708=DATARMNET0f551e8a47-> +DATARMNET253a9fc708;DATARMNETb0d78d576f[idx].DATARMNET324c1a8f98= +DATARMNET0f551e8a47->DATARMNET324c1a8f98;DATARMNETb0d78d576f[idx]. +DATARMNETbb80fccd97=DATARMNET0f551e8a47->DATARMNETbb80fccd97;idx+= +(0xd26+209-0xdf6);}rm_err( +"\x53\x48\x53\x5f\x4d\x45\x4d\x3a\x20\x73\x73\x66\x6c\x6f\x77\x5f\x64\x6d\x61\x5f\x70\x74\x72\x20\x3d\x20\x30\x78\x25\x6c\x6c\x78\x20\x61\x64\x64\x72\x20\x3d\x20\x30\x78\x25\x70\x4b" "\n" +,(unsigned long long)virt_to_phys((void*)DATARMNET22e796eff3), +DATARMNET22e796eff3);if(!DATARMNET22e796eff3){rm_err("\x25\x73", +"\x53\x48\x53\x5f\x57\x52\x49\x54\x45\x3a\x20\x73\x73\x66\x6c\x6f\x77\x5f\x73\x68\x61\x72\x65\x64\x20\x69\x73\x20\x4e\x55\x4c\x4c" +);return;}rm_err( +"\x53\x48\x53\x5f\x53\x4c\x4f\x57\x3a\x20\x6e\x75\x6d\x20\x73\x73\x20\x66\x6c\x6f\x77\x73\x20\x3d\x20\x25\x75" "\n" +,idx);memcpy(((char*)DATARMNET22e796eff3->data),&idx,sizeof(idx));memcpy(((char* +)DATARMNET22e796eff3->data+sizeof(uint16_t)),(void*)&DATARMNETb0d78d576f[ +(0xd2d+202-0xdf7)],sizeof(DATARMNETb0d78d576f));}void DATARMNET78f3a0ca4f(struct + list_head*DATARMNET3208cd0982){struct DATARMNET13c47d154e*DATARMNETf02b2a5be7; +uint16_t idx=(0xd2d+202-0xdf7);int DATARMNETd31ee74d2e=(0xd2d+202-0xdf7);if(! +DATARMNET3208cd0982){rm_err("\x25\x73", +"\x53\x48\x53\x5f\x54\x4f\x50\x3a\x20\x46\x69\x6c\x74\x65\x72\x20\x46\x6c\x6f\x77\x73\x20\x4c\x69\x73\x74\x20\x69\x73\x20\x4e\x55\x4c\x4c" +);return;}rm_err("\x25\x73", +"\x53\x48\x53\x5f\x54\x4f\x50\x3a\x20\x4c\x69\x73\x74\x20\x6f\x66\x20\x54\x4f\x50\x20\x66\x69\x6c\x74\x65\x72\x20\x66\x6c\x6f\x77\x73\x3a" +);list_for_each_entry(DATARMNETf02b2a5be7,DATARMNET3208cd0982, +DATARMNETec0e3cb8f0){if(!DATARMNETf02b2a5be7)continue;if(DATARMNETf02b2a5be7-> +DATARMNET324c1a8f98==(0xd2d+202-0xdf7)){continue;}if(idx>=DATARMNET67578af78f){ +break;}rm_err( +"\x53\x48\x53\x5f\x54\x4f\x50\x3a\x20\x3e\x20\x66\x6c\x6f\x77\x20\x30\x78\x25\x78\x20\x77\x69\x74\x68\x20\x70\x70\x73\x20\x25\x6c\x6c\x75\x20\x6f\x6e\x20\x63\x70\x75\x5b\x25\x64\x5d" +,DATARMNETf02b2a5be7->hash,DATARMNETf02b2a5be7->DATARMNET324c1a8f98, +DATARMNETf02b2a5be7->DATARMNET42a992465f);DATARMNETd31ee74d2e+=(0xd26+209-0xdf6) +;memcpy(&(DATARMNET3d25ff4ef4[idx].ip_hdr),&(DATARMNETf02b2a5be7->ip_hdr),sizeof +(DATARMNET3d25ff4ef4[idx].ip_hdr));memcpy(&(DATARMNET3d25ff4ef4[idx]. +DATARMNETe33b41dad9),&(DATARMNETf02b2a5be7->DATARMNETe33b41dad9),sizeof( +DATARMNET3d25ff4ef4[idx].DATARMNETe33b41dad9));DATARMNET3d25ff4ef4[idx]. +DATARMNET42a992465f=DATARMNETf02b2a5be7->DATARMNET42a992465f;DATARMNET3d25ff4ef4 +[idx].hash=DATARMNETf02b2a5be7->hash;DATARMNET3d25ff4ef4[idx]. +DATARMNET253a9fc708=DATARMNETf02b2a5be7->DATARMNET253a9fc708;DATARMNET3d25ff4ef4 +[idx].DATARMNET324c1a8f98=DATARMNETf02b2a5be7->DATARMNET324c1a8f98; +DATARMNET3d25ff4ef4[idx].DATARMNETbb80fccd97=DATARMNETf02b2a5be7-> +DATARMNETbb80fccd97;DATARMNET3d25ff4ef4[idx].trans_proto=DATARMNETf02b2a5be7-> +trans_proto;DATARMNET3d25ff4ef4[idx].mux_id=DATARMNETf02b2a5be7->mux_id; +DATARMNET3d25ff4ef4[idx].DATARMNET95266642d1=DATARMNETf02b2a5be7-> +DATARMNET95266642d1;idx+=(0xd26+209-0xdf6);}rm_err( +"\x53\x48\x53\x5f\x4d\x45\x4d\x3a\x20\x66\x66\x6c\x6f\x77\x5f\x64\x6d\x61\x5f\x70\x74\x72\x20\x3d\x20\x30\x78\x25\x6c\x6c\x78\x20\x61\x64\x64\x72\x20\x3d\x20\x30\x78\x25\x70\x4b" "\n" +,(unsigned long long)virt_to_phys((void*)DATARMNET9b8000d2a7), +DATARMNET9b8000d2a7);if(!DATARMNET9b8000d2a7){rm_err("\x25\x73", +"\x53\x48\x53\x5f\x57\x52\x49\x54\x45\x3a\x20\x66\x66\x6c\x6f\x77\x5f\x73\x68\x61\x72\x65\x64\x20\x69\x73\x20\x4e\x55\x4c\x4c" +);return;}rm_err( +"\x53\x48\x53\x5f\x53\x4c\x4f\x57\x3a\x20\x6e\x75\x6d\x20\x66\x66\x6c\x6f\x77\x73\x20\x3d\x20\x25\x75" "\n" +,idx);memcpy(((char*)DATARMNET9b8000d2a7->data),&idx,sizeof(idx));memcpy(((char* +)DATARMNET9b8000d2a7->data+sizeof(uint16_t)),(void*)&DATARMNET3d25ff4ef4[ +(0xd2d+202-0xdf7)],sizeof(DATARMNET3d25ff4ef4));}void DATARMNET78666f33a1(void){ +struct rmnet_priv*priv;struct DATARMNET9b44b71ee9*ep=NULL;u16 idx= +(0xd2d+202-0xdf7);u16 count=(0xd2d+202-0xdf7);rm_err( +"\x53\x48\x53\x5f\x4e\x45\x54\x44\x45\x56\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x65\x6e\x74\x65\x72\x20\x25\x75" "\n" +,idx);list_for_each_entry(ep,&DATARMNET30a3e83974,DATARMNET0763436b8d){count+= +(0xd26+209-0xdf6);rm_err( +"\x53\x48\x53\x5f\x4e\x45\x54\x44\x45\x56\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x65\x6e\x74\x65\x72\x20\x65\x70\x20\x25\x75" "\n" +,count);if(!ep)continue;if(!ep->DATARMNET4a4e6f66b5){rm_err( +"\x53\x48\x53\x5f\x4e\x45\x54\x44\x45\x56\x3a\x20\x65\x70\x20\x25\x75\x20\x69\x73\x20\x4e\x4f\x54\x20\x61\x63\x74\x69\x76\x65" "\n" +,count);continue;}rm_err( +"\x53\x48\x53\x5f\x4e\x45\x54\x44\x45\x56\x3a\x20\x65\x70\x20\x25\x75\x20\x69\x73\x20\x61\x63\x74\x69\x76\x65\x20\x61\x6e\x64\x20\x6e\x6f\x74\x20\x6e\x75\x6c\x6c" "\n" +,count);if(idx>=DATARMNETe4d15b9332){break;}priv=netdev_priv(ep->ep);if(!priv){ +rm_err( +"\x53\x48\x53\x5f\x4e\x45\x54\x44\x45\x56\x3a\x20\x70\x72\x69\x76\x20\x66\x6f\x72\x20\x65\x70\x20\x25\x75\x20\x69\x73\x20\x6e\x75\x6c\x6c" "\n" +,count);continue;}rm_err( +"\x53\x48\x53\x5f\x4e\x45\x54\x44\x45\x56\x3a\x20\x65\x70\x20\x25\x75\x20\x68\x61\x73\x20\x6e\x61\x6d\x65\x20\x3d\x20\x25\x73\x20" "\n" +,count,ep->ep->name);rm_err( +"\x53\x48\x53\x5f\x4e\x45\x54\x44\x45\x56\x3a\x20\x65\x70\x20\x25\x75\x20\x68\x61\x73\x20\x6d\x75\x78\x5f\x69\x64\x20\x3d\x20\x25\x75\x20" "\n" +,count,priv->mux_id);rm_err( +"\x53\x48\x53\x5f\x4e\x45\x54\x44\x45\x56\x3a\x20\x65\x70\x20\x25\x75\x20\x68\x61\x73\x20\x69\x70\x5f\x6d\x69\x73\x73\x20\x3d\x20\x25\x6c\x75\x20" "\n" +,count,priv->stats.coal.close.ip_miss);rm_err( +"\x53\x48\x53\x5f\x4e\x45\x54\x44\x45\x56\x3a\x20\x65\x70\x20\x25\x75\x20\x68\x61\x73\x20\x63\x6f\x61\x6c\x5f\x72\x78\x5f\x70\x6b\x74\x73\x20\x3d\x20\x25\x6c\x75\x20" "\n" +,count,priv->stats.coal.coal_pkts);rm_err( +"\x53\x48\x53\x5f\x4e\x45\x54\x44\x45\x56\x3a\x20\x65\x70\x20\x25\x75\x20\x68\x61\x73\x20\x75\x64\x70\x5f\x72\x78\x5f\x62\x70\x73\x20\x3d\x20\x25\x6c\x75\x20" "\n" +,count,ep->DATARMNET257fc4b2d4);rm_err( +"\x53\x48\x53\x5f\x4e\x45\x54\x44\x45\x56\x3a\x20\x65\x70\x20\x25\x75\x20\x68\x61\x73\x20\x74\x63\x70\x5f\x72\x78\x5f\x62\x70\x73\x20\x3d\x20\x25\x6c\x75\x20" "\n" +,count,ep->DATARMNET4eb77c78e6);DATARMNETf46265286b[idx].DATARMNET77de6e34f2= +priv->stats.coal.close.ip_miss;DATARMNETf46265286b[idx].hw_evict=priv->stats. +coal.close.hw_evict;DATARMNETf46265286b[idx].coal_tcp=priv->stats.coal.coal_tcp; +DATARMNETf46265286b[idx].coal_tcp_bytes=priv->stats.coal.coal_tcp_bytes; +DATARMNETf46265286b[idx].coal_udp=priv->stats.coal.coal_udp;DATARMNETf46265286b[ +idx].coal_udp_bytes=priv->stats.coal.coal_udp_bytes;DATARMNETf46265286b[idx]. +mux_id=priv->mux_id;strlcpy(DATARMNETf46265286b[idx].name,ep->ep->name,sizeof( +DATARMNETf46265286b[idx].name));DATARMNETf46265286b[idx].DATARMNET870c3dafcb= +priv->stats.coal.coal_pkts;DATARMNETf46265286b[idx].DATARMNET4eb77c78e6=ep-> +DATARMNET4eb77c78e6;DATARMNETf46265286b[idx].DATARMNET257fc4b2d4=ep-> +DATARMNET257fc4b2d4;idx+=(0xd26+209-0xdf6);}rm_err( +"\x53\x48\x53\x5f\x4d\x45\x4d\x3a\x20\x6e\x65\x74\x64\x65\x76\x5f\x73\x68\x61\x72\x65\x64\x20\x3d\x20\x30\x78\x25\x6c\x6c\x78\x20\x61\x64\x64\x72\x20\x3d\x20\x30\x78\x25\x70\x4b" "\n" +,(unsigned long long)virt_to_phys((void*)DATARMNET67d31dc40a), +DATARMNET67d31dc40a);if(!DATARMNET67d31dc40a){rm_err("\x25\x73", +"\x53\x48\x53\x5f\x57\x52\x49\x54\x45\x3a\x20\x6e\x65\x74\x64\x65\x76\x5f\x73\x68\x61\x72\x65\x64\x20\x69\x73\x20\x4e\x55\x4c\x4c" +);return;}memcpy(((char*)DATARMNET67d31dc40a->data),&idx,sizeof(idx));memcpy((( +char*)DATARMNET67d31dc40a->data+sizeof(uint16_t)),(void*)&DATARMNETf46265286b[ +(0xd2d+202-0xdf7)],sizeof(DATARMNETf46265286b));}void DATARMNETf5f83b943f(void){ +kuid_t DATARMNETdaca088404;kgid_t DATARMNET254aa091f2;DATARMNETe4c5563cdb= +proc_mkdir("\x73\x68\x73",NULL);DATARMNETdaca088404=make_kuid(&init_user_ns, +(0xdc7+2646-0x1434));DATARMNET254aa091f2=make_kgid(&init_user_ns, +(0xdc7+2646-0x1434));if(uid_valid(DATARMNETdaca088404)&&gid_valid( +DATARMNET254aa091f2))proc_set_user(DATARMNETe4c5563cdb,DATARMNETdaca088404, +DATARMNET254aa091f2);proc_create(DATARMNET41be983a65,(0xdb7+6665-0x261c), +DATARMNETe4c5563cdb,&DATARMNET668485bd14);proc_create(DATARMNET5ddc91451c, +(0xdb7+6665-0x261c),DATARMNETe4c5563cdb,&DATARMNETe84fbaa6af);proc_create( +DATARMNETeb2a21dd7c,(0xdb7+6665-0x261c),DATARMNETe4c5563cdb,&DATARMNET8fe5f892a8 +);proc_create(DATARMNET1c4ea23858,(0xdb7+6665-0x261c),DATARMNETe4c5563cdb,& +DATARMNET0104d40d4b);proc_create(DATARMNETe98d39b779,(0xdb7+6665-0x261c), +DATARMNETe4c5563cdb,&DATARMNET6eb63d9ad0);DATARMNET6bf538fa23(); +DATARMNET410036d5ac=NULL;DATARMNET19c47a9f3a=NULL;DATARMNET22e796eff3=NULL; +DATARMNET9b8000d2a7=NULL;DATARMNET67d31dc40a=NULL;DATARMNETaea4c85748();}void +DATARMNET28d33bd09f(void){remove_proc_entry(DATARMNET41be983a65, +DATARMNETe4c5563cdb);remove_proc_entry(DATARMNET5ddc91451c,DATARMNETe4c5563cdb); +remove_proc_entry(DATARMNETeb2a21dd7c,DATARMNETe4c5563cdb);remove_proc_entry( +DATARMNET1c4ea23858,DATARMNETe4c5563cdb);remove_proc_entry(DATARMNETe98d39b779, +DATARMNETe4c5563cdb);remove_proc_entry(DATARMNET6517f07a36,NULL); +DATARMNET6bf538fa23();DATARMNET410036d5ac=NULL;DATARMNET19c47a9f3a=NULL; +DATARMNET22e796eff3=NULL;DATARMNET9b8000d2a7=NULL;DATARMNET67d31dc40a=NULL; +DATARMNETaea4c85748();} diff --git a/shs/rmnet_shs_wq_mem.h b/shs/rmnet_shs_wq_mem.h new file mode 100644 index 000000000000..d95dbd2e3121 --- /dev/null +++ b/shs/rmnet_shs_wq_mem.h @@ -0,0 +1,69 @@ +/* Copyright (c) 2019-2020 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 + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + */ + +#ifndef DATARMNETe10fe0b1e0 +#define DATARMNETe10fe0b1e0 +#include "rmnet_shs.h" +#define DATARMNET6517f07a36 "\x73\x68\x73" +#define DATARMNET41be983a65 \ +"\x72\x6d\x6e\x65\x74\x5f\x73\x68\x73\x5f\x63\x61\x70\x73" +#define DATARMNET5ddc91451c \ +"\x72\x6d\x6e\x65\x74\x5f\x73\x68\x73\x5f\x66\x6c\x6f\x77\x73" +#define DATARMNETeb2a21dd7c \ +"\x72\x6d\x6e\x65\x74\x5f\x73\x68\x73\x5f\x73\x73\x5f\x66\x6c\x6f\x77\x73" +#define DATARMNET1c4ea23858 \ +"\x72\x6d\x6e\x65\x74\x5f\x73\x68\x73\x5f\x66\x66\x6c\x6f\x77\x73" +#define DATARMNETe98d39b779 \ +"\x72\x6d\x6e\x65\x74\x5f\x73\x68\x73\x5f\x6e\x65\x74\x64\x65\x76" +#define DATARMNET67578af78f ((0xd11+230-0xdf3)) +#define DATARMNET75c69edb82 ((0xef7+694-0x112d)) +#define DATARMNETe4d15b9332 ((0xec7+1166-0x132d)) +#define DATARMNET9ae5f81f71 ((0xeb7+1158-0x132d)) +#define DATARMNET29d29f44cf ((0xd2d+202-0xdf7)) +struct __attribute__((__packed__))DATARMNET33582f7450{u64 DATARMNET18b7a5b761; +u64 DATARMNET4da6031170;u64 DATARMNET4df302dbd6;u16 DATARMNET42a992465f;};struct + __attribute__((__packed__))DATARMNETf44cda1bf2{u64 DATARMNET324c1a8f98;u64 +DATARMNET253a9fc708;u64 DATARMNETbb80fccd97;u32 hash;u16 DATARMNET42a992465f;}; +struct __attribute__((__packed__))DATARMNET3a84fbfeae{u64 DATARMNET324c1a8f98; +u64 DATARMNET253a9fc708;u64 DATARMNETbb80fccd97;u32 hash;u16 DATARMNET42a992465f +;};struct __attribute__((__packed__))DATARMNETc13d990bf1{union{struct iphdr +DATARMNETac9bbaad7c;struct ipv6hdr DATARMNET1688a97aa4;}ip_hdr;union{struct +tcphdr tp;struct udphdr up;}DATARMNETe33b41dad9;u64 DATARMNET324c1a8f98;u64 +DATARMNET253a9fc708;u64 DATARMNETbb80fccd97;u64 DATARMNET95266642d1;u32 hash;u16 + DATARMNET42a992465f;u16 trans_proto;u8 mux_id;};struct __attribute__(( +__packed__))DATARMNET57ccbe14f3{char name[DATARMNET9ae5f81f71];u64 +DATARMNET77de6e34f2;u64 hw_evict;u64 DATARMNET870c3dafcb;u64 coal_tcp;u64 +coal_tcp_bytes;u64 coal_udp;u64 coal_udp_bytes;u64 DATARMNET257fc4b2d4;u64 +DATARMNET4eb77c78e6;u8 mux_id;};extern struct list_head DATARMNET6c23f11e81; +extern struct list_head DATARMNETf91b305f4e;extern struct list_head +DATARMNET3208cd0982;extern struct list_head DATARMNETe46ae760db;enum{ +DATARMNETbd4083a6a4=(0x24f5+499-0x16e8)};struct DATARMNETa41d4c4a12{char*data; +refcount_t refcnt;};void DATARMNET28a80d526e(struct DATARMNET6c78e47d24* +DATARMNETd2a694d52a,struct list_head*DATARMNETf0fb155a9c);void +DATARMNET24e4475345(struct DATARMNET6c78e47d24*DATARMNETd2a694d52a,struct +list_head*DATARMNETb436c3f30b);void DATARMNET6f4b0915d3(struct +DATARMNET6c78e47d24*DATARMNETd2a694d52a,struct list_head*DATARMNET3208cd0982); +void DATARMNETa1b141715b(struct list_head*DATARMNETb436c3f30b);void +DATARMNET3af54cd726(struct list_head*DATARMNETf0fb155a9c);void +DATARMNETcc489fbbad(struct list_head*DATARMNET3208cd0982);void +DATARMNETc6439e3d71(struct DATARMNETc8fdbf9c85*DATARMNET7bea4a06a6,struct +DATARMNET228056d4b7*DATARMNETf632b170b1,struct list_head*DATARMNETe46ae760db); +void DATARMNETb177316a15(struct list_head*DATARMNETe46ae760db);void +DATARMNET5157210c44(struct list_head*DATARMNETe46ae760db);void +DATARMNET0e273eab79(struct list_head*DATARMNETb436c3f30b);void +DATARMNETe15af8eb6d(struct list_head*DATARMNETf0fb155a9c);void +DATARMNET78f3a0ca4f(struct list_head*DATARMNET3208cd0982);void +DATARMNET78666f33a1(void);void DATARMNETf5f83b943f(void);void +DATARMNET28d33bd09f(void); +#endif + From 1bd440c18d65e98a0bed068640c1de324cc1d9ba Mon Sep 17 00:00:00 2001 From: Sean Tranchetti Date: Mon, 15 Jun 2020 12:14:02 -0600 Subject: [PATCH 04/36] 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 From 3ac5e594a97aeef388308761be1d47c221f94804 Mon Sep 17 00:00:00 2001 From: Subash Abhinov Kasiviswanathan Date: Wed, 17 Jun 2020 18:22:45 -0600 Subject: [PATCH 05/36] rmnet_shs: I163b00233439edead2508f63766d3531053bd57b Update to I163b00233439edead2508f63766d3531053bd57b Change-Id: Ic06a093fbdbb8c1e0980e9eb51a9ec241e35f0bc Signed-off-by: Subash Abhinov Kasiviswanathan --- shs/rmnet_shs_config.c | 5 +++-- shs/rmnet_shs_main.c | 48 ++++++++++++++++++++++-------------------- 2 files changed, 28 insertions(+), 25 deletions(-) diff --git a/shs/rmnet_shs_config.c b/shs/rmnet_shs_config.c index 86bc1e227468..f1415df79298 100644 --- a/shs/rmnet_shs_config.c +++ b/shs/rmnet_shs_config.c @@ -25,8 +25,9 @@ static int DATARMNETe9173bbe0e(struct notifier_block*DATARMNET272c159b3c, unsigned long DATARMNET7f045a1e6e,void*data);static struct notifier_block DATARMNET5fc54f7a13 __read_mostly={.notifier_call=DATARMNETe9173bbe0e,.priority= -(0xd1f+216-0xdf5),};static const char*DATARMNETbc8418e817[]={"\x39\x37\x33\x31"} -;static int DATARMNET2cb9ae589c;int __init DATARMNET163e93649e(void){pr_info( +(0xd1f+216-0xdf5),};static const char*DATARMNETbc8418e817[]={"\x39\x37\x33\x31", +"\x49\x31\x36\x33\x62\x30\x30\x32\x33\x33\x34\x33\x39\x65\x64\x65\x61\x64\x32\x35\x30\x38\x66\x36\x33\x37\x36\x36\x64\x33\x35\x33\x31\x30\x35\x33\x62\x64\x35\x37\x62" +};static int DATARMNET2cb9ae589c;int __init DATARMNET163e93649e(void){pr_info( "\x25\x73\x28\x29\x3a\x20\x53\x74\x61\x72\x74\x69\x6e\x67\x20\x72\x6d\x6e\x65\x74\x20\x53\x48\x53\x20\x6d\x6f\x64\x75\x6c\x65\x20\x25\x73\x20" "\n" ,__func__,DATARMNETbc8418e817[(0xd2d+202-0xdf7)]);trace_rmnet_shs_high( DATARMNET1790979ccf,DATARMNET72cb00fdc0,(0x16e8+787-0xc0c),(0x16e8+787-0xc0c), diff --git a/shs/rmnet_shs_main.c b/shs/rmnet_shs_main.c index b697f292e81c..b49fa4736d8f 100644 --- a/shs/rmnet_shs_main.c +++ b/shs/rmnet_shs_main.c @@ -99,29 +99,31 @@ DATARMNET43225b7a7c,(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),(0x16e8+787-0xc0c), ->gro_cells,skb);}static struct sk_buff*DATARMNET0e315f0262(struct sk_buff*skb, u16 DATARMNETf8272cfb41){struct skb_shared_info*shinfo=skb_shinfo(skb);struct sk_buff*DATARMNET6643e66666,*tmp;u16 gso_size=shinfo->gso_size;u16 gso_segs= -shinfo->gso_segs;if(DATARMNETf8272cfb41>=gso_segs){return NULL;}shinfo->gso_segs -=DIV_ROUND_UP(gso_segs,DATARMNETf8272cfb41);shinfo->gso_size=gso_size* -DATARMNETf8272cfb41;DATARMNET6643e66666=__skb_gso_segment(skb,NETIF_F_SG,false); -if(unlikely(IS_ERR_OR_NULL(DATARMNET6643e66666))){shinfo->gso_size=gso_size; -shinfo->gso_segs=gso_segs;return NULL;}for(tmp=DATARMNET6643e66666;tmp;tmp=tmp-> -next){struct skb_shared_info*DATARMNETa7dac37e66=skb_shinfo(tmp); -DATARMNETa7dac37e66->gso_size=gso_size;if(gso_segs>=DATARMNETf8272cfb41) -DATARMNETa7dac37e66->gso_segs=DATARMNETf8272cfb41;else DATARMNETa7dac37e66-> -gso_segs=gso_segs;gso_segs-=DATARMNETf8272cfb41;}return DATARMNET6643e66666;} -static void DATARMNET21243b86ae(struct sk_buff*DATARMNETe08e18123e,u8 -DATARMNETf345c1d909,u16 DATARMNET87636d0152){struct sk_buff*skb=NULL;struct -sk_buff*DATARMNETcebafc57a4=NULL;struct sk_buff*DATARMNET39bcb0d197=NULL;int -count=(0xd2d+202-0xdf7);DATARMNETda96251102(DATARMNET6b317c4c73, -DATARMNET43225b7a7c,(0xd26+209-0xdf6),(0x16e8+787-0xc0c),(0x16e8+787-0xc0c), -(0x16e8+787-0xc0c),DATARMNETe08e18123e,NULL);DATARMNET39bcb0d197= -DATARMNET0e315f0262(DATARMNETe08e18123e,DATARMNET87636d0152);if( -DATARMNET39bcb0d197==NULL){if(DATARMNETf345c1d909==DATARMNET0b15fd8b54) -netif_receive_skb(DATARMNETe08e18123e);else netif_rx(DATARMNETe08e18123e);return -;}for((skb=DATARMNET39bcb0d197);skb!=NULL;skb=DATARMNETcebafc57a4){ -DATARMNETcebafc57a4=skb->next;skb->hash=DATARMNETe08e18123e->hash;skb->dev= -DATARMNETe08e18123e->dev;skb->next=NULL;if(DATARMNETf345c1d909== -DATARMNET0b15fd8b54)netif_receive_skb(skb);else netif_rx(skb);count+= -(0xd26+209-0xdf6);}consume_skb(DATARMNETe08e18123e);return;}int +shinfo->gso_segs;unsigned int gso_type=shinfo->gso_type;if(DATARMNETf8272cfb41>= +gso_segs){return NULL;}shinfo->gso_segs=DIV_ROUND_UP(gso_segs, +DATARMNETf8272cfb41);shinfo->gso_size=gso_size*DATARMNETf8272cfb41; +DATARMNET6643e66666=__skb_gso_segment(skb,NETIF_F_SG,false);if(unlikely( +IS_ERR_OR_NULL(DATARMNET6643e66666))){shinfo->gso_size=gso_size;shinfo->gso_segs +=gso_segs;return NULL;}if(DATARMNETf8272cfb41<=(0xd26+209-0xdf6))return +DATARMNET6643e66666;for(tmp=DATARMNET6643e66666;tmp;tmp=tmp->next){struct +skb_shared_info*DATARMNETa7dac37e66=skb_shinfo(tmp);DATARMNETa7dac37e66-> +gso_type=gso_type;DATARMNETa7dac37e66->gso_size=gso_size;if(gso_segs>= +DATARMNETf8272cfb41)DATARMNETa7dac37e66->gso_segs=DATARMNETf8272cfb41;else +DATARMNETa7dac37e66->gso_segs=gso_segs;gso_segs-=DATARMNETf8272cfb41;if(gso_segs +<=(0xd26+209-0xdf6)){break;}}return DATARMNET6643e66666;}static void +DATARMNET21243b86ae(struct sk_buff*DATARMNETe08e18123e,u8 DATARMNETf345c1d909, +u16 DATARMNET87636d0152){struct sk_buff*skb=NULL;struct sk_buff* +DATARMNETcebafc57a4=NULL;struct sk_buff*DATARMNET39bcb0d197=NULL;int count= +(0xd2d+202-0xdf7);DATARMNETda96251102(DATARMNET6b317c4c73,DATARMNET43225b7a7c, +(0xd26+209-0xdf6),(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),(0x16e8+787-0xc0c), +DATARMNETe08e18123e,NULL);DATARMNET39bcb0d197=DATARMNET0e315f0262( +DATARMNETe08e18123e,DATARMNET87636d0152);if(DATARMNET39bcb0d197==NULL){if( +DATARMNETf345c1d909==DATARMNET0b15fd8b54)netif_receive_skb(DATARMNETe08e18123e); +else netif_rx(DATARMNETe08e18123e);return;}for((skb=DATARMNET39bcb0d197);skb!= +NULL;skb=DATARMNETcebafc57a4){DATARMNETcebafc57a4=skb->next;skb->hash= +DATARMNETe08e18123e->hash;skb->dev=DATARMNETe08e18123e->dev;skb->next=NULL;if( +DATARMNETf345c1d909==DATARMNET0b15fd8b54)netif_receive_skb(skb);else netif_rx( +skb);count+=(0xd26+209-0xdf6);}consume_skb(DATARMNETe08e18123e);return;}int DATARMNET2efb1a51c7(struct DATARMNET63d7680df2*node_p){int ret=(0xd2d+202-0xdf7) ;int DATARMNET42c3ecbd5e=(0xd26+209-0xdf6);u16 idx=(0xd2d+202-0xdf7);for(idx= (0xd2d+202-0xdf7);idxDATARMNET341ea38662 From d327154174b2c2a031ec2d7684549cf921a4534e Mon Sep 17 00:00:00 2001 From: Subash Abhinov Kasiviswanathan Date: Mon, 22 Jun 2020 16:23:58 -0600 Subject: [PATCH 06/36] rmnet_shs: I88cb9381f2484b1c2762d0cb4bb05d310da2be5e Update to I88cb9381f2484b1c2762d0cb4bb05d310da2be5e CRs-Fixed: 2714927 Change-Id: I9a75fb92476523f44ae26cf108c455b4c42a1ce2 Signed-off-by: Subash Abhinov Kasiviswanathan --- shs/rmnet_shs_config.c | 2 ++ shs/rmnet_shs_wq.c | 3 +-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/shs/rmnet_shs_config.c b/shs/rmnet_shs_config.c index f1415df79298..d9421eac9456 100644 --- a/shs/rmnet_shs_config.c +++ b/shs/rmnet_shs_config.c @@ -27,6 +27,8 @@ unsigned long DATARMNET7f045a1e6e,void*data);static struct notifier_block DATARMNET5fc54f7a13 __read_mostly={.notifier_call=DATARMNETe9173bbe0e,.priority= (0xd1f+216-0xdf5),};static const char*DATARMNETbc8418e817[]={"\x39\x37\x33\x31", "\x49\x31\x36\x33\x62\x30\x30\x32\x33\x33\x34\x33\x39\x65\x64\x65\x61\x64\x32\x35\x30\x38\x66\x36\x33\x37\x36\x36\x64\x33\x35\x33\x31\x30\x35\x33\x62\x64\x35\x37\x62" +, +"\x49\x38\x38\x63\x62\x39\x33\x38\x31\x66\x32\x34\x38\x34\x62\x31\x63\x32\x37\x36\x32\x64\x30\x63\x62\x34\x62\x62\x30\x35\x64\x33\x31\x30\x64\x61\x32\x62\x65\x35\x65" };static int DATARMNET2cb9ae589c;int __init DATARMNET163e93649e(void){pr_info( "\x25\x73\x28\x29\x3a\x20\x53\x74\x61\x72\x74\x69\x6e\x67\x20\x72\x6d\x6e\x65\x74\x20\x53\x48\x53\x20\x6d\x6f\x64\x75\x6c\x65\x20\x25\x73\x20" "\n" ,__func__,DATARMNETbc8418e817[(0xd2d+202-0xdf7)]);trace_rmnet_shs_high( diff --git a/shs/rmnet_shs_wq.c b/shs/rmnet_shs_wq.c index e21a3f8afb49..c465331fb4b1 100644 --- a/shs/rmnet_shs_wq.c +++ b/shs/rmnet_shs_wq.c @@ -718,8 +718,7 @@ DATARMNETd2a694d52a)continue;if(DATARMNETd2a694d52a->DATARMNET0dc393a345== DATARMNET9a7769cf21(DATARMNETd2a694d52a);DATARMNET5b2ed86112(DATARMNETd2a694d52a );if(DATARMNETc252c204a8){if(DATARMNETd2a694d52a->DATARMNET63b1a086d5-> DATARMNETa1099c74fe==(0xd2d+202-0xdf7)){DATARMNET6f4b0915d3(DATARMNETd2a694d52a, -&DATARMNET3208cd0982);}DATARMNET6f4b0915d3(DATARMNETd2a694d52a,& -DATARMNET3208cd0982);if(!DATARMNET362b15f941(DATARMNETd2a694d52a-> +&DATARMNET3208cd0982);}if(!DATARMNET362b15f941(DATARMNETd2a694d52a-> DATARMNET7c894c2f8f)){DATARMNET24e4475345(DATARMNETd2a694d52a,& DATARMNET6c23f11e81);}if(DATARMNETd2a694d52a->DATARMNET1e9d25d9ff==IPPROTO_TCP){ DATARMNET28a80d526e(DATARMNETd2a694d52a,&DATARMNETf91b305f4e);}}else{ From e727657b4f730473663e9a735c496596a5caed04 Mon Sep 17 00:00:00 2001 From: Subash Abhinov Kasiviswanathan Date: Mon, 29 Jun 2020 00:23:35 -0600 Subject: [PATCH 07/36] rmnet_offload: I6ab970e6bee4394c610381bb89f6361a4f036cf0 Updates the module to version I6ab970e6bee4394c610381bb89f6361a4f036cf0. CRs-Fixed: 2710737 Change-Id: I168b5d5dfe3f6af646eb1f3a8dd9d4d9cf353a31 Signed-off-by: Subash Abhinov Kasiviswanathan --- offload/rmnet_offload_knob.c | 1 + offload/rmnet_offload_main.c | 2 ++ 2 files changed, 3 insertions(+) diff --git a/offload/rmnet_offload_knob.c b/offload/rmnet_offload_knob.c index 076a0b91b1a4..a804397e8817 100644 --- a/offload/rmnet_offload_knob.c +++ b/offload/rmnet_offload_knob.c @@ -30,6 +30,7 @@ DATARMNET8f535916a4, DATARMNETae9bf9b111, DATARMNETbdf6f9d425) \ .DATARMNET8a7dce7d36 = DATARMNETbdf6f9d425, \ .DATARMNET9cee06cbe4 = { \ .set = __ ## DATARMNET4c4a5ce272, \ + .get = param_get_ullong, \ }, \ } #define DATARMNET584f34118e(DATARMNETe1196c6554, DATARMNET4c4a5ce272) \ diff --git a/offload/rmnet_offload_main.c b/offload/rmnet_offload_main.c index c94f16a3a3df..9877a464033b 100644 --- a/offload/rmnet_offload_main.c +++ b/offload/rmnet_offload_main.c @@ -25,6 +25,8 @@ 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" , "\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" +, +"\x49\x36\x61\x62\x39\x37\x30\x65\x36\x62\x65\x65\x34\x33\x39\x34\x63\x36\x31\x30\x33\x38\x31\x62\x62\x38\x39\x66\x36\x33\x36\x31\x61\x34\x66\x30\x33\x36\x63\x66\x30" ,};static DEFINE_SPINLOCK(DATARMNET0b5e447f18);static u32 DATARMNETcb7325e02d( struct DATARMNETd812bcdbb5*DATARMNET458b70e7e5){__be32 DATARMNETdfd47b00ff[ (0xd20+231-0xdfc)];u32 DATARMNET5ebf661879;__be16 DATARMNET08e913477e= From c6e929b567d58be6ddbb66d1662bc3bab94b0197 Mon Sep 17 00:00:00 2001 From: Subash Abhinov Kasiviswanathan Date: Tue, 7 Jul 2020 11:38:05 -0700 Subject: [PATCH 08/36] rmnet_shs: I1041693d551703bc835ecfb3110efec50204c769 Updates driver to I1041693d551703bc835ecfb3110efec50204c769. Change-Id: Ieb9f524f7629493be07d0c5890240fb5641b0bc7 Signed-off-by: Subash Abhinov Kasiviswanathan --- shs/rmnet_shs.h | 1 + shs/rmnet_shs_config.c | 2 ++ shs/rmnet_shs_main.c | 4 ++-- shs/rmnet_shs_modules.c | 20 ++++++++++++-------- shs/rmnet_shs_modules.h | 18 +++++++++--------- 5 files changed, 26 insertions(+), 19 deletions(-) diff --git a/shs/rmnet_shs.h b/shs/rmnet_shs.h index b381b8055cb1..0f072a16a0ae 100644 --- a/shs/rmnet_shs.h +++ b/shs/rmnet_shs.h @@ -52,6 +52,7 @@ #define DATARMNETd82a2ed45e 204800 #define DATARMNETc668d192f2 (0xec7+1093-0x12f5) #define DATARMNETb38cb72105 80000 +#define DATARMNETfbee9e182e 60000 #define DATARMNETac6d632788 (80000*DATARMNETc668d192f2) #define DATARMNET243c638e7d 210000 #define DATARMNET03fd42433e (210000*DATARMNETc668d192f2) diff --git a/shs/rmnet_shs_config.c b/shs/rmnet_shs_config.c index d9421eac9456..f1bf938d094c 100644 --- a/shs/rmnet_shs_config.c +++ b/shs/rmnet_shs_config.c @@ -29,6 +29,8 @@ DATARMNET5fc54f7a13 __read_mostly={.notifier_call=DATARMNETe9173bbe0e,.priority= "\x49\x31\x36\x33\x62\x30\x30\x32\x33\x33\x34\x33\x39\x65\x64\x65\x61\x64\x32\x35\x30\x38\x66\x36\x33\x37\x36\x36\x64\x33\x35\x33\x31\x30\x35\x33\x62\x64\x35\x37\x62" , "\x49\x38\x38\x63\x62\x39\x33\x38\x31\x66\x32\x34\x38\x34\x62\x31\x63\x32\x37\x36\x32\x64\x30\x63\x62\x34\x62\x62\x30\x35\x64\x33\x31\x30\x64\x61\x32\x62\x65\x35\x65" +, +"\x49\x31\x30\x34\x31\x36\x39\x33\x64\x35\x35\x31\x37\x30\x33\x62\x63\x38\x33\x35\x65\x63\x66\x62\x33\x31\x31\x30\x65\x66\x65\x63\x35\x30\x32\x30\x34\x63\x37\x36\x39" };static int DATARMNET2cb9ae589c;int __init DATARMNET163e93649e(void){pr_info( "\x25\x73\x28\x29\x3a\x20\x53\x74\x61\x72\x74\x69\x6e\x67\x20\x72\x6d\x6e\x65\x74\x20\x53\x48\x53\x20\x6d\x6f\x64\x75\x6c\x65\x20\x25\x73\x20" "\n" ,__func__,DATARMNETbc8418e817[(0xd2d+202-0xdf7)]);trace_rmnet_shs_high( diff --git a/shs/rmnet_shs_main.c b/shs/rmnet_shs_main.c index b49fa4736d8f..3dfe02750504 100644 --- a/shs/rmnet_shs_main.c +++ b/shs/rmnet_shs_main.c @@ -176,9 +176,9 @@ DATARMNETda96251102(DATARMNETf3aaad06eb,DATARMNETf2fc7954d4,DATARMNET63b1a086d5 ->hash,cpu,idx,(0x16e8+787-0xc0c),DATARMNET63b1a086d5,NULL);return idx;}static int DATARMNET2af09ccd0b(int cpu,int DATARMNET63a222ae1f,int DATARMNETea08087fc0) {int ret=(0xd2d+202-0xdf7);if(DATARMNETecc0627c70.DATARMNET132b9c7dc4[cpu]. -DATARMNETe61d62310f>=DATARMNET449e126dd3){ret=DATARMNET0efbbe2821;}if( +DATARMNETe61d62310f>=DATARMNET65393dea13[cpu]){ret=DATARMNET0efbbe2821;}if( DATARMNET63a222ae1f&&((DATARMNETeea3cef5b6(cpu)+DATARMNETea08087fc0)>= -DATARMNET35fe073bc2))ret=DATARMNETa4267dfd8a;return ret;}void +DATARMNETbc049ffc4c[cpu]))ret=DATARMNETa4267dfd8a;return ret;}void DATARMNET349c3a0cab(u16 map_cpu,bool DATARMNETb639f6e1b1){if(map_cpu< DATARMNETc6782fed88)(DATARMNETb639f6e1b1)?DATARMNETcff375d916[map_cpu]++: DATARMNETcff375d916[map_cpu]--;else DATARMNET68d84e7b98[DATARMNETcc0ef52ccb]++;} diff --git a/shs/rmnet_shs_modules.c b/shs/rmnet_shs_modules.c index b98762442899..9275bcbd0f93 100644 --- a/shs/rmnet_shs_modules.c +++ b/shs/rmnet_shs_modules.c @@ -25,7 +25,7 @@ DATARMNETa804c0b904, DATARMNETcab56af6d5, "\x6d\x6f\x76\x69\x6e\x67\x20\x61\x76\x65\x72\x61\x67\x65\x20\x77\x65\x69\x67\x68\x74\x61\x67\x65" );unsigned long long DATARMNET713717107f[DATARMNETc6782fed88]__read_mostly={ -DATARMNETb38cb72105,DATARMNETb38cb72105,DATARMNETb38cb72105,DATARMNETb38cb72105, +DATARMNETfbee9e182e,DATARMNETb38cb72105,DATARMNETb38cb72105,DATARMNETb38cb72105, DATARMNET243c638e7d,DATARMNET243c638e7d,DATARMNET243c638e7d,DATARMNET243c638e7d} ;module_param_array(DATARMNET713717107f,ullong,NULL,(0xdb7+6665-0x261c)); MODULE_PARM_DESC(DATARMNET713717107f, @@ -156,14 +156,18 @@ DATARMNET12565c8f98, DATARMNET365ddeca1c,uint,(0xdb7+6665-0x261c));MODULE_PARM_DESC( DATARMNET365ddeca1c, "\x4f\x70\x74\x69\x6f\x6e\x20\x74\x6f\x20\x65\x6e\x61\x62\x6c\x65\x20\x66\x61\x6c\x6c\x20\x62\x61\x63\x6b\x20\x6c\x69\x6d\x69\x74\x20\x66\x6f\x72\x20\x70\x61\x72\x6b\x69\x6e\x67" -);unsigned int DATARMNET35fe073bc2 __read_mostly=(0xf07+3937-0x1a1c); -module_param(DATARMNET35fe073bc2,uint,(0xdb7+6665-0x261c));MODULE_PARM_DESC( -DATARMNET35fe073bc2, +);unsigned int DATARMNETbc049ffc4c[DATARMNETc6782fed88]={(0xcf7+1705-0x101c), +(0xf07+3937-0x1a1c),(0xf07+3937-0x1a1c),(0xf07+3937-0x1a1c),(0xf07+3937-0x1a1c), +(0xf07+3937-0x1a1c),(0xf07+3937-0x1a1c),(0xf07+3937-0x1a1c)};module_param_array( +DATARMNETbc049ffc4c,uint,NULL,(0xdb7+6665-0x261c));MODULE_PARM_DESC( +DATARMNETbc049ffc4c, "\x4d\x61\x78\x20\x70\x6b\x74\x73\x20\x69\x6e\x20\x62\x61\x63\x6b\x6c\x6f\x67\x20\x70\x72\x69\x6f\x72\x69\x74\x69\x7a\x69\x6e\x67" -);unsigned int DATARMNET449e126dd3 __read_mostly=(0x10d9+1551-0xd24); -module_param(DATARMNET449e126dd3,uint,(0xdb7+6665-0x261c));MODULE_PARM_DESC( -DATARMNET449e126dd3, -"\x4d\x61\x78\x20\x70\x6b\x74\x73\x20\x69\x6e\x20\x61\x20\x69\x6e\x73\x74\x61\x6e\x74\x20\x62\x75\x72\x73\x74\x20\x69\x6e\x74\x65\x72\x76\x61\x6c\x20\x62\x65\x66\x6f\x72\x65\x20\x70\x72\x69\x6f\x72\x69\x74\x69\x7a\x69\x6e\x67" +);unsigned int DATARMNET65393dea13[DATARMNETc6782fed88]={(0x16a8+1565-0x14f5), +(0x10d9+1551-0xd24),(0x10d9+1551-0xd24),(0x10d9+1551-0xd24),(0x10d9+1551-0xd24), +(0x10d9+1551-0xd24),(0x10d9+1551-0xd24),(0x10d9+1551-0xd24)};module_param_array( +DATARMNET65393dea13,uint,NULL,(0xdb7+6665-0x261c));MODULE_PARM_DESC( +DATARMNET65393dea13, +"\x4d\x61\x78\x20\x70\x6b\x74\x73\x20\x69\x6e\x20\x61\x20\x62\x75\x72\x73\x74\x20\x62\x65\x66\x6f\x72\x65\x20\x70\x72\x69\x6f\x72\x69\x74\x69\x7a\x69\x6e\x67" );unsigned int DATARMNET4ac8af832c __read_mostly=(0xd03+244-0xdf1);module_param( DATARMNET4ac8af832c,uint,(0xdb7+6665-0x261c));MODULE_PARM_DESC( DATARMNET4ac8af832c, diff --git a/shs/rmnet_shs_modules.h b/shs/rmnet_shs_modules.h index 7b40ce344eee..13544af0b8ca 100644 --- a/shs/rmnet_shs_modules.h +++ b/shs/rmnet_shs_modules.h @@ -43,14 +43,14 @@ DATARMNETb7ddf3c5dd[DATARMNETeccb61ebc3];extern unsigned long DATARMNET14ed771dfb[DATARMNET3cef75f6cd];extern unsigned int DATARMNETea75c7b6f6 ;extern unsigned int DATARMNET7d18c0bcf8;extern unsigned int DATARMNET227d2ff866 ;extern unsigned int DATARMNETa1ac2608b5;extern unsigned int DATARMNET12565c8f98 -;extern unsigned int DATARMNET365ddeca1c;extern unsigned int DATARMNET35fe073bc2 -;extern unsigned int DATARMNET449e126dd3;extern unsigned int DATARMNET4ac8af832c -;extern unsigned int DATARMNETa7909611da;extern unsigned int DATARMNET84413d1257 -[DATARMNETc6782fed88];extern unsigned int DATARMNET443cf5aaaf[ -DATARMNETc6782fed88];extern unsigned int DATARMNETd75e474598[DATARMNETc6782fed88 -];extern unsigned int DATARMNET25c61a512c;extern unsigned int -DATARMNET1ad396a890;extern unsigned int DATARMNET756bdd424a;extern unsigned int -DATARMNET58b009b16b __read_mostly;extern unsigned long DATARMNET68d84e7b98[ -DATARMNETf3110711cb]; +;extern unsigned int DATARMNET365ddeca1c;extern unsigned int DATARMNETbc049ffc4c +[DATARMNETc6782fed88];extern unsigned int DATARMNET65393dea13[ +DATARMNETc6782fed88];extern unsigned int DATARMNET4ac8af832c;extern unsigned int + DATARMNETa7909611da;extern unsigned int DATARMNET84413d1257[DATARMNETc6782fed88 +];extern unsigned int DATARMNET443cf5aaaf[DATARMNETc6782fed88];extern unsigned +int DATARMNETd75e474598[DATARMNETc6782fed88];extern unsigned int +DATARMNET25c61a512c;extern unsigned int DATARMNET1ad396a890;extern unsigned int +DATARMNET756bdd424a;extern unsigned int DATARMNET58b009b16b __read_mostly;extern + unsigned long DATARMNET68d84e7b98[DATARMNETf3110711cb]; #endif From 6ed3fc2593d512e4d6ee19b252136befccc022cf Mon Sep 17 00:00:00 2001 From: Subash Abhinov Kasiviswanathan Date: Mon, 22 Jun 2020 18:02:14 -0700 Subject: [PATCH 09/36] rmnet_shs: I0a2ca46540035db197e978bb35b90150d67d545f Updates driver to I0a2ca46540035db197e978bb35b90150d67d545f Change-Id: I0a2ca46540035db197e978bb35b90150d67d545f Signed-off-by: Subash Abhinov Kasiviswanathan --- shs/rmnet_shs_config.c | 14 ++++++++------ shs/rmnet_shs_wq.h | 24 ++++++++++++------------ 2 files changed, 20 insertions(+), 18 deletions(-) diff --git a/shs/rmnet_shs_config.c b/shs/rmnet_shs_config.c index f1bf938d094c..3c98c9d113dc 100644 --- a/shs/rmnet_shs_config.c +++ b/shs/rmnet_shs_config.c @@ -31,6 +31,8 @@ DATARMNET5fc54f7a13 __read_mostly={.notifier_call=DATARMNETe9173bbe0e,.priority= "\x49\x38\x38\x63\x62\x39\x33\x38\x31\x66\x32\x34\x38\x34\x62\x31\x63\x32\x37\x36\x32\x64\x30\x63\x62\x34\x62\x62\x30\x35\x64\x33\x31\x30\x64\x61\x32\x62\x65\x35\x65" , "\x49\x31\x30\x34\x31\x36\x39\x33\x64\x35\x35\x31\x37\x30\x33\x62\x63\x38\x33\x35\x65\x63\x66\x62\x33\x31\x31\x30\x65\x66\x65\x63\x35\x30\x32\x30\x34\x63\x37\x36\x39" +, +"\x49\x30\x61\x32\x63\x61\x34\x36\x35\x34\x30\x30\x33\x35\x64\x62\x31\x39\x37\x65\x39\x37\x38\x62\x62\x33\x35\x62\x39\x30\x31\x35\x30\x64\x36\x37\x64\x35\x34\x35\x66" };static int DATARMNET2cb9ae589c;int __init DATARMNET163e93649e(void){pr_info( "\x25\x73\x28\x29\x3a\x20\x53\x74\x61\x72\x74\x69\x6e\x67\x20\x72\x6d\x6e\x65\x74\x20\x53\x48\x53\x20\x6d\x6f\x64\x75\x6c\x65\x20\x25\x73\x20" "\n" ,__func__,DATARMNETbc8418e817[(0xd2d+202-0xdf7)]);trace_rmnet_shs_high( @@ -86,9 +88,9 @@ pr_err( ,__func__);ret=qmi_rmnet_ps_ind_register(port,&DATARMNETecc0627c70. rmnet_idl_ind_cb);if(ret)pr_err( "\x25\x73\x28\x29\x3a\x20\x72\x6d\x6e\x65\x74\x20\x70\x73\x5f\x69\x6e\x64\x20\x72\x65\x67\x69\x73\x74\x72\x61\x74\x69\x6f\x6e\x20\x66\x61\x69\x6c" "\n" -,__func__);DATARMNETe46c480d71();DATARMNET0a6fb12cb2();DATARMNETecc0627c70. -DATARMNET9c869c1ec2=(0xd26+209-0xdf6);trace_rmnet_shs_high(DATARMNET1790979ccf, -DATARMNET443dab7031,(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),(0x16e8+787-0xc0c), -(0x16e8+787-0xc0c),NULL,NULL);RCU_INIT_POINTER(rmnet_shs_skb_entry, -DATARMNET756778f14f);}break;default:break;}return NOTIFY_DONE;}module_init( -DATARMNET163e93649e);module_exit(DATARMNETf3298dab6f); +,__func__);DATARMNET039ac6d55d();DATARMNETe46c480d71();DATARMNET0a6fb12cb2(); +DATARMNETecc0627c70.DATARMNET9c869c1ec2=(0xd26+209-0xdf6);trace_rmnet_shs_high( +DATARMNET1790979ccf,DATARMNET443dab7031,(0x16e8+787-0xc0c),(0x16e8+787-0xc0c), +(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),NULL,NULL);RCU_INIT_POINTER( +rmnet_shs_skb_entry,DATARMNET756778f14f);}break;default:break;}return +NOTIFY_DONE;}module_init(DATARMNET163e93649e);module_exit(DATARMNETf3298dab6f); diff --git a/shs/rmnet_shs_wq.h b/shs/rmnet_shs_wq.h index 184e81d80172..8562ef90834f 100644 --- a/shs/rmnet_shs_wq.h +++ b/shs/rmnet_shs_wq.h @@ -107,17 +107,17 @@ DATARMNET1fc50aac59,DATARMNET213a62da0d,DATARMNETf814701a94,DATARMNET166a43f3aa, };extern struct DATARMNETe600c5b727 DATARMNET0997c5650d[DATARMNETc6782fed88]; extern struct list_head DATARMNET9825511866;void DATARMNET3ae0d614d6(struct net_device*dev);void DATARMNETf7dcab9a9e(void);void DATARMNET7b6c061b06(void); -void DATARMNET4063c95208(void);void DATARMNETe46c480d71(void);u64 -DATARMNETd406e89a85(u32 DATARMNETfaedbb66a9);void DATARMNET350f55bfca(struct -DATARMNET63d7680df2*node_p);int DATARMNET362c14e98b(u16 DATARMNETfaedbb66a9);int - DATARMNETf181a18009(struct net_device*dev);int DATARMNET98b2a0ce62(struct -net_device*dev);u64 DATARMNETfc888b4d3e(u16 cpu);void DATARMNET0349051465(u16 -cpu);void DATARMNET3669e7b703(u16 cpu);void DATARMNET54ebea1d15(void);void -DATARMNET7492293980(struct net_device*dev);void DATARMNETd6ee05f1b4(struct -net_device*dev);void DATARMNET0a6fb12cb2(void);int DATARMNET5f72606f6f(u16 -DATARMNETc790ff30fc,u16 DATARMNET208ea67e1d,u32 DATARMNET4da4612f1e,u32 -DATARMNETa3f89581b5);int DATARMNETf85599b9d8(u32 DATARMNET8c11bd9466,u8 -DATARMNET87636d0152);void DATARMNET6bf538fa23(void);void DATARMNETaea4c85748( -void); +void DATARMNET4063c95208(void);void DATARMNETe46c480d71(void);void +DATARMNET039ac6d55d(void);u64 DATARMNETd406e89a85(u32 DATARMNETfaedbb66a9);void +DATARMNET350f55bfca(struct DATARMNET63d7680df2*node_p);int DATARMNET362c14e98b( +u16 DATARMNETfaedbb66a9);int DATARMNETf181a18009(struct net_device*dev);int +DATARMNET98b2a0ce62(struct net_device*dev);u64 DATARMNETfc888b4d3e(u16 cpu);void + DATARMNET0349051465(u16 cpu);void DATARMNET3669e7b703(u16 cpu);void +DATARMNET54ebea1d15(void);void DATARMNET7492293980(struct net_device*dev);void +DATARMNETd6ee05f1b4(struct net_device*dev);void DATARMNET0a6fb12cb2(void);int +DATARMNET5f72606f6f(u16 DATARMNETc790ff30fc,u16 DATARMNET208ea67e1d,u32 +DATARMNET4da4612f1e,u32 DATARMNETa3f89581b5);int DATARMNETf85599b9d8(u32 +DATARMNET8c11bd9466,u8 DATARMNET87636d0152);void DATARMNET6bf538fa23(void);void +DATARMNETaea4c85748(void); #endif From c50af17573e3fbdfee0b322fa4663e848b2dfa6a Mon Sep 17 00:00:00 2001 From: Conner Huff Date: Tue, 7 Jul 2020 17:02:08 -0700 Subject: [PATCH 10/36] rmnet_shs: Iff6102e48d4154066added315127249b79f0f0be Upgrade to Iff6102e48d4154066added315127249b79f0f0be Change-Id: Iff6102e48d4154066added315127249b79f0f0be Signed-off-by: Conner Huff --- shs/rmnet_shs_config.c | 2 ++ shs/rmnet_shs_wq_mem.c | 39 ++++++++++++++++++++------------------- 2 files changed, 22 insertions(+), 19 deletions(-) diff --git a/shs/rmnet_shs_config.c b/shs/rmnet_shs_config.c index 3c98c9d113dc..9db9567e2d68 100644 --- a/shs/rmnet_shs_config.c +++ b/shs/rmnet_shs_config.c @@ -33,6 +33,8 @@ DATARMNET5fc54f7a13 __read_mostly={.notifier_call=DATARMNETe9173bbe0e,.priority= "\x49\x31\x30\x34\x31\x36\x39\x33\x64\x35\x35\x31\x37\x30\x33\x62\x63\x38\x33\x35\x65\x63\x66\x62\x33\x31\x31\x30\x65\x66\x65\x63\x35\x30\x32\x30\x34\x63\x37\x36\x39" , "\x49\x30\x61\x32\x63\x61\x34\x36\x35\x34\x30\x30\x33\x35\x64\x62\x31\x39\x37\x65\x39\x37\x38\x62\x62\x33\x35\x62\x39\x30\x31\x35\x30\x64\x36\x37\x64\x35\x34\x35\x66" +, +"\x49\x66\x66\x36\x31\x30\x32\x65\x34\x38\x64\x34\x31\x35\x34\x30\x36\x36\x61\x64\x64\x65\x64\x33\x31\x35\x31\x32\x37\x32\x34\x39\x62\x37\x39\x66\x30\x66\x30\x62\x65" };static int DATARMNET2cb9ae589c;int __init DATARMNET163e93649e(void){pr_info( "\x25\x73\x28\x29\x3a\x20\x53\x74\x61\x72\x74\x69\x6e\x67\x20\x72\x6d\x6e\x65\x74\x20\x53\x48\x53\x20\x6d\x6f\x64\x75\x6c\x65\x20\x25\x73\x20" "\n" ,__func__,DATARMNETbc8418e817[(0xd2d+202-0xdf7)]);trace_rmnet_shs_high( diff --git a/shs/rmnet_shs_wq_mem.c b/shs/rmnet_shs_wq_mem.c index 6dded942a271..1a5abee23948 100644 --- a/shs/rmnet_shs_wq_mem.c +++ b/shs/rmnet_shs_wq_mem.c @@ -503,24 +503,25 @@ DATARMNET67d31dc40a);if(!DATARMNET67d31dc40a){rm_err("\x25\x73", char*)DATARMNET67d31dc40a->data+sizeof(uint16_t)),(void*)&DATARMNETf46265286b[ (0xd2d+202-0xdf7)],sizeof(DATARMNETf46265286b));}void DATARMNETf5f83b943f(void){ kuid_t DATARMNETdaca088404;kgid_t DATARMNET254aa091f2;DATARMNETe4c5563cdb= -proc_mkdir("\x73\x68\x73",NULL);DATARMNETdaca088404=make_kuid(&init_user_ns, -(0xdc7+2646-0x1434));DATARMNET254aa091f2=make_kgid(&init_user_ns, -(0xdc7+2646-0x1434));if(uid_valid(DATARMNETdaca088404)&&gid_valid( -DATARMNET254aa091f2))proc_set_user(DATARMNETe4c5563cdb,DATARMNETdaca088404, -DATARMNET254aa091f2);proc_create(DATARMNET41be983a65,(0xdb7+6665-0x261c), -DATARMNETe4c5563cdb,&DATARMNET668485bd14);proc_create(DATARMNET5ddc91451c, -(0xdb7+6665-0x261c),DATARMNETe4c5563cdb,&DATARMNETe84fbaa6af);proc_create( -DATARMNETeb2a21dd7c,(0xdb7+6665-0x261c),DATARMNETe4c5563cdb,&DATARMNET8fe5f892a8 -);proc_create(DATARMNET1c4ea23858,(0xdb7+6665-0x261c),DATARMNETe4c5563cdb,& -DATARMNET0104d40d4b);proc_create(DATARMNETe98d39b779,(0xdb7+6665-0x261c), -DATARMNETe4c5563cdb,&DATARMNET6eb63d9ad0);DATARMNET6bf538fa23(); -DATARMNET410036d5ac=NULL;DATARMNET19c47a9f3a=NULL;DATARMNET22e796eff3=NULL; -DATARMNET9b8000d2a7=NULL;DATARMNET67d31dc40a=NULL;DATARMNETaea4c85748();}void -DATARMNET28d33bd09f(void){remove_proc_entry(DATARMNET41be983a65, -DATARMNETe4c5563cdb);remove_proc_entry(DATARMNET5ddc91451c,DATARMNETe4c5563cdb); -remove_proc_entry(DATARMNETeb2a21dd7c,DATARMNETe4c5563cdb);remove_proc_entry( -DATARMNET1c4ea23858,DATARMNETe4c5563cdb);remove_proc_entry(DATARMNETe98d39b779, -DATARMNETe4c5563cdb);remove_proc_entry(DATARMNET6517f07a36,NULL); -DATARMNET6bf538fa23();DATARMNET410036d5ac=NULL;DATARMNET19c47a9f3a=NULL; +proc_mkdir("\x73\x68\x73",NULL);if(!DATARMNETe4c5563cdb){rm_err("\x25\x73", +"\x53\x48\x53\x5f\x4d\x45\x4d\x5f\x49\x4e\x49\x54\x3a\x20\x46\x61\x69\x6c\x65\x64\x20\x74\x6f\x20\x63\x72\x65\x61\x74\x65\x20\x70\x72\x6f\x63\x20\x64\x69\x72" +);return;}DATARMNETdaca088404=make_kuid(&init_user_ns,(0xdc7+2646-0x1434)); +DATARMNET254aa091f2=make_kgid(&init_user_ns,(0xdc7+2646-0x1434));if(uid_valid( +DATARMNETdaca088404)&&gid_valid(DATARMNET254aa091f2))proc_set_user( +DATARMNETe4c5563cdb,DATARMNETdaca088404,DATARMNET254aa091f2);proc_create( +DATARMNET41be983a65,(0xdb7+6665-0x261c),DATARMNETe4c5563cdb,&DATARMNET668485bd14 +);proc_create(DATARMNET5ddc91451c,(0xdb7+6665-0x261c),DATARMNETe4c5563cdb,& +DATARMNETe84fbaa6af);proc_create(DATARMNETeb2a21dd7c,(0xdb7+6665-0x261c), +DATARMNETe4c5563cdb,&DATARMNET8fe5f892a8);proc_create(DATARMNET1c4ea23858, +(0xdb7+6665-0x261c),DATARMNETe4c5563cdb,&DATARMNET0104d40d4b);proc_create( +DATARMNETe98d39b779,(0xdb7+6665-0x261c),DATARMNETe4c5563cdb,&DATARMNET6eb63d9ad0 +);DATARMNET6bf538fa23();DATARMNET410036d5ac=NULL;DATARMNET19c47a9f3a=NULL; +DATARMNET22e796eff3=NULL;DATARMNET9b8000d2a7=NULL;DATARMNET67d31dc40a=NULL; +DATARMNETaea4c85748();}void DATARMNET28d33bd09f(void){remove_proc_entry( +DATARMNET41be983a65,DATARMNETe4c5563cdb);remove_proc_entry(DATARMNET5ddc91451c, +DATARMNETe4c5563cdb);remove_proc_entry(DATARMNETeb2a21dd7c,DATARMNETe4c5563cdb); +remove_proc_entry(DATARMNET1c4ea23858,DATARMNETe4c5563cdb);remove_proc_entry( +DATARMNETe98d39b779,DATARMNETe4c5563cdb);remove_proc_entry(DATARMNET6517f07a36, +NULL);DATARMNET6bf538fa23();DATARMNET410036d5ac=NULL;DATARMNET19c47a9f3a=NULL; DATARMNET22e796eff3=NULL;DATARMNET9b8000d2a7=NULL;DATARMNET67d31dc40a=NULL; DATARMNETaea4c85748();} From 1ee784afd4589f732868c33338862247685fb1aa Mon Sep 17 00:00:00 2001 From: Elmer Melendez Date: Fri, 17 Jul 2020 18:43:16 -0600 Subject: [PATCH 11/36] Fix Module Compilation Warnings Add flag to disable indentation warnings. This flag is specific to Clang-11 and should not affect Clang-10. Change-Id: Ie46ece18810f283e93605a00a6bde89c47b5222b --- offload/Kbuild | 3 ++- shs/Kbuild | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/offload/Kbuild b/offload/Kbuild index 6b244bd4903f..2bb49c4e0b26 100644 --- a/offload/Kbuild +++ b/offload/Kbuild @@ -3,7 +3,8 @@ KBUILD_EXTRA_SYMBOLS := $(shell pwd)/../../$(RMNET_CORE_PATH)/Module.symvers obj-m += rmnet_offload.o #Need core headers -ccflags-y := -I$(RMNET_CORE_INC_DIR) +ccflags-y := -I$(RMNET_CORE_INC_DIR) \ + $(call cc-option,-Wno-misleading-indentation) rmnet_offload-y := rmnet_offload_state.o rmnet_offload_main.o \ rmnet_offload_engine.o rmnet_offload_tcp.o \ rmnet_offload_udp.o rmnet_offload_stats.o \ diff --git a/shs/Kbuild b/shs/Kbuild index 96499e26eab5..030d5f66b375 100644 --- a/shs/Kbuild +++ b/shs/Kbuild @@ -3,7 +3,8 @@ KBUILD_EXTRA_SYMBOLS := $(shell pwd)/../../$(RMNET_CORE_PATH)/Module.symvers obj-m += rmnet_shs.o #Need core headers -ccflags-y := -I$(RMNET_CORE_INC_DIR) +ccflags-y := -I$(RMNET_CORE_INC_DIR) \ + $(call cc-option,-Wno-misleading-indentation) rmnet_shs-y := rmnet_shs_config.o \ rmnet_shs_main.o \ rmnet_shs_common.o \ From 82d47c7bd3f86db212b3f72ae4832c06a71c5d40 Mon Sep 17 00:00:00 2001 From: Subash Abhinov Kasiviswanathan Date: Thu, 16 Jul 2020 15:34:57 -0700 Subject: [PATCH 12/36] rmnet_shs: I6f199457088c9f33d69192dd24360b95718db54d Update to I6f199457088c9f33d69192dd24360b95718db54d. Change-Id: I6f199457088c9f33d69192dd24360b95718db54d Acked-by: Raul Martinez Signed-off-by: Subash Abhinov Kasiviswanathan --- shs/rmnet_shs_config.c | 2 ++ shs/rmnet_shs_wq.c | 6 +++--- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/shs/rmnet_shs_config.c b/shs/rmnet_shs_config.c index 9db9567e2d68..e5b4865373ed 100644 --- a/shs/rmnet_shs_config.c +++ b/shs/rmnet_shs_config.c @@ -35,6 +35,8 @@ DATARMNET5fc54f7a13 __read_mostly={.notifier_call=DATARMNETe9173bbe0e,.priority= "\x49\x30\x61\x32\x63\x61\x34\x36\x35\x34\x30\x30\x33\x35\x64\x62\x31\x39\x37\x65\x39\x37\x38\x62\x62\x33\x35\x62\x39\x30\x31\x35\x30\x64\x36\x37\x64\x35\x34\x35\x66" , "\x49\x66\x66\x36\x31\x30\x32\x65\x34\x38\x64\x34\x31\x35\x34\x30\x36\x36\x61\x64\x64\x65\x64\x33\x31\x35\x31\x32\x37\x32\x34\x39\x62\x37\x39\x66\x30\x66\x30\x62\x65" +, +"\x49\x36\x66\x31\x39\x39\x34\x35\x37\x30\x38\x38\x63\x39\x66\x33\x33\x64\x36\x39\x31\x39\x32\x64\x64\x32\x34\x33\x36\x30\x62\x39\x35\x37\x31\x38\x64\x62\x35\x34\x64" };static int DATARMNET2cb9ae589c;int __init DATARMNET163e93649e(void){pr_info( "\x25\x73\x28\x29\x3a\x20\x53\x74\x61\x72\x74\x69\x6e\x67\x20\x72\x6d\x6e\x65\x74\x20\x53\x48\x53\x20\x6d\x6f\x64\x75\x6c\x65\x20\x25\x73\x20" "\n" ,__func__,DATARMNETbc8418e817[(0xd2d+202-0xdf7)]);trace_rmnet_shs_high( diff --git a/shs/rmnet_shs_wq.c b/shs/rmnet_shs_wq.c index c465331fb4b1..255ba4ebb275 100644 --- a/shs/rmnet_shs_wq.c +++ b/shs/rmnet_shs_wq.c @@ -694,7 +694,7 @@ void DATARMNET039ac6d55d(void){struct DATARMNET9b44b71ee9*ep=NULL; list_for_each_entry(ep,&DATARMNET30a3e83974,DATARMNET0763436b8d){if(!ep)continue ;if(!ep->DATARMNET4a4e6f66b5)continue;DATARMNETe69c918dc8(ep);ep-> DATARMNET257fc4b2d4=(0xd2d+202-0xdf7);ep->DATARMNET4eb77c78e6=(0xd2d+202-0xdf7); -}}void DATARMNETedc898218c(void){int cpu,DATARMNETc790ff30fc;int +}}noinline void DATARMNETedc898218c(void){int cpu,DATARMNETc790ff30fc;int DATARMNET421230d879;struct DATARMNET6c78e47d24*DATARMNETd2a694d52a=NULL;for(cpu= (0xd2d+202-0xdf7);cpuDATARMNET4b4a76b094>DATARMNET59f7cb903f)if( DATARMNETd2a694d52a->DATARMNET7c894c2f8fDATARMNET7c894c2f8f;DATARMNET2d482e7d9f [DATARMNET421230d879]++;}DATARMNETc790ff30fc=DATARMNETd2a694d52a-> -DATARMNET7c894c2f8f;if(DATARMNETc790ff30fc>=DATARMNETc6782fed88){continue;}if( -DATARMNETd2a694d52a->DATARMNET63b1a086d5->DATARMNET341ea38662-> +DATARMNET7c894c2f8f;if(DATARMNETc790ff30fc>=DATARMNETc6782fed88|| +DATARMNETc790ff30fc<(0xd2d+202-0xdf7)){continue;}if(DATARMNETd2a694d52a-> DATARMNET87636d0152>(0xd2d+202-0xdf7)){DATARMNET0997c5650d[DATARMNETc790ff30fc]. seg++;}}}void DATARMNETcd6e26f0ad(void){struct timespec time;struct DATARMNET6c78e47d24*DATARMNETd2a694d52a=NULL;(void)getnstimeofday(&time); From 93e6101a3608a6492ed8976cb294ccd77972184d Mon Sep 17 00:00:00 2001 From: Sean Tranchetti Date: Mon, 27 Jul 2020 16:53:12 -0600 Subject: [PATCH 13/36] rmnet_offload: I8c1eb9bc57633f43c08d2fb557274ea316e5fa0c Updates the module to I8c1eb9bc57633f43c08d2fb557274ea316e5fa0c. Change-Id: I962defe6641356ec9a5a0461bd321687a504cbc9 Signed-off-by: Sean Tranchetti --- offload/rmnet_offload_main.c | 2 ++ offload/rmnet_offload_state.c | 28 ++++++++++++++-------------- offload/rmnet_offload_state.h | 4 +++- 3 files changed, 19 insertions(+), 15 deletions(-) diff --git a/offload/rmnet_offload_main.c b/offload/rmnet_offload_main.c index 9877a464033b..07cba931d05b 100644 --- a/offload/rmnet_offload_main.c +++ b/offload/rmnet_offload_main.c @@ -27,6 +27,8 @@ static const char*DATARMNET9be3ddbe97[]__always_unused={ "\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" , "\x49\x36\x61\x62\x39\x37\x30\x65\x36\x62\x65\x65\x34\x33\x39\x34\x63\x36\x31\x30\x33\x38\x31\x62\x62\x38\x39\x66\x36\x33\x36\x31\x61\x34\x66\x30\x33\x36\x63\x66\x30" +, +"\x49\x38\x63\x31\x65\x62\x39\x62\x63\x35\x37\x36\x33\x33\x66\x34\x33\x63\x30\x38\x64\x32\x66\x62\x35\x35\x37\x32\x37\x34\x65\x61\x33\x31\x36\x65\x35\x66\x61\x30\x63" ,};static DEFINE_SPINLOCK(DATARMNET0b5e447f18);static u32 DATARMNETcb7325e02d( struct DATARMNETd812bcdbb5*DATARMNET458b70e7e5){__be32 DATARMNETdfd47b00ff[ (0xd20+231-0xdfc)];u32 DATARMNET5ebf661879;__be16 DATARMNET08e913477e= diff --git a/offload/rmnet_offload_state.c b/offload/rmnet_offload_state.c index 2d6b821a2bda..9c268be6257c 100644 --- a/offload/rmnet_offload_state.c +++ b/offload/rmnet_offload_state.c @@ -63,19 +63,20 @@ 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__);}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* +,__func__);}DATARMNETe05748b000->DATARMNETcb2b3ae8e4=(0xd26+209-0xdf6); +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( +DATARMNETb14e52a504;(void)DATARMNET272c159b3c;if(!DATARMNET00dcb79bc4||strncmp( +DATARMNET00dcb79bc4->name,"\x72\x6d\x6e\x65\x74\x5f\x64\x61\x74\x61", +(0xd27+224-0xdfd)))goto DATARMNETaabe3a05f8;switch(DATARMNET4abd997295){case +NETDEV_REGISTER:if(DATARMNETe05748b000||DATARMNET19eb0de3b2()){ +DATARMNETe05748b000->DATARMNETcb2b3ae8e4++;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__,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" @@ -83,9 +84,8 @@ DATARMNETf0d9de7e2f){pr_err( 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 DATARMNETaabe3a05f8;}break;case NETDEV_UNREGISTER:if(! -DATARMNETe05748b000||!DATARMNET19eb0de3b2()||strncmp(DATARMNET00dcb79bc4->name, -DATARMNETe05748b000->DATARMNET403589239f->dev->name,IFNAMSIZ))goto -DATARMNETaabe3a05f8;pr_info( +DATARMNETe05748b000||!DATARMNET19eb0de3b2())goto DATARMNETaabe3a05f8;if(-- +DATARMNETe05748b000->DATARMNETcb2b3ae8e4)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__,DATARMNET00dcb79bc4->name);DATARMNET345f805b34();break;} DATARMNETaabe3a05f8:return NOTIFY_DONE;}static struct notifier_block diff --git a/offload/rmnet_offload_state.h b/offload/rmnet_offload_state.h index 26bae2398196..d722b5f2146c 100644 --- a/offload/rmnet_offload_state.h +++ b/offload/rmnet_offload_state.h @@ -24,5 +24,7 @@ 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); +DATARMNETebb45c8d86;u8 DATARMNETcb2b3ae8e4;};struct DATARMNET70f3b87b5d* +DATARMNETc2a630b113(void); #endif + From b564e1f3b66ad7fec9a51855f62cabb53b037c8f Mon Sep 17 00:00:00 2001 From: Subash Abhinov Kasiviswanathan Date: Wed, 29 Jul 2020 15:29:37 -0700 Subject: [PATCH 14/36] rmnet_shs: I5e024f8f0d1afa8637353b1db8be77450e216962 Update to I5e024f8f0d1afa8637353b1db8be77450e216962 Change-Id: I5e024f8f0d1afa8637353b1db8be77450e216962 Acked-by: Raul Martinez Signed-off-by: Subash Abhinov Kasiviswanathan --- shs/rmnet_shs_common.c | 32 +++---- shs/rmnet_shs_config.c | 2 + shs/rmnet_shs_main.c | 63 ++++++------- shs/rmnet_shs_wq.c | 210 ++++++++++++++++++++--------------------- shs/rmnet_shs_wq_mem.c | 100 +++++++++----------- 5 files changed, 200 insertions(+), 207 deletions(-) diff --git a/shs/rmnet_shs_common.c b/shs/rmnet_shs_common.c index 7d5a7fa520fb..377258cd128e 100644 --- a/shs/rmnet_shs_common.c +++ b/shs/rmnet_shs_common.c @@ -124,14 +124,14 @@ DATARMNET895df156d7=-(0xd26+209-0xdf6);u8 is_match_found=(0xd2d+202-0xdf7); struct DATARMNET9b44b71ee9*ep=NULL;unsigned long flags;if(!dev){ DATARMNET68d84e7b98[DATARMNETf5157a9b85]++;return DATARMNET895df156d7;} spin_lock_irqsave(&DATARMNETec2a4f5211,flags);list_for_each_entry(ep,& -DATARMNET30a3e83974,DATARMNET0763436b8d){if(!ep)continue;if(!ep-> -DATARMNET4a4e6f66b5)continue;if(ep->ep==dev){is_match_found=(0xd26+209-0xdf6); -break;}}if(!is_match_found){DATARMNET68d84e7b98[DATARMNETb8fe2c0e64]++; -spin_unlock_irqrestore(&DATARMNETec2a4f5211,flags);return DATARMNET895df156d7;} -DATARMNETde5894dad9=ep->DATARMNET6bda8fe27e;DATARMNETd9e9d4ff7e=ep-> -DATARMNETd7a83774f8;while(DATARMNETde5894dad9 -DATARMNET5af04d0405[DATARMNETde5894dad9]>=(0xd2d+202-0xdf7)){DATARMNET895df156d7 -=ep->DATARMNET5af04d0405[DATARMNETde5894dad9];break;}DATARMNETde5894dad9++;}if(( +DATARMNET30a3e83974,DATARMNET0763436b8d){if(!ep->DATARMNET4a4e6f66b5)continue;if +(ep->ep==dev){is_match_found=(0xd26+209-0xdf6);break;}}if(!is_match_found){ +DATARMNET68d84e7b98[DATARMNETb8fe2c0e64]++;spin_unlock_irqrestore(& +DATARMNETec2a4f5211,flags);return DATARMNET895df156d7;}DATARMNETde5894dad9=ep-> +DATARMNET6bda8fe27e;DATARMNETd9e9d4ff7e=ep->DATARMNETd7a83774f8;while( +DATARMNETde5894dad9DATARMNET5af04d0405[ +DATARMNETde5894dad9]>=(0xd2d+202-0xdf7)){DATARMNET895df156d7=ep-> +DATARMNET5af04d0405[DATARMNETde5894dad9];break;}DATARMNETde5894dad9++;}if(( DATARMNET895df156d7>=(0xd2d+202-0xdf7))||((ep->DATARMNET6bda8fe27e+ (0xd26+209-0xdf6))>=ep->DATARMNETd7a83774f8))ep->DATARMNET6bda8fe27e=((ep-> DATARMNET6bda8fe27e+(0xd26+209-0xdf6))%ep->DATARMNETd7a83774f8); @@ -141,14 +141,14 @@ NULL;int DATARMNET895df156d7=-(0xd26+209-0xdf6);u8 DATARMNETcc5b7cd962;u8 DATARMNET15bde5cb53;u8 is_match_found=(0xd2d+202-0xdf7);unsigned long flags;if(! dev){DATARMNET68d84e7b98[DATARMNETf5157a9b85]++;return DATARMNET895df156d7;} spin_lock_irqsave(&DATARMNETec2a4f5211,flags);list_for_each_entry(ep,& -DATARMNET30a3e83974,DATARMNET0763436b8d){if(!ep)continue;if(!ep-> -DATARMNET4a4e6f66b5)continue;if(ep->ep==dev){is_match_found=(0xd26+209-0xdf6); -break;}}if(!is_match_found){DATARMNET68d84e7b98[DATARMNETb8fe2c0e64]++; -spin_unlock_irqrestore(&DATARMNETec2a4f5211,flags);return DATARMNET895df156d7;} -DATARMNETcc5b7cd962=ep->DATARMNET121a654efd;DATARMNET15bde5cb53=ep-> -DATARMNET847276e5af;while(DATARMNETcc5b7cd962 -DATARMNET7167e10d99[DATARMNETcc5b7cd962]>=(0xd2d+202-0xdf7)){DATARMNET895df156d7 -=ep->DATARMNET7167e10d99[DATARMNETcc5b7cd962];break;}DATARMNETcc5b7cd962++;}if( +DATARMNET30a3e83974,DATARMNET0763436b8d){if(!ep->DATARMNET4a4e6f66b5)continue;if +(ep->ep==dev){is_match_found=(0xd26+209-0xdf6);break;}}if(!is_match_found){ +DATARMNET68d84e7b98[DATARMNETb8fe2c0e64]++;spin_unlock_irqrestore(& +DATARMNETec2a4f5211,flags);return DATARMNET895df156d7;}DATARMNETcc5b7cd962=ep-> +DATARMNET121a654efd;DATARMNET15bde5cb53=ep->DATARMNET847276e5af;while( +DATARMNETcc5b7cd962DATARMNET7167e10d99[ +DATARMNETcc5b7cd962]>=(0xd2d+202-0xdf7)){DATARMNET895df156d7=ep-> +DATARMNET7167e10d99[DATARMNETcc5b7cd962];break;}DATARMNETcc5b7cd962++;}if( DATARMNET895df156d7>=(0xd2d+202-0xdf7))ep->DATARMNET121a654efd=(( DATARMNETcc5b7cd962+(0xd26+209-0xdf6))%DATARMNET15bde5cb53); spin_unlock_irqrestore(&DATARMNETec2a4f5211,flags);return DATARMNET895df156d7;} diff --git a/shs/rmnet_shs_config.c b/shs/rmnet_shs_config.c index e5b4865373ed..bb56c8d2f111 100644 --- a/shs/rmnet_shs_config.c +++ b/shs/rmnet_shs_config.c @@ -37,6 +37,8 @@ DATARMNET5fc54f7a13 __read_mostly={.notifier_call=DATARMNETe9173bbe0e,.priority= "\x49\x66\x66\x36\x31\x30\x32\x65\x34\x38\x64\x34\x31\x35\x34\x30\x36\x36\x61\x64\x64\x65\x64\x33\x31\x35\x31\x32\x37\x32\x34\x39\x62\x37\x39\x66\x30\x66\x30\x62\x65" , "\x49\x36\x66\x31\x39\x39\x34\x35\x37\x30\x38\x38\x63\x39\x66\x33\x33\x64\x36\x39\x31\x39\x32\x64\x64\x32\x34\x33\x36\x30\x62\x39\x35\x37\x31\x38\x64\x62\x35\x34\x64" +, +"\x49\x35\x65\x30\x32\x34\x66\x38\x66\x30\x64\x31\x61\x66\x61\x38\x36\x33\x37\x33\x35\x33\x62\x31\x64\x62\x38\x62\x65\x37\x37\x34\x35\x30\x65\x32\x31\x36\x39\x36\x32" };static int DATARMNET2cb9ae589c;int __init DATARMNET163e93649e(void){pr_info( "\x25\x73\x28\x29\x3a\x20\x53\x74\x61\x72\x74\x69\x6e\x67\x20\x72\x6d\x6e\x65\x74\x20\x53\x48\x53\x20\x6d\x6f\x64\x75\x6c\x65\x20\x25\x73\x20" "\n" ,__func__,DATARMNETbc8418e817[(0xd2d+202-0xdf7)]);trace_rmnet_shs_high( diff --git a/shs/rmnet_shs_main.c b/shs/rmnet_shs_main.c index 3dfe02750504..0612a1c42ebf 100644 --- a/shs/rmnet_shs_main.c +++ b/shs/rmnet_shs_main.c @@ -252,12 +252,12 @@ DATARMNET3764d083f0,ht_flags);DATARMNET61ab18a4bd=DATARMNETeb3978575d( DATARMNET42a992465f);list_for_each_safe(DATARMNET7b34b7b5be,next,& DATARMNET0997c5650d[DATARMNET42a992465f].DATARMNET3dc4262f53){ DATARMNET3f85732c70=list_entry(DATARMNET7b34b7b5be,struct DATARMNET63d7680df2, -DATARMNET04c88b8191);if(DATARMNET3f85732c70!=NULL&&DATARMNET3f85732c70-> -DATARMNETae4b27456e.DATARMNET6215127f48){DATARMNETed7800fc72=DATARMNET3f85732c70 -->DATARMNETae4b27456e.DATARMNET6215127f48;DATARMNETa0df5de99d= -DATARMNET3f85732c70->DATARMNETae4b27456e.DATARMNETbaa5765693;DATARMNETe02152c351 -(DATARMNET3f85732c70,(0xd26+209-0xdf6),DATARMNET5b5927fd7e);DATARMNET8bf94cc2f7 -+=DATARMNETed7800fc72;DATARMNET76192fa639+=DATARMNETa0df5de99d;if( +DATARMNET04c88b8191);if(DATARMNET3f85732c70->DATARMNETae4b27456e. +DATARMNET6215127f48){DATARMNETed7800fc72=DATARMNET3f85732c70-> +DATARMNETae4b27456e.DATARMNET6215127f48;DATARMNETa0df5de99d=DATARMNET3f85732c70 +->DATARMNETae4b27456e.DATARMNETbaa5765693;DATARMNETe02152c351( +DATARMNET3f85732c70,(0xd26+209-0xdf6),DATARMNET5b5927fd7e);DATARMNET8bf94cc2f7+= +DATARMNETed7800fc72;DATARMNET76192fa639+=DATARMNETa0df5de99d;if( DATARMNET3f85732c70->map_cpu==DATARMNET42a992465f){DATARMNET61ab18a4bd+= DATARMNETed7800fc72;DATARMNET3f85732c70->queue_head=DATARMNET61ab18a4bd;}}} DATARMNETecc0627c70.DATARMNETc252a1f55d-=DATARMNET76192fa639;DATARMNETecc0627c70 @@ -375,32 +375,31 @@ DATARMNETc54e431bbc(DATARMNET42a992465f,DATARMNET20dc6bb36b,DATARMNETe56f4fbbe6) ;}list_for_each_safe(DATARMNET7b34b7b5be,next,&DATARMNET0997c5650d[ DATARMNET42a992465f].DATARMNET3dc4262f53){DATARMNET3f85732c70=list_entry( DATARMNET7b34b7b5be,struct DATARMNET63d7680df2,DATARMNET04c88b8191);if( -DATARMNET3f85732c70!=NULL&&DATARMNET3f85732c70->DATARMNETae4b27456e. -DATARMNET6215127f48){DATARMNETed7800fc72=DATARMNET3f85732c70-> -DATARMNETae4b27456e.DATARMNET6215127f48;DATARMNETa0df5de99d=DATARMNET3f85732c70 -->DATARMNETae4b27456e.DATARMNETbaa5765693;DATARMNETa6424e3c4e= -DATARMNET3f85732c70->DATARMNETae4b27456e.DATARMNET35234676d4;DATARMNET77e7f4db43 -=DATARMNETe02152c351(DATARMNET3f85732c70,DATARMNETded3da1a77,DATARMNET5447204733 -);if(DATARMNET77e7f4db43){DATARMNET870611bedd+=DATARMNETa6424e3c4e; -DATARMNET8bf94cc2f7+=DATARMNETed7800fc72;DATARMNET76192fa639+= -DATARMNETa0df5de99d;DATARMNET0997c5650d[DATARMNET3f85732c70->map_cpu]. -DATARMNET4133fc9428-=DATARMNETed7800fc72;DATARMNET3f85732c70-> -DATARMNETae4b27456e.DATARMNET35234676d4=(0xd2d+202-0xdf7);if(DATARMNET3f85732c70 -->map_cpu==DATARMNET42a992465f){DATARMNET61ab18a4bd+=DATARMNETed7800fc72; -DATARMNET3f85732c70->queue_head=DATARMNET61ab18a4bd;}}}}if(DATARMNET12565c8f98){ -if(DATARMNET362b15f941(DATARMNET42a992465f)&&!DATARMNET0997c5650d[ -DATARMNET42a992465f].DATARMNETef866573e0)DATARMNETfa919d00dc(DATARMNET42a992465f -,DATARMNET870611bedd);DATARMNETc54e431bbc(DATARMNET42a992465f, -DATARMNET20dc6bb36b,(0xd2d+202-0xdf7));}if(DATARMNET0997c5650d[ -DATARMNET42a992465f].DATARMNET4133fc9428<(0xd2d+202-0xdf7))DATARMNET68d84e7b98[ -DATARMNET33a9d4759f]++;if(DATARMNETeea3cef5b6(DATARMNET42a992465f)>= -DATARMNET84413d1257[DATARMNET42a992465f])DATARMNET84413d1257[DATARMNET42a992465f -]=DATARMNETeea3cef5b6(DATARMNET42a992465f);}DATARMNETecc0627c70. -DATARMNETc252a1f55d-=DATARMNET76192fa639;DATARMNETecc0627c70.DATARMNETa2e32cdd3a --=DATARMNET8bf94cc2f7;DATARMNET52de1f3dc0(DATARMNET4510abc30d, -DATARMNET576793621a,DATARMNETecc0627c70.DATARMNETa2e32cdd3a,DATARMNETecc0627c70. -DATARMNETc252a1f55d,DATARMNET8bf94cc2f7,DATARMNET76192fa639,NULL,NULL);if(( -DATARMNETecc0627c70.DATARMNETc252a1f55d<=(0xd2d+202-0xdf7))||( +DATARMNET3f85732c70->DATARMNETae4b27456e.DATARMNET6215127f48){ +DATARMNETed7800fc72=DATARMNET3f85732c70->DATARMNETae4b27456e.DATARMNET6215127f48 +;DATARMNETa0df5de99d=DATARMNET3f85732c70->DATARMNETae4b27456e. +DATARMNETbaa5765693;DATARMNETa6424e3c4e=DATARMNET3f85732c70->DATARMNETae4b27456e +.DATARMNET35234676d4;DATARMNET77e7f4db43=DATARMNETe02152c351(DATARMNET3f85732c70 +,DATARMNETded3da1a77,DATARMNET5447204733);if(DATARMNET77e7f4db43){ +DATARMNET870611bedd+=DATARMNETa6424e3c4e;DATARMNET8bf94cc2f7+= +DATARMNETed7800fc72;DATARMNET76192fa639+=DATARMNETa0df5de99d;DATARMNET0997c5650d +[DATARMNET3f85732c70->map_cpu].DATARMNET4133fc9428-=DATARMNETed7800fc72; +DATARMNET3f85732c70->DATARMNETae4b27456e.DATARMNET35234676d4=(0xd2d+202-0xdf7); +if(DATARMNET3f85732c70->map_cpu==DATARMNET42a992465f){DATARMNET61ab18a4bd+= +DATARMNETed7800fc72;DATARMNET3f85732c70->queue_head=DATARMNET61ab18a4bd;}}}}if( +DATARMNET12565c8f98){if(DATARMNET362b15f941(DATARMNET42a992465f)&&! +DATARMNET0997c5650d[DATARMNET42a992465f].DATARMNETef866573e0)DATARMNETfa919d00dc +(DATARMNET42a992465f,DATARMNET870611bedd);DATARMNETc54e431bbc( +DATARMNET42a992465f,DATARMNET20dc6bb36b,(0xd2d+202-0xdf7));}if( +DATARMNET0997c5650d[DATARMNET42a992465f].DATARMNET4133fc9428<(0xd2d+202-0xdf7)) +DATARMNET68d84e7b98[DATARMNET33a9d4759f]++;if(DATARMNETeea3cef5b6( +DATARMNET42a992465f)>=DATARMNET84413d1257[DATARMNET42a992465f]) +DATARMNET84413d1257[DATARMNET42a992465f]=DATARMNETeea3cef5b6(DATARMNET42a992465f +);}DATARMNETecc0627c70.DATARMNETc252a1f55d-=DATARMNET76192fa639; +DATARMNETecc0627c70.DATARMNETa2e32cdd3a-=DATARMNET8bf94cc2f7;DATARMNET52de1f3dc0 +(DATARMNET4510abc30d,DATARMNET576793621a,DATARMNETecc0627c70.DATARMNETa2e32cdd3a +,DATARMNETecc0627c70.DATARMNETc252a1f55d,DATARMNET8bf94cc2f7,DATARMNET76192fa639 +,NULL,NULL);if((DATARMNETecc0627c70.DATARMNETc252a1f55d<=(0xd2d+202-0xdf7))||( DATARMNETecc0627c70.DATARMNETa2e32cdd3a<=(0xd2d+202-0xdf7))){DATARMNETecc0627c70 .DATARMNETc252a1f55d=(0xd2d+202-0xdf7);DATARMNETecc0627c70.DATARMNETa2e32cdd3a= (0xd2d+202-0xdf7);DATARMNETecc0627c70.DATARMNETd9cfd2812b=(0xd2d+202-0xdf7); diff --git a/shs/rmnet_shs_wq.c b/shs/rmnet_shs_wq.c index 255ba4ebb275..a076696aeaf9 100644 --- a/shs/rmnet_shs_wq.c +++ b/shs/rmnet_shs_wq.c @@ -69,55 +69,55 @@ DATARMNETe9030b7691--;}}struct DATARMNET6c78e47d24*DATARMNETb062995420(void){ struct DATARMNET6c78e47d24*DATARMNETd2a694d52a=NULL;struct DATARMNET6c78e47d24* DATARMNETe70783182f=NULL;unsigned long flags;spin_lock_irqsave(& DATARMNETfbdbab2ef6,flags);list_for_each_entry(DATARMNETd2a694d52a,& -DATARMNET9825511866,DATARMNET6de26f0feb){if(DATARMNETd2a694d52a==NULL)continue; -if(DATARMNETd2a694d52a->DATARMNET0dc393a345==(0xd2d+202-0xdf7)){ -DATARMNETe70783182f=DATARMNETd2a694d52a;DATARMNETe70783182f->DATARMNET0dc393a345 -=(0xd26+209-0xdf6);DATARMNETe70783182f->DATARMNET8a4e1d5aaa=(0xd26+209-0xdf6); -break;}}spin_unlock_irqrestore(&DATARMNETfbdbab2ef6,flags);if( -DATARMNETe70783182f){trace_rmnet_shs_wq_low(DATARMNET238d08f0df, -DATARMNET8d783e2a07,DATARMNETd2a694d52a->DATARMNET0bfc2b2c85,(0x16e8+787-0xc0c), -(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),DATARMNETd2a694d52a,NULL);return -DATARMNETe70783182f;}DATARMNETe70783182f=kzalloc(sizeof(*DATARMNETd2a694d52a), -GFP_ATOMIC);if(!DATARMNETe70783182f){DATARMNET68d84e7b98[DATARMNET1828d69e96]++; -return NULL;}DATARMNETa6e92c3315(DATARMNETe70783182f);DATARMNETe70783182f-> -DATARMNET0bfc2b2c85=(0xd2d+202-0xdf7);DATARMNETe70783182f->DATARMNET0dc393a345= -(0xd26+209-0xdf6);DATARMNETe70783182f->DATARMNET8a4e1d5aaa=(0xd26+209-0xdf6); -INIT_LIST_HEAD(&DATARMNETe70783182f->DATARMNET6de26f0feb);INIT_LIST_HEAD(& -DATARMNETe70783182f->DATARMNET742867e97a);trace_rmnet_shs_wq_low( -DATARMNET238d08f0df,DATARMNET4b15fcda7c,DATARMNETe70783182f->DATARMNET0bfc2b2c85 -,(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),DATARMNETe70783182f, -NULL);DATARMNET36e5e526fa(DATARMNETe70783182f);return DATARMNETe70783182f;}void -DATARMNET350f55bfca(struct DATARMNET63d7680df2*node_p){struct timespec time;if(! -node_p){DATARMNET68d84e7b98[DATARMNETac729c3d29]++;return;}node_p-> -DATARMNET341ea38662=DATARMNETb062995420();if(node_p->DATARMNET341ea38662!=NULL){ -(void)getnstimeofday(&time);node_p->DATARMNET341ea38662->hash=node_p->hash; -node_p->DATARMNET341ea38662->DATARMNET1e9d25d9ff=node_p->DATARMNET1e9d25d9ff; -node_p->DATARMNET341ea38662->DATARMNET7c894c2f8f=node_p->map_cpu;node_p-> -DATARMNET341ea38662->DATARMNET6e1a4eaf09=node_p->map_cpu;node_p-> -DATARMNET341ea38662->DATARMNET87636d0152=(0xd2d+202-0xdf7);if( -DATARMNETc252c204a8&&node_p->DATARMNET341ea38662->DATARMNET1e9d25d9ff== -IPPROTO_TCP)node_p->DATARMNET341ea38662->DATARMNET87636d0152=DATARMNET2f8c32c8eb -;node_p->DATARMNET341ea38662->DATARMNET63b1a086d5=node_p;node_p-> -DATARMNET341ea38662->DATARMNETadd51beef4=DATARMNETe6671dbf38(time.tv_sec)+time. -tv_nsec;node_p->DATARMNET341ea38662->DATARMNET68714ac92c=DATARMNETe6671dbf38( -time.tv_sec)+time.tv_nsec;}trace_rmnet_shs_wq_high(DATARMNET238d08f0df, -DATARMNET31d8e00b80,(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),(0x16e8+787-0xc0c), -(0x16e8+787-0xc0c),node_p,node_p->DATARMNET341ea38662);}static u64 -DATARMNETf553c2afd2(struct DATARMNET6c78e47d24*DATARMNETd2a694d52a){u64 -DATARMNET253a9fc708,DATARMNET950c035603;u16 DATARMNETab4cf0ad84, -DATARMNET0c72af011b;if(!DATARMNETd2a694d52a){DATARMNET68d84e7b98[ -DATARMNETac729c3d29]++;return(0xd2d+202-0xdf7);}if(DATARMNET362b15f941( -DATARMNETd2a694d52a->DATARMNET7c894c2f8f)){DATARMNETab4cf0ad84= -DATARMNETcab56af6d5;DATARMNET0c72af011b=(0xeb7+698-0x110d)-DATARMNETcab56af6d5;} -else{DATARMNET0c72af011b=DATARMNETcab56af6d5;DATARMNETab4cf0ad84= -(0xeb7+698-0x110d)-DATARMNETcab56af6d5;}if(DATARMNETd2a694d52a-> -DATARMNET6c2816c16a==(0xd2d+202-0xdf7)){DATARMNET253a9fc708=DATARMNETd2a694d52a -->DATARMNET324c1a8f98;}else{DATARMNET950c035603=(DATARMNETd2a694d52a-> -DATARMNET6c2816c16a+DATARMNETd2a694d52a->DATARMNET253a9fc708)/(0xd1f+216-0xdf5); -DATARMNET253a9fc708=(((DATARMNETab4cf0ad84*DATARMNETd2a694d52a-> -DATARMNET324c1a8f98)+(DATARMNET0c72af011b*DATARMNET950c035603))/( -DATARMNETab4cf0ad84+DATARMNET0c72af011b));}return DATARMNET253a9fc708;}static -u64 DATARMNET183789850d(u16 DATARMNET42a992465f){u64 DATARMNET253a9fc708, +DATARMNET9825511866,DATARMNET6de26f0feb){if(DATARMNETd2a694d52a-> +DATARMNET0dc393a345==(0xd2d+202-0xdf7)){DATARMNETe70783182f=DATARMNETd2a694d52a; +DATARMNETe70783182f->DATARMNET0dc393a345=(0xd26+209-0xdf6);DATARMNETe70783182f-> +DATARMNET8a4e1d5aaa=(0xd26+209-0xdf6);break;}}spin_unlock_irqrestore(& +DATARMNETfbdbab2ef6,flags);if(DATARMNETe70783182f){trace_rmnet_shs_wq_low( +DATARMNET238d08f0df,DATARMNET8d783e2a07,DATARMNETd2a694d52a->DATARMNET0bfc2b2c85 +,(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),DATARMNETd2a694d52a, +NULL);return DATARMNETe70783182f;}DATARMNETe70783182f=kzalloc(sizeof(* +DATARMNETd2a694d52a),GFP_ATOMIC);if(!DATARMNETe70783182f){DATARMNET68d84e7b98[ +DATARMNET1828d69e96]++;return NULL;}DATARMNETa6e92c3315(DATARMNETe70783182f); +DATARMNETe70783182f->DATARMNET0bfc2b2c85=(0xd2d+202-0xdf7);DATARMNETe70783182f-> +DATARMNET0dc393a345=(0xd26+209-0xdf6);DATARMNETe70783182f->DATARMNET8a4e1d5aaa= +(0xd26+209-0xdf6);INIT_LIST_HEAD(&DATARMNETe70783182f->DATARMNET6de26f0feb); +INIT_LIST_HEAD(&DATARMNETe70783182f->DATARMNET742867e97a);trace_rmnet_shs_wq_low +(DATARMNET238d08f0df,DATARMNET4b15fcda7c,DATARMNETe70783182f-> +DATARMNET0bfc2b2c85,(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),(0x16e8+787-0xc0c), +DATARMNETe70783182f,NULL);DATARMNET36e5e526fa(DATARMNETe70783182f);return +DATARMNETe70783182f;}void DATARMNET350f55bfca(struct DATARMNET63d7680df2*node_p) +{struct timespec time;if(!node_p){DATARMNET68d84e7b98[DATARMNETac729c3d29]++; +return;}node_p->DATARMNET341ea38662=DATARMNETb062995420();if(node_p-> +DATARMNET341ea38662!=NULL){(void)getnstimeofday(&time);node_p-> +DATARMNET341ea38662->hash=node_p->hash;node_p->DATARMNET341ea38662-> +DATARMNET1e9d25d9ff=node_p->DATARMNET1e9d25d9ff;node_p->DATARMNET341ea38662-> +DATARMNET7c894c2f8f=node_p->map_cpu;node_p->DATARMNET341ea38662-> +DATARMNET6e1a4eaf09=node_p->map_cpu;node_p->DATARMNET341ea38662-> +DATARMNET87636d0152=(0xd2d+202-0xdf7);if(DATARMNETc252c204a8&&node_p-> +DATARMNET341ea38662->DATARMNET1e9d25d9ff==IPPROTO_TCP)node_p-> +DATARMNET341ea38662->DATARMNET87636d0152=DATARMNET2f8c32c8eb;node_p-> +DATARMNET341ea38662->DATARMNET63b1a086d5=node_p;node_p->DATARMNET341ea38662-> +DATARMNETadd51beef4=DATARMNETe6671dbf38(time.tv_sec)+time.tv_nsec;node_p-> +DATARMNET341ea38662->DATARMNET68714ac92c=DATARMNETe6671dbf38(time.tv_sec)+time. +tv_nsec;}trace_rmnet_shs_wq_high(DATARMNET238d08f0df,DATARMNET31d8e00b80, +(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),(0x16e8+787-0xc0c), +node_p,node_p->DATARMNET341ea38662);}static u64 DATARMNETf553c2afd2(struct +DATARMNET6c78e47d24*DATARMNETd2a694d52a){u64 DATARMNET253a9fc708, +DATARMNET950c035603;u16 DATARMNETab4cf0ad84,DATARMNET0c72af011b;if(! +DATARMNETd2a694d52a){DATARMNET68d84e7b98[DATARMNETac729c3d29]++;return +(0xd2d+202-0xdf7);}if(DATARMNET362b15f941(DATARMNETd2a694d52a-> +DATARMNET7c894c2f8f)){DATARMNETab4cf0ad84=DATARMNETcab56af6d5; +DATARMNET0c72af011b=(0xeb7+698-0x110d)-DATARMNETcab56af6d5;}else{ +DATARMNET0c72af011b=DATARMNETcab56af6d5;DATARMNETab4cf0ad84=(0xeb7+698-0x110d)- +DATARMNETcab56af6d5;}if(DATARMNETd2a694d52a->DATARMNET6c2816c16a== +(0xd2d+202-0xdf7)){DATARMNET253a9fc708=DATARMNETd2a694d52a->DATARMNET324c1a8f98; +}else{DATARMNET950c035603=(DATARMNETd2a694d52a->DATARMNET6c2816c16a+ +DATARMNETd2a694d52a->DATARMNET253a9fc708)/(0xd1f+216-0xdf5);DATARMNET253a9fc708= +(((DATARMNETab4cf0ad84*DATARMNETd2a694d52a->DATARMNET324c1a8f98)+( +DATARMNET0c72af011b*DATARMNET950c035603))/(DATARMNETab4cf0ad84+ +DATARMNET0c72af011b));}return DATARMNET253a9fc708;}static u64 +DATARMNET183789850d(u16 DATARMNET42a992465f){u64 DATARMNET253a9fc708, DATARMNET950c035603;u16 DATARMNETab4cf0ad84,DATARMNET0c72af011b;struct DATARMNET228056d4b7*DATARMNETf632b170b1;struct DATARMNETc8fdbf9c85* DATARMNET7bea4a06a6=&DATARMNET6cdd58e74c;if(DATARMNET42a992465f>= @@ -140,9 +140,9 @@ DATARMNET253a9fc708;}void DATARMNET0aa47ce397(struct DATARMNET6c78e47d24* DATARMNET7b2c1bbf38){struct DATARMNET63d7680df2*node_p=NULL;struct DATARMNET9b44b71ee9*ep=NULL;if(!DATARMNET7b2c1bbf38){DATARMNET68d84e7b98[ DATARMNETac729c3d29]++;return;}node_p=DATARMNET7b2c1bbf38->DATARMNET63b1a086d5; -list_for_each_entry(ep,&DATARMNET30a3e83974,DATARMNET0763436b8d){if(ep&&(node_p -->dev==ep->ep)){DATARMNET7b2c1bbf38->DATARMNET9fb369ce5f=ep->DATARMNET9fb369ce5f -;DATARMNET7b2c1bbf38->DATARMNET399c840115=ep->DATARMNET24a91635db; +list_for_each_entry(ep,&DATARMNET30a3e83974,DATARMNET0763436b8d){if(node_p->dev +==ep->ep){DATARMNET7b2c1bbf38->DATARMNET9fb369ce5f=ep->DATARMNET9fb369ce5f; +DATARMNET7b2c1bbf38->DATARMNET399c840115=ep->DATARMNET24a91635db; DATARMNET7b2c1bbf38->DATARMNET1a1d89d417=ep->DATARMNET1a1d89d417;if( DATARMNET7b2c1bbf38->DATARMNET1e9d25d9ff==IPPROTO_TCP){rm_err( "\x53\x48\x53\x5f\x54\x43\x50\x3a\x20\x61\x64\x64\x69\x6e\x67\x20\x54\x43\x50\x20\x62\x70\x73\x20\x25\x6c\x75\x20\x74\x6f\x20\x65\x70\x5f\x74\x6f\x74\x61\x6c\x20\x25\x6c\x75\x20\x65\x70\x20\x6e\x61\x6d\x65\x20\x25\x73" @@ -479,17 +479,16 @@ DATARMNET7c894c2f8f,DATARMNETd668725d64,DATARMNET85bfb4b2ca,DATARMNET7bea4a06a6 ->DATARMNET73464778dc[DATARMNETd668725d64].DATARMNET324c1a8f98,NULL,NULL);return DATARMNETd668725d64;}void DATARMNET466244e5d6(u16 DATARMNETc790ff30fc){struct DATARMNET9b44b71ee9*ep=NULL;u16 DATARMNETcfb5dc7296;list_for_each_entry(ep,& -DATARMNET30a3e83974,DATARMNET0763436b8d){if(!ep)continue;if(!ep-> -DATARMNET4a4e6f66b5)continue;DATARMNETcfb5dc7296=DATARMNET3c1fc10379( -DATARMNETc790ff30fc,ep);if(DATARMNETcfb5dc7296!=DATARMNETc790ff30fc) -DATARMNETdfb8ee742f(DATARMNETc790ff30fc,DATARMNETcfb5dc7296,ep);}}int -DATARMNET769bbe36c6(u16 DATARMNET7c894c2f8f,u16 DATARMNET208ea67e1d,struct -DATARMNET9b44b71ee9*ep){u16 DATARMNET553df5e12a=(0xd2d+202-0xdf7);if(!ep){ -DATARMNET68d84e7b98[DATARMNETb8fe2c0e64]++;return(0xd2d+202-0xdf7);}if( -DATARMNET7c894c2f8f>=DATARMNETc6782fed88||DATARMNET208ea67e1d>= -DATARMNETc6782fed88){DATARMNET68d84e7b98[DATARMNET54b67b8a75]++;return -(0xd2d+202-0xdf7);}DATARMNET553df5e12a=((0xd26+209-0xdf6)<DATARMNET9fb369ce5f;rm_err( +DATARMNET30a3e83974,DATARMNET0763436b8d){if(!ep->DATARMNET4a4e6f66b5)continue; +DATARMNETcfb5dc7296=DATARMNET3c1fc10379(DATARMNETc790ff30fc,ep);if( +DATARMNETcfb5dc7296!=DATARMNETc790ff30fc)DATARMNETdfb8ee742f(DATARMNETc790ff30fc +,DATARMNETcfb5dc7296,ep);}}int DATARMNET769bbe36c6(u16 DATARMNET7c894c2f8f,u16 +DATARMNET208ea67e1d,struct DATARMNET9b44b71ee9*ep){u16 DATARMNET553df5e12a= +(0xd2d+202-0xdf7);if(!ep){DATARMNET68d84e7b98[DATARMNETb8fe2c0e64]++;return +(0xd2d+202-0xdf7);}if(DATARMNET7c894c2f8f>=DATARMNETc6782fed88|| +DATARMNET208ea67e1d>=DATARMNETc6782fed88){DATARMNET68d84e7b98[ +DATARMNET54b67b8a75]++;return(0xd2d+202-0xdf7);}DATARMNET553df5e12a=( +(0xd26+209-0xdf6)<DATARMNET9fb369ce5f;rm_err( "\x53\x48\x53\x5f\x4d\x41\x53\x4b\x3a\x20\x20\x63\x75\x72\x20\x63\x70\x75\x20\x5b\x25\x64\x5d\x20\x7c\x20\x64\x65\x73\x74\x5f\x63\x70\x75\x20\x5b\x25\x64\x5d\x20\x7c\x20" "\x65\x70\x5f\x72\x70\x73\x5f\x6d\x61\x73\x6b\x20\x3d\x20\x30\x78\x25\x78\x20\x7c\x20\x63\x70\x75\x5f\x6f\x6e\x6c\x69\x6e\x65\x28\x64\x65\x73\x74\x29\x20\x3d\x20\x25\x64" "\x63\x70\x75\x5f\x69\x6e\x5f\x72\x70\x73\x5f\x6d\x61\x73\x6b\x20\x3d\x20\x25\x64\x20\x7c\x63\x70\x75\x20\x69\x73\x6f\x6c\x61\x74\x65\x64\x28\x64\x65\x73\x74\x29\x20\x3d\x20\x25\x64" @@ -503,9 +502,8 @@ long flags;struct DATARMNET9b44b71ee9*ep;if(DATARMNETc790ff30fc>= DATARMNETc6782fed88||DATARMNET208ea67e1d>=DATARMNETc6782fed88){ DATARMNET68d84e7b98[DATARMNET54b67b8a75]++;return(0xd2d+202-0xdf7);} spin_lock_irqsave(&DATARMNETec2a4f5211,flags);list_for_each_entry(ep,& -DATARMNET30a3e83974,DATARMNET0763436b8d){if(!ep)continue;if(!ep-> -DATARMNET4a4e6f66b5)continue;if(!DATARMNET769bbe36c6(DATARMNETc790ff30fc, -DATARMNET208ea67e1d,ep)){rm_err( +DATARMNET30a3e83974,DATARMNET0763436b8d){if(!ep->DATARMNET4a4e6f66b5)continue;if +(!DATARMNET769bbe36c6(DATARMNETc790ff30fc,DATARMNET208ea67e1d,ep)){rm_err( "\x53\x48\x53\x5f\x46\x44\x45\x53\x43\x3a\x20\x3e\x3e\x20\x43\x61\x6e\x6e\x6f\x74\x20\x6d\x6f\x76\x65\x20\x66\x6c\x6f\x77\x20\x30\x78\x25\x78\x20\x6f\x6e\x20\x65\x70" "\x20\x66\x72\x6f\x6d\x20\x63\x70\x75\x5b\x25\x64\x5d\x20\x74\x6f\x20\x63\x70\x75\x5b\x25\x64\x5d" ,DATARMNET4da4612f1e,DATARMNETc790ff30fc,DATARMNET208ea67e1d);continue;}if( @@ -549,9 +547,9 @@ DATARMNET69770f8ef7,DATARMNETf632b170b1->DATARMNET17380ba0f8,DATARMNETf632b170b1 ->DATARMNET14b0d18481,DATARMNETf632b170b1->DATARMNETae196235f2, DATARMNETf632b170b1->DATARMNET8b9956a3f9,cpu_isolated(DATARMNET42a992465f)); list_for_each_entry(DATARMNETd2a694d52a,&DATARMNET9825511866,DATARMNET6de26f0feb -){if(!DATARMNETd2a694d52a)continue;if(DATARMNETd2a694d52a->DATARMNET0dc393a345== -(0xd2d+202-0xdf7))continue;if(DATARMNETd2a694d52a->DATARMNET63b1a086d5){if( -DATARMNETd2a694d52a->DATARMNET7c894c2f8f==DATARMNET42a992465f)rm_err( +){if(DATARMNETd2a694d52a->DATARMNET0dc393a345==(0xd2d+202-0xdf7))continue;if( +DATARMNETd2a694d52a->DATARMNET63b1a086d5){if(DATARMNETd2a694d52a-> +DATARMNET7c894c2f8f==DATARMNET42a992465f)rm_err( "\x53\x48\x53\x5f\x43\x50\x55\x3a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3e\x20\x66\x6c\x6f\x77\x20\x30\x78\x25\x78\x20" "\x77\x69\x74\x68\x20\x70\x70\x73\x20\x25\x6c\x6c\x75\x20\x61\x76\x67\x5f\x70\x70\x73\x20\x25\x6c\x6c\x75\x20\x72\x78\x5f\x62\x70\x73\x20\x25\x6c\x6c\x75\x20" ,DATARMNETd2a694d52a->hash,DATARMNETd2a694d52a->DATARMNET324c1a8f98, @@ -566,7 +564,7 @@ DATARMNETb436c3f30b){rm_err("\x25\x73", );return;}rm_err("\x25\x73", "\x53\x48\x53\x5f\x47\x44\x4d\x41\x3a\x20\x4c\x69\x73\x74\x20\x6f\x66\x20\x73\x6f\x72\x74\x65\x64\x20\x67\x6f\x6c\x64\x20\x66\x6c\x6f\x77\x73\x3a" );list_for_each_entry(DATARMNET4238158b2a,DATARMNETb436c3f30b, -DATARMNETd502c0412a){if(!DATARMNET4238158b2a)continue;rm_err( +DATARMNETd502c0412a){rm_err( "\x53\x48\x53\x5f\x47\x44\x4d\x41\x3a\x20\x3e\x20\x66\x6c\x6f\x77\x20\x30\x78\x25\x78\x20\x77\x69\x74\x68\x20\x70\x70\x73\x20\x25\x6c\x6c\x75\x20\x6f\x6e\x20\x63\x70\x75\x5b\x25\x64\x5d" ,DATARMNET4238158b2a->hash,DATARMNET4238158b2a->DATARMNET324c1a8f98, DATARMNET4238158b2a->DATARMNET42a992465f);}}void DATARMNET7792d4f4ad(struct @@ -636,8 +634,8 @@ trace_rmnet_shs_wq_low(DATARMNET39a68a0eba,DATARMNETffec99a10f,ep-> DATARMNET7167e10d99[(0xd2d+202-0xdf7)],ep->DATARMNET7167e10d99[(0xd26+209-0xdf6) ],ep->DATARMNET7167e10d99[(0xd1f+216-0xdf5)],ep->DATARMNET847276e5af,ep,NULL); return;}void DATARMNET0a6fb12cb2(void){struct DATARMNET9b44b71ee9*ep=NULL; -list_for_each_entry(ep,&DATARMNET30a3e83974,DATARMNET0763436b8d){if(!ep)continue -;if(!ep->DATARMNET4a4e6f66b5)continue;DATARMNETe00453a3e4(ep);}}static int +list_for_each_entry(ep,&DATARMNET30a3e83974,DATARMNET0763436b8d){if(!ep-> +DATARMNET4a4e6f66b5)continue;DATARMNETe00453a3e4(ep);}}static int DATARMNET1154e4fac6(time_t time,int DATARMNET64bb8a8f57){int ret=false;if(time> DATARMNETa804c0b904)ret=true;else if(DATARMNET64bb8a8f57>DATARMNET1c2d76f636&& time>DATARMNET2922c89d50)ret=true;else if(DATARMNET64bb8a8f57> @@ -647,17 +645,17 @@ NULL;time_t DATARMNETf48008e7b6;unsigned long ht_flags;struct DATARMNET6c78e47d24*DATARMNETd2a694d52a=NULL;struct list_head* DATARMNET7b34b7b5be=NULL,*next=NULL;list_for_each_safe(DATARMNET7b34b7b5be,next, &DATARMNET9825511866){DATARMNETd2a694d52a=list_entry(DATARMNET7b34b7b5be,struct -DATARMNET6c78e47d24,DATARMNET6de26f0feb);if(DATARMNETd2a694d52a==NULL)continue; -if(DATARMNETd2a694d52a->DATARMNET63b1a086d5==NULL)continue;node_p= -DATARMNETd2a694d52a->DATARMNET63b1a086d5;DATARMNETf48008e7b6=DATARMNET36cfa76181 -(DATARMNETd2a694d52a->DATARMNET42ceaf5cc2);if(DATARMNET1154e4fac6( -DATARMNETf48008e7b6,DATARMNETecc0627c70.DATARMNET64bb8a8f57)|| -DATARMNETcd94e0d3c7){trace_rmnet_shs_wq_low(DATARMNET394831f22a, -DATARMNET5e2c5adaae,node_p->hash,DATARMNETf48008e7b6,(0x16e8+787-0xc0c), -(0x16e8+787-0xc0c),node_p,DATARMNETd2a694d52a);spin_lock_irqsave(& -DATARMNET3764d083f0,ht_flags);DATARMNET23c7ddd780(node_p,DATARMNET5b5927fd7e); -DATARMNET3669e7b703(DATARMNETd2a694d52a->DATARMNET7c894c2f8f);if(node_p){ -DATARMNETde8ee16f92(node_p);hash_del_rcu(&node_p->list);kfree(node_p);}rm_err( +DATARMNET6c78e47d24,DATARMNET6de26f0feb);if(DATARMNETd2a694d52a-> +DATARMNET63b1a086d5==NULL)continue;node_p=DATARMNETd2a694d52a-> +DATARMNET63b1a086d5;DATARMNETf48008e7b6=DATARMNET36cfa76181(DATARMNETd2a694d52a +->DATARMNET42ceaf5cc2);if(DATARMNET1154e4fac6(DATARMNETf48008e7b6, +DATARMNETecc0627c70.DATARMNET64bb8a8f57)||DATARMNETcd94e0d3c7){ +trace_rmnet_shs_wq_low(DATARMNET394831f22a,DATARMNET5e2c5adaae,node_p->hash, +DATARMNETf48008e7b6,(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),node_p, +DATARMNETd2a694d52a);spin_lock_irqsave(&DATARMNET3764d083f0,ht_flags); +DATARMNET23c7ddd780(node_p,DATARMNET5b5927fd7e);DATARMNET3669e7b703( +DATARMNETd2a694d52a->DATARMNET7c894c2f8f);if(node_p){DATARMNETde8ee16f92(node_p) +;hash_del_rcu(&node_p->list);kfree(node_p);}rm_err( "\x53\x48\x53\x5f\x46\x4c\x4f\x57\x3a\x20\x72\x65\x6d\x6f\x76\x69\x6e\x67\x20\x66\x6c\x6f\x77\x20\x30\x78\x25\x78\x20\x6f\x6e\x20\x63\x70\x75\x5b\x25\x64\x5d\x20" "\x70\x70\x73\x3a\x20\x25\x6c\x6c\x75\x20\x61\x76\x67\x5f\x70\x70\x73\x3a\x20\x25\x6c\x6c\x75" ,DATARMNETd2a694d52a->hash,DATARMNETd2a694d52a->DATARMNET7c894c2f8f, @@ -680,26 +678,26 @@ DATARMNET9fb369ce5f&(0xbf7+4405-0x1c3c);}void DATARMNETd6ee05f1b4(struct net_device*dev){struct DATARMNET9b44b71ee9*ep=NULL;struct DATARMNET9b44b71ee9* tmp=NULL;unsigned long flags;if(!dev){DATARMNET68d84e7b98[DATARMNETf5157a9b85]++ ;return;}spin_lock_irqsave(&DATARMNETec2a4f5211,flags);list_for_each_entry_safe( -ep,tmp,&DATARMNET30a3e83974,DATARMNET0763436b8d){if(!ep)continue;if(ep->ep==dev) -{ep->DATARMNET4a4e6f66b5=(0xd2d+202-0xdf7);DATARMNETf7d317ed55(ep);kfree(ep); -break;}}spin_unlock_irqrestore(&DATARMNETec2a4f5211,flags);}void -DATARMNET7492293980(struct net_device*dev){struct DATARMNET9b44b71ee9*ep=NULL; -unsigned long flags;if(!dev){DATARMNET68d84e7b98[DATARMNETf5157a9b85]++;return;} -spin_lock_irqsave(&DATARMNETec2a4f5211,flags);ep=kzalloc(sizeof(*ep),GFP_ATOMIC) -;if(!ep){DATARMNET68d84e7b98[DATARMNET40ceff078e]++;spin_unlock_irqrestore(& +ep,tmp,&DATARMNET30a3e83974,DATARMNET0763436b8d){if(ep->ep==dev){ep-> +DATARMNET4a4e6f66b5=(0xd2d+202-0xdf7);DATARMNETf7d317ed55(ep);kfree(ep);break;}} +spin_unlock_irqrestore(&DATARMNETec2a4f5211,flags);}void DATARMNET7492293980( +struct net_device*dev){struct DATARMNET9b44b71ee9*ep=NULL;unsigned long flags;if +(!dev){DATARMNET68d84e7b98[DATARMNETf5157a9b85]++;return;}spin_lock_irqsave(& +DATARMNETec2a4f5211,flags);ep=kzalloc(sizeof(*ep),GFP_ATOMIC);if(!ep){ +DATARMNET68d84e7b98[DATARMNET40ceff078e]++;spin_unlock_irqrestore(& DATARMNETec2a4f5211,flags);return;}ep->ep=dev;ep->DATARMNET4a4e6f66b5= (0xd26+209-0xdf6);INIT_LIST_HEAD(&ep->DATARMNET0763436b8d);DATARMNETe69c918dc8( ep);DATARMNET4095253347(ep);spin_unlock_irqrestore(&DATARMNETec2a4f5211,flags);} void DATARMNET039ac6d55d(void){struct DATARMNET9b44b71ee9*ep=NULL; -list_for_each_entry(ep,&DATARMNET30a3e83974,DATARMNET0763436b8d){if(!ep)continue -;if(!ep->DATARMNET4a4e6f66b5)continue;DATARMNETe69c918dc8(ep);ep-> -DATARMNET257fc4b2d4=(0xd2d+202-0xdf7);ep->DATARMNET4eb77c78e6=(0xd2d+202-0xdf7); -}}noinline void DATARMNETedc898218c(void){int cpu,DATARMNETc790ff30fc;int -DATARMNET421230d879;struct DATARMNET6c78e47d24*DATARMNETd2a694d52a=NULL;for(cpu= -(0xd2d+202-0xdf7);cpuDATARMNET0dc393a345==(0xd2d+202-0xdf7))continue;if( +list_for_each_entry(ep,&DATARMNET30a3e83974,DATARMNET0763436b8d){if(!ep-> +DATARMNET4a4e6f66b5)continue;DATARMNETe69c918dc8(ep);ep->DATARMNET257fc4b2d4= +(0xd2d+202-0xdf7);ep->DATARMNET4eb77c78e6=(0xd2d+202-0xdf7);}}noinline void +DATARMNETedc898218c(void){int cpu,DATARMNETc790ff30fc;int DATARMNET421230d879; +struct DATARMNET6c78e47d24*DATARMNETd2a694d52a=NULL;for(cpu=(0xd2d+202-0xdf7); +cpuDATARMNET0dc393a345==(0xd2d+202-0xdf7))continue;if( DATARMNETd2a694d52a->DATARMNET253a9fc708>DATARMNET832dcfb5f8&& DATARMNETd2a694d52a->DATARMNET4b4a76b094>DATARMNET59f7cb903f)if( DATARMNETd2a694d52a->DATARMNET7c894c2f8fDATARMNET0dc393a345== -(0xd2d+202-0xdf7))continue;if(DATARMNETd2a694d52a->DATARMNET63b1a086d5){ -DATARMNET9a7769cf21(DATARMNETd2a694d52a);DATARMNET5b2ed86112(DATARMNETd2a694d52a -);if(DATARMNETc252c204a8){if(DATARMNETd2a694d52a->DATARMNET63b1a086d5-> +DATARMNETd2a694d52a,&DATARMNET9825511866,DATARMNET6de26f0feb){if( +DATARMNETd2a694d52a->DATARMNET0dc393a345==(0xd2d+202-0xdf7))continue;if( +DATARMNETd2a694d52a->DATARMNET63b1a086d5){DATARMNET9a7769cf21( +DATARMNETd2a694d52a);DATARMNET5b2ed86112(DATARMNETd2a694d52a);if( +DATARMNETc252c204a8){if(DATARMNETd2a694d52a->DATARMNET63b1a086d5-> DATARMNETa1099c74fe==(0xd2d+202-0xdf7)){DATARMNET6f4b0915d3(DATARMNETd2a694d52a, &DATARMNET3208cd0982);}if(!DATARMNET362b15f941(DATARMNETd2a694d52a-> DATARMNET7c894c2f8f)){DATARMNET24e4475345(DATARMNETd2a694d52a,& @@ -747,8 +745,8 @@ DATARMNET848d2ddfa7,(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),(0x16e8+787-0xc0c), (0x16e8+787-0xc0c),NULL,NULL);}void DATARMNET5fb4151598(void){struct DATARMNET9b44b71ee9*ep=NULL;struct list_head*DATARMNET7b34b7b5be=NULL,*next=NULL ;list_for_each_safe(DATARMNET7b34b7b5be,next,&DATARMNET30a3e83974){ep=list_entry -(DATARMNET7b34b7b5be,struct DATARMNET9b44b71ee9,DATARMNET0763436b8d);if(!ep) -continue;trace_rmnet_shs_wq_high(DATARMNET5e796836fb,DATARMNET1ee5d0565d, +(DATARMNET7b34b7b5be,struct DATARMNET9b44b71ee9,DATARMNET0763436b8d); +trace_rmnet_shs_wq_high(DATARMNET5e796836fb,DATARMNET1ee5d0565d, (0x16e8+787-0xc0c),(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),ep, NULL);DATARMNETf7d317ed55(ep);kfree(ep);}}void DATARMNETf7dcab9a9e(void){if(! DATARMNETf141197982||!DATARMNET9dc7755be5)return;DATARMNET28d33bd09f(); diff --git a/shs/rmnet_shs_wq_mem.c b/shs/rmnet_shs_wq_mem.c index 1a5abee23948..58cd61735563 100644 --- a/shs/rmnet_shs_wq_mem.c +++ b/shs/rmnet_shs_wq_mem.c @@ -261,26 +261,25 @@ DATARMNETa52c09a590*DATARMNET0f551e8a47;struct list_head*DATARMNET7b34b7b5be,* next;if(!DATARMNETf0fb155a9c){DATARMNET68d84e7b98[DATARMNETac729c3d29]++;return; }list_for_each_safe(DATARMNET7b34b7b5be,next,DATARMNETf0fb155a9c){ DATARMNET0f551e8a47=list_entry(DATARMNET7b34b7b5be,struct DATARMNETa52c09a590, -DATARMNET6f898987df);if(!DATARMNET0f551e8a47)continue;list_del_init(& -DATARMNET0f551e8a47->DATARMNET6f898987df);kfree(DATARMNET0f551e8a47);}}void -DATARMNET24e4475345(struct DATARMNET6c78e47d24*DATARMNETd2a694d52a,struct -list_head*DATARMNETb436c3f30b){struct DATARMNET09a412b1c6*DATARMNET4238158b2a;if -(!DATARMNETd2a694d52a||!DATARMNETb436c3f30b){DATARMNET68d84e7b98[ -DATARMNETac729c3d29]++;return;}if(!DATARMNET362b15f941(DATARMNETd2a694d52a-> -DATARMNET7c894c2f8f)){DATARMNET4238158b2a=kzalloc(sizeof(*DATARMNET4238158b2a), -GFP_ATOMIC);if(DATARMNET4238158b2a!=NULL){DATARMNET4238158b2a-> -DATARMNET253a9fc708=DATARMNETd2a694d52a->DATARMNET253a9fc708;DATARMNET4238158b2a -->DATARMNET42a992465f=DATARMNETd2a694d52a->DATARMNET7c894c2f8f; -DATARMNET4238158b2a->hash=DATARMNETd2a694d52a->hash;DATARMNET4238158b2a-> -DATARMNET324c1a8f98=DATARMNETd2a694d52a->DATARMNET324c1a8f98;list_add(& -DATARMNET4238158b2a->DATARMNETd502c0412a,DATARMNETb436c3f30b);}else{ -DATARMNET68d84e7b98[DATARMNET6533f70c87]++;}}}void DATARMNETa1b141715b(struct -list_head*DATARMNETb436c3f30b){struct DATARMNET09a412b1c6*DATARMNET4238158b2a; -struct list_head*DATARMNET7b34b7b5be,*next;if(!DATARMNETb436c3f30b){ -DATARMNET68d84e7b98[DATARMNETac729c3d29]++;return;}list_for_each_safe( -DATARMNET7b34b7b5be,next,DATARMNETb436c3f30b){DATARMNET4238158b2a=list_entry( -DATARMNET7b34b7b5be,struct DATARMNET09a412b1c6,DATARMNETd502c0412a);if(! -DATARMNET4238158b2a)continue;list_del_init(&DATARMNET4238158b2a-> +DATARMNET6f898987df);list_del_init(&DATARMNET0f551e8a47->DATARMNET6f898987df); +kfree(DATARMNET0f551e8a47);}}void DATARMNET24e4475345(struct DATARMNET6c78e47d24 +*DATARMNETd2a694d52a,struct list_head*DATARMNETb436c3f30b){struct +DATARMNET09a412b1c6*DATARMNET4238158b2a;if(!DATARMNETd2a694d52a||! +DATARMNETb436c3f30b){DATARMNET68d84e7b98[DATARMNETac729c3d29]++;return;}if(! +DATARMNET362b15f941(DATARMNETd2a694d52a->DATARMNET7c894c2f8f)){ +DATARMNET4238158b2a=kzalloc(sizeof(*DATARMNET4238158b2a),GFP_ATOMIC);if( +DATARMNET4238158b2a!=NULL){DATARMNET4238158b2a->DATARMNET253a9fc708= +DATARMNETd2a694d52a->DATARMNET253a9fc708;DATARMNET4238158b2a-> +DATARMNET42a992465f=DATARMNETd2a694d52a->DATARMNET7c894c2f8f;DATARMNET4238158b2a +->hash=DATARMNETd2a694d52a->hash;DATARMNET4238158b2a->DATARMNET324c1a8f98= +DATARMNETd2a694d52a->DATARMNET324c1a8f98;list_add(&DATARMNET4238158b2a-> +DATARMNETd502c0412a,DATARMNETb436c3f30b);}else{DATARMNET68d84e7b98[ +DATARMNET6533f70c87]++;}}}void DATARMNETa1b141715b(struct list_head* +DATARMNETb436c3f30b){struct DATARMNET09a412b1c6*DATARMNET4238158b2a;struct +list_head*DATARMNET7b34b7b5be,*next;if(!DATARMNETb436c3f30b){DATARMNET68d84e7b98 +[DATARMNETac729c3d29]++;return;}list_for_each_safe(DATARMNET7b34b7b5be,next, +DATARMNETb436c3f30b){DATARMNET4238158b2a=list_entry(DATARMNET7b34b7b5be,struct +DATARMNET09a412b1c6,DATARMNETd502c0412a);list_del_init(&DATARMNET4238158b2a-> DATARMNETd502c0412a);kfree(DATARMNET4238158b2a);}}void DATARMNETc6439e3d71( struct DATARMNETc8fdbf9c85*DATARMNET7bea4a06a6,struct DATARMNET228056d4b7* DATARMNETf632b170b1,struct list_head*DATARMNETe46ae760db){u64 @@ -312,22 +311,22 @@ DATARMNET47a6995138*DATARMNETace28a2c7f;struct list_head*DATARMNET7b34b7b5be,* next;if(!DATARMNETe46ae760db){DATARMNET68d84e7b98[DATARMNETac729c3d29]++;return; }list_for_each_safe(DATARMNET7b34b7b5be,next,DATARMNETe46ae760db){ DATARMNETace28a2c7f=list_entry(DATARMNET7b34b7b5be,struct DATARMNET47a6995138, -DATARMNET02523bfb57);if(!DATARMNETace28a2c7f)continue;list_del_init(& -DATARMNETace28a2c7f->DATARMNET02523bfb57);kfree(DATARMNETace28a2c7f);}}void -DATARMNET6f4b0915d3(struct DATARMNET6c78e47d24*DATARMNETd2a694d52a,struct -list_head*DATARMNET3208cd0982){struct DATARMNET13c47d154e*DATARMNETf02b2a5be7;if -(!DATARMNETd2a694d52a||!DATARMNET3208cd0982){DATARMNET68d84e7b98[ -DATARMNETac729c3d29]++;return;}DATARMNETf02b2a5be7=kzalloc(sizeof(* -DATARMNETf02b2a5be7),GFP_ATOMIC);if(DATARMNETf02b2a5be7!=NULL&& -DATARMNETd2a694d52a->DATARMNET63b1a086d5!=NULL){DATARMNETf02b2a5be7-> -DATARMNET253a9fc708=DATARMNETd2a694d52a->DATARMNET253a9fc708;DATARMNETf02b2a5be7 -->DATARMNET42a992465f=DATARMNETd2a694d52a->DATARMNET7c894c2f8f; -DATARMNETf02b2a5be7->hash=DATARMNETd2a694d52a->hash;DATARMNETf02b2a5be7-> -DATARMNET324c1a8f98=DATARMNETd2a694d52a->DATARMNET324c1a8f98;DATARMNETf02b2a5be7 -->DATARMNETbb80fccd97=DATARMNETd2a694d52a->DATARMNETbb80fccd97; -DATARMNETf02b2a5be7->trans_proto=DATARMNETd2a694d52a->DATARMNET1e9d25d9ff; -DATARMNETf02b2a5be7->mux_id=DATARMNETd2a694d52a->mux_id;DATARMNETf02b2a5be7-> -DATARMNET95266642d1=DATARMNETd2a694d52a->DATARMNET95266642d1;rm_err( +DATARMNET02523bfb57);list_del_init(&DATARMNETace28a2c7f->DATARMNET02523bfb57); +kfree(DATARMNETace28a2c7f);}}void DATARMNET6f4b0915d3(struct DATARMNET6c78e47d24 +*DATARMNETd2a694d52a,struct list_head*DATARMNET3208cd0982){struct +DATARMNET13c47d154e*DATARMNETf02b2a5be7;if(!DATARMNETd2a694d52a||! +DATARMNET3208cd0982){DATARMNET68d84e7b98[DATARMNETac729c3d29]++;return;} +DATARMNETf02b2a5be7=kzalloc(sizeof(*DATARMNETf02b2a5be7),GFP_ATOMIC);if( +DATARMNETf02b2a5be7!=NULL&&DATARMNETd2a694d52a->DATARMNET63b1a086d5!=NULL){ +DATARMNETf02b2a5be7->DATARMNET253a9fc708=DATARMNETd2a694d52a-> +DATARMNET253a9fc708;DATARMNETf02b2a5be7->DATARMNET42a992465f=DATARMNETd2a694d52a +->DATARMNET7c894c2f8f;DATARMNETf02b2a5be7->hash=DATARMNETd2a694d52a->hash; +DATARMNETf02b2a5be7->DATARMNET324c1a8f98=DATARMNETd2a694d52a-> +DATARMNET324c1a8f98;DATARMNETf02b2a5be7->DATARMNETbb80fccd97=DATARMNETd2a694d52a +->DATARMNETbb80fccd97;DATARMNETf02b2a5be7->trans_proto=DATARMNETd2a694d52a-> +DATARMNET1e9d25d9ff;DATARMNETf02b2a5be7->mux_id=DATARMNETd2a694d52a->mux_id; +DATARMNETf02b2a5be7->DATARMNET95266642d1=DATARMNETd2a694d52a-> +DATARMNET95266642d1;rm_err( "\x53\x48\x53\x5f\x46\x4d\x55\x58\x3a\x20\x6d\x75\x78\x20\x69\x64\x20\x66\x6f\x72\x20\x66\x66\x20\x68\x61\x73\x68\x20\x30\x78\x25\x78\x20\x69\x73\x20\x25\x64\x20\x74\x70\x20\x25\x64" ,DATARMNETf02b2a5be7->hash,DATARMNETf02b2a5be7->mux_id,DATARMNETf02b2a5be7-> trans_proto);memcpy(&DATARMNETf02b2a5be7->ip_hdr,&DATARMNETd2a694d52a-> @@ -341,17 +340,15 @@ DATARMNET13c47d154e*DATARMNETf02b2a5be7;struct list_head*DATARMNET7b34b7b5be,* next;if(!DATARMNET3208cd0982){DATARMNET68d84e7b98[DATARMNETac729c3d29]++;return; }list_for_each_safe(DATARMNET7b34b7b5be,next,DATARMNET3208cd0982){ DATARMNETf02b2a5be7=list_entry(DATARMNET7b34b7b5be,struct DATARMNET13c47d154e, -DATARMNETec0e3cb8f0);if(!DATARMNETf02b2a5be7)continue;list_del_init(& -DATARMNETf02b2a5be7->DATARMNETec0e3cb8f0);kfree(DATARMNETf02b2a5be7);}}void -DATARMNET5157210c44(struct list_head*DATARMNETe46ae760db){struct -DATARMNET47a6995138*DATARMNETace28a2c7f;uint16_t idx=(0xd2d+202-0xdf7);if(! -DATARMNETe46ae760db){rm_err("\x25\x73", +DATARMNETec0e3cb8f0);list_del_init(&DATARMNETf02b2a5be7->DATARMNETec0e3cb8f0); +kfree(DATARMNETf02b2a5be7);}}void DATARMNET5157210c44(struct list_head* +DATARMNETe46ae760db){struct DATARMNET47a6995138*DATARMNETace28a2c7f;uint16_t idx +=(0xd2d+202-0xdf7);if(!DATARMNETe46ae760db){rm_err("\x25\x73", "\x53\x48\x53\x5f\x53\x43\x41\x50\x53\x3a\x20\x43\x50\x55\x20\x43\x61\x70\x61\x63\x69\x74\x69\x65\x73\x20\x4c\x69\x73\x74\x20\x69\x73\x20\x4e\x55\x4c\x4c" );return;}rm_err("\x25\x73", "\x53\x48\x53\x5f\x53\x43\x41\x50\x53\x3a\x20\x53\x6f\x72\x74\x65\x64\x20\x43\x50\x55\x20\x43\x61\x70\x61\x63\x69\x74\x69\x65\x73\x3a" );list_for_each_entry(DATARMNETace28a2c7f,DATARMNETe46ae760db, -DATARMNET02523bfb57){if(!DATARMNETace28a2c7f)continue;if(idx>= -DATARMNETc6782fed88)break;rm_err( +DATARMNET02523bfb57){if(idx>=DATARMNETc6782fed88)break;rm_err( "\x53\x48\x53\x5f\x53\x43\x41\x50\x53\x3a\x20\x3e\x20\x63\x70\x75\x5b\x25\x64\x5d\x20\x77\x69\x74\x68\x20\x70\x70\x73\x20\x63\x61\x70\x61\x63\x69\x74\x79\x20\x3d\x20\x25\x6c\x6c\x75\x20\x7c\x20" "\x61\x76\x67\x20\x70\x70\x73\x20\x63\x61\x70\x20\x3d\x20\x25\x6c\x6c\x75\x20\x62\x70\x73\x20\x3d\x20\x25\x6c\x6c\x75" ,DATARMNETace28a2c7f->DATARMNET42a992465f,DATARMNETace28a2c7f-> @@ -375,9 +372,8 @@ DATARMNETb436c3f30b){rm_err("\x25\x73", );return;}rm_err("\x25\x73", "\x53\x48\x53\x5f\x53\x47\x4f\x4c\x44\x3a\x20\x4c\x69\x73\x74\x20\x6f\x66\x20\x73\x6f\x72\x74\x65\x64\x20\x67\x6f\x6c\x64\x20\x66\x6c\x6f\x77\x73\x3a" );list_for_each_entry(DATARMNET4238158b2a,DATARMNETb436c3f30b, -DATARMNETd502c0412a){if(!DATARMNET4238158b2a)continue;if(DATARMNET4238158b2a-> -DATARMNET324c1a8f98==(0xd2d+202-0xdf7)){continue;}if(idx>=DATARMNET75c69edb82){ -break;}rm_err( +DATARMNETd502c0412a){if(DATARMNET4238158b2a->DATARMNET324c1a8f98== +(0xd2d+202-0xdf7)){continue;}if(idx>=DATARMNET75c69edb82){break;}rm_err( "\x53\x48\x53\x5f\x53\x47\x4f\x4c\x44\x3a\x20\x3e\x20\x66\x6c\x6f\x77\x20\x30\x78\x25\x78\x20\x77\x69\x74\x68\x20\x70\x70\x73\x20\x25\x6c\x6c\x75\x20\x6f\x6e\x20\x63\x70\x75\x5b\x25\x64\x5d" ,DATARMNET4238158b2a->hash,DATARMNET4238158b2a->DATARMNET324c1a8f98, DATARMNET4238158b2a->DATARMNET42a992465f);DATARMNETcde08f6e7d+=(0xd26+209-0xdf6) @@ -402,9 +398,8 @@ DATARMNETf0fb155a9c){rm_err("\x25\x73", );return;}rm_err("\x25\x73", "\x53\x48\x53\x5f\x53\x4c\x4f\x57\x3a\x20\x4c\x69\x73\x74\x20\x6f\x66\x20\x73\x6f\x72\x74\x65\x64\x20\x73\x73\x20\x66\x6c\x6f\x77\x73\x3a" );list_for_each_entry(DATARMNET0f551e8a47,DATARMNETf0fb155a9c, -DATARMNET6f898987df){if(!DATARMNET0f551e8a47)continue;if(DATARMNET0f551e8a47-> -DATARMNET324c1a8f98==(0xd2d+202-0xdf7)){continue;}if(idx>=DATARMNET75c69edb82){ -break;}rm_err( +DATARMNET6f898987df){if(DATARMNET0f551e8a47->DATARMNET324c1a8f98== +(0xd2d+202-0xdf7)){continue;}if(idx>=DATARMNET75c69edb82){break;}rm_err( "\x53\x48\x53\x5f\x53\x4c\x4f\x57\x3a\x20\x3e\x20\x66\x6c\x6f\x77\x20\x30\x78\x25\x78\x20\x77\x69\x74\x68\x20\x70\x70\x73\x20\x25\x6c\x6c\x75\x20\x6f\x6e\x20\x63\x70\x75\x5b\x25\x64\x5d" ,DATARMNET0f551e8a47->hash,DATARMNET0f551e8a47->DATARMNET324c1a8f98, DATARMNET0f551e8a47->DATARMNET42a992465f);DATARMNET6d96003717+=(0xd26+209-0xdf6) @@ -431,9 +426,8 @@ DATARMNET3208cd0982){rm_err("\x25\x73", );return;}rm_err("\x25\x73", "\x53\x48\x53\x5f\x54\x4f\x50\x3a\x20\x4c\x69\x73\x74\x20\x6f\x66\x20\x54\x4f\x50\x20\x66\x69\x6c\x74\x65\x72\x20\x66\x6c\x6f\x77\x73\x3a" );list_for_each_entry(DATARMNETf02b2a5be7,DATARMNET3208cd0982, -DATARMNETec0e3cb8f0){if(!DATARMNETf02b2a5be7)continue;if(DATARMNETf02b2a5be7-> -DATARMNET324c1a8f98==(0xd2d+202-0xdf7)){continue;}if(idx>=DATARMNET67578af78f){ -break;}rm_err( +DATARMNETec0e3cb8f0){if(DATARMNETf02b2a5be7->DATARMNET324c1a8f98== +(0xd2d+202-0xdf7)){continue;}if(idx>=DATARMNET67578af78f){break;}rm_err( "\x53\x48\x53\x5f\x54\x4f\x50\x3a\x20\x3e\x20\x66\x6c\x6f\x77\x20\x30\x78\x25\x78\x20\x77\x69\x74\x68\x20\x70\x70\x73\x20\x25\x6c\x6c\x75\x20\x6f\x6e\x20\x63\x70\x75\x5b\x25\x64\x5d" ,DATARMNETf02b2a5be7->hash,DATARMNETf02b2a5be7->DATARMNET324c1a8f98, DATARMNETf02b2a5be7->DATARMNET42a992465f);DATARMNETd31ee74d2e+=(0xd26+209-0xdf6) @@ -465,7 +459,7 @@ struct rmnet_priv*priv;struct DATARMNET9b44b71ee9*ep=NULL;u16 idx= ,idx);list_for_each_entry(ep,&DATARMNET30a3e83974,DATARMNET0763436b8d){count+= (0xd26+209-0xdf6);rm_err( "\x53\x48\x53\x5f\x4e\x45\x54\x44\x45\x56\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x65\x6e\x74\x65\x72\x20\x65\x70\x20\x25\x75" "\n" -,count);if(!ep)continue;if(!ep->DATARMNET4a4e6f66b5){rm_err( +,count);if(!ep->DATARMNET4a4e6f66b5){rm_err( "\x53\x48\x53\x5f\x4e\x45\x54\x44\x45\x56\x3a\x20\x65\x70\x20\x25\x75\x20\x69\x73\x20\x4e\x4f\x54\x20\x61\x63\x74\x69\x76\x65" "\n" ,count);continue;}rm_err( "\x53\x48\x53\x5f\x4e\x45\x54\x44\x45\x56\x3a\x20\x65\x70\x20\x25\x75\x20\x69\x73\x20\x61\x63\x74\x69\x76\x65\x20\x61\x6e\x64\x20\x6e\x6f\x74\x20\x6e\x75\x6c\x6c" "\n" From 6e8755c91a5d9984a2afdf5b72dc1bed8e283108 Mon Sep 17 00:00:00 2001 From: Sean Tranchetti Date: Fri, 31 Jul 2020 15:12:08 -0600 Subject: [PATCH 15/36] rmnet_offload: I0ddf3ff046f1b93fc19bb85b18d040c343b99f73 Updates the module to version I0ddf3ff046f1b93fc19bb85b18d040c343b99f73. Change-Id: Ibf67350b73a2c65a3177db82fff022f704c9a840 Signed-off-by: Sean Tranchetti --- offload/rmnet_offload_main.c | 2 ++ offload/rmnet_offload_state.c | 12 ++++++------ 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/offload/rmnet_offload_main.c b/offload/rmnet_offload_main.c index 07cba931d05b..aecf17332a65 100644 --- a/offload/rmnet_offload_main.c +++ b/offload/rmnet_offload_main.c @@ -29,6 +29,8 @@ static const char*DATARMNET9be3ddbe97[]__always_unused={ "\x49\x36\x61\x62\x39\x37\x30\x65\x36\x62\x65\x65\x34\x33\x39\x34\x63\x36\x31\x30\x33\x38\x31\x62\x62\x38\x39\x66\x36\x33\x36\x31\x61\x34\x66\x30\x33\x36\x63\x66\x30" , "\x49\x38\x63\x31\x65\x62\x39\x62\x63\x35\x37\x36\x33\x33\x66\x34\x33\x63\x30\x38\x64\x32\x66\x62\x35\x35\x37\x32\x37\x34\x65\x61\x33\x31\x36\x65\x35\x66\x61\x30\x63" +, +"\x49\x30\x64\x64\x66\x33\x66\x66\x30\x34\x36\x66\x31\x62\x39\x33\x66\x63\x31\x39\x62\x62\x38\x35\x62\x31\x38\x64\x30\x34\x30\x63\x33\x34\x33\x62\x39\x39\x66\x37\x33" ,};static DEFINE_SPINLOCK(DATARMNET0b5e447f18);static u32 DATARMNETcb7325e02d( struct DATARMNETd812bcdbb5*DATARMNET458b70e7e5){__be32 DATARMNETdfd47b00ff[ (0xd20+231-0xdfc)];u32 DATARMNET5ebf661879;__be16 DATARMNET08e913477e= diff --git a/offload/rmnet_offload_state.c b/offload/rmnet_offload_state.c index 9c268be6257c..1cb4c53b4999 100644 --- a/offload/rmnet_offload_state.c +++ b/offload/rmnet_offload_state.c @@ -73,10 +73,10 @@ rmnet_port*DATARMNETf0d9de7e2f;struct rmnet_priv*DATARMNETe823dcf978;int DATARMNETb14e52a504;(void)DATARMNET272c159b3c;if(!DATARMNET00dcb79bc4||strncmp( DATARMNET00dcb79bc4->name,"\x72\x6d\x6e\x65\x74\x5f\x64\x61\x74\x61", (0xd27+224-0xdfd)))goto DATARMNETaabe3a05f8;switch(DATARMNET4abd997295){case -NETDEV_REGISTER:if(DATARMNETe05748b000||DATARMNET19eb0de3b2()){ -DATARMNETe05748b000->DATARMNETcb2b3ae8e4++;goto DATARMNETaabe3a05f8;} -DATARMNETe823dcf978=netdev_priv(DATARMNET00dcb79bc4);DATARMNETf0d9de7e2f= -rmnet_get_port(DATARMNETe823dcf978->real_dev);if(!DATARMNETf0d9de7e2f){pr_err( +NETDEV_REGISTER:if(DATARMNETe05748b000){DATARMNETe05748b000->DATARMNETcb2b3ae8e4 +++;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__,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" @@ -84,8 +84,8 @@ rmnet_get_port(DATARMNETe823dcf978->real_dev);if(!DATARMNETf0d9de7e2f){pr_err( 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 DATARMNETaabe3a05f8;}break;case NETDEV_UNREGISTER:if(! -DATARMNETe05748b000||!DATARMNET19eb0de3b2())goto DATARMNETaabe3a05f8;if(-- -DATARMNETe05748b000->DATARMNETcb2b3ae8e4)goto DATARMNETaabe3a05f8;pr_info( +DATARMNETe05748b000)goto DATARMNETaabe3a05f8;if(--DATARMNETe05748b000-> +DATARMNETcb2b3ae8e4)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__,DATARMNET00dcb79bc4->name);DATARMNET345f805b34();break;} DATARMNETaabe3a05f8:return NOTIFY_DONE;}static struct notifier_block From 0c50888f557a37878ac79da7783f829e4d11d44a Mon Sep 17 00:00:00 2001 From: Sean Tranchetti Date: Wed, 12 Aug 2020 11:57:02 -0600 Subject: [PATCH 16/36] rmnet_offload: I3b610754322af090fe9ae14aa18a5340fba866db Updates the module to version I3b610754322af090fe9ae14aa18a5340fba866db. Change-Id: If57af0d1978000a1e8ccc532b7e3e7692db0ea36 Signed-off-by: Sean Tranchetti --- offload/rmnet_offload_main.c | 40 +++++++++++++++++------------------ offload/rmnet_offload_state.c | 16 ++++++-------- 2 files changed, 26 insertions(+), 30 deletions(-) diff --git a/offload/rmnet_offload_main.c b/offload/rmnet_offload_main.c index aecf17332a65..bf7a0e1412dc 100644 --- a/offload/rmnet_offload_main.c +++ b/offload/rmnet_offload_main.c @@ -31,6 +31,8 @@ static const char*DATARMNET9be3ddbe97[]__always_unused={ "\x49\x38\x63\x31\x65\x62\x39\x62\x63\x35\x37\x36\x33\x33\x66\x34\x33\x63\x30\x38\x64\x32\x66\x62\x35\x35\x37\x32\x37\x34\x65\x61\x33\x31\x36\x65\x35\x66\x61\x30\x63" , "\x49\x30\x64\x64\x66\x33\x66\x66\x30\x34\x36\x66\x31\x62\x39\x33\x66\x63\x31\x39\x62\x62\x38\x35\x62\x31\x38\x64\x30\x34\x30\x63\x33\x34\x33\x62\x39\x39\x66\x37\x33" +, +"\x49\x33\x62\x36\x31\x30\x37\x35\x34\x33\x32\x32\x61\x66\x30\x39\x30\x66\x65\x39\x61\x65\x31\x34\x61\x61\x31\x38\x61\x35\x33\x34\x30\x66\x62\x61\x38\x36\x36\x64\x62" ,};static DEFINE_SPINLOCK(DATARMNET0b5e447f18);static u32 DATARMNETcb7325e02d( struct DATARMNETd812bcdbb5*DATARMNET458b70e7e5){__be32 DATARMNETdfd47b00ff[ (0xd20+231-0xdfc)];u32 DATARMNET5ebf661879;__be16 DATARMNET08e913477e= @@ -170,26 +172,22 @@ 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) +DATARMNET9292bebdd3(void*DATARMNETf0d9de7e2f){}void DATARMNETb7e47d7254(void* +DATARMNETf0d9de7e2f){}void DATARMNET95e1703026(struct rmnet_map_dl_ind_hdr* +DATARMNET7c7748ef7a,struct rmnet_map_control_command_header*DATARMNET8b07ee3e82) {struct DATARMNET70f3b87b5d*DATARMNETe05748b000=DATARMNETc2a630b113();(void) DATARMNET8b07ee3e82;if(DATARMNETe05748b000->DATARMNETa9f2b2f677. -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);} +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_state.c b/offload/rmnet_offload_state.c index 1cb4c53b4999..e5c1072a04a0 100644 --- a/offload/rmnet_offload_state.c +++ b/offload/rmnet_offload_state.c @@ -46,16 +46,14 @@ 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( +DATARMNETf0d9de7e2f,DATARMNET8633ae8f1e)){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{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 DATARMNETb14e52a504;}static int DATARMNET9f53d54812(struct -rmnet_port*DATARMNETf0d9de7e2f){int DATARMNETb14e52a504;DATARMNETe05748b000= -kzalloc(sizeof(*DATARMNETe05748b000),GFP_KERNEL);if(!DATARMNETe05748b000){pr_err -( +,__func__);}else{DATARMNET87b015f76f->DATARMNETc2832b8f85=true;}} +DATARMNETd4230b6bfe();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 DATARMNETb881657565;}DATARMNETe05748b000->DATARMNET403589239f= DATARMNETf0d9de7e2f;DATARMNETb14e52a504=DATARMNETdbcaf01255();if( From 11beb3d48169531c66fe73afc4f5e8bf0f8467a8 Mon Sep 17 00:00:00 2001 From: Sean Tranchetti Date: Mon, 17 Aug 2020 15:31:45 -0600 Subject: [PATCH 17/36] rmnet_offload: I5146b3a016ef65b3e645138d1481f755cf1134a2 Updates the module to version I5146b3a016ef65b3e645138d1481f755cf1134a2. Change-Id: I8cd4cf63a7e78c6f291f6065857eb9b1a441db44 Signed-off-by: Sean Tranchetti --- offload/rmnet_offload_engine.c | 191 ++++++++++++------------- offload/rmnet_offload_engine.h | 29 ++-- offload/rmnet_offload_main.c | 253 ++++++++++++++++++++------------- offload/rmnet_offload_main.h | 15 +- offload/rmnet_offload_tcp.c | 94 ++++++------ 5 files changed, 312 insertions(+), 270 deletions(-) diff --git a/offload/rmnet_offload_engine.c b/offload/rmnet_offload_engine.c index ff75b7ec5477..1bd76a071a7b 100644 --- a/offload/rmnet_offload_engine.c +++ b/offload/rmnet_offload_engine.c @@ -28,10 +28,10 @@ DATARMNET1993bae165(u8 DATARMNET06d2413ad2){struct DATARMNETd7c9631acd* DATARMNET7c382e536d;int DATARMNETae0201901a;u32 DATARMNET737bbd41c3= (0xd2d+202-0xdf7);hash_for_each(DATARMNET4791268d67,DATARMNETae0201901a, DATARMNET7c382e536d,DATARMNETbd5d7d96d8){if(DATARMNET7c382e536d-> -DATARMNET1db11fa85e&&DATARMNET7c382e536d->DATARMNET550ca047ee== -DATARMNET06d2413ad2){DATARMNET737bbd41c3++;DATARMNETa3055c21f2( -DATARMNET7c382e536d);}}return DATARMNET737bbd41c3;}static bool -DATARMNET2013036d80(u8 DATARMNET06d2413ad2){u64 DATARMNET3924f3f9e3; +DATARMNET1db11fa85e&&DATARMNET7c382e536d->DATARMNET78fd20ce0e. +DATARMNET7fa8b2acbf==DATARMNET06d2413ad2){DATARMNET737bbd41c3++; +DATARMNETa3055c21f2(DATARMNET7c382e536d);}}return DATARMNET737bbd41c3;}static +bool DATARMNET2013036d80(u8 DATARMNET06d2413ad2){u64 DATARMNET3924f3f9e3; DATARMNET3924f3f9e3=DATARMNETf1d1b8287f(DATARMNET6d2ed4b822);if( DATARMNET3924f3f9e3==DATARMNET2d89680280)return true;if(DATARMNET3924f3f9e3== DATARMNET03daf91a60&&DATARMNET06d2413ad2==DATARMNETfd5c3d30e5)return true;if( @@ -39,48 +39,42 @@ DATARMNET3924f3f9e3==DATARMNET88a9920663&&DATARMNET06d2413ad2== DATARMNETa656f324b2)return true;return false;}static bool DATARMNET5a0f9fc3a2( struct DATARMNETd7c9631acd*DATARMNETaa568481cf,struct DATARMNETd812bcdbb5* DATARMNET5fe4c722a8){if(!DATARMNETaa568481cf->DATARMNET1db11fa85e)return false; -if(DATARMNET5fe4c722a8->DATARMNETaebe0581f2==(0xd11+230-0xdf3)){struct -DATARMNET308c06fca6*DATARMNET699c2c62cd,*DATARMNET8814564ab9;DATARMNET699c2c62cd -=DATARMNETaa568481cf->DATARMNETc1529262df;DATARMNET8814564ab9= -DATARMNET5fe4c722a8->DATARMNET1469d7a840;if(DATARMNET699c2c62cd-> -DATARMNET1eb6c27583^DATARMNET8814564ab9->DATARMNET1eb6c27583|| -DATARMNET699c2c62cd->DATARMNET03e081f69f^DATARMNET8814564ab9-> -DATARMNET03e081f69f||DATARMNET699c2c62cd->DATARMNET2c091223da^ -DATARMNET8814564ab9->DATARMNET2c091223da||DATARMNET699c2c62cd-> -DATARMNET610d06a887^DATARMNET8814564ab9->DATARMNET610d06a887)return true;}else -if(DATARMNET5fe4c722a8->DATARMNETaebe0581f2==(0xd03+244-0xdf1)){__be32 -DATARMNET25ffacbec5,DATARMNETb351dd927f;__be32 DATARMNET9422f16113; -DATARMNET25ffacbec5=DATARMNETaa568481cf->DATARMNET6f0af6e7b3-> -DATARMNET0687f7ecdc;DATARMNETb351dd927f=DATARMNET5fe4c722a8->DATARMNET5559b05582 -->DATARMNET0687f7ecdc;DATARMNET9422f16113=DATARMNET25ffacbec5^ -DATARMNETb351dd927f;if(DATARMNET9422f16113&htonl(267386880))return true;}return -false;}static bool DATARMNET6895620058(struct DATARMNETd7c9631acd* -DATARMNETaa568481cf,struct DATARMNETd812bcdbb5*DATARMNET5fe4c722a8){__be16 -DATARMNETe085e1d838,DATARMNET487536824f,DATARMNETa664f6ed60,DATARMNET49b96367a2; -if(!DATARMNETaa568481cf->DATARMNET1db11fa85e)return DATARMNETaa568481cf-> -DATARMNET381f1cadc4==DATARMNET5fe4c722a8->DATARMNET645e8912b8;if( -DATARMNETaa568481cf->DATARMNET550ca047ee!=DATARMNET5fe4c722a8-> -DATARMNET098910da0f)return false;DATARMNETe085e1d838=DATARMNETaa568481cf-> -DATARMNET8600531f31->DATARMNET1b1c406ae9;DATARMNETa664f6ed60=DATARMNETaa568481cf -->DATARMNET8600531f31->DATARMNETdf0e8545ee;DATARMNET487536824f= -DATARMNET5fe4c722a8->DATARMNET0da3c8035d->DATARMNET1b1c406ae9; -DATARMNET49b96367a2=DATARMNET5fe4c722a8->DATARMNET0da3c8035d-> -DATARMNETdf0e8545ee;if(DATARMNETe085e1d838^DATARMNET487536824f|| -DATARMNETa664f6ed60^DATARMNET49b96367a2)return false;if(DATARMNET5fe4c722a8-> -DATARMNETaebe0581f2==(0xd11+230-0xdf3)){struct DATARMNET308c06fca6* -DATARMNET699c2c62cd,*DATARMNET8814564ab9;DATARMNET699c2c62cd=DATARMNETaa568481cf -->DATARMNETc1529262df;DATARMNET8814564ab9=DATARMNET5fe4c722a8-> -DATARMNET1469d7a840;if(DATARMNET699c2c62cd->DATARMNET9bbd2ca483^ -DATARMNET8814564ab9->DATARMNET9bbd2ca483||DATARMNET699c2c62cd-> -DATARMNET11ef55b2bb^DATARMNET8814564ab9->DATARMNET11ef55b2bb)return false;}else -if(DATARMNET5fe4c722a8->DATARMNETaebe0581f2==(0xd03+244-0xdf1)){struct -DATARMNET64bb8f616e*DATARMNET699c2c62cd,*DATARMNET8814564ab9;DATARMNET699c2c62cd -=DATARMNETaa568481cf->DATARMNET6f0af6e7b3;DATARMNET8814564ab9= -DATARMNET5fe4c722a8->DATARMNET5559b05582;if(memcmp(DATARMNET699c2c62cd-> -DATARMNET31202449fc,DATARMNET8814564ab9->DATARMNET31202449fc,sizeof( -DATARMNET8814564ab9->DATARMNET31202449fc))||memcmp(DATARMNET699c2c62cd-> -DATARMNETc657c0a139,DATARMNET8814564ab9->DATARMNETc657c0a139,sizeof( -DATARMNET8814564ab9->DATARMNETc657c0a139)))return false;}else{return false;} +if(DATARMNET5fe4c722a8->DATARMNET144d119066.DATARMNET388842c721== +(0xd11+230-0xdf3)){struct DATARMNET4287f07234*DATARMNET699c2c62cd,* +DATARMNET8814564ab9;DATARMNET699c2c62cd=&DATARMNETaa568481cf-> +DATARMNET78fd20ce0e;DATARMNET8814564ab9=&DATARMNET5fe4c722a8-> +DATARMNET144d119066;if(DATARMNET699c2c62cd->DATARMNET19b03754c4^ +DATARMNET8814564ab9->DATARMNET19b03754c4||DATARMNET699c2c62cd-> +DATARMNET57bf608183^DATARMNET8814564ab9->DATARMNET57bf608183|| +DATARMNET699c2c62cd->DATARMNETcf915688f5^DATARMNET8814564ab9-> +DATARMNETcf915688f5||DATARMNET699c2c62cd->DATARMNET4ca5ac9de1^ +DATARMNET8814564ab9->DATARMNET4ca5ac9de1)return true;}else if( +DATARMNET5fe4c722a8->DATARMNET144d119066.DATARMNET388842c721==(0xd03+244-0xdf1)) +{__be32 DATARMNET25ffacbec5,DATARMNETb351dd927f;__be32 DATARMNET9422f16113; +DATARMNET25ffacbec5=DATARMNETaa568481cf->DATARMNET78fd20ce0e.DATARMNETabd58f7f89 +;DATARMNETb351dd927f=DATARMNET5fe4c722a8->DATARMNET144d119066. +DATARMNETabd58f7f89;;DATARMNET9422f16113=DATARMNET25ffacbec5^DATARMNETb351dd927f +;if(DATARMNET9422f16113&htonl(267386880))return true;}return false;}static bool +DATARMNET6895620058(struct DATARMNETd7c9631acd*DATARMNETaa568481cf,struct +DATARMNETd812bcdbb5*DATARMNET5fe4c722a8){struct DATARMNET4287f07234* +DATARMNET699c2c62cd,*DATARMNET8814564ab9;DATARMNET699c2c62cd=& +DATARMNETaa568481cf->DATARMNET78fd20ce0e;DATARMNET8814564ab9=& +DATARMNET5fe4c722a8->DATARMNET144d119066;if(!DATARMNETaa568481cf-> +DATARMNET1db11fa85e)return DATARMNETaa568481cf->DATARMNET381f1cadc4== +DATARMNET5fe4c722a8->DATARMNET645e8912b8;if(DATARMNET699c2c62cd-> +DATARMNET7fa8b2acbf!=DATARMNET8814564ab9->DATARMNET7fa8b2acbf)return false;if( +DATARMNET699c2c62cd->DATARMNETa60d2ae3f6^DATARMNET8814564ab9-> +DATARMNETa60d2ae3f6||DATARMNET699c2c62cd->DATARMNET5e7452ec23^ +DATARMNET8814564ab9->DATARMNET5e7452ec23)return false;if(DATARMNET8814564ab9-> +DATARMNET388842c721==(0xd11+230-0xdf3)){if(DATARMNET699c2c62cd-> +DATARMNET1a2be7b6c2^DATARMNET8814564ab9->DATARMNET1a2be7b6c2|| +DATARMNET699c2c62cd->DATARMNET0a28fa80f4^DATARMNET8814564ab9-> +DATARMNET0a28fa80f4)return false;}else if(DATARMNET8814564ab9-> +DATARMNET388842c721==(0xd03+244-0xdf1)){if(memcmp(DATARMNET699c2c62cd-> +DATARMNET949c2754de,DATARMNET8814564ab9->DATARMNET949c2754de,sizeof( +DATARMNET8814564ab9->DATARMNET949c2754de))||memcmp(DATARMNET699c2c62cd-> +DATARMNET45ec858bc5,DATARMNET8814564ab9->DATARMNET45ec858bc5,sizeof( +DATARMNET8814564ab9->DATARMNET45ec858bc5)))return false;}else{return false;} return true;}static struct DATARMNETd7c9631acd*DATARMNETd41def0046(void){struct DATARMNET70f3b87b5d*DATARMNETe05748b000=DATARMNETc2a630b113();struct DATARMNET907d58c807*DATARMNETa6f73cbe10;struct DATARMNETd7c9631acd* @@ -111,22 +105,23 @@ DATARMNETbad3b5165e(DATARMNETddf572458d,DATARMNET737bbd41c3);return (0xd2d+202-0xdf7);}void DATARMNETa3055c21f2(struct DATARMNETd7c9631acd* DATARMNETaa568481cf){struct DATARMNET70f3b87b5d*DATARMNETe05748b000= DATARMNETc2a630b113();struct rmnet_frag_descriptor*DATARMNETd74aeaa49a,* -DATARMNETa1625e27e2,*DATARMNET0386f6f82a;u32 DATARMNETf333d55b33= -DATARMNETaa568481cf->DATARMNETcf28ae376b+DATARMNETaa568481cf-> -DATARMNETac72629d22+DATARMNETaa568481cf->DATARMNET3f4e88ab44;if(! -DATARMNETaa568481cf->DATARMNET1db11fa85e)return;DATARMNETd74aeaa49a= -list_first_entry(&DATARMNETaa568481cf->DATARMNETb76b79d0d5,struct -rmnet_frag_descriptor,list);if(!DATARMNETd74aeaa49a->gso_segs) -DATARMNETd74aeaa49a->gso_segs=(0xd26+209-0xdf6);DATARMNETd74aeaa49a->gso_size= -DATARMNETaa568481cf->DATARMNET1978d5d8de;DATARMNETa1625e27e2=DATARMNETd74aeaa49a -;list_for_each_entry_safe_continue(DATARMNETa1625e27e2,DATARMNET0386f6f82a,& -DATARMNETaa568481cf->DATARMNETb76b79d0d5,list){if(DATARMNETa1625e27e2->hdr_ptr== -rmnet_frag_data_ptr(DATARMNETa1625e27e2)){if(!rmnet_frag_pull( -DATARMNETa1625e27e2,DATARMNETe05748b000->DATARMNET403589239f,DATARMNETaa568481cf -->DATARMNETac72629d22+DATARMNETaa568481cf->DATARMNET3f4e88ab44))continue;} -list_del(&DATARMNETa1625e27e2->list);list_add_tail(&DATARMNETa1625e27e2->list,& -DATARMNETd74aeaa49a->sub_frags);DATARMNETd74aeaa49a->gso_segs+=( -DATARMNETa1625e27e2->gso_segs)?:(0xd26+209-0xdf6);}DATARMNETd74aeaa49a->hash= +DATARMNETa1625e27e2,*DATARMNET0386f6f82a;struct DATARMNET4287f07234* +DATARMNET699c2c62cd=&DATARMNETaa568481cf->DATARMNET78fd20ce0e;u32 +DATARMNET567bdc7221=DATARMNET699c2c62cd->DATARMNET4ca5ac9de1+DATARMNET699c2c62cd +->DATARMNET0aeee57ceb;u32 DATARMNETf333d55b33=DATARMNETaa568481cf-> +DATARMNETcf28ae376b+DATARMNET567bdc7221;if(!DATARMNETaa568481cf-> +DATARMNET1db11fa85e)return;DATARMNETd74aeaa49a=list_first_entry(& +DATARMNETaa568481cf->DATARMNETb76b79d0d5,struct rmnet_frag_descriptor,list);if(! +DATARMNETd74aeaa49a->gso_segs)DATARMNETd74aeaa49a->gso_segs=(0xd26+209-0xdf6); +DATARMNETd74aeaa49a->gso_size=DATARMNETaa568481cf->DATARMNET1978d5d8de; +DATARMNETa1625e27e2=DATARMNETd74aeaa49a;list_for_each_entry_safe_continue( +DATARMNETa1625e27e2,DATARMNET0386f6f82a,&DATARMNETaa568481cf-> +DATARMNETb76b79d0d5,list){u32 DATARMNET904423d5e4=DATARMNETa1625e27e2->len- +DATARMNET567bdc7221;if(!rmnet_frag_descriptor_add_frags_from(DATARMNETd74aeaa49a +,DATARMNETa1625e27e2,DATARMNET567bdc7221,DATARMNET904423d5e4)) +DATARMNETd74aeaa49a->gso_segs+=(DATARMNETa1625e27e2->gso_segs)?: +(0xd26+209-0xdf6);rmnet_recycle_frag_descriptor(DATARMNETa1625e27e2, +DATARMNETe05748b000->DATARMNET403589239f);}DATARMNETd74aeaa49a->hash= DATARMNETaa568481cf->DATARMNET381f1cadc4;DATARMNET58a244b2fe(DATARMNETd74aeaa49a ,DATARMNETf333d55b33);DATARMNETaa568481cf->DATARMNET1db11fa85e=(0xd2d+202-0xdf7) ;DATARMNETaa568481cf->DATARMNETcf28ae376b=(0xd2d+202-0xdf7);}void @@ -142,54 +137,44 @@ DATARMNETaa568481cf->DATARMNET1db11fa85e)DATARMNETa3055c21f2(DATARMNETaa568481cf DATARMNETa3055c21f2(DATARMNETaa568481cf);}}return DATARMNET737bbd41c3;}void DATARMNET33aa5df9ef(struct DATARMNETd7c9631acd*DATARMNETaa568481cf,struct DATARMNETd812bcdbb5*DATARMNET5fe4c722a8){if(DATARMNET5fe4c722a8-> -DATARMNETf1b6b0a6cc){DATARMNETaa568481cf->DATARMNET7e15783110= -DATARMNET5fe4c722a8->DATARMNETaebe0581f2;DATARMNETaa568481cf-> -DATARMNETac72629d22=DATARMNET5fe4c722a8->DATARMNETbecebb23ac;DATARMNETaa568481cf -->DATARMNETc1529262df=DATARMNET5fe4c722a8->DATARMNET1469d7a840; -DATARMNETaa568481cf->DATARMNET550ca047ee=DATARMNET5fe4c722a8-> -DATARMNET098910da0f;DATARMNETaa568481cf->DATARMNET3f4e88ab44=DATARMNET5fe4c722a8 -->DATARMNET0ab9b2ce3b;DATARMNETaa568481cf->DATARMNET8cd2f78e4f= -DATARMNET5fe4c722a8->DATARMNET96c6c71653;DATARMNETaa568481cf-> -DATARMNET381f1cadc4=DATARMNET5fe4c722a8->DATARMNET645e8912b8;DATARMNETaa568481cf -->DATARMNET1978d5d8de=(DATARMNET5fe4c722a8->DATARMNET719f68fb88->gso_size)?: -DATARMNET5fe4c722a8->DATARMNET1ef22e4c76;if(DATARMNET5fe4c722a8-> -DATARMNET098910da0f==DATARMNETfd5c3d30e5){__be32 DATARMNET0849981c7c;if( -DATARMNET5fe4c722a8->DATARMNET719f68fb88->tcp_seq_set)DATARMNET0849981c7c= -DATARMNET5fe4c722a8->DATARMNET719f68fb88->tcp_seq;else DATARMNET0849981c7c= -DATARMNET5fe4c722a8->DATARMNET96c6c71653->DATARMNETb3e70104e0; -DATARMNETaa568481cf->DATARMNETd3a1a2b9b5=ntohl(DATARMNET0849981c7c);}}if( -DATARMNET5fe4c722a8->DATARMNET098910da0f==DATARMNETfd5c3d30e5) -DATARMNETaa568481cf->DATARMNETd3a1a2b9b5+=DATARMNET5fe4c722a8-> +DATARMNETf1b6b0a6cc){memcpy(&DATARMNETaa568481cf->DATARMNET78fd20ce0e,& +DATARMNET5fe4c722a8->DATARMNET144d119066,sizeof(DATARMNETaa568481cf-> +DATARMNET78fd20ce0e));DATARMNETaa568481cf->DATARMNET381f1cadc4= +DATARMNET5fe4c722a8->DATARMNET645e8912b8;DATARMNETaa568481cf-> +DATARMNET1978d5d8de=(DATARMNET5fe4c722a8->DATARMNET719f68fb88->gso_size)?: +DATARMNET5fe4c722a8->DATARMNET1ef22e4c76;}if(DATARMNET5fe4c722a8-> +DATARMNET144d119066.DATARMNET7fa8b2acbf==DATARMNETfd5c3d30e5)DATARMNETaa568481cf +->DATARMNET78fd20ce0e.DATARMNETbc28a5970f+=DATARMNET5fe4c722a8-> DATARMNET1ef22e4c76;list_add_tail(&DATARMNET5fe4c722a8->DATARMNET719f68fb88-> list,&DATARMNETaa568481cf->DATARMNETb76b79d0d5);DATARMNETaa568481cf-> DATARMNET1db11fa85e++;DATARMNETaa568481cf->DATARMNETcf28ae376b+= DATARMNET5fe4c722a8->DATARMNET1ef22e4c76;}bool DATARMNETfbf5798e15(struct DATARMNETd812bcdbb5*DATARMNET5fe4c722a8){struct DATARMNETd7c9631acd* -DATARMNETaa568481cf;bool DATARMNET885970f252=false;if(!DATARMNET2013036d80( -DATARMNET5fe4c722a8->DATARMNET098910da0f)){DATARMNETa00cda79d0( +DATARMNETaa568481cf;bool DATARMNET885970f252=false;u8 DATARMNET9695aa5b1d= +DATARMNET5fe4c722a8->DATARMNET144d119066.DATARMNET7fa8b2acbf;if(! +DATARMNET2013036d80(DATARMNET9695aa5b1d)){DATARMNETa00cda79d0( DATARMNET6a894ab63d);return false;}hash_for_each_possible(DATARMNET4791268d67, DATARMNETaa568481cf,DATARMNETbd5d7d96d8,DATARMNET5fe4c722a8->DATARMNET645e8912b8 ){bool DATARMNET2dd83daa1c;if(!DATARMNET6895620058(DATARMNETaa568481cf, DATARMNET5fe4c722a8))continue;DATARMNETc6f994577c:DATARMNET2dd83daa1c= DATARMNET5a0f9fc3a2(DATARMNETaa568481cf,DATARMNET5fe4c722a8);DATARMNET5fe4c722a8 -->DATARMNETf1b6b0a6cc=true;DATARMNET885970f252=true;switch(DATARMNET5fe4c722a8-> -DATARMNET098910da0f){case DATARMNETfd5c3d30e5:return DATARMNET4c7cdc25b7( -DATARMNETaa568481cf,DATARMNET5fe4c722a8,DATARMNET2dd83daa1c);case -DATARMNETa656f324b2:return DATARMNET8dc47eb7af(DATARMNETaa568481cf, -DATARMNET5fe4c722a8,DATARMNET2dd83daa1c);default:return false;}}if(! -DATARMNET885970f252){DATARMNETaa568481cf=DATARMNETd41def0046(); -DATARMNETaa568481cf->DATARMNET381f1cadc4=DATARMNET5fe4c722a8-> -DATARMNET645e8912b8;hash_add(DATARMNET4791268d67,&DATARMNETaa568481cf-> -DATARMNETbd5d7d96d8,DATARMNETaa568481cf->DATARMNET381f1cadc4);goto -DATARMNETc6f994577c;}return false;}void DATARMNETb98b78b8e3(void){struct -DATARMNETd7c9631acd*DATARMNETaa568481cf;struct hlist_node*DATARMNET0386f6f82a; -int DATARMNETae0201901a;hash_for_each_safe(DATARMNET4791268d67, -DATARMNETae0201901a,DATARMNET0386f6f82a,DATARMNETaa568481cf,DATARMNETbd5d7d96d8) -hash_del(&DATARMNETaa568481cf->DATARMNETbd5d7d96d8);}int DATARMNETdbcaf01255( -void){struct DATARMNET70f3b87b5d*DATARMNETe05748b000=DATARMNETc2a630b113();u8 -DATARMNETefc9df3df2;for(DATARMNETefc9df3df2=(0xd2d+202-0xdf7); -DATARMNETefc9df3df2DATARMNETebb45c8d86.DATARMNET2846a01cce[DATARMNETefc9df3df2];INIT_LIST_HEAD(& -DATARMNETaa568481cf->DATARMNETb76b79d0d5);INIT_HLIST_NODE(&DATARMNETaa568481cf-> -DATARMNETbd5d7d96d8);}return DATARMNET0529bb9c4e;} +->DATARMNETf1b6b0a6cc=true;DATARMNET885970f252=true;switch(DATARMNET9695aa5b1d){ +case DATARMNETfd5c3d30e5:return DATARMNET4c7cdc25b7(DATARMNETaa568481cf, +DATARMNET5fe4c722a8,DATARMNET2dd83daa1c);case DATARMNETa656f324b2:return +DATARMNET8dc47eb7af(DATARMNETaa568481cf,DATARMNET5fe4c722a8,DATARMNET2dd83daa1c) +;default:return false;}}if(!DATARMNET885970f252){DATARMNETaa568481cf= +DATARMNETd41def0046();DATARMNETaa568481cf->DATARMNET381f1cadc4= +DATARMNET5fe4c722a8->DATARMNET645e8912b8;hash_add(DATARMNET4791268d67,& +DATARMNETaa568481cf->DATARMNETbd5d7d96d8,DATARMNETaa568481cf-> +DATARMNET381f1cadc4);goto DATARMNETc6f994577c;}return false;}void +DATARMNETb98b78b8e3(void){struct DATARMNETd7c9631acd*DATARMNETaa568481cf;struct +hlist_node*DATARMNET0386f6f82a;int DATARMNETae0201901a;hash_for_each_safe( +DATARMNET4791268d67,DATARMNETae0201901a,DATARMNET0386f6f82a,DATARMNETaa568481cf, +DATARMNETbd5d7d96d8)hash_del(&DATARMNETaa568481cf->DATARMNETbd5d7d96d8);}int +DATARMNETdbcaf01255(void){struct DATARMNET70f3b87b5d*DATARMNETe05748b000= +DATARMNETc2a630b113();u8 DATARMNETefc9df3df2;for(DATARMNETefc9df3df2= +(0xd2d+202-0xdf7);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 4bec62eccca3..9bd8e1e7b04a 100644 --- a/offload/rmnet_offload_engine.h +++ b/offload/rmnet_offload_engine.h @@ -19,20 +19,17 @@ enum{DATARMNET7af645849a,DATARMNETb0bd5db24d,DATARMNET0413b43080,};enum{ DATARMNETa2ddeec85f,DATARMNET2d89680280=DATARMNETa2ddeec85f,DATARMNET03daf91a60, DATARMNET88a9920663,DATARMNET5fe3af8828,DATARMNETaccb69cf16=DATARMNET5fe3af8828, };struct DATARMNETd7c9631acd{struct hlist_node DATARMNETbd5d7d96d8;struct -list_head DATARMNETb76b79d0d5;union{struct DATARMNET308c06fca6* -DATARMNETc1529262df;struct DATARMNET64bb8f616e*DATARMNET6f0af6e7b3;};union{ -struct DATARMNETd2991e8952*DATARMNET8cd2f78e4f;struct DATARMNET0b82084e89* -DATARMNET8600531f31;};u32 DATARMNET381f1cadc4;u16 DATARMNETcf28ae376b;u16 -DATARMNETac72629d22;u16 DATARMNET3f4e88ab44;u8 DATARMNET7e15783110;u8 -DATARMNET550ca047ee;u32 DATARMNETd3a1a2b9b5;u16 DATARMNET1978d5d8de;u8 -DATARMNET1db11fa85e;};struct DATARMNET907d58c807{struct DATARMNETd7c9631acd -DATARMNET2846a01cce[DATARMNET78d9393ac8];u8 DATARMNET8dfc11cccd;u8 -DATARMNET57d435b225;};void DATARMNETd4230b6bfe(void);void DATARMNET560e127137( -void);int DATARMNET241493ab9a(u64 DATARMNET0470698d6c,u64 DATARMNETfeff65e096); -void DATARMNETa3055c21f2(struct DATARMNETd7c9631acd*DATARMNETaa568481cf);void -DATARMNETc38c135c9f(u32 DATARMNET3f8cc6fc24);u32 DATARMNETae70636c90(void);void -DATARMNET33aa5df9ef(struct DATARMNETd7c9631acd*DATARMNETaa568481cf,struct -DATARMNETd812bcdbb5*DATARMNET5fe4c722a8);bool DATARMNETfbf5798e15(struct -DATARMNETd812bcdbb5*DATARMNET5fe4c722a8);void DATARMNETb98b78b8e3(void);int -DATARMNETdbcaf01255(void); +list_head DATARMNETb76b79d0d5;struct DATARMNET4287f07234 DATARMNET78fd20ce0e;u32 + DATARMNET381f1cadc4;u16 DATARMNETcf28ae376b;u32 DATARMNETd3a1a2b9b5;u16 +DATARMNET1978d5d8de;u8 DATARMNET1db11fa85e;};struct DATARMNET907d58c807{struct +DATARMNETd7c9631acd DATARMNET2846a01cce[DATARMNET78d9393ac8];u8 +DATARMNET8dfc11cccd;u8 DATARMNET57d435b225;};void DATARMNETd4230b6bfe(void);void + DATARMNET560e127137(void);int DATARMNET241493ab9a(u64 DATARMNET0470698d6c,u64 +DATARMNETfeff65e096);void DATARMNETa3055c21f2(struct DATARMNETd7c9631acd* +DATARMNETaa568481cf);void DATARMNETc38c135c9f(u32 DATARMNET3f8cc6fc24);u32 +DATARMNETae70636c90(void);void DATARMNET33aa5df9ef(struct DATARMNETd7c9631acd* +DATARMNETaa568481cf,struct DATARMNETd812bcdbb5*DATARMNET5fe4c722a8);bool +DATARMNETfbf5798e15(struct DATARMNETd812bcdbb5*DATARMNET5fe4c722a8);void +DATARMNETb98b78b8e3(void);int DATARMNETdbcaf01255(void); #endif + diff --git a/offload/rmnet_offload_main.c b/offload/rmnet_offload_main.c index bf7a0e1412dc..0c0754cb70af 100644 --- a/offload/rmnet_offload_main.c +++ b/offload/rmnet_offload_main.c @@ -33,107 +33,156 @@ static const char*DATARMNET9be3ddbe97[]__always_unused={ "\x49\x30\x64\x64\x66\x33\x66\x66\x30\x34\x36\x66\x31\x62\x39\x33\x66\x63\x31\x39\x62\x62\x38\x35\x62\x31\x38\x64\x30\x34\x30\x63\x33\x34\x33\x62\x39\x39\x66\x37\x33" , "\x49\x33\x62\x36\x31\x30\x37\x35\x34\x33\x32\x32\x61\x66\x30\x39\x30\x66\x65\x39\x61\x65\x31\x34\x61\x61\x31\x38\x61\x35\x33\x34\x30\x66\x62\x61\x38\x36\x36\x64\x62" +, +"\x49\x35\x31\x34\x36\x62\x33\x61\x30\x31\x36\x65\x66\x36\x35\x62\x33\x65\x36\x34\x35\x31\x33\x38\x64\x31\x34\x38\x31\x66\x37\x35\x35\x63\x66\x31\x31\x33\x34\x61\x32" ,};static DEFINE_SPINLOCK(DATARMNET0b5e447f18);static u32 DATARMNETcb7325e02d( -struct DATARMNETd812bcdbb5*DATARMNET458b70e7e5){__be32 DATARMNETdfd47b00ff[ -(0xd20+231-0xdfc)];u32 DATARMNET5ebf661879;__be16 DATARMNET08e913477e= -(0xd2d+202-0xdf7),DATARMNETda7f7fa492=(0xd2d+202-0xdf7);if(DATARMNET458b70e7e5-> -DATARMNET098910da0f==DATARMNETa656f324b2||DATARMNET458b70e7e5-> -DATARMNET098910da0f==DATARMNETfd5c3d30e5){struct DATARMNET0b82084e89* -DATARMNET75be5f3406=DATARMNET458b70e7e5->DATARMNET0da3c8035d;DATARMNET08e913477e -=DATARMNET75be5f3406->DATARMNET1b1c406ae9;DATARMNETda7f7fa492= -DATARMNET75be5f3406->DATARMNETdf0e8545ee;}if(DATARMNET458b70e7e5-> -DATARMNETaebe0581f2==(0xd11+230-0xdf3)){struct DATARMNET308c06fca6* -DATARMNET86f1f2cdc9=DATARMNET458b70e7e5->DATARMNET1469d7a840;DATARMNETdfd47b00ff -[(0xd2d+202-0xdf7)]=DATARMNET86f1f2cdc9->DATARMNET11ef55b2bb;DATARMNETdfd47b00ff -[(0xd26+209-0xdf6)]=DATARMNET86f1f2cdc9->DATARMNET9bbd2ca483;DATARMNETdfd47b00ff -[(0xd1f+216-0xdf5)]=DATARMNET86f1f2cdc9->DATARMNET953d32410f;DATARMNETdfd47b00ff -[(0xd18+223-0xdf4)]=DATARMNETda7f7fa492;DATARMNETdfd47b00ff[(0xd11+230-0xdf3)]= -DATARMNET08e913477e;DATARMNET5ebf661879=(0xd0a+237-0xdf2);}else{struct -DATARMNET64bb8f616e*DATARMNETbf55123e5b=DATARMNET458b70e7e5->DATARMNET5559b05582 -;memcpy(&DATARMNETdfd47b00ff[(0xd2d+202-0xdf7)],&DATARMNETbf55123e5b-> -DATARMNETc657c0a139[(0xd2d+202-0xdf7)],sizeof(DATARMNETbf55123e5b-> -DATARMNETc657c0a139));memcpy(&DATARMNETdfd47b00ff[(0xd0a+237-0xdf2)],& -DATARMNETbf55123e5b->DATARMNET31202449fc[(0xd2d+202-0xdf7)],sizeof( -DATARMNETbf55123e5b->DATARMNETc657c0a139));DATARMNETdfd47b00ff[(0xd35+210-0xdff) -]=DATARMNETbf55123e5b->DATARMNET7244bfdc4f;DATARMNETdfd47b00ff[9]= -DATARMNETda7f7fa492;DATARMNETdfd47b00ff[(0xd27+224-0xdfd)]=DATARMNET08e913477e; -DATARMNET5ebf661879=(0xd20+231-0xdfc);}return jhash2(DATARMNETdfd47b00ff, -DATARMNET5ebf661879,(0xd2d+202-0xdf7));}static void DATARMNETe26a68d20e(u32 -DATARMNET5affe290b8){u32 DATARMNET2991ac9aa9;if(DATARMNET5affe290b8>50000) -DATARMNET2991ac9aa9=DATARMNETa121404606;else if(DATARMNET5affe290b8>30000) -DATARMNET2991ac9aa9=DATARMNET787b04223a;else if(DATARMNET5affe290b8>23000) -DATARMNET2991ac9aa9=DATARMNET8e1480cff2;else if(DATARMNET5affe290b8>14500) -DATARMNET2991ac9aa9=DATARMNETf335e26298;else if(DATARMNET5affe290b8>7000) -DATARMNET2991ac9aa9=DATARMNET3067ea3199;else if(DATARMNET5affe290b8> -(0x5b4+1875-0x78f))DATARMNET2991ac9aa9=DATARMNETa76d93355c;else -DATARMNET2991ac9aa9=DATARMNET92f3434694;DATARMNETa00cda79d0(DATARMNET2991ac9aa9) -;}static bool DATARMNET1a7ed9a6a2(struct rmnet_frag_descriptor* -DATARMNET9d1b321642,struct DATARMNETd812bcdbb5*DATARMNET458b70e7e5){u8* -DATARMNETdf2dbc641f;u16 DATARMNET5affe290b8;u16 DATARMNETdaa9248df1;if( -DATARMNET9d1b321642->hdrs_valid){DATARMNET458b70e7e5->DATARMNETaebe0581f2= -DATARMNET9d1b321642->ip_proto;DATARMNET458b70e7e5->DATARMNETbecebb23ac= -DATARMNET9d1b321642->ip_len;DATARMNET458b70e7e5->DATARMNET098910da0f= -DATARMNET9d1b321642->trans_proto;DATARMNET458b70e7e5->DATARMNET0ab9b2ce3b= -DATARMNET9d1b321642->trans_len;DATARMNET458b70e7e5->DATARMNET1469d7a840=(struct -DATARMNET308c06fca6*)DATARMNET9d1b321642->hdr_ptr;DATARMNET458b70e7e5-> -DATARMNET96c6c71653=(struct DATARMNETd2991e8952*)(DATARMNET9d1b321642->hdr_ptr+ -DATARMNET9d1b321642->ip_len);DATARMNET458b70e7e5->DATARMNET645e8912b8= -DATARMNETcb7325e02d(DATARMNET458b70e7e5);DATARMNET458b70e7e5-> -DATARMNET1ef22e4c76=skb_frag_size(&DATARMNET9d1b321642->frag);if( -DATARMNET9d1b321642->hdr_ptr==rmnet_frag_data_ptr(DATARMNET9d1b321642)) -DATARMNET458b70e7e5->DATARMNET1ef22e4c76-=DATARMNET9d1b321642->ip_len+ +struct DATARMNETd812bcdbb5*DATARMNET458b70e7e5){struct DATARMNET4287f07234* +DATARMNET8814564ab9=&DATARMNET458b70e7e5->DATARMNET144d119066;__be32 +DATARMNETdfd47b00ff[(0xd20+231-0xdfc)];u32 DATARMNET5ebf661879;__be16 +DATARMNET08e913477e=(0xd2d+202-0xdf7),DATARMNETda7f7fa492=(0xd2d+202-0xdf7);if( +DATARMNET8814564ab9->DATARMNET7fa8b2acbf==DATARMNETa656f324b2|| +DATARMNET8814564ab9->DATARMNET7fa8b2acbf==DATARMNETfd5c3d30e5){ +DATARMNET08e913477e=DATARMNET8814564ab9->DATARMNETa60d2ae3f6;DATARMNETda7f7fa492 +=DATARMNET8814564ab9->DATARMNET5e7452ec23;}if(DATARMNET8814564ab9-> +DATARMNET388842c721==(0xd11+230-0xdf3)){DATARMNETdfd47b00ff[(0xd2d+202-0xdf7)]= +DATARMNET8814564ab9->DATARMNET0a28fa80f4;DATARMNETdfd47b00ff[(0xd26+209-0xdf6)]= +DATARMNET8814564ab9->DATARMNET1a2be7b6c2;DATARMNETdfd47b00ff[(0xd1f+216-0xdf5)]= +DATARMNET8814564ab9->DATARMNET7fa8b2acbf;DATARMNETdfd47b00ff[(0xd18+223-0xdf4)]= +DATARMNETda7f7fa492;DATARMNETdfd47b00ff[(0xd11+230-0xdf3)]=DATARMNET08e913477e; +DATARMNET5ebf661879=(0xd0a+237-0xdf2);}else{memcpy(&DATARMNETdfd47b00ff[ +(0xd2d+202-0xdf7)],&DATARMNET8814564ab9->DATARMNET45ec858bc5[(0xd2d+202-0xdf7)], +sizeof(DATARMNET8814564ab9->DATARMNET45ec858bc5));memcpy(&DATARMNETdfd47b00ff[ +(0xd0a+237-0xdf2)],&DATARMNET8814564ab9->DATARMNET949c2754de[(0xd2d+202-0xdf7)], +sizeof(DATARMNET8814564ab9->DATARMNET45ec858bc5));DATARMNETdfd47b00ff[ +(0xd35+210-0xdff)]=DATARMNET8814564ab9->DATARMNET7fa8b2acbf;DATARMNETdfd47b00ff[ +9]=DATARMNETda7f7fa492;DATARMNETdfd47b00ff[(0xd27+224-0xdfd)]= +DATARMNET08e913477e;DATARMNET5ebf661879=(0xd20+231-0xdfc);}return jhash2( +DATARMNETdfd47b00ff,DATARMNET5ebf661879,(0xd2d+202-0xdf7));}static void +DATARMNETe26a68d20e(u32 DATARMNET5affe290b8){u32 DATARMNET2991ac9aa9;if( +DATARMNET5affe290b8>50000)DATARMNET2991ac9aa9=DATARMNETa121404606;else if( +DATARMNET5affe290b8>30000)DATARMNET2991ac9aa9=DATARMNET787b04223a;else if( +DATARMNET5affe290b8>23000)DATARMNET2991ac9aa9=DATARMNET8e1480cff2;else if( +DATARMNET5affe290b8>14500)DATARMNET2991ac9aa9=DATARMNETf335e26298;else if( +DATARMNET5affe290b8>7000)DATARMNET2991ac9aa9=DATARMNET3067ea3199;else if( +DATARMNET5affe290b8>(0x5b4+1875-0x78f))DATARMNET2991ac9aa9=DATARMNETa76d93355c; +else DATARMNET2991ac9aa9=DATARMNET92f3434694;DATARMNETa00cda79d0( +DATARMNET2991ac9aa9);}static bool DATARMNET1a7ed9a6a2(struct +rmnet_frag_descriptor*DATARMNET9d1b321642,struct DATARMNETd812bcdbb5* +DATARMNET458b70e7e5){struct DATARMNET4287f07234*DATARMNET8814564ab9=& +DATARMNET458b70e7e5->DATARMNET144d119066;u8*DATARMNETdf2dbc641f;u16 +DATARMNET5affe290b8;u16 DATARMNETdaa9248df1;if(DATARMNET9d1b321642->hdrs_valid){ +struct DATARMNETd2991e8952*DATARMNET2e7cc88971,DATARMNETd1ff6cd568; +DATARMNET8814564ab9->DATARMNET388842c721=DATARMNET9d1b321642->ip_proto; +DATARMNET8814564ab9->DATARMNET4ca5ac9de1=DATARMNET9d1b321642->ip_len; +DATARMNET8814564ab9->DATARMNET7fa8b2acbf=DATARMNET9d1b321642->trans_proto; +DATARMNET8814564ab9->DATARMNET0aeee57ceb=DATARMNET9d1b321642->trans_len; +DATARMNET5affe290b8=DATARMNET9d1b321642->len;if(DATARMNET8814564ab9-> +DATARMNET388842c721==(0xd11+230-0xdf3)){struct DATARMNET308c06fca6* +DATARMNET86f1f2cdc9,DATARMNETbf6548198e;DATARMNET86f1f2cdc9= +rmnet_frag_header_ptr(DATARMNET9d1b321642,(0xd2d+202-0xdf7),sizeof(* +DATARMNET86f1f2cdc9),&DATARMNETbf6548198e);if(!DATARMNET86f1f2cdc9)goto +DATARMNETaabe3a05f8;DATARMNET8814564ab9->DATARMNET1a2be7b6c2=DATARMNET86f1f2cdc9 +->DATARMNET9bbd2ca483;DATARMNET8814564ab9->DATARMNET0a28fa80f4= +DATARMNET86f1f2cdc9->DATARMNET11ef55b2bb;DATARMNET8814564ab9-> +DATARMNET19b03754c4=DATARMNET86f1f2cdc9->DATARMNET1eb6c27583;DATARMNET8814564ab9 +->DATARMNET57bf608183=DATARMNET86f1f2cdc9->DATARMNET03e081f69f; +DATARMNET8814564ab9->DATARMNETcf915688f5=DATARMNET86f1f2cdc9-> +DATARMNET2c091223da;}else{struct DATARMNET64bb8f616e*DATARMNETbf55123e5b, +DATARMNETcf1d9e2c1e;DATARMNETbf55123e5b=rmnet_frag_header_ptr( +DATARMNET9d1b321642,(0xd2d+202-0xdf7),sizeof(*DATARMNETbf55123e5b),& +DATARMNETcf1d9e2c1e);if(!DATARMNETbf55123e5b)goto DATARMNETaabe3a05f8;memcpy(& +DATARMNET8814564ab9->DATARMNET949c2754de[(0xd2d+202-0xdf7)],&DATARMNETbf55123e5b +->DATARMNET31202449fc[(0xd2d+202-0xdf7)],sizeof(DATARMNETbf55123e5b-> +DATARMNET31202449fc));memcpy(&DATARMNET8814564ab9->DATARMNET45ec858bc5[ +(0xd2d+202-0xdf7)],&DATARMNETbf55123e5b->DATARMNETc657c0a139[(0xd2d+202-0xdf7)], +sizeof(DATARMNETbf55123e5b->DATARMNETc657c0a139));DATARMNET8814564ab9-> +DATARMNETabd58f7f89=DATARMNETbf55123e5b->DATARMNET0687f7ecdc;} +DATARMNET2e7cc88971=rmnet_frag_header_ptr(DATARMNET9d1b321642, +DATARMNET8814564ab9->DATARMNET4ca5ac9de1,sizeof(*DATARMNET2e7cc88971),& +DATARMNETd1ff6cd568);if(!DATARMNET2e7cc88971)goto DATARMNETaabe3a05f8; +DATARMNET8814564ab9->DATARMNETa60d2ae3f6=DATARMNET2e7cc88971-> +DATARMNET6acbeeebb1;DATARMNET8814564ab9->DATARMNET5e7452ec23=DATARMNET2e7cc88971 +->DATARMNET29b8c05d14;if(DATARMNET8814564ab9->DATARMNET7fa8b2acbf== +DATARMNETfd5c3d30e5){__be32 DATARMNET0849981c7c;if(DATARMNET9d1b321642-> +tcp_seq_set)DATARMNET0849981c7c=DATARMNET9d1b321642->tcp_seq;else +DATARMNET0849981c7c=DATARMNET2e7cc88971->DATARMNETb3e70104e0;DATARMNET8814564ab9 +->DATARMNETbc28a5970f=ntohl(DATARMNET0849981c7c);}DATARMNET458b70e7e5-> +DATARMNET645e8912b8=DATARMNETcb7325e02d(DATARMNET458b70e7e5);DATARMNET458b70e7e5 +->DATARMNET1ef22e4c76=DATARMNET9d1b321642->len-DATARMNET9d1b321642->ip_len- DATARMNET9d1b321642->trans_len;DATARMNET458b70e7e5->DATARMNET719f68fb88= DATARMNET9d1b321642;return false;}DATARMNETdf2dbc641f=rmnet_frag_data_ptr( -DATARMNET9d1b321642);DATARMNET5affe290b8=skb_frag_size(&DATARMNET9d1b321642-> -frag);DATARMNET458b70e7e5->DATARMNET3eb91ee54d=true;DATARMNET458b70e7e5-> -DATARMNETaebe0581f2=(DATARMNETdf2dbc641f[(0xd2d+202-0xdf7)]&(0xbf7+4405-0x1c3c)) ->>(0xd11+230-0xdf3);if(DATARMNET458b70e7e5->DATARMNETaebe0581f2== -(0xd11+230-0xdf3)){struct DATARMNET308c06fca6*DATARMNET86f1f2cdc9; -DATARMNET86f1f2cdc9=(struct DATARMNET308c06fca6*)DATARMNETdf2dbc641f; -DATARMNET458b70e7e5->DATARMNET1469d7a840=DATARMNET86f1f2cdc9;DATARMNET458b70e7e5 -->DATARMNETbecebb23ac=DATARMNET86f1f2cdc9->DATARMNET610d06a887*(0xd11+230-0xdf3) -;DATARMNET458b70e7e5->DATARMNET098910da0f=DATARMNET86f1f2cdc9-> -DATARMNET953d32410f;if(DATARMNET86f1f2cdc9->DATARMNET2c091223da&htons(16383)){ +DATARMNET9d1b321642);DATARMNET5affe290b8=DATARMNET9d1b321642->len; +DATARMNET458b70e7e5->DATARMNET3eb91ee54d=true;DATARMNET8814564ab9-> +DATARMNET388842c721=(DATARMNETdf2dbc641f[(0xd2d+202-0xdf7)]&(0xbf7+4405-0x1c3c)) +>>(0xd11+230-0xdf3);if(DATARMNET8814564ab9->DATARMNET388842c721== +(0xd11+230-0xdf3)){struct DATARMNET308c06fca6*DATARMNET86f1f2cdc9, +DATARMNETbf6548198e;DATARMNET86f1f2cdc9=rmnet_frag_header_ptr( +DATARMNET9d1b321642,(0xd2d+202-0xdf7),sizeof(*DATARMNET86f1f2cdc9),& +DATARMNETbf6548198e);if(!DATARMNET86f1f2cdc9)goto DATARMNETaabe3a05f8; +DATARMNET8814564ab9->DATARMNET4ca5ac9de1=DATARMNET86f1f2cdc9-> +DATARMNET610d06a887*(0xd11+230-0xdf3);DATARMNET8814564ab9->DATARMNET7fa8b2acbf= +DATARMNET86f1f2cdc9->DATARMNET953d32410f;DATARMNET8814564ab9-> +DATARMNET1a2be7b6c2=DATARMNET86f1f2cdc9->DATARMNET9bbd2ca483;DATARMNET8814564ab9 +->DATARMNET0a28fa80f4=DATARMNET86f1f2cdc9->DATARMNET11ef55b2bb; +DATARMNET8814564ab9->DATARMNET19b03754c4=DATARMNET86f1f2cdc9-> +DATARMNET1eb6c27583;DATARMNET8814564ab9->DATARMNET57bf608183=DATARMNET86f1f2cdc9 +->DATARMNET03e081f69f;DATARMNET8814564ab9->DATARMNETcf915688f5= +DATARMNET86f1f2cdc9->DATARMNET2c091223da;if(DATARMNET86f1f2cdc9-> +DATARMNET2c091223da&htons(16383)){DATARMNETa00cda79d0(DATARMNET807e4dad18);goto +DATARMNETaabe3a05f8;}DATARMNETdaa9248df1=ntohs(DATARMNET86f1f2cdc9-> +DATARMNET8e175ac02d);DATARMNET458b70e7e5->DATARMNET8f59f5a745= +DATARMNETdaa9248df1!=DATARMNET5affe290b8;}else if(DATARMNET8814564ab9-> +DATARMNET388842c721==(0xd03+244-0xdf1)){struct DATARMNET64bb8f616e* +DATARMNETbf55123e5b,DATARMNETcf1d9e2c1e;int DATARMNET0549c61885;__be16 +DATARMNET833503918f;u8 DATARMNET3f56a2bcf4;DATARMNETbf55123e5b= +rmnet_frag_header_ptr(DATARMNET9d1b321642,(0xd2d+202-0xdf7),sizeof(* +DATARMNETbf55123e5b),&DATARMNETcf1d9e2c1e);if(!DATARMNETbf55123e5b)goto +DATARMNETaabe3a05f8;DATARMNET3f56a2bcf4=DATARMNETbf55123e5b->DATARMNET7244bfdc4f +;DATARMNET0549c61885=rmnet_frag_ipv6_skip_exthdr(DATARMNET9d1b321642,sizeof(* +DATARMNETbf55123e5b),&DATARMNET3f56a2bcf4,&DATARMNET833503918f);if( +DATARMNET0549c61885<(0xd2d+202-0xdf7)){goto DATARMNETaabe3a05f8;} +DATARMNET8814564ab9->DATARMNET4ca5ac9de1=(u16)DATARMNET0549c61885; +DATARMNET8814564ab9->DATARMNET7fa8b2acbf=DATARMNET3f56a2bcf4;memcpy(& +DATARMNET8814564ab9->DATARMNET949c2754de[(0xd2d+202-0xdf7)],&DATARMNETbf55123e5b +->DATARMNET31202449fc[(0xd2d+202-0xdf7)],sizeof(DATARMNETbf55123e5b-> +DATARMNET31202449fc));memcpy(&DATARMNET8814564ab9->DATARMNET45ec858bc5[ +(0xd2d+202-0xdf7)],&DATARMNETbf55123e5b->DATARMNETc657c0a139[(0xd2d+202-0xdf7)], +sizeof(DATARMNETbf55123e5b->DATARMNETc657c0a139));DATARMNET8814564ab9-> +DATARMNETabd58f7f89=DATARMNETbf55123e5b->DATARMNET0687f7ecdc;if( +DATARMNET833503918f){if(DATARMNET8814564ab9->DATARMNET7fa8b2acbf== +DATARMNET5b166167a8)DATARMNET8814564ab9->DATARMNET4ca5ac9de1+=(0xd35+210-0xdff); DATARMNETa00cda79d0(DATARMNET807e4dad18);goto DATARMNETaabe3a05f8;} -DATARMNETdaa9248df1=ntohs(DATARMNET86f1f2cdc9->DATARMNET8e175ac02d); -DATARMNET458b70e7e5->DATARMNET8f59f5a745=DATARMNETdaa9248df1!= -DATARMNET5affe290b8;}else if(DATARMNET458b70e7e5->DATARMNETaebe0581f2== -(0xd03+244-0xdf1)){struct DATARMNET64bb8f616e*DATARMNETbf55123e5b;int -DATARMNET0549c61885;__be16 DATARMNET833503918f;u8 DATARMNET3f56a2bcf4; -DATARMNETbf55123e5b=(struct DATARMNET64bb8f616e*)DATARMNETdf2dbc641f; -DATARMNET458b70e7e5->DATARMNET5559b05582=DATARMNETbf55123e5b;DATARMNET3f56a2bcf4 -=DATARMNETbf55123e5b->DATARMNET7244bfdc4f;DATARMNET0549c61885= -rmnet_frag_ipv6_skip_exthdr(DATARMNET9d1b321642,sizeof(*DATARMNETbf55123e5b),& -DATARMNET3f56a2bcf4,&DATARMNET833503918f);if(DATARMNET0549c61885< -(0xd2d+202-0xdf7)){goto DATARMNETaabe3a05f8;}DATARMNET458b70e7e5-> -DATARMNETbecebb23ac=(u16)DATARMNET0549c61885;DATARMNET458b70e7e5-> -DATARMNET098910da0f=DATARMNET3f56a2bcf4;if(DATARMNET833503918f){if( -DATARMNET458b70e7e5->DATARMNET098910da0f==DATARMNET5b166167a8) -DATARMNET458b70e7e5->DATARMNETbecebb23ac+=(0xd35+210-0xdff);DATARMNETa00cda79d0( -DATARMNET807e4dad18);goto DATARMNETaabe3a05f8;}DATARMNETdaa9248df1=ntohs( -DATARMNETbf55123e5b->DATARMNETaa340485c5)+sizeof(*DATARMNETbf55123e5b); -DATARMNET458b70e7e5->DATARMNET8f59f5a745=DATARMNETdaa9248df1!= -DATARMNET5affe290b8;}else{return true;}DATARMNETdf2dbc641f+=DATARMNET458b70e7e5 -->DATARMNETbecebb23ac;if(DATARMNET458b70e7e5->DATARMNET098910da0f== -DATARMNETfd5c3d30e5){struct DATARMNETd2991e8952*DATARMNET2e7cc88971; -DATARMNET2e7cc88971=(struct DATARMNETd2991e8952*)DATARMNETdf2dbc641f; -DATARMNET458b70e7e5->DATARMNET96c6c71653=DATARMNET2e7cc88971;DATARMNET458b70e7e5 -->DATARMNET0ab9b2ce3b=DATARMNET2e7cc88971->DATARMNETcf2e43ad69*(0xd11+230-0xdf3) -;}else if(DATARMNET458b70e7e5->DATARMNET098910da0f==DATARMNETa656f324b2){struct -DATARMNET0b82084e89*DATARMNET75be5f3406;DATARMNET75be5f3406=(struct -DATARMNET0b82084e89*)DATARMNETdf2dbc641f;DATARMNET458b70e7e5-> -DATARMNET0da3c8035d=DATARMNET75be5f3406;DATARMNET458b70e7e5->DATARMNET0ab9b2ce3b -=sizeof(*DATARMNET75be5f3406);}else{goto DATARMNETaabe3a05f8;} -DATARMNET458b70e7e5->DATARMNET3eb91ee54d=false;DATARMNET458b70e7e5-> -DATARMNET645e8912b8=DATARMNETcb7325e02d(DATARMNET458b70e7e5);if(! -DATARMNET458b70e7e5->DATARMNET8f59f5a745){DATARMNET9d1b321642->ip_proto= -DATARMNET458b70e7e5->DATARMNETaebe0581f2;DATARMNET9d1b321642->ip_len= -DATARMNET458b70e7e5->DATARMNETbecebb23ac;DATARMNET9d1b321642->trans_proto= -DATARMNET458b70e7e5->DATARMNET098910da0f;DATARMNET9d1b321642->trans_len= -DATARMNET458b70e7e5->DATARMNET0ab9b2ce3b;DATARMNET9d1b321642->hdrs_valid= +DATARMNETdaa9248df1=ntohs(DATARMNETbf55123e5b->DATARMNETaa340485c5)+sizeof(* +DATARMNETbf55123e5b);DATARMNET458b70e7e5->DATARMNET8f59f5a745= +DATARMNETdaa9248df1!=DATARMNET5affe290b8;}else{return true;}if( +DATARMNET8814564ab9->DATARMNET7fa8b2acbf==DATARMNETfd5c3d30e5){struct +DATARMNETd2991e8952*DATARMNET2e7cc88971,DATARMNETd1ff6cd568;DATARMNET2e7cc88971= +rmnet_frag_header_ptr(DATARMNET9d1b321642,DATARMNET8814564ab9-> +DATARMNET4ca5ac9de1,sizeof(*DATARMNET2e7cc88971),&DATARMNETd1ff6cd568);if(! +DATARMNET2e7cc88971)goto DATARMNETaabe3a05f8;DATARMNET8814564ab9-> +DATARMNET0aeee57ceb=DATARMNET2e7cc88971->DATARMNETcf2e43ad69*(0xd11+230-0xdf3); +DATARMNET8814564ab9->DATARMNETa60d2ae3f6=DATARMNET2e7cc88971-> +DATARMNET6acbeeebb1;DATARMNET8814564ab9->DATARMNET5e7452ec23=DATARMNET2e7cc88971 +->DATARMNET29b8c05d14;DATARMNET8814564ab9->DATARMNETbc28a5970f=ntohl( +DATARMNET2e7cc88971->DATARMNETb3e70104e0);}else if(DATARMNET8814564ab9-> +DATARMNET7fa8b2acbf==DATARMNETa656f324b2){struct DATARMNET0b82084e89* +DATARMNET75be5f3406,DATARMNETc82d2f4e16;DATARMNET75be5f3406= +rmnet_frag_header_ptr(DATARMNET9d1b321642,DATARMNET8814564ab9-> +DATARMNET4ca5ac9de1,sizeof(*DATARMNET75be5f3406),&DATARMNETc82d2f4e16);if(! +DATARMNET75be5f3406)goto DATARMNETaabe3a05f8;DATARMNET8814564ab9-> +DATARMNET0aeee57ceb=sizeof(*DATARMNET75be5f3406);DATARMNET8814564ab9-> +DATARMNETa60d2ae3f6=DATARMNET75be5f3406->DATARMNET1b1c406ae9;DATARMNET8814564ab9 +->DATARMNET5e7452ec23=DATARMNET75be5f3406->DATARMNETdf0e8545ee;}else{goto +DATARMNETaabe3a05f8;}DATARMNET458b70e7e5->DATARMNET3eb91ee54d=false; +DATARMNET458b70e7e5->DATARMNET645e8912b8=DATARMNETcb7325e02d(DATARMNET458b70e7e5 +);if(!DATARMNET458b70e7e5->DATARMNET8f59f5a745){DATARMNET9d1b321642->ip_proto= +DATARMNET8814564ab9->DATARMNET388842c721;DATARMNET9d1b321642->ip_len= +DATARMNET8814564ab9->DATARMNET4ca5ac9de1;DATARMNET9d1b321642->trans_proto= +DATARMNET8814564ab9->DATARMNET7fa8b2acbf;DATARMNET9d1b321642->trans_len= +DATARMNET8814564ab9->DATARMNET0aeee57ceb;DATARMNET9d1b321642->hdrs_valid= (0xd26+209-0xdf6);}DATARMNETaabe3a05f8:DATARMNET458b70e7e5->DATARMNET1ef22e4c76= -DATARMNET5affe290b8-DATARMNET458b70e7e5->DATARMNETbecebb23ac-DATARMNET458b70e7e5 -->DATARMNET0ab9b2ce3b;if(DATARMNET458b70e7e5->DATARMNET8f59f5a745) +DATARMNET5affe290b8-DATARMNET8814564ab9->DATARMNET4ca5ac9de1-DATARMNET8814564ab9 +->DATARMNET0aeee57ceb;if(DATARMNET458b70e7e5->DATARMNET8f59f5a745) DATARMNETa00cda79d0(DATARMNET52b7da9033);DATARMNET458b70e7e5-> DATARMNET719f68fb88=DATARMNET9d1b321642;return false;}static void DATARMNET29e8d137c4(struct rmnet_frag_descriptor*DATARMNET9d1b321642,struct @@ -168,12 +217,12 @@ DATARMNET403589239f);}void DATARMNET19d190f2bd(struct DATARMNETd812bcdbb5* DATARMNET458b70e7e5){struct rmnet_frag_descriptor*DATARMNET9d1b321642= DATARMNET458b70e7e5->DATARMNET719f68fb88;u32 DATARMNET5affe290b8= DATARMNET458b70e7e5->DATARMNET1ef22e4c76+DATARMNET458b70e7e5-> -DATARMNETbecebb23ac+DATARMNET458b70e7e5->DATARMNET0ab9b2ce3b;if( -DATARMNET5affe290b8>65536)return;if(!DATARMNET458b70e7e5->DATARMNET3eb91ee54d) -DATARMNET9d1b321642->hash=DATARMNET458b70e7e5->DATARMNET645e8912b8; -DATARMNET58a244b2fe(DATARMNET9d1b321642,DATARMNET5affe290b8);}void -DATARMNET9292bebdd3(void*DATARMNETf0d9de7e2f){}void DATARMNETb7e47d7254(void* -DATARMNETf0d9de7e2f){}void DATARMNET95e1703026(struct rmnet_map_dl_ind_hdr* +DATARMNET144d119066.DATARMNET4ca5ac9de1+DATARMNET458b70e7e5->DATARMNET144d119066 +.DATARMNET0aeee57ceb;if(DATARMNET5affe290b8>65536)return;if(!DATARMNET458b70e7e5 +->DATARMNET3eb91ee54d)DATARMNET9d1b321642->hash=DATARMNET458b70e7e5-> +DATARMNET645e8912b8;DATARMNET58a244b2fe(DATARMNET9d1b321642,DATARMNET5affe290b8) +;}void DATARMNET9292bebdd3(void*DATARMNETf0d9de7e2f){}void DATARMNETb7e47d7254( +void*DATARMNETf0d9de7e2f){}void DATARMNET95e1703026(struct rmnet_map_dl_ind_hdr* DATARMNET7c7748ef7a,struct rmnet_map_control_command_header*DATARMNET8b07ee3e82) {struct DATARMNET70f3b87b5d*DATARMNETe05748b000=DATARMNETc2a630b113();(void) DATARMNET8b07ee3e82;if(DATARMNETe05748b000->DATARMNETa9f2b2f677. diff --git a/offload/rmnet_offload_main.h b/offload/rmnet_offload_main.h index 613d5b28ea11..b64c61d529e2 100644 --- a/offload/rmnet_offload_main.h +++ b/offload/rmnet_offload_main.h @@ -49,12 +49,15 @@ u8 DATARMNETcf2e43ad69:(0xd11+230-0xdf3);u8 DATARMNET655b34c160: u8 DATARMNETd570802f3d;__be16 DATARMNET807cd6af6c;__be16 DATARMNET8891a7f7ce; __be16 DATARMNET9921296467;};struct DATARMNET0b82084e89{__be16 DATARMNET1b1c406ae9;__be16 DATARMNETdf0e8545ee;__be16 DATARMNET39a05c5524;__be16 - DATARMNET45a3ebe8e3;};struct DATARMNETd812bcdbb5{struct rmnet_frag_descriptor* -DATARMNET719f68fb88;union{struct DATARMNET308c06fca6*DATARMNET1469d7a840;struct -DATARMNET64bb8f616e*DATARMNET5559b05582;};union{struct DATARMNETd2991e8952* -DATARMNET96c6c71653;struct DATARMNET0b82084e89*DATARMNET0da3c8035d;};u32 -DATARMNET645e8912b8;u16 DATARMNET1ef22e4c76;u16 DATARMNETbecebb23ac;u16 -DATARMNET0ab9b2ce3b;u8 DATARMNETaebe0581f2;u8 DATARMNET098910da0f;bool + DATARMNET45a3ebe8e3;};struct DATARMNET4287f07234{__be16 DATARMNETa60d2ae3f6; +__be16 DATARMNET5e7452ec23;union{__be32 DATARMNET1a2be7b6c2;__be32 +DATARMNET949c2754de[(0xd11+230-0xdf3)];};union{__be32 DATARMNET0a28fa80f4;__be32 + DATARMNET45ec858bc5[(0xd11+230-0xdf3)];};union{struct{u8 DATARMNET19b03754c4;u8 + DATARMNET57bf608183;__be16 DATARMNETcf915688f5;};__be32 DATARMNETabd58f7f89;}; +u32 DATARMNETbc28a5970f;u16 DATARMNET4ca5ac9de1;u16 DATARMNET0aeee57ceb;u8 +DATARMNET388842c721;u8 DATARMNET7fa8b2acbf;};struct DATARMNETd812bcdbb5{struct +rmnet_frag_descriptor*DATARMNET719f68fb88;struct DATARMNET4287f07234 +DATARMNET144d119066;u32 DATARMNET645e8912b8;u16 DATARMNET1ef22e4c76;bool DATARMNETf1b6b0a6cc;bool DATARMNET3eb91ee54d;bool DATARMNET8f59f5a745;};void DATARMNET664568fcd0(void);void DATARMNET6a76048590(void);void DATARMNET818b960147(void);void DATARMNETba38823a2f(void);bool diff --git a/offload/rmnet_offload_tcp.c b/offload/rmnet_offload_tcp.c index 8709e6776590..5ddb7ca9170b 100644 --- a/offload/rmnet_offload_tcp.c +++ b/offload/rmnet_offload_tcp.c @@ -10,58 +10,66 @@ * GNU General Public License for more details. */ +#include #include "rmnet_descriptor.h" #include "rmnet_offload_main.h" #include "rmnet_offload_engine.h" #include "rmnet_offload_stats.h" #include "rmnet_offload_knob.h" static bool DATARMNET2818ea93ec(struct DATARMNETd812bcdbb5*DATARMNET5fe4c722a8){ -struct DATARMNETd2991e8952*DATARMNET2e7cc88971=DATARMNET5fe4c722a8-> -DATARMNET96c6c71653;__be32 DATARMNETa8eeab014d;u8 DATARMNET1464100e7a= -DATARMNET2e7cc88971->DATARMNETd570802f3d;DATARMNETa8eeab014d=(0xbf7+4796-0x1e04) -;if((!DATARMNET5fe4c722a8->DATARMNET1ef22e4c76&&(DATARMNET1464100e7a& -(0xeb7+1158-0x132d)))||(DATARMNET1464100e7a&DATARMNETa8eeab014d))return true; -return false;}static bool DATARMNET829fcf5939(struct DATARMNETd7c9631acd* -DATARMNETaa568481cf,struct DATARMNETd812bcdbb5*DATARMNET5fe4c722a8){struct -DATARMNETd2991e8952*DATARMNET699c2c62cd,*DATARMNET8814564ab9;u32 -DATARMNET3c3abe9e2c,DATARMNETefc9df3df2;DATARMNET699c2c62cd=DATARMNETaa568481cf -->DATARMNET8cd2f78e4f;DATARMNET8814564ab9=DATARMNET5fe4c722a8-> -DATARMNET96c6c71653;DATARMNET3c3abe9e2c=DATARMNET699c2c62cd->DATARMNETcf2e43ad69 -*(0xd11+230-0xdf3);if(DATARMNET8814564ab9->DATARMNETcf2e43ad69*(0xd11+230-0xdf3) +struct DATARMNETd2991e8952*DATARMNET2e7cc88971,DATARMNETd1ff6cd568;__be32 +DATARMNETa8eeab014d;u8 DATARMNET1464100e7a;DATARMNET2e7cc88971= +rmnet_frag_header_ptr(DATARMNET5fe4c722a8->DATARMNET719f68fb88, +DATARMNET5fe4c722a8->DATARMNET144d119066.DATARMNET4ca5ac9de1,sizeof(* +DATARMNET2e7cc88971),&DATARMNETd1ff6cd568);if(!DATARMNET2e7cc88971)return true; +DATARMNETa8eeab014d=(0xbf7+4796-0x1e04);DATARMNET1464100e7a=DATARMNET2e7cc88971 +->DATARMNETd570802f3d;if((!DATARMNET5fe4c722a8->DATARMNET1ef22e4c76&&( +DATARMNET1464100e7a&(0xeb7+1158-0x132d)))||(DATARMNET1464100e7a& +DATARMNETa8eeab014d))return true;return false;}static bool DATARMNET829fcf5939( +struct DATARMNETd7c9631acd*DATARMNETaa568481cf,struct DATARMNETd812bcdbb5* +DATARMNET5fe4c722a8){struct DATARMNETd2991e8952*DATARMNET699c2c62cd, +DATARMNETee66845de4;struct DATARMNETd2991e8952*DATARMNET8814564ab9, +DATARMNETa27d4d22be;struct rmnet_frag_descriptor*DATARMNET48cfce4de4;u32 +DATARMNET3c3abe9e2c,DATARMNETefc9df3df2;DATARMNET48cfce4de4=list_first_entry(& +DATARMNETaa568481cf->DATARMNETb76b79d0d5,struct rmnet_frag_descriptor,list); +DATARMNET699c2c62cd=rmnet_frag_header_ptr(DATARMNET48cfce4de4, +DATARMNETaa568481cf->DATARMNET78fd20ce0e.DATARMNET4ca5ac9de1,sizeof(* +DATARMNET699c2c62cd),&DATARMNETee66845de4);if(!DATARMNET699c2c62cd)return true; +DATARMNET8814564ab9=rmnet_frag_header_ptr(DATARMNET5fe4c722a8-> +DATARMNET719f68fb88,DATARMNET5fe4c722a8->DATARMNET144d119066.DATARMNET4ca5ac9de1 +,sizeof(*DATARMNET8814564ab9),&DATARMNETa27d4d22be);if(!DATARMNET8814564ab9) +return true;DATARMNET3c3abe9e2c=DATARMNET699c2c62cd->DATARMNETcf2e43ad69* +(0xd11+230-0xdf3);if(DATARMNET8814564ab9->DATARMNETcf2e43ad69*(0xd11+230-0xdf3) !=DATARMNET3c3abe9e2c)return true;for(DATARMNETefc9df3df2=sizeof(* DATARMNET699c2c62cd);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{ +struct DATARMNETd812bcdbb5*DATARMNET5fe4c722a8){u64 DATARMNET7457d496cb;u32 +DATARMNET95acece3fc;if(DATARMNET2818ea93ec(DATARMNET5fe4c722a8)){ +DATARMNETa00cda79d0(DATARMNETb322de38be);return DATARMNET7af645849a;}if(! +DATARMNETaa568481cf->DATARMNET1db11fa85e)return DATARMNET0413b43080;if( +DATARMNET829fcf5939(DATARMNETaa568481cf,DATARMNET5fe4c722a8)){ +DATARMNETa00cda79d0(DATARMNET38317c7efd);return DATARMNETb0bd5db24d;}if( +DATARMNET5fe4c722a8->DATARMNET144d119066.DATARMNETbc28a5970f^DATARMNETaa568481cf +->DATARMNET78fd20ce0e.DATARMNETbc28a5970f){DATARMNETa00cda79d0( +DATARMNET31c0e41f5a);return DATARMNET7af645849a;}DATARMNET95acece3fc=( +DATARMNET5fe4c722a8->DATARMNET719f68fb88->gso_size)?:DATARMNET5fe4c722a8-> +DATARMNET1ef22e4c76;if(DATARMNET95acece3fc!=DATARMNETaa568481cf-> +DATARMNET1978d5d8de){DATARMNETa00cda79d0(DATARMNET0cd1fa0d98);return +DATARMNETb0bd5db24d;}DATARMNET7457d496cb=DATARMNETf1d1b8287f(DATARMNETdf66588a73 +);if(DATARMNET5fe4c722a8->DATARMNET1ef22e4c76+DATARMNETaa568481cf-> +DATARMNETcf28ae376b>=DATARMNET7457d496cb){DATARMNETa00cda79d0( +DATARMNET1c0d243816);return DATARMNETb0bd5db24d;}DATARMNET5fe4c722a8-> +DATARMNETf1b6b0a6cc=false;return DATARMNET0413b43080;}bool DATARMNET4c7cdc25b7( +struct DATARMNETd7c9631acd*DATARMNETaa568481cf,struct DATARMNETd812bcdbb5* +DATARMNET5fe4c722a8,bool DATARMNETd87669e323){int DATARMNETb14e52a504;if( +DATARMNETd87669e323){DATARMNETa00cda79d0(DATARMNET47a963957c); DATARMNETa3055c21f2(DATARMNETaa568481cf);DATARMNET19d190f2bd(DATARMNET5fe4c722a8 -);}return true;} +);return true;}DATARMNETb14e52a504=DATARMNET9a13d70865(DATARMNETaa568481cf, +DATARMNET5fe4c722a8);if(DATARMNETb14e52a504==DATARMNET0413b43080){ +DATARMNET33aa5df9ef(DATARMNETaa568481cf,DATARMNET5fe4c722a8);}else if( +DATARMNETb14e52a504==DATARMNETb0bd5db24d){DATARMNETa3055c21f2( +DATARMNETaa568481cf);DATARMNET33aa5df9ef(DATARMNETaa568481cf,DATARMNET5fe4c722a8 +);}else{DATARMNETa3055c21f2(DATARMNETaa568481cf);DATARMNET19d190f2bd( +DATARMNET5fe4c722a8);}return true;} From cab690913631c43a4930bcada0bdd4982c3fbe2c Mon Sep 17 00:00:00 2001 From: Sean Tranchetti Date: Mon, 31 Aug 2020 15:32:14 -0600 Subject: [PATCH 18/36] rmnet_offload: Icbdb04bbb81a26ba2b71d7d945fb094ae9c7cd50 Updates modules to version Icbdb04bbb81a26ba2b71d7d945fb094ae9c7cd50. Change-Id: I68a61f5eb1f2707aa45d912f1459d1b1996a1b8e Signed-off-by: Sean Tranchetti --- offload/rmnet_offload_main.c | 24 +++++++++++++----------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/offload/rmnet_offload_main.c b/offload/rmnet_offload_main.c index 0c0754cb70af..0dcabc7715a8 100644 --- a/offload/rmnet_offload_main.c +++ b/offload/rmnet_offload_main.c @@ -35,6 +35,8 @@ 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" ,};static DEFINE_SPINLOCK(DATARMNET0b5e447f18);static u32 DATARMNETcb7325e02d( struct DATARMNETd812bcdbb5*DATARMNET458b70e7e5){struct DATARMNET4287f07234* DATARMNET8814564ab9=&DATARMNET458b70e7e5->DATARMNET144d119066;__be32 @@ -111,17 +113,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-> From 3250b848b0d595110a3a4f16f6d543e7bfcde25b Mon Sep 17 00:00:00 2001 From: Subash Abhinov Kasiviswanathan Date: Tue, 1 Sep 2020 16:44:30 -0600 Subject: [PATCH 19/36] rmnet_shs: I44be33289d4a077dadded8b2eb1a1d436f2d43da Update to I44be33289d4a077dadded8b2eb1a1d436f2d43da Change-Id: I44be33289d4a077dadded8b2eb1a1d436f2d43da Signed-off-by: Subash Abhinov Kasiviswanathan --- shs/rmnet_shs_common.c | 26 ++++++++++++++++++-------- shs/rmnet_shs_common.h | 21 +++++++++++---------- shs/rmnet_shs_wq.c | 2 +- 3 files changed, 30 insertions(+), 19 deletions(-) diff --git a/shs/rmnet_shs_common.c b/shs/rmnet_shs_common.c index 377258cd128e..872bccb7bb47 100644 --- a/shs/rmnet_shs_common.c +++ b/shs/rmnet_shs_common.c @@ -98,19 +98,29 @@ DATARMNET42a992465f){u32 ret=(0xd2d+202-0xdf7);if(DATARMNET42a992465f< DATARMNETc6782fed88)ret=DATARMNET0997c5650d[DATARMNET42a992465f]. DATARMNET96571b28de;DATARMNETda96251102(DATARMNET75d955c408,DATARMNETc154fd2d48, DATARMNET42a992465f,ret,(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),NULL,NULL);return -ret;}int DATARMNETd5c15f1ff3(void*priv,struct list_head*DATARMNET9cf7d31274, -struct list_head*DATARMNET5444bd3b6f){struct DATARMNET09a412b1c6* -DATARMNET40e125212a;struct DATARMNET09a412b1c6*DATARMNETdcaff77beb;if(! +ret;}int DATARMNET3c489db64a(void*priv,struct list_head*DATARMNET9cf7d31274, +struct list_head*DATARMNET5444bd3b6f){struct DATARMNET13c47d154e* +DATARMNET40e125212a;struct DATARMNET13c47d154e*DATARMNETdcaff77beb;if(! DATARMNET9cf7d31274||!DATARMNET5444bd3b6f)return(0xd2d+202-0xdf7); -DATARMNET40e125212a=list_entry(DATARMNET9cf7d31274,struct DATARMNET09a412b1c6, -DATARMNETd502c0412a);DATARMNETdcaff77beb=list_entry(DATARMNET5444bd3b6f,struct -DATARMNET09a412b1c6,DATARMNETd502c0412a);if(DATARMNET40e125212a-> +DATARMNET40e125212a=list_entry(DATARMNET9cf7d31274,struct DATARMNET13c47d154e, +DATARMNETec0e3cb8f0);DATARMNETdcaff77beb=list_entry(DATARMNET5444bd3b6f,struct +DATARMNET13c47d154e,DATARMNETec0e3cb8f0);if(DATARMNET40e125212a-> DATARMNET253a9fc708>DATARMNETdcaff77beb->DATARMNET253a9fc708)return- (0xd26+209-0xdf6);else if(DATARMNET40e125212a->DATARMNET253a9fc708< DATARMNETdcaff77beb->DATARMNET253a9fc708)return(0xd26+209-0xdf6);return -(0xd2d+202-0xdf7);}int DATARMNET85af86a36d(void*priv,struct list_head* +(0xd2d+202-0xdf7);}int DATARMNETd5c15f1ff3(void*priv,struct list_head* DATARMNET9cf7d31274,struct list_head*DATARMNET5444bd3b6f){struct -DATARMNET47a6995138*DATARMNETdad817a72a;struct DATARMNET47a6995138* +DATARMNET09a412b1c6*DATARMNET40e125212a;struct DATARMNET09a412b1c6* +DATARMNETdcaff77beb;if(!DATARMNET9cf7d31274||!DATARMNET5444bd3b6f)return +(0xd2d+202-0xdf7);DATARMNET40e125212a=list_entry(DATARMNET9cf7d31274,struct +DATARMNET09a412b1c6,DATARMNETd502c0412a);DATARMNETdcaff77beb=list_entry( +DATARMNET5444bd3b6f,struct DATARMNET09a412b1c6,DATARMNETd502c0412a);if( +DATARMNET40e125212a->DATARMNET253a9fc708>DATARMNETdcaff77beb-> +DATARMNET253a9fc708)return-(0xd26+209-0xdf6);else if(DATARMNET40e125212a-> +DATARMNET253a9fc708DATARMNET253a9fc708)return +(0xd26+209-0xdf6);return(0xd2d+202-0xdf7);}int DATARMNET85af86a36d(void*priv, +struct list_head*DATARMNET9cf7d31274,struct list_head*DATARMNET5444bd3b6f){ +struct DATARMNET47a6995138*DATARMNETdad817a72a;struct DATARMNET47a6995138* DATARMNET11d167e92b;if(!DATARMNET9cf7d31274||!DATARMNET5444bd3b6f)return (0xd2d+202-0xdf7);DATARMNETdad817a72a=list_entry(DATARMNET9cf7d31274,struct DATARMNET47a6995138,DATARMNET02523bfb57);DATARMNET11d167e92b=list_entry( diff --git a/shs/rmnet_shs_common.h b/shs/rmnet_shs_common.h index 2a5113113914..6ffde21a3083 100644 --- a/shs/rmnet_shs_common.h +++ b/shs/rmnet_shs_common.h @@ -30,16 +30,17 @@ list_head*DATARMNET4d030eb9b5,int DATARMNETa7a5705ab0);void DATARMNET4bde88919f( u8 cpu,int count);inline int DATARMNET362b15f941(u16 cpu);u64 DATARMNETfc888b4d3e(u16 cpu);u32 DATARMNETeb3978575d(u8 DATARMNET42a992465f);u32 DATARMNETeea3cef5b6(u8 DATARMNET42a992465f);u8 DATARMNET928c931df9(struct -rps_map*map);int DATARMNETd5c15f1ff3(void*priv,struct list_head* +rps_map*map);int DATARMNET3c489db64a(void*priv,struct list_head* DATARMNET9cf7d31274,struct list_head*DATARMNET5444bd3b6f);int -DATARMNET85af86a36d(void*priv,struct list_head*DATARMNET9cf7d31274,struct -list_head*DATARMNET5444bd3b6f);int DATARMNETf181a18009(struct net_device*dev); -int DATARMNET98b2a0ce62(struct net_device*dev);void DATARMNET7f1d9480cb(void* -port);void DATARMNETa4bd2ef52c(void*port);int DATARMNET310c3eb16e(u8 mask);void -DATARMNETb4a6870b3b(struct DATARMNET6c78e47d24*DATARMNETd2a694d52a);void -DATARMNETd8a6375e9c(struct DATARMNET6c78e47d24*DATARMNETd2a694d52a,struct -list_head*head);void DATARMNET9914e9761e(struct DATARMNET6c78e47d24* -DATARMNETd2a694d52a,struct list_head*head);extern struct list_head -DATARMNET9825511866; +DATARMNETd5c15f1ff3(void*priv,struct list_head*DATARMNET9cf7d31274,struct +list_head*DATARMNET5444bd3b6f);int DATARMNET85af86a36d(void*priv,struct +list_head*DATARMNET9cf7d31274,struct list_head*DATARMNET5444bd3b6f);int +DATARMNETf181a18009(struct net_device*dev);int DATARMNET98b2a0ce62(struct +net_device*dev);void DATARMNET7f1d9480cb(void*port);void DATARMNETa4bd2ef52c( +void*port);int DATARMNET310c3eb16e(u8 mask);void DATARMNETb4a6870b3b(struct +DATARMNET6c78e47d24*DATARMNETd2a694d52a);void DATARMNETd8a6375e9c(struct +DATARMNET6c78e47d24*DATARMNETd2a694d52a,struct list_head*head);void +DATARMNET9914e9761e(struct DATARMNET6c78e47d24*DATARMNETd2a694d52a,struct +list_head*head);extern struct list_head DATARMNET9825511866; #endif diff --git a/shs/rmnet_shs_wq.c b/shs/rmnet_shs_wq.c index a076696aeaf9..642f9faf21e5 100644 --- a/shs/rmnet_shs_wq.c +++ b/shs/rmnet_shs_wq.c @@ -574,7 +574,7 @@ DATARMNETe46ae760db||!DATARMNETb436c3f30b||!DATARMNETf0fb155a9c||! DATARMNET3208cd0982){DATARMNET68d84e7b98[DATARMNETac729c3d29]++;return;} list_sort(NULL,DATARMNETe46ae760db,&DATARMNET85af86a36d);list_sort(NULL, DATARMNETb436c3f30b,&DATARMNETd5c15f1ff3);list_sort(NULL,DATARMNET3208cd0982,& -DATARMNETd5c15f1ff3);DATARMNET5157210c44(DATARMNETe46ae760db); +DATARMNET3c489db64a);DATARMNET5157210c44(DATARMNETe46ae760db); DATARMNET0e273eab79(DATARMNETb436c3f30b);DATARMNETe15af8eb6d(DATARMNETf0fb155a9c );DATARMNET78f3a0ca4f(DATARMNET3208cd0982);DATARMNET78666f33a1(); DATARMNET5945236cd3(DATARMNET7afb49ee3f);trace_rmnet_shs_wq_high( From 54b5063c3319cd87a961dfe4c8adf0f1be33252d Mon Sep 17 00:00:00 2001 From: Kaustubh Pandey Date: Fri, 4 Sep 2020 10:27:35 +0530 Subject: [PATCH 20/36] datarmnet-ext: Enable offload and shs for holi Enable offload and shs for holi. Change-Id: I5e3a39942ecded1cd72189e5650339ac09700f5d Signed-off-by: Kaustubh Pandey --- datarmnet_ext_dlkm_vendor_board.mk | 1 + offload/Android.mk | 1 + shs/Android.mk | 1 + 3 files changed, 3 insertions(+) diff --git a/datarmnet_ext_dlkm_vendor_board.mk b/datarmnet_ext_dlkm_vendor_board.mk index 127403852a62..a05dcbf282c9 100644 --- a/datarmnet_ext_dlkm_vendor_board.mk +++ b/datarmnet_ext_dlkm_vendor_board.mk @@ -1,5 +1,6 @@ #Build rmnet modules DATA_DLKM_BOARD_PLATFORMS_LIST := lahaina +DATA_DLKM_BOARD_PLATFORMS_LIST += holi ifneq ($(TARGET_BOARD_AUTO),true) ifeq ($(call is-board-platform-in-list,$(DATA_DLKM_BOARD_PLATFORMS_LIST)),true) BOARD_VENDOR_KERNEL_MODULES += $(KERNEL_MODULES_OUT)/rmnet_offload.ko diff --git a/offload/Android.mk b/offload/Android.mk index 132f51a2a913..d7b5268f198d 100644 --- a/offload/Android.mk +++ b/offload/Android.mk @@ -2,6 +2,7 @@ ifneq ($(TARGET_BOARD_AUTO),true) ifneq ($(TARGET_PRODUCT),qssi) RMNET_OFFLOAD_DLKM_PLATFORMS_LIST := lahaina +RMNET_OFFLOAD_DLKM_PLATFORMS_LIST += holi ifeq ($(call is-board-platform-in-list, $(RMNET_OFFLOAD_DLKM_PLATFORMS_LIST)),true) LOCAL_PATH := $(call my-dir) diff --git a/shs/Android.mk b/shs/Android.mk index 9e9f90b8cc88..09ca5f45369e 100644 --- a/shs/Android.mk +++ b/shs/Android.mk @@ -1,5 +1,6 @@ ifneq ($(TARGET_PRODUCT),qssi) RMNET_SHS_DLKM_PLATFORMS_LIST := lahaina +RMNET_SHS_DLKM_PLATFORMS_LIST += holi ifeq ($(call is-board-platform-in-list, $(RMNET_SHS_DLKM_PLATFORMS_LIST)),true) #Make file to create RMNET_SHS DLKM From 7afb36c46e4b87ef9a55172b0db225ac28c49256 Mon Sep 17 00:00:00 2001 From: Sean Tranchetti Date: Thu, 10 Sep 2020 19:29:07 -0600 Subject: [PATCH 21/36] rmnet_offload: I953075b0b6feb493a52a36d332ece5bdf571e4e6 Updates the module to version I953075b0b6feb493a52a36d332ece5bdf571e4e6. Change-Id: I822a538eb13947ad1cee2d5d272da8982747d2b9 Signed-off-by: Sean Tranchetti --- offload/rmnet_offload_main.c | 2 + offload/rmnet_offload_tcp.c | 113 ++++++++++++++++++----------------- 2 files changed, 61 insertions(+), 54 deletions(-) diff --git a/offload/rmnet_offload_main.c b/offload/rmnet_offload_main.c index 0dcabc7715a8..dbcff94ee18d 100644 --- a/offload/rmnet_offload_main.c +++ b/offload/rmnet_offload_main.c @@ -37,6 +37,8 @@ static const char*DATARMNET9be3ddbe97[]__always_unused={ "\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" ,};static DEFINE_SPINLOCK(DATARMNET0b5e447f18);static u32 DATARMNETcb7325e02d( struct DATARMNETd812bcdbb5*DATARMNET458b70e7e5){struct DATARMNET4287f07234* DATARMNET8814564ab9=&DATARMNET458b70e7e5->DATARMNET144d119066;__be32 diff --git a/offload/rmnet_offload_tcp.c b/offload/rmnet_offload_tcp.c index 5ddb7ca9170b..601eb5b7ed53 100644 --- a/offload/rmnet_offload_tcp.c +++ b/offload/rmnet_offload_tcp.c @@ -16,60 +16,65 @@ #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 +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){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);DATARMNETefc9df3df2DATARMNET1db11fa85e)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;} From d2b7bdd020ffe29058e2ac90025e7fa7bbb1683e Mon Sep 17 00:00:00 2001 From: Sean Tranchetti Date: Fri, 2 Oct 2020 14:00:06 -0600 Subject: [PATCH 22/36] rmnet_shs: I69782bac40d8d2b9bac9dad00ed0cfbed0c75202 Updates the module to version I69782bac40d8d2b9bac9dad00ed0cfbed0c75202. Change-Id: Id4d5584f1452db4b443c9210015446e5bc139400 Signed-off-by: Sean Tranchetti --- shs/rmnet_shs_config.c | 2 + shs/rmnet_shs_main.c | 109 ++++++++++++++++++++--------------------- 2 files changed, 54 insertions(+), 57 deletions(-) diff --git a/shs/rmnet_shs_config.c b/shs/rmnet_shs_config.c index bb56c8d2f111..d61ecfe23381 100644 --- a/shs/rmnet_shs_config.c +++ b/shs/rmnet_shs_config.c @@ -39,6 +39,8 @@ DATARMNET5fc54f7a13 __read_mostly={.notifier_call=DATARMNETe9173bbe0e,.priority= "\x49\x36\x66\x31\x39\x39\x34\x35\x37\x30\x38\x38\x63\x39\x66\x33\x33\x64\x36\x39\x31\x39\x32\x64\x64\x32\x34\x33\x36\x30\x62\x39\x35\x37\x31\x38\x64\x62\x35\x34\x64" , "\x49\x35\x65\x30\x32\x34\x66\x38\x66\x30\x64\x31\x61\x66\x61\x38\x36\x33\x37\x33\x35\x33\x62\x31\x64\x62\x38\x62\x65\x37\x37\x34\x35\x30\x65\x32\x31\x36\x39\x36\x32" +, +"\x49\x36\x39\x37\x38\x32\x62\x61\x63\x34\x30\x64\x38\x64\x32\x62\x39\x62\x61\x63\x39\x64\x61\x64\x30\x30\x65\x64\x30\x63\x66\x62\x65\x64\x30\x63\x37\x35\x32\x30\x32" };static int DATARMNET2cb9ae589c;int __init DATARMNET163e93649e(void){pr_info( "\x25\x73\x28\x29\x3a\x20\x53\x74\x61\x72\x74\x69\x6e\x67\x20\x72\x6d\x6e\x65\x74\x20\x53\x48\x53\x20\x6d\x6f\x64\x75\x6c\x65\x20\x25\x73\x20" "\n" ,__func__,DATARMNETbc8418e817[(0xd2d+202-0xdf7)]);trace_rmnet_shs_high( diff --git a/shs/rmnet_shs_main.c b/shs/rmnet_shs_main.c index 0612a1c42ebf..be67cd99bff0 100644 --- a/shs/rmnet_shs_main.c +++ b/shs/rmnet_shs_main.c @@ -51,26 +51,28 @@ DEFINE_SPINLOCK(DATARMNET3764d083f0);DEFINE_HASHTABLE(DATARMNETe603c3a4b3, DATARMNET25437d35fd);struct DATARMNETe600c5b727 DATARMNET0997c5650d[ DATARMNETc6782fed88];int DATARMNETcff375d916[DATARMNETc6782fed88];struct DATARMNETa6b20d7e8b DATARMNETecc0627c70;struct DATARMNET37ef896af8 shs_rx_work; -int DATARMNET9303cec796(struct sk_buff*skb){int DATARMNETbd864aa442= -(0xd2d+202-0xdf7);struct iphdr*ip4h;struct ipv6hdr*ip6h;if(!skb_is_nonlinear(skb -)){switch(skb->protocol){case htons(ETH_P_IP):if(!ip_is_fragment(ip_hdr(skb))&&( -(ip_hdr(skb)->protocol==IPPROTO_TCP)||(ip_hdr(skb)->protocol==IPPROTO_UDP))){ -DATARMNETbd864aa442=(0xd26+209-0xdf6);break;}if(ip_hdr(skb)->protocol== -IPPROTO_ICMP){skb->hash=(0xd2d+202-0xdf7);skb->sw_hash=(0xd26+209-0xdf6);}break; -case htons(ETH_P_IPV6):if(!(ipv6_hdr(skb)->nexthdr==NEXTHDR_FRAGMENT)&&(( -ipv6_hdr(skb)->nexthdr==IPPROTO_TCP)||(ipv6_hdr(skb)->nexthdr==IPPROTO_UDP))){ -DATARMNETbd864aa442=(0xd26+209-0xdf6);break;}if(ipv6_hdr(skb)->nexthdr== -IPPROTO_ICMP){skb->hash=(0xd2d+202-0xdf7);skb->sw_hash=(0xd26+209-0xdf6);}break; -default:break;}}else{switch(skb->protocol){case htons(ETH_P_IP):ip4h=(struct -iphdr*)rmnet_map_data_ptr(skb);if(!(ntohs(ip4h->frag_off)&IP_MF)&&((ntohs(ip4h-> -frag_off)&IP_OFFSET)==(0xd2d+202-0xdf7))&&(ip4h->protocol==IPPROTO_TCP||ip4h-> -protocol==IPPROTO_UDP)){DATARMNETbd864aa442=(0xd26+209-0xdf6);break;}if(ip4h-> -protocol==IPPROTO_ICMP){skb->hash=(0xd2d+202-0xdf7);skb->sw_hash= -(0xd26+209-0xdf6);}break;case htons(ETH_P_IPV6):ip6h=(struct ipv6hdr*) -rmnet_map_data_ptr(skb);if(!(ip6h->nexthdr==NEXTHDR_FRAGMENT)&&((ip6h->nexthdr== -IPPROTO_TCP)||(ip6h->nexthdr==IPPROTO_UDP))){DATARMNETbd864aa442= +static void*DATARMNETefcaf5fbe9(struct sk_buff*skb,u32 offset,u32 +DATARMNET567bdc7221,void*buf){struct skb_shared_info*shinfo=skb_shinfo(skb); +skb_frag_t*frag;u32 DATARMNETedc267a909=offset;int i;if(offset>skb->len|| +DATARMNET567bdc7221>skb->len||offset+DATARMNET567bdc7221>skb->len)return NULL;if +(skb_headlen(skb)>=offset+DATARMNET567bdc7221)return skb->data+offset;offset-= +skb_headlen(skb);for(i=(0xd2d+202-0xdf7);inr_frags;i++){u32 frag_size; +frag=&shinfo->frags[i];frag_size=skb_frag_size(frag);if(offset>=frag_size){ +offset-=frag_size;continue;}if(frag_size>=offset+DATARMNET567bdc7221)return +skb_frag_address(frag)+offset;}if(skb_copy_bits(skb,(int)DATARMNETedc267a909,buf +,(int)DATARMNET567bdc7221))return NULL;return buf;}int DATARMNET9303cec796( +struct sk_buff*skb){int DATARMNETbd864aa442=(0xd2d+202-0xdf7);struct iphdr*ip4h, +DATARMNETc00baf31c3;struct ipv6hdr*ip6h,DATARMNETcf1d9e2c1e;switch(skb->protocol +){case htons(ETH_P_IP):ip4h=DATARMNETefcaf5fbe9(skb,(0xd2d+202-0xdf7),sizeof(* +ip4h),&DATARMNETc00baf31c3);if(!ip4h)break;if(!ip_is_fragment(ip4h)&&(ip4h-> +protocol==IPPROTO_TCP||ip4h->protocol==IPPROTO_UDP)){DATARMNETbd864aa442= +(0xd26+209-0xdf6);break;}if(ip4h->protocol==IPPROTO_ICMP){skb->hash= +(0xd2d+202-0xdf7);skb->sw_hash=(0xd26+209-0xdf6);}break;case htons(ETH_P_IPV6): +ip6h=DATARMNETefcaf5fbe9(skb,(0xd2d+202-0xdf7),sizeof(*ip6h),& +DATARMNETcf1d9e2c1e);if(!ip6h)break;if(!(ip6h->nexthdr==NEXTHDR_FRAGMENT)&&(ip6h +->nexthdr==IPPROTO_TCP||ip6h->nexthdr==IPPROTO_UDP)){DATARMNETbd864aa442= (0xd26+209-0xdf6);break;}if(ip6h->nexthdr==IPPROTO_ICMP){skb->hash= -(0xd2d+202-0xdf7);skb->sw_hash=(0xd26+209-0xdf6);}break;default:break;}} +(0xd2d+202-0xdf7);skb->sw_hash=(0xd26+209-0xdf6);}break;default:break;} DATARMNETda96251102(DATARMNETcd24fca747,DATARMNET116c96c236,DATARMNETbd864aa442, (0x16e8+787-0xc0c),(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),skb,NULL);return DATARMNETbd864aa442;}static void DATARMNETfa919d00dc(int cpu,int @@ -548,44 +550,37 @@ DATARMNETae4b27456e.head=NULL;DATARMNET63b1a086d5->DATARMNETae4b27456e.tail=NULL DATARMNETa2e32cdd3a=(0xd2d+202-0xdf7);DATARMNETecc0627c70.DATARMNETd9cfd2812b= (0xd2d+202-0xdf7);DATARMNETecc0627c70.DATARMNET34097703c8=DATARMNET8dcf06727b; spin_unlock_irqrestore(&DATARMNET3764d083f0,ht_flags);}void DATARMNET44459105b4( -struct sk_buff*skb,struct DATARMNET63d7680df2*node_p){struct iphdr*ip4h;struct -ipv6hdr*ip6h;struct tcphdr*tp;struct udphdr*up;int len=(0xd2d+202-0xdf7);u16 -ip_len=(0xd2d+202-0xdf7);__be16 frag_off;u8 protocol;node_p->DATARMNETa1099c74fe -=(0xd2d+202-0xdf7);if(!skb_is_nonlinear(skb)){switch(skb->protocol){case htons( -ETH_P_IP):node_p->DATARMNET1e9d25d9ff=ip_hdr(skb)->protocol;memcpy(&(node_p-> -ip_hdr.DATARMNETac9bbaad7c),ip_hdr(skb),sizeof(struct iphdr));ip_len=ip_hdr(skb) -->ihl*(0xd11+230-0xdf3);node_p->DATARMNETa1099c74fe=!(ip_hdr(skb)->frag_off& -htons(IP_DF));break;case htons(ETH_P_IPV6):node_p->DATARMNET1e9d25d9ff=ipv6_hdr( -skb)->nexthdr;memcpy(&(node_p->ip_hdr.DATARMNET1688a97aa4),ip_hdr(skb),sizeof( -struct ipv6hdr));protocol=ipv6_hdr(skb)->nexthdr;len=ipv6_skip_exthdr(skb,sizeof -(*ip6h),&protocol,&frag_off);if(len<(0xd2d+202-0xdf7)){return;}ip_len=(u16)len; -break;default:break;}}else{switch(skb->protocol){case htons(ETH_P_IP):ip4h=( -struct iphdr*)rmnet_map_data_ptr(skb);node_p->DATARMNET1e9d25d9ff=ip4h->protocol -;memcpy(&(node_p->ip_hdr.DATARMNETac9bbaad7c),ip4h,sizeof(struct iphdr));ip_len= -ip4h->ihl*(0xd11+230-0xdf3);node_p->DATARMNETa1099c74fe=!(ip4h->frag_off&htons( -IP_DF));break;case htons(ETH_P_IPV6):ip6h=(struct ipv6hdr*)rmnet_map_data_ptr( -skb);node_p->DATARMNET1e9d25d9ff=ip6h->nexthdr;memcpy(&(node_p->ip_hdr. -DATARMNET1688a97aa4),ip6h,sizeof(struct ipv6hdr));protocol=ipv6_hdr(skb)-> -nexthdr;len=ipv6_skip_exthdr(skb,sizeof(*ip6h),&protocol,&frag_off);if(len< -(0xd2d+202-0xdf7)){return;}ip_len=(u16)len;break;default:break;}}if(node_p-> -DATARMNET1e9d25d9ff==IPPROTO_TCP){if(!skb_is_nonlinear(skb)){tp=(struct tcphdr*) -(skb->data+ip_len);}else{tp=(struct tcphdr*)(rmnet_map_data_ptr(skb)+ip_len);} -memcpy(&(node_p->DATARMNETe33b41dad9.tp),tp,sizeof(struct tcphdr));}else if( -node_p->DATARMNET1e9d25d9ff==IPPROTO_UDP){if(!skb_is_nonlinear(skb)){up=(struct -udphdr*)(skb->data+ip_len);}else{up=(struct udphdr*)(rmnet_map_data_ptr(skb)+ -ip_len);}memcpy(&(node_p->DATARMNETe33b41dad9.up),up,sizeof(struct udphdr));} -else{}}int DATARMNET756778f14f(struct sk_buff*skb,struct rmnet_port*port){struct - DATARMNET63d7680df2*node_p;struct hlist_node*tmp;struct net_device*dev=skb->dev -;int map=DATARMNETecc0627c70.map_mask;unsigned long ht_flags;int -DATARMNETcfb5dc7296;int map_cpu;u64 DATARMNET138d6d02d2=(0xd2d+202-0xdf7);u32 -DATARMNET5c4a331b9c,hash;u8 is_match_found=(0xd2d+202-0xdf7);u8 -DATARMNET935af10724=(0xd2d+202-0xdf7);struct DATARMNETe600c5b727* -DATARMNETa4055affd5;struct rmnet_priv*priv;if(!DATARMNET9303cec796(skb)){ -DATARMNETe767554e6e(skb);return(0xd2d+202-0xdf7);}if((unlikely(!map))||! -DATARMNETecc0627c70.DATARMNETfc89d842ae){DATARMNETe767554e6e(skb); -DATARMNET015fb2ba0e(DATARMNET720469c0a9,DATARMNETe0fee0991a,(0x16e8+787-0xc0c), -(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),NULL,NULL); -DATARMNET68d84e7b98[DATARMNETe3c02ddaeb]++;return(0xd2d+202-0xdf7);} +struct sk_buff*skb,struct DATARMNET63d7680df2*node_p){struct iphdr*ip4h, +DATARMNETc00baf31c3;struct ipv6hdr*ip6h,DATARMNETcf1d9e2c1e;struct tcphdr*tp, +DATARMNETd1ff6cd568;struct udphdr*up,DATARMNETc82d2f4e16;int len= +(0xd2d+202-0xdf7);u16 ip_len=(0xd2d+202-0xdf7);__be16 frag_off;u8 protocol; +node_p->DATARMNETa1099c74fe=(0xd2d+202-0xdf7);switch(skb->protocol){case htons( +ETH_P_IP):ip4h=DATARMNETefcaf5fbe9(skb,(0xd2d+202-0xdf7),sizeof(*ip4h),& +DATARMNETc00baf31c3);if(!ip4h)return;node_p->DATARMNET1e9d25d9ff=ip4h->protocol; +memcpy(&(node_p->ip_hdr.DATARMNETac9bbaad7c),ip4h,sizeof(*ip4h));ip_len=ip4h-> +ihl*(0xd11+230-0xdf3);node_p->DATARMNETa1099c74fe=!(ip4h->frag_off&htons(IP_DF)) +;break;case htons(ETH_P_IPV6):ip6h=DATARMNETefcaf5fbe9(skb,(0xd2d+202-0xdf7), +sizeof(*ip6h),&DATARMNETcf1d9e2c1e);if(!ip6h)return;node_p->DATARMNET1e9d25d9ff= +ip6h->nexthdr;memcpy(&(node_p->ip_hdr.DATARMNET1688a97aa4),ip6h,sizeof(*ip6h)); +protocol=ip6h->nexthdr;len=ipv6_skip_exthdr(skb,sizeof(*ip6h),&protocol,& +frag_off);if(len<(0xd2d+202-0xdf7)){return;}ip_len=(u16)len;break;default:break; +}if(node_p->DATARMNET1e9d25d9ff==IPPROTO_TCP){tp=DATARMNETefcaf5fbe9(skb,ip_len, +sizeof(*tp),&DATARMNETd1ff6cd568);if(!tp)return;memcpy(&(node_p-> +DATARMNETe33b41dad9.tp),tp,sizeof(struct tcphdr));}else if(node_p-> +DATARMNET1e9d25d9ff==IPPROTO_UDP){up=DATARMNETefcaf5fbe9(skb,ip_len,sizeof(*up), +&DATARMNETc82d2f4e16);if(!up)return;memcpy(&(node_p->DATARMNETe33b41dad9.up),up, +sizeof(struct udphdr));}else{}}int DATARMNET756778f14f(struct sk_buff*skb,struct + rmnet_port*port){struct DATARMNET63d7680df2*node_p;struct hlist_node*tmp;struct + net_device*dev=skb->dev;int map=DATARMNETecc0627c70.map_mask;unsigned long +ht_flags;int DATARMNETcfb5dc7296;int map_cpu;u64 DATARMNET138d6d02d2= +(0xd2d+202-0xdf7);u32 DATARMNET5c4a331b9c,hash;u8 is_match_found= +(0xd2d+202-0xdf7);u8 DATARMNET935af10724=(0xd2d+202-0xdf7);struct +DATARMNETe600c5b727*DATARMNETa4055affd5;struct rmnet_priv*priv;if(! +DATARMNET9303cec796(skb)){DATARMNETe767554e6e(skb);return(0xd2d+202-0xdf7);}if(( +unlikely(!map))||!DATARMNETecc0627c70.DATARMNETfc89d842ae){DATARMNETe767554e6e( +skb);DATARMNET015fb2ba0e(DATARMNET720469c0a9,DATARMNETe0fee0991a, +(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),NULL +,NULL);DATARMNET68d84e7b98[DATARMNETe3c02ddaeb]++;return(0xd2d+202-0xdf7);} DATARMNET52de1f3dc0(DATARMNET720469c0a9,DATARMNET856c53293b,(0x16e8+787-0xc0c), (0x16e8+787-0xc0c),(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),skb,NULL);hash= skb_get_hash(skb);spin_lock_irqsave(&DATARMNET3764d083f0,ht_flags);do{ From f9e638eda065c31d87ce56694b48e53dfd999ca5 Mon Sep 17 00:00:00 2001 From: Subash Abhinov Kasiviswanathan Date: Fri, 9 Oct 2020 11:47:00 -0700 Subject: [PATCH 23/36] rmnet_shs: Update to Ied6bc8d756aebe999efdb05a7789d646115df519 Change-Id: Ied6bc8d756aebe999efdb05a7789d646115df519 Acked-by: Raul Martinez Signed-off-by: Subash Abhinov Kasiviswanathan --- shs/rmnet_shs_config.c | 2 + shs/rmnet_shs_freq.c | 94 ++++++++++++++++++++++++------------------ 2 files changed, 56 insertions(+), 40 deletions(-) diff --git a/shs/rmnet_shs_config.c b/shs/rmnet_shs_config.c index d61ecfe23381..b6a31ca3013b 100644 --- a/shs/rmnet_shs_config.c +++ b/shs/rmnet_shs_config.c @@ -41,6 +41,8 @@ DATARMNET5fc54f7a13 __read_mostly={.notifier_call=DATARMNETe9173bbe0e,.priority= "\x49\x35\x65\x30\x32\x34\x66\x38\x66\x30\x64\x31\x61\x66\x61\x38\x36\x33\x37\x33\x35\x33\x62\x31\x64\x62\x38\x62\x65\x37\x37\x34\x35\x30\x65\x32\x31\x36\x39\x36\x32" , "\x49\x36\x39\x37\x38\x32\x62\x61\x63\x34\x30\x64\x38\x64\x32\x62\x39\x62\x61\x63\x39\x64\x61\x64\x30\x30\x65\x64\x30\x63\x66\x62\x65\x64\x30\x63\x37\x35\x32\x30\x32" +, +"\x49\x65\x64\x36\x62\x63\x38\x64\x37\x35\x36\x61\x65\x62\x65\x39\x39\x39\x65\x66\x64\x62\x30\x35\x61\x37\x37\x38\x39\x64\x36\x34\x36\x31\x31\x35\x64\x66\x35\x31\x39" };static int DATARMNET2cb9ae589c;int __init DATARMNET163e93649e(void){pr_info( "\x25\x73\x28\x29\x3a\x20\x53\x74\x61\x72\x74\x69\x6e\x67\x20\x72\x6d\x6e\x65\x74\x20\x53\x48\x53\x20\x6d\x6f\x64\x75\x6c\x65\x20\x25\x73\x20" "\n" ,__func__,DATARMNETbc8418e817[(0xd2d+202-0xdf7)]);trace_rmnet_shs_high( diff --git a/shs/rmnet_shs_freq.c b/shs/rmnet_shs_freq.c index d4bcf80c3686..9d141bdc820a 100644 --- a/shs/rmnet_shs_freq.c +++ b/shs/rmnet_shs_freq.c @@ -16,51 +16,65 @@ #include "rmnet_shs_freq.h" #include #include +#include #define DATARMNET81fe789d21 INT_MAX -#define DATARMNET3e06a1e794 (0xd2d+202-0xdf7) +#define MIN_FREQ (0xd2d+202-0xdf7) #define DATARMNET59b491fbc9 DATARMNET81fe789d21 -struct DATARMNET66fa8c4c30{unsigned int DATARMNET103c8d34fe;unsigned int +struct cpu_freq{unsigned int DATARMNET103c8d34fe;unsigned int DATARMNET1159aa2cb6;};unsigned int DATARMNET666c9ff35e __read_mostly= (0xd26+209-0xdf6);module_param(DATARMNET666c9ff35e,uint,(0xdb7+6665-0x261c)); MODULE_PARM_DESC(DATARMNET666c9ff35e, "\x45\x6e\x61\x62\x6c\x65\x2f\x64\x69\x73\x61\x62\x6c\x65\x20\x66\x72\x65\x71\x20\x62\x6f\x6f\x73\x74\x20\x66\x65\x61\x74\x75\x72\x65" );struct workqueue_struct*DATARMNETde8f350999;struct DATARMNET4e6b0cd2b8{struct -DATARMNET66fa8c4c30 __percpu*DATARMNET9dd9bc4abb;};static struct -DATARMNET4e6b0cd2b8 DATARMNETc4b1be7898;static struct work_struct -DATARMNETbfcbb4b8ac;static int DATARMNETb1e8f00240(struct notifier_block* -DATARMNET272c159b3c,unsigned long val,void*data){return NOTIFY_OK;}static struct - notifier_block DATARMNET50781dba43={.notifier_call=DATARMNETb1e8f00240,};static - void DATARMNET13c1a83eb3(struct work_struct*DATARMNET33110a3ff5){unsigned int i -;get_online_cpus();for_each_online_cpu(i){cpufreq_update_policy(i);} -put_online_cpus();}void DATARMNET82d7f4ffa2(void){struct DATARMNET66fa8c4c30* -DATARMNETe24d518157;int i;for_each_possible_cpu(i){DATARMNETe24d518157= -per_cpu_ptr(DATARMNETc4b1be7898.DATARMNET9dd9bc4abb,i);DATARMNETe24d518157-> -DATARMNET103c8d34fe=DATARMNET3e06a1e794;DATARMNETe24d518157->DATARMNET1159aa2cb6 -=DATARMNET81fe789d21;}}void DATARMNETfb7007f025(void){struct DATARMNET66fa8c4c30 -*DATARMNETe24d518157;int i;for_each_possible_cpu(i){if(((0xd26+209-0xdf6)<DATARMNET103c8d34fe= -DATARMNET59b491fbc9;DATARMNETe24d518157->DATARMNET1159aa2cb6=DATARMNET81fe789d21 -;trace_rmnet_freq_boost(i,DATARMNETe24d518157->DATARMNET103c8d34fe);}if( -work_pending(&DATARMNETbfcbb4b8ac))return;if(DATARMNETde8f350999)queue_work( -DATARMNETde8f350999,&DATARMNETbfcbb4b8ac);}void DATARMNET371703c28d(void){struct - DATARMNET66fa8c4c30*DATARMNETe24d518157;int i;for_each_possible_cpu(i){if(( +cpu_freq __percpu*DATARMNET9dd9bc4abb;};static struct DATARMNET4e6b0cd2b8 +DATARMNETc4b1be7898;static struct work_struct DATARMNETbfcbb4b8ac;static +DEFINE_PER_CPU(struct freq_qos_request,DATARMNET17d6a9530a);static void +DATARMNETb90d2272b4(struct work_struct*DATARMNET33110a3ff5){struct cpu_freq* +DATARMNETe24d518157;unsigned int i;int ret;struct freq_qos_request* +DATARMNETddcafd8b91;get_online_cpus();for_each_online_cpu(i){if(( (0xd26+209-0xdf6)< -DATARMNET103c8d34fe=DATARMNET3e06a1e794;DATARMNETe24d518157->DATARMNET1159aa2cb6 -=DATARMNET81fe789d21;trace_rmnet_freq_reset(i,DATARMNETe24d518157-> -DATARMNET103c8d34fe);}if(work_pending(&DATARMNETbfcbb4b8ac))return;if( -DATARMNETde8f350999)queue_work(DATARMNETde8f350999,&DATARMNETbfcbb4b8ac);}int -DATARMNETe6e8431304(void){DATARMNETc4b1be7898.DATARMNET9dd9bc4abb=alloc_percpu( -struct DATARMNET66fa8c4c30);if(!DATARMNETc4b1be7898.DATARMNET9dd9bc4abb)return- -ENOMEM;if(!DATARMNETde8f350999)DATARMNETde8f350999=alloc_workqueue( -"\x73\x68\x73\x5f\x62\x6f\x6f\x73\x74\x5f\x77\x71",WQ_HIGHPRI,(0xd2d+202-0xdf7)) -;if(!DATARMNETde8f350999){free_percpu(DATARMNETc4b1be7898.DATARMNET9dd9bc4abb); -return-EFAULT;}INIT_WORK(&DATARMNETbfcbb4b8ac,DATARMNET13c1a83eb3);if( -DATARMNET666c9ff35e)cpufreq_register_notifier(&DATARMNET50781dba43, -CPUFREQ_POLICY_NOTIFIER);DATARMNET82d7f4ffa2();return(0xd2d+202-0xdf7);}int -DATARMNETdf74db7e38(void){DATARMNET82d7f4ffa2();cancel_work_sync(& -DATARMNETbfcbb4b8ac);if(DATARMNETde8f350999){destroy_workqueue( -DATARMNETde8f350999);DATARMNETde8f350999=NULL;}if(DATARMNET666c9ff35e) -cpufreq_unregister_notifier(&DATARMNET50781dba43,CPUFREQ_POLICY_NOTIFIER); -free_percpu(DATARMNETc4b1be7898.DATARMNET9dd9bc4abb);return(0xd2d+202-0xdf7);} +per_cpu_ptr(DATARMNETc4b1be7898.DATARMNET9dd9bc4abb,i);DATARMNETddcafd8b91=& +per_cpu(DATARMNET17d6a9530a,i);ret=freq_qos_update_request(DATARMNETddcafd8b91, +DATARMNETe24d518157->DATARMNET103c8d34fe);}put_online_cpus();}void +DATARMNET82d7f4ffa2(void){struct cpu_freq*DATARMNETe24d518157;int i; +for_each_possible_cpu(i){DATARMNETe24d518157=per_cpu_ptr(DATARMNETc4b1be7898. +DATARMNET9dd9bc4abb,i);DATARMNETe24d518157->DATARMNET103c8d34fe=MIN_FREQ; +DATARMNETe24d518157->DATARMNET1159aa2cb6=DATARMNET81fe789d21;}}void +DATARMNETfb7007f025(void){struct cpu_freq*DATARMNETe24d518157;int i; +for_each_possible_cpu(i){if(((0xd26+209-0xdf6)<DATARMNET103c8d34fe=DATARMNET59b491fbc9;DATARMNETe24d518157 +->DATARMNET1159aa2cb6=DATARMNET81fe789d21;trace_rmnet_freq_boost(i, +DATARMNET59b491fbc9);}if(work_pending(&DATARMNETbfcbb4b8ac))return;if( +DATARMNETde8f350999){queue_work(DATARMNETde8f350999,&DATARMNETbfcbb4b8ac);}}void + DATARMNET371703c28d(void){struct cpu_freq*DATARMNETe24d518157;int i; +for_each_possible_cpu(i){if(((0xd26+209-0xdf6)<DATARMNET103c8d34fe=MIN_FREQ;DATARMNETe24d518157-> +DATARMNET1159aa2cb6=DATARMNET81fe789d21;trace_rmnet_freq_reset(i,MIN_FREQ);}if( +work_pending(&DATARMNETbfcbb4b8ac))return;if(DATARMNETde8f350999)queue_work( +DATARMNETde8f350999,&DATARMNETbfcbb4b8ac);}static void DATARMNET009d37d173(void) +{struct freq_qos_request*DATARMNETddcafd8b91;int i;for_each_possible_cpu(i){ +DATARMNETddcafd8b91=&per_cpu(DATARMNET17d6a9530a,i);freq_qos_remove_request( +DATARMNETddcafd8b91);}}int DATARMNETe6e8431304(void){struct cpu_freq* +DATARMNETe24d518157;int i;int ret=(0xd2d+202-0xdf7);struct freq_qos_request* +DATARMNETddcafd8b91;struct cpufreq_policy*policy;DATARMNETc4b1be7898. +DATARMNET9dd9bc4abb=alloc_percpu(struct cpu_freq);if(!DATARMNETc4b1be7898. +DATARMNET9dd9bc4abb)return-ENOMEM;if(!DATARMNETde8f350999)DATARMNETde8f350999= +alloc_workqueue("\x73\x68\x73\x5f\x62\x6f\x6f\x73\x74\x5f\x77\x71",WQ_HIGHPRI, +(0xd2d+202-0xdf7));if(!DATARMNETde8f350999){ret=-ENOMEM;goto err;} +for_each_possible_cpu(i){DATARMNETe24d518157=per_cpu_ptr(DATARMNETc4b1be7898. +DATARMNET9dd9bc4abb,i);DATARMNETddcafd8b91=&per_cpu(DATARMNET17d6a9530a,i); +policy=cpufreq_cpu_get(i);if(!policy){pr_err( +"\x25\x73\x3a\x20\x63\x70\x75\x66\x72\x65\x71\x20\x70\x6f\x6c\x69\x63\x79\x20\x6e\x6f\x74\x20\x66\x6f\x75\x6e\x64\x20\x66\x6f\x72\x20\x63\x70\x75\x25\x64" "\n" +,__func__,i);return-ESRCH;}ret=freq_qos_add_request(&policy->constraints, +DATARMNETddcafd8b91,FREQ_QOS_MIN,MIN_FREQ);if(ret<(0xd2d+202-0xdf7)){pr_err( +"\x25\x73\x3a\x20\x46\x61\x69\x6c\x65\x64\x20\x74\x6f\x20\x61\x64\x64\x20\x66\x72\x65\x71\x20\x63\x6f\x6e\x73\x74\x72\x61\x69\x6e\x74\x20\x28\x25\x64\x29" "\n" +,__func__,ret);return ret;}}INIT_WORK(&DATARMNETbfcbb4b8ac,DATARMNETb90d2272b4); +DATARMNET82d7f4ffa2();return(0xd2d+202-0xdf7);err:DATARMNET82d7f4ffa2(); +free_percpu(DATARMNETc4b1be7898.DATARMNET9dd9bc4abb);if(DATARMNETde8f350999){ +destroy_workqueue(DATARMNETde8f350999);DATARMNETde8f350999=NULL;}return ret;}int + DATARMNETdf74db7e38(void){DATARMNET009d37d173();DATARMNET82d7f4ffa2(); +cancel_work_sync(&DATARMNETbfcbb4b8ac);if(DATARMNETde8f350999){destroy_workqueue +(DATARMNETde8f350999);DATARMNETde8f350999=NULL;}free_percpu(DATARMNETc4b1be7898. +DATARMNET9dd9bc4abb);return(0xd2d+202-0xdf7);} From 7d47dce8039aadd6c1da19089df70b32578df2e3 Mon Sep 17 00:00:00 2001 From: Sean Tranchetti Date: Tue, 13 Oct 2020 14:23:55 -0600 Subject: [PATCH 24/36] rmnet_offload: Ie23cbf615594250f411a4f277f0d250eaa6fed7e Updates module to version Ie23cbf615594250f411a4f277f0d250eaa6fed7e. Change-Id: I31c03c2ab2de860fc807b8374c573467f64f5d91 Signed-off-by: Sean Tranchetti --- offload/rmnet_offload_main.c | 24 ++++++++++++++---------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/offload/rmnet_offload_main.c b/offload/rmnet_offload_main.c index dbcff94ee18d..f452be2faf3c 100644 --- a/offload/rmnet_offload_main.c +++ b/offload/rmnet_offload_main.c @@ -39,6 +39,8 @@ static const char*DATARMNET9be3ddbe97[]__always_unused={ "\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" ,};static DEFINE_SPINLOCK(DATARMNET0b5e447f18);static u32 DATARMNETcb7325e02d( struct DATARMNETd812bcdbb5*DATARMNET458b70e7e5){struct DATARMNET4287f07234* DATARMNET8814564ab9=&DATARMNET458b70e7e5->DATARMNET144d119066;__be32 @@ -229,18 +231,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();} From 77114cdc0cdd8f3c881c2c6f121417e87ca29361 Mon Sep 17 00:00:00 2001 From: Sean Tranchetti Date: Thu, 29 Oct 2020 13:38:15 -0700 Subject: [PATCH 25/36] rmnet_offload: I825409ad7d921ffde87ea421b0f17673ec8dc096 Updates the module to version I825409ad7d921ffde87ea421b0f17673ec8dc096. Change-Id: Ib97727fd64400fe5224945bfb269306dd8a461c9 Signed-off-by: Sean Tranchetti --- offload/rmnet_offload_main.c | 2 ++ offload/rmnet_offload_tcp.c | 10 ++++++---- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/offload/rmnet_offload_main.c b/offload/rmnet_offload_main.c index f452be2faf3c..54b394356cbb 100644 --- a/offload/rmnet_offload_main.c +++ b/offload/rmnet_offload_main.c @@ -41,6 +41,8 @@ static const char*DATARMNET9be3ddbe97[]__always_unused={ "\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 diff --git a/offload/rmnet_offload_tcp.c b/offload/rmnet_offload_tcp.c index 601eb5b7ed53..5aea4c7ab043 100644 --- a/offload/rmnet_offload_tcp.c +++ b/offload/rmnet_offload_tcp.c @@ -20,13 +20,15 @@ union DATARMNETe0a7777e12{struct DATARMNETd2991e8952 DATARMNETe31a04a369;u8 DATARMNET021aa8e68d[(0xf07+1090-0x130d)];};static bool DATARMNET2818ea93ec( struct DATARMNETd812bcdbb5*DATARMNET5fe4c722a8){struct DATARMNETd2991e8952* DATARMNET2e7cc88971,DATARMNETd1ff6cd568;__be32 DATARMNETa8eeab014d;u8 -DATARMNET1464100e7a;DATARMNET2e7cc88971=rmnet_frag_header_ptr( +DATARMNETfb0677cc3c;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; +(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 From 893317fbb5aeae50ed2c1e9b71c36de7e9aaa199 Mon Sep 17 00:00:00 2001 From: Subash Abhinov Kasiviswanathan Date: Fri, 11 Dec 2020 14:19:47 -0800 Subject: [PATCH 26/36] rmnet_shs: I88f27ed6b54e1a2de1f5b15cbe75e808b87361a2 CRs-Fixed: 2836706 Change-Id: I88f27ed6b54e1a2de1f5b15cbe75e808b87361a2 Acked-by: Raul Martinez Signed-off-by: Subash Abhinov Kasiviswanathan --- shs/rmnet_shs_config.c | 4 +++- shs/rmnet_shs_freq.c | 12 ++++++------ 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/shs/rmnet_shs_config.c b/shs/rmnet_shs_config.c index b6a31ca3013b..efdda7437543 100644 --- a/shs/rmnet_shs_config.c +++ b/shs/rmnet_shs_config.c @@ -43,7 +43,9 @@ DATARMNET5fc54f7a13 __read_mostly={.notifier_call=DATARMNETe9173bbe0e,.priority= "\x49\x36\x39\x37\x38\x32\x62\x61\x63\x34\x30\x64\x38\x64\x32\x62\x39\x62\x61\x63\x39\x64\x61\x64\x30\x30\x65\x64\x30\x63\x66\x62\x65\x64\x30\x63\x37\x35\x32\x30\x32" , "\x49\x65\x64\x36\x62\x63\x38\x64\x37\x35\x36\x61\x65\x62\x65\x39\x39\x39\x65\x66\x64\x62\x30\x35\x61\x37\x37\x38\x39\x64\x36\x34\x36\x31\x31\x35\x64\x66\x35\x31\x39" -};static int DATARMNET2cb9ae589c;int __init DATARMNET163e93649e(void){pr_info( +, +"\x49\x38\x38\x66\x32\x37\x65\x64\x36\x62\x35\x34\x65\x31\x61\x32\x64\x65\x31\x66\x35\x62\x31\x35\x63\x62\x65\x37\x35\x65\x38\x30\x38\x62\x38\x37\x33\x36\x31\x61\x32" +,};static int DATARMNET2cb9ae589c;int __init DATARMNET163e93649e(void){pr_info( "\x25\x73\x28\x29\x3a\x20\x53\x74\x61\x72\x74\x69\x6e\x67\x20\x72\x6d\x6e\x65\x74\x20\x53\x48\x53\x20\x6d\x6f\x64\x75\x6c\x65\x20\x25\x73\x20" "\n" ,__func__,DATARMNETbc8418e817[(0xd2d+202-0xdf7)]);trace_rmnet_shs_high( DATARMNET1790979ccf,DATARMNET72cb00fdc0,(0x16e8+787-0xc0c),(0x16e8+787-0xc0c), diff --git a/shs/rmnet_shs_freq.c b/shs/rmnet_shs_freq.c index 9d141bdc820a..7d58dc0e8bea 100644 --- a/shs/rmnet_shs_freq.c +++ b/shs/rmnet_shs_freq.c @@ -55,8 +55,9 @@ DATARMNET1159aa2cb6=DATARMNET81fe789d21;trace_rmnet_freq_reset(i,MIN_FREQ);}if( work_pending(&DATARMNETbfcbb4b8ac))return;if(DATARMNETde8f350999)queue_work( DATARMNETde8f350999,&DATARMNETbfcbb4b8ac);}static void DATARMNET009d37d173(void) {struct freq_qos_request*DATARMNETddcafd8b91;int i;for_each_possible_cpu(i){ -DATARMNETddcafd8b91=&per_cpu(DATARMNET17d6a9530a,i);freq_qos_remove_request( -DATARMNETddcafd8b91);}}int DATARMNETe6e8431304(void){struct cpu_freq* +DATARMNETddcafd8b91=&per_cpu(DATARMNET17d6a9530a,i);if(DATARMNETddcafd8b91&& +freq_qos_request_active(DATARMNETddcafd8b91)){freq_qos_remove_request( +DATARMNETddcafd8b91);}}}int DATARMNETe6e8431304(void){struct cpu_freq* DATARMNETe24d518157;int i;int ret=(0xd2d+202-0xdf7);struct freq_qos_request* DATARMNETddcafd8b91;struct cpufreq_policy*policy;DATARMNETc4b1be7898. DATARMNET9dd9bc4abb=alloc_percpu(struct cpu_freq);if(!DATARMNETc4b1be7898. @@ -74,7 +75,6 @@ DATARMNETddcafd8b91,FREQ_QOS_MIN,MIN_FREQ);if(ret<(0xd2d+202-0xdf7)){pr_err( DATARMNET82d7f4ffa2();return(0xd2d+202-0xdf7);err:DATARMNET82d7f4ffa2(); free_percpu(DATARMNETc4b1be7898.DATARMNET9dd9bc4abb);if(DATARMNETde8f350999){ destroy_workqueue(DATARMNETde8f350999);DATARMNETde8f350999=NULL;}return ret;}int - DATARMNETdf74db7e38(void){DATARMNET009d37d173();DATARMNET82d7f4ffa2(); -cancel_work_sync(&DATARMNETbfcbb4b8ac);if(DATARMNETde8f350999){destroy_workqueue -(DATARMNETde8f350999);DATARMNETde8f350999=NULL;}free_percpu(DATARMNETc4b1be7898. -DATARMNET9dd9bc4abb);return(0xd2d+202-0xdf7);} + DATARMNETdf74db7e38(void){DATARMNET009d37d173();if(DATARMNETde8f350999){ +destroy_workqueue(DATARMNETde8f350999);DATARMNETde8f350999=NULL;}free_percpu( +DATARMNETc4b1be7898.DATARMNET9dd9bc4abb);return(0xd2d+202-0xdf7);} From bbc7f8d1b312e531d7734ec6633965e35450c2c7 Mon Sep 17 00:00:00 2001 From: Subash Abhinov Kasiviswanathan Date: Wed, 23 Dec 2020 17:30:33 -0800 Subject: [PATCH 27/36] rmnet_shs: I5b3ed0ec4f36790d8ed05932b784f2533f6173bb CRs-Fixed: 2851435 Change-Id: I5b3ed0ec4f36790d8ed05932b784f2533f6173bb Acked-by: Raul Martinez Signed-off-by: Subash Abhinov Kasiviswanathan --- shs/rmnet_shs.h | 84 +++--- shs/rmnet_shs_common.c | 2 +- shs/rmnet_shs_config.c | 37 +-- shs/rmnet_shs_main.c | 558 +++++++++++++++++++++++----------------- shs/rmnet_shs_modules.c | 12 +- shs/rmnet_shs_wq.c | 133 +++++----- shs/rmnet_shs_wq.h | 22 +- shs/rmnet_shs_wq_genl.c | 40 ++- shs/rmnet_shs_wq_genl.h | 4 +- 9 files changed, 507 insertions(+), 385 deletions(-) diff --git a/shs/rmnet_shs.h b/shs/rmnet_shs.h index 0f072a16a0ae..ca4ce724447b 100644 --- a/shs/rmnet_shs.h +++ b/shs/rmnet_shs.h @@ -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 @@ -33,6 +33,7 @@ #define DATARMNET401583e606 (0xd11+230-0xdf3) #define DATARMNETc6782fed88 (0xd35+210-0xdff) #define DATARMNETbc3c416b77 (0xbf7+4405-0x1c3c) +#define DATARMNET9273f84bf1 (0xeb7+1101-0x12f5) #define DATARMNET2edff26954 (0xd2d+202-0xdf7) #define DATARMNET752465942a (0xbf7+4364-0x1c04) #define DATARMNETbfe31ef643 (0xc07+1233-0xe1c) @@ -70,31 +71,35 @@ DATARMNETa6f2d499b2 DATARMNET132b9c7dc4[DATARMNETc6782fed88];u64 DATARMNETbd3a0ee74e[DATARMNETc6782fed88];long DATARMNETc252a1f55d;long DATARMNETa2e32cdd3a;u32 DATARMNET9c869c1ec2;u16 DATARMNET64bb8a8f57;u8 DATARMNETd9cfd2812b;u8 DATARMNETf5ab31b9b0;u8 DATARMNET34097703c8;u8 -DATARMNETfc89d842ae;u8 DATARMNET6fe0db3a49;u8 map_mask;u8 map_len;};struct -DATARMNETa034b2e60c{struct sk_buff*head;struct sk_buff*tail;u64 -DATARMNETbaa5765693;u32 DATARMNET6215127f48;u32 DATARMNET35234676d4;};struct -DATARMNET63d7680df2{union{struct iphdr DATARMNETac9bbaad7c;struct ipv6hdr -DATARMNET1688a97aa4;}ip_hdr;union{struct tcphdr tp;struct udphdr up;} -DATARMNETe33b41dad9;struct list_head DATARMNET04c88b8191;struct net_device*dev; -struct DATARMNET6c78e47d24*DATARMNET341ea38662;struct DATARMNETa034b2e60c -DATARMNETae4b27456e;struct hlist_node list;u64 DATARMNET11930c5df8;u64 -DATARMNETa8940e4a7b;u64 DATARMNET2594c418db;u32 queue_head;u32 hash;u16 -map_index;u16 map_cpu;u16 DATARMNET1e9d25d9ff;u8 DATARMNETa1099c74fe;u8 -DATARMNET6250e93187;u8 mux_id;};enum DATARMNET156842d55e{DATARMNET7bc926fdbe, -DATARMNETb3e3b2a799,DATARMNET8dcf06727b};enum DATARMNET8463cba7c7{ -DATARMNETc3bce05be2,DATARMNET14067f0be4,DATARMNET28bb261646,DATARMNET67b67dc88f, -DATARMNET0efbbe2821,DATARMNETa4267dfd8a,DATARMNETeccb61ebc3};enum -DATARMNETf355367410{DATARMNET557ff68d74,DATARMNET1c55e5fdb1,DATARMNET4ab5a31d0c, -DATARMNETde2dd86539};enum DATARMNET3f3bc61c03{DATARMNETf5157a9b85, -DATARMNET709b59b0e6,DATARMNET99db6e7d86,DATARMNETe3c02ddaeb,DATARMNET394acaf558, -DATARMNETef8cbfa62f,DATARMNETe6e77f9f03,DATARMNETecdf13872c,DATARMNETd1687e0776, -DATARMNET1828d69e96,DATARMNET40ceff078e,DATARMNET42b73d0f3f,DATARMNETb8fe2c0e64, -DATARMNET72db8b9bac,DATARMNET33a9d4759f,DATARMNET46966e7828,DATARMNETa1f9420686, -DATARMNET54b67b8a75,DATARMNETac729c3d29,DATARMNET6533f70c87,DATARMNET6f6efeaf61, -DATARMNETcc0ef52ccb,DATARMNETf8de7cb644,DATARMNETdd6bf3de6b,DATARMNETf3110711cb} -;enum DATARMNETd751e3ec84{DATARMNET802083239a,DATARMNETed69052342, -DATARMNETcfb1764a91,DATARMNET84a9e136b8,DATARMNET01bf75e27c,DATARMNETd45c383019, -DATARMNETbb5757569c,DATARMNETc8058e2cff,DATARMNET3cef75f6cd};struct +DATARMNETfc89d842ae;u8 DATARMNET6fe0db3a49;u8 DATARMNETba3f7a11ef;u8 map_mask;u8 + map_len;u8 DATARMNET5c24e1df05;};struct DATARMNETa034b2e60c{struct sk_buff*head +;struct sk_buff*tail;u64 DATARMNETbaa5765693;u32 DATARMNET6215127f48;u32 +DATARMNET35234676d4;};struct DATARMNET63d7680df2{union{struct iphdr +DATARMNETac9bbaad7c;struct ipv6hdr DATARMNET1688a97aa4;}ip_hdr;union{struct +tcphdr tp;struct udphdr up;}DATARMNETe33b41dad9;struct list_head +DATARMNET04c88b8191;struct net_device*dev;struct DATARMNET6c78e47d24* +DATARMNET341ea38662;struct DATARMNETa034b2e60c DATARMNETae4b27456e;struct +hlist_node list;u64 DATARMNET11930c5df8;u64 DATARMNETa8940e4a7b;u64 +DATARMNET2594c418db;u32 queue_head;u32 hash;u16 map_index;u16 map_cpu;u16 +DATARMNETfbbec4c537;u16 DATARMNETa59ce1fd2d;u8 DATARMNET85c698ec34;u16 +DATARMNET1e9d25d9ff;u8 DATARMNETa1099c74fe;u8 DATARMNET6250e93187;u8 mux_id;}; +enum DATARMNET156842d55e{DATARMNET7bc926fdbe,DATARMNETb3e3b2a799, +DATARMNET8dcf06727b};enum DATARMNET8463cba7c7{DATARMNETc3bce05be2, +DATARMNET14067f0be4,DATARMNET28bb261646,DATARMNET67b67dc88f,DATARMNET0efbbe2821, +DATARMNETa4267dfd8a,DATARMNETf13db5ace8,DATARMNETb6eae1e097,DATARMNET7f401828b3, +DATARMNETeccb61ebc3};enum DATARMNETf355367410{DATARMNET557ff68d74, +DATARMNET1c55e5fdb1,DATARMNET4ab5a31d0c,DATARMNETde2dd86539};enum +DATARMNET3f3bc61c03{DATARMNETf5157a9b85,DATARMNET709b59b0e6,DATARMNET99db6e7d86, +DATARMNETe3c02ddaeb,DATARMNET394acaf558,DATARMNETef8cbfa62f,DATARMNETe6e77f9f03, +DATARMNETecdf13872c,DATARMNETd1687e0776,DATARMNET1828d69e96,DATARMNET40ceff078e, +DATARMNET42b73d0f3f,DATARMNETb8fe2c0e64,DATARMNET72db8b9bac,DATARMNET33a9d4759f, +DATARMNET46966e7828,DATARMNETa1f9420686,DATARMNET54b67b8a75,DATARMNETac729c3d29, +DATARMNET6533f70c87,DATARMNET6f6efeaf61,DATARMNETcc0ef52ccb,DATARMNETf8de7cb644, +DATARMNETdd6bf3de6b,DATARMNETfeaf903a28,DATARMNET767c76ca08,DATARMNET048727d1d9, +DATARMNET6ea8a58f4e,DATARMNETf3110711cb};enum DATARMNETd751e3ec84{ +DATARMNETcc3c294f38,DATARMNET802083239a,DATARMNETed69052342,DATARMNETcfb1764a91, +DATARMNET84a9e136b8,DATARMNET01bf75e27c,DATARMNETd45c383019,DATARMNETbb5757569c, +DATARMNETc8058e2cff,DATARMNET04dac3a62b,DATARMNET3cef75f6cd};struct DATARMNETfd554c7eac{struct sk_buff*skb;struct DATARMNETfd554c7eac*next;};struct DATARMNET37ef896af8{struct work_struct DATARMNET33110a3ff5;struct rmnet_port* port;};struct DATARMNETe600c5b727{struct list_head DATARMNET3dc4262f53;u32 @@ -123,19 +128,20 @@ DATARMNET595eed6ea2,DATARMNETde090e8314,DATARMNETa593d87b38,DATARMNET8a2898988b, DATARMNET0709c9f764,};extern struct DATARMNET37ef896af8 DATARMNET1731db288b; extern spinlock_t DATARMNET3764d083f0;extern spinlock_t DATARMNETec2a4f5211; extern spinlock_t DATARMNETfbdbab2ef6;extern struct hlist_head -DATARMNETe603c3a4b3[(0xd26+209-0xdf6)<<(DATARMNET25437d35fd)];extern void -rmnet_deliver_skb(struct sk_buff*skb,struct rmnet_port*port);extern int(* -rmnet_shs_skb_entry)(struct sk_buff*skb,struct rmnet_port*port);int -DATARMNET362b15f941(u16 cpu);void DATARMNETeacad8334e(void);void -DATARMNETe1f95274f1(void);unsigned int DATARMNET02cdd9b125(void);int -DATARMNET310c3eb16e(u8 mask);int DATARMNETe02152c351(struct DATARMNET63d7680df2* -DATARMNET63b1a086d5,u8 DATARMNETd87669e323,u8 DATARMNET5447204733);void -DATARMNET78bb6be330(struct rmnet_map_dl_ind_hdr*dlhdr,struct -rmnet_map_control_command_header*qcmd);void DATARMNETf61cd23b90(struct -rmnet_map_dl_ind_trl*dltrl,struct rmnet_map_control_command_header*qcmd);void -DATARMNET7ed4cef8a3(struct rmnet_map_dl_ind_hdr*dlhdr);void DATARMNET613a81eca8( -struct rmnet_map_dl_ind_trl*dltrl);int DATARMNET756778f14f(struct sk_buff*skb, -struct rmnet_port*port);void DATARMNETa4bf9fbf64(u8 DATARMNET665469cfb6,u8 +DATARMNETe603c3a4b3[(0xd26+209-0xdf6)<<(DATARMNET25437d35fd)];extern int(* +rmnet_shs_skb_entry)(struct sk_buff*skb,struct rmnet_shs_clnt_s* +DATARMNET9e820fbfe3);extern int(*rmnet_shs_switch)(struct sk_buff*skb,struct +rmnet_shs_clnt_s*DATARMNET9e820fbfe3);int DATARMNET362b15f941(u16 cpu);void +DATARMNETeacad8334e(void);void DATARMNETe1f95274f1(void);unsigned int +DATARMNET02cdd9b125(void);int DATARMNET310c3eb16e(u8 mask);int +DATARMNETe02152c351(struct DATARMNET63d7680df2*DATARMNET63b1a086d5,u8 +DATARMNETd87669e323,u8 DATARMNET5447204733);void DATARMNET78bb6be330(struct +rmnet_map_dl_ind_hdr*dlhdr,struct rmnet_map_control_command_header*qcmd);void +DATARMNETf61cd23b90(struct rmnet_map_dl_ind_trl*dltrl,struct +rmnet_map_control_command_header*qcmd);void DATARMNET7ed4cef8a3(struct +rmnet_map_dl_ind_hdr*dlhdr);void DATARMNET613a81eca8(struct rmnet_map_dl_ind_trl +*dltrl);int DATARMNET756778f14f(struct sk_buff*skb,struct rmnet_shs_clnt_s* +DATARMNET9e820fbfe3);void DATARMNETa4bf9fbf64(u8 DATARMNET665469cfb6,u8 DATARMNET5447204733);void DATARMNETde8ee16f92(struct DATARMNET63d7680df2* DATARMNET63b1a086d5);void DATARMNET45d8cdb224(struct net_device*dev,struct net_device*vnd);void DATARMNET9297340f58(unsigned int DATARMNET9f4bc49c6f);void diff --git a/shs/rmnet_shs_common.c b/shs/rmnet_shs_common.c index 872bccb7bb47..f3ed51d62d18 100644 --- a/shs/rmnet_shs_common.c +++ b/shs/rmnet_shs_common.c @@ -1,4 +1,4 @@ -/* Copyright (c) 2020 The Linux Foundation. All rights reserved. +/* Copyright (c) 2020-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 diff --git a/shs/rmnet_shs_config.c b/shs/rmnet_shs_config.c index efdda7437543..5e6c652ce20b 100644 --- a/shs/rmnet_shs_config.c +++ b/shs/rmnet_shs_config.c @@ -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 @@ -45,7 +45,9 @@ DATARMNET5fc54f7a13 __read_mostly={.notifier_call=DATARMNETe9173bbe0e,.priority= "\x49\x65\x64\x36\x62\x63\x38\x64\x37\x35\x36\x61\x65\x62\x65\x39\x39\x39\x65\x66\x64\x62\x30\x35\x61\x37\x37\x38\x39\x64\x36\x34\x36\x31\x31\x35\x64\x66\x35\x31\x39" , "\x49\x38\x38\x66\x32\x37\x65\x64\x36\x62\x35\x34\x65\x31\x61\x32\x64\x65\x31\x66\x35\x62\x31\x35\x63\x62\x65\x37\x35\x65\x38\x30\x38\x62\x38\x37\x33\x36\x31\x61\x32" -,};static int DATARMNET2cb9ae589c;int __init DATARMNET163e93649e(void){pr_info( +, +"\x49\x35\x62\x33\x65\x64\x30\x65\x63\x34\x66\x33\x36\x37\x39\x30\x64\x38\x65\x64\x30\x35\x39\x33\x32\x62\x37\x38\x34\x66\x32\x35\x33\x33\x66\x36\x31\x37\x33\x62\x62" +};static int DATARMNET2cb9ae589c;int __init DATARMNET163e93649e(void){pr_info( "\x25\x73\x28\x29\x3a\x20\x53\x74\x61\x72\x74\x69\x6e\x67\x20\x72\x6d\x6e\x65\x74\x20\x53\x48\x53\x20\x6d\x6f\x64\x75\x6c\x65\x20\x25\x73\x20" "\n" ,__func__,DATARMNETbc8418e817[(0xd2d+202-0xdf7)]);trace_rmnet_shs_high( DATARMNET1790979ccf,DATARMNET72cb00fdc0,(0x16e8+787-0xc0c),(0x16e8+787-0xc0c), @@ -70,23 +72,23 @@ DATARMNET7f045a1e6e){case NETDEV_UNREGISTER:DATARMNETd6ee05f1b4(dev); DATARMNET2cb9ae589c--;if(!DATARMNET2cb9ae589c&&DATARMNETecc0627c70. DATARMNETfc89d842ae){unsigned int DATARMNET9f4bc49c6f;pr_info( "\x72\x6d\x6e\x65\x74\x5f\x73\x68\x73\x20\x64\x65\x69\x6e\x69\x74\x20\x25\x73\x20\x67\x6f\x69\x6e\x67\x20\x64\x6f\x77\x6e\x20" -,dev->name);RCU_INIT_POINTER(rmnet_shs_skb_entry,NULL); -qmi_rmnet_ps_ind_deregister(DATARMNETecc0627c70.port,&DATARMNETecc0627c70. -rmnet_idl_ind_cb);DATARMNETeacad8334e();DATARMNET9f4bc49c6f=DATARMNET02cdd9b125( -);DATARMNETf7dcab9a9e();DATARMNET9297340f58(DATARMNET9f4bc49c6f); -trace_rmnet_shs_high(DATARMNET1790979ccf,DATARMNET443dab7031,(0x16e8+787-0xc0c), -(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),NULL,NULL);}break;case -NETDEV_REGISTER:DATARMNET2cb9ae589c++;if(DATARMNET2cb9ae589c&&! -DATARMNETecc0627c70.DATARMNETfc89d842ae){pr_info( +,dev->name);RCU_INIT_POINTER(rmnet_shs_skb_entry,NULL);RCU_INIT_POINTER( +rmnet_shs_switch,NULL);qmi_rmnet_ps_ind_deregister(DATARMNETecc0627c70.port,& +DATARMNETecc0627c70.rmnet_idl_ind_cb);DATARMNETeacad8334e();DATARMNET9f4bc49c6f= +DATARMNET02cdd9b125();DATARMNETf7dcab9a9e();DATARMNET9297340f58( +DATARMNET9f4bc49c6f);trace_rmnet_shs_high(DATARMNET1790979ccf, +DATARMNET443dab7031,(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),(0x16e8+787-0xc0c), +(0x16e8+787-0xc0c),NULL,NULL);}break;case NETDEV_REGISTER:DATARMNET2cb9ae589c++; +if(DATARMNET2cb9ae589c&&!DATARMNETecc0627c70.DATARMNETfc89d842ae){pr_info( "\x72\x6d\x6e\x65\x74\x5f\x73\x68\x73\x20\x69\x6e\x69\x74\x69\x61\x6c\x69\x7a\x69\x6e\x67\x20\x25\x73" ,dev->name);priv=netdev_priv(dev);port=rmnet_get_port(priv->real_dev);if(!port){ pr_err( "\x72\x6d\x6e\x65\x74\x5f\x73\x68\x73\x3a\x20\x69\x6e\x76\x61\x6c\x69\x64\x20\x72\x6d\x6e\x65\x74\x5f\x70\x6f\x72\x74" -);break;}DATARMNET45d8cdb224(priv->real_dev,dev);DATARMNET3ae0d614d6(priv-> -real_dev);DATARMNETe1f95274f1();DATARMNETecc0627c70.DATARMNETf5ab31b9b0= -(0xd26+209-0xdf6);}DATARMNET7492293980(dev);break;case NETDEV_UP:if(! -DATARMNETecc0627c70.DATARMNET9c869c1ec2&&DATARMNETecc0627c70.DATARMNETfc89d842ae -){port=DATARMNETecc0627c70.port;if(!port){pr_err( +);break;}DATARMNET45d8cdb224(priv->real_dev,dev);DATARMNET3ae0d614d6(); +DATARMNETe1f95274f1();DATARMNETecc0627c70.DATARMNETf5ab31b9b0=(0xd26+209-0xdf6); +}DATARMNET7492293980(dev);break;case NETDEV_UP:if(!DATARMNETecc0627c70. +DATARMNET9c869c1ec2&&DATARMNETecc0627c70.DATARMNETfc89d842ae){port= +DATARMNETecc0627c70.port;if(!port){pr_err( "\x72\x6d\x6e\x65\x74\x5f\x73\x68\x73\x3a\x20\x69\x6e\x76\x61\x6c\x69\x64\x20\x72\x6d\x6e\x65\x74\x5f\x63\x66\x67\x5f\x70\x6f\x72\x74" );break;}DATARMNETecc0627c70.DATARMNET08dbb5ab35.priority=RMNET_SHS;if(port-> data_format&RMNET_INGRESS_FORMAT_DL_MARKER_V2){DATARMNETecc0627c70. @@ -104,5 +106,6 @@ rmnet_idl_ind_cb);if(ret)pr_err( DATARMNETecc0627c70.DATARMNET9c869c1ec2=(0xd26+209-0xdf6);trace_rmnet_shs_high( DATARMNET1790979ccf,DATARMNET443dab7031,(0x16e8+787-0xc0c),(0x16e8+787-0xc0c), (0x16e8+787-0xc0c),(0x16e8+787-0xc0c),NULL,NULL);RCU_INIT_POINTER( -rmnet_shs_skb_entry,DATARMNET756778f14f);}break;default:break;}return -NOTIFY_DONE;}module_init(DATARMNET163e93649e);module_exit(DATARMNETf3298dab6f); +rmnet_shs_switch,NULL);RCU_INIT_POINTER(rmnet_shs_skb_entry,DATARMNET756778f14f) +;}break;default:break;}return NOTIFY_DONE;}module_init(DATARMNET163e93649e); +module_exit(DATARMNETf3298dab6f); diff --git a/shs/rmnet_shs_main.c b/shs/rmnet_shs_main.c index be67cd99bff0..eae8d272c51b 100644 --- a/shs/rmnet_shs_main.c +++ b/shs/rmnet_shs_main.c @@ -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 @@ -17,6 +17,11 @@ #include #include #include +#include +#include +#include +#include +#include #include #include #include @@ -25,6 +30,8 @@ #include "rmnet_shs_wq.h" #include "rmnet_shs_modules.h" #include "rmnet_shs_common.h" +#include +#include #define DATARMNET2f67183a86 2000000 #define DATARMNET68fc0be252 1000000 #define DATARMNETd391fbd694 (0xd2d+202-0xdf7) @@ -35,8 +42,8 @@ #define DATARMNET00d5787aad 2000000 #define DATARMNET8948dc953d (0xd0a+237-0xdf2) #define DATARMNET20dc6bb36b (0xd26+209-0xdf6) -#define DATARMNET3de2536baf(CPU) (per_cpu(softnet_data, CPU).input_pkt_queue) -#define DATARMNET832731a933(CPU) (per_cpu(softnet_data, CPU).process_queue) +#define DATARMNET832731a933(CPU) (per_cpu(softnet_data, CPU).input_pkt_queue) +#define DATARMNET3de2536baf(CPU) (per_cpu(softnet_data, CPU).process_queue) #define DATARMNET78ec5e8746(DATARMNETfbfdc7f27e, CPU) (per_cpu(\ DATARMNETfbfdc7f27e, CPU).input_queue_tail) #define DATARMNET9c1c20df35(DATARMNETfbfdc7f27e, CPU) (per_cpu(\ @@ -51,35 +58,61 @@ DEFINE_SPINLOCK(DATARMNET3764d083f0);DEFINE_HASHTABLE(DATARMNETe603c3a4b3, DATARMNET25437d35fd);struct DATARMNETe600c5b727 DATARMNET0997c5650d[ DATARMNETc6782fed88];int DATARMNETcff375d916[DATARMNETc6782fed88];struct DATARMNETa6b20d7e8b DATARMNETecc0627c70;struct DATARMNET37ef896af8 shs_rx_work; -static void*DATARMNETefcaf5fbe9(struct sk_buff*skb,u32 offset,u32 -DATARMNET567bdc7221,void*buf){struct skb_shared_info*shinfo=skb_shinfo(skb); -skb_frag_t*frag;u32 DATARMNETedc267a909=offset;int i;if(offset>skb->len|| -DATARMNET567bdc7221>skb->len||offset+DATARMNET567bdc7221>skb->len)return NULL;if -(skb_headlen(skb)>=offset+DATARMNET567bdc7221)return skb->data+offset;offset-= -skb_headlen(skb);for(i=(0xd2d+202-0xdf7);inr_frags;i++){u32 frag_size; -frag=&shinfo->frags[i];frag_size=skb_frag_size(frag);if(offset>=frag_size){ -offset-=frag_size;continue;}if(frag_size>=offset+DATARMNET567bdc7221)return -skb_frag_address(frag)+offset;}if(skb_copy_bits(skb,(int)DATARMNETedc267a909,buf -,(int)DATARMNET567bdc7221))return NULL;return buf;}int DATARMNET9303cec796( -struct sk_buff*skb){int DATARMNETbd864aa442=(0xd2d+202-0xdf7);struct iphdr*ip4h, -DATARMNETc00baf31c3;struct ipv6hdr*ip6h,DATARMNETcf1d9e2c1e;switch(skb->protocol -){case htons(ETH_P_IP):ip4h=DATARMNETefcaf5fbe9(skb,(0xd2d+202-0xdf7),sizeof(* -ip4h),&DATARMNETc00baf31c3);if(!ip4h)break;if(!ip_is_fragment(ip4h)&&(ip4h-> -protocol==IPPROTO_TCP||ip4h->protocol==IPPROTO_UDP)){DATARMNETbd864aa442= -(0xd26+209-0xdf6);break;}if(ip4h->protocol==IPPROTO_ICMP){skb->hash= -(0xd2d+202-0xdf7);skb->sw_hash=(0xd26+209-0xdf6);}break;case htons(ETH_P_IPV6): -ip6h=DATARMNETefcaf5fbe9(skb,(0xd2d+202-0xdf7),sizeof(*ip6h),& +ssize_t DATARMNET713da9913c(struct netdev_rx_queue*DATARMNETb4180393e4,u8 cpu,u8 + DATARMNETa7a5705ab0,u8 DATARMNET5780499e9c){struct rps_map*DATARMNETaeb4918e65, +*map;cpumask_var_t mask;unsigned long ht_flags;int DATARMNET421230d879;if(! +DATARMNET5780499e9c&&(DATARMNET3de2536baf(DATARMNETa7a5705ab0).qlen& +DATARMNET832731a933(DATARMNETa7a5705ab0).qlen))return-(0xd26+209-0xdf6);map= +rcu_dereference(DATARMNETb4180393e4->rps_map);if(map){spin_lock_irqsave(& +DATARMNET832731a933(DATARMNETa7a5705ab0).lock,ht_flags);map->cpus[ +(0xd2d+202-0xdf7)]=cpu;map->len=(0xd26+209-0xdf6);spin_unlock_irqrestore(& +DATARMNET832731a933(DATARMNETa7a5705ab0).lock,ht_flags);DATARMNET421230d879=( +DATARMNET3de2536baf(DATARMNETa7a5705ab0).qlen+DATARMNET832731a933( +DATARMNETa7a5705ab0).qlen);if(DATARMNET421230d879){DATARMNET68d84e7b98[ +DATARMNETfeaf903a28]++;DATARMNET4bde88919f(DATARMNETa7a5705ab0, +DATARMNET421230d879);}return(0xd2d+202-0xdf7);}if(!alloc_cpumask_var(&mask, +GFP_ATOMIC))return-ENOMEM;cpumask_set_cpu(cpu,(struct cpumask*)&mask);map= +kzalloc(max_t(unsigned int,RPS_MAP_SIZE(cpumask_weight(mask)),L1_CACHE_BYTES), +GFP_ATOMIC);if(!map){free_cpumask_var(mask);return-ENOMEM;}map->cpus[ +(0xd2d+202-0xdf7)]=cpu;map->len=(0xd26+209-0xdf6);spin_lock_irqsave(& +DATARMNET832731a933(DATARMNETa7a5705ab0).lock,ht_flags);rcu_read_lock(); +DATARMNETaeb4918e65=rcu_dereference(DATARMNETb4180393e4->rps_map); +rcu_assign_pointer(DATARMNETb4180393e4->rps_map,map);if(DATARMNETaeb4918e65) +kfree(DATARMNETaeb4918e65);free_cpumask_var(mask);rcu_read_unlock(); +spin_unlock_irqrestore(&DATARMNET832731a933(DATARMNETa7a5705ab0).lock,ht_flags); +DATARMNET421230d879=(DATARMNET3de2536baf(DATARMNETa7a5705ab0).qlen+ +DATARMNET832731a933(DATARMNETa7a5705ab0).qlen);if(DATARMNET421230d879){ +DATARMNET68d84e7b98[DATARMNETfeaf903a28]++;}return(0xd2d+202-0xdf7);}static void +*DATARMNETefcaf5fbe9(struct sk_buff*skb,u32 offset,u32 DATARMNET567bdc7221,void* +buf){struct skb_shared_info*shinfo=skb_shinfo(skb);skb_frag_t*frag;u32 +DATARMNETedc267a909=offset;int i;if(offset>skb->len||DATARMNET567bdc7221>skb-> +len||offset+DATARMNET567bdc7221>skb->len)return NULL;if(skb_headlen(skb)>=offset ++DATARMNET567bdc7221)return skb->data+offset;offset-=skb_headlen(skb);for(i= +(0xd2d+202-0xdf7);inr_frags;i++){u32 frag_size;frag=&shinfo->frags[i]; +frag_size=skb_frag_size(frag);if(offset>=frag_size){offset-=frag_size;continue;} +if(frag_size>=offset+DATARMNET567bdc7221)return skb_frag_address(frag)+offset;} +if(skb_copy_bits(skb,(int)DATARMNETedc267a909,buf,(int)DATARMNET567bdc7221)) +return NULL;return buf;}int DATARMNET9303cec796(struct sk_buff*skb){int +DATARMNETbd864aa442=(0xd2d+202-0xdf7);struct iphdr*ip4h,DATARMNETc00baf31c3; +struct ipv6hdr*ip6h,DATARMNETcf1d9e2c1e;switch(skb->protocol){case htons( +ETH_P_IP):ip4h=DATARMNETefcaf5fbe9(skb,(0xd2d+202-0xdf7),sizeof(*ip4h),& +DATARMNETc00baf31c3);if(!ip4h)break;if(!ip_is_fragment(ip4h)&&(ip4h->protocol== +IPPROTO_TCP||ip4h->protocol==IPPROTO_UDP)){DATARMNETbd864aa442=(0xd26+209-0xdf6) +;break;}if(ip4h->protocol==IPPROTO_ICMP){skb->hash=(0xd2d+202-0xdf7);skb-> +sw_hash=DATARMNET9273f84bf1&DATARMNETecc0627c70.DATARMNET5c24e1df05;}break;case +htons(ETH_P_IPV6):ip6h=DATARMNETefcaf5fbe9(skb,(0xd2d+202-0xdf7),sizeof(*ip6h),& DATARMNETcf1d9e2c1e);if(!ip6h)break;if(!(ip6h->nexthdr==NEXTHDR_FRAGMENT)&&(ip6h ->nexthdr==IPPROTO_TCP||ip6h->nexthdr==IPPROTO_UDP)){DATARMNETbd864aa442= (0xd26+209-0xdf6);break;}if(ip6h->nexthdr==IPPROTO_ICMP){skb->hash= -(0xd2d+202-0xdf7);skb->sw_hash=(0xd26+209-0xdf6);}break;default:break;} -DATARMNETda96251102(DATARMNETcd24fca747,DATARMNET116c96c236,DATARMNETbd864aa442, -(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),skb,NULL);return -DATARMNETbd864aa442;}static void DATARMNETfa919d00dc(int cpu,int -DATARMNET8a461bad56){struct timespec DATARMNET2e47295bf1;struct timespec* -DATARMNET736ac5582e;long DATARMNETb64270afc1;int DATARMNETa67155ba38=( -DATARMNETa1ac2608b5sw_hash=DATARMNET9273f84bf1&DATARMNETecc0627c70. +DATARMNET5c24e1df05;}break;default:break;}DATARMNETda96251102( +DATARMNETcd24fca747,DATARMNET116c96c236,DATARMNETbd864aa442,(0x16e8+787-0xc0c), +(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),skb,NULL);return DATARMNETbd864aa442;} +static void DATARMNETfa919d00dc(int cpu,int DATARMNET8a461bad56){struct timespec + DATARMNET2e47295bf1;struct timespec*DATARMNET736ac5582e;long +DATARMNETb64270afc1;int DATARMNETa67155ba38=(DATARMNETa1ac2608b5< +DATARMNET8948dc953d)?DATARMNET8948dc953d:DATARMNETa1ac2608b5;getnstimeofday(& +DATARMNET2e47295bf1);DATARMNET736ac5582e=&DATARMNETecc0627c70. DATARMNET132b9c7dc4[cpu].DATARMNET251b97a380;DATARMNETb64270afc1= DATARMNETe6671dbf38(DATARMNET2e47295bf1.tv_sec-DATARMNET736ac5582e->tv_sec)+ DATARMNET2e47295bf1.tv_nsec-DATARMNET736ac5582e->tv_nsec;if(DATARMNETb64270afc1 @@ -95,11 +128,10 @@ DATARMNETe61d62310f+=DATARMNET8a461bad56;}}static void DATARMNETe767554e6e( struct sk_buff*skb){DATARMNETda96251102(DATARMNET6b317c4c73,DATARMNET43225b7a7c, (0x16e8+787-0xc0c),(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),skb, NULL);netif_receive_skb(skb);}static void DATARMNET514ce0bf59(struct sk_buff*skb -){struct rmnet_priv*priv;DATARMNETda96251102(DATARMNET6b317c4c73, -DATARMNET43225b7a7c,(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),(0x16e8+787-0xc0c), -(0x16e8+787-0xc0c),skb,NULL);priv=netdev_priv(skb->dev);gro_cells_receive(&priv -->gro_cells,skb);}static struct sk_buff*DATARMNET0e315f0262(struct sk_buff*skb, -u16 DATARMNETf8272cfb41){struct skb_shared_info*shinfo=skb_shinfo(skb);struct +){DATARMNETda96251102(DATARMNET6b317c4c73,DATARMNET43225b7a7c,(0x16e8+787-0xc0c) +,(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),skb,NULL);netif_rx_ni( +skb);}static struct sk_buff*DATARMNET0e315f0262(struct sk_buff*skb,u16 +DATARMNETf8272cfb41){struct skb_shared_info*shinfo=skb_shinfo(skb);struct sk_buff*DATARMNET6643e66666,*tmp;u16 gso_size=shinfo->gso_size;u16 gso_segs= shinfo->gso_segs;unsigned int gso_type=shinfo->gso_type;if(DATARMNETf8272cfb41>= gso_segs){return NULL;}shinfo->gso_segs=DIV_ROUND_UP(gso_segs, @@ -163,21 +195,30 @@ DATARMNETf54fdb137b=DATARMNET98b2a0ce62(dev);DATARMNET52de1f3dc0( DATARMNET720469c0a9,DATARMNET7e63a08ad4,DATARMNETf54fdb137b,DATARMNETab155dfd5d, (0x16e8+787-0xc0c),(0x16e8+787-0xc0c),NULL,NULL);return DATARMNETf54fdb137b;}int DATARMNET6af33ebb5b(struct DATARMNET63d7680df2*DATARMNET63b1a086d5){int cpu= -DATARMNETb91aee91fd;if(DATARMNET0997c5650d[DATARMNET63b1a086d5->map_cpu]. -DATARMNETef866573e0&&DATARMNET362b15f941(DATARMNET63b1a086d5->map_cpu)){cpu= -DATARMNET762cfa52fe(DATARMNETbc3c416b77&DATARMNETecc0627c70.map_mask);if(cpu< -(0xd2d+202-0xdf7)&&DATARMNET63b1a086d5->DATARMNET341ea38662!=NULL)cpu= -DATARMNET63b1a086d5->DATARMNET341ea38662->DATARMNET6e1a4eaf09;}else if( -DATARMNET63b1a086d5->DATARMNET341ea38662!=NULL)cpu=DATARMNET63b1a086d5-> -DATARMNET341ea38662->DATARMNET6e1a4eaf09;return cpu;}int DATARMNETb6bff4a724( -struct DATARMNET63d7680df2*DATARMNET63b1a086d5){int cpu,idx=DATARMNETb91aee91fd; -cpu=DATARMNET6af33ebb5b(DATARMNET63b1a086d5);idx=DATARMNET04e8d1b862(cpu, -DATARMNETecc0627c70.map_mask);if(unlikely(idx<(0xd2d+202-0xdf7)))idx= -DATARMNET04e8d1b862(DATARMNET63b1a086d5->map_cpu,DATARMNETecc0627c70.map_mask); -DATARMNETda96251102(DATARMNETf3aaad06eb,DATARMNETf2fc7954d4,DATARMNET63b1a086d5 -->hash,cpu,idx,(0x16e8+787-0xc0c),DATARMNET63b1a086d5,NULL);return idx;}static -int DATARMNET2af09ccd0b(int cpu,int DATARMNET63a222ae1f,int DATARMNETea08087fc0) -{int ret=(0xd2d+202-0xdf7);if(DATARMNETecc0627c70.DATARMNET132b9c7dc4[cpu]. +DATARMNETb91aee91fd;u8 DATARMNETd4a0b11b47;if(DATARMNET63b1a086d5-> +DATARMNET85c698ec34)return DATARMNETecc0627c70.DATARMNET5c24e1df05;else if( +DATARMNET0997c5650d[DATARMNET63b1a086d5->map_cpu].DATARMNETef866573e0&& +DATARMNET362b15f941(DATARMNET63b1a086d5->map_cpu)){cpu=DATARMNET762cfa52fe( +DATARMNETbc3c416b77&~DATARMNETecc0627c70.DATARMNETba3f7a11ef&DATARMNET63b1a086d5 +->DATARMNETfbbec4c537);if(cpu<(0xd2d+202-0xdf7)&&DATARMNET63b1a086d5-> +DATARMNET341ea38662!=NULL)cpu=DATARMNET63b1a086d5->DATARMNET341ea38662-> +DATARMNET6e1a4eaf09;}else if(DATARMNET63b1a086d5->DATARMNET341ea38662!=NULL){cpu +=DATARMNET63b1a086d5->DATARMNET341ea38662->DATARMNET6e1a4eaf09;if(( +(0xd26+209-0xdf6)<map_cpu)&DATARMNETecc0627c70. +DATARMNETba3f7a11ef||((0xd26+209-0xdf6)<DATARMNETfbbec4c537);DATARMNETb7ddf3c5dd[DATARMNET7f401828b3]++;}}return cpu;} +int DATARMNETb6bff4a724(struct DATARMNET63d7680df2*DATARMNET63b1a086d5){int cpu, +idx=DATARMNETb91aee91fd;cpu=DATARMNET6af33ebb5b(DATARMNET63b1a086d5);idx= +DATARMNET04e8d1b862(cpu,DATARMNET63b1a086d5->DATARMNETfbbec4c537);if(unlikely( +idx<(0xd2d+202-0xdf7)))idx=DATARMNET04e8d1b862(DATARMNET63b1a086d5->map_cpu, +DATARMNET63b1a086d5->DATARMNETfbbec4c537);DATARMNETda96251102( +DATARMNETf3aaad06eb,DATARMNETf2fc7954d4,DATARMNET63b1a086d5->hash,cpu,idx, +(0x16e8+787-0xc0c),DATARMNET63b1a086d5,NULL);return idx;}static int +DATARMNET2af09ccd0b(int cpu,int DATARMNET63a222ae1f,int DATARMNETea08087fc0){int + ret=(0xd2d+202-0xdf7);if(DATARMNETecc0627c70.DATARMNET132b9c7dc4[cpu]. DATARMNETe61d62310f>=DATARMNET65393dea13[cpu]){ret=DATARMNET0efbbe2821;}if( DATARMNET63a222ae1f&&((DATARMNETeea3cef5b6(cpu)+DATARMNETea08087fc0)>= DATARMNETbc049ffc4c[cpu]))ret=DATARMNETa4267dfd8a;return ret;}void @@ -200,39 +241,53 @@ DATARMNET42a992465f++){if(!cpu_online(DATARMNET42a992465f))continue; DATARMNETb1157fd5c4(DATARMNET42a992465f);DATARMNETda96251102(DATARMNET75d955c408 ,DATARMNET5874e1ecd7,DATARMNET42a992465f,DATARMNET0997c5650d[DATARMNET42a992465f ].DATARMNETae196235f2,DATARMNET0997c5650d[DATARMNET42a992465f].qtail, -(0x16e8+787-0xc0c),NULL,NULL);}rcu_read_unlock();}int DATARMNETe488c1c396(struct - DATARMNET63d7680df2*DATARMNET63b1a086d5,u8 DATARMNETd87669e323){int +(0x16e8+787-0xc0c),NULL,NULL);}rcu_read_unlock();}int DATARMNET765b8ecfba(struct + net_device*dev,u8 cpu,u8 DATARMNET5780499e9c){if(rmnet_is_real_dev_registered( +dev)){if(DATARMNET713da9913c(dev->_rx,cpu,raw_smp_processor_id(), +DATARMNET5780499e9c)==(0xd2d+202-0xdf7)){RCU_INIT_POINTER(rmnet_shs_switch,NULL) +;if(((0xd26+209-0xdf6)<map_cpu;if(DATARMNET5c4a331b9c< -(0xd2d+202-0xdf7)){DATARMNET63b1a086d5->DATARMNET6250e93187=(0xd2d+202-0xdf7); -ret=(0xd26+209-0xdf6);break;}DATARMNET63b1a086d5->DATARMNET6250e93187= -(0xd26+209-0xdf6);if(!map){DATARMNET63b1a086d5->DATARMNET6250e93187= -(0xd2d+202-0xdf7);ret=(0xd26+209-0xdf6);break;}if(DATARMNET5c4a331b9c== -DATARMNET63b1a086d5->map_index){ret=(0xd26+209-0xdf6);break;}DATARMNETd3673fd5f0 -=DATARMNETadb0248bd4(DATARMNET63b1a086d5->map_cpu);DATARMNET9bbfe49633= -DATARMNET63b1a086d5->queue_head;DATARMNET42a992465f=DATARMNET63b1a086d5->map_cpu -;if((DATARMNETd3673fd5f0>=DATARMNET9bbfe49633)||(DATARMNETd87669e323)){if( -DATARMNETa7909611da){DATARMNETcfb5dc7296=DATARMNETaef946bb68(DATARMNET5c4a331b9c -,DATARMNETecc0627c70.map_mask);if(DATARMNETcfb5dc7296<(0xd2d+202-0xdf7)){ret= -(0xd26+209-0xdf6);break;}DATARMNET0997c5650d[DATARMNETcfb5dc7296]. -DATARMNET4133fc9428+=DATARMNET63b1a086d5->DATARMNETae4b27456e. -DATARMNET6215127f48;DATARMNET0997c5650d[DATARMNET63b1a086d5->map_cpu]. -DATARMNET4133fc9428-=DATARMNET63b1a086d5->DATARMNETae4b27456e. -DATARMNET6215127f48;DATARMNET63b1a086d5->map_index=DATARMNET5c4a331b9c; -DATARMNET63b1a086d5->map_cpu=DATARMNETcfb5dc7296;DATARMNET8ceb7a8cc9= -DATARMNET63b1a086d5->map_cpu;if(DATARMNETd3673fd5f0DATARMNET341ea38662->DATARMNET6e1a4eaf09= -DATARMNET8ceb7a8cc9;DATARMNET0997c5650d[DATARMNET8ceb7a8cc9].DATARMNET1e1f197118 -=(0xd26+209-0xdf6);DATARMNETb7ddf3c5dd[DATARMNETc3bce05be2]++;}else{ -DATARMNETb7ddf3c5dd[DATARMNET14067f0be4]++;}DATARMNET373e474754=& +DATARMNET8ceb7a8cc9;int DATARMNET42a992465f;int DATARMNETcfb5dc7296;int +DATARMNETeaf6716f3e;struct DATARMNETe600c5b727*DATARMNET373e474754;u8 map= +DATARMNET63b1a086d5->DATARMNETfbbec4c537;DATARMNET5c4a331b9c=DATARMNETb6bff4a724 +(DATARMNET63b1a086d5);do{DATARMNET5a2e9192f9=DATARMNET63b1a086d5->map_cpu;if( +DATARMNET5c4a331b9c<(0xd2d+202-0xdf7)){DATARMNET63b1a086d5->DATARMNET6250e93187= +(0xd2d+202-0xdf7);ret=(0xd26+209-0xdf6);break;}DATARMNET63b1a086d5-> +DATARMNET6250e93187=(0xd26+209-0xdf6);if(!map){DATARMNET63b1a086d5-> +DATARMNET6250e93187=(0xd2d+202-0xdf7);ret=(0xd26+209-0xdf6);break;}if( +DATARMNET5c4a331b9c==DATARMNET63b1a086d5->map_index){ret=(0xd26+209-0xdf6);break +;}DATARMNETd3673fd5f0=DATARMNETadb0248bd4(DATARMNET63b1a086d5->map_cpu); +DATARMNET9bbfe49633=DATARMNET63b1a086d5->queue_head;DATARMNET42a992465f= +DATARMNET63b1a086d5->map_cpu;DATARMNETeaf6716f3e=DATARMNET3de2536baf( +DATARMNET42a992465f).qlen+DATARMNET832731a933(DATARMNET42a992465f).qlen;if(( +DATARMNET63b1a086d5->DATARMNET85c698ec34&&(!DATARMNETeaf6716f3e))||(! +DATARMNET63b1a086d5->DATARMNET85c698ec34&&DATARMNETd3673fd5f0>= +DATARMNET9bbfe49633)||(DATARMNETd87669e323)){if(likely(DATARMNETa7909611da)){if( +DATARMNET63b1a086d5->DATARMNET85c698ec34&&!((DATARMNET765b8ecfba( +DATARMNET63b1a086d5->dev,DATARMNET5c4a331b9c,DATARMNETd87669e323)== +(0xd2d+202-0xdf7)))){ret=(0xd26+209-0xdf6);break;}DATARMNETcfb5dc7296= +DATARMNETaef946bb68(DATARMNET5c4a331b9c,DATARMNET63b1a086d5->DATARMNETfbbec4c537 +);if(DATARMNETcfb5dc7296<(0xd2d+202-0xdf7)){ret=(0xd26+209-0xdf6);break;} +DATARMNET0997c5650d[DATARMNETcfb5dc7296].DATARMNET4133fc9428+= +DATARMNET63b1a086d5->DATARMNETae4b27456e.DATARMNET6215127f48;DATARMNET0997c5650d +[DATARMNET63b1a086d5->map_cpu].DATARMNET4133fc9428-=DATARMNET63b1a086d5-> +DATARMNETae4b27456e.DATARMNET6215127f48;DATARMNET63b1a086d5->map_index= +DATARMNET5c4a331b9c;DATARMNET63b1a086d5->map_cpu=DATARMNETcfb5dc7296; +DATARMNET8ceb7a8cc9=DATARMNET63b1a086d5->map_cpu;if(DATARMNETd3673fd5f0< +DATARMNET9bbfe49633){DATARMNETb7ddf3c5dd[DATARMNET28bb261646]++; +DATARMNETb7ddf3c5dd[DATARMNET67b67dc88f]+=(DATARMNET9bbfe49633- +DATARMNETd3673fd5f0);DATARMNET4bde88919f(DATARMNET42a992465f,DATARMNET9bbfe49633 +-DATARMNETd3673fd5f0);}if(DATARMNET0997c5650d[DATARMNET42a992465f]. +DATARMNETef866573e0){DATARMNET63b1a086d5->DATARMNET341ea38662-> +DATARMNET6e1a4eaf09=DATARMNET8ceb7a8cc9;DATARMNET0997c5650d[DATARMNET8ceb7a8cc9] +.DATARMNET1e1f197118=(0xd26+209-0xdf6);DATARMNETb7ddf3c5dd[DATARMNETc3bce05be2] +++;}else{DATARMNETb7ddf3c5dd[DATARMNET14067f0be4]++;}DATARMNET373e474754=& DATARMNET0997c5650d[DATARMNET63b1a086d5->map_cpu];DATARMNETe074a09496(); DATARMNET63b1a086d5->queue_head=DATARMNET373e474754->DATARMNETae196235f2; DATARMNETe102b3a798(DATARMNET63b1a086d5,&DATARMNET373e474754-> @@ -280,37 +335,42 @@ skb=NULL;struct sk_buff*DATARMNETcebafc57a4=NULL;u32 DATARMNETe20a9cab2b= (0xd2d+202-0xdf7);u32 DATARMNETb481d13a78=(0xd2d+202-0xdf7);u32 DATARMNET1fcbf046ec=(0xd2d+202-0xdf7);u8 map=(0xd2d+202-0xdf7), DATARMNET0258668025=(0xd2d+202-0xdf7);u16 DATARMNET87636d0152=(0xd2d+202-0xdf7); -if(!DATARMNET63b1a086d5->DATARMNETae4b27456e.head)return;map=DATARMNETecc0627c70 -.map_mask;DATARMNET0258668025=DATARMNETecc0627c70.map_len;if(map){ -DATARMNET1fcbf046ec=DATARMNET8532ab3089(DATARMNET63b1a086d5->map_index, -DATARMNET0258668025,DATARMNET63b1a086d5->DATARMNETae4b27456e.head->hash);}else{ -DATARMNET63b1a086d5->DATARMNET6250e93187=(0xd2d+202-0xdf7);}DATARMNET52de1f3dc0( -DATARMNET4510abc30d,DATARMNETe4ee0d2636,DATARMNET63b1a086d5->hash, -DATARMNET1fcbf046ec,DATARMNET63b1a086d5->DATARMNETae4b27456e.DATARMNET6215127f48 -,DATARMNET63b1a086d5->DATARMNETae4b27456e.DATARMNETbaa5765693, -DATARMNET63b1a086d5,DATARMNET63b1a086d5->DATARMNETae4b27456e.head); -DATARMNET87636d0152=(u16)DATARMNET63b1a086d5->DATARMNET341ea38662-> -DATARMNET87636d0152;for((skb=DATARMNET63b1a086d5->DATARMNETae4b27456e.head);skb -!=NULL;skb=DATARMNETcebafc57a4){DATARMNETcebafc57a4=skb->next;if( -DATARMNET63b1a086d5->DATARMNET6250e93187)skb->hash=DATARMNET1fcbf046ec;skb->next -=NULL;DATARMNETe20a9cab2b+=(0xd26+209-0xdf6);DATARMNETb481d13a78+=skb->len;if( -DATARMNET87636d0152>(0xd2d+202-0xdf7)){if(DATARMNET63b1a086d5-> -DATARMNET1e9d25d9ff==IPPROTO_UDP)DATARMNET68d84e7b98[DATARMNETdd6bf3de6b]++; -DATARMNET21243b86ae(skb,DATARMNETf345c1d909,DATARMNET87636d0152);}else{if( -DATARMNETf345c1d909==DATARMNET0b15fd8b54)DATARMNETe767554e6e(skb);else -DATARMNET514ce0bf59(skb);}}DATARMNET63b1a086d5->DATARMNETae4b27456e. -DATARMNET6215127f48=(0xd2d+202-0xdf7);DATARMNET63b1a086d5->DATARMNETae4b27456e. -DATARMNETbaa5765693=(0xd2d+202-0xdf7);DATARMNET63b1a086d5->DATARMNETae4b27456e. -head=NULL;DATARMNET63b1a086d5->DATARMNETae4b27456e.tail=NULL;DATARMNET52de1f3dc0 -(DATARMNET4510abc30d,DATARMNETfb753e521e,DATARMNET63b1a086d5->hash, -DATARMNET1fcbf046ec,DATARMNETe20a9cab2b,DATARMNETb481d13a78,DATARMNET63b1a086d5, -NULL);}void DATARMNET23c7ddd780(struct DATARMNET63d7680df2*DATARMNET63b1a086d5, -u8 DATARMNET5447204733){struct sk_buff*skb;struct sk_buff*DATARMNETcebafc57a4= -NULL;u32 DATARMNETe20a9cab2b=(0xd2d+202-0xdf7);u32 DATARMNETb481d13a78= +u16 index;if(!DATARMNET63b1a086d5->DATARMNETae4b27456e.head)return;if(! +DATARMNET63b1a086d5->DATARMNETfbbec4c537){map=DATARMNETecc0627c70.map_mask; +DATARMNET0258668025=DATARMNETecc0627c70.map_len;index=DATARMNET63b1a086d5-> +map_index;}else{map=DATARMNET63b1a086d5->DATARMNETfbbec4c537;DATARMNET0258668025 +=DATARMNET63b1a086d5->DATARMNETa59ce1fd2d;index=DATARMNET63b1a086d5->map_index;} +if(map){DATARMNET1fcbf046ec=DATARMNET8532ab3089(index,DATARMNET0258668025, +DATARMNET63b1a086d5->DATARMNETae4b27456e.head->hash);}else{DATARMNET63b1a086d5-> +DATARMNET6250e93187=(0xd2d+202-0xdf7);}DATARMNET52de1f3dc0(DATARMNET4510abc30d, +DATARMNETe4ee0d2636,DATARMNET63b1a086d5->hash,DATARMNET1fcbf046ec, +DATARMNET63b1a086d5->DATARMNETae4b27456e.DATARMNET6215127f48,DATARMNET63b1a086d5 +->DATARMNETae4b27456e.DATARMNETbaa5765693,DATARMNET63b1a086d5, +DATARMNET63b1a086d5->DATARMNETae4b27456e.head);DATARMNET87636d0152=(u16) +DATARMNET63b1a086d5->DATARMNET341ea38662->DATARMNET87636d0152;for((skb= +DATARMNET63b1a086d5->DATARMNETae4b27456e.head);skb!=NULL;skb=DATARMNETcebafc57a4 +){DATARMNETcebafc57a4=skb->next;if(DATARMNET63b1a086d5->DATARMNET6250e93187)skb +->hash=DATARMNET1fcbf046ec;skb->next=NULL;DATARMNETe20a9cab2b+=(0xd26+209-0xdf6) +;DATARMNETb481d13a78+=skb->len;if(DATARMNET87636d0152>(0xd2d+202-0xdf7)){if( +DATARMNET63b1a086d5->DATARMNET1e9d25d9ff==IPPROTO_UDP)DATARMNET68d84e7b98[ +DATARMNETdd6bf3de6b]++;DATARMNET21243b86ae(skb,DATARMNETf345c1d909, +DATARMNET87636d0152);}else{if(DATARMNETf345c1d909==DATARMNET0b15fd8b54&&(! +DATARMNET63b1a086d5->DATARMNET85c698ec34))DATARMNETe767554e6e(skb);else if( +DATARMNETf345c1d909==DATARMNET5b5927fd7e&&DATARMNET63b1a086d5-> +DATARMNET85c698ec34)DATARMNETe767554e6e(skb);else DATARMNET514ce0bf59(skb);}} +DATARMNET63b1a086d5->DATARMNETae4b27456e.DATARMNET6215127f48=(0xd2d+202-0xdf7); +DATARMNET63b1a086d5->DATARMNETae4b27456e.DATARMNETbaa5765693=(0xd2d+202-0xdf7); +DATARMNET63b1a086d5->DATARMNETae4b27456e.head=NULL;DATARMNET63b1a086d5-> +DATARMNETae4b27456e.tail=NULL;DATARMNET52de1f3dc0(DATARMNET4510abc30d, +DATARMNETfb753e521e,DATARMNET63b1a086d5->hash,DATARMNET1fcbf046ec, +DATARMNETe20a9cab2b,DATARMNETb481d13a78,DATARMNET63b1a086d5,NULL);}void +DATARMNET23c7ddd780(struct DATARMNET63d7680df2*DATARMNET63b1a086d5,u8 +DATARMNET5447204733){struct sk_buff*skb;struct sk_buff*DATARMNETcebafc57a4=NULL; +u32 DATARMNETe20a9cab2b=(0xd2d+202-0xdf7);u32 DATARMNETb481d13a78= (0xd2d+202-0xdf7);u32 DATARMNET1fcbf046ec;u8 map,DATARMNET0258668025;if(! -DATARMNET63b1a086d5->DATARMNETae4b27456e.head)return;map=DATARMNETecc0627c70. -map_mask;DATARMNET0258668025=DATARMNETecc0627c70.map_len;if(map){ -DATARMNET1fcbf046ec=DATARMNET8532ab3089(DATARMNET63b1a086d5->map_index, +DATARMNET63b1a086d5->DATARMNETae4b27456e.head)return;map=DATARMNET63b1a086d5-> +DATARMNETfbbec4c537;DATARMNET0258668025=DATARMNET63b1a086d5->DATARMNETa59ce1fd2d +;if(map){DATARMNET1fcbf046ec=DATARMNET8532ab3089(DATARMNET63b1a086d5->map_index, DATARMNET0258668025,DATARMNET63b1a086d5->DATARMNETae4b27456e.head->hash);}else{ DATARMNET63b1a086d5->DATARMNET6250e93187=(0xd2d+202-0xdf7);}for((skb= DATARMNET63b1a086d5->DATARMNETae4b27456e.head);skb!=NULL;skb=DATARMNETcebafc57a4 @@ -323,40 +383,41 @@ DATARMNETb481d13a78;DATARMNETecc0627c70.DATARMNETa2e32cdd3a-=DATARMNETe20a9cab2b ;DATARMNET0997c5650d[DATARMNET63b1a086d5->map_cpu].DATARMNET4133fc9428-= DATARMNETe20a9cab2b;}int DATARMNETe02152c351(struct DATARMNET63d7680df2* DATARMNET63b1a086d5,u8 DATARMNETd87669e323,u8 DATARMNET5447204733){int -DATARMNETbd864aa442=(0xd2d+202-0xdf7);int map=DATARMNETecc0627c70.map_mask;int -DATARMNET5643f7b5e9;DATARMNET52de1f3dc0(DATARMNET4510abc30d,DATARMNET022082b219, -DATARMNETd87669e323,DATARMNET5447204733,(0x16e8+787-0xc0c),(0x16e8+787-0xc0c), -DATARMNET63b1a086d5,NULL);if(DATARMNETaef946bb68(DATARMNET63b1a086d5->map_index, -map)!=DATARMNET63b1a086d5->map_cpu){DATARMNET5643f7b5e9=DATARMNET04e8d1b862( -DATARMNET63b1a086d5->map_cpu,map);if(DATARMNET5643f7b5e9>=(0xd2d+202-0xdf7)){ -DATARMNET63b1a086d5->map_index=DATARMNET5643f7b5e9;DATARMNET63b1a086d5->map_cpu= -DATARMNETaef946bb68(DATARMNET5643f7b5e9,map);}else{DATARMNET63b1a086d5-> -map_index=DATARMNET2edff26954;DATARMNET63b1a086d5->map_cpu=DATARMNETaef946bb68( +DATARMNETbd864aa442=(0xd2d+202-0xdf7);int map=DATARMNET63b1a086d5-> +DATARMNETfbbec4c537;int DATARMNET5643f7b5e9;DATARMNET52de1f3dc0( +DATARMNET4510abc30d,DATARMNET022082b219,DATARMNETd87669e323,DATARMNET5447204733, +(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),DATARMNET63b1a086d5,NULL);if( +DATARMNETaef946bb68(DATARMNET63b1a086d5->map_index,map)!=DATARMNET63b1a086d5-> +map_cpu){DATARMNET5643f7b5e9=DATARMNET04e8d1b862(DATARMNET63b1a086d5->map_cpu, +map);if(DATARMNET5643f7b5e9>=(0xd2d+202-0xdf7)){DATARMNET63b1a086d5->map_index= +DATARMNET5643f7b5e9;DATARMNET63b1a086d5->map_cpu=DATARMNETaef946bb68( +DATARMNET5643f7b5e9,map);}else{DATARMNET63b1a086d5->map_index= +DATARMNET2edff26954;DATARMNET63b1a086d5->map_cpu=DATARMNETaef946bb68( DATARMNET2edff26954,map);if(DATARMNET63b1a086d5->map_cpu<(0xd2d+202-0xdf7)) DATARMNET63b1a086d5->map_cpu=DATARMNET2edff26954;}DATARMNETd87669e323= (0xd26+209-0xdf6);DATARMNET68d84e7b98[DATARMNETa1f9420686]++;DATARMNET015fb2ba0e (DATARMNET720469c0a9,DATARMNET998c6de143,(0x16e8+787-0xc0c),(0x16e8+787-0xc0c), (0x16e8+787-0xc0c),(0x16e8+787-0xc0c),NULL,NULL);}if(DATARMNETe488c1c396( -DATARMNET63b1a086d5,DATARMNETd87669e323)){DATARMNETcba2f7f7b6( -DATARMNET63b1a086d5,DATARMNET5447204733);DATARMNETbd864aa442=(0xd26+209-0xdf6);} -DATARMNET52de1f3dc0(DATARMNET4510abc30d,DATARMNET64b02f64c6,DATARMNETbd864aa442, -DATARMNETd87669e323,(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),DATARMNET63b1a086d5, -NULL);return DATARMNETbd864aa442;}static void DATARMNETc54e431bbc(u8 -DATARMNET42a992465f,u8 DATARMNET7845d39672,u32 DATARMNETea08087fc0){u32 -DATARMNETba6017a3a9=(!DATARMNET227d2ff866)?(0xd26+209-0xdf6):DATARMNET227d2ff866 -;int DATARMNETd9d8392917;if((DATARMNETd9d8392917=DATARMNET2af09ccd0b( -DATARMNET42a992465f,DATARMNET7845d39672,DATARMNETea08087fc0))&& -DATARMNET362b15f941(DATARMNET42a992465f)&&!DATARMNET0997c5650d[ -DATARMNET42a992465f].DATARMNETef866573e0){DATARMNETba6017a3a9=(! -DATARMNET7845d39672)?DATARMNET249a927510:DATARMNETba6017a3a9;DATARMNET0997c5650d -[DATARMNET42a992465f].DATARMNETef866573e0=(0xd26+209-0xdf6);DATARMNETfb7007f025( -);if(hrtimer_active(&DATARMNETba5ea4329f(DATARMNET42a992465f)))hrtimer_cancel(& -DATARMNETba5ea4329f(DATARMNET42a992465f));hrtimer_start(&DATARMNETba5ea4329f( -DATARMNET42a992465f),ns_to_ktime(DATARMNETba6017a3a9*DATARMNET68fc0be252), -HRTIMER_MODE_REL);DATARMNETb7ddf3c5dd[DATARMNETd9d8392917]++;}}void -DATARMNETe377e0368d(u8 DATARMNETded3da1a77,u8 DATARMNET5447204733){struct -DATARMNET63d7680df2*DATARMNET3f85732c70=NULL;struct list_head* -DATARMNET7b34b7b5be=NULL,*next=NULL;int DATARMNET42a992465f;u32 +DATARMNET63b1a086d5,DATARMNETd87669e323,DATARMNET5447204733)){ +DATARMNETcba2f7f7b6(DATARMNET63b1a086d5,DATARMNET5447204733);DATARMNETbd864aa442 +=(0xd26+209-0xdf6);}DATARMNET52de1f3dc0(DATARMNET4510abc30d,DATARMNET64b02f64c6, +DATARMNETbd864aa442,DATARMNETd87669e323,(0x16e8+787-0xc0c),(0x16e8+787-0xc0c), +DATARMNET63b1a086d5,NULL);return DATARMNETbd864aa442;}static void +DATARMNETc54e431bbc(u8 DATARMNET42a992465f,u8 DATARMNET7845d39672,u32 +DATARMNETea08087fc0){u32 DATARMNETba6017a3a9=(!DATARMNET227d2ff866)? +(0xd26+209-0xdf6):DATARMNET227d2ff866;int DATARMNETd9d8392917;if(( +DATARMNETd9d8392917=DATARMNET2af09ccd0b(DATARMNET42a992465f,DATARMNET7845d39672, +DATARMNETea08087fc0))&&DATARMNET362b15f941(DATARMNET42a992465f)&&! +DATARMNET0997c5650d[DATARMNET42a992465f].DATARMNETef866573e0){ +DATARMNETba6017a3a9=(!DATARMNET7845d39672)?DATARMNET249a927510: +DATARMNETba6017a3a9;DATARMNET0997c5650d[DATARMNET42a992465f].DATARMNETef866573e0 +=(0xd26+209-0xdf6);DATARMNETfb7007f025();if(hrtimer_active(&DATARMNETba5ea4329f( +DATARMNET42a992465f)))hrtimer_cancel(&DATARMNETba5ea4329f(DATARMNET42a992465f)); +hrtimer_start(&DATARMNETba5ea4329f(DATARMNET42a992465f),ns_to_ktime( +DATARMNETba6017a3a9*DATARMNET68fc0be252),HRTIMER_MODE_REL);DATARMNETb7ddf3c5dd[ +DATARMNETd9d8392917]++;}}void DATARMNETe377e0368d(u8 DATARMNETded3da1a77,u8 +DATARMNET5447204733){struct DATARMNET63d7680df2*DATARMNET3f85732c70=NULL;struct +list_head*DATARMNET7b34b7b5be=NULL,*next=NULL;int DATARMNET42a992465f;u32 DATARMNET61ab18a4bd;u32 DATARMNETed7800fc72=(0xd2d+202-0xdf7);u32 DATARMNETa0df5de99d=(0xd2d+202-0xdf7);u32 DATARMNETe56f4fbbe6=(0xd2d+202-0xdf7); u32 DATARMNET8bf94cc2f7=(0xd2d+202-0xdf7);u32 DATARMNET76192fa639= @@ -418,47 +479,52 @@ DATARMNET6fd692fc7a);hrtimer_start(&DATARMNETecc0627c70.DATARMNET6fd692fc7a, ns_to_ktime(DATARMNET4ac8af832c*DATARMNET68fc0be252),HRTIMER_MODE_REL);} DATARMNET14ed771dfb[DATARMNETd45c383019]++;}spin_unlock_irqrestore(& DATARMNET3764d083f0,ht_flags);}void DATARMNET495dab3d72(struct sk_buff*skb, -struct DATARMNET63d7680df2*DATARMNET63b1a086d5){u8 DATARMNET7d63e92341= -(0xd2d+202-0xdf7);if(skb->cb[DATARMNET8fadb49f38]){DATARMNETe377e0368d( -(0xd2d+202-0xdf7),DATARMNET0b15fd8b54);DATARMNET14ed771dfb[DATARMNETc8058e2cff] -++;DATARMNET7d63e92341=(0xd26+209-0xdf6);}if(skb_shinfo(skb)->gso_segs){ -DATARMNET63b1a086d5->DATARMNET11930c5df8+=skb_shinfo(skb)->gso_segs; -DATARMNET0997c5650d[DATARMNET63b1a086d5->map_cpu].DATARMNET4133fc9428++; -DATARMNET63b1a086d5->DATARMNETae4b27456e.DATARMNET35234676d4+=skb_shinfo(skb)-> -gso_segs;}else{DATARMNET63b1a086d5->DATARMNET11930c5df8+=(0xd26+209-0xdf6); -DATARMNET0997c5650d[DATARMNET63b1a086d5->map_cpu].DATARMNET4133fc9428++; -DATARMNET63b1a086d5->DATARMNETae4b27456e.DATARMNET35234676d4++;} -DATARMNET63b1a086d5->DATARMNETa8940e4a7b+=(0xd26+209-0xdf6);DATARMNET63b1a086d5 -->DATARMNET2594c418db+=skb->len;DATARMNET63b1a086d5->DATARMNETae4b27456e. -DATARMNETbaa5765693+=skb->len;DATARMNETecc0627c70.DATARMNETc252a1f55d+=skb->len; -if(DATARMNET63b1a086d5->DATARMNETae4b27456e.DATARMNET6215127f48> -(0xd2d+202-0xdf7)){DATARMNET63b1a086d5->DATARMNETae4b27456e.tail->next=skb; -DATARMNET63b1a086d5->DATARMNETae4b27456e.tail=DATARMNET63b1a086d5-> -DATARMNETae4b27456e.tail->next;}else{DATARMNET63b1a086d5->DATARMNETae4b27456e. -head=skb;DATARMNET63b1a086d5->DATARMNETae4b27456e.tail=skb;}DATARMNET63b1a086d5 -->DATARMNETae4b27456e.DATARMNET6215127f48+=(0xd26+209-0xdf6);DATARMNETecc0627c70 -.DATARMNETa2e32cdd3a+=(0xd26+209-0xdf6);if(unlikely(DATARMNET7d63e92341)) -DATARMNETe377e0368d((0xd2d+202-0xdf7),DATARMNET0b15fd8b54);DATARMNET52de1f3dc0( -DATARMNET720469c0a9,DATARMNETf5c836f9ae,DATARMNET63b1a086d5->DATARMNETae4b27456e -.DATARMNET6215127f48,DATARMNET63b1a086d5->DATARMNETae4b27456e. -DATARMNETbaa5765693,DATARMNETecc0627c70.DATARMNETa2e32cdd3a,DATARMNETecc0627c70. -DATARMNETc252a1f55d,skb,DATARMNET63b1a086d5);}static void DATARMNETa7afc8cdaa( -struct work_struct*DATARMNET33110a3ff5){u8 DATARMNET665469cfb6=(0xd2d+202-0xdf7) -;DATARMNET52de1f3dc0(DATARMNET4510abc30d,DATARMNET816bb1e327,DATARMNET665469cfb6 -,DATARMNETecc0627c70.DATARMNET34097703c8,(0x16e8+787-0xc0c),(0x16e8+787-0xc0c), -NULL,NULL);if(DATARMNETecc0627c70.DATARMNETa2e32cdd3a&&DATARMNETecc0627c70. -DATARMNET34097703c8==DATARMNETb3e3b2a799){local_bh_disable();DATARMNETa4bf9fbf64 -(DATARMNET665469cfb6,DATARMNET5b5927fd7e);local_bh_enable();}DATARMNET52de1f3dc0 -(DATARMNET4510abc30d,DATARMNETf311f20c00,DATARMNET665469cfb6,(0x16e8+787-0xc0c), -(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),NULL,NULL);}enum hrtimer_restart -DATARMNET0a73c53ae6(struct hrtimer*DATARMNET6e4292679f){enum hrtimer_restart ret -=HRTIMER_NORESTART;DATARMNET52de1f3dc0(DATARMNET4510abc30d,DATARMNET237e7bd5f6, -DATARMNETecc0627c70.DATARMNET34097703c8,(0x16e8+787-0xc0c),(0x16e8+787-0xc0c), -(0x16e8+787-0xc0c),NULL,NULL);if(DATARMNETecc0627c70.DATARMNETa2e32cdd3a> -(0xd2d+202-0xdf7)){if(DATARMNETecc0627c70.DATARMNET34097703c8== -DATARMNET7bc926fdbe){DATARMNETecc0627c70.DATARMNET34097703c8=DATARMNETb3e3b2a799 -;hrtimer_forward(DATARMNET6e4292679f,hrtimer_cb_get_time(DATARMNET6e4292679f), -ns_to_ktime(DATARMNET00d5787aad));ret=HRTIMER_RESTART;DATARMNET52de1f3dc0( +struct DATARMNET63d7680df2*DATARMNET63b1a086d5,struct rmnet_shs_clnt_s* +DATARMNET0bf01e7c6f){u8 DATARMNET7d63e92341=(0xd2d+202-0xdf7); +#ifdef DATARMNETdddae6afa8 +if(!(DATARMNET0bf01e7c6f->config&DATARMNET2a76d433b3)&&skb->cb[ +DATARMNET8fadb49f38]){DATARMNETe377e0368d((0xd2d+202-0xdf7),DATARMNET0b15fd8b54) +;DATARMNET14ed771dfb[DATARMNETc8058e2cff]++;DATARMNET7d63e92341= +(0xd26+209-0xdf6);} +#endif +if(skb_shinfo(skb)->gso_segs){DATARMNET63b1a086d5->DATARMNET11930c5df8+= +skb_shinfo(skb)->gso_segs;DATARMNET0997c5650d[DATARMNET63b1a086d5->map_cpu]. +DATARMNET4133fc9428++;DATARMNET63b1a086d5->DATARMNETae4b27456e. +DATARMNET35234676d4+=skb_shinfo(skb)->gso_segs;}else{DATARMNET63b1a086d5-> +DATARMNET11930c5df8+=(0xd26+209-0xdf6);DATARMNET0997c5650d[DATARMNET63b1a086d5-> +map_cpu].DATARMNET4133fc9428++;DATARMNET63b1a086d5->DATARMNETae4b27456e. +DATARMNET35234676d4++;}DATARMNET63b1a086d5->DATARMNETa8940e4a7b+= +(0xd26+209-0xdf6);DATARMNET63b1a086d5->DATARMNET2594c418db+=skb->len; +DATARMNET63b1a086d5->DATARMNETae4b27456e.DATARMNETbaa5765693+=skb->len; +DATARMNETecc0627c70.DATARMNETc252a1f55d+=skb->len;if(DATARMNET63b1a086d5-> +DATARMNETae4b27456e.DATARMNET6215127f48>(0xd2d+202-0xdf7)){DATARMNET63b1a086d5-> +DATARMNETae4b27456e.tail->next=skb;DATARMNET63b1a086d5->DATARMNETae4b27456e.tail +=DATARMNET63b1a086d5->DATARMNETae4b27456e.tail->next;}else{DATARMNET63b1a086d5-> +DATARMNETae4b27456e.head=skb;DATARMNET63b1a086d5->DATARMNETae4b27456e.tail=skb;} +DATARMNET63b1a086d5->DATARMNETae4b27456e.DATARMNET6215127f48+=(0xd26+209-0xdf6); +DATARMNETecc0627c70.DATARMNETa2e32cdd3a+=(0xd26+209-0xdf6);if(unlikely( +DATARMNET7d63e92341))DATARMNETe377e0368d((0xd2d+202-0xdf7),DATARMNET0b15fd8b54); +DATARMNET52de1f3dc0(DATARMNET720469c0a9,DATARMNETf5c836f9ae,DATARMNET63b1a086d5 +->DATARMNETae4b27456e.DATARMNET6215127f48,DATARMNET63b1a086d5-> +DATARMNETae4b27456e.DATARMNETbaa5765693,DATARMNETecc0627c70.DATARMNETa2e32cdd3a, +DATARMNETecc0627c70.DATARMNETc252a1f55d,skb,DATARMNET63b1a086d5);}static void +DATARMNETa7afc8cdaa(struct work_struct*DATARMNET33110a3ff5){u8 +DATARMNET665469cfb6=(0xd2d+202-0xdf7);DATARMNET52de1f3dc0(DATARMNET4510abc30d, +DATARMNET816bb1e327,DATARMNET665469cfb6,DATARMNETecc0627c70.DATARMNET34097703c8, +(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),NULL,NULL);if(DATARMNETecc0627c70. +DATARMNETa2e32cdd3a&&DATARMNETecc0627c70.DATARMNET34097703c8== +DATARMNETb3e3b2a799){local_bh_disable();DATARMNETa4bf9fbf64(DATARMNET665469cfb6, +DATARMNET5b5927fd7e);local_bh_enable();}DATARMNET52de1f3dc0(DATARMNET4510abc30d, +DATARMNETf311f20c00,DATARMNET665469cfb6,(0x16e8+787-0xc0c),(0x16e8+787-0xc0c), +(0x16e8+787-0xc0c),NULL,NULL);}enum hrtimer_restart DATARMNET0a73c53ae6(struct +hrtimer*DATARMNET6e4292679f){enum hrtimer_restart ret=HRTIMER_NORESTART; +DATARMNET52de1f3dc0(DATARMNET4510abc30d,DATARMNET237e7bd5f6,DATARMNETecc0627c70. +DATARMNET34097703c8,(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),(0x16e8+787-0xc0c), +NULL,NULL);if(DATARMNETecc0627c70.DATARMNETa2e32cdd3a>(0xd2d+202-0xdf7)){if( +DATARMNETecc0627c70.DATARMNET34097703c8==DATARMNET7bc926fdbe){ +DATARMNETecc0627c70.DATARMNET34097703c8=DATARMNETb3e3b2a799;hrtimer_forward( +DATARMNET6e4292679f,hrtimer_cb_get_time(DATARMNET6e4292679f),ns_to_ktime( +DATARMNET00d5787aad));ret=HRTIMER_RESTART;DATARMNET52de1f3dc0( DATARMNET4510abc30d,DATARMNETf16e78412b,DATARMNETecc0627c70.DATARMNETa2e32cdd3a, (0x16e8+787-0xc0c),(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),NULL,NULL);}else if( DATARMNETecc0627c70.DATARMNET34097703c8==DATARMNET8dcf06727b){ @@ -529,11 +595,12 @@ DATARMNETfc89d842ae)return;map=rcu_dereference(vnd->_rx->rps_map);if(!map){ map_mask=(0xd2d+202-0xdf7);map_len=(0xd2d+202-0xdf7);}else{map_mask= DATARMNET928c931df9(map);map_len=DATARMNET310c3eb16e(map_mask);} DATARMNETecc0627c70.port=rmnet_get_port(dev);DATARMNETecc0627c70.map_mask= -map_mask;DATARMNETecc0627c70.map_len=map_len;for(DATARMNET0e4304d903= -(0xd2d+202-0xdf7);DATARMNET0e4304d903 DATARMNET1e9d25d9ff==IPPROTO_UDP){up=DATARMNETefcaf5fbe9(skb,ip_len,sizeof(*up), &DATARMNETc82d2f4e16);if(!up)return;memcpy(&(node_p->DATARMNETe33b41dad9.up),up, sizeof(struct udphdr));}else{}}int DATARMNET756778f14f(struct sk_buff*skb,struct - rmnet_port*port){struct DATARMNET63d7680df2*node_p;struct hlist_node*tmp;struct - net_device*dev=skb->dev;int map=DATARMNETecc0627c70.map_mask;unsigned long -ht_flags;int DATARMNETcfb5dc7296;int map_cpu;u64 DATARMNET138d6d02d2= -(0xd2d+202-0xdf7);u32 DATARMNET5c4a331b9c,hash;u8 is_match_found= -(0xd2d+202-0xdf7);u8 DATARMNET935af10724=(0xd2d+202-0xdf7);struct -DATARMNETe600c5b727*DATARMNETa4055affd5;struct rmnet_priv*priv;if(! -DATARMNET9303cec796(skb)){DATARMNETe767554e6e(skb);return(0xd2d+202-0xdf7);}if(( -unlikely(!map))||!DATARMNETecc0627c70.DATARMNETfc89d842ae){DATARMNETe767554e6e( -skb);DATARMNET015fb2ba0e(DATARMNET720469c0a9,DATARMNETe0fee0991a, -(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),NULL -,NULL);DATARMNET68d84e7b98[DATARMNETe3c02ddaeb]++;return(0xd2d+202-0xdf7);} -DATARMNET52de1f3dc0(DATARMNET720469c0a9,DATARMNET856c53293b,(0x16e8+787-0xc0c), -(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),skb,NULL);hash= -skb_get_hash(skb);spin_lock_irqsave(&DATARMNET3764d083f0,ht_flags);do{ -hash_for_each_possible_safe(DATARMNETe603c3a4b3,node_p,tmp,list,hash){if(hash!= + rmnet_shs_clnt_s*DATARMNET0bf01e7c6f){struct DATARMNET63d7680df2*node_p;struct +hlist_node*tmp;int map=DATARMNETecc0627c70.map_mask;unsigned long ht_flags;int +DATARMNETcfb5dc7296;int map_cpu;u32 DATARMNET5c4a331b9c,hash;u8 is_match_found= +(0xd2d+202-0xdf7);u8 DATARMNET935af10724=(0xd2d+202-0xdf7);u8 +DATARMNET7c5ef97eab=(0xd2d+202-0xdf7);struct DATARMNETe600c5b727* +DATARMNETa4055affd5;struct rmnet_priv*priv;if(!(DATARMNET0bf01e7c6f->config& +RMNET_SHS_STMP_ALL)&&!DATARMNET9303cec796(skb)){DATARMNETe767554e6e(skb);return +(0xd2d+202-0xdf7);}if((unlikely(!map))||!DATARMNETecc0627c70.DATARMNETfc89d842ae +){DATARMNETe767554e6e(skb);DATARMNET015fb2ba0e(DATARMNET720469c0a9, +DATARMNETe0fee0991a,(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),(0x16e8+787-0xc0c), +(0x16e8+787-0xc0c),NULL,NULL);DATARMNET68d84e7b98[DATARMNETe3c02ddaeb]++;return +(0xd2d+202-0xdf7);}DATARMNET52de1f3dc0(DATARMNET720469c0a9,DATARMNET856c53293b, +(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),skb, +NULL);hash=skb_get_hash(skb);spin_lock_irqsave(&DATARMNET3764d083f0,ht_flags);do +{hash_for_each_possible_safe(DATARMNETe603c3a4b3,node_p,tmp,list,hash){if(hash!= node_p->hash)continue;DATARMNETda96251102(DATARMNET720469c0a9, DATARMNET08b6defcff,(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),(0x16e8+787-0xc0c), (0x16e8+787-0xc0c),skb,NULL);DATARMNET5c4a331b9c=node_p->map_index; -DATARMNET495dab3d72(skb,node_p);is_match_found=(0xd26+209-0xdf6); -DATARMNET935af10724=(0xd26+209-0xdf6);break;}if(is_match_found)break; -DATARMNETcfb5dc7296=DATARMNET217fe38119(DATARMNET138d6d02d2,dev);if( +DATARMNET495dab3d72(skb,node_p,DATARMNET0bf01e7c6f);is_match_found= +(0xd26+209-0xdf6);DATARMNET935af10724=(0xd26+209-0xdf6);if(node_p-> +DATARMNET85c698ec34){if(raw_smp_processor_id()==DATARMNETecc0627c70. +DATARMNET5c24e1df05)DATARMNET68d84e7b98[DATARMNET048727d1d9]++;if( +DATARMNET0bf01e7c6f->max_pkts&&node_p->DATARMNETae4b27456e.DATARMNET6215127f48> +DATARMNET0bf01e7c6f->max_pkts)DATARMNET7c5ef97eab=(0xd26+209-0xdf6);}break;}if( +is_match_found)break;DATARMNETcfb5dc7296=DATARMNET362c14e98b(DATARMNETecc0627c70 +.map_mask&DATARMNET9273f84bf1&~DATARMNETecc0627c70.DATARMNETba3f7a11ef);if( DATARMNETcfb5dc7296<(0xd2d+202-0xdf7)){DATARMNET68d84e7b98[DATARMNETa1f9420686] ++;break;}if(DATARMNETecc0627c70.DATARMNET64bb8a8f57>DATARMNETbfe31ef643){ DATARMNET68d84e7b98[DATARMNETe6e77f9f03]++;break;}node_p=kzalloc(sizeof(*node_p) @@ -598,7 +670,14 @@ DATARMNET68d84e7b98[DATARMNETe6e77f9f03]++;break;}node_p=kzalloc(sizeof(*node_p) DATARMNETecc0627c70.DATARMNET64bb8a8f57++;node_p->dev=skb->dev;node_p->hash=skb ->hash;node_p->map_cpu=DATARMNETcfb5dc7296;node_p->map_index=DATARMNET04e8d1b862 (node_p->map_cpu,map);INIT_LIST_HEAD(&node_p->DATARMNET04c88b8191); -DATARMNET44459105b4(skb,node_p);DATARMNET0349051465(node_p->map_cpu); +DATARMNET44459105b4(skb,node_p);if(DATARMNET0bf01e7c6f->map_mask){node_p-> +DATARMNETfbbec4c537=DATARMNET0bf01e7c6f->map_mask;node_p->DATARMNETa59ce1fd2d= +DATARMNET310c3eb16e(node_p->DATARMNETfbbec4c537);node_p->map_cpu= +raw_smp_processor_id();node_p->map_index=node_p->map_cpu;node_p-> +DATARMNET85c698ec34=(0xd26+209-0xdf6);}else if(node_p->DATARMNET85c698ec34){ +node_p->DATARMNET341ea38662->mux_id=(0xd2d+202-0xdf7);}else{node_p-> +DATARMNETfbbec4c537=DATARMNETecc0627c70.map_mask;node_p->DATARMNETa59ce1fd2d= +DATARMNETecc0627c70.map_len;}DATARMNET0349051465(node_p->map_cpu); DATARMNET350f55bfca(node_p);map_cpu=node_p->map_cpu;DATARMNETa4055affd5=& DATARMNET0997c5650d[map_cpu];priv=netdev_priv(node_p->dev);if(!priv){rm_err( "\x70\x72\x69\x76\x20\x66\x6f\x72\x20\x6e\x65\x74\x64\x65\x76\x20\x69\x73\x20\x6e\x75\x6c\x6c\x20\x66\x6f\x72\x20\x68\x61\x73\x68\x20\x30\x78\x25\x78" @@ -607,40 +686,49 @@ DATARMNET341ea38662->mux_id=priv->mux_id;rm_err( "\x53\x48\x53\x5f\x4d\x55\x58\x3a\x20\x6d\x75\x78\x20\x69\x64\x20\x66\x6f\x72\x20\x68\x61\x73\x68\x20\x30\x78\x25\x78\x20\x69\x73\x20\x25\x64" ,node_p->hash,node_p->DATARMNET341ea38662->mux_id);}DATARMNET3e37ad2816(node_p,& DATARMNETa4055affd5->DATARMNET3dc4262f53);hash_add_rcu(DATARMNETe603c3a4b3,& -node_p->list,skb->hash);DATARMNET495dab3d72(skb,node_p);DATARMNET935af10724= -(0xd26+209-0xdf6);break;}while((0xd2d+202-0xdf7));if(!DATARMNET935af10724){ -spin_unlock_irqrestore(&DATARMNET3764d083f0,ht_flags);DATARMNET68d84e7b98[ -DATARMNET99db6e7d86]++;DATARMNETe767554e6e(skb);DATARMNET015fb2ba0e( -DATARMNET720469c0a9,DATARMNETe0fee0991a,(0x16e8+787-0xc0c),(0x16e8+787-0xc0c), -(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),NULL,NULL);return(0xd2d+202-0xdf7);}if(! -DATARMNETecc0627c70.DATARMNETd9cfd2812b&&DATARMNETecc0627c70.DATARMNETa2e32cdd3a -&&DATARMNET365ddeca1c){DATARMNETecc0627c70.DATARMNETd9cfd2812b=(0xd26+209-0xdf6) -;DATARMNETecc0627c70.DATARMNET34097703c8=DATARMNET7bc926fdbe;if(hrtimer_active(& -DATARMNETecc0627c70.DATARMNET6fd692fc7a)){DATARMNETda96251102( -DATARMNET720469c0a9,DATARMNETf730f80f06,DATARMNET2f67183a86,(0x16e8+787-0xc0c), -(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),skb,NULL);hrtimer_cancel(& -DATARMNETecc0627c70.DATARMNET6fd692fc7a);}hrtimer_start(&DATARMNETecc0627c70. -DATARMNET6fd692fc7a,ns_to_ktime(DATARMNET4ac8af832c*DATARMNET68fc0be252), -HRTIMER_MODE_REL);DATARMNETda96251102(DATARMNET720469c0a9,DATARMNETdd870ee64c, -DATARMNET2f67183a86,(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),skb -,NULL);}spin_unlock_irqrestore(&DATARMNET3764d083f0,ht_flags);if( -DATARMNETecc0627c70.DATARMNETa2e32cdd3a>DATARMNET7d18c0bcf8){if( -DATARMNET58b009b16b)DATARMNET14ed771dfb[DATARMNET802083239a]++; -DATARMNET52de1f3dc0(DATARMNET4510abc30d,DATARMNET562b7d32a8,(0xd2d+202-0xdf7), -(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),NULL,NULL); -DATARMNETa4bf9fbf64((0xd26+209-0xdf6),DATARMNET0b15fd8b54);}else if( -DATARMNETecc0627c70.DATARMNETc252a1f55d>DATARMNETea75c7b6f6){if( -DATARMNET58b009b16b)DATARMNET14ed771dfb[DATARMNETed69052342]++; -DATARMNET52de1f3dc0(DATARMNET4510abc30d,DATARMNET99640d60f7,(0xd2d+202-0xdf7), -(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),NULL,NULL); -DATARMNETa4bf9fbf64((0xd26+209-0xdf6),DATARMNET0b15fd8b54);}else if( -DATARMNETecc0627c70.DATARMNET34097703c8==DATARMNETb3e3b2a799){ +node_p->list,skb->hash);DATARMNET495dab3d72(skb,node_p,DATARMNET0bf01e7c6f); +DATARMNET935af10724=(0xd26+209-0xdf6);break;}while((0xd2d+202-0xdf7));if(! +DATARMNET935af10724){spin_unlock_irqrestore(&DATARMNET3764d083f0,ht_flags); +DATARMNET68d84e7b98[DATARMNET99db6e7d86]++;DATARMNETe767554e6e(skb); +DATARMNET015fb2ba0e(DATARMNET720469c0a9,DATARMNETe0fee0991a,(0x16e8+787-0xc0c), +(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),NULL,NULL);return +(0xd2d+202-0xdf7);}if(!DATARMNETecc0627c70.DATARMNETd9cfd2812b&& +DATARMNETecc0627c70.DATARMNETa2e32cdd3a&&DATARMNET365ddeca1c){ +DATARMNETecc0627c70.DATARMNETd9cfd2812b=(0xd26+209-0xdf6);DATARMNETecc0627c70. +DATARMNET34097703c8=DATARMNET7bc926fdbe;if(hrtimer_active(&DATARMNETecc0627c70. +DATARMNET6fd692fc7a)){DATARMNETda96251102(DATARMNET720469c0a9, +DATARMNETf730f80f06,DATARMNET2f67183a86,(0x16e8+787-0xc0c),(0x16e8+787-0xc0c), +(0x16e8+787-0xc0c),skb,NULL);hrtimer_cancel(&DATARMNETecc0627c70. +DATARMNET6fd692fc7a);}hrtimer_start(&DATARMNETecc0627c70.DATARMNET6fd692fc7a, +ns_to_ktime(DATARMNET4ac8af832c*DATARMNET68fc0be252),HRTIMER_MODE_REL); +DATARMNETda96251102(DATARMNET720469c0a9,DATARMNETdd870ee64c,DATARMNET2f67183a86, +(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),skb,NULL);} +spin_unlock_irqrestore(&DATARMNET3764d083f0,ht_flags);if(DATARMNETecc0627c70. +DATARMNETa2e32cdd3a>DATARMNET7d18c0bcf8){if(DATARMNET58b009b16b) +DATARMNET14ed771dfb[DATARMNET802083239a]++;DATARMNET52de1f3dc0( +DATARMNET4510abc30d,DATARMNET562b7d32a8,(0xd2d+202-0xdf7),(0x16e8+787-0xc0c), +(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),NULL,NULL);DATARMNETa4bf9fbf64( +(0xd26+209-0xdf6),DATARMNET0b15fd8b54);}else if(DATARMNETecc0627c70. +DATARMNETc252a1f55d>DATARMNETea75c7b6f6){if(DATARMNET58b009b16b) +DATARMNET14ed771dfb[DATARMNETed69052342]++;DATARMNET52de1f3dc0( +DATARMNET4510abc30d,DATARMNET99640d60f7,(0xd2d+202-0xdf7),(0x16e8+787-0xc0c), +(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),NULL,NULL);DATARMNETa4bf9fbf64( +(0xd26+209-0xdf6),DATARMNET0b15fd8b54);}else if(DATARMNET7c5ef97eab){if( +DATARMNET58b009b16b)DATARMNET14ed771dfb[DATARMNETcc3c294f38]++; +DATARMNET52de1f3dc0(DATARMNET4510abc30d,DATARMNET562b7d32a8,(0xd26+209-0xdf6), +DATARMNETecc0627c70.DATARMNETa2e32cdd3a,(0x16e8+787-0xc0c),(0x16e8+787-0xc0c), +NULL,NULL);DATARMNETa4bf9fbf64((0xd26+209-0xdf6),DATARMNET0b15fd8b54);}else if(( +DATARMNET0bf01e7c6f->config&RMNET_SHS_NO_DLMKR)&&DATARMNETecc0627c70. +DATARMNETa2e32cdd3a){if(DATARMNET58b009b16b)DATARMNET14ed771dfb[ +DATARMNET04dac3a62b]++;DATARMNETa4bf9fbf64((0xd2d+202-0xdf7),DATARMNET0b15fd8b54 +);}else if(DATARMNETecc0627c70.DATARMNET34097703c8==DATARMNETb3e3b2a799){ DATARMNET14ed771dfb[DATARMNETcfb1764a91]++;DATARMNET52de1f3dc0( DATARMNET4510abc30d,DATARMNETa2bd301af7,(0xd26+209-0xdf6),DATARMNETecc0627c70. DATARMNETa2e32cdd3a,(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),NULL,NULL); -DATARMNETa4bf9fbf64((0xd2d+202-0xdf7),DATARMNET0b15fd8b54);}else if( -DATARMNETecc0627c70.DATARMNETa2e32cdd3a&&DATARMNETecc0627c70.DATARMNET6fe0db3a49 -!=DATARMNET1c55e5fdb1){DATARMNET14ed771dfb[DATARMNET01bf75e27c]++; +DATARMNETa4bf9fbf64((0xd2d+202-0xdf7),DATARMNET0b15fd8b54);}else if(!( +DATARMNET0bf01e7c6f->config&RMNET_SHS_NO_DLMKR)&&DATARMNETecc0627c70. +DATARMNETa2e32cdd3a&&DATARMNETecc0627c70.DATARMNET6fe0db3a49!= +DATARMNET1c55e5fdb1){DATARMNET14ed771dfb[DATARMNET01bf75e27c]++; DATARMNETa4bf9fbf64((0xd2d+202-0xdf7),DATARMNET0b15fd8b54);}return (0xd2d+202-0xdf7);}void DATARMNET9297340f58(unsigned int DATARMNET9f4bc49c6f){ DATARMNETdf74db7e38();DATARMNETecc0627c70.DATARMNET08dbb5ab35.dl_hdr_handler_v2= diff --git a/shs/rmnet_shs_modules.c b/shs/rmnet_shs_modules.c index 9275bcbd0f93..bf469113e3bf 100644 --- a/shs/rmnet_shs_modules.c +++ b/shs/rmnet_shs_modules.c @@ -1,4 +1,4 @@ -/* Copyright (c) 2020 The Linux Foundation. All rights reserved. +/* Copyright (c) 2020-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 @@ -132,13 +132,13 @@ DATARMNETb7ddf3c5dd, DATARMNET14ed771dfb,ulong,NULL,(0xcb7+5769-0x221c));MODULE_PARM_DESC( DATARMNET14ed771dfb, "\x72\x6d\x6e\x65\x74\x20\x73\x68\x73\x20\x73\x6b\x62\x20\x66\x6c\x75\x73\x68\x20\x74\x72\x69\x67\x67\x65\x72\x20\x74\x79\x70\x65" -);unsigned int DATARMNETea75c7b6f6 __read_mostly=271800*(0xeb7+710-0x112d); -module_param(DATARMNETea75c7b6f6,uint,(0xdb7+6665-0x261c));MODULE_PARM_DESC( +);unsigned int DATARMNETea75c7b6f6 __read_mostly=30144000;module_param( +DATARMNETea75c7b6f6,uint,(0xdb7+6665-0x261c));MODULE_PARM_DESC( DATARMNETea75c7b6f6, "\x4d\x61\x78\x69\x6d\x75\x6d\x20\x62\x79\x74\x65\x20\x6d\x6f\x64\x75\x6c\x65\x20\x77\x69\x6c\x6c\x20\x70\x61\x72\x6b" -);unsigned int DATARMNET7d18c0bcf8 __read_mostly=(0xa58+3472-0xfb4)* -(0xd35+210-0xdff);module_param(DATARMNET7d18c0bcf8,uint,(0xdb7+6665-0x261c)); -MODULE_PARM_DESC(DATARMNET7d18c0bcf8, +);unsigned int DATARMNET7d18c0bcf8 __read_mostly=24000;module_param( +DATARMNET7d18c0bcf8,uint,(0xdb7+6665-0x261c));MODULE_PARM_DESC( +DATARMNET7d18c0bcf8, "\x4d\x61\x78\x69\x6d\x75\x6d\x20\x70\x6b\x74\x73\x20\x6d\x6f\x64\x75\x6c\x65\x20\x77\x69\x6c\x6c\x20\x70\x61\x72\x6b" );unsigned int DATARMNET227d2ff866 __read_mostly=(0xec7+1131-0x1305); module_param(DATARMNET227d2ff866,uint,(0xdb7+6665-0x261c));MODULE_PARM_DESC( diff --git a/shs/rmnet_shs_wq.c b/shs/rmnet_shs_wq.c index 642f9faf21e5..5d7c86850b2b 100644 --- a/shs/rmnet_shs_wq.c +++ b/shs/rmnet_shs_wq.c @@ -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 @@ -430,51 +430,52 @@ DATARMNETbd864aa442=-(0xd26+209-0xdf6);int DATARMNETd415a9f9bd=- (0xd26+209-0xdf6);int DATARMNETb6773d2790=-(0xd26+209-0xdf6);int DATARMNET42a992465f=(0xd2d+202-0xdf7);u16 DATARMNETdebcca6b26;for( DATARMNET42a992465f=(0xd2d+202-0xdf7);DATARMNET42a992465fDATARMNET73464778dc[ -DATARMNET42a992465f];trace_rmnet_shs_wq_low(DATARMNET39a68a0eba, -DATARMNET55cd50e666,DATARMNET42a992465f,DATARMNET65385af8a0->DATARMNET324c1a8f98 -,DATARMNET609049f7b7,(0xd2d+202-0xdf7),NULL,NULL);if(DATARMNET65385af8a0->flows -==(0xd2d+202-0xdf7)){DATARMNETb6773d2790=DATARMNET42a992465f;break;}if( -DATARMNET65385af8a0->DATARMNET324c1a8f98==(0xd2d+202-0xdf7)&&DATARMNET65385af8a0 -->flowsflows; -DATARMNETd415a9f9bd=DATARMNET42a992465f;}if(DATARMNET65385af8a0-> -DATARMNET324c1a8f98<=DATARMNET609049f7b7){DATARMNET609049f7b7= -DATARMNET65385af8a0->DATARMNET324c1a8f98;DATARMNETbd864aa442=DATARMNET42a992465f -;}}if(DATARMNETb6773d2790>=(0xd2d+202-0xdf7))DATARMNETbd864aa442= -DATARMNETb6773d2790;else if(DATARMNETd415a9f9bd>=(0xd2d+202-0xdf7)) -DATARMNETbd864aa442=DATARMNETd415a9f9bd;return DATARMNETbd864aa442;}u16 -DATARMNET3c1fc10379(u16 DATARMNET7c894c2f8f,struct DATARMNET9b44b71ee9*ep){ -struct DATARMNETc8fdbf9c85*DATARMNET7bea4a06a6=&DATARMNET6cdd58e74c;struct -DATARMNET228056d4b7*DATARMNET373ff1422a,*DATARMNETd8755a1440;u64 -DATARMNETf115ef7639,DATARMNET64bef917cb,DATARMNET85bfb4b2ca;u64 -DATARMNET264b01f4d5,DATARMNET53ce143c7e=(0xd2d+202-0xdf7);u16 -DATARMNETd668725d64=DATARMNET7c894c2f8f;u16 DATARMNET42a992465f;u8 -DATARMNETca535905d7;u32 DATARMNETa7176e3ad8=(0xd2d+202-0xdf7);if(!ep){ -DATARMNET68d84e7b98[DATARMNETb8fe2c0e64]++;return DATARMNETd668725d64;} -DATARMNETd8755a1440=&DATARMNET7bea4a06a6->DATARMNET73464778dc[ -DATARMNET7c894c2f8f];DATARMNET85bfb4b2ca=DATARMNETd8755a1440-> -DATARMNET324c1a8f98;DATARMNET264b01f4d5=DATARMNET713717107f[DATARMNET7c894c2f8f] -;DATARMNET53ce143c7e=DATARMNET4793ed48af[DATARMNET7c894c2f8f];if(! -DATARMNET362b15f941(DATARMNET7c894c2f8f)&&(DATARMNET85bfb4b2ca> -DATARMNET53ce143c7e)){return DATARMNETd668725d64;}if(DATARMNET0997c5650d[ -DATARMNET7c894c2f8f].DATARMNET1e1f197118)return DATARMNET7c894c2f8f;for( -DATARMNET42a992465f=(0xd2d+202-0xdf7);DATARMNET42a992465fDATARMNET9fb369ce5f);if((DATARMNET42a992465f== -DATARMNET7c894c2f8f)||(!DATARMNETca535905d7)||!cpu_online(DATARMNET7c894c2f8f)) -continue;DATARMNET264b01f4d5=DATARMNET713717107f[DATARMNET42a992465f]; -DATARMNET53ce143c7e=DATARMNET4793ed48af[DATARMNET42a992465f];DATARMNET373ff1422a -=&DATARMNET7bea4a06a6->DATARMNET73464778dc[DATARMNET42a992465f]; -DATARMNETf115ef7639=DATARMNET373ff1422a->DATARMNET324c1a8f98;DATARMNET64bef917cb -=DATARMNETf115ef7639+DATARMNET85bfb4b2ca;trace_rmnet_shs_wq_low( -DATARMNET39a68a0eba,DATARMNETcd209744bd,DATARMNET7c894c2f8f,DATARMNET42a992465f, -DATARMNET64bef917cb,DATARMNETf115ef7639,NULL,NULL);if((DATARMNET64bef917cb> -DATARMNET53ce143c7e)&&(DATARMNET64bef917cb +DATARMNET73464778dc[DATARMNET42a992465f];trace_rmnet_shs_wq_low( +DATARMNET39a68a0eba,DATARMNET55cd50e666,DATARMNET42a992465f,DATARMNET65385af8a0 +->DATARMNET324c1a8f98,DATARMNET609049f7b7,(0xd2d+202-0xdf7),NULL,NULL);if( +DATARMNET65385af8a0->flows==(0xd2d+202-0xdf7)){DATARMNETb6773d2790= +DATARMNET42a992465f;break;}if(DATARMNET65385af8a0->DATARMNET324c1a8f98== +(0xd2d+202-0xdf7)&&DATARMNET65385af8a0->flowsflows;DATARMNETd415a9f9bd= +DATARMNET42a992465f;}if(DATARMNET65385af8a0->DATARMNET324c1a8f98<= +DATARMNET609049f7b7){DATARMNET609049f7b7=DATARMNET65385af8a0-> +DATARMNET324c1a8f98;DATARMNETbd864aa442=DATARMNET42a992465f;}}if( +DATARMNETb6773d2790>=(0xd2d+202-0xdf7))DATARMNETbd864aa442=DATARMNETb6773d2790; +else if(DATARMNETd415a9f9bd>=(0xd2d+202-0xdf7))DATARMNETbd864aa442= +DATARMNETd415a9f9bd;return DATARMNETbd864aa442;}u16 DATARMNET3c1fc10379(u16 +DATARMNET7c894c2f8f,struct DATARMNET9b44b71ee9*ep){struct DATARMNETc8fdbf9c85* +DATARMNET7bea4a06a6=&DATARMNET6cdd58e74c;struct DATARMNET228056d4b7* +DATARMNET373ff1422a,*DATARMNETd8755a1440;u64 DATARMNETf115ef7639, +DATARMNET64bef917cb,DATARMNET85bfb4b2ca;u64 DATARMNET264b01f4d5, +DATARMNET53ce143c7e=(0xd2d+202-0xdf7);u16 DATARMNETd668725d64= +DATARMNET7c894c2f8f;u16 DATARMNET42a992465f;u8 DATARMNETca535905d7;u32 +DATARMNETa7176e3ad8=(0xd2d+202-0xdf7);if(!ep){DATARMNET68d84e7b98[ +DATARMNETb8fe2c0e64]++;return DATARMNETd668725d64;}DATARMNETd8755a1440=& +DATARMNET7bea4a06a6->DATARMNET73464778dc[DATARMNET7c894c2f8f]; +DATARMNET85bfb4b2ca=DATARMNETd8755a1440->DATARMNET324c1a8f98;DATARMNET264b01f4d5 +=DATARMNET713717107f[DATARMNET7c894c2f8f];DATARMNET53ce143c7e= +DATARMNET4793ed48af[DATARMNET7c894c2f8f];if(!DATARMNET362b15f941( +DATARMNET7c894c2f8f)&&(DATARMNET85bfb4b2ca>DATARMNET53ce143c7e)){return +DATARMNETd668725d64;}if(DATARMNET0997c5650d[DATARMNET7c894c2f8f]. +DATARMNET1e1f197118)return DATARMNET7c894c2f8f;for(DATARMNET42a992465f= +(0xd2d+202-0xdf7);DATARMNET42a992465f +DATARMNET9fb369ce5f&~DATARMNETecc0627c70.DATARMNETba3f7a11ef));if(( +DATARMNET42a992465f==DATARMNET7c894c2f8f)||(!DATARMNETca535905d7)||!cpu_online( +DATARMNET42a992465f))continue;DATARMNET264b01f4d5=DATARMNET713717107f[ +DATARMNET42a992465f];DATARMNET53ce143c7e=DATARMNET4793ed48af[DATARMNET42a992465f +];DATARMNET373ff1422a=&DATARMNET7bea4a06a6->DATARMNET73464778dc[ +DATARMNET42a992465f];DATARMNETf115ef7639=DATARMNET373ff1422a-> +DATARMNET324c1a8f98;DATARMNET64bef917cb=DATARMNETf115ef7639+DATARMNET85bfb4b2ca; +trace_rmnet_shs_wq_low(DATARMNET39a68a0eba,DATARMNETcd209744bd, +DATARMNET7c894c2f8f,DATARMNET42a992465f,DATARMNET64bef917cb,DATARMNETf115ef7639, +NULL,NULL);if((DATARMNET64bef917cb>DATARMNET53ce143c7e)&&(DATARMNET64bef917cb< +DATARMNET264b01f4d5)&&DATARMNETf115ef7639<=DATARMNETa7176e3ad8){ +DATARMNETd668725d64=DATARMNET42a992465f;DATARMNETa7176e3ad8=DATARMNETf115ef7639; +}}trace_rmnet_shs_wq_high(DATARMNET39a68a0eba,DATARMNETcd209744bd, DATARMNET7c894c2f8f,DATARMNETd668725d64,DATARMNET85bfb4b2ca,DATARMNET7bea4a06a6 ->DATARMNET73464778dc[DATARMNETd668725d64].DATARMNET324c1a8f98,NULL,NULL);return DATARMNETd668725d64;}void DATARMNET466244e5d6(u16 DATARMNETc790ff30fc){struct @@ -488,7 +489,8 @@ DATARMNET208ea67e1d,struct DATARMNET9b44b71ee9*ep){u16 DATARMNET553df5e12a= (0xd2d+202-0xdf7);}if(DATARMNET7c894c2f8f>=DATARMNETc6782fed88|| DATARMNET208ea67e1d>=DATARMNETc6782fed88){DATARMNET68d84e7b98[ DATARMNET54b67b8a75]++;return(0xd2d+202-0xdf7);}DATARMNET553df5e12a=( -(0xd26+209-0xdf6)<DATARMNET9fb369ce5f;rm_err( +(0xd26+209-0xdf6)<DATARMNET9fb369ce5f&~ +DATARMNETecc0627c70.DATARMNETba3f7a11ef;rm_err( "\x53\x48\x53\x5f\x4d\x41\x53\x4b\x3a\x20\x20\x63\x75\x72\x20\x63\x70\x75\x20\x5b\x25\x64\x5d\x20\x7c\x20\x64\x65\x73\x74\x5f\x63\x70\x75\x20\x5b\x25\x64\x5d\x20\x7c\x20" "\x65\x70\x5f\x72\x70\x73\x5f\x6d\x61\x73\x6b\x20\x3d\x20\x30\x78\x25\x78\x20\x7c\x20\x63\x70\x75\x5f\x6f\x6e\x6c\x69\x6e\x65\x28\x64\x65\x73\x74\x29\x20\x3d\x20\x25\x64" "\x63\x70\x75\x5f\x69\x6e\x5f\x72\x70\x73\x5f\x6d\x61\x73\x6b\x20\x3d\x20\x25\x64\x20\x7c\x63\x70\x75\x20\x69\x73\x6f\x6c\x61\x74\x65\x64\x28\x64\x65\x73\x74\x29\x20\x3d\x20\x25\x64" @@ -604,14 +606,16 @@ DATARMNET629c75e1fa))/(DATARMNETab4cf0ad84+DATARMNET0c72af011b); DATARMNET373ff1422a->DATARMNET253a9fc708=DATARMNET253a9fc708; trace_rmnet_shs_wq_high(DATARMNET39a68a0eba,DATARMNETde65aa00a6, DATARMNET42a992465f,DATARMNETc7c10881f4,DATARMNET4a7d30059b,DATARMNET253a9fc708, -NULL,NULL);if((DATARMNET253a9fc708>DATARMNET264b01f4d5)||((DATARMNET253a9fc708< -DATARMNET53ce143c7e)&&(DATARMNETc7c10881f4DATARMNET9fb369ce5f;DATARMNETc312f6517d=ep->DATARMNET24a91635db; +NULL,NULL);if((DATARMNET253a9fc708>DATARMNET264b01f4d5)||(((0xd26+209-0xdf6)<< +DATARMNET42a992465f)&DATARMNETecc0627c70.DATARMNETba3f7a11ef)||!cpu_online( +DATARMNET42a992465f)||((DATARMNET253a9fc708 +DATARMNET9fb369ce5f;DATARMNETc312f6517d=ep->DATARMNET24a91635db; DATARMNETc35b40fa7b=ep->DATARMNET1a1d89d417;memset(ep->DATARMNET5af04d0405,- (0xd26+209-0xdf6),sizeof(*ep->DATARMNET5af04d0405)*DATARMNETc6782fed88);memset( ep->DATARMNET7167e10d99,-(0xd26+209-0xdf6),sizeof(*ep->DATARMNET7167e10d99)* @@ -769,14 +773,17 @@ DATARMNETab5c1e9ad5);DATARMNET7bea4a06a6->DATARMNET42a992465f= DATARMNET42a992465f;}}void DATARMNET4063c95208(void){int cpu;if( DATARMNETf141197982&&DATARMNET9dc7755be5)cancel_delayed_work_sync(& DATARMNET9dc7755be5->DATARMNET1150269da2);for(cpu=(0xd2d+202-0xdf7);cpu< -DATARMNETc6782fed88;cpu++)DATARMNET2d482e7d9f[cpu]=(0xd2d+202-0xdf7);}void -DATARMNET7b6c061b06(void){if(DATARMNETf141197982&&DATARMNET9dc7755be5) -queue_delayed_work(DATARMNETf141197982,&DATARMNET9dc7755be5->DATARMNET1150269da2 -,(0xd2d+202-0xdf7));}void DATARMNET3ae0d614d6(struct net_device*dev){if( -DATARMNETf141197982)return;if(!dev){DATARMNET68d84e7b98[DATARMNETf5157a9b85]++; -return;}DATARMNETf5f83b943f();trace_rmnet_shs_wq_high(DATARMNET9104d544fa, -DATARMNET1b421b0381,(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),(0x16e8+787-0xc0c), -(0x16e8+787-0xc0c),NULL,NULL);DATARMNETf141197982=alloc_workqueue( +DATARMNETc6782fed88;cpu++)DATARMNET2d482e7d9f[cpu]=(0xd2d+202-0xdf7);if(( +(0xd26+209-0xdf6)<DATARMNET1150269da2,(0xd2d+202-0xdf7));}void +DATARMNET3ae0d614d6(void){if(DATARMNETf141197982)return;DATARMNETf5f83b943f(); +trace_rmnet_shs_wq_high(DATARMNET9104d544fa,DATARMNET1b421b0381, +(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),NULL +,NULL);DATARMNETf141197982=alloc_workqueue( "\x72\x6d\x6e\x65\x74\x5f\x73\x68\x73\x5f\x77\x71",WQ_CPU_INTENSIVE, (0xd26+209-0xdf6));if(!DATARMNETf141197982){DATARMNET68d84e7b98[ DATARMNETecdf13872c]++;return;}DATARMNET9dc7755be5=kmalloc(sizeof(struct diff --git a/shs/rmnet_shs_wq.h b/shs/rmnet_shs_wq.h index 8562ef90834f..5f890718c310 100644 --- a/shs/rmnet_shs_wq.h +++ b/shs/rmnet_shs_wq.h @@ -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 @@ -43,13 +43,13 @@ DATARMNET6bda8fe27e;int DATARMNET121a654efd;int DATARMNETd7a83774f8;int DATARMNET847276e5af;};struct DATARMNET0737a3aa12{struct list_head DATARMNETd0c222566b;struct DATARMNET9b44b71ee9 ep;};enum DATARMNET0780ebfa33{ DATARMNET8866cd9e9a,DATARMNETed5a873a00,DATARMNETd7a3f55a51,DATARMNETefe8657028, -DATARMNET3563036124,};struct DATARMNET6c78e47d24{unsigned long int -DATARMNET61e1ee0e95[DATARMNET3563036124];struct list_head DATARMNET742867e97a; -struct list_head DATARMNET6de26f0feb;struct DATARMNET63d7680df2* -DATARMNET63b1a086d5;time_t DATARMNETadd51beef4;time_t DATARMNET68714ac92c;time_t - DATARMNET42ceaf5cc2;u64 DATARMNET4b4a76b094;u64 rx_bytes;u64 -DATARMNETa7352711af;u64 DATARMNET324c1a8f98;u64 DATARMNETbb80fccd97;u64 -DATARMNET6c2816c16a;u64 DATARMNET253a9fc708;u64 DATARMNET95266642d1;u64 +DATARMNET37da25c8e8,DATARMNET5dccc475d4,DATARMNET3563036124,};struct +DATARMNET6c78e47d24{unsigned long int DATARMNET61e1ee0e95[DATARMNET3563036124]; +struct list_head DATARMNET742867e97a;struct list_head DATARMNET6de26f0feb;struct + DATARMNET63d7680df2*DATARMNET63b1a086d5;time_t DATARMNETadd51beef4;time_t +DATARMNET68714ac92c;time_t DATARMNET42ceaf5cc2;u64 DATARMNET4b4a76b094;u64 +rx_bytes;u64 DATARMNETa7352711af;u64 DATARMNET324c1a8f98;u64 DATARMNETbb80fccd97 +;u64 DATARMNET6c2816c16a;u64 DATARMNET253a9fc708;u64 DATARMNET95266642d1;u64 DATARMNET6edbc8b649;u64 DATARMNET4025a4ec90;u64 DATARMNETde6a309f37;u32 DATARMNET9fb369ce5f;u32 DATARMNET17f2abdf03;u32 DATARMNET399c840115;u32 DATARMNET1a1d89d417;u32 DATARMNETb932033f50;u32 hash;int DATARMNETb5f5519502;u16 @@ -105,9 +105,9 @@ DATARMNET59a1cb0962,DATARMNET1b421b0381,DATARMNETb196f64ee0,DATARMNET7cf840e991, DATARMNETa5cdfd53b3,DATARMNETd7f7ade458,DATARMNET53e4a6b394,DATARMNETd1d3902361, DATARMNET1fc50aac59,DATARMNET213a62da0d,DATARMNETf814701a94,DATARMNET166a43f3aa, };extern struct DATARMNETe600c5b727 DATARMNET0997c5650d[DATARMNETc6782fed88]; -extern struct list_head DATARMNET9825511866;void DATARMNET3ae0d614d6(struct -net_device*dev);void DATARMNETf7dcab9a9e(void);void DATARMNET7b6c061b06(void); -void DATARMNET4063c95208(void);void DATARMNETe46c480d71(void);void +extern struct list_head DATARMNET9825511866;void DATARMNET3ae0d614d6(void);void +DATARMNETf7dcab9a9e(void);void DATARMNET7b6c061b06(void);void +DATARMNET4063c95208(void);void DATARMNETe46c480d71(void);void DATARMNET039ac6d55d(void);u64 DATARMNETd406e89a85(u32 DATARMNETfaedbb66a9);void DATARMNET350f55bfca(struct DATARMNET63d7680df2*node_p);int DATARMNET362c14e98b( u16 DATARMNETfaedbb66a9);int DATARMNETf181a18009(struct net_device*dev);int diff --git a/shs/rmnet_shs_wq_genl.c b/shs/rmnet_shs_wq_genl.c index dd46dca31c53..77c991d20b13 100644 --- a/shs/rmnet_shs_wq_genl.c +++ b/shs/rmnet_shs_wq_genl.c @@ -1,4 +1,4 @@ -/* Copyright (c) 2019-2020 The Linux Foundation. All rights reserved. +/* Copyright (c) 2019-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 @@ -127,18 +127,34 @@ if(na){if(nla_memcpy(&DATARMNET7f0ce2d6ad,na,sizeof(DATARMNET7f0ce2d6ad))> "\x68\x61\x73\x68\x5f\x74\x6f\x5f\x6d\x6f\x76\x65\x20\x3d\x20\x30\x78\x25\x78\x20\x73\x75\x67\x67\x5f\x74\x79\x70\x65\x20\x3d\x20\x25\x75" ,DATARMNET7f0ce2d6ad.DATARMNETc790ff30fc,DATARMNET7f0ce2d6ad.DATARMNET208ea67e1d ,DATARMNET7f0ce2d6ad.DATARMNET4da4612f1e,DATARMNET7f0ce2d6ad.DATARMNETa3f89581b5 -);rc=DATARMNET5f72606f6f(DATARMNET7f0ce2d6ad.DATARMNETc790ff30fc, -DATARMNET7f0ce2d6ad.DATARMNET208ea67e1d,DATARMNET7f0ce2d6ad.DATARMNET4da4612f1e, -DATARMNET7f0ce2d6ad.DATARMNETa3f89581b5);if(rc==(0xd26+209-0xdf6)){ -DATARMNET5d4ca1da1c(DATARMNET54338da2ff,DATARMNET598eb03fad); -trace_rmnet_shs_wq_high(DATARMNETa0ecb9daac,DATARMNETd7f7ade458, +);if(DATARMNET7f0ce2d6ad.DATARMNETa3f89581b5==DATARMNET5dccc475d4){if(!(( +(0xd26+209-0xdf6)< Date: Thu, 14 Jan 2021 10:57:35 -0800 Subject: [PATCH 28/36] rmnet_shs: I723ecc2b7601824df2af23fb559d8df53cfe2cc1 CRs-Fixed: 2847159 Change-Id: I723ecc2b7601824df2af23fb559d8df53cfe2cc1 Acked-by: Raul Martinez Signed-off-by: Subash Abhinov Kasiviswanathan --- shs/rmnet_shs_config.c | 16 ++++++++++------ shs/rmnet_shs_main.c | 5 +---- 2 files changed, 11 insertions(+), 10 deletions(-) diff --git a/shs/rmnet_shs_config.c b/shs/rmnet_shs_config.c index 5e6c652ce20b..24cca77299bb 100644 --- a/shs/rmnet_shs_config.c +++ b/shs/rmnet_shs_config.c @@ -47,6 +47,8 @@ DATARMNET5fc54f7a13 __read_mostly={.notifier_call=DATARMNETe9173bbe0e,.priority= "\x49\x38\x38\x66\x32\x37\x65\x64\x36\x62\x35\x34\x65\x31\x61\x32\x64\x65\x31\x66\x35\x62\x31\x35\x63\x62\x65\x37\x35\x65\x38\x30\x38\x62\x38\x37\x33\x36\x31\x61\x32" , "\x49\x35\x62\x33\x65\x64\x30\x65\x63\x34\x66\x33\x36\x37\x39\x30\x64\x38\x65\x64\x30\x35\x39\x33\x32\x62\x37\x38\x34\x66\x32\x35\x33\x33\x66\x36\x31\x37\x33\x62\x62" +, +"\x49\x37\x32\x33\x65\x63\x63\x32\x62\x37\x36\x30\x31\x38\x32\x34\x64\x66\x32\x61\x66\x32\x33\x66\x62\x35\x35\x39\x64\x38\x64\x66\x35\x33\x63\x66\x65\x32\x63\x63\x31" };static int DATARMNET2cb9ae589c;int __init DATARMNET163e93649e(void){pr_info( "\x25\x73\x28\x29\x3a\x20\x53\x74\x61\x72\x74\x69\x6e\x67\x20\x72\x6d\x6e\x65\x74\x20\x53\x48\x53\x20\x6d\x6f\x64\x75\x6c\x65\x20\x25\x73\x20" "\n" ,__func__,DATARMNETbc8418e817[(0xd2d+202-0xdf7)]);trace_rmnet_shs_high( @@ -74,12 +76,14 @@ DATARMNETfc89d842ae){unsigned int DATARMNET9f4bc49c6f;pr_info( "\x72\x6d\x6e\x65\x74\x5f\x73\x68\x73\x20\x64\x65\x69\x6e\x69\x74\x20\x25\x73\x20\x67\x6f\x69\x6e\x67\x20\x64\x6f\x77\x6e\x20" ,dev->name);RCU_INIT_POINTER(rmnet_shs_skb_entry,NULL);RCU_INIT_POINTER( rmnet_shs_switch,NULL);qmi_rmnet_ps_ind_deregister(DATARMNETecc0627c70.port,& -DATARMNETecc0627c70.rmnet_idl_ind_cb);DATARMNETeacad8334e();DATARMNET9f4bc49c6f= -DATARMNET02cdd9b125();DATARMNETf7dcab9a9e();DATARMNET9297340f58( -DATARMNET9f4bc49c6f);trace_rmnet_shs_high(DATARMNET1790979ccf, -DATARMNET443dab7031,(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),(0x16e8+787-0xc0c), -(0x16e8+787-0xc0c),NULL,NULL);}break;case NETDEV_REGISTER:DATARMNET2cb9ae589c++; -if(DATARMNET2cb9ae589c&&!DATARMNETecc0627c70.DATARMNETfc89d842ae){pr_info( +DATARMNETecc0627c70.rmnet_idl_ind_cb);rmnet_map_dl_ind_deregister( +DATARMNETecc0627c70.port,&DATARMNETecc0627c70.DATARMNET08dbb5ab35); +DATARMNETeacad8334e();DATARMNET9f4bc49c6f=DATARMNET02cdd9b125(); +DATARMNETf7dcab9a9e();DATARMNET9297340f58(DATARMNET9f4bc49c6f); +trace_rmnet_shs_high(DATARMNET1790979ccf,DATARMNET443dab7031,(0x16e8+787-0xc0c), +(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),NULL,NULL);}break;case +NETDEV_REGISTER:DATARMNET2cb9ae589c++;if(DATARMNET2cb9ae589c&&! +DATARMNETecc0627c70.DATARMNETfc89d842ae){pr_info( "\x72\x6d\x6e\x65\x74\x5f\x73\x68\x73\x20\x69\x6e\x69\x74\x69\x61\x6c\x69\x7a\x69\x6e\x67\x20\x25\x73" ,dev->name);priv=netdev_priv(dev);port=rmnet_get_port(priv->real_dev);if(!port){ pr_err( diff --git a/shs/rmnet_shs_main.c b/shs/rmnet_shs_main.c index eae8d272c51b..972be311705c 100644 --- a/shs/rmnet_shs_main.c +++ b/shs/rmnet_shs_main.c @@ -731,10 +731,7 @@ DATARMNETa2e32cdd3a&&DATARMNETecc0627c70.DATARMNET6fe0db3a49!= DATARMNET1c55e5fdb1){DATARMNET14ed771dfb[DATARMNET01bf75e27c]++; DATARMNETa4bf9fbf64((0xd2d+202-0xdf7),DATARMNET0b15fd8b54);}return (0xd2d+202-0xdf7);}void DATARMNET9297340f58(unsigned int DATARMNET9f4bc49c6f){ -DATARMNETdf74db7e38();DATARMNETecc0627c70.DATARMNET08dbb5ab35.dl_hdr_handler_v2= -NULL;DATARMNETecc0627c70.DATARMNET08dbb5ab35.dl_trl_handler_v2=NULL; -rmnet_map_dl_ind_deregister(DATARMNETecc0627c70.port,&DATARMNETecc0627c70. -DATARMNET08dbb5ab35);DATARMNETecc0627c70.DATARMNET9c869c1ec2=(0xd2d+202-0xdf7); +DATARMNETdf74db7e38();DATARMNETecc0627c70.DATARMNET9c869c1ec2=(0xd2d+202-0xdf7); unregister_oom_notifier(&DATARMNET105c85d84c);if(DATARMNETecc0627c70. DATARMNETf5ab31b9b0)hrtimer_cancel(&DATARMNETecc0627c70.DATARMNET6fd692fc7a); memset(&DATARMNETecc0627c70,(0xd2d+202-0xdf7),sizeof(DATARMNETecc0627c70)); From 6af68b944110bdef49fba9d926569e2055f0e69c Mon Sep 17 00:00:00 2001 From: Subash Abhinov Kasiviswanathan Date: Tue, 2 Feb 2021 12:20:37 -0800 Subject: [PATCH 29/36] rmnet_shs: I99c6b4fa787dd4fd63b81dfc92296ed3ec1d8785 CRs-Fixed: 2866853 Change-Id: I99c6b4fa787dd4fd63b81dfc92296ed3ec1d8785 Acked-by: Raul Martinez Signed-off-by: Subash Abhinov Kasiviswanathan --- shs/rmnet_shs.h | 128 ++++++++--------- shs/rmnet_shs_config.c | 2 + shs/rmnet_shs_main.c | 303 +++++++++++++++++++++------------------- shs/rmnet_shs_modules.c | 2 +- shs/rmnet_shs_wq.c | 97 ++++++------- shs/rmnet_shs_wq.h | 2 + 6 files changed, 277 insertions(+), 257 deletions(-) diff --git a/shs/rmnet_shs.h b/shs/rmnet_shs.h index ca4ce724447b..3f7494b23733 100644 --- a/shs/rmnet_shs.h +++ b/shs/rmnet_shs.h @@ -29,7 +29,7 @@ #include "qmi_rmnet.h" #define DATARMNETe603c3a4b3 DATARMNETbfe1afe595 #define DATARMNET25437d35fd 9 -#define DATARMNET4899358462 (0xec7+1108-0x12fd) +#define DATARMNET4899358462 (0xeb7+1101-0x12f5) #define DATARMNET401583e606 (0xd11+230-0xdf3) #define DATARMNETc6782fed88 (0xd35+210-0xdff) #define DATARMNETbc3c416b77 (0xbf7+4405-0x1c3c) @@ -38,7 +38,7 @@ #define DATARMNET752465942a (0xbf7+4364-0x1c04) #define DATARMNETbfe31ef643 (0xc07+1233-0xe1c) #define DATARMNET7a815512d3 (0xef7+1100-0x12fd) -#define DATARMNET270b564b55 (0xd27+224-0xdfd) +#define DATARMNET270b564b55 (0xd35+210-0xdff) #define DATARMNET1c2d76f636 (0xf07+658-0x110d) #define DATARMNET2922c89d50 (0xd1f+216-0xdf5) #define DATARMNET015fb2ba0e(...) \ @@ -72,68 +72,68 @@ DATARMNETbd3a0ee74e[DATARMNETc6782fed88];long DATARMNETc252a1f55d;long DATARMNETa2e32cdd3a;u32 DATARMNET9c869c1ec2;u16 DATARMNET64bb8a8f57;u8 DATARMNETd9cfd2812b;u8 DATARMNETf5ab31b9b0;u8 DATARMNET34097703c8;u8 DATARMNETfc89d842ae;u8 DATARMNET6fe0db3a49;u8 DATARMNETba3f7a11ef;u8 map_mask;u8 - map_len;u8 DATARMNET5c24e1df05;};struct DATARMNETa034b2e60c{struct sk_buff*head -;struct sk_buff*tail;u64 DATARMNETbaa5765693;u32 DATARMNET6215127f48;u32 -DATARMNET35234676d4;};struct DATARMNET63d7680df2{union{struct iphdr -DATARMNETac9bbaad7c;struct ipv6hdr DATARMNET1688a97aa4;}ip_hdr;union{struct -tcphdr tp;struct udphdr up;}DATARMNETe33b41dad9;struct list_head -DATARMNET04c88b8191;struct net_device*dev;struct DATARMNET6c78e47d24* -DATARMNET341ea38662;struct DATARMNETa034b2e60c DATARMNETae4b27456e;struct -hlist_node list;u64 DATARMNET11930c5df8;u64 DATARMNETa8940e4a7b;u64 -DATARMNET2594c418db;u32 queue_head;u32 hash;u16 map_index;u16 map_cpu;u16 -DATARMNETfbbec4c537;u16 DATARMNETa59ce1fd2d;u8 DATARMNET85c698ec34;u16 -DATARMNET1e9d25d9ff;u8 DATARMNETa1099c74fe;u8 DATARMNET6250e93187;u8 mux_id;}; -enum DATARMNET156842d55e{DATARMNET7bc926fdbe,DATARMNETb3e3b2a799, -DATARMNET8dcf06727b};enum DATARMNET8463cba7c7{DATARMNETc3bce05be2, -DATARMNET14067f0be4,DATARMNET28bb261646,DATARMNET67b67dc88f,DATARMNET0efbbe2821, -DATARMNETa4267dfd8a,DATARMNETf13db5ace8,DATARMNETb6eae1e097,DATARMNET7f401828b3, -DATARMNETeccb61ebc3};enum DATARMNETf355367410{DATARMNET557ff68d74, -DATARMNET1c55e5fdb1,DATARMNET4ab5a31d0c,DATARMNETde2dd86539};enum -DATARMNET3f3bc61c03{DATARMNETf5157a9b85,DATARMNET709b59b0e6,DATARMNET99db6e7d86, -DATARMNETe3c02ddaeb,DATARMNET394acaf558,DATARMNETef8cbfa62f,DATARMNETe6e77f9f03, -DATARMNETecdf13872c,DATARMNETd1687e0776,DATARMNET1828d69e96,DATARMNET40ceff078e, -DATARMNET42b73d0f3f,DATARMNETb8fe2c0e64,DATARMNET72db8b9bac,DATARMNET33a9d4759f, -DATARMNET46966e7828,DATARMNETa1f9420686,DATARMNET54b67b8a75,DATARMNETac729c3d29, -DATARMNET6533f70c87,DATARMNET6f6efeaf61,DATARMNETcc0ef52ccb,DATARMNETf8de7cb644, -DATARMNETdd6bf3de6b,DATARMNETfeaf903a28,DATARMNET767c76ca08,DATARMNET048727d1d9, -DATARMNET6ea8a58f4e,DATARMNETf3110711cb};enum DATARMNETd751e3ec84{ -DATARMNETcc3c294f38,DATARMNET802083239a,DATARMNETed69052342,DATARMNETcfb1764a91, -DATARMNET84a9e136b8,DATARMNET01bf75e27c,DATARMNETd45c383019,DATARMNETbb5757569c, -DATARMNETc8058e2cff,DATARMNET04dac3a62b,DATARMNET3cef75f6cd};struct -DATARMNETfd554c7eac{struct sk_buff*skb;struct DATARMNETfd554c7eac*next;};struct -DATARMNET37ef896af8{struct work_struct DATARMNET33110a3ff5;struct rmnet_port* -port;};struct DATARMNETe600c5b727{struct list_head DATARMNET3dc4262f53;u32 -DATARMNETae196235f2;u32 qtail;u32 DATARMNET96571b28de;u32 DATARMNET4133fc9428; -u32 seg;u8 DATARMNETef866573e0;u8 DATARMNET1e1f197118;};enum DATARMNETf0a06dc55a -{DATARMNET1790979ccf,DATARMNETd5eb6398da,DATARMNETcd24fca747,DATARMNETe50d824af7 -,DATARMNET6b317c4c73,DATARMNET75d955c408,DATARMNETf3aaad06eb,DATARMNET720469c0a9 -,DATARMNET4510abc30d,DATARMNET23f8730007,};enum DATARMNETc1d9e38720{ -DATARMNET0b15fd8b54,DATARMNET5b5927fd7e,DATARMNETba3049005f};enum -DATARMNET4f392b0182{DATARMNET72cb00fdc0,DATARMNET443dab7031,DATARMNET96db46917c, -DATARMNET89958f9b63,DATARMNET6d7a3a033a,DATARMNET16a68afc17,DATARMNET916f444e0a, -DATARMNETe9a79499ac,DATARMNET89f4779456,DATARMNETa94c7e31a0,DATARMNET116c96c236, -DATARMNET9da2ea4f74,DATARMNETe55953a107,DATARMNET43225b7a7c,DATARMNET4dbb6812b5, -DATARMNETbf80eada88,DATARMNET26438cb654,DATARMNETa6d85c8497,DATARMNET650a0ef6e1, -DATARMNET3e031f1532,DATARMNET9f467b9ce4,DATARMNETc154fd2d48,DATARMNET5874e1ecd7, -DATARMNET4f09dc5794,DATARMNET11a1fd3964,DATARMNETf2fc7954d4,DATARMNET4e91ddb48a, -DATARMNET16befe9635,DATARMNET856c53293b,DATARMNET7e63a08ad4,DATARMNETf7c8c7aa3f, -DATARMNET08b6defcff,DATARMNETf5c836f9ae,DATARMNETdd870ee64c,DATARMNETf730f80f06, -DATARMNET998c6de143,DATARMNETe7afce2292,DATARMNETe0fee0991a,DATARMNETbc2a6aea12, -DATARMNETde91850c28,DATARMNET237e7bd5f6,DATARMNETf16e78412b,DATARMNET83147a2e7d, -DATARMNET816bb1e327,DATARMNETf311f20c00,DATARMNETa2bd301af7,DATARMNET99640d60f7, -DATARMNET562b7d32a8,DATARMNET0808844559,DATARMNET5410705c1c,DATARMNET022082b219, -DATARMNETe4ee0d2636,DATARMNET23b8465daf,DATARMNET052f49b190,DATARMNETfb753e521e, -DATARMNET64b02f64c6,DATARMNET576793621a,DATARMNETc262b24b02,DATARMNET4ebbc01257, -DATARMNET595eed6ea2,DATARMNETde090e8314,DATARMNETa593d87b38,DATARMNET8a2898988b, -DATARMNET0709c9f764,};extern struct DATARMNET37ef896af8 DATARMNET1731db288b; -extern spinlock_t DATARMNET3764d083f0;extern spinlock_t DATARMNETec2a4f5211; -extern spinlock_t DATARMNETfbdbab2ef6;extern struct hlist_head -DATARMNETe603c3a4b3[(0xd26+209-0xdf6)<<(DATARMNET25437d35fd)];extern int(* -rmnet_shs_skb_entry)(struct sk_buff*skb,struct rmnet_shs_clnt_s* -DATARMNET9e820fbfe3);extern int(*rmnet_shs_switch)(struct sk_buff*skb,struct -rmnet_shs_clnt_s*DATARMNET9e820fbfe3);int DATARMNET362b15f941(u16 cpu);void -DATARMNETeacad8334e(void);void DATARMNETe1f95274f1(void);unsigned int -DATARMNET02cdd9b125(void);int DATARMNET310c3eb16e(u8 mask);int + map_len;u8 DATARMNET5c24e1df05;u8 DATARMNET7d667e828e;};struct +DATARMNETa034b2e60c{struct sk_buff*head;struct sk_buff*tail;u64 +DATARMNETbaa5765693;u32 DATARMNET6215127f48;u32 DATARMNET35234676d4;};struct +DATARMNET63d7680df2{union{struct iphdr DATARMNETac9bbaad7c;struct ipv6hdr +DATARMNET1688a97aa4;}ip_hdr;union{struct tcphdr tp;struct udphdr up;} +DATARMNETe33b41dad9;struct list_head DATARMNET04c88b8191;struct net_device*dev; +struct DATARMNET6c78e47d24*DATARMNET341ea38662;struct DATARMNETa034b2e60c +DATARMNETae4b27456e;struct hlist_node list;u64 DATARMNET11930c5df8;u64 +DATARMNETa8940e4a7b;u64 DATARMNET2594c418db;u32 queue_head;u32 hash;u16 +map_index;u16 map_cpu;u16 DATARMNETfbbec4c537;u16 DATARMNETa59ce1fd2d;u8 +DATARMNET85c698ec34;u16 DATARMNET1e9d25d9ff;u8 DATARMNETa1099c74fe;u8 +DATARMNET6250e93187;u8 mux_id;};enum DATARMNET156842d55e{DATARMNET7bc926fdbe, +DATARMNETb3e3b2a799,DATARMNET8dcf06727b};enum DATARMNET8463cba7c7{ +DATARMNETc3bce05be2,DATARMNET14067f0be4,DATARMNET28bb261646,DATARMNET67b67dc88f, +DATARMNET0efbbe2821,DATARMNETa4267dfd8a,DATARMNETf13db5ace8,DATARMNETb6eae1e097, +DATARMNET7f401828b3,DATARMNETeccb61ebc3};enum DATARMNETf355367410{ +DATARMNET557ff68d74,DATARMNET1c55e5fdb1,DATARMNET4ab5a31d0c,DATARMNETde2dd86539} +;enum DATARMNET3f3bc61c03{DATARMNETf5157a9b85,DATARMNET709b59b0e6, +DATARMNET99db6e7d86,DATARMNETe3c02ddaeb,DATARMNET394acaf558,DATARMNETef8cbfa62f, +DATARMNETe6e77f9f03,DATARMNETecdf13872c,DATARMNETd1687e0776,DATARMNET1828d69e96, +DATARMNET40ceff078e,DATARMNET42b73d0f3f,DATARMNETb8fe2c0e64,DATARMNET72db8b9bac, +DATARMNET33a9d4759f,DATARMNET46966e7828,DATARMNETa1f9420686,DATARMNET54b67b8a75, +DATARMNETac729c3d29,DATARMNET6533f70c87,DATARMNET6f6efeaf61,DATARMNETcc0ef52ccb, +DATARMNETf8de7cb644,DATARMNETdd6bf3de6b,DATARMNETfeaf903a28,DATARMNET767c76ca08, +DATARMNET048727d1d9,DATARMNET6ea8a58f4e,DATARMNETf3110711cb};enum +DATARMNETd751e3ec84{DATARMNETcc3c294f38,DATARMNET802083239a,DATARMNETed69052342, +DATARMNETcfb1764a91,DATARMNET84a9e136b8,DATARMNET01bf75e27c,DATARMNETd45c383019, +DATARMNETbb5757569c,DATARMNETc8058e2cff,DATARMNET04dac3a62b,DATARMNET3cef75f6cd} +;struct DATARMNETfd554c7eac{struct sk_buff*skb;struct DATARMNETfd554c7eac*next;} +;struct DATARMNET37ef896af8{struct work_struct DATARMNET33110a3ff5;struct +rmnet_port*port;};struct DATARMNETe600c5b727{struct list_head +DATARMNET3dc4262f53;u32 DATARMNETae196235f2;u32 qtail;u32 DATARMNET96571b28de; +u32 DATARMNET4133fc9428;u32 seg;u8 DATARMNETef866573e0;u8 DATARMNET1e1f197118;}; +enum DATARMNETf0a06dc55a{DATARMNET1790979ccf,DATARMNETd5eb6398da, +DATARMNETcd24fca747,DATARMNETe50d824af7,DATARMNET6b317c4c73,DATARMNET75d955c408, +DATARMNETf3aaad06eb,DATARMNET720469c0a9,DATARMNET4510abc30d,DATARMNET23f8730007, +};enum DATARMNETc1d9e38720{DATARMNET0b15fd8b54,DATARMNET5b5927fd7e, +DATARMNETba3049005f};enum DATARMNET4f392b0182{DATARMNET72cb00fdc0, +DATARMNET443dab7031,DATARMNET96db46917c,DATARMNET89958f9b63,DATARMNET6d7a3a033a, +DATARMNET16a68afc17,DATARMNET916f444e0a,DATARMNETe9a79499ac,DATARMNET89f4779456, +DATARMNETa94c7e31a0,DATARMNET116c96c236,DATARMNET9da2ea4f74,DATARMNETe55953a107, +DATARMNET43225b7a7c,DATARMNET4dbb6812b5,DATARMNETbf80eada88,DATARMNET26438cb654, +DATARMNETa6d85c8497,DATARMNET650a0ef6e1,DATARMNET3e031f1532,DATARMNET9f467b9ce4, +DATARMNETc154fd2d48,DATARMNET5874e1ecd7,DATARMNET4f09dc5794,DATARMNET11a1fd3964, +DATARMNETf2fc7954d4,DATARMNET4e91ddb48a,DATARMNET16befe9635,DATARMNET856c53293b, +DATARMNET7e63a08ad4,DATARMNETf7c8c7aa3f,DATARMNET08b6defcff,DATARMNETf5c836f9ae, +DATARMNETdd870ee64c,DATARMNETf730f80f06,DATARMNET998c6de143,DATARMNETe7afce2292, +DATARMNETe0fee0991a,DATARMNETbc2a6aea12,DATARMNETde91850c28,DATARMNET237e7bd5f6, +DATARMNETf16e78412b,DATARMNET83147a2e7d,DATARMNET816bb1e327,DATARMNETf311f20c00, +DATARMNETa2bd301af7,DATARMNET99640d60f7,DATARMNET562b7d32a8,DATARMNET0808844559, +DATARMNET5410705c1c,DATARMNET022082b219,DATARMNETe4ee0d2636,DATARMNET23b8465daf, +DATARMNET052f49b190,DATARMNETfb753e521e,DATARMNET64b02f64c6,DATARMNET576793621a, +DATARMNETc262b24b02,DATARMNET4ebbc01257,DATARMNET595eed6ea2,DATARMNETde090e8314, +DATARMNETa593d87b38,DATARMNET8a2898988b,DATARMNET0709c9f764,};extern struct +DATARMNET37ef896af8 DATARMNET1731db288b;extern spinlock_t DATARMNET3764d083f0; +extern spinlock_t DATARMNETec2a4f5211;extern spinlock_t DATARMNETfbdbab2ef6; +extern struct hlist_head DATARMNETe603c3a4b3[(0xd26+209-0xdf6)<<( +DATARMNET25437d35fd)];extern int(*rmnet_shs_skb_entry)(struct sk_buff*skb,struct + rmnet_shs_clnt_s*DATARMNET9e820fbfe3);extern int(*rmnet_shs_switch)(struct +sk_buff*skb,struct rmnet_shs_clnt_s*DATARMNET9e820fbfe3);int DATARMNET362b15f941 +(u16 cpu);void DATARMNETeacad8334e(void);void DATARMNETe1f95274f1(void);unsigned + int DATARMNET02cdd9b125(void);int DATARMNET310c3eb16e(u8 mask);int DATARMNETe02152c351(struct DATARMNET63d7680df2*DATARMNET63b1a086d5,u8 DATARMNETd87669e323,u8 DATARMNET5447204733);void DATARMNET78bb6be330(struct rmnet_map_dl_ind_hdr*dlhdr,struct rmnet_map_control_command_header*qcmd);void diff --git a/shs/rmnet_shs_config.c b/shs/rmnet_shs_config.c index 24cca77299bb..918b02404768 100644 --- a/shs/rmnet_shs_config.c +++ b/shs/rmnet_shs_config.c @@ -49,6 +49,8 @@ DATARMNET5fc54f7a13 __read_mostly={.notifier_call=DATARMNETe9173bbe0e,.priority= "\x49\x35\x62\x33\x65\x64\x30\x65\x63\x34\x66\x33\x36\x37\x39\x30\x64\x38\x65\x64\x30\x35\x39\x33\x32\x62\x37\x38\x34\x66\x32\x35\x33\x33\x66\x36\x31\x37\x33\x62\x62" , "\x49\x37\x32\x33\x65\x63\x63\x32\x62\x37\x36\x30\x31\x38\x32\x34\x64\x66\x32\x61\x66\x32\x33\x66\x62\x35\x35\x39\x64\x38\x64\x66\x35\x33\x63\x66\x65\x32\x63\x63\x31" +, +"\x49\x39\x39\x63\x36\x62\x34\x66\x61\x37\x38\x37\x64\x64\x34\x66\x64\x36\x33\x62\x38\x31\x64\x66\x63\x39\x32\x32\x39\x36\x65\x64\x33\x65\x63\x31\x64\x38\x37\x38\x35" };static int DATARMNET2cb9ae589c;int __init DATARMNET163e93649e(void){pr_info( "\x25\x73\x28\x29\x3a\x20\x53\x74\x61\x72\x74\x69\x6e\x67\x20\x72\x6d\x6e\x65\x74\x20\x53\x48\x53\x20\x6d\x6f\x64\x75\x6c\x65\x20\x25\x73\x20" "\n" ,__func__,DATARMNETbc8418e817[(0xd2d+202-0xdf7)]);trace_rmnet_shs_high( diff --git a/shs/rmnet_shs_main.c b/shs/rmnet_shs_main.c index 972be311705c..99b0bc38abd7 100644 --- a/shs/rmnet_shs_main.c +++ b/shs/rmnet_shs_main.c @@ -60,31 +60,28 @@ DATARMNETc6782fed88];int DATARMNETcff375d916[DATARMNETc6782fed88];struct DATARMNETa6b20d7e8b DATARMNETecc0627c70;struct DATARMNET37ef896af8 shs_rx_work; ssize_t DATARMNET713da9913c(struct netdev_rx_queue*DATARMNETb4180393e4,u8 cpu,u8 DATARMNETa7a5705ab0,u8 DATARMNET5780499e9c){struct rps_map*DATARMNETaeb4918e65, -*map;cpumask_var_t mask;unsigned long ht_flags;int DATARMNET421230d879;if(! -DATARMNET5780499e9c&&(DATARMNET3de2536baf(DATARMNETa7a5705ab0).qlen& -DATARMNET832731a933(DATARMNETa7a5705ab0).qlen))return-(0xd26+209-0xdf6);map= -rcu_dereference(DATARMNETb4180393e4->rps_map);if(map){spin_lock_irqsave(& -DATARMNET832731a933(DATARMNETa7a5705ab0).lock,ht_flags);map->cpus[ -(0xd2d+202-0xdf7)]=cpu;map->len=(0xd26+209-0xdf6);spin_unlock_irqrestore(& -DATARMNET832731a933(DATARMNETa7a5705ab0).lock,ht_flags);DATARMNET421230d879=( -DATARMNET3de2536baf(DATARMNETa7a5705ab0).qlen+DATARMNET832731a933( -DATARMNETa7a5705ab0).qlen);if(DATARMNET421230d879){DATARMNET68d84e7b98[ -DATARMNETfeaf903a28]++;DATARMNET4bde88919f(DATARMNETa7a5705ab0, -DATARMNET421230d879);}return(0xd2d+202-0xdf7);}if(!alloc_cpumask_var(&mask, -GFP_ATOMIC))return-ENOMEM;cpumask_set_cpu(cpu,(struct cpumask*)&mask);map= -kzalloc(max_t(unsigned int,RPS_MAP_SIZE(cpumask_weight(mask)),L1_CACHE_BYTES), -GFP_ATOMIC);if(!map){free_cpumask_var(mask);return-ENOMEM;}map->cpus[ -(0xd2d+202-0xdf7)]=cpu;map->len=(0xd26+209-0xdf6);spin_lock_irqsave(& -DATARMNET832731a933(DATARMNETa7a5705ab0).lock,ht_flags);rcu_read_lock(); +*map;cpumask_var_t mask;int DATARMNET421230d879;if(!DATARMNET5780499e9c&&( +DATARMNET3de2536baf(DATARMNETa7a5705ab0).qlen&DATARMNET832731a933( +DATARMNETa7a5705ab0).qlen))return-(0xd26+209-0xdf6);map=rcu_dereference( +DATARMNETb4180393e4->rps_map);if(map){map->cpus[(0xd2d+202-0xdf7)]=cpu;map->len= +(0xd26+209-0xdf6);DATARMNET421230d879=(DATARMNET3de2536baf(DATARMNETa7a5705ab0). +qlen+DATARMNET832731a933(DATARMNETa7a5705ab0).qlen);if(DATARMNET421230d879&& +DATARMNETecc0627c70.DATARMNET7d667e828e!=DATARMNETecc0627c70.DATARMNET5c24e1df05 +){DATARMNET68d84e7b98[DATARMNETfeaf903a28]++;DATARMNET4bde88919f( +DATARMNETa7a5705ab0,DATARMNET421230d879);}return(0xd2d+202-0xdf7);}if(! +alloc_cpumask_var(&mask,GFP_ATOMIC))return-ENOMEM;cpumask_set_cpu(cpu,(struct +cpumask*)&mask);map=kzalloc(max_t(unsigned int,RPS_MAP_SIZE(cpumask_weight(mask) +),L1_CACHE_BYTES),GFP_ATOMIC);if(!map){free_cpumask_var(mask);return-ENOMEM;}map +->cpus[(0xd2d+202-0xdf7)]=cpu;map->len=(0xd26+209-0xdf6);rcu_read_lock(); DATARMNETaeb4918e65=rcu_dereference(DATARMNETb4180393e4->rps_map); rcu_assign_pointer(DATARMNETb4180393e4->rps_map,map);if(DATARMNETaeb4918e65) kfree(DATARMNETaeb4918e65);free_cpumask_var(mask);rcu_read_unlock(); -spin_unlock_irqrestore(&DATARMNET832731a933(DATARMNETa7a5705ab0).lock,ht_flags); DATARMNET421230d879=(DATARMNET3de2536baf(DATARMNETa7a5705ab0).qlen+ -DATARMNET832731a933(DATARMNETa7a5705ab0).qlen);if(DATARMNET421230d879){ -DATARMNET68d84e7b98[DATARMNETfeaf903a28]++;}return(0xd2d+202-0xdf7);}static void -*DATARMNETefcaf5fbe9(struct sk_buff*skb,u32 offset,u32 DATARMNET567bdc7221,void* -buf){struct skb_shared_info*shinfo=skb_shinfo(skb);skb_frag_t*frag;u32 +DATARMNET832731a933(DATARMNETa7a5705ab0).qlen);if(DATARMNET421230d879&& +DATARMNETecc0627c70.DATARMNET7d667e828e!=DATARMNETecc0627c70.DATARMNET5c24e1df05 +){DATARMNET68d84e7b98[DATARMNETfeaf903a28]++;}return(0xd2d+202-0xdf7);}static +void*DATARMNETefcaf5fbe9(struct sk_buff*skb,u32 offset,u32 DATARMNET567bdc7221, +void*buf){struct skb_shared_info*shinfo=skb_shinfo(skb);skb_frag_t*frag;u32 DATARMNETedc267a909=offset;int i;if(offset>skb->len||DATARMNET567bdc7221>skb-> len||offset+DATARMNET567bdc7221>skb->len)return NULL;if(skb_headlen(skb)>=offset +DATARMNET567bdc7221)return skb->data+offset;offset-=skb_headlen(skb);for(i= @@ -99,20 +96,20 @@ ETH_P_IP):ip4h=DATARMNETefcaf5fbe9(skb,(0xd2d+202-0xdf7),sizeof(*ip4h),& DATARMNETc00baf31c3);if(!ip4h)break;if(!ip_is_fragment(ip4h)&&(ip4h->protocol== IPPROTO_TCP||ip4h->protocol==IPPROTO_UDP)){DATARMNETbd864aa442=(0xd26+209-0xdf6) ;break;}if(ip4h->protocol==IPPROTO_ICMP){skb->hash=(0xd2d+202-0xdf7);skb-> -sw_hash=DATARMNET9273f84bf1&DATARMNETecc0627c70.DATARMNET5c24e1df05;}break;case -htons(ETH_P_IPV6):ip6h=DATARMNETefcaf5fbe9(skb,(0xd2d+202-0xdf7),sizeof(*ip6h),& -DATARMNETcf1d9e2c1e);if(!ip6h)break;if(!(ip6h->nexthdr==NEXTHDR_FRAGMENT)&&(ip6h -->nexthdr==IPPROTO_TCP||ip6h->nexthdr==IPPROTO_UDP)){DATARMNETbd864aa442= -(0xd26+209-0xdf6);break;}if(ip6h->nexthdr==IPPROTO_ICMP){skb->hash= -(0xd2d+202-0xdf7);skb->sw_hash=DATARMNET9273f84bf1&DATARMNETecc0627c70. -DATARMNET5c24e1df05;}break;default:break;}DATARMNETda96251102( -DATARMNETcd24fca747,DATARMNET116c96c236,DATARMNETbd864aa442,(0x16e8+787-0xc0c), -(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),skb,NULL);return DATARMNETbd864aa442;} -static void DATARMNETfa919d00dc(int cpu,int DATARMNET8a461bad56){struct timespec - DATARMNET2e47295bf1;struct timespec*DATARMNET736ac5582e;long -DATARMNETb64270afc1;int DATARMNETa67155ba38=(DATARMNETa1ac2608b5< -DATARMNET8948dc953d)?DATARMNET8948dc953d:DATARMNETa1ac2608b5;getnstimeofday(& -DATARMNET2e47295bf1);DATARMNET736ac5582e=&DATARMNETecc0627c70. +sw_hash=DATARMNET9273f84bf1&((0xd26+209-0xdf6)< +nexthdr==NEXTHDR_FRAGMENT)&&(ip6h->nexthdr==IPPROTO_TCP||ip6h->nexthdr== +IPPROTO_UDP)){DATARMNETbd864aa442=(0xd26+209-0xdf6);break;}if(ip6h->nexthdr== +IPPROTO_ICMP){skb->hash=(0xd2d+202-0xdf7);skb->sw_hash=DATARMNET9273f84bf1&( +(0xd26+209-0xdf6)<tv_sec)+ DATARMNET2e47295bf1.tv_nsec-DATARMNET736ac5582e->tv_nsec;if(DATARMNETb64270afc1 @@ -247,33 +244,34 @@ dev)){if(DATARMNET713da9913c(dev->_rx,cpu,raw_smp_processor_id(), DATARMNET5780499e9c)==(0xd2d+202-0xdf7)){RCU_INIT_POINTER(rmnet_shs_switch,NULL) ;if(((0xd26+209-0xdf6)<DATARMNETfbbec4c537;DATARMNET5c4a331b9c=DATARMNETb6bff4a724 -(DATARMNET63b1a086d5);do{DATARMNET5a2e9192f9=DATARMNET63b1a086d5->map_cpu;if( -DATARMNET5c4a331b9c<(0xd2d+202-0xdf7)){DATARMNET63b1a086d5->DATARMNET6250e93187= -(0xd2d+202-0xdf7);ret=(0xd26+209-0xdf6);break;}DATARMNET63b1a086d5-> -DATARMNET6250e93187=(0xd26+209-0xdf6);if(!map){DATARMNET63b1a086d5-> -DATARMNET6250e93187=(0xd2d+202-0xdf7);ret=(0xd26+209-0xdf6);break;}if( -DATARMNET5c4a331b9c==DATARMNET63b1a086d5->map_index){ret=(0xd26+209-0xdf6);break -;}DATARMNETd3673fd5f0=DATARMNETadb0248bd4(DATARMNET63b1a086d5->map_cpu); -DATARMNET9bbfe49633=DATARMNET63b1a086d5->queue_head;DATARMNET42a992465f= -DATARMNET63b1a086d5->map_cpu;DATARMNETeaf6716f3e=DATARMNET3de2536baf( -DATARMNET42a992465f).qlen+DATARMNET832731a933(DATARMNET42a992465f).qlen;if(( -DATARMNET63b1a086d5->DATARMNET85c698ec34&&(!DATARMNETeaf6716f3e))||(! -DATARMNET63b1a086d5->DATARMNET85c698ec34&&DATARMNETd3673fd5f0>= -DATARMNET9bbfe49633)||(DATARMNETd87669e323)){if(likely(DATARMNETa7909611da)){if( -DATARMNET63b1a086d5->DATARMNET85c698ec34&&!((DATARMNET765b8ecfba( -DATARMNET63b1a086d5->dev,DATARMNET5c4a331b9c,DATARMNETd87669e323)== -(0xd2d+202-0xdf7)))){ret=(0xd26+209-0xdf6);break;}DATARMNETcfb5dc7296= -DATARMNETaef946bb68(DATARMNET5c4a331b9c,DATARMNET63b1a086d5->DATARMNETfbbec4c537 -);if(DATARMNETcfb5dc7296<(0xd2d+202-0xdf7)){ret=(0xd26+209-0xdf6);break;} +DATARMNETecc0627c70.DATARMNETba3f7a11ef=(0xd26+209-0xdf6)< +DATARMNETfbbec4c537;DATARMNET5c4a331b9c=DATARMNETb6bff4a724(DATARMNET63b1a086d5) +;do{DATARMNET5a2e9192f9=DATARMNET63b1a086d5->map_cpu;if(DATARMNET5c4a331b9c< +(0xd2d+202-0xdf7)){DATARMNET63b1a086d5->DATARMNET6250e93187=(0xd2d+202-0xdf7); +ret=(0xd26+209-0xdf6);break;}DATARMNET63b1a086d5->DATARMNET6250e93187= +(0xd26+209-0xdf6);if(!map){DATARMNET63b1a086d5->DATARMNET6250e93187= +(0xd2d+202-0xdf7);ret=(0xd26+209-0xdf6);break;}if(DATARMNET5c4a331b9c== +DATARMNET63b1a086d5->map_index){ret=(0xd26+209-0xdf6);break;}DATARMNETd3673fd5f0 +=DATARMNETadb0248bd4(DATARMNET63b1a086d5->map_cpu);DATARMNET9bbfe49633= +DATARMNET63b1a086d5->queue_head;DATARMNET42a992465f=DATARMNET63b1a086d5->map_cpu +;DATARMNETeaf6716f3e=DATARMNET3de2536baf(DATARMNET42a992465f).qlen+ +DATARMNET832731a933(DATARMNET42a992465f).qlen;if((DATARMNET63b1a086d5-> +DATARMNET85c698ec34&&(!DATARMNETeaf6716f3e))||(!DATARMNET63b1a086d5-> +DATARMNET85c698ec34&&DATARMNETd3673fd5f0>=DATARMNET9bbfe49633)||( +DATARMNETd87669e323)){if(likely(DATARMNETa7909611da)){if(DATARMNET63b1a086d5-> +DATARMNET85c698ec34&&!((DATARMNET765b8ecfba(DATARMNET63b1a086d5->dev, +DATARMNET5c4a331b9c,DATARMNETd87669e323)==(0xd2d+202-0xdf7)))){ret= +(0xd26+209-0xdf6);break;}DATARMNETcfb5dc7296=DATARMNETaef946bb68( +DATARMNET5c4a331b9c,DATARMNET63b1a086d5->DATARMNETfbbec4c537);if( +DATARMNETcfb5dc7296<(0xd2d+202-0xdf7)){ret=(0xd26+209-0xdf6);break;} DATARMNET0997c5650d[DATARMNETcfb5dc7296].DATARMNET4133fc9428+= DATARMNET63b1a086d5->DATARMNETae4b27456e.DATARMNET6215127f48;DATARMNET0997c5650d [DATARMNET63b1a086d5->map_cpu].DATARMNET4133fc9428-=DATARMNET63b1a086d5-> @@ -376,23 +374,25 @@ DATARMNET63b1a086d5->DATARMNET6250e93187=(0xd2d+202-0xdf7);}for((skb= DATARMNET63b1a086d5->DATARMNETae4b27456e.head);skb!=NULL;skb=DATARMNETcebafc57a4 ){DATARMNETcebafc57a4=skb->next;if(DATARMNET63b1a086d5->DATARMNET6250e93187)skb ->hash=DATARMNET1fcbf046ec;skb->next=NULL;DATARMNETe20a9cab2b+=(0xd26+209-0xdf6) -;DATARMNETb481d13a78+=skb->len;if(DATARMNET5447204733==DATARMNET0b15fd8b54) -DATARMNETe767554e6e(skb);else DATARMNET514ce0bf59(skb);}DATARMNET68d84e7b98[ -DATARMNET72db8b9bac]++;DATARMNETecc0627c70.DATARMNETc252a1f55d-= -DATARMNETb481d13a78;DATARMNETecc0627c70.DATARMNETa2e32cdd3a-=DATARMNETe20a9cab2b -;DATARMNET0997c5650d[DATARMNET63b1a086d5->map_cpu].DATARMNET4133fc9428-= -DATARMNETe20a9cab2b;}int DATARMNETe02152c351(struct DATARMNET63d7680df2* -DATARMNET63b1a086d5,u8 DATARMNETd87669e323,u8 DATARMNET5447204733){int -DATARMNETbd864aa442=(0xd2d+202-0xdf7);int map=DATARMNET63b1a086d5-> -DATARMNETfbbec4c537;int DATARMNET5643f7b5e9;DATARMNET52de1f3dc0( -DATARMNET4510abc30d,DATARMNET022082b219,DATARMNETd87669e323,DATARMNET5447204733, -(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),DATARMNET63b1a086d5,NULL);if( -DATARMNETaef946bb68(DATARMNET63b1a086d5->map_index,map)!=DATARMNET63b1a086d5-> -map_cpu){DATARMNET5643f7b5e9=DATARMNET04e8d1b862(DATARMNET63b1a086d5->map_cpu, -map);if(DATARMNET5643f7b5e9>=(0xd2d+202-0xdf7)){DATARMNET63b1a086d5->map_index= -DATARMNET5643f7b5e9;DATARMNET63b1a086d5->map_cpu=DATARMNETaef946bb68( -DATARMNET5643f7b5e9,map);}else{DATARMNET63b1a086d5->map_index= -DATARMNET2edff26954;DATARMNET63b1a086d5->map_cpu=DATARMNETaef946bb68( +;DATARMNETb481d13a78+=skb->len;if(DATARMNET5447204733==DATARMNET0b15fd8b54&&(! +DATARMNET63b1a086d5->DATARMNET85c698ec34))DATARMNETe767554e6e(skb);else if( +DATARMNET5447204733==DATARMNET5b5927fd7e&&DATARMNET63b1a086d5-> +DATARMNET85c698ec34)DATARMNETe767554e6e(skb);else DATARMNET514ce0bf59(skb);} +DATARMNET68d84e7b98[DATARMNET72db8b9bac]++;DATARMNETecc0627c70. +DATARMNETc252a1f55d-=DATARMNETb481d13a78;DATARMNETecc0627c70.DATARMNETa2e32cdd3a +-=DATARMNETe20a9cab2b;DATARMNET0997c5650d[DATARMNET63b1a086d5->map_cpu]. +DATARMNET4133fc9428-=DATARMNETe20a9cab2b;}int DATARMNETe02152c351(struct +DATARMNET63d7680df2*DATARMNET63b1a086d5,u8 DATARMNETd87669e323,u8 +DATARMNET5447204733){int DATARMNETbd864aa442=(0xd2d+202-0xdf7);int map= +DATARMNET63b1a086d5->DATARMNETfbbec4c537;int DATARMNET5643f7b5e9; +DATARMNET52de1f3dc0(DATARMNET4510abc30d,DATARMNET022082b219,DATARMNETd87669e323, +DATARMNET5447204733,(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),DATARMNET63b1a086d5, +NULL);if(DATARMNETaef946bb68(DATARMNET63b1a086d5->map_index,map)!= +DATARMNET63b1a086d5->map_cpu){DATARMNET5643f7b5e9=DATARMNET04e8d1b862( +DATARMNET63b1a086d5->map_cpu,map);if(DATARMNET5643f7b5e9>=(0xd2d+202-0xdf7)){ +DATARMNET63b1a086d5->map_index=DATARMNET5643f7b5e9;DATARMNET63b1a086d5->map_cpu= +DATARMNETaef946bb68(DATARMNET5643f7b5e9,map);}else{DATARMNET63b1a086d5-> +map_index=DATARMNET2edff26954;DATARMNET63b1a086d5->map_cpu=DATARMNETaef946bb68( DATARMNET2edff26954,map);if(DATARMNET63b1a086d5->map_cpu<(0xd2d+202-0xdf7)) DATARMNET63b1a086d5->map_cpu=DATARMNET2edff26954;}DATARMNETd87669e323= (0xd26+209-0xdf6);DATARMNET68d84e7b98[DATARMNETa1f9420686]++;DATARMNET015fb2ba0e @@ -597,72 +597,82 @@ DATARMNET928c931df9(map);map_len=DATARMNET310c3eb16e(map_mask);} DATARMNETecc0627c70.port=rmnet_get_port(dev);DATARMNETecc0627c70.map_mask= map_mask;DATARMNETecc0627c70.map_len=map_len;DATARMNETecc0627c70. DATARMNETba3f7a11ef=(0xd1f+216-0xdf5);DATARMNETecc0627c70.DATARMNET5c24e1df05= -(0xd26+209-0xdf6);for(DATARMNET0e4304d903=(0xd2d+202-0xdf7);DATARMNET0e4304d903< -DATARMNETc6782fed88;DATARMNET0e4304d903++)INIT_LIST_HEAD(&DATARMNET0997c5650d[ -DATARMNET0e4304d903].DATARMNET3dc4262f53);DATARMNETe6e8431304();rc= -register_oom_notifier(&DATARMNET105c85d84c);if(rc<(0xd2d+202-0xdf7)){pr_info( +(0xd26+209-0xdf6);DATARMNETecc0627c70.DATARMNET7d667e828e=(0xd26+209-0xdf6);for( +DATARMNET0e4304d903=(0xd2d+202-0xdf7);DATARMNET0e4304d903DATARMNETae4b27456e.head);buf!=NULL;buf=DATARMNET9a788b5480 -){DATARMNET9a788b5480=buf->next;if(buf)consume_skb(buf);}DATARMNET63b1a086d5-> -DATARMNETae4b27456e.DATARMNET6215127f48=(0xd2d+202-0xdf7);DATARMNET63b1a086d5-> -DATARMNETae4b27456e.DATARMNETbaa5765693=(0xd2d+202-0xdf7);DATARMNET63b1a086d5-> -DATARMNETae4b27456e.head=NULL;DATARMNET63b1a086d5->DATARMNETae4b27456e.tail=NULL -;}DATARMNETecc0627c70.DATARMNETc252a1f55d=(0xd2d+202-0xdf7);DATARMNETecc0627c70. -DATARMNETa2e32cdd3a=(0xd2d+202-0xdf7);DATARMNETecc0627c70.DATARMNETd9cfd2812b= -(0xd2d+202-0xdf7);DATARMNETecc0627c70.DATARMNET34097703c8=DATARMNET8dcf06727b; -spin_unlock_irqrestore(&DATARMNET3764d083f0,ht_flags);}void DATARMNET44459105b4( -struct sk_buff*skb,struct DATARMNET63d7680df2*node_p){struct iphdr*ip4h, -DATARMNETc00baf31c3;struct ipv6hdr*ip6h,DATARMNETcf1d9e2c1e;struct tcphdr*tp, -DATARMNETd1ff6cd568;struct udphdr*up,DATARMNETc82d2f4e16;int len= -(0xd2d+202-0xdf7);u16 ip_len=(0xd2d+202-0xdf7);__be16 frag_off;u8 protocol; -node_p->DATARMNETa1099c74fe=(0xd2d+202-0xdf7);switch(skb->protocol){case htons( -ETH_P_IP):ip4h=DATARMNETefcaf5fbe9(skb,(0xd2d+202-0xdf7),sizeof(*ip4h),& -DATARMNETc00baf31c3);if(!ip4h)return;node_p->DATARMNET1e9d25d9ff=ip4h->protocol; -memcpy(&(node_p->ip_hdr.DATARMNETac9bbaad7c),ip4h,sizeof(*ip4h));ip_len=ip4h-> -ihl*(0xd11+230-0xdf3);node_p->DATARMNETa1099c74fe=!(ip4h->frag_off&htons(IP_DF)) -;break;case htons(ETH_P_IPV6):ip6h=DATARMNETefcaf5fbe9(skb,(0xd2d+202-0xdf7), -sizeof(*ip6h),&DATARMNETcf1d9e2c1e);if(!ip6h)return;node_p->DATARMNET1e9d25d9ff= -ip6h->nexthdr;memcpy(&(node_p->ip_hdr.DATARMNET1688a97aa4),ip6h,sizeof(*ip6h)); -protocol=ip6h->nexthdr;len=ipv6_skip_exthdr(skb,sizeof(*ip6h),&protocol,& -frag_off);if(len<(0xd2d+202-0xdf7)){return;}ip_len=(u16)len;break;default:break; -}if(node_p->DATARMNET1e9d25d9ff==IPPROTO_TCP){tp=DATARMNETefcaf5fbe9(skb,ip_len, -sizeof(*tp),&DATARMNETd1ff6cd568);if(!tp)return;memcpy(&(node_p-> -DATARMNETe33b41dad9.tp),tp,sizeof(struct tcphdr));}else if(node_p-> -DATARMNET1e9d25d9ff==IPPROTO_UDP){up=DATARMNETefcaf5fbe9(skb,ip_len,sizeof(*up), -&DATARMNETc82d2f4e16);if(!up)return;memcpy(&(node_p->DATARMNETe33b41dad9.up),up, -sizeof(struct udphdr));}else{}}int DATARMNET756778f14f(struct sk_buff*skb,struct - rmnet_shs_clnt_s*DATARMNET0bf01e7c6f){struct DATARMNET63d7680df2*node_p;struct -hlist_node*tmp;int map=DATARMNETecc0627c70.map_mask;unsigned long ht_flags;int -DATARMNETcfb5dc7296;int map_cpu;u32 DATARMNET5c4a331b9c,hash;u8 is_match_found= -(0xd2d+202-0xdf7);u8 DATARMNET935af10724=(0xd2d+202-0xdf7);u8 -DATARMNET7c5ef97eab=(0xd2d+202-0xdf7);struct DATARMNETe600c5b727* -DATARMNETa4055affd5;struct rmnet_priv*priv;if(!(DATARMNET0bf01e7c6f->config& -RMNET_SHS_STMP_ALL)&&!DATARMNET9303cec796(skb)){DATARMNETe767554e6e(skb);return -(0xd2d+202-0xdf7);}if((unlikely(!map))||!DATARMNETecc0627c70.DATARMNETfc89d842ae -){DATARMNETe767554e6e(skb);DATARMNET015fb2ba0e(DATARMNET720469c0a9, -DATARMNETe0fee0991a,(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),(0x16e8+787-0xc0c), -(0x16e8+787-0xc0c),NULL,NULL);DATARMNET68d84e7b98[DATARMNETe3c02ddaeb]++;return -(0xd2d+202-0xdf7);}DATARMNET52de1f3dc0(DATARMNET720469c0a9,DATARMNET856c53293b, -(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),skb, -NULL);hash=skb_get_hash(skb);spin_lock_irqsave(&DATARMNET3764d083f0,ht_flags);do -{hash_for_each_possible_safe(DATARMNETe603c3a4b3,node_p,tmp,list,hash){if(hash!= +);}pr_info( +"\x72\x6d\x6e\x65\x74\x5f\x73\x68\x73\x20\x69\x6e\x69\x74\x20\x77\x69\x74\x68\x20\x25\x78" +,DATARMNETecc0627c70.map_mask);DATARMNETecc0627c70.DATARMNETfc89d842ae= +(0xd26+209-0xdf6);}void DATARMNETeacad8334e(void){struct hlist_node*tmp;struct +DATARMNET63d7680df2*DATARMNET63b1a086d5;struct sk_buff*DATARMNET9a788b5480;int +bkt;struct sk_buff*buf;unsigned long ht_flags;if(!DATARMNETecc0627c70. +DATARMNETa2e32cdd3a)return;spin_lock_irqsave(&DATARMNET3764d083f0,ht_flags); +hash_for_each_safe(DATARMNETe603c3a4b3,bkt,tmp,DATARMNET63b1a086d5,list){for(( +buf=DATARMNET63b1a086d5->DATARMNETae4b27456e.head);buf!=NULL;buf= +DATARMNET9a788b5480){DATARMNET9a788b5480=buf->next;if(buf)consume_skb(buf);} +DATARMNET63b1a086d5->DATARMNETae4b27456e.DATARMNET6215127f48=(0xd2d+202-0xdf7); +DATARMNET63b1a086d5->DATARMNETae4b27456e.DATARMNETbaa5765693=(0xd2d+202-0xdf7); +DATARMNET63b1a086d5->DATARMNETae4b27456e.head=NULL;DATARMNET63b1a086d5-> +DATARMNETae4b27456e.tail=NULL;}DATARMNETecc0627c70.DATARMNETc252a1f55d= +(0xd2d+202-0xdf7);DATARMNETecc0627c70.DATARMNETa2e32cdd3a=(0xd2d+202-0xdf7); +DATARMNETecc0627c70.DATARMNETd9cfd2812b=(0xd2d+202-0xdf7);DATARMNETecc0627c70. +DATARMNET34097703c8=DATARMNET8dcf06727b;spin_unlock_irqrestore(& +DATARMNET3764d083f0,ht_flags);}void DATARMNET44459105b4(struct sk_buff*skb, +struct DATARMNET63d7680df2*node_p){struct iphdr*ip4h,DATARMNETc00baf31c3;struct +ipv6hdr*ip6h,DATARMNETcf1d9e2c1e;struct tcphdr*tp,DATARMNETd1ff6cd568;struct +udphdr*up,DATARMNETc82d2f4e16;int len=(0xd2d+202-0xdf7);u16 ip_len= +(0xd2d+202-0xdf7);__be16 frag_off;u8 protocol;node_p->DATARMNETa1099c74fe= +(0xd2d+202-0xdf7);switch(skb->protocol){case htons(ETH_P_IP):ip4h= +DATARMNETefcaf5fbe9(skb,(0xd2d+202-0xdf7),sizeof(*ip4h),&DATARMNETc00baf31c3);if +(!ip4h)return;node_p->DATARMNET1e9d25d9ff=ip4h->protocol;memcpy(&(node_p->ip_hdr +.DATARMNETac9bbaad7c),ip4h,sizeof(*ip4h));ip_len=ip4h->ihl*(0xd11+230-0xdf3); +node_p->DATARMNETa1099c74fe=!(ip4h->frag_off&htons(IP_DF));break;case htons( +ETH_P_IPV6):ip6h=DATARMNETefcaf5fbe9(skb,(0xd2d+202-0xdf7),sizeof(*ip6h),& +DATARMNETcf1d9e2c1e);if(!ip6h)return;node_p->DATARMNET1e9d25d9ff=ip6h->nexthdr; +memcpy(&(node_p->ip_hdr.DATARMNET1688a97aa4),ip6h,sizeof(*ip6h));protocol=ip6h-> +nexthdr;len=ipv6_skip_exthdr(skb,sizeof(*ip6h),&protocol,&frag_off);if(len< +(0xd2d+202-0xdf7)){return;}ip_len=(u16)len;break;default:break;}if(node_p-> +DATARMNET1e9d25d9ff==IPPROTO_TCP){tp=DATARMNETefcaf5fbe9(skb,ip_len,sizeof(*tp), +&DATARMNETd1ff6cd568);if(!tp)return;memcpy(&(node_p->DATARMNETe33b41dad9.tp),tp, +sizeof(struct tcphdr));}else if(node_p->DATARMNET1e9d25d9ff==IPPROTO_UDP){up= +DATARMNETefcaf5fbe9(skb,ip_len,sizeof(*up),&DATARMNETc82d2f4e16);if(!up)return; +memcpy(&(node_p->DATARMNETe33b41dad9.up),up,sizeof(struct udphdr));}else{}}int +DATARMNET756778f14f(struct sk_buff*skb,struct rmnet_shs_clnt_s* +DATARMNET0bf01e7c6f){struct DATARMNET63d7680df2*node_p;struct hlist_node*tmp;int + map=DATARMNETecc0627c70.map_mask;unsigned long ht_flags;int DATARMNETcfb5dc7296 +;int map_cpu;u32 DATARMNET5c4a331b9c,hash;u8 is_match_found=(0xd2d+202-0xdf7);u8 + DATARMNET935af10724=(0xd2d+202-0xdf7);u8 DATARMNET7c5ef97eab=(0xd2d+202-0xdf7); +struct DATARMNETe600c5b727*DATARMNETa4055affd5;struct rmnet_priv*priv;if(!( +DATARMNET0bf01e7c6f->config&RMNET_SHS_STMP_ALL)&&!DATARMNET9303cec796(skb)){ +DATARMNETe767554e6e(skb);return(0xd2d+202-0xdf7);}if((unlikely(!map))||! +DATARMNETecc0627c70.DATARMNETfc89d842ae){DATARMNETe767554e6e(skb); +DATARMNET015fb2ba0e(DATARMNET720469c0a9,DATARMNETe0fee0991a,(0x16e8+787-0xc0c), +(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),NULL,NULL); +DATARMNET68d84e7b98[DATARMNETe3c02ddaeb]++;return(0xd2d+202-0xdf7);} +DATARMNET52de1f3dc0(DATARMNET720469c0a9,DATARMNET856c53293b,(0x16e8+787-0xc0c), +(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),skb,NULL);hash= +skb_get_hash(skb);spin_lock_irqsave(&DATARMNET3764d083f0,ht_flags);do{ +hash_for_each_possible_safe(DATARMNETe603c3a4b3,node_p,tmp,list,hash){if(hash!= node_p->hash)continue;DATARMNETda96251102(DATARMNET720469c0a9, DATARMNET08b6defcff,(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),(0x16e8+787-0xc0c), (0x16e8+787-0xc0c),skb,NULL);DATARMNET5c4a331b9c=node_p->map_index; DATARMNET495dab3d72(skb,node_p,DATARMNET0bf01e7c6f);is_match_found= (0xd26+209-0xdf6);DATARMNET935af10724=(0xd26+209-0xdf6);if(node_p-> -DATARMNET85c698ec34){if(raw_smp_processor_id()==DATARMNETecc0627c70. -DATARMNET5c24e1df05)DATARMNET68d84e7b98[DATARMNET048727d1d9]++;if( -DATARMNET0bf01e7c6f->max_pkts&&node_p->DATARMNETae4b27456e.DATARMNET6215127f48> -DATARMNET0bf01e7c6f->max_pkts)DATARMNET7c5ef97eab=(0xd26+209-0xdf6);}break;}if( -is_match_found)break;DATARMNETcfb5dc7296=DATARMNET362c14e98b(DATARMNETecc0627c70 -.map_mask&DATARMNET9273f84bf1&~DATARMNETecc0627c70.DATARMNETba3f7a11ef);if( +DATARMNET85c698ec34){if(node_p->map_cpu>=(0xd2d+202-0xdf7)&&node_p->map_cpu< +DATARMNETc6782fed88){if(!hrtimer_active(&DATARMNETba5ea4329f(node_p->map_cpu))) +hrtimer_start(&DATARMNETba5ea4329f(node_p->map_cpu),ns_to_ktime( +DATARMNET4ac8af832c*DATARMNET68fc0be252),HRTIMER_MODE_REL);}if( +raw_smp_processor_id()==DATARMNETecc0627c70.DATARMNET7d667e828e){ +DATARMNET68d84e7b98[DATARMNET048727d1d9]++;DATARMNET7c5ef97eab=(0xd26+209-0xdf6) +;}if(DATARMNET0bf01e7c6f->max_pkts&&node_p->DATARMNETae4b27456e. +DATARMNET6215127f48>DATARMNET0bf01e7c6f->max_pkts)DATARMNET7c5ef97eab= +(0xd26+209-0xdf6);}break;}if(is_match_found)break;if(DATARMNET0bf01e7c6f-> +map_mask){DATARMNETcfb5dc7296=DATARMNET362c14e98b(DATARMNETecc0627c70.map_mask& +DATARMNET9273f84bf1&~DATARMNETecc0627c70.DATARMNETba3f7a11ef);}else{ +DATARMNETcfb5dc7296=DATARMNET217fe38119((0xd2d+202-0xdf7),skb->dev);}if( DATARMNETcfb5dc7296<(0xd2d+202-0xdf7)){DATARMNET68d84e7b98[DATARMNETa1f9420686] ++;break;}if(DATARMNETecc0627c70.DATARMNET64bb8a8f57>DATARMNETbfe31ef643){ DATARMNET68d84e7b98[DATARMNETe6e77f9f03]++;break;}node_p=kzalloc(sizeof(*node_p) @@ -674,12 +684,15 @@ DATARMNET44459105b4(skb,node_p);if(DATARMNET0bf01e7c6f->map_mask){node_p-> DATARMNETfbbec4c537=DATARMNET0bf01e7c6f->map_mask;node_p->DATARMNETa59ce1fd2d= DATARMNET310c3eb16e(node_p->DATARMNETfbbec4c537);node_p->map_cpu= raw_smp_processor_id();node_p->map_index=node_p->map_cpu;node_p-> -DATARMNET85c698ec34=(0xd26+209-0xdf6);}else if(node_p->DATARMNET85c698ec34){ -node_p->DATARMNET341ea38662->mux_id=(0xd2d+202-0xdf7);}else{node_p-> -DATARMNETfbbec4c537=DATARMNETecc0627c70.map_mask;node_p->DATARMNETa59ce1fd2d= -DATARMNETecc0627c70.map_len;}DATARMNET0349051465(node_p->map_cpu); -DATARMNET350f55bfca(node_p);map_cpu=node_p->map_cpu;DATARMNETa4055affd5=& -DATARMNET0997c5650d[map_cpu];priv=netdev_priv(node_p->dev);if(!priv){rm_err( +DATARMNET85c698ec34=(0xd26+209-0xdf6);if(hrtimer_active(&DATARMNETba5ea4329f( +node_p->map_cpu)))hrtimer_cancel(&DATARMNETba5ea4329f(node_p->map_cpu)); +hrtimer_start(&DATARMNETba5ea4329f(node_p->map_cpu),ns_to_ktime( +DATARMNET4ac8af832c*DATARMNET68fc0be252),HRTIMER_MODE_REL);}else if(node_p-> +DATARMNET85c698ec34){node_p->DATARMNET341ea38662->mux_id=(0xd2d+202-0xdf7);}else +{node_p->DATARMNETfbbec4c537=DATARMNETecc0627c70.map_mask;node_p-> +DATARMNETa59ce1fd2d=DATARMNETecc0627c70.map_len;}DATARMNET0349051465(node_p-> +map_cpu);DATARMNET350f55bfca(node_p);map_cpu=node_p->map_cpu;DATARMNETa4055affd5 +=&DATARMNET0997c5650d[map_cpu];priv=netdev_priv(node_p->dev);if(!priv){rm_err( "\x70\x72\x69\x76\x20\x66\x6f\x72\x20\x6e\x65\x74\x64\x65\x76\x20\x69\x73\x20\x6e\x75\x6c\x6c\x20\x66\x6f\x72\x20\x68\x61\x73\x68\x20\x30\x78\x25\x78" ,node_p->hash);DATARMNET68d84e7b98[DATARMNETf5157a9b85]++;}else{node_p-> DATARMNET341ea38662->mux_id=priv->mux_id;rm_err( diff --git a/shs/rmnet_shs_modules.c b/shs/rmnet_shs_modules.c index bf469113e3bf..2fc3f4d2c9f1 100644 --- a/shs/rmnet_shs_modules.c +++ b/shs/rmnet_shs_modules.c @@ -140,7 +140,7 @@ DATARMNETea75c7b6f6, DATARMNET7d18c0bcf8,uint,(0xdb7+6665-0x261c));MODULE_PARM_DESC( DATARMNET7d18c0bcf8, "\x4d\x61\x78\x69\x6d\x75\x6d\x20\x70\x6b\x74\x73\x20\x6d\x6f\x64\x75\x6c\x65\x20\x77\x69\x6c\x6c\x20\x70\x61\x72\x6b" -);unsigned int DATARMNET227d2ff866 __read_mostly=(0xec7+1131-0x1305); +);unsigned int DATARMNET227d2ff866 __read_mostly=(0xef7+1112-0x131d); module_param(DATARMNET227d2ff866,uint,(0xdb7+6665-0x261c));MODULE_PARM_DESC( DATARMNET227d2ff866, "\x4d\x61\x78\x20\x77\x61\x69\x74\x20\x6d\x6f\x64\x75\x6c\x65\x20\x77\x69\x6c\x6c\x20\x77\x61\x69\x74\x20\x64\x75\x72\x69\x6e\x67\x20\x6d\x6f\x76\x65\x20\x74\x6f\x20\x70\x65\x72\x66\x20\x63\x6f\x72\x65\x20\x69\x6e\x20\x6d\x73" diff --git a/shs/rmnet_shs_wq.c b/shs/rmnet_shs_wq.c index 5d7c86850b2b..53ea5f0b5d70 100644 --- a/shs/rmnet_shs_wq.c +++ b/shs/rmnet_shs_wq.c @@ -216,11 +216,13 @@ DATARMNETdbe9f3dbe3->DATARMNETadd51beef4=DATARMNETb3a4036d6d;DATARMNETdbe9f3dbe3 DATARMNETa7352711af=node_p->DATARMNETa8940e4a7b;DATARMNETdbe9f3dbe3->rx_bytes= node_p->DATARMNET2594c418db;DATARMNET96f21fddc1=(DATARMNETdbe9f3dbe3-> DATARMNETadd51beef4-DATARMNETdbe9f3dbe3->DATARMNET68714ac92c); -DATARMNETee9f72f13f=DATARMNETdbe9f3dbe3->DATARMNET4b4a76b094-DATARMNETdbe9f3dbe3 -->DATARMNET6edbc8b649;DATARMNET539a572f34=DATARMNETdbe9f3dbe3-> -DATARMNETa7352711af-DATARMNETdbe9f3dbe3->DATARMNET4025a4ec90;DATARMNET33b006454e -=DATARMNETdbe9f3dbe3->rx_bytes-DATARMNETdbe9f3dbe3->DATARMNETde6a309f37; -DATARMNETd2da2e8466( +DATARMNET96f21fddc1=(DATARMNET96f21fddc1>DATARMNETac617c8dce(DATARMNET1fc3ad67fd +)&&DATARMNET1fc3ad67fd>(0xd2d+202-0xdf7))?DATARMNET96f21fddc1: +DATARMNETac617c8dce((0xeb7+698-0x110d));DATARMNETee9f72f13f=DATARMNETdbe9f3dbe3 +->DATARMNET4b4a76b094-DATARMNETdbe9f3dbe3->DATARMNET6edbc8b649; +DATARMNET539a572f34=DATARMNETdbe9f3dbe3->DATARMNETa7352711af-DATARMNETdbe9f3dbe3 +->DATARMNET4025a4ec90;DATARMNET33b006454e=DATARMNETdbe9f3dbe3->rx_bytes- +DATARMNETdbe9f3dbe3->DATARMNETde6a309f37;DATARMNETd2da2e8466( "\x53\x48\x53\x5f\x53\x45\x47\x53\x3a\x20\x68\x61\x73\x68\x20\x30\x78\x25\x78\x20\x63\x6f\x61\x6c\x20\x73\x6b\x62\x20\x3d\x20\x25\x6c\x75\x20\x7c\x20\x6c\x61\x73\x74\x20\x63\x6f\x61\x6c\x20\x73\x6b\x62\x20\x3d\x20\x25\x6c\x75\x20\x7c\x20\x72\x78\x20\x73\x6b\x62\x20\x3d\x20\x25\x6c\x75\x20\x7c\x20\x6c\x61\x73\x74\x20\x72\x78\x20\x73\x6b\x62\x20\x25\x6c\x75" ,DATARMNETdbe9f3dbe3->hash,DATARMNETdbe9f3dbe3->DATARMNETa7352711af, DATARMNETdbe9f3dbe3->DATARMNET4025a4ec90,DATARMNETdbe9f3dbe3-> @@ -429,10 +431,10 @@ DATARMNET609049f7b7=U64_MAX;u32 DATARMNET84d36cfd28=U32_MAX;int DATARMNETbd864aa442=-(0xd26+209-0xdf6);int DATARMNETd415a9f9bd=- (0xd26+209-0xdf6);int DATARMNETb6773d2790=-(0xd26+209-0xdf6);int DATARMNET42a992465f=(0xd2d+202-0xdf7);u16 DATARMNETdebcca6b26;for( -DATARMNET42a992465f=(0xd2d+202-0xdf7);DATARMNET42a992465f +DATARMNET42a992465f=DATARMNETc6782fed88-(0xd26+209-0xdf6);DATARMNET42a992465f>= +(0xd2d+202-0xdf7);DATARMNET42a992465f--){DATARMNETdebcca6b26=(((0xd26+209-0xdf6) +< DATARMNET73464778dc[DATARMNET42a992465f];trace_rmnet_shs_wq_low( DATARMNET39a68a0eba,DATARMNET55cd50e666,DATARMNET42a992465f,DATARMNET65385af8a0 ->DATARMNET324c1a8f98,DATARMNET609049f7b7,(0xd2d+202-0xdf7),NULL,NULL);if( @@ -620,41 +622,42 @@ DATARMNETc35b40fa7b=ep->DATARMNET1a1d89d417;memset(ep->DATARMNET5af04d0405,- (0xd26+209-0xdf6),sizeof(*ep->DATARMNET5af04d0405)*DATARMNETc6782fed88);memset( ep->DATARMNET7167e10d99,-(0xd26+209-0xdf6),sizeof(*ep->DATARMNET7167e10d99)* DATARMNETc6782fed88);do{DATARMNET9025861a27=DATARMNET362c14e98b( -DATARMNETc312f6517d);if(DATARMNET9025861a27>=(0xd2d+202-0xdf7)){ep-> -DATARMNET5af04d0405[DATARMNETffd83bb362]=DATARMNET9025861a27;DATARMNETc312f6517d -=DATARMNETc312f6517d&~((0xd26+209-0xdf6)< -DATARMNET5af04d0405[(0xd2d+202-0xdf7)],ep->DATARMNET5af04d0405[(0xd26+209-0xdf6) -],ep->DATARMNET5af04d0405[(0xd1f+216-0xdf5)],ep->DATARMNETd7a83774f8,ep,NULL);do -{DATARMNETef87f9e251=DATARMNET362c14e98b(DATARMNETc35b40fa7b);if( -DATARMNETef87f9e251>=(0xd2d+202-0xdf7)){ep->DATARMNET7167e10d99[ -DATARMNET24f6ce5dc0]=DATARMNETef87f9e251;DATARMNETc35b40fa7b=DATARMNETc35b40fa7b -&~((0xd26+209-0xdf6)<DATARMNETd7a83774f8= -DATARMNETffd83bb362;ep->DATARMNET847276e5af=DATARMNET24f6ce5dc0;ep-> -DATARMNET6bda8fe27e=(0xd2d+202-0xdf7);ep->DATARMNET121a654efd=(0xd2d+202-0xdf7); -trace_rmnet_shs_wq_low(DATARMNET39a68a0eba,DATARMNETffec99a10f,ep-> -DATARMNET7167e10d99[(0xd2d+202-0xdf7)],ep->DATARMNET7167e10d99[(0xd26+209-0xdf6) -],ep->DATARMNET7167e10d99[(0xd1f+216-0xdf5)],ep->DATARMNET847276e5af,ep,NULL); -return;}void DATARMNET0a6fb12cb2(void){struct DATARMNET9b44b71ee9*ep=NULL; -list_for_each_entry(ep,&DATARMNET30a3e83974,DATARMNET0763436b8d){if(!ep-> -DATARMNET4a4e6f66b5)continue;DATARMNETe00453a3e4(ep);}}static int -DATARMNET1154e4fac6(time_t time,int DATARMNET64bb8a8f57){int ret=false;if(time> -DATARMNETa804c0b904)ret=true;else if(DATARMNET64bb8a8f57>DATARMNET1c2d76f636&& -time>DATARMNET2922c89d50)ret=true;else if(DATARMNET64bb8a8f57> -DATARMNET7a815512d3&&time>DATARMNET270b564b55)ret=true;return ret;}void -DATARMNET39391a8bc5(u8 DATARMNETcd94e0d3c7){struct DATARMNET63d7680df2*node_p= -NULL;time_t DATARMNETf48008e7b6;unsigned long ht_flags;struct -DATARMNET6c78e47d24*DATARMNETd2a694d52a=NULL;struct list_head* +DATARMNETc312f6517d&~DATARMNETecc0627c70.DATARMNETba3f7a11ef);if( +DATARMNET9025861a27>=(0xd2d+202-0xdf7)){ep->DATARMNET5af04d0405[ +DATARMNETffd83bb362]=DATARMNET9025861a27;DATARMNETc312f6517d=DATARMNETc312f6517d +&~((0xd26+209-0xdf6)<DATARMNET5af04d0405[ +(0xd2d+202-0xdf7)],ep->DATARMNET5af04d0405[(0xd26+209-0xdf6)],ep-> +DATARMNET5af04d0405[(0xd1f+216-0xdf5)],ep->DATARMNETd7a83774f8,ep,NULL);do{ +DATARMNETef87f9e251=DATARMNET362c14e98b(DATARMNETc35b40fa7b&~DATARMNETecc0627c70 +.DATARMNETba3f7a11ef);if(DATARMNETef87f9e251>=(0xd2d+202-0xdf7)){ep-> +DATARMNET7167e10d99[DATARMNET24f6ce5dc0]=DATARMNETef87f9e251;DATARMNETc35b40fa7b +=DATARMNETc35b40fa7b&~((0xd26+209-0xdf6)<DATARMNETd7a83774f8=DATARMNETffd83bb362;ep->DATARMNET847276e5af= +DATARMNET24f6ce5dc0;ep->DATARMNET6bda8fe27e=(0xd2d+202-0xdf7);ep-> +DATARMNET121a654efd=(0xd2d+202-0xdf7);trace_rmnet_shs_wq_low(DATARMNET39a68a0eba +,DATARMNETffec99a10f,ep->DATARMNET7167e10d99[(0xd2d+202-0xdf7)],ep-> +DATARMNET7167e10d99[(0xd26+209-0xdf6)],ep->DATARMNET7167e10d99[(0xd1f+216-0xdf5) +],ep->DATARMNET847276e5af,ep,NULL);return;}void DATARMNET0a6fb12cb2(void){struct + DATARMNET9b44b71ee9*ep=NULL;list_for_each_entry(ep,&DATARMNET30a3e83974, +DATARMNET0763436b8d){if(!ep->DATARMNET4a4e6f66b5)continue;DATARMNETe00453a3e4(ep +);}}static int DATARMNET1154e4fac6(time_t time,int DATARMNET64bb8a8f57){int ret= +false;if(time>DATARMNETa804c0b904)ret=true;else if(DATARMNET64bb8a8f57> +DATARMNET1c2d76f636&&time>DATARMNET2922c89d50)ret=true;else if( +DATARMNET64bb8a8f57>DATARMNET7a815512d3&&time>DATARMNET270b564b55)ret=true; +return ret;}void DATARMNET39391a8bc5(u8 DATARMNETcd94e0d3c7){struct +DATARMNET63d7680df2*node_p=NULL;time_t DATARMNETf48008e7b6;unsigned long +ht_flags;struct DATARMNET6c78e47d24*DATARMNETd2a694d52a=NULL;struct list_head* DATARMNET7b34b7b5be=NULL,*next=NULL;list_for_each_safe(DATARMNET7b34b7b5be,next, &DATARMNET9825511866){DATARMNETd2a694d52a=list_entry(DATARMNET7b34b7b5be,struct DATARMNET6c78e47d24,DATARMNET6de26f0feb);if(DATARMNETd2a694d52a-> DATARMNET63b1a086d5==NULL)continue;node_p=DATARMNETd2a694d52a-> DATARMNET63b1a086d5;DATARMNETf48008e7b6=DATARMNET36cfa76181(DATARMNETd2a694d52a ->DATARMNET42ceaf5cc2);if(DATARMNET1154e4fac6(DATARMNETf48008e7b6, -DATARMNETecc0627c70.DATARMNET64bb8a8f57)||DATARMNETcd94e0d3c7){ -trace_rmnet_shs_wq_low(DATARMNET394831f22a,DATARMNET5e2c5adaae,node_p->hash, +DATARMNETecc0627c70.DATARMNET64bb8a8f57)||DATARMNETcd94e0d3c7){local_bh_disable( +);trace_rmnet_shs_wq_low(DATARMNET394831f22a,DATARMNET5e2c5adaae,node_p->hash, DATARMNETf48008e7b6,(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),node_p, DATARMNETd2a694d52a);spin_lock_irqsave(&DATARMNET3764d083f0,ht_flags); DATARMNET23c7ddd780(node_p,DATARMNET5b5927fd7e);DATARMNET3669e7b703( @@ -668,10 +671,10 @@ DATARMNET253a9fc708);DATARMNETb4a6870b3b(DATARMNETd2a694d52a);if( DATARMNETd2a694d52a->DATARMNET0bfc2b2c85==(0xd2d+202-0xdf7)||DATARMNETcd94e0d3c7 ){DATARMNET2fe780019f(DATARMNETd2a694d52a);kfree(DATARMNETd2a694d52a);}else{ DATARMNETa6e92c3315(DATARMNETd2a694d52a);}DATARMNETecc0627c70. -DATARMNET64bb8a8f57--;spin_unlock_irqrestore(&DATARMNET3764d083f0,ht_flags);}}} -void DATARMNETe69c918dc8(struct DATARMNET9b44b71ee9*ep){struct rps_map*map;u8 -len=(0xd2d+202-0xdf7);if(!ep||!ep->ep){DATARMNET68d84e7b98[DATARMNETb8fe2c0e64] -++;return;}rcu_read_lock();if(!ep->ep){pr_info( +DATARMNET64bb8a8f57--;spin_unlock_irqrestore(&DATARMNET3764d083f0,ht_flags); +local_bh_enable();}}}void DATARMNETe69c918dc8(struct DATARMNET9b44b71ee9*ep){ +struct rps_map*map;u8 len=(0xd2d+202-0xdf7);if(!ep||!ep->ep){DATARMNET68d84e7b98 +[DATARMNETb8fe2c0e64]++;return;}rcu_read_lock();if(!ep->ep){pr_info( "\x20\x72\x6d\x6e\x65\x74\x5f\x73\x68\x73\x20\x69\x6e\x76\x61\x6c\x69\x64\x20\x73\x74\x61\x74\x65\x20\x25\x70" ,ep->ep);DATARMNET68d84e7b98[DATARMNETb8fe2c0e64]++;return;}map=rcu_dereference( ep->ep->_rx->rps_map);ep->DATARMNET9fb369ce5f=(0xd2d+202-0xdf7);if(map!=NULL){ @@ -773,11 +776,11 @@ DATARMNETab5c1e9ad5);DATARMNET7bea4a06a6->DATARMNET42a992465f= DATARMNET42a992465f;}}void DATARMNET4063c95208(void){int cpu;if( DATARMNETf141197982&&DATARMNET9dc7755be5)cancel_delayed_work_sync(& DATARMNET9dc7755be5->DATARMNET1150269da2);for(cpu=(0xd2d+202-0xdf7);cpu< -DATARMNETc6782fed88;cpu++)DATARMNET2d482e7d9f[cpu]=(0xd2d+202-0xdf7);if(( -(0xd26+209-0xdf6)<DATARMNET1150269da2,(0xd2d+202-0xdf7));}void DATARMNET3ae0d614d6(void){if(DATARMNETf141197982)return;DATARMNETf5f83b943f(); diff --git a/shs/rmnet_shs_wq.h b/shs/rmnet_shs_wq.h index 5f890718c310..cef41b25a73e 100644 --- a/shs/rmnet_shs_wq.h +++ b/shs/rmnet_shs_wq.h @@ -32,6 +32,8 @@ 1000000000) #define DATARMNET64577537b7(DATARMNET5f1b691e95) ((DATARMNET5f1b691e95)*\ (0xd35+210-0xdff)) +#define DATARMNETac617c8dce(DATARMNET5f1b691e95) ((DATARMNET5f1b691e95)*10000000\ + ) #define DATARMNET138a989ecb (0xeb7+1158-0x132d) #define DATARMNETe4c625a3a3 (0xeb7+698-0x110d) extern struct list_head DATARMNET30a3e83974;struct DATARMNET9b44b71ee9{u64 From 4aed349fa07f9fd16a1cd279d5dae6594bd537ab Mon Sep 17 00:00:00 2001 From: Subash Abhinov Kasiviswanathan Date: Thu, 18 Mar 2021 16:06:12 -0700 Subject: [PATCH 30/36] rmnet_shs: I4cad394feff1935c09c3d1f0f0f4be5f0583d4ad Change-Id: I4cad394feff1935c09c3d1f0f0f4be5f0583d4ad Acked-by: Raul Martinez Signed-off-by: Subash Abhinov Kasiviswanathan --- shs/rmnet_shs_config.c | 2 ++ shs/rmnet_shs_wq.c | 71 +++++++++++++++++++++++------------------- shs/rmnet_shs_wq.h | 2 +- 3 files changed, 42 insertions(+), 33 deletions(-) diff --git a/shs/rmnet_shs_config.c b/shs/rmnet_shs_config.c index 918b02404768..742678008cca 100644 --- a/shs/rmnet_shs_config.c +++ b/shs/rmnet_shs_config.c @@ -51,6 +51,8 @@ DATARMNET5fc54f7a13 __read_mostly={.notifier_call=DATARMNETe9173bbe0e,.priority= "\x49\x37\x32\x33\x65\x63\x63\x32\x62\x37\x36\x30\x31\x38\x32\x34\x64\x66\x32\x61\x66\x32\x33\x66\x62\x35\x35\x39\x64\x38\x64\x66\x35\x33\x63\x66\x65\x32\x63\x63\x31" , "\x49\x39\x39\x63\x36\x62\x34\x66\x61\x37\x38\x37\x64\x64\x34\x66\x64\x36\x33\x62\x38\x31\x64\x66\x63\x39\x32\x32\x39\x36\x65\x64\x33\x65\x63\x31\x64\x38\x37\x38\x35" +, +"\x49\x34\x63\x61\x64\x33\x39\x34\x66\x65\x66\x66\x31\x39\x33\x35\x63\x30\x39\x63\x33\x64\x31\x66\x30\x66\x30\x66\x34\x62\x65\x35\x66\x30\x35\x38\x33\x64\x34\x61\x64" };static int DATARMNET2cb9ae589c;int __init DATARMNET163e93649e(void){pr_info( "\x25\x73\x28\x29\x3a\x20\x53\x74\x61\x72\x74\x69\x6e\x67\x20\x72\x6d\x6e\x65\x74\x20\x53\x48\x53\x20\x6d\x6f\x64\x75\x6c\x65\x20\x25\x73\x20" "\n" ,__func__,DATARMNETbc8418e817[(0xd2d+202-0xdf7)]);trace_rmnet_shs_high( diff --git a/shs/rmnet_shs_wq.c b/shs/rmnet_shs_wq.c index 53ea5f0b5d70..ed7f137d5b8b 100644 --- a/shs/rmnet_shs_wq.c +++ b/shs/rmnet_shs_wq.c @@ -262,18 +262,23 @@ DATARMNET4947607c52;DATARMNET3c48cbf7e4->DATARMNETbfe25a2160=DATARMNET3c48cbf7e4 DATARMNET68d84e7b98[DATARMNET42b73d0f3f]++;return;}DATARMNET3c48cbf7e4-> DATARMNET903a2cea81=port->stats.dl_hdr_total_pkts;DATARMNET3c48cbf7e4-> DATARMNET4947607c52=port->stats.dl_hdr_total_bytes;DATARMNET96f21fddc1= -DATARMNETb3a4036d6d-DATARMNET3c48cbf7e4->DATARMNET68714ac92c;DATARMNETe3ed6089ca -=DATARMNET3c48cbf7e4->DATARMNET903a2cea81-DATARMNET3c48cbf7e4-> -DATARMNETbfe25a2160;byte_diff=DATARMNET3c48cbf7e4->DATARMNET4947607c52- -DATARMNET3c48cbf7e4->DATARMNET601156672d;DATARMNET3c48cbf7e4-> -DATARMNET3067b3dafd=DATARMNET855e9d7062(DATARMNETe3ed6089ca)/DATARMNET96f21fddc1 -;DATARMNET3c48cbf7e4->DATARMNET47334112aa=DATARMNET855e9d7062(byte_diff)/ -DATARMNET96f21fddc1;DATARMNET3c48cbf7e4->DATARMNET47334112aa=DATARMNET64577537b7 -(DATARMNET3c48cbf7e4->DATARMNET47334112aa);}static void DATARMNET0ce3f33785(void -){struct DATARMNETc8fdbf9c85*DATARMNET3c48cbf7e4=&DATARMNET6cdd58e74c;u64 -DATARMNETe3ed6089ca,byte_diff,DATARMNETccb5dc8a5c,DATARMNET4df302dbd6;time_t -DATARMNET96f21fddc1;DATARMNET96f21fddc1=DATARMNETb3a4036d6d-DATARMNET3c48cbf7e4 -->DATARMNET68714ac92c;DATARMNETe3ed6089ca=(DATARMNET3c48cbf7e4-> +DATARMNETb3a4036d6d-DATARMNET3c48cbf7e4->DATARMNET68714ac92c;DATARMNET96f21fddc1 +=(DATARMNET96f21fddc1>DATARMNETac617c8dce(DATARMNET1fc3ad67fd)&& +DATARMNET1fc3ad67fd>(0xd2d+202-0xdf7))?DATARMNET96f21fddc1:DATARMNETac617c8dce( +(0xeb7+698-0x110d));DATARMNETe3ed6089ca=DATARMNET3c48cbf7e4->DATARMNET903a2cea81 +-DATARMNET3c48cbf7e4->DATARMNETbfe25a2160;byte_diff=DATARMNET3c48cbf7e4-> +DATARMNET4947607c52-DATARMNET3c48cbf7e4->DATARMNET601156672d;DATARMNET3c48cbf7e4 +->DATARMNET3067b3dafd=DATARMNET855e9d7062(DATARMNETe3ed6089ca)/ +DATARMNET96f21fddc1;DATARMNET3c48cbf7e4->DATARMNET47334112aa=DATARMNET855e9d7062 +(byte_diff)/DATARMNET96f21fddc1;DATARMNET3c48cbf7e4->DATARMNET47334112aa= +DATARMNET64577537b7(DATARMNET3c48cbf7e4->DATARMNET47334112aa);}static void +DATARMNET0ce3f33785(void){struct DATARMNETc8fdbf9c85*DATARMNET3c48cbf7e4=& +DATARMNET6cdd58e74c;u64 DATARMNETe3ed6089ca,byte_diff,DATARMNETccb5dc8a5c, +DATARMNET4df302dbd6;time_t DATARMNET96f21fddc1;DATARMNET96f21fddc1= +DATARMNETb3a4036d6d-DATARMNET3c48cbf7e4->DATARMNET68714ac92c;DATARMNET96f21fddc1 +=(DATARMNET96f21fddc1>DATARMNETac617c8dce(DATARMNET1fc3ad67fd)&& +DATARMNET1fc3ad67fd>(0xd2d+202-0xdf7))?DATARMNET96f21fddc1:DATARMNETac617c8dce( +(0xeb7+698-0x110d));DATARMNETe3ed6089ca=(DATARMNET3c48cbf7e4-> DATARMNET7fc41d655d-DATARMNET3c48cbf7e4->DATARMNET9853a006ae);byte_diff= DATARMNET3c48cbf7e4->rx_bytes-DATARMNET3c48cbf7e4->DATARMNETde6a309f37; DATARMNETccb5dc8a5c=DATARMNET855e9d7062(DATARMNETe3ed6089ca)/DATARMNET96f21fddc1 @@ -314,26 +319,28 @@ DATARMNETc6439e3d71(&DATARMNET6cdd58e74c,DATARMNETcf7ef40ff9,& DATARMNETe46ae760db);}DATARMNET33f47350f0(cpu,DATARMNETcf7ef40ff9);return;} DATARMNET96f21fddc1=DATARMNETb3a4036d6d-DATARMNETcf7ef40ff9->DATARMNET68714ac92c ;DATARMNETedf00aed6f=DATARMNETcf7ef40ff9->rx_bytes-DATARMNETcf7ef40ff9-> -DATARMNETde6a309f37;DATARMNET8233cb4988=DATARMNETcf7ef40ff9->DATARMNETbb80fccd97 -;DATARMNET27c3925eff=DATARMNETcf7ef40ff9->DATARMNET324c1a8f98; -DATARMNETcf7ef40ff9->DATARMNET324c1a8f98=DATARMNET855e9d7062(DATARMNET55fffa9aa9 -)/DATARMNET96f21fddc1;DATARMNETcf7ef40ff9->DATARMNETbb80fccd97= -DATARMNET855e9d7062(DATARMNETedf00aed6f)/DATARMNET96f21fddc1;DATARMNETcf7ef40ff9 -->DATARMNETbb80fccd97=DATARMNET64577537b7(DATARMNETcf7ef40ff9-> -DATARMNETbb80fccd97);DATARMNETcf7ef40ff9->DATARMNET253a9fc708= -DATARMNET183789850d(cpu);DATARMNETcf7ef40ff9->DATARMNET8233cb4988= -DATARMNET8233cb4988;DATARMNETcf7ef40ff9->DATARMNET27c3925eff=DATARMNET27c3925eff -;DATARMNETcf7ef40ff9->DATARMNET68714ac92c=DATARMNETb3a4036d6d; -DATARMNETcf7ef40ff9->DATARMNET9853a006ae=DATARMNETcf7ef40ff9-> -DATARMNET7fc41d655d;DATARMNETcf7ef40ff9->DATARMNETde6a309f37=DATARMNETcf7ef40ff9 -->rx_bytes;DATARMNETcf7ef40ff9->DATARMNETc0b20e240a=DATARMNETcf7ef40ff9-> -DATARMNETbb80fccd97;if(DATARMNETc252c204a8){DATARMNETc6439e3d71(& -DATARMNET6cdd58e74c,DATARMNETcf7ef40ff9,&DATARMNETe46ae760db);} -trace_rmnet_shs_wq_high(DATARMNET39a68a0eba,DATARMNET95d1ddcb1a,cpu, -DATARMNETcf7ef40ff9->flows,DATARMNETcf7ef40ff9->DATARMNET324c1a8f98, -DATARMNETcf7ef40ff9->DATARMNETbb80fccd97,NULL,NULL);DATARMNET33f47350f0(cpu, -DATARMNETcf7ef40ff9);}static void DATARMNET617b443145(void){u16 cpu; -trace_rmnet_shs_wq_high(DATARMNET39a68a0eba,DATARMNET6bde6a5171, +DATARMNETde6a309f37;DATARMNET96f21fddc1=(DATARMNET96f21fddc1>DATARMNETac617c8dce +(DATARMNET1fc3ad67fd)&&DATARMNET1fc3ad67fd>(0xd2d+202-0xdf7))? +DATARMNET96f21fddc1:DATARMNETac617c8dce((0xeb7+698-0x110d));DATARMNET8233cb4988= +DATARMNETcf7ef40ff9->DATARMNETbb80fccd97;DATARMNET27c3925eff=DATARMNETcf7ef40ff9 +->DATARMNET324c1a8f98;DATARMNETcf7ef40ff9->DATARMNET324c1a8f98= +DATARMNET855e9d7062(DATARMNET55fffa9aa9)/DATARMNET96f21fddc1;DATARMNETcf7ef40ff9 +->DATARMNETbb80fccd97=DATARMNET855e9d7062(DATARMNETedf00aed6f)/ +DATARMNET96f21fddc1;DATARMNETcf7ef40ff9->DATARMNETbb80fccd97=DATARMNET64577537b7 +(DATARMNETcf7ef40ff9->DATARMNETbb80fccd97);DATARMNETcf7ef40ff9-> +DATARMNET253a9fc708=DATARMNET183789850d(cpu);DATARMNETcf7ef40ff9-> +DATARMNET8233cb4988=DATARMNET8233cb4988;DATARMNETcf7ef40ff9->DATARMNET27c3925eff +=DATARMNET27c3925eff;DATARMNETcf7ef40ff9->DATARMNET68714ac92c= +DATARMNETb3a4036d6d;DATARMNETcf7ef40ff9->DATARMNET9853a006ae=DATARMNETcf7ef40ff9 +->DATARMNET7fc41d655d;DATARMNETcf7ef40ff9->DATARMNETde6a309f37= +DATARMNETcf7ef40ff9->rx_bytes;DATARMNETcf7ef40ff9->DATARMNETc0b20e240a= +DATARMNETcf7ef40ff9->DATARMNETbb80fccd97;if(DATARMNETc252c204a8){ +DATARMNETc6439e3d71(&DATARMNET6cdd58e74c,DATARMNETcf7ef40ff9,& +DATARMNETe46ae760db);}trace_rmnet_shs_wq_high(DATARMNET39a68a0eba, +DATARMNET95d1ddcb1a,cpu,DATARMNETcf7ef40ff9->flows,DATARMNETcf7ef40ff9-> +DATARMNET324c1a8f98,DATARMNETcf7ef40ff9->DATARMNETbb80fccd97,NULL,NULL); +DATARMNET33f47350f0(cpu,DATARMNETcf7ef40ff9);}static void DATARMNET617b443145( +void){u16 cpu;trace_rmnet_shs_wq_high(DATARMNET39a68a0eba,DATARMNET6bde6a5171, (0x16e8+787-0xc0c),(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),NULL ,NULL);for(cpu=(0xd2d+202-0xdf7);cpu Date: Fri, 26 Mar 2021 17:55:05 -0700 Subject: [PATCH 31/36] rmnet_shs: I7ff4ff16bb6619c6e69270727c14f016ed1f75a2 Change-Id: I7ff4ff16bb6619c6e69270727c14f016ed1f75a2 Acked-by: Raul Martinez Signed-off-by: Subash Abhinov Kasiviswanathan --- shs/rmnet_shs_config.c | 2 ++ shs/rmnet_shs_main.c | 39 +++++++++++++++++++++++---------------- 2 files changed, 25 insertions(+), 16 deletions(-) diff --git a/shs/rmnet_shs_config.c b/shs/rmnet_shs_config.c index 742678008cca..c80b78467277 100644 --- a/shs/rmnet_shs_config.c +++ b/shs/rmnet_shs_config.c @@ -53,6 +53,8 @@ DATARMNET5fc54f7a13 __read_mostly={.notifier_call=DATARMNETe9173bbe0e,.priority= "\x49\x39\x39\x63\x36\x62\x34\x66\x61\x37\x38\x37\x64\x64\x34\x66\x64\x36\x33\x62\x38\x31\x64\x66\x63\x39\x32\x32\x39\x36\x65\x64\x33\x65\x63\x31\x64\x38\x37\x38\x35" , "\x49\x34\x63\x61\x64\x33\x39\x34\x66\x65\x66\x66\x31\x39\x33\x35\x63\x30\x39\x63\x33\x64\x31\x66\x30\x66\x30\x66\x34\x62\x65\x35\x66\x30\x35\x38\x33\x64\x34\x61\x64" +, +"\x49\x37\x66\x66\x34\x66\x66\x31\x36\x62\x62\x36\x36\x31\x39\x63\x36\x65\x36\x39\x32\x37\x30\x37\x32\x37\x63\x31\x34\x66\x30\x31\x36\x65\x64\x31\x66\x37\x35\x61\x32" };static int DATARMNET2cb9ae589c;int __init DATARMNET163e93649e(void){pr_info( "\x25\x73\x28\x29\x3a\x20\x53\x74\x61\x72\x74\x69\x6e\x67\x20\x72\x6d\x6e\x65\x74\x20\x53\x48\x53\x20\x6d\x6f\x64\x75\x6c\x65\x20\x25\x73\x20" "\n" ,__func__,DATARMNETbc8418e817[(0xd2d+202-0xdf7)]);trace_rmnet_shs_high( diff --git a/shs/rmnet_shs_main.c b/shs/rmnet_shs_main.c index 99b0bc38abd7..346d4f84bc88 100644 --- a/shs/rmnet_shs_main.c +++ b/shs/rmnet_shs_main.c @@ -192,23 +192,30 @@ DATARMNETf54fdb137b=DATARMNET98b2a0ce62(dev);DATARMNET52de1f3dc0( DATARMNET720469c0a9,DATARMNET7e63a08ad4,DATARMNETf54fdb137b,DATARMNETab155dfd5d, (0x16e8+787-0xc0c),(0x16e8+787-0xc0c),NULL,NULL);return DATARMNETf54fdb137b;}int DATARMNET6af33ebb5b(struct DATARMNET63d7680df2*DATARMNET63b1a086d5){int cpu= -DATARMNETb91aee91fd;u8 DATARMNETd4a0b11b47;if(DATARMNET63b1a086d5-> -DATARMNET85c698ec34)return DATARMNETecc0627c70.DATARMNET5c24e1df05;else if( -DATARMNET0997c5650d[DATARMNET63b1a086d5->map_cpu].DATARMNETef866573e0&& -DATARMNET362b15f941(DATARMNET63b1a086d5->map_cpu)){cpu=DATARMNET762cfa52fe( -DATARMNETbc3c416b77&~DATARMNETecc0627c70.DATARMNETba3f7a11ef&DATARMNET63b1a086d5 -->DATARMNETfbbec4c537);if(cpu<(0xd2d+202-0xdf7)&&DATARMNET63b1a086d5-> -DATARMNET341ea38662!=NULL)cpu=DATARMNET63b1a086d5->DATARMNET341ea38662-> -DATARMNET6e1a4eaf09;}else if(DATARMNET63b1a086d5->DATARMNET341ea38662!=NULL){cpu -=DATARMNET63b1a086d5->DATARMNET341ea38662->DATARMNET6e1a4eaf09;if(( -(0xd26+209-0xdf6)<map_cpu)&DATARMNETecc0627c70. -DATARMNETba3f7a11ef||((0xd26+209-0xdf6)<DATARMNET85c698ec34)return DATARMNETecc0627c70. +DATARMNET5c24e1df05;else if(DATARMNET0997c5650d[DATARMNET63b1a086d5->map_cpu]. +DATARMNETef866573e0&&DATARMNET362b15f941(DATARMNET63b1a086d5->map_cpu)){cpu= +DATARMNET762cfa52fe(DATARMNETbc3c416b77&~DATARMNETecc0627c70.DATARMNETba3f7a11ef +&DATARMNET63b1a086d5->DATARMNETfbbec4c537);if(cpu<(0xd2d+202-0xdf7)&& +DATARMNET63b1a086d5->DATARMNET341ea38662!=NULL)cpu=DATARMNET63b1a086d5-> +DATARMNET341ea38662->DATARMNET6e1a4eaf09;}else if(DATARMNET63b1a086d5-> +DATARMNET341ea38662!=NULL){cpu=DATARMNET63b1a086d5->DATARMNET341ea38662-> +DATARMNET6e1a4eaf09;if(((0xd26+209-0xdf6)<map_cpu)& +DATARMNETecc0627c70.DATARMNETba3f7a11ef){DATARMNETd4a0b11b47=( +DATARMNETbc3c416b77&((0xd26+209-0xdf6)<DATARMNETfbbec4c537 +);DATARMNETb7ddf3c5dd[DATARMNET7f401828b3]++;}else if(((0xd26+209-0xdf6)<map_cpu))?DATARMNETbc3c416b77:DATARMNET9273f84bf1;if( +DATARMNETd4a0b11b47!=DATARMNET7dc3d97229)cpu=DATARMNET762cfa52fe( DATARMNETd4a0b11b47&~DATARMNETecc0627c70.DATARMNETba3f7a11ef&DATARMNET63b1a086d5 -->DATARMNETfbbec4c537);DATARMNETb7ddf3c5dd[DATARMNET7f401828b3]++;}}return cpu;} -int DATARMNETb6bff4a724(struct DATARMNET63d7680df2*DATARMNET63b1a086d5){int cpu, -idx=DATARMNETb91aee91fd;cpu=DATARMNET6af33ebb5b(DATARMNET63b1a086d5);idx= +->DATARMNETfbbec4c537);else cpu=DATARMNET63b1a086d5->map_cpu;}}return cpu;}int +DATARMNETb6bff4a724(struct DATARMNET63d7680df2*DATARMNET63b1a086d5){int cpu,idx= +DATARMNETb91aee91fd;cpu=DATARMNET6af33ebb5b(DATARMNET63b1a086d5);idx= DATARMNET04e8d1b862(cpu,DATARMNET63b1a086d5->DATARMNETfbbec4c537);if(unlikely( idx<(0xd2d+202-0xdf7)))idx=DATARMNET04e8d1b862(DATARMNET63b1a086d5->map_cpu, DATARMNET63b1a086d5->DATARMNETfbbec4c537);DATARMNETda96251102( From ef948ed602b2156cb528ea6dd4ed38a5127a230d Mon Sep 17 00:00:00 2001 From: Subash Abhinov Kasiviswanathan Date: Fri, 26 Mar 2021 18:08:03 -0700 Subject: [PATCH 32/36] rmnet_shs: Ic0916b59765702522c6fd36819dc4817fff37209 Change-Id: Ic0916b59765702522c6fd36819dc4817fff37209 Acked-by: Raul Martinez Signed-off-by: Subash Abhinov Kasiviswanathan --- shs/rmnet_shs_common.c | 12 +++++++----- shs/rmnet_shs_config.c | 31 ++++++++++++++++--------------- shs/rmnet_shs_main.c | 23 ++++++++++++++--------- shs/rmnet_shs_wq_genl.c | 4 ++-- 4 files changed, 39 insertions(+), 31 deletions(-) diff --git a/shs/rmnet_shs_common.c b/shs/rmnet_shs_common.c index f3ed51d62d18..dc78c11eaaf9 100644 --- a/shs/rmnet_shs_common.c +++ b/shs/rmnet_shs_common.c @@ -61,11 +61,13 @@ DATARMNET30a3e83974,DATARMNET0763436b8d){if(!ep->DATARMNET4a4e6f66b5)continue;if (0xd26+209-0xdf6);}}if(!DATARMNET998de79791){DATARMNETecc0627c70.map_mask= (0xd2d+202-0xdf7);DATARMNETecc0627c70.map_len=(0xd2d+202-0xdf7);return;}else if( DATARMNETecc0627c70.map_mask!=mask){DATARMNETecc0627c70.map_mask=mask; -DATARMNETecc0627c70.map_len=DATARMNET310c3eb16e(mask);}}void DATARMNETde8ee16f92 -(struct DATARMNET63d7680df2*DATARMNET63b1a086d5){DATARMNETda96251102( -DATARMNETd5eb6398da,DATARMNETe9a79499ac,(0x16e8+787-0xc0c),(0x16e8+787-0xc0c), -(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),NULL,NULL);list_del_init(& -DATARMNET63b1a086d5->DATARMNET04c88b8191);DATARMNET349c3a0cab( +DATARMNETecc0627c70.map_len=DATARMNET310c3eb16e(mask);pr_info( +"\x72\x6d\x6e\x65\x74\x5f\x73\x68\x73\x3a\x20\x20\x6d\x61\x73\x6b\x3a\x20\x30\x78\x25\x78\x20\x6d\x61\x70\x6c\x65\x6e\x3a\x20\x25\x64" +,DATARMNETecc0627c70.map_mask,DATARMNETecc0627c70.map_len);}}void +DATARMNETde8ee16f92(struct DATARMNET63d7680df2*DATARMNET63b1a086d5){ +DATARMNETda96251102(DATARMNETd5eb6398da,DATARMNETe9a79499ac,(0x16e8+787-0xc0c), +(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),NULL,NULL); +list_del_init(&DATARMNET63b1a086d5->DATARMNET04c88b8191);DATARMNET349c3a0cab( DATARMNET63b1a086d5->map_cpu,DATARMNETbfe901fc62);}void DATARMNET3e37ad2816( struct DATARMNET63d7680df2*DATARMNET63b1a086d5,struct list_head* DATARMNET4d030eb9b5){DATARMNETda96251102(DATARMNETd5eb6398da,DATARMNET16a68afc17 diff --git a/shs/rmnet_shs_config.c b/shs/rmnet_shs_config.c index c80b78467277..81ae3430f830 100644 --- a/shs/rmnet_shs_config.c +++ b/shs/rmnet_shs_config.c @@ -55,6 +55,8 @@ DATARMNET5fc54f7a13 __read_mostly={.notifier_call=DATARMNETe9173bbe0e,.priority= "\x49\x34\x63\x61\x64\x33\x39\x34\x66\x65\x66\x66\x31\x39\x33\x35\x63\x30\x39\x63\x33\x64\x31\x66\x30\x66\x30\x66\x34\x62\x65\x35\x66\x30\x35\x38\x33\x64\x34\x61\x64" , "\x49\x37\x66\x66\x34\x66\x66\x31\x36\x62\x62\x36\x36\x31\x39\x63\x36\x65\x36\x39\x32\x37\x30\x37\x32\x37\x63\x31\x34\x66\x30\x31\x36\x65\x64\x31\x66\x37\x35\x61\x32" +, +"\x49\x63\x30\x39\x31\x36\x62\x35\x39\x37\x36\x35\x37\x30\x32\x35\x32\x32\x63\x36\x66\x64\x33\x36\x38\x31\x39\x64\x63\x34\x38\x31\x37\x66\x66\x66\x33\x37\x32\x30\x39" };static int DATARMNET2cb9ae589c;int __init DATARMNET163e93649e(void){pr_info( "\x25\x73\x28\x29\x3a\x20\x53\x74\x61\x72\x74\x69\x6e\x67\x20\x72\x6d\x6e\x65\x74\x20\x53\x48\x53\x20\x6d\x6f\x64\x75\x6c\x65\x20\x25\x73\x20" "\n" ,__func__,DATARMNETbc8418e817[(0xd2d+202-0xdf7)]);trace_rmnet_shs_high( @@ -74,11 +76,10 @@ net_device*dev=netdev_notifier_info_to_dev(data);struct rmnet_priv*priv;struct rmnet_port*port;int ret=(0xd2d+202-0xdf7);if(!dev){DATARMNET68d84e7b98[ DATARMNETf5157a9b85]++;return NOTIFY_DONE;}if(!(strncmp(dev->name, "\x72\x6d\x6e\x65\x74\x5f\x64\x61\x74\x61",(0xd27+224-0xdfd))==(0xd2d+202-0xdf7) -||strncmp(dev->name,"\x72\x5f\x72\x6d\x6e\x65\x74\x5f\x64\x61\x74\x61", -(0xd19+238-0xdfb))==(0xd2d+202-0xdf7)))return NOTIFY_DONE;switch( -DATARMNET7f045a1e6e){case NETDEV_UNREGISTER:DATARMNETd6ee05f1b4(dev); -DATARMNET2cb9ae589c--;if(!DATARMNET2cb9ae589c&&DATARMNETecc0627c70. -DATARMNETfc89d842ae){unsigned int DATARMNET9f4bc49c6f;pr_info( +))return NOTIFY_DONE;switch(DATARMNET7f045a1e6e){case NETDEV_DOWN: +DATARMNETd6ee05f1b4(dev);break;case NETDEV_UNREGISTER:DATARMNET2cb9ae589c--;if(! +DATARMNET2cb9ae589c&&DATARMNETecc0627c70.DATARMNETfc89d842ae){unsigned int +DATARMNET9f4bc49c6f;pr_info( "\x72\x6d\x6e\x65\x74\x5f\x73\x68\x73\x20\x64\x65\x69\x6e\x69\x74\x20\x25\x73\x20\x67\x6f\x69\x6e\x67\x20\x64\x6f\x77\x6e\x20" ,dev->name);RCU_INIT_POINTER(rmnet_shs_skb_entry,NULL);RCU_INIT_POINTER( rmnet_shs_switch,NULL);qmi_rmnet_ps_ind_deregister(DATARMNETecc0627c70.port,& @@ -96,9 +97,9 @@ pr_err( "\x72\x6d\x6e\x65\x74\x5f\x73\x68\x73\x3a\x20\x69\x6e\x76\x61\x6c\x69\x64\x20\x72\x6d\x6e\x65\x74\x5f\x70\x6f\x72\x74" );break;}DATARMNET45d8cdb224(priv->real_dev,dev);DATARMNET3ae0d614d6(); DATARMNETe1f95274f1();DATARMNETecc0627c70.DATARMNETf5ab31b9b0=(0xd26+209-0xdf6); -}DATARMNET7492293980(dev);break;case NETDEV_UP:if(!DATARMNETecc0627c70. -DATARMNET9c869c1ec2&&DATARMNETecc0627c70.DATARMNETfc89d842ae){port= -DATARMNETecc0627c70.port;if(!port){pr_err( +}break;case NETDEV_UP:if(!DATARMNETecc0627c70.DATARMNET9c869c1ec2&& +DATARMNETecc0627c70.DATARMNETfc89d842ae){port=DATARMNETecc0627c70.port;if(!port) +{pr_err( "\x72\x6d\x6e\x65\x74\x5f\x73\x68\x73\x3a\x20\x69\x6e\x76\x61\x6c\x69\x64\x20\x72\x6d\x6e\x65\x74\x5f\x63\x66\x67\x5f\x70\x6f\x72\x74" );break;}DATARMNETecc0627c70.DATARMNET08dbb5ab35.priority=RMNET_SHS;if(port-> data_format&RMNET_INGRESS_FORMAT_DL_MARKER_V2){DATARMNETecc0627c70. @@ -112,10 +113,10 @@ pr_err( ,__func__);ret=qmi_rmnet_ps_ind_register(port,&DATARMNETecc0627c70. rmnet_idl_ind_cb);if(ret)pr_err( "\x25\x73\x28\x29\x3a\x20\x72\x6d\x6e\x65\x74\x20\x70\x73\x5f\x69\x6e\x64\x20\x72\x65\x67\x69\x73\x74\x72\x61\x74\x69\x6f\x6e\x20\x66\x61\x69\x6c" "\n" -,__func__);DATARMNET039ac6d55d();DATARMNETe46c480d71();DATARMNET0a6fb12cb2(); -DATARMNETecc0627c70.DATARMNET9c869c1ec2=(0xd26+209-0xdf6);trace_rmnet_shs_high( -DATARMNET1790979ccf,DATARMNET443dab7031,(0x16e8+787-0xc0c),(0x16e8+787-0xc0c), -(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),NULL,NULL);RCU_INIT_POINTER( -rmnet_shs_switch,NULL);RCU_INIT_POINTER(rmnet_shs_skb_entry,DATARMNET756778f14f) -;}break;default:break;}return NOTIFY_DONE;}module_init(DATARMNET163e93649e); -module_exit(DATARMNETf3298dab6f); +,__func__);DATARMNET039ac6d55d();DATARMNET0a6fb12cb2();DATARMNET7492293980(dev); +DATARMNETe46c480d71();DATARMNETecc0627c70.DATARMNET9c869c1ec2=(0xd26+209-0xdf6); +trace_rmnet_shs_high(DATARMNET1790979ccf,DATARMNET443dab7031,(0x16e8+787-0xc0c), +(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),NULL,NULL); +RCU_INIT_POINTER(rmnet_shs_switch,NULL);RCU_INIT_POINTER(rmnet_shs_skb_entry, +DATARMNET756778f14f);break;}DATARMNET7492293980(dev);break;default:break;}return + NOTIFY_DONE;}module_init(DATARMNET163e93649e);module_exit(DATARMNETf3298dab6f); diff --git a/shs/rmnet_shs_main.c b/shs/rmnet_shs_main.c index 346d4f84bc88..74d83587e916 100644 --- a/shs/rmnet_shs_main.c +++ b/shs/rmnet_shs_main.c @@ -56,7 +56,11 @@ DATARMNET758a55f103 #define DATARMNETbfe901fc62 (0xd2d+202-0xdf7) DEFINE_SPINLOCK(DATARMNET3764d083f0);DEFINE_HASHTABLE(DATARMNETe603c3a4b3, DATARMNET25437d35fd);struct DATARMNETe600c5b727 DATARMNET0997c5650d[ -DATARMNETc6782fed88];int DATARMNETcff375d916[DATARMNETc6782fed88];struct +DATARMNETc6782fed88];int DATARMNETcff375d916[DATARMNETc6782fed88];unsigned int +DATARMNETaf998640fd __read_mostly=(0xcb7+2213-0x123c);module_param( +DATARMNETaf998640fd,uint,(0xdb7+6665-0x261c));MODULE_PARM_DESC( +DATARMNETaf998640fd, +"\x4d\x61\x78\x20\x71\x6d\x61\x70\x20\x62\x61\x63\x6b\x6c\x6f\x67");struct DATARMNETa6b20d7e8b DATARMNETecc0627c70;struct DATARMNET37ef896af8 shs_rx_work; ssize_t DATARMNET713da9913c(struct netdev_rx_queue*DATARMNETb4180393e4,u8 cpu,u8 DATARMNETa7a5705ab0,u8 DATARMNET5780499e9c){struct rps_map*DATARMNETaeb4918e65, @@ -361,7 +365,7 @@ DATARMNET63b1a086d5->DATARMNET1e9d25d9ff==IPPROTO_UDP)DATARMNET68d84e7b98[ DATARMNETdd6bf3de6b]++;DATARMNET21243b86ae(skb,DATARMNETf345c1d909, DATARMNET87636d0152);}else{if(DATARMNETf345c1d909==DATARMNET0b15fd8b54&&(! DATARMNET63b1a086d5->DATARMNET85c698ec34))DATARMNETe767554e6e(skb);else if( -DATARMNETf345c1d909==DATARMNET5b5927fd7e&&DATARMNET63b1a086d5-> +DATARMNETf345c1d909==DATARMNET5b5927fd7e&&!DATARMNET63b1a086d5-> DATARMNET85c698ec34)DATARMNETe767554e6e(skb);else DATARMNET514ce0bf59(skb);}} DATARMNET63b1a086d5->DATARMNETae4b27456e.DATARMNET6215127f48=(0xd2d+202-0xdf7); DATARMNET63b1a086d5->DATARMNETae4b27456e.DATARMNETbaa5765693=(0xd2d+202-0xdf7); @@ -383,7 +387,7 @@ DATARMNET63b1a086d5->DATARMNETae4b27456e.head);skb!=NULL;skb=DATARMNETcebafc57a4 ->hash=DATARMNET1fcbf046ec;skb->next=NULL;DATARMNETe20a9cab2b+=(0xd26+209-0xdf6) ;DATARMNETb481d13a78+=skb->len;if(DATARMNET5447204733==DATARMNET0b15fd8b54&&(! DATARMNET63b1a086d5->DATARMNET85c698ec34))DATARMNETe767554e6e(skb);else if( -DATARMNET5447204733==DATARMNET5b5927fd7e&&DATARMNET63b1a086d5-> +DATARMNET5447204733==DATARMNET5b5927fd7e&&!DATARMNET63b1a086d5-> DATARMNET85c698ec34)DATARMNETe767554e6e(skb);else DATARMNET514ce0bf59(skb);} DATARMNET68d84e7b98[DATARMNET72db8b9bac]++;DATARMNETecc0627c70. DATARMNETc252a1f55d-=DATARMNETb481d13a78;DATARMNETecc0627c70.DATARMNETa2e32cdd3a @@ -672,12 +676,13 @@ DATARMNET85c698ec34){if(node_p->map_cpu>=(0xd2d+202-0xdf7)&&node_p->map_cpu< DATARMNETc6782fed88){if(!hrtimer_active(&DATARMNETba5ea4329f(node_p->map_cpu))) hrtimer_start(&DATARMNETba5ea4329f(node_p->map_cpu),ns_to_ktime( DATARMNET4ac8af832c*DATARMNET68fc0be252),HRTIMER_MODE_REL);}if( -raw_smp_processor_id()==DATARMNETecc0627c70.DATARMNET7d667e828e){ -DATARMNET68d84e7b98[DATARMNET048727d1d9]++;DATARMNET7c5ef97eab=(0xd26+209-0xdf6) -;}if(DATARMNET0bf01e7c6f->max_pkts&&node_p->DATARMNETae4b27456e. -DATARMNET6215127f48>DATARMNET0bf01e7c6f->max_pkts)DATARMNET7c5ef97eab= -(0xd26+209-0xdf6);}break;}if(is_match_found)break;if(DATARMNET0bf01e7c6f-> -map_mask){DATARMNETcfb5dc7296=DATARMNET362c14e98b(DATARMNETecc0627c70.map_mask& +raw_smp_processor_id()!=DATARMNETecc0627c70.DATARMNET7d667e828e&&( +DATARMNETecc0627c70.DATARMNET7d667e828e==DATARMNETecc0627c70.DATARMNET5c24e1df05 +)){DATARMNET68d84e7b98[DATARMNET048727d1d9]++;DATARMNET7c5ef97eab= +(0xd26+209-0xdf6);}if(DATARMNETaf998640fd&&node_p->DATARMNETae4b27456e. +DATARMNET6215127f48>DATARMNETaf998640fd)DATARMNET7c5ef97eab=(0xd26+209-0xdf6);} +break;}if(is_match_found)break;if(DATARMNET0bf01e7c6f->map_mask){ +DATARMNETcfb5dc7296=DATARMNET362c14e98b(DATARMNETecc0627c70.map_mask& DATARMNET9273f84bf1&~DATARMNETecc0627c70.DATARMNETba3f7a11ef);}else{ DATARMNETcfb5dc7296=DATARMNET217fe38119((0xd2d+202-0xdf7),skb->dev);}if( DATARMNETcfb5dc7296<(0xd2d+202-0xdf7)){DATARMNET68d84e7b98[DATARMNETa1f9420686] diff --git a/shs/rmnet_shs_wq_genl.c b/shs/rmnet_shs_wq_genl.c index 77c991d20b13..272216c2c914 100644 --- a/shs/rmnet_shs_wq_genl.c +++ b/shs/rmnet_shs_wq_genl.c @@ -131,7 +131,7 @@ if(na){if(nla_memcpy(&DATARMNET7f0ce2d6ad,na,sizeof(DATARMNET7f0ce2d6ad))> (0xd26+209-0xdf6)< Date: Thu, 18 Mar 2021 16:06:12 -0700 Subject: [PATCH 33/36] rmnet_shs: I4cad394feff1935c09c3d1f0f0f4be5f0583d4ad Change-Id: I4cad394feff1935c09c3d1f0f0f4be5f0583d4ad Acked-by: Raul Martinez Signed-off-by: Subash Abhinov Kasiviswanathan --- shs/rmnet_shs_config.c | 2 ++ shs/rmnet_shs_wq.c | 71 +++++++++++++++++++++++------------------- shs/rmnet_shs_wq.h | 2 +- 3 files changed, 42 insertions(+), 33 deletions(-) diff --git a/shs/rmnet_shs_config.c b/shs/rmnet_shs_config.c index 918b02404768..742678008cca 100644 --- a/shs/rmnet_shs_config.c +++ b/shs/rmnet_shs_config.c @@ -51,6 +51,8 @@ DATARMNET5fc54f7a13 __read_mostly={.notifier_call=DATARMNETe9173bbe0e,.priority= "\x49\x37\x32\x33\x65\x63\x63\x32\x62\x37\x36\x30\x31\x38\x32\x34\x64\x66\x32\x61\x66\x32\x33\x66\x62\x35\x35\x39\x64\x38\x64\x66\x35\x33\x63\x66\x65\x32\x63\x63\x31" , "\x49\x39\x39\x63\x36\x62\x34\x66\x61\x37\x38\x37\x64\x64\x34\x66\x64\x36\x33\x62\x38\x31\x64\x66\x63\x39\x32\x32\x39\x36\x65\x64\x33\x65\x63\x31\x64\x38\x37\x38\x35" +, +"\x49\x34\x63\x61\x64\x33\x39\x34\x66\x65\x66\x66\x31\x39\x33\x35\x63\x30\x39\x63\x33\x64\x31\x66\x30\x66\x30\x66\x34\x62\x65\x35\x66\x30\x35\x38\x33\x64\x34\x61\x64" };static int DATARMNET2cb9ae589c;int __init DATARMNET163e93649e(void){pr_info( "\x25\x73\x28\x29\x3a\x20\x53\x74\x61\x72\x74\x69\x6e\x67\x20\x72\x6d\x6e\x65\x74\x20\x53\x48\x53\x20\x6d\x6f\x64\x75\x6c\x65\x20\x25\x73\x20" "\n" ,__func__,DATARMNETbc8418e817[(0xd2d+202-0xdf7)]);trace_rmnet_shs_high( diff --git a/shs/rmnet_shs_wq.c b/shs/rmnet_shs_wq.c index 53ea5f0b5d70..ed7f137d5b8b 100644 --- a/shs/rmnet_shs_wq.c +++ b/shs/rmnet_shs_wq.c @@ -262,18 +262,23 @@ DATARMNET4947607c52;DATARMNET3c48cbf7e4->DATARMNETbfe25a2160=DATARMNET3c48cbf7e4 DATARMNET68d84e7b98[DATARMNET42b73d0f3f]++;return;}DATARMNET3c48cbf7e4-> DATARMNET903a2cea81=port->stats.dl_hdr_total_pkts;DATARMNET3c48cbf7e4-> DATARMNET4947607c52=port->stats.dl_hdr_total_bytes;DATARMNET96f21fddc1= -DATARMNETb3a4036d6d-DATARMNET3c48cbf7e4->DATARMNET68714ac92c;DATARMNETe3ed6089ca -=DATARMNET3c48cbf7e4->DATARMNET903a2cea81-DATARMNET3c48cbf7e4-> -DATARMNETbfe25a2160;byte_diff=DATARMNET3c48cbf7e4->DATARMNET4947607c52- -DATARMNET3c48cbf7e4->DATARMNET601156672d;DATARMNET3c48cbf7e4-> -DATARMNET3067b3dafd=DATARMNET855e9d7062(DATARMNETe3ed6089ca)/DATARMNET96f21fddc1 -;DATARMNET3c48cbf7e4->DATARMNET47334112aa=DATARMNET855e9d7062(byte_diff)/ -DATARMNET96f21fddc1;DATARMNET3c48cbf7e4->DATARMNET47334112aa=DATARMNET64577537b7 -(DATARMNET3c48cbf7e4->DATARMNET47334112aa);}static void DATARMNET0ce3f33785(void -){struct DATARMNETc8fdbf9c85*DATARMNET3c48cbf7e4=&DATARMNET6cdd58e74c;u64 -DATARMNETe3ed6089ca,byte_diff,DATARMNETccb5dc8a5c,DATARMNET4df302dbd6;time_t -DATARMNET96f21fddc1;DATARMNET96f21fddc1=DATARMNETb3a4036d6d-DATARMNET3c48cbf7e4 -->DATARMNET68714ac92c;DATARMNETe3ed6089ca=(DATARMNET3c48cbf7e4-> +DATARMNETb3a4036d6d-DATARMNET3c48cbf7e4->DATARMNET68714ac92c;DATARMNET96f21fddc1 +=(DATARMNET96f21fddc1>DATARMNETac617c8dce(DATARMNET1fc3ad67fd)&& +DATARMNET1fc3ad67fd>(0xd2d+202-0xdf7))?DATARMNET96f21fddc1:DATARMNETac617c8dce( +(0xeb7+698-0x110d));DATARMNETe3ed6089ca=DATARMNET3c48cbf7e4->DATARMNET903a2cea81 +-DATARMNET3c48cbf7e4->DATARMNETbfe25a2160;byte_diff=DATARMNET3c48cbf7e4-> +DATARMNET4947607c52-DATARMNET3c48cbf7e4->DATARMNET601156672d;DATARMNET3c48cbf7e4 +->DATARMNET3067b3dafd=DATARMNET855e9d7062(DATARMNETe3ed6089ca)/ +DATARMNET96f21fddc1;DATARMNET3c48cbf7e4->DATARMNET47334112aa=DATARMNET855e9d7062 +(byte_diff)/DATARMNET96f21fddc1;DATARMNET3c48cbf7e4->DATARMNET47334112aa= +DATARMNET64577537b7(DATARMNET3c48cbf7e4->DATARMNET47334112aa);}static void +DATARMNET0ce3f33785(void){struct DATARMNETc8fdbf9c85*DATARMNET3c48cbf7e4=& +DATARMNET6cdd58e74c;u64 DATARMNETe3ed6089ca,byte_diff,DATARMNETccb5dc8a5c, +DATARMNET4df302dbd6;time_t DATARMNET96f21fddc1;DATARMNET96f21fddc1= +DATARMNETb3a4036d6d-DATARMNET3c48cbf7e4->DATARMNET68714ac92c;DATARMNET96f21fddc1 +=(DATARMNET96f21fddc1>DATARMNETac617c8dce(DATARMNET1fc3ad67fd)&& +DATARMNET1fc3ad67fd>(0xd2d+202-0xdf7))?DATARMNET96f21fddc1:DATARMNETac617c8dce( +(0xeb7+698-0x110d));DATARMNETe3ed6089ca=(DATARMNET3c48cbf7e4-> DATARMNET7fc41d655d-DATARMNET3c48cbf7e4->DATARMNET9853a006ae);byte_diff= DATARMNET3c48cbf7e4->rx_bytes-DATARMNET3c48cbf7e4->DATARMNETde6a309f37; DATARMNETccb5dc8a5c=DATARMNET855e9d7062(DATARMNETe3ed6089ca)/DATARMNET96f21fddc1 @@ -314,26 +319,28 @@ DATARMNETc6439e3d71(&DATARMNET6cdd58e74c,DATARMNETcf7ef40ff9,& DATARMNETe46ae760db);}DATARMNET33f47350f0(cpu,DATARMNETcf7ef40ff9);return;} DATARMNET96f21fddc1=DATARMNETb3a4036d6d-DATARMNETcf7ef40ff9->DATARMNET68714ac92c ;DATARMNETedf00aed6f=DATARMNETcf7ef40ff9->rx_bytes-DATARMNETcf7ef40ff9-> -DATARMNETde6a309f37;DATARMNET8233cb4988=DATARMNETcf7ef40ff9->DATARMNETbb80fccd97 -;DATARMNET27c3925eff=DATARMNETcf7ef40ff9->DATARMNET324c1a8f98; -DATARMNETcf7ef40ff9->DATARMNET324c1a8f98=DATARMNET855e9d7062(DATARMNET55fffa9aa9 -)/DATARMNET96f21fddc1;DATARMNETcf7ef40ff9->DATARMNETbb80fccd97= -DATARMNET855e9d7062(DATARMNETedf00aed6f)/DATARMNET96f21fddc1;DATARMNETcf7ef40ff9 -->DATARMNETbb80fccd97=DATARMNET64577537b7(DATARMNETcf7ef40ff9-> -DATARMNETbb80fccd97);DATARMNETcf7ef40ff9->DATARMNET253a9fc708= -DATARMNET183789850d(cpu);DATARMNETcf7ef40ff9->DATARMNET8233cb4988= -DATARMNET8233cb4988;DATARMNETcf7ef40ff9->DATARMNET27c3925eff=DATARMNET27c3925eff -;DATARMNETcf7ef40ff9->DATARMNET68714ac92c=DATARMNETb3a4036d6d; -DATARMNETcf7ef40ff9->DATARMNET9853a006ae=DATARMNETcf7ef40ff9-> -DATARMNET7fc41d655d;DATARMNETcf7ef40ff9->DATARMNETde6a309f37=DATARMNETcf7ef40ff9 -->rx_bytes;DATARMNETcf7ef40ff9->DATARMNETc0b20e240a=DATARMNETcf7ef40ff9-> -DATARMNETbb80fccd97;if(DATARMNETc252c204a8){DATARMNETc6439e3d71(& -DATARMNET6cdd58e74c,DATARMNETcf7ef40ff9,&DATARMNETe46ae760db);} -trace_rmnet_shs_wq_high(DATARMNET39a68a0eba,DATARMNET95d1ddcb1a,cpu, -DATARMNETcf7ef40ff9->flows,DATARMNETcf7ef40ff9->DATARMNET324c1a8f98, -DATARMNETcf7ef40ff9->DATARMNETbb80fccd97,NULL,NULL);DATARMNET33f47350f0(cpu, -DATARMNETcf7ef40ff9);}static void DATARMNET617b443145(void){u16 cpu; -trace_rmnet_shs_wq_high(DATARMNET39a68a0eba,DATARMNET6bde6a5171, +DATARMNETde6a309f37;DATARMNET96f21fddc1=(DATARMNET96f21fddc1>DATARMNETac617c8dce +(DATARMNET1fc3ad67fd)&&DATARMNET1fc3ad67fd>(0xd2d+202-0xdf7))? +DATARMNET96f21fddc1:DATARMNETac617c8dce((0xeb7+698-0x110d));DATARMNET8233cb4988= +DATARMNETcf7ef40ff9->DATARMNETbb80fccd97;DATARMNET27c3925eff=DATARMNETcf7ef40ff9 +->DATARMNET324c1a8f98;DATARMNETcf7ef40ff9->DATARMNET324c1a8f98= +DATARMNET855e9d7062(DATARMNET55fffa9aa9)/DATARMNET96f21fddc1;DATARMNETcf7ef40ff9 +->DATARMNETbb80fccd97=DATARMNET855e9d7062(DATARMNETedf00aed6f)/ +DATARMNET96f21fddc1;DATARMNETcf7ef40ff9->DATARMNETbb80fccd97=DATARMNET64577537b7 +(DATARMNETcf7ef40ff9->DATARMNETbb80fccd97);DATARMNETcf7ef40ff9-> +DATARMNET253a9fc708=DATARMNET183789850d(cpu);DATARMNETcf7ef40ff9-> +DATARMNET8233cb4988=DATARMNET8233cb4988;DATARMNETcf7ef40ff9->DATARMNET27c3925eff +=DATARMNET27c3925eff;DATARMNETcf7ef40ff9->DATARMNET68714ac92c= +DATARMNETb3a4036d6d;DATARMNETcf7ef40ff9->DATARMNET9853a006ae=DATARMNETcf7ef40ff9 +->DATARMNET7fc41d655d;DATARMNETcf7ef40ff9->DATARMNETde6a309f37= +DATARMNETcf7ef40ff9->rx_bytes;DATARMNETcf7ef40ff9->DATARMNETc0b20e240a= +DATARMNETcf7ef40ff9->DATARMNETbb80fccd97;if(DATARMNETc252c204a8){ +DATARMNETc6439e3d71(&DATARMNET6cdd58e74c,DATARMNETcf7ef40ff9,& +DATARMNETe46ae760db);}trace_rmnet_shs_wq_high(DATARMNET39a68a0eba, +DATARMNET95d1ddcb1a,cpu,DATARMNETcf7ef40ff9->flows,DATARMNETcf7ef40ff9-> +DATARMNET324c1a8f98,DATARMNETcf7ef40ff9->DATARMNETbb80fccd97,NULL,NULL); +DATARMNET33f47350f0(cpu,DATARMNETcf7ef40ff9);}static void DATARMNET617b443145( +void){u16 cpu;trace_rmnet_shs_wq_high(DATARMNET39a68a0eba,DATARMNET6bde6a5171, (0x16e8+787-0xc0c),(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),NULL ,NULL);for(cpu=(0xd2d+202-0xdf7);cpu Date: Wed, 23 Jun 2021 13:17:13 -0700 Subject: [PATCH 34/36] rmnet_shs: I64a9e4d196dae01d1fdffb9baf4c0827a8a92a82 Change-Id: I64a9e4d196dae01d1fdffb9baf4c0827a8a92a82 Acked-by: Raul Martinez Signed-off-by: Subash Abhinov Kasiviswanathan --- shs/rmnet_shs_main.c | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/shs/rmnet_shs_main.c b/shs/rmnet_shs_main.c index 74d83587e916..f6a0f9d5fb26 100644 --- a/shs/rmnet_shs_main.c +++ b/shs/rmnet_shs_main.c @@ -100,14 +100,12 @@ ETH_P_IP):ip4h=DATARMNETefcaf5fbe9(skb,(0xd2d+202-0xdf7),sizeof(*ip4h),& DATARMNETc00baf31c3);if(!ip4h)break;if(!ip_is_fragment(ip4h)&&(ip4h->protocol== IPPROTO_TCP||ip4h->protocol==IPPROTO_UDP)){DATARMNETbd864aa442=(0xd26+209-0xdf6) ;break;}if(ip4h->protocol==IPPROTO_ICMP){skb->hash=(0xd2d+202-0xdf7);skb-> -sw_hash=DATARMNET9273f84bf1&((0xd26+209-0xdf6)< -nexthdr==NEXTHDR_FRAGMENT)&&(ip6h->nexthdr==IPPROTO_TCP||ip6h->nexthdr== +sw_hash=(0xd26+209-0xdf6);}break;case htons(ETH_P_IPV6):ip6h=DATARMNETefcaf5fbe9 +(skb,(0xd2d+202-0xdf7),sizeof(*ip6h),&DATARMNETcf1d9e2c1e);if(!ip6h)break;if(!( +ip6h->nexthdr==NEXTHDR_FRAGMENT)&&(ip6h->nexthdr==IPPROTO_TCP||ip6h->nexthdr== IPPROTO_UDP)){DATARMNETbd864aa442=(0xd26+209-0xdf6);break;}if(ip6h->nexthdr== -IPPROTO_ICMP){skb->hash=(0xd2d+202-0xdf7);skb->sw_hash=DATARMNET9273f84bf1&( -(0xd26+209-0xdf6)<hash=(0xd2d+202-0xdf7);skb->sw_hash=(0xd26+209-0xdf6);}break; +default:break;}DATARMNETda96251102(DATARMNETcd24fca747,DATARMNET116c96c236, DATARMNETbd864aa442,(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),skb ,NULL);return DATARMNETbd864aa442;}static void DATARMNETfa919d00dc(int cpu,int DATARMNET8a461bad56){struct timespec DATARMNET2e47295bf1;struct timespec* From 9a7b4ba71860fb8763c5dec2a4a4585380c50b42 Mon Sep 17 00:00:00 2001 From: Subash Abhinov Kasiviswanathan Date: Fri, 9 Jul 2021 00:12:30 -0600 Subject: [PATCH 35/36] shs: Ic8f08f7c366d3a379b30f69087366745ccd07309 Update to Ic8f08f7c366d3a379b30f69087366745ccd07309 CRs-Fixed: 2984071 Change-Id: Ic8f08f7c366d3a379b30f69087366745ccd07309 Signed-off-by: Subash Abhinov Kasiviswanathan --- shs/rmnet_shs_config.c | 2 ++ shs/rmnet_shs_main.c | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/shs/rmnet_shs_config.c b/shs/rmnet_shs_config.c index 81ae3430f830..e763446911b5 100644 --- a/shs/rmnet_shs_config.c +++ b/shs/rmnet_shs_config.c @@ -57,6 +57,8 @@ DATARMNET5fc54f7a13 __read_mostly={.notifier_call=DATARMNETe9173bbe0e,.priority= "\x49\x37\x66\x66\x34\x66\x66\x31\x36\x62\x62\x36\x36\x31\x39\x63\x36\x65\x36\x39\x32\x37\x30\x37\x32\x37\x63\x31\x34\x66\x30\x31\x36\x65\x64\x31\x66\x37\x35\x61\x32" , "\x49\x63\x30\x39\x31\x36\x62\x35\x39\x37\x36\x35\x37\x30\x32\x35\x32\x32\x63\x36\x66\x64\x33\x36\x38\x31\x39\x64\x63\x34\x38\x31\x37\x66\x66\x66\x33\x37\x32\x30\x39" +, +"\x49\x32\x36\x33\x33\x36\x37\x39\x61\x65\x36\x34\x37\x61\x30\x36\x36\x62\x32\x38\x36\x32\x66\x39\x31\x33\x30\x31\x31\x64\x33\x33\x65\x33\x38\x32\x36\x63\x61\x32\x35" };static int DATARMNET2cb9ae589c;int __init DATARMNET163e93649e(void){pr_info( "\x25\x73\x28\x29\x3a\x20\x53\x74\x61\x72\x74\x69\x6e\x67\x20\x72\x6d\x6e\x65\x74\x20\x53\x48\x53\x20\x6d\x6f\x64\x75\x6c\x65\x20\x25\x73\x20" "\n" ,__func__,DATARMNETbc8418e817[(0xd2d+202-0xdf7)]);trace_rmnet_shs_high( diff --git a/shs/rmnet_shs_main.c b/shs/rmnet_shs_main.c index f6a0f9d5fb26..3a6eb462eb3c 100644 --- a/shs/rmnet_shs_main.c +++ b/shs/rmnet_shs_main.c @@ -104,7 +104,7 @@ sw_hash=(0xd26+209-0xdf6);}break;case htons(ETH_P_IPV6):ip6h=DATARMNETefcaf5fbe9 (skb,(0xd2d+202-0xdf7),sizeof(*ip6h),&DATARMNETcf1d9e2c1e);if(!ip6h)break;if(!( ip6h->nexthdr==NEXTHDR_FRAGMENT)&&(ip6h->nexthdr==IPPROTO_TCP||ip6h->nexthdr== IPPROTO_UDP)){DATARMNETbd864aa442=(0xd26+209-0xdf6);break;}if(ip6h->nexthdr== -IPPROTO_ICMP){skb->hash=(0xd2d+202-0xdf7);skb->sw_hash=(0xd26+209-0xdf6);}break; +NEXTHDR_ICMP){skb->hash=(0xd2d+202-0xdf7);skb->sw_hash=(0xd26+209-0xdf6);}break; default:break;}DATARMNETda96251102(DATARMNETcd24fca747,DATARMNET116c96c236, DATARMNETbd864aa442,(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),skb ,NULL);return DATARMNETbd864aa442;}static void DATARMNETfa919d00dc(int cpu,int From 603fcd33d7df86b5ed10d40740a24ed24e342be3 Mon Sep 17 00:00:00 2001 From: Subash Abhinov Kasiviswanathan Date: Wed, 28 Jul 2021 12:12:04 -0700 Subject: [PATCH 36/36] rmnet_shs: I6695e980c5e7bb29365c47e1536dc14efa1c0043 Change-Id: I6695e980c5e7bb29365c47e1536dc14efa1c0043 Acked-by: Raul Martinez Signed-off-by: Subash Abhinov Kasiviswanathan --- shs/rmnet_shs_config.c | 2 ++ shs/rmnet_shs_main.c | 22 ++++++++++++---------- 2 files changed, 14 insertions(+), 10 deletions(-) diff --git a/shs/rmnet_shs_config.c b/shs/rmnet_shs_config.c index e763446911b5..56115cc8d2a9 100644 --- a/shs/rmnet_shs_config.c +++ b/shs/rmnet_shs_config.c @@ -59,6 +59,8 @@ DATARMNET5fc54f7a13 __read_mostly={.notifier_call=DATARMNETe9173bbe0e,.priority= "\x49\x63\x30\x39\x31\x36\x62\x35\x39\x37\x36\x35\x37\x30\x32\x35\x32\x32\x63\x36\x66\x64\x33\x36\x38\x31\x39\x64\x63\x34\x38\x31\x37\x66\x66\x66\x33\x37\x32\x30\x39" , "\x49\x32\x36\x33\x33\x36\x37\x39\x61\x65\x36\x34\x37\x61\x30\x36\x36\x62\x32\x38\x36\x32\x66\x39\x31\x33\x30\x31\x31\x64\x33\x33\x65\x33\x38\x32\x36\x63\x61\x32\x35" +, +"\x49\x36\x36\x39\x35\x65\x39\x38\x30\x63\x35\x65\x37\x62\x62\x32\x39\x33\x36\x35\x63\x34\x37\x65\x31\x35\x33\x36\x64\x63\x31\x34\x65\x66\x61\x31\x63\x30\x30\x34\x33" };static int DATARMNET2cb9ae589c;int __init DATARMNET163e93649e(void){pr_info( "\x25\x73\x28\x29\x3a\x20\x53\x74\x61\x72\x74\x69\x6e\x67\x20\x72\x6d\x6e\x65\x74\x20\x53\x48\x53\x20\x6d\x6f\x64\x75\x6c\x65\x20\x25\x73\x20" "\n" ,__func__,DATARMNETbc8418e817[(0xd2d+202-0xdf7)]);trace_rmnet_shs_high( diff --git a/shs/rmnet_shs_main.c b/shs/rmnet_shs_main.c index 3a6eb462eb3c..c9377f4633a1 100644 --- a/shs/rmnet_shs_main.c +++ b/shs/rmnet_shs_main.c @@ -290,18 +290,20 @@ DATARMNET8ceb7a8cc9=DATARMNET63b1a086d5->map_cpu;if(DATARMNETd3673fd5f0< DATARMNET9bbfe49633){DATARMNETb7ddf3c5dd[DATARMNET28bb261646]++; DATARMNETb7ddf3c5dd[DATARMNET67b67dc88f]+=(DATARMNET9bbfe49633- DATARMNETd3673fd5f0);DATARMNET4bde88919f(DATARMNET42a992465f,DATARMNET9bbfe49633 --DATARMNETd3673fd5f0);}if(DATARMNET0997c5650d[DATARMNET42a992465f]. -DATARMNETef866573e0){DATARMNET63b1a086d5->DATARMNET341ea38662-> -DATARMNET6e1a4eaf09=DATARMNET8ceb7a8cc9;DATARMNET0997c5650d[DATARMNET8ceb7a8cc9] -.DATARMNET1e1f197118=(0xd26+209-0xdf6);DATARMNETb7ddf3c5dd[DATARMNETc3bce05be2] -++;}else{DATARMNETb7ddf3c5dd[DATARMNET14067f0be4]++;}DATARMNET373e474754=& +-DATARMNETd3673fd5f0);}if(DATARMNET63b1a086d5->DATARMNET341ea38662) +DATARMNET63b1a086d5->DATARMNET341ea38662->DATARMNET6e1a4eaf09= +DATARMNET8ceb7a8cc9;if(DATARMNET0997c5650d[DATARMNET42a992465f]. +DATARMNETef866573e0){DATARMNET0997c5650d[DATARMNET8ceb7a8cc9]. +DATARMNET1e1f197118=(0xd26+209-0xdf6);DATARMNETb7ddf3c5dd[DATARMNETc3bce05be2]++ +;}else{DATARMNETb7ddf3c5dd[DATARMNET14067f0be4]++;}DATARMNET373e474754=& DATARMNET0997c5650d[DATARMNET63b1a086d5->map_cpu];DATARMNETe074a09496(); DATARMNET63b1a086d5->queue_head=DATARMNET373e474754->DATARMNETae196235f2; -DATARMNETe102b3a798(DATARMNET63b1a086d5,&DATARMNET373e474754-> -DATARMNET3dc4262f53,DATARMNET42a992465f);DATARMNET52de1f3dc0(DATARMNET4510abc30d -,DATARMNET052f49b190,DATARMNET63b1a086d5->map_cpu,DATARMNET5a2e9192f9, -(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),DATARMNET63b1a086d5,NULL);}ret= -(0xd26+209-0xdf6);}}while((0xd2d+202-0xdf7));DATARMNETda96251102( +DATARMNET63b1a086d5->queue_head+=DATARMNET63b1a086d5->DATARMNETae4b27456e. +DATARMNET6215127f48;DATARMNETe102b3a798(DATARMNET63b1a086d5,&DATARMNET373e474754 +->DATARMNET3dc4262f53,DATARMNET42a992465f);DATARMNET52de1f3dc0( +DATARMNET4510abc30d,DATARMNET052f49b190,DATARMNET63b1a086d5->map_cpu, +DATARMNET5a2e9192f9,(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),DATARMNET63b1a086d5, +NULL);}ret=(0xd26+209-0xdf6);}}while((0xd2d+202-0xdf7));DATARMNETda96251102( DATARMNET4510abc30d,DATARMNET23b8465daf,ret,DATARMNET63b1a086d5->map_cpu, DATARMNET5a2e9192f9,(0x16e8+787-0xc0c),DATARMNET63b1a086d5,NULL);return ret;} void DATARMNETfbc06e60f1(u8 DATARMNET42a992465f){struct DATARMNET63d7680df2*