mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-07 04:12:04 -04:00
Add 'techpack/datarmnet-ext/' from tag 'LA.UM.9.14.r1-18300-LAHAINA.0'
git-subtree-dir: techpack/datarmnet-ext git-subtree-mainline:d9efe6cda3git-subtree-split:5d395e5560Change-Id: Id27d4ca0c699d7f9e26a870deee5ec5194b768bb
This commit is contained in:
commit
2d46776923
40 changed files with 4581 additions and 0 deletions
|
|
@ -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
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
PRODUCT_PACKAGES += rmnet_offload.ko
|
||||
PRODUCT_PACKAGES += rmnet_shs.ko
|
||||
45
techpack/datarmnet-ext/offload/Android.mk
Normal file
45
techpack/datarmnet-ext/offload/Android.mk
Normal file
|
|
@ -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
|
||||
11
techpack/datarmnet-ext/offload/Kbuild
Normal file
11
techpack/datarmnet-ext/offload/Kbuild
Normal file
|
|
@ -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
|
||||
10
techpack/datarmnet-ext/offload/Kconfig
Normal file
10
techpack/datarmnet-ext/offload/Kconfig
Normal file
|
|
@ -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
|
||||
13
techpack/datarmnet-ext/offload/Makefile
Normal file
13
techpack/datarmnet-ext/offload/Makefile
Normal file
|
|
@ -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
|
||||
180
techpack/datarmnet-ext/offload/rmnet_offload_engine.c
Normal file
180
techpack/datarmnet-ext/offload/rmnet_offload_engine.c
Normal file
|
|
@ -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 <linux/log2.h>
|
||||
#include <linux/list.h>
|
||||
#include <linux/hashtable.h>
|
||||
#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);DATARMNETefc9df3df2<DATARMNET78d9393ac8;DATARMNETefc9df3df2++)
|
||||
{struct DATARMNETd7c9631acd*DATARMNETaa568481cf;DATARMNETaa568481cf=&
|
||||
DATARMNETe05748b000->DATARMNETebb45c8d86.DATARMNET2846a01cce[DATARMNETefc9df3df2
|
||||
];INIT_LIST_HEAD(&DATARMNETaa568481cf->DATARMNETb76b79d0d5);INIT_HLIST_NODE(&
|
||||
DATARMNETaa568481cf->DATARMNETbd5d7d96d8);}return DATARMNET0529bb9c4e;}
|
||||
35
techpack/datarmnet-ext/offload/rmnet_offload_engine.h
Normal file
35
techpack/datarmnet-ext/offload/rmnet_offload_engine.h
Normal file
|
|
@ -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 <linux/types.h>
|
||||
#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
|
||||
|
||||
75
techpack/datarmnet-ext/offload/rmnet_offload_knob.c
Normal file
75
techpack/datarmnet-ext/offload/rmnet_offload_knob.c
Normal file
|
|
@ -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 <linux/moduleparam.h>
|
||||
#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)
|
||||
DATARMNETcd597b0a1b<DATARMNET0751f2024d->DATARMNET949fb858da||(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;}
|
||||
18
techpack/datarmnet-ext/offload/rmnet_offload_knob.h
Normal file
18
techpack/datarmnet-ext/offload/rmnet_offload_knob.h
Normal file
|
|
@ -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 <linux/types.h>
|
||||
enum{DATARMNETdf66588a73,DATARMNET9c85bb95a3,DATARMNET6d2ed4b822,
|
||||
DATARMNET94aa767bca,};u64 DATARMNETf1d1b8287f(u32 DATARMNET4c4a5ce272);
|
||||
#endif
|
||||
252
techpack/datarmnet-ext/offload/rmnet_offload_main.c
Normal file
252
techpack/datarmnet-ext/offload/rmnet_offload_main.c
Normal file
|
|
@ -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 <linux/compiler.h>
|
||||
#include <linux/rcupdate.h>
|
||||
#include <linux/jhash.h>
|
||||
#include <linux/spinlock.h>
|
||||
#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();}
|
||||
73
techpack/datarmnet-ext/offload/rmnet_offload_main.h
Normal file
73
techpack/datarmnet-ext/offload/rmnet_offload_main.h
Normal file
|
|
@ -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 <linux/types.h>
|
||||
#include <asm/byteorder.h>
|
||||
#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 "<asm/byteorder.h> 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 "<asm/byteorder.h> 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
|
||||
|
||||
98
techpack/datarmnet-ext/offload/rmnet_offload_state.c
Normal file
98
techpack/datarmnet-ext/offload/rmnet_offload_state.c
Normal file
|
|
@ -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 <linux/module.h>
|
||||
#include <linux/netdevice.h>
|
||||
#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);
|
||||
30
techpack/datarmnet-ext/offload/rmnet_offload_state.h
Normal file
30
techpack/datarmnet-ext/offload/rmnet_offload_state.h
Normal file
|
|
@ -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
|
||||
|
||||
20
techpack/datarmnet-ext/offload/rmnet_offload_stats.c
Normal file
20
techpack/datarmnet-ext/offload/rmnet_offload_stats.c
Normal file
|
|
@ -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 <linux/moduleparam.h>
|
||||
#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<DATARMNETd04f96aa13)DATARMNET6c78aba0c8[DATARMNET248f120dd5]
|
||||
+=DATARMNETb639f6e1b1;}void DATARMNETa00cda79d0(u32 DATARMNET248f120dd5){
|
||||
DATARMNETbad3b5165e(DATARMNET248f120dd5,(0xd26+209-0xdf6));}
|
||||
27
techpack/datarmnet-ext/offload/rmnet_offload_stats.h
Normal file
27
techpack/datarmnet-ext/offload/rmnet_offload_stats.h
Normal file
|
|
@ -0,0 +1,27 @@
|
|||
/* 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 DATARMNETbc7bfad32a
|
||||
#define DATARMNETbc7bfad32a
|
||||
#include <linux/types.h>
|
||||
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
|
||||
|
||||
82
techpack/datarmnet-ext/offload/rmnet_offload_tcp.c
Normal file
82
techpack/datarmnet-ext/offload/rmnet_offload_tcp.c
Normal file
|
|
@ -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 <linux/list.h>
|
||||
#include "rmnet_descriptor.h"
|
||||
#include "rmnet_offload_main.h"
|
||||
#include "rmnet_offload_engine.h"
|
||||
#include "rmnet_offload_stats.h"
|
||||
#include "rmnet_offload_knob.h"
|
||||
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;}
|
||||
19
techpack/datarmnet-ext/offload/rmnet_offload_tcp.h
Normal file
19
techpack/datarmnet-ext/offload/rmnet_offload_tcp.h
Normal file
|
|
@ -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
|
||||
39
techpack/datarmnet-ext/offload/rmnet_offload_udp.c
Normal file
39
techpack/datarmnet-ext/offload/rmnet_offload_udp.c
Normal file
|
|
@ -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;}
|
||||
19
techpack/datarmnet-ext/offload/rmnet_offload_udp.h
Normal file
19
techpack/datarmnet-ext/offload/rmnet_offload_udp.h
Normal file
|
|
@ -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
|
||||
46
techpack/datarmnet-ext/shs/Android.mk
Normal file
46
techpack/datarmnet-ext/shs/Android.mk
Normal file
|
|
@ -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
|
||||
15
techpack/datarmnet-ext/shs/Kbuild
Normal file
15
techpack/datarmnet-ext/shs/Kbuild
Normal file
|
|
@ -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
|
||||
10
techpack/datarmnet-ext/shs/Kconfig
Normal file
10
techpack/datarmnet-ext/shs/Kconfig
Normal file
|
|
@ -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
|
||||
13
techpack/datarmnet-ext/shs/Makefile
Normal file
13
techpack/datarmnet-ext/shs/Makefile
Normal file
|
|
@ -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
|
||||
153
techpack/datarmnet-ext/shs/rmnet_shs.h
Normal file
153
techpack/datarmnet-ext/shs/rmnet_shs.h
Normal file
|
|
@ -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 <linux/skbuff.h>
|
||||
#include <linux/in.h>
|
||||
#include <linux/ip.h>
|
||||
#include <linux/ipv6.h>
|
||||
#include <linux/tcp.h>
|
||||
#include <linux/udp.h>
|
||||
#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
|
||||
|
||||
173
techpack/datarmnet-ext/shs/rmnet_shs_common.c
Normal file
173
techpack/datarmnet-ext/shs/rmnet_shs_common.c
Normal file
|
|
@ -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){
|
||||
DATARMNET443cf5aaaf[cpu]+=count;}}u64 DATARMNETfc888b4d3e(u16 cpu){if(cpu>=
|
||||
DATARMNETc6782fed88){DATARMNET68d84e7b98[DATARMNET54b67b8a75]++;return
|
||||
(0xd2d+202-0xdf7);}return DATARMNET713717107f[cpu];}inline int
|
||||
DATARMNET362b15f941(u16 cpu){return!(((0xd26+209-0xdf6)<<cpu)&
|
||||
DATARMNETbc3c416b77);}u32 DATARMNETadb0248bd4(u8 DATARMNET42a992465f){u32 ret=
|
||||
(0xd2d+202-0xdf7);if(DATARMNET42a992465f<DATARMNETc6782fed88)ret=
|
||||
DATARMNET0997c5650d[DATARMNET42a992465f].DATARMNETae196235f2;DATARMNETda96251102
|
||||
(DATARMNET75d955c408,DATARMNET9f467b9ce4,DATARMNET42a992465f,ret,
|
||||
(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),NULL,NULL);return ret;}u32
|
||||
DATARMNETeb3978575d(u8 DATARMNET42a992465f){u32 ret=(0xd2d+202-0xdf7);if(
|
||||
DATARMNET42a992465f<DATARMNETc6782fed88)ret=DATARMNET0997c5650d[
|
||||
DATARMNET42a992465f].qtail;DATARMNETda96251102(DATARMNET75d955c408,
|
||||
DATARMNETc154fd2d48,DATARMNET42a992465f,ret,(0x16e8+787-0xc0c),
|
||||
(0x16e8+787-0xc0c),NULL,NULL);return ret;}u32 DATARMNETeea3cef5b6(u8
|
||||
DATARMNET42a992465f){u32 ret=(0xd2d+202-0xdf7);if(DATARMNET42a992465f<
|
||||
DATARMNETc6782fed88)ret=DATARMNET0997c5650d[DATARMNET42a992465f].
|
||||
DATARMNET96571b28de;DATARMNETda96251102(DATARMNET75d955c408,DATARMNETc154fd2d48,
|
||||
DATARMNET42a992465f,ret,(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),NULL,NULL);return
|
||||
ret;}int DATARMNET3c489db64a(void*priv,struct list_head*DATARMNET9cf7d31274,
|
||||
struct list_head*DATARMNET5444bd3b6f){struct DATARMNET13c47d154e*
|
||||
DATARMNET40e125212a;struct DATARMNET13c47d154e*DATARMNETdcaff77beb;if(!
|
||||
DATARMNET9cf7d31274||!DATARMNET5444bd3b6f)return(0xd2d+202-0xdf7);
|
||||
DATARMNET40e125212a=list_entry(DATARMNET9cf7d31274,struct DATARMNET13c47d154e,
|
||||
DATARMNETec0e3cb8f0);DATARMNETdcaff77beb=list_entry(DATARMNET5444bd3b6f,struct
|
||||
DATARMNET13c47d154e,DATARMNETec0e3cb8f0);if(DATARMNET40e125212a->
|
||||
DATARMNET253a9fc708>DATARMNETdcaff77beb->DATARMNET253a9fc708)return-
|
||||
(0xd26+209-0xdf6);else if(DATARMNET40e125212a->DATARMNET253a9fc708<
|
||||
DATARMNETdcaff77beb->DATARMNET253a9fc708)return(0xd26+209-0xdf6);return
|
||||
(0xd2d+202-0xdf7);}int 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->
|
||||
DATARMNET253a9fc708<DATARMNETdcaff77beb->DATARMNET253a9fc708)return
|
||||
(0xd26+209-0xdf6);return(0xd2d+202-0xdf7);}int DATARMNET85af86a36d(void*priv,
|
||||
struct list_head*DATARMNET9cf7d31274,struct list_head*DATARMNET5444bd3b6f){
|
||||
struct DATARMNET47a6995138*DATARMNETdad817a72a;struct DATARMNET47a6995138*
|
||||
DATARMNET11d167e92b;if(!DATARMNET9cf7d31274||!DATARMNET5444bd3b6f)return
|
||||
(0xd2d+202-0xdf7);DATARMNETdad817a72a=list_entry(DATARMNET9cf7d31274,struct
|
||||
DATARMNET47a6995138,DATARMNET02523bfb57);DATARMNET11d167e92b=list_entry(
|
||||
DATARMNET5444bd3b6f,struct DATARMNET47a6995138,DATARMNET02523bfb57);if(
|
||||
DATARMNETdad817a72a->DATARMNET4da6031170>DATARMNET11d167e92b->
|
||||
DATARMNET4da6031170)return-(0xd26+209-0xdf6);else if(DATARMNETdad817a72a->
|
||||
DATARMNET4da6031170<DATARMNET11d167e92b->DATARMNET4da6031170)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(
|
||||
DATARMNETde5894dad9<DATARMNETd9e9d4ff7e){if(ep->DATARMNET5af04d0405[
|
||||
DATARMNETde5894dad9]>=(0xd2d+202-0xdf7)){DATARMNET895df156d7=ep->
|
||||
DATARMNET5af04d0405[DATARMNETde5894dad9];break;}DATARMNETde5894dad9++;}if((
|
||||
DATARMNET895df156d7>=(0xd2d+202-0xdf7))||((ep->DATARMNET6bda8fe27e+
|
||||
(0xd26+209-0xdf6))>=ep->DATARMNETd7a83774f8))ep->DATARMNET6bda8fe27e=((ep->
|
||||
DATARMNET6bda8fe27e+(0xd26+209-0xdf6))%ep->DATARMNETd7a83774f8);
|
||||
spin_unlock_irqrestore(&DATARMNETec2a4f5211,flags);return DATARMNET895df156d7;}
|
||||
int DATARMNET98b2a0ce62(struct net_device*dev){struct DATARMNET9b44b71ee9*ep=
|
||||
NULL;int DATARMNET895df156d7=-(0xd26+209-0xdf6);u8 DATARMNETcc5b7cd962;u8
|
||||
DATARMNET15bde5cb53;u8 is_match_found=(0xd2d+202-0xdf7);unsigned long flags;if(!
|
||||
dev){DATARMNET68d84e7b98[DATARMNETf5157a9b85]++;return DATARMNET895df156d7;}
|
||||
spin_lock_irqsave(&DATARMNETec2a4f5211,flags);list_for_each_entry(ep,&
|
||||
DATARMNET30a3e83974,DATARMNET0763436b8d){if(!ep->DATARMNET4a4e6f66b5)continue;if
|
||||
(ep->ep==dev){is_match_found=(0xd26+209-0xdf6);break;}}if(!is_match_found){
|
||||
DATARMNET68d84e7b98[DATARMNETb8fe2c0e64]++;spin_unlock_irqrestore(&
|
||||
DATARMNETec2a4f5211,flags);return DATARMNET895df156d7;}DATARMNETcc5b7cd962=ep->
|
||||
DATARMNET121a654efd;DATARMNET15bde5cb53=ep->DATARMNET847276e5af;while(
|
||||
DATARMNETcc5b7cd962<DATARMNET15bde5cb53){if(ep->DATARMNET7167e10d99[
|
||||
DATARMNETcc5b7cd962]>=(0xd2d+202-0xdf7)){DATARMNET895df156d7=ep->
|
||||
DATARMNET7167e10d99[DATARMNETcc5b7cd962];break;}DATARMNETcc5b7cd962++;}if(
|
||||
DATARMNET895df156d7>=(0xd2d+202-0xdf7))ep->DATARMNET121a654efd=((
|
||||
DATARMNETcc5b7cd962+(0xd26+209-0xdf6))%DATARMNET15bde5cb53);
|
||||
spin_unlock_irqrestore(&DATARMNETec2a4f5211,flags);return DATARMNET895df156d7;}
|
||||
void DATARMNET7f1d9480cb(void*port){DATARMNET4063c95208();}void
|
||||
DATARMNETa4bd2ef52c(void*port){DATARMNET7b6c061b06();}u8 DATARMNET928c931df9(
|
||||
struct rps_map*map){u8 mask=(0xd2d+202-0xdf7);u8 i;for(i=(0xd2d+202-0xdf7);i<map
|
||||
->len;i++)mask|=(0xd26+209-0xdf6)<<map->cpus[i];return mask;}int
|
||||
DATARMNET310c3eb16e(u8 mask){u8 i;u8 DATARMNETc2284e5688=(0xd2d+202-0xdf7);for(i
|
||||
=(0xd2d+202-0xdf7);i<DATARMNETc6782fed88;i++){if(mask&((0xd26+209-0xdf6)<<i))
|
||||
DATARMNETc2284e5688++;}return DATARMNETc2284e5688;}
|
||||
46
techpack/datarmnet-ext/shs/rmnet_shs_common.h
Normal file
46
techpack/datarmnet-ext/shs/rmnet_shs_common.h
Normal file
|
|
@ -0,0 +1,46 @@
|
|||
/* Copyright (c) 2020 The Linux Foundation. All rights reserved.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License version 2 and
|
||||
* only version 2 as published by the Free Software Foundation.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
*/
|
||||
|
||||
#include "rmnet_shs.h"
|
||||
#include "rmnet_shs_wq.h"
|
||||
#ifndef DATARMNET4e9dcb0338
|
||||
#define DATARMNET4e9dcb0338
|
||||
void DATARMNET4095253347(struct DATARMNET9b44b71ee9*ep);void DATARMNETf7d317ed55
|
||||
(struct DATARMNET9b44b71ee9*ep);void DATARMNET36e5e526fa(struct
|
||||
DATARMNET6c78e47d24*DATARMNETd2a694d52a);void DATARMNET2fe780019f(struct
|
||||
DATARMNET6c78e47d24*DATARMNETd2a694d52a);void DATARMNETd8a6375e9c(struct
|
||||
DATARMNET6c78e47d24*DATARMNETd2a694d52a,struct list_head*head);void
|
||||
DATARMNET9914e9761e(struct DATARMNET6c78e47d24*DATARMNETd2a694d52a,struct
|
||||
list_head*head);void DATARMNET6bf538fa23(void);void DATARMNETaea4c85748(void);
|
||||
void DATARMNETe46c480d71(void);void DATARMNETde8ee16f92(struct
|
||||
DATARMNET63d7680df2*DATARMNET63b1a086d5);void DATARMNET3e37ad2816(struct
|
||||
DATARMNET63d7680df2*DATARMNET63b1a086d5,struct list_head*DATARMNET4d030eb9b5);
|
||||
void DATARMNETe102b3a798(struct DATARMNET63d7680df2*DATARMNET63b1a086d5,struct
|
||||
list_head*DATARMNET4d030eb9b5,int DATARMNETa7a5705ab0);void DATARMNET4bde88919f(
|
||||
u8 cpu,int count);inline int DATARMNET362b15f941(u16 cpu);u64
|
||||
DATARMNETfc888b4d3e(u16 cpu);u32 DATARMNETeb3978575d(u8 DATARMNET42a992465f);u32
|
||||
DATARMNETeea3cef5b6(u8 DATARMNET42a992465f);u8 DATARMNET928c931df9(struct
|
||||
rps_map*map);int DATARMNET3c489db64a(void*priv,struct list_head*
|
||||
DATARMNET9cf7d31274,struct list_head*DATARMNET5444bd3b6f);int
|
||||
DATARMNETd5c15f1ff3(void*priv,struct list_head*DATARMNET9cf7d31274,struct
|
||||
list_head*DATARMNET5444bd3b6f);int DATARMNET85af86a36d(void*priv,struct
|
||||
list_head*DATARMNET9cf7d31274,struct list_head*DATARMNET5444bd3b6f);int
|
||||
DATARMNETf181a18009(struct net_device*dev);int DATARMNET98b2a0ce62(struct
|
||||
net_device*dev);void DATARMNET7f1d9480cb(void*port);void DATARMNETa4bd2ef52c(
|
||||
void*port);int DATARMNET310c3eb16e(u8 mask);void DATARMNETb4a6870b3b(struct
|
||||
DATARMNET6c78e47d24*DATARMNETd2a694d52a);void DATARMNETd8a6375e9c(struct
|
||||
DATARMNET6c78e47d24*DATARMNETd2a694d52a,struct list_head*head);void
|
||||
DATARMNET9914e9761e(struct DATARMNET6c78e47d24*DATARMNETd2a694d52a,struct
|
||||
list_head*head);extern struct list_head DATARMNET9825511866;
|
||||
#endif
|
||||
|
||||
126
techpack/datarmnet-ext/shs/rmnet_shs_config.c
Normal file
126
techpack/datarmnet-ext/shs/rmnet_shs_config.c
Normal file
|
|
@ -0,0 +1,126 @@
|
|||
/* 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 <linux/kernel.h>
|
||||
#include <linux/netdevice.h>
|
||||
#include <linux/module.h>
|
||||
#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);
|
||||
26
techpack/datarmnet-ext/shs/rmnet_shs_config.h
Normal file
26
techpack/datarmnet-ext/shs/rmnet_shs_config.h
Normal file
|
|
@ -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 <linux/init.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/netdevice.h>
|
||||
#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
|
||||
|
||||
80
techpack/datarmnet-ext/shs/rmnet_shs_freq.c
Normal file
80
techpack/datarmnet-ext/shs/rmnet_shs_freq.c
Normal file
|
|
@ -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 <linux/module.h>
|
||||
#include "rmnet_shs.h"
|
||||
#include "rmnet_shs_freq.h"
|
||||
#include <linux/cpufreq.h>
|
||||
#include <linux/cpu.h>
|
||||
#include <linux/pm_qos.h>
|
||||
#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)<<i)&DATARMNETbc3c416b77)continue;DATARMNETe24d518157=
|
||||
per_cpu_ptr(DATARMNETc4b1be7898.DATARMNET9dd9bc4abb,i);DATARMNETddcafd8b91=&
|
||||
per_cpu(DATARMNET17d6a9530a,i);ret=freq_qos_update_request(DATARMNETddcafd8b91,
|
||||
DATARMNETe24d518157->DATARMNET103c8d34fe);}put_online_cpus();}void
|
||||
DATARMNET82d7f4ffa2(void){struct cpu_freq*DATARMNETe24d518157;int i;
|
||||
for_each_possible_cpu(i){DATARMNETe24d518157=per_cpu_ptr(DATARMNETc4b1be7898.
|
||||
DATARMNET9dd9bc4abb,i);DATARMNETe24d518157->DATARMNET103c8d34fe=MIN_FREQ;
|
||||
DATARMNETe24d518157->DATARMNET1159aa2cb6=DATARMNET81fe789d21;}}void
|
||||
DATARMNETfb7007f025(void){struct cpu_freq*DATARMNETe24d518157;int i;
|
||||
for_each_possible_cpu(i){if(((0xd26+209-0xdf6)<<i)&DATARMNETbc3c416b77)continue;
|
||||
DATARMNETe24d518157=per_cpu_ptr(DATARMNETc4b1be7898.DATARMNET9dd9bc4abb,i);
|
||||
DATARMNETe24d518157->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)<<i)&DATARMNETbc3c416b77)continue;
|
||||
DATARMNETe24d518157=per_cpu_ptr(DATARMNETc4b1be7898.DATARMNET9dd9bc4abb,i);
|
||||
DATARMNETe24d518157->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);}
|
||||
19
techpack/datarmnet-ext/shs/rmnet_shs_freq.h
Normal file
19
techpack/datarmnet-ext/shs/rmnet_shs_freq.h
Normal file
|
|
@ -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
|
||||
|
||||
764
techpack/datarmnet-ext/shs/rmnet_shs_main.c
Normal file
764
techpack/datarmnet-ext/shs/rmnet_shs_main.c
Normal file
|
|
@ -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 <net/sock.h>
|
||||
#include <linux/netlink.h>
|
||||
#include <linux/ip.h>
|
||||
#include <linux/cpu.h>
|
||||
#include <linux/oom.h>
|
||||
#include <net/ip.h>
|
||||
#include <linux/cpu.h>
|
||||
#include <linux/bitmap.h>
|
||||
#include <linux/netdevice.h>
|
||||
#include <linux/kernel.h>
|
||||
#include <linux/smp.h>
|
||||
#include <linux/ipv6.h>
|
||||
#include <linux/netdevice.h>
|
||||
#include <linux/percpu-defs.h>
|
||||
#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 <linux/module.h>
|
||||
#include <linux/cpumask.h>
|
||||
#define DATARMNET2f67183a86 2000000
|
||||
#define DATARMNET68fc0be252 1000000
|
||||
#define DATARMNETd391fbd694 (0xd2d+202-0xdf7)
|
||||
#define DATARMNETae2e980d66 (0xd11+230-0xdf3)
|
||||
#define DATARMNET249a927510 (0xd27+224-0xdfd)
|
||||
#define DATARMNET904145ccb9 (0xd11+230-0xdf3)
|
||||
#define DATARMNETb91aee91fd -(0xd26+209-0xdf6)
|
||||
#define DATARMNET00d5787aad 2000000
|
||||
#define DATARMNET8948dc953d (0xd0a+237-0xdf2)
|
||||
#define DATARMNET20dc6bb36b (0xd26+209-0xdf6)
|
||||
#define 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);i<shinfo->nr_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=(
|
||||
DATARMNETa1ac2608b5<DATARMNET8948dc953d)?DATARMNET8948dc953d:DATARMNETa1ac2608b5
|
||||
;getnstimeofday(&DATARMNET2e47295bf1);DATARMNET736ac5582e=&DATARMNETecc0627c70.
|
||||
DATARMNET132b9c7dc4[cpu].DATARMNET251b97a380;DATARMNETb64270afc1=
|
||||
DATARMNETe6671dbf38(DATARMNET2e47295bf1.tv_sec-DATARMNET736ac5582e->tv_sec)+
|
||||
DATARMNET2e47295bf1.tv_nsec-DATARMNET736ac5582e->tv_nsec;if(DATARMNETb64270afc1
|
||||
>=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);idx<DATARMNETc6782fed88;idx++){if(node_p->DATARMNET341ea38662
|
||||
->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<DATARMNETc6782fed88)ret=((((index+((DATARMNET0258668025%
|
||||
(0xd1f+216-0xdf5))?(0xd26+209-0xdf6):(0xd2d+202-0xdf7))))<<(0xec7+1122-0x130d))*
|
||||
DATARMNETebbd4cd1d9[(DATARMNET0258668025-(0xd26+209-0xdf6))>>(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)<<i)))continue;if(mask&(
|
||||
(0xd26+209-0xdf6)<<i))DATARMNET05e5e122cd++;if(list_empty(&DATARMNET0997c5650d[i
|
||||
].DATARMNET3dc4262f53))return i;if(DATARMNETcff375d916[i]<=DATARMNETd416f5b047||
|
||||
DATARMNETd416f5b047==DATARMNETb91aee91fd){ret=i;DATARMNETd416f5b047=
|
||||
DATARMNETcff375d916[i];}}return ret;}static int DATARMNETaef946bb68(u8 index,u8
|
||||
mask){int ret=DATARMNETb91aee91fd;u8 DATARMNET05e5e122cd=(0xd2d+202-0xdf7);u8 i;
|
||||
for(i=(0xd2d+202-0xdf7);i<DATARMNETc6782fed88;i++){if(DATARMNET05e5e122cd==index
|
||||
&&(mask&((0xd26+209-0xdf6)<<i)))return i;if(mask&((0xd26+209-0xdf6)<<i))
|
||||
DATARMNET05e5e122cd++;}return ret;}static int DATARMNET04e8d1b862(u8 cpu,u8 mask
|
||||
){int ret=DATARMNETb91aee91fd;u8 idx=(0xd2d+202-0xdf7);u8 i;if(!(mask&
|
||||
(0xd26+209-0xdf6)<<cpu))return ret;for(i=(0xd2d+202-0xdf7);i<DATARMNETc6782fed88
|
||||
;i++){if(i==cpu&&(mask&((0xd26+209-0xdf6)<<i))){ret=idx;break;}if(mask&(
|
||||
(0xd26+209-0xdf6)<<i))idx++;}return ret;}int DATARMNET217fe38119(u64
|
||||
DATARMNETab155dfd5d,struct net_device*dev){int DATARMNETf54fdb137b=
|
||||
DATARMNETb91aee91fd;if(DATARMNETab155dfd5d<DATARMNETd82a2ed45e)
|
||||
DATARMNETf54fdb137b=DATARMNETf181a18009(dev);if(DATARMNETf54fdb137b==
|
||||
DATARMNETb91aee91fd||DATARMNETab155dfd5d>=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)<<DATARMNET63b1a086d5->map_cpu)&
|
||||
DATARMNETecc0627c70.DATARMNETba3f7a11ef){DATARMNETd4a0b11b47=(
|
||||
DATARMNETbc3c416b77&((0xd26+209-0xdf6)<<cpu))?DATARMNETbc3c416b77:
|
||||
DATARMNET9273f84bf1;cpu=DATARMNET762cfa52fe(DATARMNETd4a0b11b47&~
|
||||
DATARMNETecc0627c70.DATARMNETba3f7a11ef&DATARMNET63b1a086d5->DATARMNETfbbec4c537
|
||||
);DATARMNETb7ddf3c5dd[DATARMNET7f401828b3]++;}else if(((0xd26+209-0xdf6)<<cpu)&
|
||||
DATARMNETecc0627c70.DATARMNETba3f7a11ef){DATARMNETd4a0b11b47=(
|
||||
DATARMNETbc3c416b77&((0xd26+209-0xdf6)<<cpu))?DATARMNETbc3c416b77:
|
||||
DATARMNET9273f84bf1;DATARMNET7dc3d97229=(DATARMNETbc3c416b77&((0xd26+209-0xdf6)
|
||||
<<DATARMNET63b1a086d5->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<DATARMNETc6782fed88;
|
||||
DATARMNET42a992465f++){if(!cpu_online(DATARMNET42a992465f))continue;
|
||||
DATARMNETb1157fd5c4(DATARMNET42a992465f);DATARMNETda96251102(DATARMNET75d955c408
|
||||
,DATARMNET5874e1ecd7,DATARMNET42a992465f,DATARMNET0997c5650d[DATARMNET42a992465f
|
||||
].DATARMNETae196235f2,DATARMNET0997c5650d[DATARMNET42a992465f].qtail,
|
||||
(0x16e8+787-0xc0c),NULL,NULL);}rcu_read_unlock();}int DATARMNET765b8ecfba(struct
|
||||
net_device*dev,u8 cpu,u8 DATARMNET5780499e9c){if(rmnet_is_real_dev_registered(
|
||||
dev)){if(DATARMNET713da9913c(dev->_rx,cpu,raw_smp_processor_id(),
|
||||
DATARMNET5780499e9c)==(0xd2d+202-0xdf7)){RCU_INIT_POINTER(rmnet_shs_switch,NULL)
|
||||
;if(((0xd26+209-0xdf6)<<cpu)&DATARMNETbc3c416b77)DATARMNETb7ddf3c5dd[
|
||||
DATARMNETf13db5ace8]++;else DATARMNETb7ddf3c5dd[DATARMNETb6eae1e097]++;
|
||||
DATARMNETecc0627c70.DATARMNETba3f7a11ef=(0xd26+209-0xdf6)<<cpu;
|
||||
DATARMNETecc0627c70.DATARMNET7d667e828e=cpu;}else{return-(0xd26+209-0xdf6);}}
|
||||
else{DATARMNET68d84e7b98[DATARMNET767c76ca08]++;}return(0xd2d+202-0xdf7);}int
|
||||
DATARMNETe488c1c396(struct DATARMNET63d7680df2*DATARMNET63b1a086d5,u8
|
||||
DATARMNETd87669e323,u8 DATARMNET5447204733){int DATARMNET5c4a331b9c;u32
|
||||
DATARMNETd3673fd5f0;u32 DATARMNET9bbfe49633;int ret=(0xd2d+202-0xdf7);int
|
||||
DATARMNET5a2e9192f9=-(0xd26+209-0xdf6);int DATARMNET8ceb7a8cc9;int
|
||||
DATARMNET42a992465f;int DATARMNETcfb5dc7296;int DATARMNETeaf6716f3e;struct
|
||||
DATARMNETe600c5b727*DATARMNET373e474754;u8 map=DATARMNET63b1a086d5->
|
||||
DATARMNETfbbec4c537;DATARMNET5c4a331b9c=DATARMNETb6bff4a724(DATARMNET63b1a086d5)
|
||||
;do{DATARMNET5a2e9192f9=DATARMNET63b1a086d5->map_cpu;if(DATARMNET5c4a331b9c<
|
||||
(0xd2d+202-0xdf7)){DATARMNET63b1a086d5->DATARMNET6250e93187=(0xd2d+202-0xdf7);
|
||||
ret=(0xd26+209-0xdf6);break;}DATARMNET63b1a086d5->DATARMNET6250e93187=
|
||||
(0xd26+209-0xdf6);if(!map){DATARMNET63b1a086d5->DATARMNET6250e93187=
|
||||
(0xd2d+202-0xdf7);ret=(0xd26+209-0xdf6);break;}if(DATARMNET5c4a331b9c==
|
||||
DATARMNET63b1a086d5->map_index){ret=(0xd26+209-0xdf6);break;}DATARMNETd3673fd5f0
|
||||
=DATARMNETadb0248bd4(DATARMNET63b1a086d5->map_cpu);DATARMNET9bbfe49633=
|
||||
DATARMNET63b1a086d5->queue_head;DATARMNET42a992465f=DATARMNET63b1a086d5->map_cpu
|
||||
;DATARMNETeaf6716f3e=DATARMNET3de2536baf(DATARMNET42a992465f).qlen+
|
||||
DATARMNET832731a933(DATARMNET42a992465f).qlen;if((DATARMNET63b1a086d5->
|
||||
DATARMNET85c698ec34&&(!DATARMNETeaf6716f3e))||(!DATARMNET63b1a086d5->
|
||||
DATARMNET85c698ec34&&DATARMNETd3673fd5f0>=DATARMNET9bbfe49633)||(
|
||||
DATARMNETd87669e323)){if(likely(DATARMNETa7909611da)){if(DATARMNET63b1a086d5->
|
||||
DATARMNET85c698ec34&&!((DATARMNET765b8ecfba(DATARMNET63b1a086d5->dev,
|
||||
DATARMNET5c4a331b9c,DATARMNETd87669e323)==(0xd2d+202-0xdf7)))){ret=
|
||||
(0xd26+209-0xdf6);break;}DATARMNETcfb5dc7296=DATARMNETaef946bb68(
|
||||
DATARMNET5c4a331b9c,DATARMNET63b1a086d5->DATARMNETfbbec4c537);if(
|
||||
DATARMNETcfb5dc7296<(0xd2d+202-0xdf7)){ret=(0xd26+209-0xdf6);break;}
|
||||
DATARMNET0997c5650d[DATARMNETcfb5dc7296].DATARMNET4133fc9428+=
|
||||
DATARMNET63b1a086d5->DATARMNETae4b27456e.DATARMNET6215127f48;DATARMNET0997c5650d
|
||||
[DATARMNET63b1a086d5->map_cpu].DATARMNET4133fc9428-=DATARMNET63b1a086d5->
|
||||
DATARMNETae4b27456e.DATARMNET6215127f48;DATARMNET63b1a086d5->map_index=
|
||||
DATARMNET5c4a331b9c;DATARMNET63b1a086d5->map_cpu=DATARMNETcfb5dc7296;
|
||||
DATARMNET8ceb7a8cc9=DATARMNET63b1a086d5->map_cpu;if(DATARMNETd3673fd5f0<
|
||||
DATARMNET9bbfe49633){DATARMNETb7ddf3c5dd[DATARMNET28bb261646]++;
|
||||
DATARMNETb7ddf3c5dd[DATARMNET67b67dc88f]+=(DATARMNET9bbfe49633-
|
||||
DATARMNETd3673fd5f0);DATARMNET4bde88919f(DATARMNET42a992465f,DATARMNET9bbfe49633
|
||||
-DATARMNETd3673fd5f0);}if(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<DATARMNETc6782fed88;
|
||||
DATARMNET42a992465f++){DATARMNET61ab18a4bd=DATARMNETeb3978575d(
|
||||
DATARMNET42a992465f);DATARMNET870611bedd=(0xd2d+202-0xdf7);DATARMNETe56f4fbbe6=
|
||||
(0xd2d+202-0xdf7);list_for_each_safe(DATARMNET7b34b7b5be,next,&
|
||||
DATARMNET0997c5650d[DATARMNET42a992465f].DATARMNET3dc4262f53){
|
||||
DATARMNET3f85732c70=list_entry(DATARMNET7b34b7b5be,struct DATARMNET63d7680df2,
|
||||
DATARMNET04c88b8191);DATARMNETe56f4fbbe6+=DATARMNET3f85732c70->
|
||||
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);i<DATARMNETc6782fed88;i++){DATARMNETecc0627c70.
|
||||
DATARMNET132b9c7dc4[i].DATARMNET42c3ecbd5e=i;INIT_WORK(&DATARMNETecc0627c70.
|
||||
DATARMNET132b9c7dc4[i].DATARMNET33110a3ff5,DATARMNET056c939591);hrtimer_init(&
|
||||
DATARMNETecc0627c70.DATARMNET132b9c7dc4[i].DATARMNET758a55f103,CLOCK_MONOTONIC,
|
||||
HRTIMER_MODE_REL);DATARMNETecc0627c70.DATARMNET132b9c7dc4[i].DATARMNET758a55f103
|
||||
.function=DATARMNET4ce9744605;}hrtimer_init(&DATARMNETecc0627c70.
|
||||
DATARMNET6fd692fc7a,CLOCK_MONOTONIC,HRTIMER_MODE_REL);DATARMNETecc0627c70.
|
||||
DATARMNET6fd692fc7a.function=DATARMNET0a73c53ae6;INIT_WORK(&shs_rx_work.
|
||||
DATARMNET33110a3ff5,DATARMNETa7afc8cdaa);}unsigned int DATARMNET02cdd9b125(void)
|
||||
{unsigned int DATARMNET9f4bc49c6f=DATARMNET12565c8f98;int i;DATARMNET12565c8f98=
|
||||
(0xd2d+202-0xdf7);for(i=(0xd2d+202-0xdf7);i<DATARMNETc6782fed88;i++){
|
||||
hrtimer_cancel(&DATARMNETba5ea4329f(i));cancel_work_sync(&DATARMNETecc0627c70.
|
||||
DATARMNET132b9c7dc4[i].DATARMNET33110a3ff5);}cancel_work_sync(&shs_rx_work.
|
||||
DATARMNET33110a3ff5);return DATARMNET9f4bc49c6f;}int DATARMNET82e88dbb56(struct
|
||||
sk_buff_head*list,int cpu){struct sk_buff*skb;struct softnet_data*
|
||||
DATARMNETe95ad852b4=&per_cpu(softnet_data,cpu);rtnl_lock();while((skb=
|
||||
skb_dequeue_tail(list))!=NULL){if(rmnet_is_real_dev_registered(skb->dev)){
|
||||
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);DATARMNET0e4304d903<DATARMNETc6782fed88;
|
||||
DATARMNET0e4304d903++)INIT_LIST_HEAD(&DATARMNET0997c5650d[DATARMNET0e4304d903].
|
||||
DATARMNET3dc4262f53);DATARMNETe6e8431304();rc=register_oom_notifier(&
|
||||
DATARMNET105c85d84c);if(rc<(0xd2d+202-0xdf7)){pr_info(
|
||||
"\x52\x6d\x6e\x65\x74\x5f\x73\x68\x73\x5f\x6f\x6f\x6d\x20\x72\x65\x67\x69\x73\x74\x65\x72\x20\x66\x61\x69\x6c\x75\x72\x65"
|
||||
);}pr_info(
|
||||
"\x72\x6d\x6e\x65\x74\x5f\x73\x68\x73\x20\x69\x6e\x69\x74\x20\x77\x69\x74\x68\x20\x25\x78"
|
||||
,DATARMNETecc0627c70.map_mask);DATARMNETecc0627c70.DATARMNETfc89d842ae=
|
||||
(0xd26+209-0xdf6);}void DATARMNETeacad8334e(void){struct hlist_node*tmp;struct
|
||||
DATARMNET63d7680df2*DATARMNET63b1a086d5;struct sk_buff*DATARMNET9a788b5480;int
|
||||
bkt;struct sk_buff*buf;unsigned long ht_flags;if(!DATARMNETecc0627c70.
|
||||
DATARMNETa2e32cdd3a)return;spin_lock_irqsave(&DATARMNET3764d083f0,ht_flags);
|
||||
hash_for_each_safe(DATARMNETe603c3a4b3,bkt,tmp,DATARMNET63b1a086d5,list){for((
|
||||
buf=DATARMNET63b1a086d5->DATARMNETae4b27456e.head);buf!=NULL;buf=
|
||||
DATARMNET9a788b5480){DATARMNET9a788b5480=buf->next;if(buf)consume_skb(buf);}
|
||||
DATARMNET63b1a086d5->DATARMNETae4b27456e.DATARMNET6215127f48=(0xd2d+202-0xdf7);
|
||||
DATARMNET63b1a086d5->DATARMNETae4b27456e.DATARMNETbaa5765693=(0xd2d+202-0xdf7);
|
||||
DATARMNET63b1a086d5->DATARMNETae4b27456e.head=NULL;DATARMNET63b1a086d5->
|
||||
DATARMNETae4b27456e.tail=NULL;}DATARMNETecc0627c70.DATARMNETc252a1f55d=
|
||||
(0xd2d+202-0xdf7);DATARMNETecc0627c70.DATARMNETa2e32cdd3a=(0xd2d+202-0xdf7);
|
||||
DATARMNETecc0627c70.DATARMNETd9cfd2812b=(0xd2d+202-0xdf7);DATARMNETecc0627c70.
|
||||
DATARMNET34097703c8=DATARMNET8dcf06727b;spin_unlock_irqrestore(&
|
||||
DATARMNET3764d083f0,ht_flags);}void DATARMNET44459105b4(struct sk_buff*skb,
|
||||
struct DATARMNET63d7680df2*node_p){struct iphdr*ip4h,DATARMNETc00baf31c3;struct
|
||||
ipv6hdr*ip6h,DATARMNETcf1d9e2c1e;struct tcphdr*tp,DATARMNETd1ff6cd568;struct
|
||||
udphdr*up,DATARMNETc82d2f4e16;int len=(0xd2d+202-0xdf7);u16 ip_len=
|
||||
(0xd2d+202-0xdf7);__be16 frag_off;u8 protocol;node_p->DATARMNETa1099c74fe=
|
||||
(0xd2d+202-0xdf7);switch(skb->protocol){case htons(ETH_P_IP):ip4h=
|
||||
DATARMNETefcaf5fbe9(skb,(0xd2d+202-0xdf7),sizeof(*ip4h),&DATARMNETc00baf31c3);if
|
||||
(!ip4h)return;node_p->DATARMNET1e9d25d9ff=ip4h->protocol;memcpy(&(node_p->ip_hdr
|
||||
.DATARMNETac9bbaad7c),ip4h,sizeof(*ip4h));ip_len=ip4h->ihl*(0xd11+230-0xdf3);
|
||||
node_p->DATARMNETa1099c74fe=!(ip4h->frag_off&htons(IP_DF));break;case htons(
|
||||
ETH_P_IPV6):ip6h=DATARMNETefcaf5fbe9(skb,(0xd2d+202-0xdf7),sizeof(*ip6h),&
|
||||
DATARMNETcf1d9e2c1e);if(!ip6h)return;node_p->DATARMNET1e9d25d9ff=ip6h->nexthdr;
|
||||
memcpy(&(node_p->ip_hdr.DATARMNET1688a97aa4),ip6h,sizeof(*ip6h));protocol=ip6h->
|
||||
nexthdr;len=ipv6_skip_exthdr(skb,sizeof(*ip6h),&protocol,&frag_off);if(len<
|
||||
(0xd2d+202-0xdf7)){return;}ip_len=(u16)len;break;default:break;}if(node_p->
|
||||
DATARMNET1e9d25d9ff==IPPROTO_TCP){tp=DATARMNETefcaf5fbe9(skb,ip_len,sizeof(*tp),
|
||||
&DATARMNETd1ff6cd568);if(!tp)return;memcpy(&(node_p->DATARMNETe33b41dad9.tp),tp,
|
||||
sizeof(struct tcphdr));}else if(node_p->DATARMNET1e9d25d9ff==IPPROTO_UDP){up=
|
||||
DATARMNETefcaf5fbe9(skb,ip_len,sizeof(*up),&DATARMNETc82d2f4e16);if(!up)return;
|
||||
memcpy(&(node_p->DATARMNETe33b41dad9.up),up,sizeof(struct udphdr));}else{}}int
|
||||
DATARMNET756778f14f(struct sk_buff*skb,struct rmnet_shs_clnt_s*
|
||||
DATARMNET0bf01e7c6f){struct DATARMNET63d7680df2*node_p;struct hlist_node*tmp;int
|
||||
map=DATARMNETecc0627c70.map_mask;unsigned long ht_flags;int DATARMNETcfb5dc7296
|
||||
;int map_cpu;u32 DATARMNET5c4a331b9c,hash;u8 is_match_found=(0xd2d+202-0xdf7);u8
|
||||
DATARMNET935af10724=(0xd2d+202-0xdf7);u8 DATARMNET7c5ef97eab=(0xd2d+202-0xdf7);
|
||||
struct DATARMNETe600c5b727*DATARMNETa4055affd5;struct rmnet_priv*priv;if(!(
|
||||
DATARMNET0bf01e7c6f->config&RMNET_SHS_STMP_ALL)&&!DATARMNET9303cec796(skb)){
|
||||
DATARMNETe767554e6e(skb);return(0xd2d+202-0xdf7);}if((unlikely(!map))||!
|
||||
DATARMNETecc0627c70.DATARMNETfc89d842ae){DATARMNETe767554e6e(skb);
|
||||
DATARMNET015fb2ba0e(DATARMNET720469c0a9,DATARMNETe0fee0991a,(0x16e8+787-0xc0c),
|
||||
(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),NULL,NULL);
|
||||
DATARMNET68d84e7b98[DATARMNETe3c02ddaeb]++;return(0xd2d+202-0xdf7);}
|
||||
DATARMNET52de1f3dc0(DATARMNET720469c0a9,DATARMNET856c53293b,(0x16e8+787-0xc0c),
|
||||
(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),skb,NULL);hash=
|
||||
skb_get_hash(skb);spin_lock_irqsave(&DATARMNET3764d083f0,ht_flags);do{
|
||||
hash_for_each_possible_safe(DATARMNETe603c3a4b3,node_p,tmp,list,hash){if(hash!=
|
||||
node_p->hash)continue;DATARMNETda96251102(DATARMNET720469c0a9,
|
||||
DATARMNET08b6defcff,(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),
|
||||
(0x16e8+787-0xc0c),skb,NULL);DATARMNET5c4a331b9c=node_p->map_index;
|
||||
DATARMNET495dab3d72(skb,node_p,DATARMNET0bf01e7c6f);is_match_found=
|
||||
(0xd26+209-0xdf6);DATARMNET935af10724=(0xd26+209-0xdf6);if(node_p->
|
||||
DATARMNET85c698ec34){if(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;}
|
||||
211
techpack/datarmnet-ext/shs/rmnet_shs_modules.c
Normal file
211
techpack/datarmnet-ext/shs/rmnet_shs_modules.c
Normal file
|
|
@ -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"
|
||||
);
|
||||
56
techpack/datarmnet-ext/shs/rmnet_shs_modules.h
Normal file
56
techpack/datarmnet-ext/shs/rmnet_shs_modules.h
Normal file
|
|
@ -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
|
||||
|
||||
840
techpack/datarmnet-ext/shs/rmnet_shs_wq.c
Normal file
840
techpack/datarmnet-ext/shs/rmnet_shs_wq.c
Normal file
|
|
@ -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 <linux/workqueue.h>
|
||||
#include <linux/list_sort.h>
|
||||
#include <net/sock.h>
|
||||
#include <linux/skbuff.h>
|
||||
#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<DATARMNETc6782fed88;cpu++)
|
||||
DATARMNET73d2153565(cpu);trace_rmnet_shs_wq_high(DATARMNET39a68a0eba,
|
||||
DATARMNET5c7c474d94,(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),
|
||||
(0x16e8+787-0xc0c),NULL,NULL);}void DATARMNET5b2ed86112(struct
|
||||
DATARMNET6c78e47d24*DATARMNET7b2c1bbf38){struct DATARMNETc8fdbf9c85*
|
||||
DATARMNET3c48cbf7e4=&DATARMNET6cdd58e74c;struct DATARMNET63d7680df2*node_p;u64
|
||||
DATARMNETee9f72f13f,byte_diff;u16 DATARMNET42a992465f;if(!DATARMNET7b2c1bbf38){
|
||||
DATARMNET68d84e7b98[DATARMNETac729c3d29]++;return;}node_p=DATARMNET7b2c1bbf38->
|
||||
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);
|
||||
DATARMNET42a992465f<DATARMNETc6782fed88;DATARMNET42a992465f++){if(((
|
||||
(0xd26+209-0xdf6)<<DATARMNET42a992465f)&DATARMNETfaedbb66a9)&&(
|
||||
DATARMNET7bea4a06a6->DATARMNET73464778dc[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)
|
||||
<<DATARMNET42a992465f)&DATARMNETfaedbb66a9)&&cpu_online(DATARMNET42a992465f);if(
|
||||
!DATARMNETdebcca6b26)continue;DATARMNET65385af8a0=&DATARMNET7bea4a06a6->
|
||||
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->flows<DATARMNET84d36cfd28){
|
||||
DATARMNET84d36cfd28=DATARMNET65385af8a0->flows;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<DATARMNETc6782fed88;DATARMNET42a992465f++)
|
||||
{DATARMNETca535905d7=(((0xd26+209-0xdf6)<<DATARMNET42a992465f)&(ep->
|
||||
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)<<DATARMNET208ea67e1d)&ep->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);DATARMNET42a992465f<DATARMNETc6782fed88;DATARMNET42a992465f++)
|
||||
{DATARMNETf632b170b1=&DATARMNET7bea4a06a6->DATARMNET73464778dc[
|
||||
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);
|
||||
DATARMNET42a992465f<DATARMNETc6782fed88;DATARMNET42a992465f++){flows=
|
||||
DATARMNET7bea4a06a6->DATARMNET73464778dc[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<DATARMNET53ce143c7e)&&(
|
||||
DATARMNETc7c10881f4<DATARMNET53ce143c7e)))DATARMNET466244e5d6(
|
||||
DATARMNET42a992465f);}}void DATARMNETe00453a3e4(struct DATARMNET9b44b71ee9*ep){
|
||||
int DATARMNET9025861a27;int DATARMNETef87f9e251;u16 DATARMNETb773055ecd;u16
|
||||
DATARMNETc312f6517d;u16 DATARMNETc35b40fa7b;u8 DATARMNETffd83bb362=
|
||||
(0xd2d+202-0xdf7);u8 DATARMNET24f6ce5dc0=(0xd2d+202-0xdf7);if(!ep){
|
||||
DATARMNET68d84e7b98[DATARMNETb8fe2c0e64]++;return;}DATARMNETb773055ecd=ep->
|
||||
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)<<DATARMNET9025861a27);DATARMNETffd83bb362++;}else{break;}}
|
||||
while(DATARMNETc312f6517d!=(0xd2d+202-0xdf7));trace_rmnet_shs_wq_low(
|
||||
DATARMNET39a68a0eba,DATARMNETb9205423e5,ep->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)<<DATARMNETef87f9e251);
|
||||
DATARMNET24f6ce5dc0++;}else break;}while(DATARMNETc35b40fa7b!=(0xd2d+202-0xdf7))
|
||||
;ep->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);len<map->len;len++)ep->DATARMNET9fb369ce5f|=(
|
||||
(0xd26+209-0xdf6)<<map->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);
|
||||
cpu<DATARMNETc6782fed88;cpu++){DATARMNET2d482e7d9f[cpu]=(0xd2d+202-0xdf7);
|
||||
DATARMNET0997c5650d[cpu].seg=(0xd2d+202-0xdf7);}list_for_each_entry(
|
||||
DATARMNETd2a694d52a,&DATARMNET9825511866,DATARMNET6de26f0feb){if(
|
||||
DATARMNETd2a694d52a->DATARMNET0dc393a345==(0xd2d+202-0xdf7))continue;if(
|
||||
DATARMNETd2a694d52a->DATARMNET253a9fc708>DATARMNET832dcfb5f8&&
|
||||
DATARMNETd2a694d52a->DATARMNET4b4a76b094>DATARMNET59f7cb903f)if(
|
||||
DATARMNETd2a694d52a->DATARMNET7c894c2f8f<DATARMNETc6782fed88){
|
||||
DATARMNET421230d879=DATARMNETd2a694d52a->DATARMNET7c894c2f8f;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<DATARMNETc6782fed88;
|
||||
DATARMNET42a992465f++){trace_rmnet_shs_wq_high(DATARMNET92b282b12c,
|
||||
DATARMNET57cad43bb7,DATARMNET42a992465f,(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),
|
||||
(0x16e8+787-0xc0c),NULL,NULL);DATARMNET7bea4a06a6=&DATARMNET6cdd58e74c.
|
||||
DATARMNET73464778dc[DATARMNET42a992465f];INIT_LIST_HEAD(&DATARMNET7bea4a06a6->
|
||||
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)<<DATARMNETecc0627c70.DATARMNET7d667e828e)&
|
||||
DATARMNETbc3c416b77){DATARMNETecc0627c70.DATARMNET5c24e1df05=(0xd26+209-0xdf6);
|
||||
RCU_INIT_POINTER(rmnet_shs_switch,DATARMNET756778f14f);DATARMNET68d84e7b98[
|
||||
DATARMNET6ea8a58f4e]++;}rcu_read_unlock();}void DATARMNET7b6c061b06(void){if(
|
||||
DATARMNETf141197982&&DATARMNET9dc7755be5)queue_delayed_work(DATARMNETf141197982,
|
||||
&DATARMNET9dc7755be5->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);}
|
||||
125
techpack/datarmnet-ext/shs/rmnet_shs_wq.h
Normal file
125
techpack/datarmnet-ext/shs/rmnet_shs_wq.h
Normal file
|
|
@ -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
|
||||
|
||||
185
techpack/datarmnet-ext/shs/rmnet_shs_wq_genl.c
Normal file
185
techpack/datarmnet-ext/shs/rmnet_shs_wq_genl.c
Normal file
|
|
@ -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 <net/sock.h>
|
||||
#include <linux/skbuff.h>
|
||||
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)<<DATARMNET7f0ce2d6ad.DATARMNET208ea67e1d)&DATARMNET9273f84bf1)
|
||||
||(((0xd26+209-0xdf6)<<DATARMNETecc0627c70.DATARMNET5c24e1df05)&
|
||||
DATARMNET9273f84bf1)){DATARMNET5d4ca1da1c(DATARMNET54338da2ff,
|
||||
DATARMNET2d19c9b1ef);return-(0xd26+209-0xdf6);}DATARMNETecc0627c70.
|
||||
DATARMNET5c24e1df05=DATARMNET7f0ce2d6ad.DATARMNET208ea67e1d;rcu_read_lock();
|
||||
RCU_INIT_POINTER(rmnet_shs_switch,DATARMNET756778f14f);rcu_read_unlock();
|
||||
DATARMNET5d4ca1da1c(DATARMNET54338da2ff,DATARMNET2d19c9b1ef);return
|
||||
(0xd2d+202-0xdf7);}if(DATARMNET7f0ce2d6ad.DATARMNETa3f89581b5==
|
||||
DATARMNET37da25c8e8){if(!(((0xd26+209-0xdf6)<<DATARMNET7f0ce2d6ad.
|
||||
DATARMNET208ea67e1d)&DATARMNETbc3c416b77)||(((0xd26+209-0xdf6)<<
|
||||
DATARMNETecc0627c70.DATARMNET5c24e1df05)&DATARMNETbc3c416b77)){
|
||||
DATARMNET5d4ca1da1c(DATARMNET54338da2ff,DATARMNET2d19c9b1ef);return-
|
||||
(0xd26+209-0xdf6);}DATARMNETecc0627c70.DATARMNET5c24e1df05=DATARMNET7f0ce2d6ad.
|
||||
DATARMNET208ea67e1d;rcu_read_lock();RCU_INIT_POINTER(rmnet_shs_switch,
|
||||
DATARMNET756778f14f);rcu_read_unlock();DATARMNET5d4ca1da1c(DATARMNET54338da2ff,
|
||||
DATARMNET2d19c9b1ef);return(0xd2d+202-0xdf7);}rc=DATARMNET5f72606f6f(
|
||||
DATARMNET7f0ce2d6ad.DATARMNETc790ff30fc,DATARMNET7f0ce2d6ad.DATARMNET208ea67e1d,
|
||||
DATARMNET7f0ce2d6ad.DATARMNET4da4612f1e,DATARMNET7f0ce2d6ad.DATARMNETa3f89581b5)
|
||||
;if(rc==(0xd26+209-0xdf6)){DATARMNET5d4ca1da1c(DATARMNET54338da2ff,
|
||||
DATARMNET598eb03fad);trace_rmnet_shs_wq_high(DATARMNETa0ecb9daac,
|
||||
DATARMNETd7f7ade458,DATARMNET7f0ce2d6ad.DATARMNETc790ff30fc,DATARMNET7f0ce2d6ad.
|
||||
DATARMNET208ea67e1d,DATARMNET7f0ce2d6ad.DATARMNET4da4612f1e,DATARMNET7f0ce2d6ad.
|
||||
DATARMNETa3f89581b5,NULL,NULL);}else{DATARMNET5d4ca1da1c(DATARMNET54338da2ff,
|
||||
DATARMNETe64295b6cb);trace_rmnet_shs_wq_high(DATARMNETa0ecb9daac,
|
||||
DATARMNET53e4a6b394,DATARMNET7f0ce2d6ad.DATARMNETc790ff30fc,DATARMNET7f0ce2d6ad.
|
||||
DATARMNET208ea67e1d,DATARMNET7f0ce2d6ad.DATARMNET4da4612f1e,DATARMNET7f0ce2d6ad.
|
||||
DATARMNETa3f89581b5,NULL,NULL);return(0xd2d+202-0xdf7);}}else{rm_err(
|
||||
"\x53\x48\x53\x5f\x47\x4e\x4c\x3a\x20\x6e\x6c\x61\x5f\x6d\x65\x6d\x63\x70\x79\x20\x66\x61\x69\x6c\x65\x64\x20\x25\x64" "\n"
|
||||
,DATARMNET813a742587);DATARMNET5d4ca1da1c(DATARMNET54338da2ff,
|
||||
DATARMNETe64295b6cb);return(0xd2d+202-0xdf7);}}else{rm_err(
|
||||
"\x53\x48\x53\x5f\x47\x4e\x4c\x3a\x20\x6e\x6f\x20\x69\x6e\x66\x6f\x2d\x3e\x61\x74\x74\x72\x73\x20\x25\x64" "\n"
|
||||
,DATARMNET813a742587);DATARMNET5d4ca1da1c(DATARMNET54338da2ff,
|
||||
DATARMNETe64295b6cb);return(0xd2d+202-0xdf7);}return(0xd2d+202-0xdf7);}int
|
||||
DATARMNETc850634243(struct sk_buff*DATARMNETaafc1d9519,struct genl_info*
|
||||
DATARMNET54338da2ff){rm_err("\x25\x73",
|
||||
"\x53\x48\x53\x5f\x47\x4e\x4c\x3a\x20\x72\x6d\x6e\x65\x74\x5f\x73\x68\x73\x5f\x67\x65\x6e\x6c\x5f\x6d\x65\x6d\x5f\x73\x79\x6e\x63"
|
||||
);if(!DATARMNETc252c204a8)DATARMNETc252c204a8=(0xd26+209-0xdf6);
|
||||
trace_rmnet_shs_wq_high(DATARMNETa0ecb9daac,DATARMNETd1d3902361,
|
||||
(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),NULL
|
||||
,NULL);if(DATARMNET54338da2ff==NULL){rm_err("\x25\x73",
|
||||
"\x53\x48\x53\x5f\x47\x4e\x4c\x3a\x20\x61\x6e\x20\x65\x72\x72\x6f\x72\x20\x6f\x63\x63\x75\x72\x65\x64\x20\x2d\x20\x69\x6e\x66\x6f\x20\x69\x73\x20\x6e\x75\x6c\x6c"
|
||||
);return-(0xd26+209-0xdf6);}DATARMNETb01cbc5ec9=genl_info_net(
|
||||
DATARMNET54338da2ff);DATARMNET373156e169=DATARMNET54338da2ff->snd_portid;return
|
||||
(0xd2d+202-0xdf7);}int DATARMNET0dbc627e8f(void){int ret;DATARMNETc252c204a8=
|
||||
(0xd2d+202-0xdf7);ret=genl_register_family(&DATARMNETecc643c219);if(ret!=
|
||||
(0xd2d+202-0xdf7)){rm_err(
|
||||
"\x53\x48\x53\x5f\x47\x4e\x4c\x3a\x20\x72\x65\x67\x69\x73\x74\x65\x72\x20\x66\x61\x6d\x69\x6c\x79\x20\x66\x61\x69\x6c\x65\x64\x3a\x20\x25\x69"
|
||||
,ret);genl_unregister_family(&DATARMNETecc643c219);return-(0xd26+209-0xdf6);}
|
||||
rm_err(
|
||||
"\x53\x48\x53\x5f\x47\x4e\x4c\x3a\x20\x73\x75\x63\x63\x65\x73\x73\x66\x75\x6c\x6c\x79\x20\x72\x65\x67\x69\x73\x74\x65\x72\x65\x64\x20\x67\x65\x6e\x65\x72\x69\x63\x20\x6e\x65\x74\x6c\x69\x6e\x6b\x20\x66\x61\x6d\x69\x6c\x69\x79\x3a\x20\x25\x73"
|
||||
,DATARMNET0228d9f101);return(0xd2d+202-0xdf7);}int DATARMNETeabd69d1ab(void){int
|
||||
ret;DATARMNET5945236cd3(DATARMNET19092afcc2);ret=genl_unregister_family(&
|
||||
DATARMNETecc643c219);if(ret!=(0xd2d+202-0xdf7)){rm_err(
|
||||
"\x53\x48\x53\x5f\x47\x4e\x4c\x3a\x20\x75\x6e\x72\x65\x67\x69\x73\x74\x65\x72\x20\x66\x61\x6d\x69\x6c\x79\x20\x66\x61\x69\x6c\x65\x64\x3a\x20\x25\x69" "\n"
|
||||
,ret);}DATARMNETc252c204a8=(0xd2d+202-0xdf7);return(0xd2d+202-0xdf7);}
|
||||
46
techpack/datarmnet-ext/shs/rmnet_shs_wq_genl.h
Normal file
46
techpack/datarmnet-ext/shs/rmnet_shs_wq_genl.h
Normal file
|
|
@ -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 <net/genetlink.h>
|
||||
#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
|
||||
|
||||
521
techpack/datarmnet-ext/shs/rmnet_shs_wq_mem.c
Normal file
521
techpack/datarmnet-ext/shs/rmnet_shs_wq_mem.c
Normal file
|
|
@ -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 <linux/proc_fs.h>
|
||||
#include <linux/refcount.h>
|
||||
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->DATARMNET324c1a8f98<DATARMNET264b01f4d5){
|
||||
DATARMNETace28a2c7f->DATARMNET18b7a5b761=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();}
|
||||
69
techpack/datarmnet-ext/shs/rmnet_shs_wq_mem.h
Normal file
69
techpack/datarmnet-ext/shs/rmnet_shs_wq_mem.h
Normal file
|
|
@ -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
|
||||
|
||||
Loading…
Reference in a new issue