diff --git a/techpack/datarmnet-ext/datarmnet_ext_dlkm_vendor_board.mk b/techpack/datarmnet-ext/datarmnet_ext_dlkm_vendor_board.mk new file mode 100644 index 000000000000..a05dcbf282c9 --- /dev/null +++ b/techpack/datarmnet-ext/datarmnet_ext_dlkm_vendor_board.mk @@ -0,0 +1,9 @@ +#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 +BOARD_VENDOR_KERNEL_MODULES += $(KERNEL_MODULES_OUT)/rmnet_shs.ko +endif +endif diff --git a/techpack/datarmnet-ext/datarmnet_ext_dlkm_vendor_product.mk b/techpack/datarmnet-ext/datarmnet_ext_dlkm_vendor_product.mk new file mode 100644 index 000000000000..3d0f64c1c0ee --- /dev/null +++ b/techpack/datarmnet-ext/datarmnet_ext_dlkm_vendor_product.mk @@ -0,0 +1,2 @@ +PRODUCT_PACKAGES += rmnet_offload.ko +PRODUCT_PACKAGES += rmnet_shs.ko diff --git a/techpack/datarmnet-ext/offload/Android.mk b/techpack/datarmnet-ext/offload/Android.mk new file mode 100644 index 000000000000..d7b5268f198d --- /dev/null +++ b/techpack/datarmnet-ext/offload/Android.mk @@ -0,0 +1,45 @@ +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) +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/techpack/datarmnet-ext/offload/Kbuild b/techpack/datarmnet-ext/offload/Kbuild new file mode 100644 index 000000000000..2bb49c4e0b26 --- /dev/null +++ b/techpack/datarmnet-ext/offload/Kbuild @@ -0,0 +1,11 @@ +#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) \ + $(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 \ + rmnet_offload_knob.o diff --git a/techpack/datarmnet-ext/offload/Kconfig b/techpack/datarmnet-ext/offload/Kconfig new file mode 100644 index 000000000000..13799e314321 --- /dev/null +++ b/techpack/datarmnet-ext/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/techpack/datarmnet-ext/offload/Makefile b/techpack/datarmnet-ext/offload/Makefile new file mode 100644 index 000000000000..268d1f2eddb3 --- /dev/null +++ b/techpack/datarmnet-ext/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/techpack/datarmnet-ext/offload/rmnet_offload_engine.c b/techpack/datarmnet-ext/offload/rmnet_offload_engine.c new file mode 100644 index 000000000000..1bd76a071a7b --- /dev/null +++ b/techpack/datarmnet-ext/offload/rmnet_offload_engine.c @@ -0,0 +1,180 @@ +/* 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 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->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( +DATARMNET3924f3f9e3==DATARMNET88a9920663&&DATARMNET06d2413ad2== +DATARMNETa656f324b2)return true;return false;}static bool DATARMNET5a0f9fc3a2( +struct DATARMNETd7c9631acd*DATARMNETaa568481cf,struct DATARMNETd812bcdbb5* +DATARMNET5fe4c722a8){if(!DATARMNETaa568481cf->DATARMNET1db11fa85e)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* +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;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 +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){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;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(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/techpack/datarmnet-ext/offload/rmnet_offload_engine.h b/techpack/datarmnet-ext/offload/rmnet_offload_engine.h new file mode 100644 index 000000000000..9bd8e1e7b04a --- /dev/null +++ b/techpack/datarmnet-ext/offload/rmnet_offload_engine.h @@ -0,0 +1,35 @@ +/* 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 DATARMNETbf894466c7 +#define DATARMNETbf894466c7 +#include +#include "rmnet_offload_main.h" +#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;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/techpack/datarmnet-ext/offload/rmnet_offload_knob.c b/techpack/datarmnet-ext/offload/rmnet_offload_knob.c new file mode 100644 index 000000000000..a804397e8817 --- /dev/null +++ b/techpack/datarmnet-ext/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 DATARMNET7996ea045b(DATARMNET4c4a5ce272) \ + static int __ ## DATARMNET4c4a5ce272(const char *DATARMNETcc6099cb14, const \ +struct kernel_param *DATARMNETb3ce0fdc63) \ + { \ + return DATARMNETf467eaf6fc(DATARMNETcc6099cb14, DATARMNETb3ce0fdc63, \ +DATARMNET4c4a5ce272); \ + } +#define DATARMNETce9a74c748(DATARMNET4c4a5ce272, DATARMNET91574ba67a, \ +DATARMNET8f535916a4, DATARMNETae9bf9b111, DATARMNETbdf6f9d425) \ + (struct DATARMNET5374f6eafa) { \ + .DATARMNETd67569df12 = DATARMNET91574ba67a, \ + .DATARMNET949fb858da = DATARMNET8f535916a4, \ + .DATARMNET6c81c0097b = DATARMNETae9bf9b111, \ + .DATARMNET8a7dce7d36 = DATARMNETbdf6f9d425, \ + .DATARMNET9cee06cbe4 = { \ + .set = __ ## DATARMNET4c4a5ce272, \ + .get = param_get_ullong, \ + }, \ + } +#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/techpack/datarmnet-ext/offload/rmnet_offload_knob.h b/techpack/datarmnet-ext/offload/rmnet_offload_knob.h new file mode 100644 index 000000000000..9d82c35d18c0 --- /dev/null +++ b/techpack/datarmnet-ext/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 DATARMNET5833be0738 +#define DATARMNET5833be0738 +#include +enum{DATARMNETdf66588a73,DATARMNET9c85bb95a3,DATARMNET6d2ed4b822, +DATARMNET94aa767bca,};u64 DATARMNETf1d1b8287f(u32 DATARMNET4c4a5ce272); +#endif diff --git a/techpack/datarmnet-ext/offload/rmnet_offload_main.c b/techpack/datarmnet-ext/offload/rmnet_offload_main.c new file mode 100644 index 000000000000..54b394356cbb --- /dev/null +++ b/techpack/datarmnet-ext/offload/rmnet_offload_main.c @@ -0,0 +1,252 @@ +/* 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*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" +, +"\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" +, +"\x49\x35\x31\x34\x36\x62\x33\x61\x30\x31\x36\x65\x66\x36\x35\x62\x33\x65\x36\x34\x35\x31\x33\x38\x64\x31\x34\x38\x31\x66\x37\x35\x35\x63\x66\x31\x31\x33\x34\x61\x32" +, +"\x49\x63\x62\x64\x62\x30\x34\x62\x62\x62\x38\x31\x61\x32\x36\x62\x61\x32\x62\x37\x31\x64\x37\x64\x39\x34\x35\x66\x62\x30\x39\x34\x61\x65\x39\x63\x37\x63\x64\x35\x30" +, +"\x49\x39\x35\x33\x30\x37\x35\x62\x30\x62\x36\x66\x65\x62\x34\x39\x33\x61\x35\x32\x61\x33\x36\x64\x33\x33\x32\x65\x63\x65\x35\x62\x64\x66\x35\x37\x31\x65\x34\x65\x36" +, +"\x49\x65\x32\x33\x63\x62\x66\x36\x31\x35\x35\x39\x34\x32\x35\x30\x66\x34\x31\x31\x61\x34\x66\x32\x37\x37\x66\x30\x64\x32\x35\x30\x65\x61\x61\x36\x66\x65\x64\x37\x65" +, +"\x49\x38\x32\x35\x34\x30\x39\x61\x64\x37\x64\x39\x32\x31\x66\x66\x64\x65\x38\x37\x65\x61\x34\x32\x31\x62\x30\x66\x31\x37\x36\x37\x33\x65\x63\x38\x64\x63\x30\x39\x36" +,};static DEFINE_SPINLOCK(DATARMNET0b5e447f18);static u32 DATARMNETcb7325e02d( +struct DATARMNETd812bcdbb5*DATARMNET458b70e7e5){struct DATARMNET4287f07234* +DATARMNET8814564ab9=&DATARMNET458b70e7e5->DATARMNET144d119066;__be32 +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);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-> +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(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-DATARMNET8814564ab9->DATARMNET4ca5ac9de1-DATARMNET8814564ab9 +->DATARMNET0aeee57ceb;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-> +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;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); +DATARMNET6a76048590();} diff --git a/techpack/datarmnet-ext/offload/rmnet_offload_main.h b/techpack/datarmnet-ext/offload/rmnet_offload_main.h new file mode 100644 index 000000000000..b64c61d529e2 --- /dev/null +++ b/techpack/datarmnet-ext/offload/rmnet_offload_main.h @@ -0,0 +1,73 @@ +/* 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 DATARMNET3f65517842 +#define DATARMNET3f65517842 +#include +#include +#include "rmnet_descriptor.h" +#include "rmnet_map.h" +#define DATARMNETfd5c3d30e5 (0xd03+244-0xdf1) +#define DATARMNETa656f324b2 (0xeb7+1151-0x1325) +#define DATARMNET5b166167a8 (0xec7+1138-0x130d) +struct DATARMNET308c06fca6{ +#if defined(__LITTLE_ENDIAN_BITFIELD) +u8 DATARMNET610d06a887:(0xd11+230-0xdf3);u8 DATARMNET7af6b06548: +(0xd11+230-0xdf3); +#elif defined (__BIG_ENDIAN_BITFIELD) +u8 DATARMNET7af6b06548:(0xd11+230-0xdf3);u8 DATARMNET610d06a887: +(0xd11+230-0xdf3); +#else +#error " error" +#endif +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 DATARMNET655b34c160:(0xd11+230-0xdf3);u8 DATARMNETcf2e43ad69: +(0xd11+230-0xdf3); +#elif defined (__BIG_ENDIAN_BITFIELD) +u8 DATARMNETcf2e43ad69:(0xd11+230-0xdf3);u8 DATARMNET655b34c160: +(0xd11+230-0xdf3); +#else +#error " error" +#endif +u8 DATARMNETd570802f3d;__be16 DATARMNET807cd6af6c;__be16 DATARMNET8891a7f7ce; +__be16 DATARMNET9921296467;};struct DATARMNET0b82084e89{__be16 +DATARMNET1b1c406ae9;__be16 DATARMNETdf0e8545ee;__be16 DATARMNET39a05c5524;__be16 + 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 +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/techpack/datarmnet-ext/offload/rmnet_offload_state.c b/techpack/datarmnet-ext/offload/rmnet_offload_state.c new file mode 100644 index 000000000000..e5c1072a04a0 --- /dev/null +++ b/techpack/datarmnet-ext/offload/rmnet_offload_state.c @@ -0,0 +1,98 @@ +/* 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 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(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)){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;}} +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( +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__);}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||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){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" +,__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 DATARMNETaabe3a05f8;}break;case NETDEV_UNREGISTER:if(! +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 +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(&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(&DATARMNETcae9c64c41);}struct +DATARMNET70f3b87b5d*DATARMNETc2a630b113(void){return DATARMNETe05748b000;} +module_init(DATARMNETb1c42acd9c);module_exit(DATARMNET0f6d85e415); diff --git a/techpack/datarmnet-ext/offload/rmnet_offload_state.h b/techpack/datarmnet-ext/offload/rmnet_offload_state.h new file mode 100644 index 000000000000..d722b5f2146c --- /dev/null +++ b/techpack/datarmnet-ext/offload/rmnet_offload_state.h @@ -0,0 +1,30 @@ +/* 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 DATARMNETc03e325706 +#define DATARMNETc03e325706 +#include "rmnet_offload_engine.h" +#include "rmnet_map.h" +#include "rmnet_descriptor.h" +#include "qmi_rmnet.h" +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;u8 DATARMNETcb2b3ae8e4;};struct DATARMNET70f3b87b5d* +DATARMNETc2a630b113(void); +#endif + diff --git a/techpack/datarmnet-ext/offload/rmnet_offload_stats.c b/techpack/datarmnet-ext/offload/rmnet_offload_stats.c new file mode 100644 index 000000000000..2b4139842576 --- /dev/null +++ b/techpack/datarmnet-ext/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 DATARMNET6c78aba0c8[DATARMNETd04f96aa13];module_param_array_named( +rmnet_offload_stat,DATARMNET6c78aba0c8,ullong,NULL,(0xcb7+5769-0x221c));void +DATARMNETbad3b5165e(u32 DATARMNET248f120dd5,u64 DATARMNETb639f6e1b1){if( +DATARMNET248f120dd5 +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/techpack/datarmnet-ext/offload/rmnet_offload_tcp.c b/techpack/datarmnet-ext/offload/rmnet_offload_tcp.c new file mode 100644 index 000000000000..5aea4c7ab043 --- /dev/null +++ b/techpack/datarmnet-ext/offload/rmnet_offload_tcp.c @@ -0,0 +1,82 @@ +/* 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_descriptor.h" +#include "rmnet_offload_main.h" +#include "rmnet_offload_engine.h" +#include "rmnet_offload_stats.h" +#include "rmnet_offload_knob.h" +union DATARMNETe0a7777e12{struct DATARMNETd2991e8952 DATARMNETe31a04a369;u8 +DATARMNET021aa8e68d[(0xf07+1090-0x130d)];};static bool DATARMNET2818ea93ec( +struct DATARMNETd812bcdbb5*DATARMNET5fe4c722a8){struct DATARMNETd2991e8952* +DATARMNET2e7cc88971,DATARMNETd1ff6cd568;__be32 DATARMNETa8eeab014d;u8 +DATARMNETfb0677cc3c;DATARMNET2e7cc88971=rmnet_frag_header_ptr( +DATARMNET5fe4c722a8->DATARMNET719f68fb88,DATARMNET5fe4c722a8-> +DATARMNET144d119066.DATARMNET4ca5ac9de1,sizeof(*DATARMNET2e7cc88971),& +DATARMNETd1ff6cd568);if(!DATARMNET2e7cc88971)return true;DATARMNETa8eeab014d= +(0xbf7+4796-0x1e04);DATARMNETfb0677cc3c=DATARMNET2e7cc88971->DATARMNETd570802f3d +;if(DATARMNET5fe4c722a8->DATARMNET719f68fb88->tcp_flags_set)DATARMNETfb0677cc3c= +(u8)ntohs(DATARMNET5fe4c722a8->DATARMNET719f68fb88->tcp_flags);if((! +DATARMNET5fe4c722a8->DATARMNET1ef22e4c76&&(DATARMNETfb0677cc3c& +(0xeb7+1158-0x132d)))||(DATARMNETfb0677cc3c&DATARMNETa8eeab014d))return true; +return false;}static bool DATARMNET829fcf5939(struct DATARMNETd7c9631acd* +DATARMNETaa568481cf,struct DATARMNETd812bcdbb5*DATARMNET5fe4c722a8){union +DATARMNETe0a7777e12*DATARMNET699c2c62cd,DATARMNETee66845de4;union +DATARMNETe0a7777e12*DATARMNET8814564ab9,DATARMNETa27d4d22be;struct +rmnet_frag_descriptor*DATARMNET48cfce4de4;u32 DATARMNET3c3abe9e2c, +DATARMNETefc9df3df2;DATARMNET48cfce4de4=list_first_entry(&DATARMNETaa568481cf-> +DATARMNETb76b79d0d5,struct rmnet_frag_descriptor,list);DATARMNET699c2c62cd= +rmnet_frag_header_ptr(DATARMNET48cfce4de4,DATARMNETaa568481cf-> +DATARMNET78fd20ce0e.DATARMNET4ca5ac9de1,DATARMNETaa568481cf->DATARMNET78fd20ce0e +.DATARMNET0aeee57ceb,&DATARMNETee66845de4);if(!DATARMNET699c2c62cd)return true; +DATARMNET8814564ab9=rmnet_frag_header_ptr(DATARMNET5fe4c722a8-> +DATARMNET719f68fb88,DATARMNET5fe4c722a8->DATARMNET144d119066.DATARMNET4ca5ac9de1 +,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;} diff --git a/techpack/datarmnet-ext/offload/rmnet_offload_tcp.h b/techpack/datarmnet-ext/offload/rmnet_offload_tcp.h new file mode 100644 index 000000000000..d695e7601bc4 --- /dev/null +++ b/techpack/datarmnet-ext/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 DATARMNET1f0bf20b47 +#define DATARMNET1f0bf20b47 +#include "rmnet_offload_main.h" +#include "rmnet_offload_engine.h" +bool DATARMNET4c7cdc25b7(struct DATARMNETd7c9631acd*DATARMNETaa568481cf,struct +DATARMNETd812bcdbb5*DATARMNET5fe4c722a8,bool DATARMNETd87669e323); +#endif diff --git a/techpack/datarmnet-ext/offload/rmnet_offload_udp.c b/techpack/datarmnet-ext/offload/rmnet_offload_udp.c new file mode 100644 index 000000000000..fb3b824027ad --- /dev/null +++ b/techpack/datarmnet-ext/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 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/techpack/datarmnet-ext/offload/rmnet_offload_udp.h b/techpack/datarmnet-ext/offload/rmnet_offload_udp.h new file mode 100644 index 000000000000..bc702390def6 --- /dev/null +++ b/techpack/datarmnet-ext/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 DATARMNETd4ae2cf0b5 +#define DATARMNETd4ae2cf0b5 +#include "rmnet_offload_main.h" +#include "rmnet_offload_engine.h" +bool DATARMNET8dc47eb7af(struct DATARMNETd7c9631acd*DATARMNETaa568481cf,struct +DATARMNETd812bcdbb5*DATARMNET5fe4c722a8,bool DATARMNETd87669e323); +#endif diff --git a/techpack/datarmnet-ext/shs/Android.mk b/techpack/datarmnet-ext/shs/Android.mk new file mode 100644 index 000000000000..09ca5f45369e --- /dev/null +++ b/techpack/datarmnet-ext/shs/Android.mk @@ -0,0 +1,46 @@ +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 +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/techpack/datarmnet-ext/shs/Kbuild b/techpack/datarmnet-ext/shs/Kbuild new file mode 100644 index 000000000000..030d5f66b375 --- /dev/null +++ b/techpack/datarmnet-ext/shs/Kbuild @@ -0,0 +1,15 @@ +#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) \ + $(call cc-option,-Wno-misleading-indentation) +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/techpack/datarmnet-ext/shs/Kconfig b/techpack/datarmnet-ext/shs/Kconfig new file mode 100644 index 000000000000..41b0e08e8123 --- /dev/null +++ b/techpack/datarmnet-ext/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/techpack/datarmnet-ext/shs/Makefile b/techpack/datarmnet-ext/shs/Makefile new file mode 100644 index 000000000000..d2989ad7081f --- /dev/null +++ b/techpack/datarmnet-ext/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/techpack/datarmnet-ext/shs/rmnet_shs.h b/techpack/datarmnet-ext/shs/rmnet_shs.h new file mode 100644 index 000000000000..3f7494b23733 --- /dev/null +++ b/techpack/datarmnet-ext/shs/rmnet_shs.h @@ -0,0 +1,153 @@ +/* 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 + * 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 (0xeb7+1101-0x12f5) +#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) +#define DATARMNET7a815512d3 (0xef7+1100-0x12fd) +#define DATARMNET270b564b55 (0xd35+210-0xdff) +#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 DATARMNETfbee9e182e 60000 +#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 DATARMNETba3f7a11ef;u8 map_mask;u8 + 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 +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 +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/techpack/datarmnet-ext/shs/rmnet_shs_common.c b/techpack/datarmnet-ext/shs/rmnet_shs_common.c new file mode 100644 index 000000000000..dc78c11eaaf9 --- /dev/null +++ b/techpack/datarmnet-ext/shs/rmnet_shs_common.c @@ -0,0 +1,173 @@ +/* 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 + * 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);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 +,(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 DATARMNETd5c15f1ff3(void*priv,struct list_head* +DATARMNET9cf7d31274,struct list_head*DATARMNET5444bd3b6f){struct +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( +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->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); +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->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;} +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", +"\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" +, +"\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" +, +"\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" +, +"\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" +, +"\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" +, +"\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( +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) +))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,& +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( +"\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); +}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__);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/techpack/datarmnet-ext/shs/rmnet_shs_config.h b/techpack/datarmnet-ext/shs/rmnet_shs_config.h new file mode 100644 index 000000000000..ac99913202f5 --- /dev/null +++ b/techpack/datarmnet-ext/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/techpack/datarmnet-ext/shs/rmnet_shs_freq.c b/techpack/datarmnet-ext/shs/rmnet_shs_freq.c new file mode 100644 index 000000000000..7d58dc0e8bea --- /dev/null +++ b/techpack/datarmnet-ext/shs/rmnet_shs_freq.c @@ -0,0 +1,80 @@ +/* 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 +#include +#define DATARMNET81fe789d21 INT_MAX +#define MIN_FREQ (0xd2d+202-0xdf7) +#define DATARMNET59b491fbc9 DATARMNET81fe789d21 +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 +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);}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);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. +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();if(DATARMNETde8f350999){ +destroy_workqueue(DATARMNETde8f350999);DATARMNETde8f350999=NULL;}free_percpu( +DATARMNETc4b1be7898.DATARMNET9dd9bc4abb);return(0xd2d+202-0xdf7);} diff --git a/techpack/datarmnet-ext/shs/rmnet_shs_freq.h b/techpack/datarmnet-ext/shs/rmnet_shs_freq.h new file mode 100644 index 000000000000..975d4a35865c --- /dev/null +++ b/techpack/datarmnet-ext/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/techpack/datarmnet-ext/shs/rmnet_shs_main.c b/techpack/datarmnet-ext/shs/rmnet_shs_main.c new file mode 100644 index 000000000000..c9377f4633a1 --- /dev/null +++ b/techpack/datarmnet-ext/shs/rmnet_shs_main.c @@ -0,0 +1,764 @@ +/* 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 + * 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 +#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" +#include +#include +#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 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(\ +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];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, +*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(); +DATARMNET421230d879=(DATARMNET3de2536baf(DATARMNETa7a5705ab0).qlen+ +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= +(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== +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 +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 +){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, +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 +->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;u8 DATARMNETd4a0b11b47;u8 DATARMNET7dc3d97229;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){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);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( +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 +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);DATARMNET42a992465f_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;} +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(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; +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* +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->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); +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=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 +){DATARMNETcebafc57a4=skb->next;if(DATARMNET63b1a086d5->DATARMNET6250e93187)skb +->hash=DATARMNET1fcbf046ec;skb->next=NULL;DATARMNETe20a9cab2b+=(0xd26+209-0xdf6) +;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 +(DATARMNET720469c0a9,DATARMNET998c6de143,(0x16e8+787-0xc0c),(0x16e8+787-0xc0c), +(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),NULL,NULL);}if(DATARMNETe488c1c396( +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= +(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->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,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){ +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;DATARMNETecc0627c70. +DATARMNETba3f7a11ef=(0xd1f+216-0xdf5);DATARMNETecc0627c70.DATARMNET5c24e1df05= +(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!= +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(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&&( +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] +++;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);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);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( +"\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,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(!( +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.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/techpack/datarmnet-ext/shs/rmnet_shs_modules.c b/techpack/datarmnet-ext/shs/rmnet_shs_modules.c new file mode 100644 index 000000000000..2fc3f4d2c9f1 --- /dev/null +++ b/techpack/datarmnet-ext/shs/rmnet_shs_modules.c @@ -0,0 +1,211 @@ +/* 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 + * 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={ +DATARMNETfbee9e182e,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=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=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=(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" +);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 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 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, +"\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/techpack/datarmnet-ext/shs/rmnet_shs_modules.h b/techpack/datarmnet-ext/shs/rmnet_shs_modules.h new file mode 100644 index 000000000000..13544af0b8ca --- /dev/null +++ b/techpack/datarmnet-ext/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 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 + diff --git a/techpack/datarmnet-ext/shs/rmnet_shs_wq.c b/techpack/datarmnet-ext/shs/rmnet_shs_wq.c new file mode 100644 index 000000000000..ed7f137d5b8b --- /dev/null +++ b/techpack/datarmnet-ext/shs/rmnet_shs_wq.c @@ -0,0 +1,840 @@ +/* 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 + * 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-> +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(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); +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-> +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;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 +;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;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 +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=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( +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 +DATARMNET9b44b71ee9*ep=NULL;u16 DATARMNETcfb5dc7296;list_for_each_entry(ep,& +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&~ +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" +,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->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->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){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,& +DATARMNET3c489db64a);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)||(((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)* +DATARMNETc6782fed88);do{DATARMNET9025861a27=DATARMNET362c14e98b( +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){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( +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); +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){ +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->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-> +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->DATARMNET7c894c2f8fDATARMNET7c894c2f8f;DATARMNET2d482e7d9f +[DATARMNET421230d879]++;}DATARMNETc790ff30fc=DATARMNETd2a694d52a-> +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); +DATARMNETb3a4036d6d=DATARMNETe6671dbf38(time.tv_sec)+time.tv_nsec; +DATARMNET039ac6d55d();DATARMNETe46c480d71();list_for_each_entry( +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,& +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); +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); +rcu_read_lock();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 +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/techpack/datarmnet-ext/shs/rmnet_shs_wq.h b/techpack/datarmnet-ext/shs/rmnet_shs_wq.h new file mode 100644 index 000000000000..9949242aeff9 --- /dev/null +++ b/techpack/datarmnet-ext/shs/rmnet_shs_wq.h @@ -0,0 +1,125 @@ +/* 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 + * 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 DATARMNETac617c8dce(DATARMNET5f1b691e95) ((DATARMNET5f1b691e95)*1000000\ + ) +#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, +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 + 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(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 +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/techpack/datarmnet-ext/shs/rmnet_shs_wq_genl.c b/techpack/datarmnet-ext/shs/rmnet_shs_wq_genl.c new file mode 100644 index 000000000000..272216c2c914 --- /dev/null +++ b/techpack/datarmnet-ext/shs/rmnet_shs_wq_genl.c @@ -0,0 +1,185 @@ +/* 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 + * 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 +);if(DATARMNET7f0ce2d6ad.DATARMNETa3f89581b5==DATARMNET5dccc475d4){if(!(( +(0xd26+209-0xdf6)<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/techpack/datarmnet-ext/shs/rmnet_shs_wq_genl.h b/techpack/datarmnet-ext/shs/rmnet_shs_wq_genl.h new file mode 100644 index 000000000000..81b606a51d52 --- /dev/null +++ b/techpack/datarmnet-ext/shs/rmnet_shs_wq_genl.h @@ -0,0 +1,46 @@ +/* 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 + * 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 DATARMNET2d19c9b1ef (0xcc7+5761-0x221c) +#define DATARMNET96de786762 (0xcc7+5754-0x2214) +#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/techpack/datarmnet-ext/shs/rmnet_shs_wq_mem.c b/techpack/datarmnet-ext/shs/rmnet_shs_wq_mem.c new file mode 100644 index 000000000000..58cd61735563 --- /dev/null +++ b/techpack/datarmnet-ext/shs/rmnet_shs_wq_mem.c @@ -0,0 +1,521 @@ +/* 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);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 +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);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);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(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->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->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->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->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);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();} diff --git a/techpack/datarmnet-ext/shs/rmnet_shs_wq_mem.h b/techpack/datarmnet-ext/shs/rmnet_shs_wq_mem.h new file mode 100644 index 000000000000..d95dbd2e3121 --- /dev/null +++ b/techpack/datarmnet-ext/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 +