Răsfoiți Sursa

rmnet_shs: Ie9d6b5f64d2e94d8a8c3fb99fdcee1b13ae2ec6d

Initial driver from Ie9d6b5f64d2e94d8a8c3fb99fdcee1b13ae2ec6d

Change-Id: Ia4ed6cfe70067833a756f6d3f592e36e65bc9731
Signed-off-by: Subash Abhinov Kasiviswanathan <[email protected]>
Subash Abhinov Kasiviswanathan 5 ani în urmă
părinte
comite
6648503cde

+ 1 - 0
datarmnet_ext_dlkm_vendor_board.mk

@@ -3,5 +3,6 @@ DATA_DLKM_BOARD_PLATFORMS_LIST := lahaina
 ifneq ($(TARGET_BOARD_AUTO),true)
 ifeq ($(call is-board-platform-in-list,$(DATA_DLKM_BOARD_PLATFORMS_LIST)),true)
 BOARD_VENDOR_KERNEL_MODULES += $(KERNEL_MODULES_OUT)/rmnet_offload.ko
+BOARD_VENDOR_KERNEL_MODULES += $(KERNEL_MODULES_OUT)/rmnet_shs.ko
 endif
 endif

+ 1 - 0
datarmnet_ext_dlkm_vendor_product.mk

@@ -1 +1,2 @@
 PRODUCT_PACKAGES += rmnet_offload.ko
+PRODUCT_PACKAGES += rmnet_shs.ko

+ 45 - 0
shs/Android.mk

@@ -0,0 +1,45 @@
+ifneq ($(TARGET_PRODUCT),qssi)
+RMNET_SHS_DLKM_PLATFORMS_LIST := lahaina
+
+ifeq ($(call is-board-platform-in-list, $(RMNET_SHS_DLKM_PLATFORMS_LIST)),true)
+#Make file to create RMNET_SHS DLKM
+LOCAL_PATH := $(call my-dir)
+include $(CLEAR_VARS)
+
+LOCAL_CFLAGS := -Wno-macro-redefined -Wno-unused-function -Wall -Werror
+LOCAL_CLANG :=true
+
+LOCAL_MODULE_PATH := $(KERNEL_MODULES_OUT)
+LOCAL_MODULE := rmnet_shs.ko
+
+LOCAL_SRC_FILES := \
+	rmnet_shs_main.c \
+	rmnet_shs_config.c \
+	rmnet_shs_common.c \
+	rmnet_shs_modules.c \
+	rmnet_shs_wq.c \
+	rmnet_shs_freq.c \
+	rmnet_shs_wq_mem.c \
+	rmnet_shs_wq_genl.c
+
+#path from build top to the core directory
+RMNET_CORE_PATH := vendor/qcom/opensource/datarmnet/core
+DLKM_DIR := $(TOP)/device/qcom/common/dlkm
+#absolute path to the build directory. Can't use $(TOP) here since
+#that resolves to ., and we pass this to Kbuild, where . is different
+RMNET_CORE_INC_DIR := $(shell pwd)/$(RMNET_CORE_PATH)
+
+#pass variables down to Kbuild environment
+KBUILD_OPTIONS := RMNET_CORE_INC_DIR=$(RMNET_CORE_INC_DIR)
+KBUILD_OPTIONS += RMNET_CORE_PATH=$(RMNET_CORE_PATH)
+KBUILD_OPTIONS_GKI := RMNET_CORE_INC_DIR=$(RMNET_CORE_INC_DIR)
+KBUILD_OPTIONS_GKI += RMNET_CORE_PATH=$(RMNET_CORE_PATH)/gki
+
+#Must be built after the core rmnet module
+LOCAL_ADDITIONAL_DEPENDENCIES := $(TARGET_OUT_INTERMEDIATES)/$(RMNET_CORE_PATH)/rmnet_core.ko
+LOCAL_ADDITIONAL_DEPENDENCIES_GKI := $(TARGET_OUT_INTERMEDIATES)/$(RMNET_CORE_PATH)/gki/rmnet_core.ko
+
+include $(DLKM_DIR)/AndroidKernelModule.mk
+
+endif #End of Check for target
+endif #End of Check for qssi target

+ 14 - 0
shs/Kbuild

@@ -0,0 +1,14 @@
+#rmnet_shs needs the symbols from the core driver module
+KBUILD_EXTRA_SYMBOLS := $(shell pwd)/../../$(RMNET_CORE_PATH)/Module.symvers
+
+obj-m += rmnet_shs.o
+#Need core headers
+ccflags-y := -I$(RMNET_CORE_INC_DIR)
+rmnet_shs-y :=  rmnet_shs_config.o \
+		rmnet_shs_main.o \
+		rmnet_shs_common.o \
+		rmnet_shs_wq.o \
+		rmnet_shs_freq.o \
+		rmnet_shs_wq_mem.o \
+		rmnet_shs_wq_genl.o \
+		rmnet_shs_modules.o

+ 10 - 0
shs/Kconfig

@@ -0,0 +1,10 @@
+#
+# RMNET_SHS driver
+#
+
+menuconfig RMNET_SHS
+    tristate "Rmnet SHS driver"
+    default m
+    depends on RMNET_CORE
+    ---help---
+        performance mode of rmnet driver

+ 13 - 0
shs/Makefile

@@ -0,0 +1,13 @@
+KERNEL_SRC ?= /lib/modules/$(shell uname -r)/build
+
+KBUILD_OPTIONS := RMNET_SHS_ROOT=$(PWD)
+KBUILD_OPTIONS += MODNAME?=rmnet_shs
+
+all:
+	$(MAKE) -C $(KERNEL_SRC) M=$(shell pwd) modules $(KBUILD_OPTIONS)
+
+modules_install:
+	$(MAKE) INSTALL_MOD_STRIP=1 -C $(KERNEL_SRC) M=$(shell pwd) modules_install
+
+clean:
+	$(MAKE) -C $(KERNEL_SRC) M=$(PWD) clean

+ 146 - 0
shs/rmnet_shs.h

@@ -0,0 +1,146 @@
+/* Copyright (c) 2018-2020 The Linux Foundation. All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 and
+ * only version 2 as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ */
+
+#include <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 (0xec7+1108-0x12fd)
+#define DATARMNET401583e606 (0xd11+230-0xdf3)
+#define DATARMNETc6782fed88  (0xd35+210-0xdff)
+#define DATARMNETbc3c416b77 (0xbf7+4405-0x1c3c)
+#define DATARMNET2edff26954 (0xd2d+202-0xdf7)
+#define DATARMNET752465942a (0xbf7+4364-0x1c04)
+#define DATARMNETbfe31ef643 (0xc07+1233-0xe1c)
+#define DATARMNET7a815512d3 (0xef7+1100-0x12fd)
+#define DATARMNET270b564b55  (0xd27+224-0xdfd)
+#define DATARMNET1c2d76f636 (0xf07+658-0x110d)
+#define DATARMNET2922c89d50  (0xd1f+216-0xdf5)
+#define DATARMNET015fb2ba0e(...) \
+  do { if (DATARMNET756bdd424a) trace_rmnet_shs_err(__VA_ARGS__); } while (\
+(0xd2d+202-0xdf7))
+#define DATARMNET52de1f3dc0(...) \
+  do { if (DATARMNET756bdd424a) trace_rmnet_shs_high(__VA_ARGS__); } while (\
+(0xd2d+202-0xdf7))
+#define DATARMNETda96251102(...) \
+  do { if (DATARMNET756bdd424a) trace_rmnet_shs_low(__VA_ARGS__); } while (\
+(0xd2d+202-0xdf7))
+#define DATARMNETd82a2ed45e  204800
+#define DATARMNETc668d192f2 (0xec7+1093-0x12f5) 
+#define DATARMNETb38cb72105 80000
+#define DATARMNETac6d632788 (80000*DATARMNETc668d192f2)
+#define DATARMNET243c638e7d 210000
+#define DATARMNET03fd42433e (210000*DATARMNETc668d192f2)
+#define DATARMNET9bc9e0cac3 (0xd2d+202-0xdf7)
+#define DATARMNET22feab5726 40000
+#define DATARMNET4298ee0d38 (40000*DATARMNETc668d192f2)
+#define DATARMNET3a9bca9cba 20000
+#define DATARMNETcdee526004 (DATARMNET243c638e7d / (0xd1f+216-0xdf5))
+struct DATARMNETa6f2d499b2{struct hrtimer DATARMNET758a55f103;struct work_struct
+ DATARMNET33110a3ff5;struct timespec DATARMNET251b97a380;int DATARMNETe61d62310f
+;u8 DATARMNET42c3ecbd5e;};struct DATARMNETa6b20d7e8b{struct hrtimer 
+DATARMNET6fd692fc7a;struct rmnet_map_dl_ind DATARMNET08dbb5ab35;struct 
+qmi_rmnet_ps_ind rmnet_idl_ind_cb;struct rmnet_port*port;struct 
+DATARMNETa6f2d499b2 DATARMNET132b9c7dc4[DATARMNETc6782fed88];u64 
+DATARMNETbd3a0ee74e[DATARMNETc6782fed88];long DATARMNETc252a1f55d;long 
+DATARMNETa2e32cdd3a;u32 DATARMNET9c869c1ec2;u16 DATARMNET64bb8a8f57;u8 
+DATARMNETd9cfd2812b;u8 DATARMNETf5ab31b9b0;u8 DATARMNET34097703c8;u8 
+DATARMNETfc89d842ae;u8 DATARMNET6fe0db3a49;u8 map_mask;u8 map_len;};struct 
+DATARMNETa034b2e60c{struct sk_buff*head;struct sk_buff*tail;u64 
+DATARMNETbaa5765693;u32 DATARMNET6215127f48;u32 DATARMNET35234676d4;};struct 
+DATARMNET63d7680df2{union{struct iphdr DATARMNETac9bbaad7c;struct ipv6hdr 
+DATARMNET1688a97aa4;}ip_hdr;union{struct tcphdr tp;struct udphdr up;}
+DATARMNETe33b41dad9;struct list_head DATARMNET04c88b8191;struct net_device*dev;
+struct DATARMNET6c78e47d24*DATARMNET341ea38662;struct DATARMNETa034b2e60c 
+DATARMNETae4b27456e;struct hlist_node list;u64 DATARMNET11930c5df8;u64 
+DATARMNETa8940e4a7b;u64 DATARMNET2594c418db;u32 queue_head;u32 hash;u16 
+map_index;u16 map_cpu;u16 DATARMNET1e9d25d9ff;u8 DATARMNETa1099c74fe;u8 
+DATARMNET6250e93187;u8 mux_id;};enum DATARMNET156842d55e{DATARMNET7bc926fdbe,
+DATARMNETb3e3b2a799,DATARMNET8dcf06727b};enum DATARMNET8463cba7c7{
+DATARMNETc3bce05be2,DATARMNET14067f0be4,DATARMNET28bb261646,DATARMNET67b67dc88f,
+DATARMNET0efbbe2821,DATARMNETa4267dfd8a,DATARMNETeccb61ebc3};enum 
+DATARMNETf355367410{DATARMNET557ff68d74,DATARMNET1c55e5fdb1,DATARMNET4ab5a31d0c,
+DATARMNETde2dd86539};enum DATARMNET3f3bc61c03{DATARMNETf5157a9b85,
+DATARMNET709b59b0e6,DATARMNET99db6e7d86,DATARMNETe3c02ddaeb,DATARMNET394acaf558,
+DATARMNETef8cbfa62f,DATARMNETe6e77f9f03,DATARMNETecdf13872c,DATARMNETd1687e0776,
+DATARMNET1828d69e96,DATARMNET40ceff078e,DATARMNET42b73d0f3f,DATARMNETb8fe2c0e64,
+DATARMNET72db8b9bac,DATARMNET33a9d4759f,DATARMNET46966e7828,DATARMNETa1f9420686,
+DATARMNET54b67b8a75,DATARMNETac729c3d29,DATARMNET6533f70c87,DATARMNET6f6efeaf61,
+DATARMNETcc0ef52ccb,DATARMNETf8de7cb644,DATARMNETdd6bf3de6b,DATARMNETf3110711cb}
+;enum DATARMNETd751e3ec84{DATARMNET802083239a,DATARMNETed69052342,
+DATARMNETcfb1764a91,DATARMNET84a9e136b8,DATARMNET01bf75e27c,DATARMNETd45c383019,
+DATARMNETbb5757569c,DATARMNETc8058e2cff,DATARMNET3cef75f6cd};struct 
+DATARMNETfd554c7eac{struct sk_buff*skb;struct DATARMNETfd554c7eac*next;};struct 
+DATARMNET37ef896af8{struct work_struct DATARMNET33110a3ff5;struct rmnet_port*
+port;};struct DATARMNETe600c5b727{struct list_head DATARMNET3dc4262f53;u32 
+DATARMNETae196235f2;u32 qtail;u32 DATARMNET96571b28de;u32 DATARMNET4133fc9428;
+u32 seg;u8 DATARMNETef866573e0;u8 DATARMNET1e1f197118;};enum DATARMNETf0a06dc55a
+{DATARMNET1790979ccf,DATARMNETd5eb6398da,DATARMNETcd24fca747,DATARMNETe50d824af7
+,DATARMNET6b317c4c73,DATARMNET75d955c408,DATARMNETf3aaad06eb,DATARMNET720469c0a9
+,DATARMNET4510abc30d,DATARMNET23f8730007,};enum DATARMNETc1d9e38720{
+DATARMNET0b15fd8b54,DATARMNET5b5927fd7e,DATARMNETba3049005f};enum 
+DATARMNET4f392b0182{DATARMNET72cb00fdc0,DATARMNET443dab7031,DATARMNET96db46917c,
+DATARMNET89958f9b63,DATARMNET6d7a3a033a,DATARMNET16a68afc17,DATARMNET916f444e0a,
+DATARMNETe9a79499ac,DATARMNET89f4779456,DATARMNETa94c7e31a0,DATARMNET116c96c236,
+DATARMNET9da2ea4f74,DATARMNETe55953a107,DATARMNET43225b7a7c,DATARMNET4dbb6812b5,
+DATARMNETbf80eada88,DATARMNET26438cb654,DATARMNETa6d85c8497,DATARMNET650a0ef6e1,
+DATARMNET3e031f1532,DATARMNET9f467b9ce4,DATARMNETc154fd2d48,DATARMNET5874e1ecd7,
+DATARMNET4f09dc5794,DATARMNET11a1fd3964,DATARMNETf2fc7954d4,DATARMNET4e91ddb48a,
+DATARMNET16befe9635,DATARMNET856c53293b,DATARMNET7e63a08ad4,DATARMNETf7c8c7aa3f,
+DATARMNET08b6defcff,DATARMNETf5c836f9ae,DATARMNETdd870ee64c,DATARMNETf730f80f06,
+DATARMNET998c6de143,DATARMNETe7afce2292,DATARMNETe0fee0991a,DATARMNETbc2a6aea12,
+DATARMNETde91850c28,DATARMNET237e7bd5f6,DATARMNETf16e78412b,DATARMNET83147a2e7d,
+DATARMNET816bb1e327,DATARMNETf311f20c00,DATARMNETa2bd301af7,DATARMNET99640d60f7,
+DATARMNET562b7d32a8,DATARMNET0808844559,DATARMNET5410705c1c,DATARMNET022082b219,
+DATARMNETe4ee0d2636,DATARMNET23b8465daf,DATARMNET052f49b190,DATARMNETfb753e521e,
+DATARMNET64b02f64c6,DATARMNET576793621a,DATARMNETc262b24b02,DATARMNET4ebbc01257,
+DATARMNET595eed6ea2,DATARMNETde090e8314,DATARMNETa593d87b38,DATARMNET8a2898988b,
+DATARMNET0709c9f764,};extern struct DATARMNET37ef896af8 DATARMNET1731db288b;
+extern spinlock_t DATARMNET3764d083f0;extern spinlock_t DATARMNETec2a4f5211;
+extern spinlock_t DATARMNETfbdbab2ef6;extern struct hlist_head 
+DATARMNETe603c3a4b3[(0xd26+209-0xdf6)<<(DATARMNET25437d35fd)];extern void 
+rmnet_deliver_skb(struct sk_buff*skb,struct rmnet_port*port);extern int(*
+rmnet_shs_skb_entry)(struct sk_buff*skb,struct rmnet_port*port);int 
+DATARMNET362b15f941(u16 cpu);void DATARMNETeacad8334e(void);void 
+DATARMNETe1f95274f1(void);unsigned int DATARMNET02cdd9b125(void);int 
+DATARMNET310c3eb16e(u8 mask);int DATARMNETe02152c351(struct DATARMNET63d7680df2*
+DATARMNET63b1a086d5,u8 DATARMNETd87669e323,u8 DATARMNET5447204733);void 
+DATARMNET78bb6be330(struct rmnet_map_dl_ind_hdr*dlhdr,struct 
+rmnet_map_control_command_header*qcmd);void DATARMNETf61cd23b90(struct 
+rmnet_map_dl_ind_trl*dltrl,struct rmnet_map_control_command_header*qcmd);void 
+DATARMNET7ed4cef8a3(struct rmnet_map_dl_ind_hdr*dlhdr);void DATARMNET613a81eca8(
+struct rmnet_map_dl_ind_trl*dltrl);int DATARMNET756778f14f(struct sk_buff*skb,
+struct rmnet_port*port);void DATARMNETa4bf9fbf64(u8 DATARMNET665469cfb6,u8 
+DATARMNET5447204733);void DATARMNETde8ee16f92(struct DATARMNET63d7680df2*
+DATARMNET63b1a086d5);void DATARMNET45d8cdb224(struct net_device*dev,struct 
+net_device*vnd);void DATARMNET9297340f58(unsigned int DATARMNET9f4bc49c6f);void 
+DATARMNET7f1d9480cb(void*port);void DATARMNETa4bd2ef52c(void*port);void 
+DATARMNETe074a09496(void);void DATARMNET23c7ddd780(struct DATARMNET63d7680df2*
+DATARMNET63b1a086d5,u8 DATARMNET5447204733);void DATARMNET349c3a0cab(u16 map_cpu
+,bool DATARMNETb639f6e1b1);u32 DATARMNETadb0248bd4(u8 DATARMNET42a992465f);
+#endif 
+

+ 161 - 0
shs/rmnet_shs_common.c

@@ -0,0 +1,161 @@
+/* Copyright (c) 2020 The Linux Foundation. All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 and
+ * only version 2 as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ */
+
+#include "rmnet_shs.h"
+#include "rmnet_shs_wq.h"
+#include "rmnet_shs_modules.h"
+#define DATARMNET48a89fcc16 (0xd26+209-0xdf6)
+#define DATARMNETbfe901fc62 (0xd2d+202-0xdf7)
+void DATARMNET4095253347(struct DATARMNET9b44b71ee9*ep){trace_rmnet_shs_wq_low(
+DATARMNET5e796836fb,DATARMNET7fc202c4c1,(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),
+(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),ep,NULL);list_add(&ep->DATARMNET0763436b8d
+,&DATARMNET30a3e83974);}void DATARMNETf7d317ed55(struct DATARMNET9b44b71ee9*ep){
+trace_rmnet_shs_wq_low(DATARMNET5e796836fb,DATARMNET7643ab0f49,
+(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),ep,
+NULL);list_del_init(&ep->DATARMNET0763436b8d);}void DATARMNET36e5e526fa(struct 
+DATARMNET6c78e47d24*DATARMNETd2a694d52a){unsigned long flags;
+trace_rmnet_shs_wq_low(DATARMNET238d08f0df,DATARMNET3f2d29c867,
+(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),
+DATARMNETd2a694d52a,NULL);spin_lock_irqsave(&DATARMNETfbdbab2ef6,flags);list_add
+(&DATARMNETd2a694d52a->DATARMNET6de26f0feb,&DATARMNET9825511866);
+spin_unlock_irqrestore(&DATARMNETfbdbab2ef6,flags);}void DATARMNET2fe780019f(
+struct DATARMNET6c78e47d24*DATARMNETd2a694d52a){unsigned long flags;
+trace_rmnet_shs_wq_low(DATARMNET238d08f0df,DATARMNET5a3ea29c57,
+(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),
+DATARMNETd2a694d52a,NULL);spin_lock_irqsave(&DATARMNETfbdbab2ef6,flags);
+list_del_init(&DATARMNETd2a694d52a->DATARMNET6de26f0feb);spin_unlock_irqrestore(
+&DATARMNETfbdbab2ef6,flags);}void DATARMNETb4a6870b3b(struct DATARMNET6c78e47d24
+*DATARMNETd2a694d52a){unsigned long flags;trace_rmnet_shs_wq_low(
+DATARMNET92b282b12c,DATARMNETdb9197631d,(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),
+(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),DATARMNETd2a694d52a,NULL);
+spin_lock_irqsave(&DATARMNETfbdbab2ef6,flags);list_del_init(&DATARMNETd2a694d52a
+->DATARMNET742867e97a);spin_unlock_irqrestore(&DATARMNETfbdbab2ef6,flags);}void 
+DATARMNETd8a6375e9c(struct DATARMNET6c78e47d24*DATARMNETd2a694d52a,struct 
+list_head*head){unsigned long flags;trace_rmnet_shs_wq_low(DATARMNET92b282b12c,
+DATARMNET4b58d51c6a,(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),
+(0x16e8+787-0xc0c),DATARMNETd2a694d52a,NULL);spin_lock_irqsave(&
+DATARMNETfbdbab2ef6,flags);list_add(&DATARMNETd2a694d52a->DATARMNET742867e97a,
+head);spin_unlock_irqrestore(&DATARMNETfbdbab2ef6,flags);}void 
+DATARMNET9914e9761e(struct DATARMNET6c78e47d24*DATARMNETd2a694d52a,struct 
+list_head*head){unsigned long flags;trace_rmnet_shs_wq_low(DATARMNET92b282b12c,
+DATARMNETfd4d416388,DATARMNETd2a694d52a->DATARMNET7c894c2f8f,(0x16e8+787-0xc0c),
+(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),DATARMNETd2a694d52a,NULL);
+spin_lock_irqsave(&DATARMNETfbdbab2ef6,flags);list_move(&DATARMNETd2a694d52a->
+DATARMNET742867e97a,head);spin_unlock_irqrestore(&DATARMNETfbdbab2ef6,flags);}
+void DATARMNET6bf538fa23(void){spin_lock_bh(&DATARMNETec2a4f5211);}void 
+DATARMNETaea4c85748(void){spin_unlock_bh(&DATARMNETec2a4f5211);}void 
+DATARMNETe46c480d71(void){u8 mask=DATARMNET752465942a;u8 DATARMNET998de79791=
+(0xd2d+202-0xdf7);struct DATARMNET9b44b71ee9*ep;list_for_each_entry(ep,&
+DATARMNET30a3e83974,DATARMNET0763436b8d){if(!ep->DATARMNET4a4e6f66b5)continue;if
+(ep->DATARMNET9fb369ce5f){mask&=ep->DATARMNET9fb369ce5f;DATARMNET998de79791=
+(0xd26+209-0xdf6);}}if(!DATARMNET998de79791){DATARMNETecc0627c70.map_mask=
+(0xd2d+202-0xdf7);DATARMNETecc0627c70.map_len=(0xd2d+202-0xdf7);return;}else if(
+DATARMNETecc0627c70.map_mask!=mask){DATARMNETecc0627c70.map_mask=mask;
+DATARMNETecc0627c70.map_len=DATARMNET310c3eb16e(mask);}}void DATARMNETde8ee16f92
+(struct DATARMNET63d7680df2*DATARMNET63b1a086d5){DATARMNETda96251102(
+DATARMNETd5eb6398da,DATARMNETe9a79499ac,(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),
+(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),NULL,NULL);list_del_init(&
+DATARMNET63b1a086d5->DATARMNET04c88b8191);DATARMNET349c3a0cab(
+DATARMNET63b1a086d5->map_cpu,DATARMNETbfe901fc62);}void DATARMNET3e37ad2816(
+struct DATARMNET63d7680df2*DATARMNET63b1a086d5,struct list_head*
+DATARMNET4d030eb9b5){DATARMNETda96251102(DATARMNETd5eb6398da,DATARMNET16a68afc17
+,(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),
+NULL,NULL);list_add(&DATARMNET63b1a086d5->DATARMNET04c88b8191,
+DATARMNET4d030eb9b5);DATARMNET349c3a0cab(DATARMNET63b1a086d5->map_cpu,
+DATARMNET48a89fcc16);}void DATARMNETe102b3a798(struct DATARMNET63d7680df2*
+DATARMNET63b1a086d5,struct list_head*DATARMNET4d030eb9b5,int DATARMNETa7a5705ab0
+){DATARMNETda96251102(DATARMNETd5eb6398da,DATARMNET916f444e0a,(0x16e8+787-0xc0c)
+,(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),NULL,NULL);list_move(&
+DATARMNET63b1a086d5->DATARMNET04c88b8191,DATARMNET4d030eb9b5);
+DATARMNET349c3a0cab(DATARMNET63b1a086d5->map_cpu,DATARMNET48a89fcc16);
+DATARMNET349c3a0cab((u16)DATARMNETa7a5705ab0,DATARMNETbfe901fc62);}void 
+DATARMNET4bde88919f(u8 cpu,int count){if(cpu<DATARMNETc6782fed88){
+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 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)continue;if(!ep->
+DATARMNET4a4e6f66b5)continue;if(ep->ep==dev){is_match_found=(0xd26+209-0xdf6);
+break;}}if(!is_match_found){DATARMNET68d84e7b98[DATARMNETb8fe2c0e64]++;
+spin_unlock_irqrestore(&DATARMNETec2a4f5211,flags);return DATARMNET895df156d7;}
+DATARMNETde5894dad9=ep->DATARMNET6bda8fe27e;DATARMNETd9e9d4ff7e=ep->
+DATARMNETd7a83774f8;while(DATARMNETde5894dad9<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)continue;if(!ep->
+DATARMNET4a4e6f66b5)continue;if(ep->ep==dev){is_match_found=(0xd26+209-0xdf6);
+break;}}if(!is_match_found){DATARMNET68d84e7b98[DATARMNETb8fe2c0e64]++;
+spin_unlock_irqrestore(&DATARMNETec2a4f5211,flags);return DATARMNET895df156d7;}
+DATARMNETcc5b7cd962=ep->DATARMNET121a654efd;DATARMNET15bde5cb53=ep->
+DATARMNET847276e5af;while(DATARMNETcc5b7cd962<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;}

+ 45 - 0
shs/rmnet_shs_common.h

@@ -0,0 +1,45 @@
+/* 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 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
+

+ 89 - 0
shs/rmnet_shs_config.c

@@ -0,0 +1,89 @@
+/* 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/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"}
+;static int DATARMNET2cb9ae589c;int __init DATARMNET163e93649e(void){pr_info(
+"\x25\x73\x28\x29\x3a\x20\x53\x74\x61\x72\x74\x69\x6e\x67\x20\x72\x6d\x6e\x65\x74\x20\x53\x48\x53\x20\x6d\x6f\x64\x75\x6c\x65\x20\x25\x73\x20" "\n"
+,__func__,DATARMNETbc8418e817[(0xd2d+202-0xdf7)]);trace_rmnet_shs_high(
+DATARMNET1790979ccf,DATARMNET72cb00fdc0,(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),
+(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),NULL,NULL);if(DATARMNET0dbc627e8f()){
+rm_err("\x25\x73",
+"\x53\x48\x53\x5f\x47\x4e\x4c\x3a\x20\x46\x61\x69\x6c\x65\x64\x20\x74\x6f\x20\x69\x6e\x69\x74\x20\x67\x65\x6e\x65\x72\x69\x63\x20\x6e\x65\x74\x6c\x69\x6e\x6b"
+);}return register_netdevice_notifier(&DATARMNET5fc54f7a13);}void __exit 
+DATARMNETf3298dab6f(void){trace_rmnet_shs_high(DATARMNET1790979ccf,
+DATARMNET89958f9b63,(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),
+(0x16e8+787-0xc0c),NULL,NULL);unregister_netdevice_notifier(&DATARMNET5fc54f7a13
+);DATARMNETeabd69d1ab();pr_info(
+"\x25\x73\x28\x29\x3a\x20\x45\x78\x69\x74\x69\x6e\x67\x20\x72\x6d\x6e\x65\x74\x20\x53\x48\x53\x20\x6d\x6f\x64\x75\x6c\x65" "\n"
+,__func__);}static int DATARMNETe9173bbe0e(struct notifier_block*
+DATARMNET272c159b3c,unsigned long DATARMNET7f045a1e6e,void*data){struct 
+net_device*dev=netdev_notifier_info_to_dev(data);struct rmnet_priv*priv;struct 
+rmnet_port*port;int ret=(0xd2d+202-0xdf7);if(!dev){DATARMNET68d84e7b98[
+DATARMNETf5157a9b85]++;return NOTIFY_DONE;}if(!(strncmp(dev->name,
+"\x72\x6d\x6e\x65\x74\x5f\x64\x61\x74\x61",(0xd27+224-0xdfd))==(0xd2d+202-0xdf7)
+||strncmp(dev->name,"\x72\x5f\x72\x6d\x6e\x65\x74\x5f\x64\x61\x74\x61",
+(0xd19+238-0xdfb))==(0xd2d+202-0xdf7)))return NOTIFY_DONE;switch(
+DATARMNET7f045a1e6e){case NETDEV_UNREGISTER:DATARMNETd6ee05f1b4(dev);
+DATARMNET2cb9ae589c--;if(!DATARMNET2cb9ae589c&&DATARMNETecc0627c70.
+DATARMNETfc89d842ae){unsigned int DATARMNET9f4bc49c6f;pr_info(
+"\x72\x6d\x6e\x65\x74\x5f\x73\x68\x73\x20\x64\x65\x69\x6e\x69\x74\x20\x25\x73\x20\x67\x6f\x69\x6e\x67\x20\x64\x6f\x77\x6e\x20"
+,dev->name);RCU_INIT_POINTER(rmnet_shs_skb_entry,NULL);
+qmi_rmnet_ps_ind_deregister(DATARMNETecc0627c70.port,&DATARMNETecc0627c70.
+rmnet_idl_ind_cb);DATARMNETeacad8334e();DATARMNET9f4bc49c6f=DATARMNET02cdd9b125(
+);DATARMNETf7dcab9a9e();DATARMNET9297340f58(DATARMNET9f4bc49c6f);
+trace_rmnet_shs_high(DATARMNET1790979ccf,DATARMNET443dab7031,(0x16e8+787-0xc0c),
+(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),NULL,NULL);}break;case 
+NETDEV_REGISTER:DATARMNET2cb9ae589c++;if(DATARMNET2cb9ae589c&&!
+DATARMNETecc0627c70.DATARMNETfc89d842ae){pr_info(
+"\x72\x6d\x6e\x65\x74\x5f\x73\x68\x73\x20\x69\x6e\x69\x74\x69\x61\x6c\x69\x7a\x69\x6e\x67\x20\x25\x73"
+,dev->name);priv=netdev_priv(dev);port=rmnet_get_port(priv->real_dev);if(!port){
+pr_err(
+"\x72\x6d\x6e\x65\x74\x5f\x73\x68\x73\x3a\x20\x69\x6e\x76\x61\x6c\x69\x64\x20\x72\x6d\x6e\x65\x74\x5f\x70\x6f\x72\x74"
+);break;}DATARMNET45d8cdb224(priv->real_dev,dev);DATARMNET3ae0d614d6(priv->
+real_dev);DATARMNETe1f95274f1();DATARMNETecc0627c70.DATARMNETf5ab31b9b0=
+(0xd26+209-0xdf6);}DATARMNET7492293980(dev);break;case NETDEV_UP:if(!
+DATARMNETecc0627c70.DATARMNET9c869c1ec2&&DATARMNETecc0627c70.DATARMNETfc89d842ae
+){port=DATARMNETecc0627c70.port;if(!port){pr_err(
+"\x72\x6d\x6e\x65\x74\x5f\x73\x68\x73\x3a\x20\x69\x6e\x76\x61\x6c\x69\x64\x20\x72\x6d\x6e\x65\x74\x5f\x63\x66\x67\x5f\x70\x6f\x72\x74"
+);break;}DATARMNETecc0627c70.DATARMNET08dbb5ab35.priority=RMNET_SHS;if(port->
+data_format&RMNET_INGRESS_FORMAT_DL_MARKER_V2){DATARMNETecc0627c70.
+DATARMNET08dbb5ab35.dl_hdr_handler_v2=&DATARMNET78bb6be330;DATARMNETecc0627c70.
+DATARMNET08dbb5ab35.dl_trl_handler_v2=&DATARMNETf61cd23b90;}DATARMNETecc0627c70.
+rmnet_idl_ind_cb.ps_on_handler=&DATARMNET7f1d9480cb;DATARMNETecc0627c70.
+rmnet_idl_ind_cb.ps_off_handler=&DATARMNETa4bd2ef52c;ret=
+rmnet_map_dl_ind_register(port,&DATARMNETecc0627c70.DATARMNET08dbb5ab35);if(ret)
+pr_err(
+"\x25\x73\x28\x29\x3a\x20\x72\x6d\x6e\x65\x74\x20\x64\x6c\x5f\x69\x6e\x64\x20\x72\x65\x67\x69\x73\x74\x72\x61\x74\x69\x6f\x6e\x20\x66\x61\x69\x6c" "\n"
+,__func__);ret=qmi_rmnet_ps_ind_register(port,&DATARMNETecc0627c70.
+rmnet_idl_ind_cb);if(ret)pr_err(
+"\x25\x73\x28\x29\x3a\x20\x72\x6d\x6e\x65\x74\x20\x70\x73\x5f\x69\x6e\x64\x20\x72\x65\x67\x69\x73\x74\x72\x61\x74\x69\x6f\x6e\x20\x66\x61\x69\x6c" "\n"
+,__func__);DATARMNETe46c480d71();DATARMNET0a6fb12cb2();DATARMNETecc0627c70.
+DATARMNET9c869c1ec2=(0xd26+209-0xdf6);trace_rmnet_shs_high(DATARMNET1790979ccf,
+DATARMNET443dab7031,(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),
+(0x16e8+787-0xc0c),NULL,NULL);RCU_INIT_POINTER(rmnet_shs_skb_entry,
+DATARMNET756778f14f);}break;default:break;}return NOTIFY_DONE;}module_init(
+DATARMNET163e93649e);module_exit(DATARMNETf3298dab6f);

+ 26 - 0
shs/rmnet_shs_config.h

@@ -0,0 +1,26 @@
+/* Copyright (c) 2018-2020 The Linux Foundation. All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 and
+ * only version 2 as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ */
+
+#include <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 
+

+ 66 - 0
shs/rmnet_shs_freq.c

@@ -0,0 +1,66 @@
+/* Copyright (c) 2020 The Linux Foundation. All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 and
+ * only version 2 as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ */
+
+#include <linux/module.h>
+#include "rmnet_shs.h"
+#include "rmnet_shs_freq.h"
+#include <linux/cpufreq.h>
+#include <linux/cpu.h>
+#define DATARMNET81fe789d21 INT_MAX
+#define DATARMNET3e06a1e794 (0xd2d+202-0xdf7)
+#define DATARMNET59b491fbc9 DATARMNET81fe789d21
+struct DATARMNET66fa8c4c30{unsigned int DATARMNET103c8d34fe;unsigned int 
+DATARMNET1159aa2cb6;};unsigned int DATARMNET666c9ff35e __read_mostly=
+(0xd26+209-0xdf6);module_param(DATARMNET666c9ff35e,uint,(0xdb7+6665-0x261c));
+MODULE_PARM_DESC(DATARMNET666c9ff35e,
+"\x45\x6e\x61\x62\x6c\x65\x2f\x64\x69\x73\x61\x62\x6c\x65\x20\x66\x72\x65\x71\x20\x62\x6f\x6f\x73\x74\x20\x66\x65\x61\x74\x75\x72\x65"
+);struct workqueue_struct*DATARMNETde8f350999;struct DATARMNET4e6b0cd2b8{struct 
+DATARMNET66fa8c4c30 __percpu*DATARMNET9dd9bc4abb;};static struct 
+DATARMNET4e6b0cd2b8 DATARMNETc4b1be7898;static struct work_struct 
+DATARMNETbfcbb4b8ac;static int DATARMNETb1e8f00240(struct notifier_block*
+DATARMNET272c159b3c,unsigned long val,void*data){return NOTIFY_OK;}static struct
+ notifier_block DATARMNET50781dba43={.notifier_call=DATARMNETb1e8f00240,};static
+ void DATARMNET13c1a83eb3(struct work_struct*DATARMNET33110a3ff5){unsigned int i
+;get_online_cpus();for_each_online_cpu(i){cpufreq_update_policy(i);}
+put_online_cpus();}void DATARMNET82d7f4ffa2(void){struct DATARMNET66fa8c4c30*
+DATARMNETe24d518157;int i;for_each_possible_cpu(i){DATARMNETe24d518157=
+per_cpu_ptr(DATARMNETc4b1be7898.DATARMNET9dd9bc4abb,i);DATARMNETe24d518157->
+DATARMNET103c8d34fe=DATARMNET3e06a1e794;DATARMNETe24d518157->DATARMNET1159aa2cb6
+=DATARMNET81fe789d21;}}void DATARMNETfb7007f025(void){struct DATARMNET66fa8c4c30
+*DATARMNETe24d518157;int i;for_each_possible_cpu(i){if(((0xd26+209-0xdf6)<<i)&
+DATARMNETbc3c416b77)continue;DATARMNETe24d518157=per_cpu_ptr(DATARMNETc4b1be7898
+.DATARMNET9dd9bc4abb,i);DATARMNETe24d518157->DATARMNET103c8d34fe=
+DATARMNET59b491fbc9;DATARMNETe24d518157->DATARMNET1159aa2cb6=DATARMNET81fe789d21
+;trace_rmnet_freq_boost(i,DATARMNETe24d518157->DATARMNET103c8d34fe);}if(
+work_pending(&DATARMNETbfcbb4b8ac))return;if(DATARMNETde8f350999)queue_work(
+DATARMNETde8f350999,&DATARMNETbfcbb4b8ac);}void DATARMNET371703c28d(void){struct
+ DATARMNET66fa8c4c30*DATARMNETe24d518157;int i;for_each_possible_cpu(i){if((
+(0xd26+209-0xdf6)<<i)&DATARMNETbc3c416b77)continue;DATARMNETe24d518157=
+per_cpu_ptr(DATARMNETc4b1be7898.DATARMNET9dd9bc4abb,i);DATARMNETe24d518157->
+DATARMNET103c8d34fe=DATARMNET3e06a1e794;DATARMNETe24d518157->DATARMNET1159aa2cb6
+=DATARMNET81fe789d21;trace_rmnet_freq_reset(i,DATARMNETe24d518157->
+DATARMNET103c8d34fe);}if(work_pending(&DATARMNETbfcbb4b8ac))return;if(
+DATARMNETde8f350999)queue_work(DATARMNETde8f350999,&DATARMNETbfcbb4b8ac);}int 
+DATARMNETe6e8431304(void){DATARMNETc4b1be7898.DATARMNET9dd9bc4abb=alloc_percpu(
+struct DATARMNET66fa8c4c30);if(!DATARMNETc4b1be7898.DATARMNET9dd9bc4abb)return-
+ENOMEM;if(!DATARMNETde8f350999)DATARMNETde8f350999=alloc_workqueue(
+"\x73\x68\x73\x5f\x62\x6f\x6f\x73\x74\x5f\x77\x71",WQ_HIGHPRI,(0xd2d+202-0xdf7))
+;if(!DATARMNETde8f350999){free_percpu(DATARMNETc4b1be7898.DATARMNET9dd9bc4abb);
+return-EFAULT;}INIT_WORK(&DATARMNETbfcbb4b8ac,DATARMNET13c1a83eb3);if(
+DATARMNET666c9ff35e)cpufreq_register_notifier(&DATARMNET50781dba43,
+CPUFREQ_POLICY_NOTIFIER);DATARMNET82d7f4ffa2();return(0xd2d+202-0xdf7);}int 
+DATARMNETdf74db7e38(void){DATARMNET82d7f4ffa2();cancel_work_sync(&
+DATARMNETbfcbb4b8ac);if(DATARMNETde8f350999){destroy_workqueue(
+DATARMNETde8f350999);DATARMNETde8f350999=NULL;}if(DATARMNET666c9ff35e)
+cpufreq_unregister_notifier(&DATARMNET50781dba43,CPUFREQ_POLICY_NOTIFIER);
+free_percpu(DATARMNETc4b1be7898.DATARMNET9dd9bc4abb);return(0xd2d+202-0xdf7);}

+ 19 - 0
shs/rmnet_shs_freq.h

@@ -0,0 +1,19 @@
+/* Copyright (c) 2020 The Linux Foundation. All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 and
+ * only version 2 as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ */
+
+#ifndef DATARMNETef19703014
+#define DATARMNETef19703014
+int DATARMNETe6e8431304(void);int DATARMNETdf74db7e38(void);void 
+DATARMNETfb7007f025(void);void DATARMNET371703c28d(void);
+#endif
+

+ 658 - 0
shs/rmnet_shs_main.c

@@ -0,0 +1,658 @@
+/* Copyright (c) 2018-2020 The Linux Foundation. All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 and
+ * only version 2 as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ */
+
+#include <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/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"
+#define DATARMNET2f67183a86 2000000
+#define DATARMNET68fc0be252 1000000
+#define DATARMNETd391fbd694 (0xd2d+202-0xdf7)
+#define DATARMNETae2e980d66 (0xd11+230-0xdf3)
+#define DATARMNET249a927510 (0xd27+224-0xdfd)
+#define DATARMNET904145ccb9 (0xd11+230-0xdf3)
+#define DATARMNETb91aee91fd -(0xd26+209-0xdf6)
+#define DATARMNET00d5787aad 2000000
+#define DATARMNET8948dc953d (0xd0a+237-0xdf2)
+#define DATARMNET20dc6bb36b (0xd26+209-0xdf6)
+#define DATARMNET3de2536baf(CPU) (per_cpu(softnet_data, CPU).input_pkt_queue)
+#define DATARMNET832731a933(CPU) (per_cpu(softnet_data, CPU).process_queue)
+#define DATARMNET78ec5e8746(DATARMNETfbfdc7f27e, CPU) (per_cpu(\
+DATARMNETfbfdc7f27e, CPU).input_queue_tail)
+#define DATARMNET9c1c20df35(DATARMNETfbfdc7f27e, CPU) (per_cpu(\
+DATARMNETfbfdc7f27e, CPU).input_queue_head)
+#define DATARMNETba5ea4329f(CPU) DATARMNETecc0627c70.DATARMNET132b9c7dc4[CPU].\
+DATARMNET758a55f103
+#define DATARMNETec970d7090 (0xd26+209-0xdf6)
+#define DATARMNET8fadb49f38 (0xd2d+202-0xdf7)
+#define DATARMNET48a89fcc16 (0xd26+209-0xdf6)
+#define DATARMNETbfe901fc62 (0xd2d+202-0xdf7)
+DEFINE_SPINLOCK(DATARMNET3764d083f0);DEFINE_HASHTABLE(DATARMNETe603c3a4b3,
+DATARMNET25437d35fd);struct DATARMNETe600c5b727 DATARMNET0997c5650d[
+DATARMNETc6782fed88];int DATARMNETcff375d916[DATARMNETc6782fed88];struct 
+DATARMNETa6b20d7e8b DATARMNETecc0627c70;struct DATARMNET37ef896af8 shs_rx_work;
+int DATARMNET9303cec796(struct sk_buff*skb){int DATARMNETbd864aa442=
+(0xd2d+202-0xdf7);struct iphdr*ip4h;struct ipv6hdr*ip6h;if(!skb_is_nonlinear(skb
+)){switch(skb->protocol){case htons(ETH_P_IP):if(!ip_is_fragment(ip_hdr(skb))&&(
+(ip_hdr(skb)->protocol==IPPROTO_TCP)||(ip_hdr(skb)->protocol==IPPROTO_UDP))){
+DATARMNETbd864aa442=(0xd26+209-0xdf6);break;}if(ip_hdr(skb)->protocol==
+IPPROTO_ICMP){skb->hash=(0xd2d+202-0xdf7);skb->sw_hash=(0xd26+209-0xdf6);}break;
+case htons(ETH_P_IPV6):if(!(ipv6_hdr(skb)->nexthdr==NEXTHDR_FRAGMENT)&&((
+ipv6_hdr(skb)->nexthdr==IPPROTO_TCP)||(ipv6_hdr(skb)->nexthdr==IPPROTO_UDP))){
+DATARMNETbd864aa442=(0xd26+209-0xdf6);break;}if(ipv6_hdr(skb)->nexthdr==
+IPPROTO_ICMP){skb->hash=(0xd2d+202-0xdf7);skb->sw_hash=(0xd26+209-0xdf6);}break;
+default:break;}}else{switch(skb->protocol){case htons(ETH_P_IP):ip4h=(struct 
+iphdr*)rmnet_map_data_ptr(skb);if(!(ntohs(ip4h->frag_off)&IP_MF)&&((ntohs(ip4h->
+frag_off)&IP_OFFSET)==(0xd2d+202-0xdf7))&&(ip4h->protocol==IPPROTO_TCP||ip4h->
+protocol==IPPROTO_UDP)){DATARMNETbd864aa442=(0xd26+209-0xdf6);break;}if(ip4h->
+protocol==IPPROTO_ICMP){skb->hash=(0xd2d+202-0xdf7);skb->sw_hash=
+(0xd26+209-0xdf6);}break;case htons(ETH_P_IPV6):ip6h=(struct ipv6hdr*)
+rmnet_map_data_ptr(skb);if(!(ip6h->nexthdr==NEXTHDR_FRAGMENT)&&((ip6h->nexthdr==
+IPPROTO_TCP)||(ip6h->nexthdr==IPPROTO_UDP))){DATARMNETbd864aa442=
+(0xd26+209-0xdf6);break;}if(ip6h->nexthdr==IPPROTO_ICMP){skb->hash=
+(0xd2d+202-0xdf7);skb->sw_hash=(0xd26+209-0xdf6);}break;default:break;}}
+DATARMNETda96251102(DATARMNETcd24fca747,DATARMNET116c96c236,DATARMNETbd864aa442,
+(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),skb,NULL);return 
+DATARMNETbd864aa442;}static void DATARMNETfa919d00dc(int cpu,int 
+DATARMNET8a461bad56){struct timespec DATARMNET2e47295bf1;struct timespec*
+DATARMNET736ac5582e;long DATARMNETb64270afc1;int DATARMNETa67155ba38=(
+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
+){struct rmnet_priv*priv;DATARMNETda96251102(DATARMNET6b317c4c73,
+DATARMNET43225b7a7c,(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),
+(0x16e8+787-0xc0c),skb,NULL);priv=netdev_priv(skb->dev);gro_cells_receive(&priv
+->gro_cells,skb);}static struct sk_buff*DATARMNET0e315f0262(struct sk_buff*skb,
+u16 DATARMNETf8272cfb41){struct skb_shared_info*shinfo=skb_shinfo(skb);struct 
+sk_buff*DATARMNET6643e66666,*tmp;u16 gso_size=shinfo->gso_size;u16 gso_segs=
+shinfo->gso_segs;if(DATARMNETf8272cfb41>=gso_segs){return NULL;}shinfo->gso_segs
+=DIV_ROUND_UP(gso_segs,DATARMNETf8272cfb41);shinfo->gso_size=gso_size*
+DATARMNETf8272cfb41;DATARMNET6643e66666=__skb_gso_segment(skb,NETIF_F_SG,false);
+if(unlikely(IS_ERR_OR_NULL(DATARMNET6643e66666))){shinfo->gso_size=gso_size;
+shinfo->gso_segs=gso_segs;return NULL;}for(tmp=DATARMNET6643e66666;tmp;tmp=tmp->
+next){struct skb_shared_info*DATARMNETa7dac37e66=skb_shinfo(tmp);
+DATARMNETa7dac37e66->gso_size=gso_size;if(gso_segs>=DATARMNETf8272cfb41)
+DATARMNETa7dac37e66->gso_segs=DATARMNETf8272cfb41;else DATARMNETa7dac37e66->
+gso_segs=gso_segs;gso_segs-=DATARMNETf8272cfb41;}return DATARMNET6643e66666;}
+static void DATARMNET21243b86ae(struct sk_buff*DATARMNETe08e18123e,u8 
+DATARMNETf345c1d909,u16 DATARMNET87636d0152){struct sk_buff*skb=NULL;struct 
+sk_buff*DATARMNETcebafc57a4=NULL;struct sk_buff*DATARMNET39bcb0d197=NULL;int 
+count=(0xd2d+202-0xdf7);DATARMNETda96251102(DATARMNET6b317c4c73,
+DATARMNET43225b7a7c,(0xd26+209-0xdf6),(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),
+(0x16e8+787-0xc0c),DATARMNETe08e18123e,NULL);DATARMNET39bcb0d197=
+DATARMNET0e315f0262(DATARMNETe08e18123e,DATARMNET87636d0152);if(
+DATARMNET39bcb0d197==NULL){if(DATARMNETf345c1d909==DATARMNET0b15fd8b54)
+netif_receive_skb(DATARMNETe08e18123e);else netif_rx(DATARMNETe08e18123e);return
+;}for((skb=DATARMNET39bcb0d197);skb!=NULL;skb=DATARMNETcebafc57a4){
+DATARMNETcebafc57a4=skb->next;skb->hash=DATARMNETe08e18123e->hash;skb->dev=
+DATARMNETe08e18123e->dev;skb->next=NULL;if(DATARMNETf345c1d909==
+DATARMNET0b15fd8b54)netif_receive_skb(skb);else netif_rx(skb);count+=
+(0xd26+209-0xdf6);}consume_skb(DATARMNETe08e18123e);return;}int 
+DATARMNET2efb1a51c7(struct DATARMNET63d7680df2*node_p){int ret=(0xd2d+202-0xdf7)
+;int DATARMNET42c3ecbd5e=(0xd26+209-0xdf6);u16 idx=(0xd2d+202-0xdf7);for(idx=
+(0xd2d+202-0xdf7);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;if(DATARMNET0997c5650d[DATARMNET63b1a086d5->map_cpu].
+DATARMNETef866573e0&&DATARMNET362b15f941(DATARMNET63b1a086d5->map_cpu)){cpu=
+DATARMNET762cfa52fe(DATARMNETbc3c416b77&DATARMNETecc0627c70.map_mask);if(cpu<
+(0xd2d+202-0xdf7)&&DATARMNET63b1a086d5->DATARMNET341ea38662!=NULL)cpu=
+DATARMNET63b1a086d5->DATARMNET341ea38662->DATARMNET6e1a4eaf09;}else if(
+DATARMNET63b1a086d5->DATARMNET341ea38662!=NULL)cpu=DATARMNET63b1a086d5->
+DATARMNET341ea38662->DATARMNET6e1a4eaf09;return cpu;}int DATARMNETb6bff4a724(
+struct DATARMNET63d7680df2*DATARMNET63b1a086d5){int cpu,idx=DATARMNETb91aee91fd;
+cpu=DATARMNET6af33ebb5b(DATARMNET63b1a086d5);idx=DATARMNET04e8d1b862(cpu,
+DATARMNETecc0627c70.map_mask);if(unlikely(idx<(0xd2d+202-0xdf7)))idx=
+DATARMNET04e8d1b862(DATARMNET63b1a086d5->map_cpu,DATARMNETecc0627c70.map_mask);
+DATARMNETda96251102(DATARMNETf3aaad06eb,DATARMNETf2fc7954d4,DATARMNET63b1a086d5
+->hash,cpu,idx,(0x16e8+787-0xc0c),DATARMNET63b1a086d5,NULL);return idx;}static 
+int DATARMNET2af09ccd0b(int cpu,int DATARMNET63a222ae1f,int DATARMNETea08087fc0)
+{int ret=(0xd2d+202-0xdf7);if(DATARMNETecc0627c70.DATARMNET132b9c7dc4[cpu].
+DATARMNETe61d62310f>=DATARMNET449e126dd3){ret=DATARMNET0efbbe2821;}if(
+DATARMNET63a222ae1f&&((DATARMNETeea3cef5b6(cpu)+DATARMNETea08087fc0)>=
+DATARMNET35fe073bc2))ret=DATARMNETa4267dfd8a;return ret;}void 
+DATARMNET349c3a0cab(u16 map_cpu,bool DATARMNETb639f6e1b1){if(map_cpu<
+DATARMNETc6782fed88)(DATARMNETb639f6e1b1)?DATARMNETcff375d916[map_cpu]++:
+DATARMNETcff375d916[map_cpu]--;else DATARMNET68d84e7b98[DATARMNETcc0ef52ccb]++;}
+void DATARMNETb1157fd5c4(u8 DATARMNET42a992465f){if(DATARMNET42a992465f>=
+DATARMNETc6782fed88)return;rcu_read_lock();DATARMNET0997c5650d[
+DATARMNET42a992465f].DATARMNETae196235f2=DATARMNET9c1c20df35(softnet_data,
+DATARMNET42a992465f);DATARMNET0997c5650d[DATARMNET42a992465f].qtail=
+DATARMNET78ec5e8746(softnet_data,DATARMNET42a992465f);rcu_read_unlock();
+DATARMNET0997c5650d[DATARMNET42a992465f].DATARMNET96571b28de=DATARMNET0997c5650d
+[DATARMNET42a992465f].qtail-DATARMNET0997c5650d[DATARMNET42a992465f].
+DATARMNETae196235f2;DATARMNETda96251102(DATARMNET75d955c408,DATARMNET5874e1ecd7,
+DATARMNET42a992465f,DATARMNET0997c5650d[DATARMNET42a992465f].DATARMNETae196235f2
+,DATARMNET0997c5650d[DATARMNET42a992465f].qtail,(0x16e8+787-0xc0c),NULL,NULL);}
+void DATARMNETe074a09496(void){u8 DATARMNET42a992465f;rcu_read_lock();for(
+DATARMNET42a992465f=(0xd2d+202-0xdf7);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 DATARMNETe488c1c396(struct
+ DATARMNET63d7680df2*DATARMNET63b1a086d5,u8 DATARMNETd87669e323){int 
+DATARMNET5c4a331b9c;u32 DATARMNETd3673fd5f0;u32 DATARMNET9bbfe49633;int ret=
+(0xd2d+202-0xdf7);int DATARMNET5a2e9192f9=-(0xd26+209-0xdf6);int 
+DATARMNET8ceb7a8cc9;int DATARMNET42a992465f;int DATARMNETcfb5dc7296;struct 
+DATARMNETe600c5b727*DATARMNET373e474754;u8 map=DATARMNETecc0627c70.map_mask;
+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
+;if((DATARMNETd3673fd5f0>=DATARMNET9bbfe49633)||(DATARMNETd87669e323)){if(
+DATARMNETa7909611da){DATARMNETcfb5dc7296=DATARMNETaef946bb68(DATARMNET5c4a331b9c
+,DATARMNETecc0627c70.map_mask);if(DATARMNETcfb5dc7296<(0xd2d+202-0xdf7)){ret=
+(0xd26+209-0xdf6);break;}DATARMNET0997c5650d[DATARMNETcfb5dc7296].
+DATARMNET4133fc9428+=DATARMNET63b1a086d5->DATARMNETae4b27456e.
+DATARMNET6215127f48;DATARMNET0997c5650d[DATARMNET63b1a086d5->map_cpu].
+DATARMNET4133fc9428-=DATARMNET63b1a086d5->DATARMNETae4b27456e.
+DATARMNET6215127f48;DATARMNET63b1a086d5->map_index=DATARMNET5c4a331b9c;
+DATARMNET63b1a086d5->map_cpu=DATARMNETcfb5dc7296;DATARMNET8ceb7a8cc9=
+DATARMNET63b1a086d5->map_cpu;if(DATARMNETd3673fd5f0<DATARMNET9bbfe49633){
+DATARMNETb7ddf3c5dd[DATARMNET28bb261646]++;DATARMNETb7ddf3c5dd[
+DATARMNET67b67dc88f]+=(DATARMNET9bbfe49633-DATARMNETd3673fd5f0);
+DATARMNET4bde88919f(DATARMNET42a992465f,DATARMNET9bbfe49633-DATARMNETd3673fd5f0)
+;}if(DATARMNET0997c5650d[DATARMNET42a992465f].DATARMNETef866573e0){
+DATARMNET63b1a086d5->DATARMNET341ea38662->DATARMNET6e1a4eaf09=
+DATARMNET8ceb7a8cc9;DATARMNET0997c5650d[DATARMNET8ceb7a8cc9].DATARMNET1e1f197118
+=(0xd26+209-0xdf6);DATARMNETb7ddf3c5dd[DATARMNETc3bce05be2]++;}else{
+DATARMNETb7ddf3c5dd[DATARMNET14067f0be4]++;}DATARMNET373e474754=&
+DATARMNET0997c5650d[DATARMNET63b1a086d5->map_cpu];DATARMNETe074a09496();
+DATARMNET63b1a086d5->queue_head=DATARMNET373e474754->DATARMNETae196235f2;
+DATARMNETe102b3a798(DATARMNET63b1a086d5,&DATARMNET373e474754->
+DATARMNET3dc4262f53,DATARMNET42a992465f);DATARMNET52de1f3dc0(DATARMNET4510abc30d
+,DATARMNET052f49b190,DATARMNET63b1a086d5->map_cpu,DATARMNET5a2e9192f9,
+(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),DATARMNET63b1a086d5,NULL);}ret=
+(0xd26+209-0xdf6);}}while((0xd2d+202-0xdf7));DATARMNETda96251102(
+DATARMNET4510abc30d,DATARMNET23b8465daf,ret,DATARMNET63b1a086d5->map_cpu,
+DATARMNET5a2e9192f9,(0x16e8+787-0xc0c),DATARMNET63b1a086d5,NULL);return ret;}
+void DATARMNETfbc06e60f1(u8 DATARMNET42a992465f){struct DATARMNET63d7680df2*
+DATARMNET3f85732c70;struct list_head*DATARMNET7b34b7b5be,*next;unsigned long 
+ht_flags;u32 DATARMNET61ab18a4bd;u32 DATARMNETed7800fc72=(0xd2d+202-0xdf7);u32 
+DATARMNETa0df5de99d=(0xd2d+202-0xdf7);u32 DATARMNET8bf94cc2f7=(0xd2d+202-0xdf7);
+u32 DATARMNET76192fa639=(0xd2d+202-0xdf7);DATARMNETe074a09496();
+DATARMNET52de1f3dc0(DATARMNET4510abc30d,DATARMNETde91850c28,DATARMNETecc0627c70.
+DATARMNETa2e32cdd3a,DATARMNETecc0627c70.DATARMNETc252a1f55d,(0x16e8+787-0xc0c),
+(0x16e8+787-0xc0c),NULL,NULL);local_bh_disable();spin_lock_irqsave(&
+DATARMNET3764d083f0,ht_flags);DATARMNET61ab18a4bd=DATARMNETeb3978575d(
+DATARMNET42a992465f);list_for_each_safe(DATARMNET7b34b7b5be,next,&
+DATARMNET0997c5650d[DATARMNET42a992465f].DATARMNET3dc4262f53){
+DATARMNET3f85732c70=list_entry(DATARMNET7b34b7b5be,struct DATARMNET63d7680df2,
+DATARMNET04c88b8191);if(DATARMNET3f85732c70!=NULL&&DATARMNET3f85732c70->
+DATARMNETae4b27456e.DATARMNET6215127f48){DATARMNETed7800fc72=DATARMNET3f85732c70
+->DATARMNETae4b27456e.DATARMNET6215127f48;DATARMNETa0df5de99d=
+DATARMNET3f85732c70->DATARMNETae4b27456e.DATARMNETbaa5765693;DATARMNETe02152c351
+(DATARMNET3f85732c70,(0xd26+209-0xdf6),DATARMNET5b5927fd7e);DATARMNET8bf94cc2f7
++=DATARMNETed7800fc72;DATARMNET76192fa639+=DATARMNETa0df5de99d;if(
+DATARMNET3f85732c70->map_cpu==DATARMNET42a992465f){DATARMNET61ab18a4bd+=
+DATARMNETed7800fc72;DATARMNET3f85732c70->queue_head=DATARMNET61ab18a4bd;}}}
+DATARMNETecc0627c70.DATARMNETc252a1f55d-=DATARMNET76192fa639;DATARMNETecc0627c70
+.DATARMNETa2e32cdd3a-=DATARMNET8bf94cc2f7;DATARMNET0997c5650d[
+DATARMNET42a992465f].DATARMNETef866573e0=(0xd2d+202-0xdf7);DATARMNETecc0627c70.
+DATARMNET132b9c7dc4[DATARMNET42a992465f].DATARMNETe61d62310f=(0xd2d+202-0xdf7);
+DATARMNET0997c5650d[DATARMNET42a992465f].DATARMNET4133fc9428=(0xd2d+202-0xdf7);
+spin_unlock_irqrestore(&DATARMNET3764d083f0,ht_flags);local_bh_enable();
+DATARMNET52de1f3dc0(DATARMNET4510abc30d,DATARMNET576793621a,DATARMNETecc0627c70.
+DATARMNETa2e32cdd3a,DATARMNETecc0627c70.DATARMNETc252a1f55d,DATARMNET8bf94cc2f7,
+DATARMNET76192fa639,NULL,NULL);}static void DATARMNET056c939591(struct 
+work_struct*DATARMNET33110a3ff5){struct DATARMNETa6f2d499b2*DATARMNET4b39dc1574=
+container_of(DATARMNET33110a3ff5,struct DATARMNETa6f2d499b2,DATARMNET33110a3ff5)
+;DATARMNETfbc06e60f1(DATARMNET4b39dc1574->DATARMNET42c3ecbd5e);
+DATARMNET14ed771dfb[DATARMNETbb5757569c]++;}void DATARMNETcba2f7f7b6(struct 
+DATARMNET63d7680df2*DATARMNET63b1a086d5,u8 DATARMNETf345c1d909){struct sk_buff*
+skb=NULL;struct sk_buff*DATARMNETcebafc57a4=NULL;u32 DATARMNETe20a9cab2b=
+(0xd2d+202-0xdf7);u32 DATARMNETb481d13a78=(0xd2d+202-0xdf7);u32 
+DATARMNET1fcbf046ec=(0xd2d+202-0xdf7);u8 map=(0xd2d+202-0xdf7),
+DATARMNET0258668025=(0xd2d+202-0xdf7);u16 DATARMNET87636d0152=(0xd2d+202-0xdf7);
+if(!DATARMNET63b1a086d5->DATARMNETae4b27456e.head)return;map=DATARMNETecc0627c70
+.map_mask;DATARMNET0258668025=DATARMNETecc0627c70.map_len;if(map){
+DATARMNET1fcbf046ec=DATARMNET8532ab3089(DATARMNET63b1a086d5->map_index,
+DATARMNET0258668025,DATARMNET63b1a086d5->DATARMNETae4b27456e.head->hash);}else{
+DATARMNET63b1a086d5->DATARMNET6250e93187=(0xd2d+202-0xdf7);}DATARMNET52de1f3dc0(
+DATARMNET4510abc30d,DATARMNETe4ee0d2636,DATARMNET63b1a086d5->hash,
+DATARMNET1fcbf046ec,DATARMNET63b1a086d5->DATARMNETae4b27456e.DATARMNET6215127f48
+,DATARMNET63b1a086d5->DATARMNETae4b27456e.DATARMNETbaa5765693,
+DATARMNET63b1a086d5,DATARMNET63b1a086d5->DATARMNETae4b27456e.head);
+DATARMNET87636d0152=(u16)DATARMNET63b1a086d5->DATARMNET341ea38662->
+DATARMNET87636d0152;for((skb=DATARMNET63b1a086d5->DATARMNETae4b27456e.head);skb
+!=NULL;skb=DATARMNETcebafc57a4){DATARMNETcebafc57a4=skb->next;if(
+DATARMNET63b1a086d5->DATARMNET6250e93187)skb->hash=DATARMNET1fcbf046ec;skb->next
+=NULL;DATARMNETe20a9cab2b+=(0xd26+209-0xdf6);DATARMNETb481d13a78+=skb->len;if(
+DATARMNET87636d0152>(0xd2d+202-0xdf7)){if(DATARMNET63b1a086d5->
+DATARMNET1e9d25d9ff==IPPROTO_UDP)DATARMNET68d84e7b98[DATARMNETdd6bf3de6b]++;
+DATARMNET21243b86ae(skb,DATARMNETf345c1d909,DATARMNET87636d0152);}else{if(
+DATARMNETf345c1d909==DATARMNET0b15fd8b54)DATARMNETe767554e6e(skb);else 
+DATARMNET514ce0bf59(skb);}}DATARMNET63b1a086d5->DATARMNETae4b27456e.
+DATARMNET6215127f48=(0xd2d+202-0xdf7);DATARMNET63b1a086d5->DATARMNETae4b27456e.
+DATARMNETbaa5765693=(0xd2d+202-0xdf7);DATARMNET63b1a086d5->DATARMNETae4b27456e.
+head=NULL;DATARMNET63b1a086d5->DATARMNETae4b27456e.tail=NULL;DATARMNET52de1f3dc0
+(DATARMNET4510abc30d,DATARMNETfb753e521e,DATARMNET63b1a086d5->hash,
+DATARMNET1fcbf046ec,DATARMNETe20a9cab2b,DATARMNETb481d13a78,DATARMNET63b1a086d5,
+NULL);}void DATARMNET23c7ddd780(struct DATARMNET63d7680df2*DATARMNET63b1a086d5,
+u8 DATARMNET5447204733){struct sk_buff*skb;struct sk_buff*DATARMNETcebafc57a4=
+NULL;u32 DATARMNETe20a9cab2b=(0xd2d+202-0xdf7);u32 DATARMNETb481d13a78=
+(0xd2d+202-0xdf7);u32 DATARMNET1fcbf046ec;u8 map,DATARMNET0258668025;if(!
+DATARMNET63b1a086d5->DATARMNETae4b27456e.head)return;map=DATARMNETecc0627c70.
+map_mask;DATARMNET0258668025=DATARMNETecc0627c70.map_len;if(map){
+DATARMNET1fcbf046ec=DATARMNET8532ab3089(DATARMNET63b1a086d5->map_index,
+DATARMNET0258668025,DATARMNET63b1a086d5->DATARMNETae4b27456e.head->hash);}else{
+DATARMNET63b1a086d5->DATARMNET6250e93187=(0xd2d+202-0xdf7);}for((skb=
+DATARMNET63b1a086d5->DATARMNETae4b27456e.head);skb!=NULL;skb=DATARMNETcebafc57a4
+){DATARMNETcebafc57a4=skb->next;if(DATARMNET63b1a086d5->DATARMNET6250e93187)skb
+->hash=DATARMNET1fcbf046ec;skb->next=NULL;DATARMNETe20a9cab2b+=(0xd26+209-0xdf6)
+;DATARMNETb481d13a78+=skb->len;if(DATARMNET5447204733==DATARMNET0b15fd8b54)
+DATARMNETe767554e6e(skb);else DATARMNET514ce0bf59(skb);}DATARMNET68d84e7b98[
+DATARMNET72db8b9bac]++;DATARMNETecc0627c70.DATARMNETc252a1f55d-=
+DATARMNETb481d13a78;DATARMNETecc0627c70.DATARMNETa2e32cdd3a-=DATARMNETe20a9cab2b
+;DATARMNET0997c5650d[DATARMNET63b1a086d5->map_cpu].DATARMNET4133fc9428-=
+DATARMNETe20a9cab2b;}int DATARMNETe02152c351(struct DATARMNET63d7680df2*
+DATARMNET63b1a086d5,u8 DATARMNETd87669e323,u8 DATARMNET5447204733){int 
+DATARMNETbd864aa442=(0xd2d+202-0xdf7);int map=DATARMNETecc0627c70.map_mask;int 
+DATARMNET5643f7b5e9;DATARMNET52de1f3dc0(DATARMNET4510abc30d,DATARMNET022082b219,
+DATARMNETd87669e323,DATARMNET5447204733,(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),
+DATARMNET63b1a086d5,NULL);if(DATARMNETaef946bb68(DATARMNET63b1a086d5->map_index,
+map)!=DATARMNET63b1a086d5->map_cpu){DATARMNET5643f7b5e9=DATARMNET04e8d1b862(
+DATARMNET63b1a086d5->map_cpu,map);if(DATARMNET5643f7b5e9>=(0xd2d+202-0xdf7)){
+DATARMNET63b1a086d5->map_index=DATARMNET5643f7b5e9;DATARMNET63b1a086d5->map_cpu=
+DATARMNETaef946bb68(DATARMNET5643f7b5e9,map);}else{DATARMNET63b1a086d5->
+map_index=DATARMNET2edff26954;DATARMNET63b1a086d5->map_cpu=DATARMNETaef946bb68(
+DATARMNET2edff26954,map);if(DATARMNET63b1a086d5->map_cpu<(0xd2d+202-0xdf7))
+DATARMNET63b1a086d5->map_cpu=DATARMNET2edff26954;}DATARMNETd87669e323=
+(0xd26+209-0xdf6);DATARMNET68d84e7b98[DATARMNETa1f9420686]++;DATARMNET015fb2ba0e
+(DATARMNET720469c0a9,DATARMNET998c6de143,(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),
+(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),NULL,NULL);}if(DATARMNETe488c1c396(
+DATARMNET63b1a086d5,DATARMNETd87669e323)){DATARMNETcba2f7f7b6(
+DATARMNET63b1a086d5,DATARMNET5447204733);DATARMNETbd864aa442=(0xd26+209-0xdf6);}
+DATARMNET52de1f3dc0(DATARMNET4510abc30d,DATARMNET64b02f64c6,DATARMNETbd864aa442,
+DATARMNETd87669e323,(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),DATARMNET63b1a086d5,
+NULL);return DATARMNETbd864aa442;}static void DATARMNETc54e431bbc(u8 
+DATARMNET42a992465f,u8 DATARMNET7845d39672,u32 DATARMNETea08087fc0){u32 
+DATARMNETba6017a3a9=(!DATARMNET227d2ff866)?(0xd26+209-0xdf6):DATARMNET227d2ff866
+;int DATARMNETd9d8392917;if((DATARMNETd9d8392917=DATARMNET2af09ccd0b(
+DATARMNET42a992465f,DATARMNET7845d39672,DATARMNETea08087fc0))&&
+DATARMNET362b15f941(DATARMNET42a992465f)&&!DATARMNET0997c5650d[
+DATARMNET42a992465f].DATARMNETef866573e0){DATARMNETba6017a3a9=(!
+DATARMNET7845d39672)?DATARMNET249a927510:DATARMNETba6017a3a9;DATARMNET0997c5650d
+[DATARMNET42a992465f].DATARMNETef866573e0=(0xd26+209-0xdf6);DATARMNETfb7007f025(
+);if(hrtimer_active(&DATARMNETba5ea4329f(DATARMNET42a992465f)))hrtimer_cancel(&
+DATARMNETba5ea4329f(DATARMNET42a992465f));hrtimer_start(&DATARMNETba5ea4329f(
+DATARMNET42a992465f),ns_to_ktime(DATARMNETba6017a3a9*DATARMNET68fc0be252),
+HRTIMER_MODE_REL);DATARMNETb7ddf3c5dd[DATARMNETd9d8392917]++;}}void 
+DATARMNETe377e0368d(u8 DATARMNETded3da1a77,u8 DATARMNET5447204733){struct 
+DATARMNET63d7680df2*DATARMNET3f85732c70=NULL;struct list_head*
+DATARMNET7b34b7b5be=NULL,*next=NULL;int DATARMNET42a992465f;u32 
+DATARMNET61ab18a4bd;u32 DATARMNETed7800fc72=(0xd2d+202-0xdf7);u32 
+DATARMNETa0df5de99d=(0xd2d+202-0xdf7);u32 DATARMNETe56f4fbbe6=(0xd2d+202-0xdf7);
+u32 DATARMNET8bf94cc2f7=(0xd2d+202-0xdf7);u32 DATARMNET76192fa639=
+(0xd2d+202-0xdf7);u32 DATARMNET870611bedd=(0xd2d+202-0xdf7);u32 
+DATARMNETa6424e3c4e=(0xd2d+202-0xdf7);u8 DATARMNET77e7f4db43=(0xd2d+202-0xdf7);
+DATARMNETe074a09496();DATARMNET52de1f3dc0(DATARMNET4510abc30d,
+DATARMNETde91850c28,DATARMNETecc0627c70.DATARMNETa2e32cdd3a,DATARMNETecc0627c70.
+DATARMNETc252a1f55d,(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),NULL,NULL);for(
+DATARMNET42a992465f=(0xd2d+202-0xdf7);DATARMNET42a992465f<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!=NULL&&DATARMNET3f85732c70->DATARMNETae4b27456e.
+DATARMNET6215127f48){DATARMNETed7800fc72=DATARMNET3f85732c70->
+DATARMNETae4b27456e.DATARMNET6215127f48;DATARMNETa0df5de99d=DATARMNET3f85732c70
+->DATARMNETae4b27456e.DATARMNETbaa5765693;DATARMNETa6424e3c4e=
+DATARMNET3f85732c70->DATARMNETae4b27456e.DATARMNET35234676d4;DATARMNET77e7f4db43
+=DATARMNETe02152c351(DATARMNET3f85732c70,DATARMNETded3da1a77,DATARMNET5447204733
+);if(DATARMNET77e7f4db43){DATARMNET870611bedd+=DATARMNETa6424e3c4e;
+DATARMNET8bf94cc2f7+=DATARMNETed7800fc72;DATARMNET76192fa639+=
+DATARMNETa0df5de99d;DATARMNET0997c5650d[DATARMNET3f85732c70->map_cpu].
+DATARMNET4133fc9428-=DATARMNETed7800fc72;DATARMNET3f85732c70->
+DATARMNETae4b27456e.DATARMNET35234676d4=(0xd2d+202-0xdf7);if(DATARMNET3f85732c70
+->map_cpu==DATARMNET42a992465f){DATARMNET61ab18a4bd+=DATARMNETed7800fc72;
+DATARMNET3f85732c70->queue_head=DATARMNET61ab18a4bd;}}}}if(DATARMNET12565c8f98){
+if(DATARMNET362b15f941(DATARMNET42a992465f)&&!DATARMNET0997c5650d[
+DATARMNET42a992465f].DATARMNETef866573e0)DATARMNETfa919d00dc(DATARMNET42a992465f
+,DATARMNET870611bedd);DATARMNETc54e431bbc(DATARMNET42a992465f,
+DATARMNET20dc6bb36b,(0xd2d+202-0xdf7));}if(DATARMNET0997c5650d[
+DATARMNET42a992465f].DATARMNET4133fc9428<(0xd2d+202-0xdf7))DATARMNET68d84e7b98[
+DATARMNET33a9d4759f]++;if(DATARMNETeea3cef5b6(DATARMNET42a992465f)>=
+DATARMNET84413d1257[DATARMNET42a992465f])DATARMNET84413d1257[DATARMNET42a992465f
+]=DATARMNETeea3cef5b6(DATARMNET42a992465f);}DATARMNETecc0627c70.
+DATARMNETc252a1f55d-=DATARMNET76192fa639;DATARMNETecc0627c70.DATARMNETa2e32cdd3a
+-=DATARMNET8bf94cc2f7;DATARMNET52de1f3dc0(DATARMNET4510abc30d,
+DATARMNET576793621a,DATARMNETecc0627c70.DATARMNETa2e32cdd3a,DATARMNETecc0627c70.
+DATARMNETc252a1f55d,DATARMNET8bf94cc2f7,DATARMNET76192fa639,NULL,NULL);if((
+DATARMNETecc0627c70.DATARMNETc252a1f55d<=(0xd2d+202-0xdf7))||(
+DATARMNETecc0627c70.DATARMNETa2e32cdd3a<=(0xd2d+202-0xdf7))){DATARMNETecc0627c70
+.DATARMNETc252a1f55d=(0xd2d+202-0xdf7);DATARMNETecc0627c70.DATARMNETa2e32cdd3a=
+(0xd2d+202-0xdf7);DATARMNETecc0627c70.DATARMNETd9cfd2812b=(0xd2d+202-0xdf7);
+DATARMNETecc0627c70.DATARMNET34097703c8=DATARMNET8dcf06727b;if(
+DATARMNET365ddeca1c){if(hrtimer_active(&DATARMNETecc0627c70.DATARMNET6fd692fc7a)
+)hrtimer_cancel(&DATARMNETecc0627c70.DATARMNET6fd692fc7a);}}}void 
+DATARMNETa4bf9fbf64(u8 DATARMNETded3da1a77,u8 DATARMNET5447204733){unsigned long
+ ht_flags;spin_lock_irqsave(&DATARMNET3764d083f0,ht_flags);DATARMNETe377e0368d(
+DATARMNETded3da1a77,DATARMNET5447204733);if(DATARMNET5447204733==
+DATARMNET5b5927fd7e){if(DATARMNET365ddeca1c&&DATARMNETecc0627c70.
+DATARMNETc252a1f55d&&DATARMNETecc0627c70.DATARMNETa2e32cdd3a){if(hrtimer_active(
+&DATARMNETecc0627c70.DATARMNET6fd692fc7a))hrtimer_cancel(&DATARMNETecc0627c70.
+DATARMNET6fd692fc7a);hrtimer_start(&DATARMNETecc0627c70.DATARMNET6fd692fc7a,
+ns_to_ktime(DATARMNET4ac8af832c*DATARMNET68fc0be252),HRTIMER_MODE_REL);}
+DATARMNET14ed771dfb[DATARMNETd45c383019]++;}spin_unlock_irqrestore(&
+DATARMNET3764d083f0,ht_flags);}void DATARMNET495dab3d72(struct sk_buff*skb,
+struct DATARMNET63d7680df2*DATARMNET63b1a086d5){u8 DATARMNET7d63e92341=
+(0xd2d+202-0xdf7);if(skb->cb[DATARMNET8fadb49f38]){DATARMNETe377e0368d(
+(0xd2d+202-0xdf7),DATARMNET0b15fd8b54);DATARMNET14ed771dfb[DATARMNETc8058e2cff]
+++;DATARMNET7d63e92341=(0xd26+209-0xdf6);}if(skb_shinfo(skb)->gso_segs){
+DATARMNET63b1a086d5->DATARMNET11930c5df8+=skb_shinfo(skb)->gso_segs;
+DATARMNET0997c5650d[DATARMNET63b1a086d5->map_cpu].DATARMNET4133fc9428++;
+DATARMNET63b1a086d5->DATARMNETae4b27456e.DATARMNET35234676d4+=skb_shinfo(skb)->
+gso_segs;}else{DATARMNET63b1a086d5->DATARMNET11930c5df8+=(0xd26+209-0xdf6);
+DATARMNET0997c5650d[DATARMNET63b1a086d5->map_cpu].DATARMNET4133fc9428++;
+DATARMNET63b1a086d5->DATARMNETae4b27456e.DATARMNET35234676d4++;}
+DATARMNET63b1a086d5->DATARMNETa8940e4a7b+=(0xd26+209-0xdf6);DATARMNET63b1a086d5
+->DATARMNET2594c418db+=skb->len;DATARMNET63b1a086d5->DATARMNETae4b27456e.
+DATARMNETbaa5765693+=skb->len;DATARMNETecc0627c70.DATARMNETc252a1f55d+=skb->len;
+if(DATARMNET63b1a086d5->DATARMNETae4b27456e.DATARMNET6215127f48>
+(0xd2d+202-0xdf7)){DATARMNET63b1a086d5->DATARMNETae4b27456e.tail->next=skb;
+DATARMNET63b1a086d5->DATARMNETae4b27456e.tail=DATARMNET63b1a086d5->
+DATARMNETae4b27456e.tail->next;}else{DATARMNET63b1a086d5->DATARMNETae4b27456e.
+head=skb;DATARMNET63b1a086d5->DATARMNETae4b27456e.tail=skb;}DATARMNET63b1a086d5
+->DATARMNETae4b27456e.DATARMNET6215127f48+=(0xd26+209-0xdf6);DATARMNETecc0627c70
+.DATARMNETa2e32cdd3a+=(0xd26+209-0xdf6);if(unlikely(DATARMNET7d63e92341))
+DATARMNETe377e0368d((0xd2d+202-0xdf7),DATARMNET0b15fd8b54);DATARMNET52de1f3dc0(
+DATARMNET720469c0a9,DATARMNETf5c836f9ae,DATARMNET63b1a086d5->DATARMNETae4b27456e
+.DATARMNET6215127f48,DATARMNET63b1a086d5->DATARMNETae4b27456e.
+DATARMNETbaa5765693,DATARMNETecc0627c70.DATARMNETa2e32cdd3a,DATARMNETecc0627c70.
+DATARMNETc252a1f55d,skb,DATARMNET63b1a086d5);}static void DATARMNETa7afc8cdaa(
+struct work_struct*DATARMNET33110a3ff5){u8 DATARMNET665469cfb6=(0xd2d+202-0xdf7)
+;DATARMNET52de1f3dc0(DATARMNET4510abc30d,DATARMNET816bb1e327,DATARMNET665469cfb6
+,DATARMNETecc0627c70.DATARMNET34097703c8,(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),
+NULL,NULL);if(DATARMNETecc0627c70.DATARMNETa2e32cdd3a&&DATARMNETecc0627c70.
+DATARMNET34097703c8==DATARMNETb3e3b2a799){local_bh_disable();DATARMNETa4bf9fbf64
+(DATARMNET665469cfb6,DATARMNET5b5927fd7e);local_bh_enable();}DATARMNET52de1f3dc0
+(DATARMNET4510abc30d,DATARMNETf311f20c00,DATARMNET665469cfb6,(0x16e8+787-0xc0c),
+(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),NULL,NULL);}enum hrtimer_restart 
+DATARMNET0a73c53ae6(struct hrtimer*DATARMNET6e4292679f){enum hrtimer_restart ret
+=HRTIMER_NORESTART;DATARMNET52de1f3dc0(DATARMNET4510abc30d,DATARMNET237e7bd5f6,
+DATARMNETecc0627c70.DATARMNET34097703c8,(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),
+(0x16e8+787-0xc0c),NULL,NULL);if(DATARMNETecc0627c70.DATARMNETa2e32cdd3a>
+(0xd2d+202-0xdf7)){if(DATARMNETecc0627c70.DATARMNET34097703c8==
+DATARMNET7bc926fdbe){DATARMNETecc0627c70.DATARMNET34097703c8=DATARMNETb3e3b2a799
+;hrtimer_forward(DATARMNET6e4292679f,hrtimer_cb_get_time(DATARMNET6e4292679f),
+ns_to_ktime(DATARMNET00d5787aad));ret=HRTIMER_RESTART;DATARMNET52de1f3dc0(
+DATARMNET4510abc30d,DATARMNETf16e78412b,DATARMNETecc0627c70.DATARMNETa2e32cdd3a,
+(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),NULL,NULL);}else if(
+DATARMNETecc0627c70.DATARMNET34097703c8==DATARMNET8dcf06727b){
+DATARMNETecc0627c70.DATARMNET34097703c8=DATARMNET7bc926fdbe;}else if(
+DATARMNETecc0627c70.DATARMNET34097703c8==DATARMNETb3e3b2a799){
+DATARMNET52de1f3dc0(DATARMNET4510abc30d,DATARMNET83147a2e7d,DATARMNETecc0627c70.
+DATARMNET34097703c8,(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),
+NULL,NULL);schedule_work((struct work_struct*)&shs_rx_work);}}return ret;}enum 
+hrtimer_restart DATARMNET4ce9744605(struct hrtimer*DATARMNET6e4292679f){const 
+enum hrtimer_restart ret=HRTIMER_NORESTART;struct DATARMNETa6f2d499b2*
+DATARMNET4b39dc1574=container_of(DATARMNET6e4292679f,struct DATARMNETa6f2d499b2,
+DATARMNET758a55f103);DATARMNET371703c28d();schedule_work(&DATARMNET4b39dc1574->
+DATARMNET33110a3ff5);return ret;}void DATARMNETe1f95274f1(void){int i;for(i=
+(0xd2d+202-0xdf7);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;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"
+);}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;struct 
+ipv6hdr*ip6h;struct tcphdr*tp;struct udphdr*up;int len=(0xd2d+202-0xdf7);u16 
+ip_len=(0xd2d+202-0xdf7);__be16 frag_off;u8 protocol;node_p->DATARMNETa1099c74fe
+=(0xd2d+202-0xdf7);if(!skb_is_nonlinear(skb)){switch(skb->protocol){case htons(
+ETH_P_IP):node_p->DATARMNET1e9d25d9ff=ip_hdr(skb)->protocol;memcpy(&(node_p->
+ip_hdr.DATARMNETac9bbaad7c),ip_hdr(skb),sizeof(struct iphdr));ip_len=ip_hdr(skb)
+->ihl*(0xd11+230-0xdf3);node_p->DATARMNETa1099c74fe=!(ip_hdr(skb)->frag_off&
+htons(IP_DF));break;case htons(ETH_P_IPV6):node_p->DATARMNET1e9d25d9ff=ipv6_hdr(
+skb)->nexthdr;memcpy(&(node_p->ip_hdr.DATARMNET1688a97aa4),ip_hdr(skb),sizeof(
+struct ipv6hdr));protocol=ipv6_hdr(skb)->nexthdr;len=ipv6_skip_exthdr(skb,sizeof
+(*ip6h),&protocol,&frag_off);if(len<(0xd2d+202-0xdf7)){return;}ip_len=(u16)len;
+break;default:break;}}else{switch(skb->protocol){case htons(ETH_P_IP):ip4h=(
+struct iphdr*)rmnet_map_data_ptr(skb);node_p->DATARMNET1e9d25d9ff=ip4h->protocol
+;memcpy(&(node_p->ip_hdr.DATARMNETac9bbaad7c),ip4h,sizeof(struct iphdr));ip_len=
+ip4h->ihl*(0xd11+230-0xdf3);node_p->DATARMNETa1099c74fe=!(ip4h->frag_off&htons(
+IP_DF));break;case htons(ETH_P_IPV6):ip6h=(struct ipv6hdr*)rmnet_map_data_ptr(
+skb);node_p->DATARMNET1e9d25d9ff=ip6h->nexthdr;memcpy(&(node_p->ip_hdr.
+DATARMNET1688a97aa4),ip6h,sizeof(struct ipv6hdr));protocol=ipv6_hdr(skb)->
+nexthdr;len=ipv6_skip_exthdr(skb,sizeof(*ip6h),&protocol,&frag_off);if(len<
+(0xd2d+202-0xdf7)){return;}ip_len=(u16)len;break;default:break;}}if(node_p->
+DATARMNET1e9d25d9ff==IPPROTO_TCP){if(!skb_is_nonlinear(skb)){tp=(struct tcphdr*)
+(skb->data+ip_len);}else{tp=(struct tcphdr*)(rmnet_map_data_ptr(skb)+ip_len);}
+memcpy(&(node_p->DATARMNETe33b41dad9.tp),tp,sizeof(struct tcphdr));}else if(
+node_p->DATARMNET1e9d25d9ff==IPPROTO_UDP){if(!skb_is_nonlinear(skb)){up=(struct 
+udphdr*)(skb->data+ip_len);}else{up=(struct udphdr*)(rmnet_map_data_ptr(skb)+
+ip_len);}memcpy(&(node_p->DATARMNETe33b41dad9.up),up,sizeof(struct udphdr));}
+else{}}int DATARMNET756778f14f(struct sk_buff*skb,struct rmnet_port*port){struct
+ DATARMNET63d7680df2*node_p;struct hlist_node*tmp;struct net_device*dev=skb->dev
+;int map=DATARMNETecc0627c70.map_mask;unsigned long ht_flags;int 
+DATARMNETcfb5dc7296;int map_cpu;u64 DATARMNET138d6d02d2=(0xd2d+202-0xdf7);u32 
+DATARMNET5c4a331b9c,hash;u8 is_match_found=(0xd2d+202-0xdf7);u8 
+DATARMNET935af10724=(0xd2d+202-0xdf7);struct DATARMNETe600c5b727*
+DATARMNETa4055affd5;struct rmnet_priv*priv;if(!DATARMNET9303cec796(skb)){
+DATARMNETe767554e6e(skb);return(0xd2d+202-0xdf7);}if((unlikely(!map))||!
+DATARMNETecc0627c70.DATARMNETfc89d842ae){DATARMNETe767554e6e(skb);
+DATARMNET015fb2ba0e(DATARMNET720469c0a9,DATARMNETe0fee0991a,(0x16e8+787-0xc0c),
+(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),NULL,NULL);
+DATARMNET68d84e7b98[DATARMNETe3c02ddaeb]++;return(0xd2d+202-0xdf7);}
+DATARMNET52de1f3dc0(DATARMNET720469c0a9,DATARMNET856c53293b,(0x16e8+787-0xc0c),
+(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),skb,NULL);hash=
+skb_get_hash(skb);spin_lock_irqsave(&DATARMNET3764d083f0,ht_flags);do{
+hash_for_each_possible_safe(DATARMNETe603c3a4b3,node_p,tmp,list,hash){if(hash!=
+node_p->hash)continue;DATARMNETda96251102(DATARMNET720469c0a9,
+DATARMNET08b6defcff,(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),
+(0x16e8+787-0xc0c),skb,NULL);DATARMNET5c4a331b9c=node_p->map_index;
+DATARMNET495dab3d72(skb,node_p);is_match_found=(0xd26+209-0xdf6);
+DATARMNET935af10724=(0xd26+209-0xdf6);break;}if(is_match_found)break;
+DATARMNETcfb5dc7296=DATARMNET217fe38119(DATARMNET138d6d02d2,dev);if(
+DATARMNETcfb5dc7296<(0xd2d+202-0xdf7)){DATARMNET68d84e7b98[DATARMNETa1f9420686]
+++;break;}if(DATARMNETecc0627c70.DATARMNET64bb8a8f57>DATARMNETbfe31ef643){
+DATARMNET68d84e7b98[DATARMNETe6e77f9f03]++;break;}node_p=kzalloc(sizeof(*node_p)
+,GFP_ATOMIC);if(!node_p){DATARMNET68d84e7b98[DATARMNET394acaf558]++;break;}
+DATARMNETecc0627c70.DATARMNET64bb8a8f57++;node_p->dev=skb->dev;node_p->hash=skb
+->hash;node_p->map_cpu=DATARMNETcfb5dc7296;node_p->map_index=DATARMNET04e8d1b862
+(node_p->map_cpu,map);INIT_LIST_HEAD(&node_p->DATARMNET04c88b8191);
+DATARMNET44459105b4(skb,node_p);DATARMNET0349051465(node_p->map_cpu);
+DATARMNET350f55bfca(node_p);map_cpu=node_p->map_cpu;DATARMNETa4055affd5=&
+DATARMNET0997c5650d[map_cpu];priv=netdev_priv(node_p->dev);if(!priv){rm_err(
+"\x70\x72\x69\x76\x20\x66\x6f\x72\x20\x6e\x65\x74\x64\x65\x76\x20\x69\x73\x20\x6e\x75\x6c\x6c\x20\x66\x6f\x72\x20\x68\x61\x73\x68\x20\x30\x78\x25\x78"
+,node_p->hash);DATARMNET68d84e7b98[DATARMNETf5157a9b85]++;}else{node_p->
+DATARMNET341ea38662->mux_id=priv->mux_id;rm_err(
+"\x53\x48\x53\x5f\x4d\x55\x58\x3a\x20\x6d\x75\x78\x20\x69\x64\x20\x66\x6f\x72\x20\x68\x61\x73\x68\x20\x30\x78\x25\x78\x20\x69\x73\x20\x25\x64"
+,node_p->hash,node_p->DATARMNET341ea38662->mux_id);}DATARMNET3e37ad2816(node_p,&
+DATARMNETa4055affd5->DATARMNET3dc4262f53);hash_add_rcu(DATARMNETe603c3a4b3,&
+node_p->list,skb->hash);DATARMNET495dab3d72(skb,node_p);DATARMNET935af10724=
+(0xd26+209-0xdf6);break;}while((0xd2d+202-0xdf7));if(!DATARMNET935af10724){
+spin_unlock_irqrestore(&DATARMNET3764d083f0,ht_flags);DATARMNET68d84e7b98[
+DATARMNET99db6e7d86]++;DATARMNETe767554e6e(skb);DATARMNET015fb2ba0e(
+DATARMNET720469c0a9,DATARMNETe0fee0991a,(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),
+(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),NULL,NULL);return(0xd2d+202-0xdf7);}if(!
+DATARMNETecc0627c70.DATARMNETd9cfd2812b&&DATARMNETecc0627c70.DATARMNETa2e32cdd3a
+&&DATARMNET365ddeca1c){DATARMNETecc0627c70.DATARMNETd9cfd2812b=(0xd26+209-0xdf6)
+;DATARMNETecc0627c70.DATARMNET34097703c8=DATARMNET7bc926fdbe;if(hrtimer_active(&
+DATARMNETecc0627c70.DATARMNET6fd692fc7a)){DATARMNETda96251102(
+DATARMNET720469c0a9,DATARMNETf730f80f06,DATARMNET2f67183a86,(0x16e8+787-0xc0c),
+(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),skb,NULL);hrtimer_cancel(&
+DATARMNETecc0627c70.DATARMNET6fd692fc7a);}hrtimer_start(&DATARMNETecc0627c70.
+DATARMNET6fd692fc7a,ns_to_ktime(DATARMNET4ac8af832c*DATARMNET68fc0be252),
+HRTIMER_MODE_REL);DATARMNETda96251102(DATARMNET720469c0a9,DATARMNETdd870ee64c,
+DATARMNET2f67183a86,(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),skb
+,NULL);}spin_unlock_irqrestore(&DATARMNET3764d083f0,ht_flags);if(
+DATARMNETecc0627c70.DATARMNETa2e32cdd3a>DATARMNET7d18c0bcf8){if(
+DATARMNET58b009b16b)DATARMNET14ed771dfb[DATARMNET802083239a]++;
+DATARMNET52de1f3dc0(DATARMNET4510abc30d,DATARMNET562b7d32a8,(0xd2d+202-0xdf7),
+(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),NULL,NULL);
+DATARMNETa4bf9fbf64((0xd26+209-0xdf6),DATARMNET0b15fd8b54);}else if(
+DATARMNETecc0627c70.DATARMNETc252a1f55d>DATARMNETea75c7b6f6){if(
+DATARMNET58b009b16b)DATARMNET14ed771dfb[DATARMNETed69052342]++;
+DATARMNET52de1f3dc0(DATARMNET4510abc30d,DATARMNET99640d60f7,(0xd2d+202-0xdf7),
+(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),NULL,NULL);
+DATARMNETa4bf9fbf64((0xd26+209-0xdf6),DATARMNET0b15fd8b54);}else if(
+DATARMNETecc0627c70.DATARMNET34097703c8==DATARMNETb3e3b2a799){
+DATARMNET14ed771dfb[DATARMNETcfb1764a91]++;DATARMNET52de1f3dc0(
+DATARMNET4510abc30d,DATARMNETa2bd301af7,(0xd26+209-0xdf6),DATARMNETecc0627c70.
+DATARMNETa2e32cdd3a,(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),NULL,NULL);
+DATARMNETa4bf9fbf64((0xd2d+202-0xdf7),DATARMNET0b15fd8b54);}else if(
+DATARMNETecc0627c70.DATARMNETa2e32cdd3a&&DATARMNETecc0627c70.DATARMNET6fe0db3a49
+!=DATARMNET1c55e5fdb1){DATARMNET14ed771dfb[DATARMNET01bf75e27c]++;
+DATARMNETa4bf9fbf64((0xd2d+202-0xdf7),DATARMNET0b15fd8b54);}return
+(0xd2d+202-0xdf7);}void DATARMNET9297340f58(unsigned int DATARMNET9f4bc49c6f){
+DATARMNETdf74db7e38();DATARMNETecc0627c70.DATARMNET08dbb5ab35.dl_hdr_handler_v2=
+NULL;DATARMNETecc0627c70.DATARMNET08dbb5ab35.dl_trl_handler_v2=NULL;
+rmnet_map_dl_ind_deregister(DATARMNETecc0627c70.port,&DATARMNETecc0627c70.
+DATARMNET08dbb5ab35);DATARMNETecc0627c70.DATARMNET9c869c1ec2=(0xd2d+202-0xdf7);
+unregister_oom_notifier(&DATARMNET105c85d84c);if(DATARMNETecc0627c70.
+DATARMNETf5ab31b9b0)hrtimer_cancel(&DATARMNETecc0627c70.DATARMNET6fd692fc7a);
+memset(&DATARMNETecc0627c70,(0xd2d+202-0xdf7),sizeof(DATARMNETecc0627c70));
+DATARMNETecc0627c70.port=NULL;DATARMNETecc0627c70.DATARMNETfc89d842ae=
+(0xd2d+202-0xdf7);DATARMNET12565c8f98=DATARMNET9f4bc49c6f;}

+ 207 - 0
shs/rmnet_shs_modules.c

@@ -0,0 +1,207 @@
+/* Copyright (c) 2020 The Linux Foundation. All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 and
+ * only version 2 as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ */
+
+#include "rmnet_shs.h"
+unsigned int DATARMNET1fc3ad67fd __read_mostly=DATARMNETe4c625a3a3;module_param(
+DATARMNET1fc3ad67fd,uint,(0xdb7+6665-0x261c));MODULE_PARM_DESC(
+DATARMNET1fc3ad67fd,
+"\x49\x6e\x74\x65\x72\x76\x61\x6c\x20\x62\x65\x74\x77\x65\x65\x6e\x20\x77\x71\x20\x72\x75\x6e\x73\x20\x28\x6d\x73\x29"
+);unsigned long DATARMNETa804c0b904 __read_mostly=DATARMNET4899358462;
+module_param(DATARMNETa804c0b904,ulong,(0xdb7+6665-0x261c));MODULE_PARM_DESC(
+DATARMNETa804c0b904,
+"\x4d\x61\x78\x20\x66\x6c\x6f\x77\x20\x69\x6e\x61\x63\x74\x69\x76\x65\x20\x74\x69\x6d\x65\x20\x62\x65\x66\x6f\x72\x65\x20\x63\x6c\x65\x61\x6e\x20\x75\x70"
+);unsigned int DATARMNETcab56af6d5 __read_mostly=(0xeb7+710-0x112d);module_param
+(DATARMNETcab56af6d5,uint,(0xdb7+6665-0x261c));MODULE_PARM_DESC(
+DATARMNETcab56af6d5,
+"\x6d\x6f\x76\x69\x6e\x67\x20\x61\x76\x65\x72\x61\x67\x65\x20\x77\x65\x69\x67\x68\x74\x61\x67\x65"
+);unsigned long long DATARMNET713717107f[DATARMNETc6782fed88]__read_mostly={
+DATARMNETb38cb72105,DATARMNETb38cb72105,DATARMNETb38cb72105,DATARMNETb38cb72105,
+DATARMNET243c638e7d,DATARMNET243c638e7d,DATARMNET243c638e7d,DATARMNET243c638e7d}
+;module_param_array(DATARMNET713717107f,ullong,NULL,(0xdb7+6665-0x261c));
+MODULE_PARM_DESC(DATARMNET713717107f,
+"\x4d\x61\x78\x20\x70\x6b\x74\x73\x20\x63\x6f\x72\x65\x20\x63\x61\x6e\x20\x68\x61\x6e\x64\x6c\x65"
+);unsigned long long DATARMNET4793ed48af[DATARMNETc6782fed88]__read_mostly={
+DATARMNET9bc9e0cac3,DATARMNET9bc9e0cac3,DATARMNET9bc9e0cac3,DATARMNET9bc9e0cac3,
+DATARMNET22feab5726,DATARMNET22feab5726,DATARMNET22feab5726,DATARMNET22feab5726}
+;module_param_array(DATARMNET4793ed48af,ullong,NULL,(0xdb7+6665-0x261c));
+MODULE_PARM_DESC(DATARMNET4793ed48af,
+"\x4d\x69\x6e\x20\x70\x6b\x74\x73\x20\x63\x6f\x72\x65\x20\x63\x61\x6e\x20\x68\x61\x6e\x64\x6c\x65"
+);unsigned int DATARMNET18f2ba4444[DATARMNETc6782fed88];module_param_array(
+DATARMNET18f2ba4444,uint,NULL,(0xcb7+5769-0x221c));MODULE_PARM_DESC(
+DATARMNET18f2ba4444,
+"\x4e\x75\x6d\x20\x66\x6c\x6f\x77\x73\x20\x70\x72\x6f\x63\x65\x73\x73\x65\x64\x20\x70\x65\x72\x20\x63\x6f\x72\x65"
+);unsigned int DATARMNET2d482e7d9f[DATARMNETc6782fed88];module_param_array(
+DATARMNET2d482e7d9f,uint,NULL,(0xcb7+5769-0x221c));MODULE_PARM_DESC(
+DATARMNET2d482e7d9f,
+"\x4e\x75\x6d\x20\x66\x69\x6c\x74\x65\x72\x65\x64\x20\x66\x6c\x6f\x77\x73\x20\x70\x65\x72\x20\x63\x6f\x72\x65"
+);unsigned long long DATARMNET77240d48ee[DATARMNETc6782fed88];module_param_array
+(DATARMNET77240d48ee,ullong,NULL,(0xcb7+5769-0x221c));MODULE_PARM_DESC(
+DATARMNET77240d48ee,
+"\x53\x48\x53\x20\x73\x74\x61\x6d\x70\x20\x62\x79\x74\x65\x73\x20\x70\x65\x72\x20\x43\x50\x55"
+);unsigned long long DATARMNET77189ab85c[DATARMNETc6782fed88];module_param_array
+(DATARMNET77189ab85c,ullong,NULL,(0xcb7+5769-0x221c));MODULE_PARM_DESC(
+DATARMNET77189ab85c,
+"\x53\x48\x53\x20\x73\x74\x61\x6d\x70\x20\x74\x6f\x74\x61\x6c\x20\x70\x6b\x74\x73\x20\x70\x65\x72\x20\x43\x50\x55"
+);unsigned long long DATARMNET79263b1183[DATARMNETc6782fed88];module_param_array
+(DATARMNET79263b1183,ullong,NULL,(0xcb7+5769-0x221c));MODULE_PARM_DESC(
+DATARMNET79263b1183,
+"\x53\x48\x53\x20\x73\x74\x61\x6d\x70\x20\x65\x6e\x71\x20\x72\x61\x74\x65\x20\x70\x65\x72\x20\x43\x50\x55"
+);unsigned long long DATARMNET229d52b629[DATARMNETc6782fed88];module_param_array
+(DATARMNET229d52b629,ullong,NULL,(0xcb7+5769-0x221c));MODULE_PARM_DESC(
+DATARMNET229d52b629,
+"\x53\x48\x53\x20\x73\x74\x61\x6d\x70\x20\x70\x6b\x74\x20\x65\x6e\x71\x20\x72\x61\x74\x65\x20\x70\x65\x72\x20\x43\x50\x55"
+);unsigned long long DATARMNETd27ed7efea[DATARMNETc6782fed88];module_param_array
+(DATARMNETd27ed7efea,ullong,NULL,(0xcb7+5769-0x221c));MODULE_PARM_DESC(
+DATARMNETd27ed7efea,
+"\x53\x48\x53\x20\x6e\x77\x20\x73\x74\x61\x63\x6b\x20\x71\x75\x65\x75\x65\x20\x70\x72\x6f\x63\x65\x73\x73\x65\x64\x20\x64\x69\x66\x66"
+);unsigned long long DATARMNET377ecf13ca[DATARMNETc6782fed88];module_param_array
+(DATARMNET377ecf13ca,ullong,NULL,(0xcb7+5769-0x221c));MODULE_PARM_DESC(
+DATARMNET377ecf13ca,
+"\x53\x48\x53\x20\x6e\x77\x20\x71\x75\x65\x75\x65\x20\x70\x72\x6f\x63\x65\x73\x73\x65\x64\x20\x74\x6f\x74\x61\x6c"
+);unsigned long DATARMNETbf3b6fdfc8[DATARMNET2f9ea73326];module_param_array(
+DATARMNETbf3b6fdfc8,ulong,NULL,(0xcb7+5769-0x221c));MODULE_PARM_DESC(
+DATARMNETbf3b6fdfc8,
+"\x53\x48\x53\x20\x73\x74\x61\x6d\x70\x20\x68\x61\x73\x68\x20\x66\x6c\x6f\x77");
+unsigned long DATARMNET0fec241216[DATARMNET2f9ea73326];module_param_array(
+DATARMNET0fec241216,ulong,NULL,(0xcb7+5769-0x221c));MODULE_PARM_DESC(
+DATARMNET0fec241216,
+"\x53\x48\x53\x20\x73\x74\x61\x6d\x70\x20\x68\x61\x73\x68\x20\x74\x72\x61\x6e\x73\x70\x6f\x72\x74\x20\x70\x72\x6f\x74\x6f\x63\x6f\x6c"
+);unsigned long long DATARMNET9e5e8e4048[DATARMNET2f9ea73326];module_param_array
+(DATARMNET9e5e8e4048,ullong,NULL,(0xcb7+5769-0x221c));MODULE_PARM_DESC(
+DATARMNET9e5e8e4048,
+"\x53\x48\x53\x20\x73\x74\x61\x6d\x70\x20\x69\x6e\x61\x63\x74\x69\x76\x65\x20\x66\x6c\x6f\x77\x20\x74\x69\x6d\x65"
+);int DATARMNETdba344c809[DATARMNET2f9ea73326]={-(0xd26+209-0xdf6),-
+(0xd26+209-0xdf6),-(0xd26+209-0xdf6),-(0xd26+209-0xdf6),-(0xd26+209-0xdf6),-
+(0xd26+209-0xdf6),-(0xd26+209-0xdf6),-(0xd26+209-0xdf6),-(0xd26+209-0xdf6),-
+(0xd26+209-0xdf6),-(0xd26+209-0xdf6),-(0xd26+209-0xdf6),-(0xd26+209-0xdf6),-
+(0xd26+209-0xdf6),-(0xd26+209-0xdf6),-(0xd26+209-0xdf6)};module_param_array(
+DATARMNETdba344c809,int,NULL,(0xcb7+5769-0x221c));MODULE_PARM_DESC(
+DATARMNETdba344c809,
+"\x53\x48\x53\x20\x73\x74\x61\x6d\x70\x20\x66\x6c\x6f\x77\x20\x70\x72\x6f\x63\x65\x73\x73\x69\x6e\x67\x20\x43\x50\x55"
+);int DATARMNET99a934c43a[DATARMNET2f9ea73326]={-(0xd26+209-0xdf6),-
+(0xd26+209-0xdf6),-(0xd26+209-0xdf6),-(0xd26+209-0xdf6),-(0xd26+209-0xdf6),-
+(0xd26+209-0xdf6),-(0xd26+209-0xdf6),-(0xd26+209-0xdf6),-(0xd26+209-0xdf6),-
+(0xd26+209-0xdf6),-(0xd26+209-0xdf6),-(0xd26+209-0xdf6),-(0xd26+209-0xdf6),-
+(0xd26+209-0xdf6),-(0xd26+209-0xdf6),-(0xd26+209-0xdf6)};module_param_array(
+DATARMNET99a934c43a,int,NULL,(0xcb7+5769-0x221c));MODULE_PARM_DESC(
+DATARMNET99a934c43a,
+"\x53\x48\x53\x20\x73\x74\x61\x6d\x70\x20\x66\x6c\x6f\x77\x20\x70\x72\x6f\x63\x20\x43\x50\x55"
+);unsigned long long DATARMNET47956cbb0f[DATARMNET2f9ea73326];module_param_array
+(DATARMNET47956cbb0f,ullong,NULL,(0xcb7+5769-0x221c));MODULE_PARM_DESC(
+DATARMNET47956cbb0f,
+"\x53\x48\x53\x20\x73\x74\x61\x6d\x70\x20\x62\x79\x74\x65\x73\x20\x70\x65\x72\x20\x66\x6c\x6f\x77"
+);unsigned long long DATARMNET338c8e7a2b[DATARMNET2f9ea73326];module_param_array
+(DATARMNET338c8e7a2b,ullong,NULL,(0xcb7+5769-0x221c));MODULE_PARM_DESC(
+DATARMNET338c8e7a2b,
+"\x53\x48\x53\x20\x73\x74\x61\x6d\x70\x20\x74\x6f\x74\x61\x6c\x20\x70\x6b\x74\x73\x20\x70\x65\x72\x20\x66\x6c\x6f\x77"
+);unsigned long long DATARMNET4b1ae621cd[DATARMNET2f9ea73326];module_param_array
+(DATARMNET4b1ae621cd,ullong,NULL,(0xcb7+5769-0x221c));MODULE_PARM_DESC(
+DATARMNET4b1ae621cd,
+"\x53\x48\x53\x20\x73\x74\x61\x6d\x70\x20\x65\x6e\x71\x20\x72\x61\x74\x65\x20\x70\x65\x72\x20\x66\x6c\x6f\x77"
+);unsigned long long DATARMNETf5133a99c6[DATARMNET2f9ea73326];module_param_array
+(DATARMNETf5133a99c6,ullong,NULL,(0xcb7+5769-0x221c));MODULE_PARM_DESC(
+DATARMNETf5133a99c6,
+"\x53\x48\x53\x20\x73\x74\x61\x6d\x70\x20\x70\x6b\x74\x20\x65\x6e\x71\x20\x72\x61\x74\x65\x20\x70\x65\x72\x20\x66\x6c\x6f\x77"
+);unsigned long long DATARMNETc5d73c43e6[DATARMNET2f9ea73326];module_param_array
+(DATARMNETc5d73c43e6,ullong,NULL,(0xcb7+5769-0x221c));MODULE_PARM_DESC(
+DATARMNETc5d73c43e6,
+"\x53\x48\x53\x20\x53\x75\x67\x67\x65\x73\x74\x20\x53\x69\x6c\x76\x65\x72\x20\x74\x6f\x20\x47\x6f\x6c\x64"
+);unsigned long long DATARMNETf4aa8ec23f[DATARMNET2f9ea73326];module_param_array
+(DATARMNETf4aa8ec23f,ullong,NULL,(0xcb7+5769-0x221c));MODULE_PARM_DESC(
+DATARMNETf4aa8ec23f,
+"\x53\x48\x53\x20\x53\x75\x67\x67\x65\x73\x74\x20\x47\x6f\x6c\x64\x20\x74\x6f\x20\x53\x69\x6c\x76\x65\x72"
+);unsigned long long DATARMNET6d75219ffb[DATARMNET2f9ea73326];module_param_array
+(DATARMNET6d75219ffb,ullong,NULL,(0xcb7+5769-0x221c));MODULE_PARM_DESC(
+DATARMNET6d75219ffb,
+"\x53\x48\x53\x20\x53\x75\x67\x67\x65\x73\x74\x20\x47\x6f\x6c\x64\x20\x42\x61\x6c\x61\x6e\x63\x65"
+);unsigned long DATARMNETb7ddf3c5dd[DATARMNETeccb61ebc3];module_param_array(
+DATARMNETb7ddf3c5dd,ulong,NULL,(0xcb7+5769-0x221c));MODULE_PARM_DESC(
+DATARMNETb7ddf3c5dd,
+"\x72\x6d\x6e\x65\x74\x20\x73\x68\x73\x20\x73\x6b\x62\x20\x63\x6f\x72\x65\x20\x73\x77\x74\x69\x63\x68\x20\x74\x79\x70\x65"
+);unsigned long DATARMNET14ed771dfb[DATARMNET3cef75f6cd];module_param_array(
+DATARMNET14ed771dfb,ulong,NULL,(0xcb7+5769-0x221c));MODULE_PARM_DESC(
+DATARMNET14ed771dfb,
+"\x72\x6d\x6e\x65\x74\x20\x73\x68\x73\x20\x73\x6b\x62\x20\x66\x6c\x75\x73\x68\x20\x74\x72\x69\x67\x67\x65\x72\x20\x74\x79\x70\x65"
+);unsigned int DATARMNETea75c7b6f6 __read_mostly=271800*(0xeb7+710-0x112d);
+module_param(DATARMNETea75c7b6f6,uint,(0xdb7+6665-0x261c));MODULE_PARM_DESC(
+DATARMNETea75c7b6f6,
+"\x4d\x61\x78\x69\x6d\x75\x6d\x20\x62\x79\x74\x65\x20\x6d\x6f\x64\x75\x6c\x65\x20\x77\x69\x6c\x6c\x20\x70\x61\x72\x6b"
+);unsigned int DATARMNET7d18c0bcf8 __read_mostly=(0xa58+3472-0xfb4)*
+(0xd35+210-0xdff);module_param(DATARMNET7d18c0bcf8,uint,(0xdb7+6665-0x261c));
+MODULE_PARM_DESC(DATARMNET7d18c0bcf8,
+"\x4d\x61\x78\x69\x6d\x75\x6d\x20\x70\x6b\x74\x73\x20\x6d\x6f\x64\x75\x6c\x65\x20\x77\x69\x6c\x6c\x20\x70\x61\x72\x6b"
+);unsigned int DATARMNET227d2ff866 __read_mostly=(0xec7+1131-0x1305);
+module_param(DATARMNET227d2ff866,uint,(0xdb7+6665-0x261c));MODULE_PARM_DESC(
+DATARMNET227d2ff866,
+"\x4d\x61\x78\x20\x77\x61\x69\x74\x20\x6d\x6f\x64\x75\x6c\x65\x20\x77\x69\x6c\x6c\x20\x77\x61\x69\x74\x20\x64\x75\x72\x69\x6e\x67\x20\x6d\x6f\x76\x65\x20\x74\x6f\x20\x70\x65\x72\x66\x20\x63\x6f\x72\x65\x20\x69\x6e\x20\x6d\x73"
+);unsigned int DATARMNETa1ac2608b5 __read_mostly=(0xeb7+1130-0x130d);
+module_param(DATARMNETa1ac2608b5,uint,(0xdb7+6665-0x261c));MODULE_PARM_DESC(
+DATARMNETa1ac2608b5,
+"\x4d\x61\x78\x20\x69\x6e\x74\x65\x72\x76\x61\x6c\x20\x77\x65\x20\x73\x61\x6d\x70\x6c\x65\x20\x66\x6f\x72\x20\x69\x6e\x73\x74\x61\x6e\x74\x20\x62\x75\x72\x73\x74\x20\x70\x72\x69\x6f\x72\x69\x74\x69\x7a\x69\x6e\x67"
+);unsigned int DATARMNET12565c8f98 __read_mostly=(0xd26+209-0xdf6);module_param(
+DATARMNET12565c8f98,uint,(0xdb7+6665-0x261c));MODULE_PARM_DESC(
+DATARMNET12565c8f98,
+"\x43\x6f\x6e\x66\x69\x67\x75\x72\x61\x62\x6c\x65\x20\x6f\x70\x74\x69\x6f\x6e\x20\x74\x6f\x20\x65\x6e\x61\x62\x6c\x65\x20\x72\x78\x20\x72\x61\x74\x65\x20\x63\x70\x75\x20\x73\x77\x69\x74\x63\x68\x69\x6e\x67"
+);unsigned int DATARMNET365ddeca1c __read_mostly=(0xd26+209-0xdf6);module_param(
+DATARMNET365ddeca1c,uint,(0xdb7+6665-0x261c));MODULE_PARM_DESC(
+DATARMNET365ddeca1c,
+"\x4f\x70\x74\x69\x6f\x6e\x20\x74\x6f\x20\x65\x6e\x61\x62\x6c\x65\x20\x66\x61\x6c\x6c\x20\x62\x61\x63\x6b\x20\x6c\x69\x6d\x69\x74\x20\x66\x6f\x72\x20\x70\x61\x72\x6b\x69\x6e\x67"
+);unsigned int DATARMNET35fe073bc2 __read_mostly=(0xf07+3937-0x1a1c);
+module_param(DATARMNET35fe073bc2,uint,(0xdb7+6665-0x261c));MODULE_PARM_DESC(
+DATARMNET35fe073bc2,
+"\x4d\x61\x78\x20\x70\x6b\x74\x73\x20\x69\x6e\x20\x62\x61\x63\x6b\x6c\x6f\x67\x20\x70\x72\x69\x6f\x72\x69\x74\x69\x7a\x69\x6e\x67"
+);unsigned int DATARMNET449e126dd3 __read_mostly=(0x10d9+1551-0xd24);
+module_param(DATARMNET449e126dd3,uint,(0xdb7+6665-0x261c));MODULE_PARM_DESC(
+DATARMNET449e126dd3,
+"\x4d\x61\x78\x20\x70\x6b\x74\x73\x20\x69\x6e\x20\x61\x20\x69\x6e\x73\x74\x61\x6e\x74\x20\x62\x75\x72\x73\x74\x20\x69\x6e\x74\x65\x72\x76\x61\x6c\x20\x62\x65\x66\x6f\x72\x65\x20\x70\x72\x69\x6f\x72\x69\x74\x69\x7a\x69\x6e\x67"
+);unsigned int DATARMNET4ac8af832c __read_mostly=(0xd03+244-0xdf1);module_param(
+DATARMNET4ac8af832c,uint,(0xdb7+6665-0x261c));MODULE_PARM_DESC(
+DATARMNET4ac8af832c,
+"\x4f\x70\x74\x69\x6f\x6e\x20\x74\x6f\x20\x63\x6f\x6e\x66\x69\x67\x75\x72\x65\x20\x66\x61\x6c\x6c\x20\x62\x61\x63\x6b\x20\x64\x75\x72\x61\x74\x69\x6f\x6e"
+);unsigned int DATARMNETa7909611da __read_mostly=(0xd26+209-0xdf6);module_param(
+DATARMNETa7909611da,uint,(0xdb7+6665-0x261c));MODULE_PARM_DESC(
+DATARMNETa7909611da,
+"\x53\x77\x69\x74\x63\x68\x20\x63\x6f\x72\x65\x20\x75\x70\x6f\x6e\x20\x68\x69\x74\x74\x69\x6e\x67\x20\x74\x68\x72\x65\x73\x68\x6f\x6c\x64"
+);unsigned int DATARMNET84413d1257[DATARMNETc6782fed88];module_param_array(
+DATARMNET84413d1257,uint,NULL,(0xdb7+6665-0x261c));MODULE_PARM_DESC(
+DATARMNET84413d1257,
+"\x4d\x61\x78\x20\x71\x75\x65\x75\x65\x20\x6c\x65\x6e\x67\x74\x68\x20\x73\x65\x65\x6e\x20\x6f\x66\x20\x65\x61\x63\x68\x20\x63\x6f\x72\x65"
+);unsigned int DATARMNET443cf5aaaf[DATARMNETc6782fed88];module_param_array(
+DATARMNET443cf5aaaf,uint,NULL,(0xdb7+6665-0x261c));MODULE_PARM_DESC(
+DATARMNET443cf5aaaf,
+"\x4f\x4f\x4f\x20\x63\x6f\x75\x6e\x74\x20\x66\x6f\x72\x20\x65\x61\x63\x68\x20\x63\x70\x75"
+);unsigned int DATARMNETd75e474598[DATARMNETc6782fed88];module_param_array(
+DATARMNETd75e474598,uint,NULL,(0xdb7+6665-0x261c));MODULE_PARM_DESC(
+DATARMNETd75e474598,
+"\x4d\x61\x78\x20\x63\x6f\x72\x65\x73\x75\x6d\x20\x73\x65\x65\x6e\x20\x6f\x66\x20\x65\x61\x63\x68\x20\x63\x6f\x72\x65"
+);unsigned int DATARMNET25c61a512c __read_mostly=(0xd18+223-0xdf4);module_param(
+DATARMNET25c61a512c,uint,(0xdb7+6665-0x261c));MODULE_PARM_DESC(
+DATARMNET25c61a512c,
+"\x53\x74\x61\x79\x69\x6e\x67\x20\x64\x75\x72\x61\x74\x69\x6f\x6e\x20\x66\x6f\x72\x20\x6e\x65\x74\x72\x78\x20\x73\x77\x69\x74\x63\x68"
+);unsigned int DATARMNET1ad396a890 __read_mostly=(0x25f8+1428-0x1804);
+module_param(DATARMNET1ad396a890,uint,(0xdb7+6665-0x261c));MODULE_PARM_DESC(
+DATARMNET1ad396a890,
+"\x4d\x61\x78\x20\x72\x6d\x6e\x65\x74\x20\x70\x72\x65\x2d\x62\x61\x63\x6b\x6c\x6f\x67"
+);unsigned int DATARMNET756bdd424a __read_mostly;module_param(
+DATARMNET756bdd424a,uint,(0xdb7+6665-0x261c));MODULE_PARM_DESC(
+DATARMNET756bdd424a,
+"\x72\x6d\x6e\x65\x74\x5f\x73\x68\x73\x5f\x64\x65\x62\x75\x67");unsigned int 
+DATARMNET58b009b16b __read_mostly=(0xd26+209-0xdf6);module_param(
+DATARMNET58b009b16b,uint,(0xdb7+6665-0x261c));MODULE_PARM_DESC(
+DATARMNET58b009b16b,
+"\x45\x6e\x61\x62\x6c\x65\x20\x44\x69\x73\x61\x62\x6c\x65\x20\x73\x74\x61\x74\x73\x20\x63\x6f\x6c\x6c\x65\x63\x74\x69\x6f\x6e"
+);unsigned long DATARMNET68d84e7b98[DATARMNETf3110711cb];module_param_array(
+DATARMNET68d84e7b98,ulong,NULL,(0xcb7+5769-0x221c));MODULE_PARM_DESC(
+DATARMNET68d84e7b98,
+"\x72\x6d\x6e\x65\x74\x20\x73\x68\x73\x20\x63\x72\x74\x69\x63\x61\x6c\x20\x65\x72\x72\x6f\x72\x20\x74\x79\x70\x65"
+);

+ 56 - 0
shs/rmnet_shs_modules.h

@@ -0,0 +1,56 @@
+/* Copyright (c) 2020 The Linux Foundation. All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 and
+ * only version 2 as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ */
+
+#include  "rmnet_shs_wq.h"
+#include  "rmnet_shs_common.h"
+#include  "rmnet_shs.h"
+#ifndef DATARMNET2883628e72
+#define DATARMNET2883628e72
+extern unsigned int DATARMNET1fc3ad67fd;extern unsigned long DATARMNETa804c0b904
+;extern unsigned int DATARMNETcab56af6d5 __read_mostly;extern unsigned long long
+ DATARMNET713717107f[DATARMNETc6782fed88];extern unsigned long long 
+DATARMNET4793ed48af[DATARMNETc6782fed88];extern unsigned int DATARMNET18f2ba4444
+[DATARMNETc6782fed88];extern unsigned int DATARMNET2d482e7d9f[
+DATARMNETc6782fed88];extern unsigned long long DATARMNET77240d48ee[
+DATARMNETc6782fed88];extern unsigned long long DATARMNET77189ab85c[
+DATARMNETc6782fed88];extern unsigned long long DATARMNET79263b1183[
+DATARMNETc6782fed88];extern unsigned long long DATARMNET229d52b629[
+DATARMNETc6782fed88];extern unsigned long long DATARMNETd27ed7efea[
+DATARMNETc6782fed88];extern unsigned long long DATARMNET377ecf13ca[
+DATARMNETc6782fed88];extern unsigned long DATARMNETbf3b6fdfc8[
+DATARMNET2f9ea73326];extern unsigned long DATARMNET0fec241216[
+DATARMNET2f9ea73326];extern unsigned long long DATARMNET9e5e8e4048[
+DATARMNET2f9ea73326];extern int DATARMNETdba344c809[DATARMNET2f9ea73326];extern 
+int DATARMNET99a934c43a[DATARMNET2f9ea73326];extern unsigned long long 
+DATARMNET47956cbb0f[DATARMNET2f9ea73326];extern unsigned long long 
+DATARMNET338c8e7a2b[DATARMNET2f9ea73326];extern unsigned long long 
+DATARMNET4b1ae621cd[DATARMNET2f9ea73326];extern unsigned long long 
+DATARMNETf5133a99c6[DATARMNET2f9ea73326];extern unsigned long long 
+DATARMNETc5d73c43e6[DATARMNET2f9ea73326];extern unsigned long long 
+DATARMNETf4aa8ec23f[DATARMNET2f9ea73326];extern unsigned long long 
+DATARMNET6d75219ffb[DATARMNET2f9ea73326];extern unsigned long 
+DATARMNETb7ddf3c5dd[DATARMNETeccb61ebc3];extern unsigned long 
+DATARMNET14ed771dfb[DATARMNET3cef75f6cd];extern unsigned int DATARMNETea75c7b6f6
+;extern unsigned int DATARMNET7d18c0bcf8;extern unsigned int DATARMNET227d2ff866
+;extern unsigned int DATARMNETa1ac2608b5;extern unsigned int DATARMNET12565c8f98
+;extern unsigned int DATARMNET365ddeca1c;extern unsigned int DATARMNET35fe073bc2
+;extern unsigned int DATARMNET449e126dd3;extern unsigned int DATARMNET4ac8af832c
+;extern unsigned int DATARMNETa7909611da;extern unsigned int DATARMNET84413d1257
+[DATARMNETc6782fed88];extern unsigned int DATARMNET443cf5aaaf[
+DATARMNETc6782fed88];extern unsigned int DATARMNETd75e474598[DATARMNETc6782fed88
+];extern unsigned int DATARMNET25c61a512c;extern unsigned int 
+DATARMNET1ad396a890;extern unsigned int DATARMNET756bdd424a;extern unsigned int 
+DATARMNET58b009b16b __read_mostly;extern unsigned long DATARMNET68d84e7b98[
+DATARMNETf3110711cb];
+#endif
+

+ 826 - 0
shs/rmnet_shs_wq.c

@@ -0,0 +1,826 @@
+/* Copyright (c) 2018-2020 The Linux Foundation. All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 and
+ * only version 2 as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ */
+
+#include "rmnet_shs.h"
+#include "rmnet_shs_wq_genl.h"
+#include "rmnet_shs_wq_mem.h"
+#include <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==NULL)continue;
+if(DATARMNETd2a694d52a->DATARMNET0dc393a345==(0xd2d+202-0xdf7)){
+DATARMNETe70783182f=DATARMNETd2a694d52a;DATARMNETe70783182f->DATARMNET0dc393a345
+=(0xd26+209-0xdf6);DATARMNETe70783182f->DATARMNET8a4e1d5aaa=(0xd26+209-0xdf6);
+break;}}spin_unlock_irqrestore(&DATARMNETfbdbab2ef6,flags);if(
+DATARMNETe70783182f){trace_rmnet_shs_wq_low(DATARMNET238d08f0df,
+DATARMNET8d783e2a07,DATARMNETd2a694d52a->DATARMNET0bfc2b2c85,(0x16e8+787-0xc0c),
+(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),DATARMNETd2a694d52a,NULL);return 
+DATARMNETe70783182f;}DATARMNETe70783182f=kzalloc(sizeof(*DATARMNETd2a694d52a),
+GFP_ATOMIC);if(!DATARMNETe70783182f){DATARMNET68d84e7b98[DATARMNET1828d69e96]++;
+return NULL;}DATARMNETa6e92c3315(DATARMNETe70783182f);DATARMNETe70783182f->
+DATARMNET0bfc2b2c85=(0xd2d+202-0xdf7);DATARMNETe70783182f->DATARMNET0dc393a345=
+(0xd26+209-0xdf6);DATARMNETe70783182f->DATARMNET8a4e1d5aaa=(0xd26+209-0xdf6);
+INIT_LIST_HEAD(&DATARMNETe70783182f->DATARMNET6de26f0feb);INIT_LIST_HEAD(&
+DATARMNETe70783182f->DATARMNET742867e97a);trace_rmnet_shs_wq_low(
+DATARMNET238d08f0df,DATARMNET4b15fcda7c,DATARMNETe70783182f->DATARMNET0bfc2b2c85
+,(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),DATARMNETe70783182f,
+NULL);DATARMNET36e5e526fa(DATARMNETe70783182f);return DATARMNETe70783182f;}void 
+DATARMNET350f55bfca(struct DATARMNET63d7680df2*node_p){struct timespec time;if(!
+node_p){DATARMNET68d84e7b98[DATARMNETac729c3d29]++;return;}node_p->
+DATARMNET341ea38662=DATARMNETb062995420();if(node_p->DATARMNET341ea38662!=NULL){
+(void)getnstimeofday(&time);node_p->DATARMNET341ea38662->hash=node_p->hash;
+node_p->DATARMNET341ea38662->DATARMNET1e9d25d9ff=node_p->DATARMNET1e9d25d9ff;
+node_p->DATARMNET341ea38662->DATARMNET7c894c2f8f=node_p->map_cpu;node_p->
+DATARMNET341ea38662->DATARMNET6e1a4eaf09=node_p->map_cpu;node_p->
+DATARMNET341ea38662->DATARMNET87636d0152=(0xd2d+202-0xdf7);if(
+DATARMNETc252c204a8&&node_p->DATARMNET341ea38662->DATARMNET1e9d25d9ff==
+IPPROTO_TCP)node_p->DATARMNET341ea38662->DATARMNET87636d0152=DATARMNET2f8c32c8eb
+;node_p->DATARMNET341ea38662->DATARMNET63b1a086d5=node_p;node_p->
+DATARMNET341ea38662->DATARMNETadd51beef4=DATARMNETe6671dbf38(time.tv_sec)+time.
+tv_nsec;node_p->DATARMNET341ea38662->DATARMNET68714ac92c=DATARMNETe6671dbf38(
+time.tv_sec)+time.tv_nsec;}trace_rmnet_shs_wq_high(DATARMNET238d08f0df,
+DATARMNET31d8e00b80,(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),
+(0x16e8+787-0xc0c),node_p,node_p->DATARMNET341ea38662);}static u64 
+DATARMNETf553c2afd2(struct DATARMNET6c78e47d24*DATARMNETd2a694d52a){u64 
+DATARMNET253a9fc708,DATARMNET950c035603;u16 DATARMNETab4cf0ad84,
+DATARMNET0c72af011b;if(!DATARMNETd2a694d52a){DATARMNET68d84e7b98[
+DATARMNETac729c3d29]++;return(0xd2d+202-0xdf7);}if(DATARMNET362b15f941(
+DATARMNETd2a694d52a->DATARMNET7c894c2f8f)){DATARMNETab4cf0ad84=
+DATARMNETcab56af6d5;DATARMNET0c72af011b=(0xeb7+698-0x110d)-DATARMNETcab56af6d5;}
+else{DATARMNET0c72af011b=DATARMNETcab56af6d5;DATARMNETab4cf0ad84=
+(0xeb7+698-0x110d)-DATARMNETcab56af6d5;}if(DATARMNETd2a694d52a->
+DATARMNET6c2816c16a==(0xd2d+202-0xdf7)){DATARMNET253a9fc708=DATARMNETd2a694d52a
+->DATARMNET324c1a8f98;}else{DATARMNET950c035603=(DATARMNETd2a694d52a->
+DATARMNET6c2816c16a+DATARMNETd2a694d52a->DATARMNET253a9fc708)/(0xd1f+216-0xdf5);
+DATARMNET253a9fc708=(((DATARMNETab4cf0ad84*DATARMNETd2a694d52a->
+DATARMNET324c1a8f98)+(DATARMNET0c72af011b*DATARMNET950c035603))/(
+DATARMNETab4cf0ad84+DATARMNET0c72af011b));}return DATARMNET253a9fc708;}static 
+u64 DATARMNET183789850d(u16 DATARMNET42a992465f){u64 DATARMNET253a9fc708,
+DATARMNET950c035603;u16 DATARMNETab4cf0ad84,DATARMNET0c72af011b;struct 
+DATARMNET228056d4b7*DATARMNETf632b170b1;struct DATARMNETc8fdbf9c85*
+DATARMNET7bea4a06a6=&DATARMNET6cdd58e74c;if(DATARMNET42a992465f>=
+DATARMNETc6782fed88){DATARMNET68d84e7b98[DATARMNET54b67b8a75]++;return
+(0xd2d+202-0xdf7);}DATARMNETf632b170b1=&DATARMNET7bea4a06a6->DATARMNET73464778dc
+[DATARMNET42a992465f];if(DATARMNET362b15f941(DATARMNET42a992465f)){
+DATARMNETab4cf0ad84=DATARMNETcab56af6d5;DATARMNET0c72af011b=(0xeb7+698-0x110d)-
+DATARMNETcab56af6d5;}else{DATARMNET0c72af011b=DATARMNETcab56af6d5;
+DATARMNETab4cf0ad84=(0xeb7+698-0x110d)-DATARMNETcab56af6d5;}if(
+DATARMNETf632b170b1->DATARMNET27c3925eff==(0xd2d+202-0xdf7)){DATARMNET253a9fc708
+=DATARMNETf632b170b1->DATARMNET253a9fc708;}else{DATARMNET950c035603=(
+DATARMNETf632b170b1->DATARMNET27c3925eff+DATARMNETf632b170b1->
+DATARMNET253a9fc708)/(0xd1f+216-0xdf5);DATARMNET253a9fc708=(((
+DATARMNETab4cf0ad84*DATARMNETf632b170b1->DATARMNET324c1a8f98)+(
+DATARMNET0c72af011b*DATARMNET950c035603))/(DATARMNETab4cf0ad84+
+DATARMNET0c72af011b));}trace_rmnet_shs_wq_high(DATARMNET39a68a0eba,
+DATARMNETde65aa00a6,DATARMNET42a992465f,DATARMNETf632b170b1->DATARMNET324c1a8f98
+,DATARMNETf632b170b1->DATARMNET27c3925eff,DATARMNET253a9fc708,NULL,NULL);return 
+DATARMNET253a9fc708;}void DATARMNET0aa47ce397(struct DATARMNET6c78e47d24*
+DATARMNET7b2c1bbf38){struct DATARMNET63d7680df2*node_p=NULL;struct 
+DATARMNET9b44b71ee9*ep=NULL;if(!DATARMNET7b2c1bbf38){DATARMNET68d84e7b98[
+DATARMNETac729c3d29]++;return;}node_p=DATARMNET7b2c1bbf38->DATARMNET63b1a086d5;
+list_for_each_entry(ep,&DATARMNET30a3e83974,DATARMNET0763436b8d){if(ep&&(node_p
+->dev==ep->ep)){DATARMNET7b2c1bbf38->DATARMNET9fb369ce5f=ep->DATARMNET9fb369ce5f
+;DATARMNET7b2c1bbf38->DATARMNET399c840115=ep->DATARMNET24a91635db;
+DATARMNET7b2c1bbf38->DATARMNET1a1d89d417=ep->DATARMNET1a1d89d417;if(
+DATARMNET7b2c1bbf38->DATARMNET1e9d25d9ff==IPPROTO_TCP){rm_err(
+"\x53\x48\x53\x5f\x54\x43\x50\x3a\x20\x61\x64\x64\x69\x6e\x67\x20\x54\x43\x50\x20\x62\x70\x73\x20\x25\x6c\x75\x20\x74\x6f\x20\x65\x70\x5f\x74\x6f\x74\x61\x6c\x20\x25\x6c\x75\x20\x65\x70\x20\x6e\x61\x6d\x65\x20\x25\x73"
+,DATARMNET7b2c1bbf38->DATARMNETbb80fccd97,ep->DATARMNET4eb77c78e6,node_p->dev->
+name);ep->DATARMNET4eb77c78e6+=DATARMNET7b2c1bbf38->DATARMNETbb80fccd97;}else if
+(DATARMNET7b2c1bbf38->DATARMNET1e9d25d9ff==IPPROTO_UDP){rm_err(
+"\x53\x48\x53\x5f\x55\x44\x50\x3a\x20\x61\x64\x64\x69\x6e\x67\x20\x55\x44\x50\x20\x72\x78\x5f\x62\x70\x73\x20\x25\x6c\x75\x20\x74\x6f\x20\x65\x70\x5f\x74\x6f\x74\x61\x6c\x20\x25\x6c\x75\x20\x65\x70\x20\x6e\x61\x6d\x65\x20\x25\x73"
+,DATARMNET7b2c1bbf38->DATARMNETbb80fccd97,ep->DATARMNET257fc4b2d4,node_p->dev->
+name);ep->DATARMNET257fc4b2d4+=DATARMNET7b2c1bbf38->DATARMNETbb80fccd97;}break;}
+}trace_rmnet_shs_wq_low(DATARMNET394831f22a,DATARMNET35902389b3,
+DATARMNET7b2c1bbf38->DATARMNET9fb369ce5f,DATARMNET7b2c1bbf38->
+DATARMNET399c840115,DATARMNET7b2c1bbf38->DATARMNET1a1d89d417,(0x16e8+787-0xc0c),
+DATARMNET7b2c1bbf38,node_p);}void DATARMNETc55315279b(struct DATARMNET6c78e47d24
+*DATARMNETdbe9f3dbe3,struct DATARMNET63d7680df2*node_p){int idx=
+DATARMNETe038d33545;if(!DATARMNET58b009b16b)return;if(!DATARMNETdbe9f3dbe3||!
+node_p){DATARMNET68d84e7b98[DATARMNETac729c3d29]++;return;}if(
+DATARMNETdbe9f3dbe3->DATARMNETb5f5519502<(0xd2d+202-0xdf7)){idx=idx%
+DATARMNET2f9ea73326;DATARMNETdbe9f3dbe3->DATARMNETb5f5519502=idx;
+DATARMNETe038d33545++;}DATARMNETbf3b6fdfc8[DATARMNETdbe9f3dbe3->
+DATARMNETb5f5519502]=DATARMNETdbe9f3dbe3->hash;DATARMNET0fec241216[
+DATARMNETdbe9f3dbe3->DATARMNETb5f5519502]=node_p->DATARMNET1e9d25d9ff;
+DATARMNET9e5e8e4048[DATARMNETdbe9f3dbe3->DATARMNETb5f5519502]=
+DATARMNET36cfa76181(DATARMNETdbe9f3dbe3->DATARMNET42ceaf5cc2);
+DATARMNET4b1ae621cd[DATARMNETdbe9f3dbe3->DATARMNETb5f5519502]=
+DATARMNETdbe9f3dbe3->DATARMNETbb80fccd97;DATARMNETf5133a99c6[DATARMNETdbe9f3dbe3
+->DATARMNETb5f5519502]=DATARMNETdbe9f3dbe3->DATARMNET324c1a8f98;
+DATARMNET47956cbb0f[DATARMNETdbe9f3dbe3->DATARMNETb5f5519502]=
+DATARMNETdbe9f3dbe3->rx_bytes;DATARMNET338c8e7a2b[DATARMNETdbe9f3dbe3->
+DATARMNETb5f5519502]=DATARMNETdbe9f3dbe3->DATARMNET4b4a76b094;
+DATARMNETdba344c809[DATARMNETdbe9f3dbe3->DATARMNETb5f5519502]=
+DATARMNETdbe9f3dbe3->DATARMNET7c894c2f8f;DATARMNET99a934c43a[DATARMNETdbe9f3dbe3
+->DATARMNETb5f5519502]=DATARMNETdbe9f3dbe3->DATARMNET6e1a4eaf09;
+DATARMNETc5d73c43e6[DATARMNETdbe9f3dbe3->DATARMNETb5f5519502]=
+DATARMNETdbe9f3dbe3->DATARMNET61e1ee0e95[DATARMNETed5a873a00];
+DATARMNETf4aa8ec23f[DATARMNETdbe9f3dbe3->DATARMNETb5f5519502]=
+DATARMNETdbe9f3dbe3->DATARMNET61e1ee0e95[DATARMNETd7a3f55a51];
+DATARMNET6d75219ffb[DATARMNETdbe9f3dbe3->DATARMNETb5f5519502]=
+DATARMNETdbe9f3dbe3->DATARMNET61e1ee0e95[DATARMNETefe8657028];}u8 
+DATARMNETd245b71b63(struct DATARMNET6c78e47d24*DATARMNETdbe9f3dbe3,struct 
+DATARMNET63d7680df2*node_p){if(!DATARMNETdbe9f3dbe3||!node_p){
+DATARMNET68d84e7b98[DATARMNETac729c3d29]++;return(0xd2d+202-0xdf7);}if(node_p->
+DATARMNET11930c5df8==DATARMNETdbe9f3dbe3->DATARMNET4b4a76b094)return
+(0xd2d+202-0xdf7);return(0xd26+209-0xdf6);}void DATARMNETb49b4f6385(struct 
+DATARMNET6c78e47d24*DATARMNETdbe9f3dbe3,struct DATARMNET63d7680df2*node_p){
+time_t DATARMNET96f21fddc1;if(!DATARMNETdbe9f3dbe3||!node_p){DATARMNET68d84e7b98
+[DATARMNETac729c3d29]++;return;}DATARMNET96f21fddc1=DATARMNETb3a4036d6d-
+DATARMNETdbe9f3dbe3->DATARMNETadd51beef4;DATARMNETdbe9f3dbe3->
+DATARMNET42ceaf5cc2=DATARMNET96f21fddc1;trace_rmnet_shs_wq_low(
+DATARMNET394831f22a,DATARMNET08cee5b48c,DATARMNETdbe9f3dbe3->hash,
+DATARMNET96f21fddc1,(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),DATARMNETdbe9f3dbe3,
+NULL);}void DATARMNET9a7769cf21(struct DATARMNET6c78e47d24*DATARMNETdbe9f3dbe3){
+time_t DATARMNET96f21fddc1;u64 DATARMNETee9f72f13f,DATARMNET539a572f34,
+DATARMNET33b006454e;struct DATARMNET63d7680df2*node_p;if(!DATARMNETdbe9f3dbe3){
+DATARMNET68d84e7b98[DATARMNETac729c3d29]++;return;}node_p=DATARMNETdbe9f3dbe3->
+DATARMNET63b1a086d5;if(!DATARMNETd245b71b63(DATARMNETdbe9f3dbe3,node_p)){
+DATARMNETdbe9f3dbe3->DATARMNET324c1a8f98=(0xd2d+202-0xdf7);DATARMNETdbe9f3dbe3->
+DATARMNET253a9fc708=(0xd2d+202-0xdf7);DATARMNETdbe9f3dbe3->DATARMNETbb80fccd97=
+(0xd2d+202-0xdf7);DATARMNETb49b4f6385(DATARMNETdbe9f3dbe3,node_p);
+DATARMNETc55315279b(DATARMNETdbe9f3dbe3,node_p);return;}trace_rmnet_shs_wq_low(
+DATARMNET394831f22a,DATARMNET91e905574d,DATARMNETdbe9f3dbe3->hash,
+(0x16e8+787-0xc0c),DATARMNETdbe9f3dbe3->DATARMNET324c1a8f98,DATARMNETdbe9f3dbe3
+->DATARMNETbb80fccd97,DATARMNETdbe9f3dbe3,NULL);DATARMNET0aa47ce397(
+DATARMNETdbe9f3dbe3);DATARMNETdbe9f3dbe3->DATARMNET42ceaf5cc2=(0xd2d+202-0xdf7);
+DATARMNETdbe9f3dbe3->DATARMNET68714ac92c=node_p->DATARMNET341ea38662->
+DATARMNETadd51beef4;DATARMNETdbe9f3dbe3->DATARMNET6edbc8b649=node_p->
+DATARMNET341ea38662->DATARMNET4b4a76b094;DATARMNETdbe9f3dbe3->
+DATARMNET4025a4ec90=node_p->DATARMNET341ea38662->DATARMNETa7352711af;
+DATARMNETdbe9f3dbe3->DATARMNETde6a309f37=node_p->DATARMNET341ea38662->rx_bytes;
+DATARMNETdbe9f3dbe3->DATARMNETadd51beef4=DATARMNETb3a4036d6d;DATARMNETdbe9f3dbe3
+->DATARMNET4b4a76b094=node_p->DATARMNET11930c5df8;DATARMNETdbe9f3dbe3->
+DATARMNETa7352711af=node_p->DATARMNETa8940e4a7b;DATARMNETdbe9f3dbe3->rx_bytes=
+node_p->DATARMNET2594c418db;DATARMNET96f21fddc1=(DATARMNETdbe9f3dbe3->
+DATARMNETadd51beef4-DATARMNETdbe9f3dbe3->DATARMNET68714ac92c);
+DATARMNETee9f72f13f=DATARMNETdbe9f3dbe3->DATARMNET4b4a76b094-DATARMNETdbe9f3dbe3
+->DATARMNET6edbc8b649;DATARMNET539a572f34=DATARMNETdbe9f3dbe3->
+DATARMNETa7352711af-DATARMNETdbe9f3dbe3->DATARMNET4025a4ec90;DATARMNET33b006454e
+=DATARMNETdbe9f3dbe3->rx_bytes-DATARMNETdbe9f3dbe3->DATARMNETde6a309f37;
+DATARMNETd2da2e8466(
+"\x53\x48\x53\x5f\x53\x45\x47\x53\x3a\x20\x68\x61\x73\x68\x20\x30\x78\x25\x78\x20\x63\x6f\x61\x6c\x20\x73\x6b\x62\x20\x3d\x20\x25\x6c\x75\x20\x7c\x20\x6c\x61\x73\x74\x20\x63\x6f\x61\x6c\x20\x73\x6b\x62\x20\x3d\x20\x25\x6c\x75\x20\x7c\x20\x72\x78\x20\x73\x6b\x62\x20\x3d\x20\x25\x6c\x75\x20\x7c\x20\x6c\x61\x73\x74\x20\x72\x78\x20\x73\x6b\x62\x20\x25\x6c\x75"
+,DATARMNETdbe9f3dbe3->hash,DATARMNETdbe9f3dbe3->DATARMNETa7352711af,
+DATARMNETdbe9f3dbe3->DATARMNET4025a4ec90,DATARMNETdbe9f3dbe3->
+DATARMNET4b4a76b094,DATARMNETdbe9f3dbe3->DATARMNET6edbc8b649);
+DATARMNETdbe9f3dbe3->DATARMNET324c1a8f98=DATARMNET855e9d7062(DATARMNETee9f72f13f
+)/(DATARMNET96f21fddc1);DATARMNETdbe9f3dbe3->DATARMNETbb80fccd97=
+DATARMNET855e9d7062(DATARMNET33b006454e)/(DATARMNET96f21fddc1);
+DATARMNETdbe9f3dbe3->DATARMNETbb80fccd97=DATARMNET64577537b7(DATARMNETdbe9f3dbe3
+->DATARMNETbb80fccd97);DATARMNETdbe9f3dbe3->DATARMNET253a9fc708=
+DATARMNETf553c2afd2(DATARMNETdbe9f3dbe3);if(DATARMNET539a572f34>
+(0xd2d+202-0xdf7)){DATARMNETdbe9f3dbe3->DATARMNET95266642d1=DATARMNETee9f72f13f/
+DATARMNET539a572f34;DATARMNETd2da2e8466(
+"\x53\x48\x53\x5f\x53\x45\x47\x53\x3a\x20\x61\x76\x67\x20\x73\x65\x67\x73\x20\x3d\x20\x25\x6c\x75\x20\x73\x6b\x62\x5f\x64\x69\x66\x66\x20\x3d\x20\x25\x6c\x75\x20\x63\x6f\x61\x6c\x5f\x73\x6b\x62\x5f\x64\x69\x66\x66\x20\x3d\x20\x25\x6c\x75"
+,DATARMNETdbe9f3dbe3->DATARMNET95266642d1,DATARMNETee9f72f13f,
+DATARMNET539a572f34);}else{DATARMNETdbe9f3dbe3->DATARMNET95266642d1=
+(0xd2d+202-0xdf7);}DATARMNETdbe9f3dbe3->DATARMNET6c2816c16a=DATARMNETdbe9f3dbe3
+->DATARMNET324c1a8f98;DATARMNETc55315279b(DATARMNETdbe9f3dbe3,node_p);
+trace_rmnet_shs_wq_high(DATARMNET394831f22a,DATARMNETb0ed796e8c,
+DATARMNETdbe9f3dbe3->hash,DATARMNETdbe9f3dbe3->DATARMNET324c1a8f98,
+DATARMNETdbe9f3dbe3->DATARMNETbb80fccd97,(DATARMNET96f21fddc1/1000000),
+DATARMNETdbe9f3dbe3,NULL);}static void DATARMNET33f47350f0(u16 cpu,struct 
+DATARMNET228056d4b7*DATARMNETcf7ef40ff9){if(!DATARMNET58b009b16b)return;if(cpu>=
+DATARMNETc6782fed88){DATARMNET68d84e7b98[DATARMNET54b67b8a75]++;return;}if(!
+DATARMNETcf7ef40ff9){DATARMNET68d84e7b98[DATARMNETac729c3d29]++;return;}
+DATARMNET79263b1183[cpu]=DATARMNETcf7ef40ff9->DATARMNETbb80fccd97;
+DATARMNET229d52b629[cpu]=DATARMNETcf7ef40ff9->DATARMNET324c1a8f98;
+DATARMNET18f2ba4444[cpu]=DATARMNETcf7ef40ff9->flows;DATARMNET77240d48ee[cpu]=
+DATARMNETcf7ef40ff9->rx_bytes;DATARMNET77189ab85c[cpu]=DATARMNETcf7ef40ff9->
+DATARMNET7fc41d655d;DATARMNETd27ed7efea[cpu]=DATARMNETcf7ef40ff9->
+DATARMNET69770f8ef7;DATARMNET377ecf13ca[cpu]=DATARMNETcf7ef40ff9->
+DATARMNET17380ba0f8;}static void DATARMNET8b2fb5dc3c(void){struct 
+DATARMNETc8fdbf9c85*DATARMNET3c48cbf7e4=&DATARMNET6cdd58e74c;struct rmnet_port*
+port;u64 DATARMNETe3ed6089ca,byte_diff;time_t DATARMNET96f21fddc1;
+DATARMNET3c48cbf7e4->DATARMNET601156672d=DATARMNET3c48cbf7e4->
+DATARMNET4947607c52;DATARMNET3c48cbf7e4->DATARMNETbfe25a2160=DATARMNET3c48cbf7e4
+->DATARMNET903a2cea81;port=DATARMNETecc0627c70.port;if(!port){
+DATARMNET68d84e7b98[DATARMNET42b73d0f3f]++;return;}DATARMNET3c48cbf7e4->
+DATARMNET903a2cea81=port->stats.dl_hdr_total_pkts;DATARMNET3c48cbf7e4->
+DATARMNET4947607c52=port->stats.dl_hdr_total_bytes;DATARMNET96f21fddc1=
+DATARMNETb3a4036d6d-DATARMNET3c48cbf7e4->DATARMNET68714ac92c;DATARMNETe3ed6089ca
+=DATARMNET3c48cbf7e4->DATARMNET903a2cea81-DATARMNET3c48cbf7e4->
+DATARMNETbfe25a2160;byte_diff=DATARMNET3c48cbf7e4->DATARMNET4947607c52-
+DATARMNET3c48cbf7e4->DATARMNET601156672d;DATARMNET3c48cbf7e4->
+DATARMNET3067b3dafd=DATARMNET855e9d7062(DATARMNETe3ed6089ca)/DATARMNET96f21fddc1
+;DATARMNET3c48cbf7e4->DATARMNET47334112aa=DATARMNET855e9d7062(byte_diff)/
+DATARMNET96f21fddc1;DATARMNET3c48cbf7e4->DATARMNET47334112aa=DATARMNET64577537b7
+(DATARMNET3c48cbf7e4->DATARMNET47334112aa);}static void DATARMNET0ce3f33785(void
+){struct DATARMNETc8fdbf9c85*DATARMNET3c48cbf7e4=&DATARMNET6cdd58e74c;u64 
+DATARMNETe3ed6089ca,byte_diff,DATARMNETccb5dc8a5c,DATARMNET4df302dbd6;time_t 
+DATARMNET96f21fddc1;DATARMNET96f21fddc1=DATARMNETb3a4036d6d-DATARMNET3c48cbf7e4
+->DATARMNET68714ac92c;DATARMNETe3ed6089ca=(DATARMNET3c48cbf7e4->
+DATARMNET7fc41d655d-DATARMNET3c48cbf7e4->DATARMNET9853a006ae);byte_diff=
+DATARMNET3c48cbf7e4->rx_bytes-DATARMNET3c48cbf7e4->DATARMNETde6a309f37;
+DATARMNETccb5dc8a5c=DATARMNET855e9d7062(DATARMNETe3ed6089ca)/DATARMNET96f21fddc1
+;DATARMNET4df302dbd6=DATARMNET855e9d7062(byte_diff)/DATARMNET96f21fddc1;
+DATARMNET3c48cbf7e4->DATARMNET8233cb4988=DATARMNET3c48cbf7e4->
+DATARMNETbb80fccd97;DATARMNET3c48cbf7e4->DATARMNET27c3925eff=DATARMNET3c48cbf7e4
+->DATARMNET324c1a8f98;DATARMNET3c48cbf7e4->DATARMNETbb80fccd97=
+DATARMNET64577537b7(DATARMNET4df302dbd6);DATARMNET3c48cbf7e4->
+DATARMNET324c1a8f98=DATARMNETccb5dc8a5c;DATARMNET3c48cbf7e4->DATARMNET68714ac92c
+=DATARMNETb3a4036d6d;DATARMNET3c48cbf7e4->DATARMNETde6a309f37=
+DATARMNET3c48cbf7e4->rx_bytes;DATARMNET3c48cbf7e4->DATARMNET9853a006ae=
+DATARMNET3c48cbf7e4->DATARMNET7fc41d655d;trace_rmnet_shs_wq_high(
+DATARMNET0dd7951b5e,DATARMNET709474066f,DATARMNET3c48cbf7e4->DATARMNET324c1a8f98
+,DATARMNET3c48cbf7e4->DATARMNET3067b3dafd,DATARMNET3c48cbf7e4->
+DATARMNETbb80fccd97,DATARMNET3c48cbf7e4->DATARMNET47334112aa,NULL,NULL);}static 
+void DATARMNET73d2153565(u16 cpu){struct DATARMNET228056d4b7*DATARMNETcf7ef40ff9
+;time_t DATARMNET96f21fddc1;u64 DATARMNET55fffa9aa9,DATARMNETedf00aed6f;u64 
+DATARMNET8233cb4988,DATARMNET27c3925eff;u32 DATARMNET8f1cb43b32;if(cpu>=
+DATARMNETc6782fed88){DATARMNET68d84e7b98[DATARMNET54b67b8a75]++;return;}
+DATARMNETcf7ef40ff9=&DATARMNET6cdd58e74c.DATARMNET73464778dc[cpu];
+DATARMNET55fffa9aa9=DATARMNETcf7ef40ff9->DATARMNET7fc41d655d-DATARMNETcf7ef40ff9
+->DATARMNET9853a006ae;DATARMNET8f1cb43b32=DATARMNETadb0248bd4(cpu);if(
+DATARMNETcf7ef40ff9->DATARMNET14b0d18481==(0xd2d+202-0xdf7))DATARMNETcf7ef40ff9
+->DATARMNET14b0d18481=DATARMNET8f1cb43b32;DATARMNETcf7ef40ff9->
+DATARMNET8b9956a3f9=DATARMNETcf7ef40ff9->DATARMNETae196235f2;DATARMNETcf7ef40ff9
+->DATARMNETae196235f2=DATARMNET8f1cb43b32;DATARMNETcf7ef40ff9->
+DATARMNET69770f8ef7=DATARMNETcf7ef40ff9->DATARMNETae196235f2-DATARMNETcf7ef40ff9
+->DATARMNET8b9956a3f9;DATARMNETcf7ef40ff9->DATARMNET17380ba0f8=
+DATARMNETcf7ef40ff9->DATARMNETae196235f2-DATARMNETcf7ef40ff9->
+DATARMNET14b0d18481;if(DATARMNET0997c5650d[cpu].DATARMNET1e1f197118)
+DATARMNET0997c5650d[cpu].DATARMNET1e1f197118=(DATARMNET0997c5650d[cpu].
+DATARMNET1e1f197118+(0xd26+209-0xdf6))%(DATARMNETbe271c415b);if(
+DATARMNET55fffa9aa9==(0xd2d+202-0xdf7)){DATARMNETcf7ef40ff9->DATARMNET68714ac92c
+=DATARMNETb3a4036d6d;DATARMNETcf7ef40ff9->DATARMNETbb80fccd97=(0xd2d+202-0xdf7);
+DATARMNETcf7ef40ff9->DATARMNET324c1a8f98=(0xd2d+202-0xdf7);DATARMNETcf7ef40ff9->
+DATARMNET253a9fc708=(0xd2d+202-0xdf7);if(DATARMNETc252c204a8){
+DATARMNETc6439e3d71(&DATARMNET6cdd58e74c,DATARMNETcf7ef40ff9,&
+DATARMNETe46ae760db);}DATARMNET33f47350f0(cpu,DATARMNETcf7ef40ff9);return;}
+DATARMNET96f21fddc1=DATARMNETb3a4036d6d-DATARMNETcf7ef40ff9->DATARMNET68714ac92c
+;DATARMNETedf00aed6f=DATARMNETcf7ef40ff9->rx_bytes-DATARMNETcf7ef40ff9->
+DATARMNETde6a309f37;DATARMNET8233cb4988=DATARMNETcf7ef40ff9->DATARMNETbb80fccd97
+;DATARMNET27c3925eff=DATARMNETcf7ef40ff9->DATARMNET324c1a8f98;
+DATARMNETcf7ef40ff9->DATARMNET324c1a8f98=DATARMNET855e9d7062(DATARMNET55fffa9aa9
+)/DATARMNET96f21fddc1;DATARMNETcf7ef40ff9->DATARMNETbb80fccd97=
+DATARMNET855e9d7062(DATARMNETedf00aed6f)/DATARMNET96f21fddc1;DATARMNETcf7ef40ff9
+->DATARMNETbb80fccd97=DATARMNET64577537b7(DATARMNETcf7ef40ff9->
+DATARMNETbb80fccd97);DATARMNETcf7ef40ff9->DATARMNET253a9fc708=
+DATARMNET183789850d(cpu);DATARMNETcf7ef40ff9->DATARMNET8233cb4988=
+DATARMNET8233cb4988;DATARMNETcf7ef40ff9->DATARMNET27c3925eff=DATARMNET27c3925eff
+;DATARMNETcf7ef40ff9->DATARMNET68714ac92c=DATARMNETb3a4036d6d;
+DATARMNETcf7ef40ff9->DATARMNET9853a006ae=DATARMNETcf7ef40ff9->
+DATARMNET7fc41d655d;DATARMNETcf7ef40ff9->DATARMNETde6a309f37=DATARMNETcf7ef40ff9
+->rx_bytes;DATARMNETcf7ef40ff9->DATARMNETc0b20e240a=DATARMNETcf7ef40ff9->
+DATARMNETbb80fccd97;if(DATARMNETc252c204a8){DATARMNETc6439e3d71(&
+DATARMNET6cdd58e74c,DATARMNETcf7ef40ff9,&DATARMNETe46ae760db);}
+trace_rmnet_shs_wq_high(DATARMNET39a68a0eba,DATARMNET95d1ddcb1a,cpu,
+DATARMNETcf7ef40ff9->flows,DATARMNETcf7ef40ff9->DATARMNET324c1a8f98,
+DATARMNETcf7ef40ff9->DATARMNETbb80fccd97,NULL,NULL);DATARMNET33f47350f0(cpu,
+DATARMNETcf7ef40ff9);}static void DATARMNET617b443145(void){u16 cpu;
+trace_rmnet_shs_wq_high(DATARMNET39a68a0eba,DATARMNET6bde6a5171,
+(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),NULL
+,NULL);for(cpu=(0xd2d+202-0xdf7);cpu<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=(0xd2d+202-0xdf7);DATARMNET42a992465f<DATARMNETc6782fed88;
+DATARMNET42a992465f++){DATARMNETdebcca6b26=((0xd26+209-0xdf6)<<
+DATARMNET42a992465f)&DATARMNETfaedbb66a9;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);if((DATARMNET42a992465f==
+DATARMNET7c894c2f8f)||(!DATARMNETca535905d7)||!cpu_online(DATARMNET7c894c2f8f))
+continue;DATARMNET264b01f4d5=DATARMNET713717107f[DATARMNET42a992465f];
+DATARMNET53ce143c7e=DATARMNET4793ed48af[DATARMNET42a992465f];DATARMNET373ff1422a
+=&DATARMNET7bea4a06a6->DATARMNET73464778dc[DATARMNET42a992465f];
+DATARMNETf115ef7639=DATARMNET373ff1422a->DATARMNET324c1a8f98;DATARMNET64bef917cb
+=DATARMNETf115ef7639+DATARMNET85bfb4b2ca;trace_rmnet_shs_wq_low(
+DATARMNET39a68a0eba,DATARMNETcd209744bd,DATARMNET7c894c2f8f,DATARMNET42a992465f,
+DATARMNET64bef917cb,DATARMNETf115ef7639,NULL,NULL);if((DATARMNET64bef917cb>
+DATARMNET53ce143c7e)&&(DATARMNET64bef917cb<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)continue;if(!ep->
+DATARMNET4a4e6f66b5)continue;DATARMNETcfb5dc7296=DATARMNET3c1fc10379(
+DATARMNETc790ff30fc,ep);if(DATARMNETcfb5dc7296!=DATARMNETc790ff30fc)
+DATARMNETdfb8ee742f(DATARMNETc790ff30fc,DATARMNETcfb5dc7296,ep);}}int 
+DATARMNET769bbe36c6(u16 DATARMNET7c894c2f8f,u16 DATARMNET208ea67e1d,struct 
+DATARMNET9b44b71ee9*ep){u16 DATARMNET553df5e12a=(0xd2d+202-0xdf7);if(!ep){
+DATARMNET68d84e7b98[DATARMNETb8fe2c0e64]++;return(0xd2d+202-0xdf7);}if(
+DATARMNET7c894c2f8f>=DATARMNETc6782fed88||DATARMNET208ea67e1d>=
+DATARMNETc6782fed88){DATARMNET68d84e7b98[DATARMNET54b67b8a75]++;return
+(0xd2d+202-0xdf7);}DATARMNET553df5e12a=((0xd26+209-0xdf6)<<DATARMNET208ea67e1d)&
+ep->DATARMNET9fb369ce5f;rm_err(
+"\x53\x48\x53\x5f\x4d\x41\x53\x4b\x3a\x20\x20\x63\x75\x72\x20\x63\x70\x75\x20\x5b\x25\x64\x5d\x20\x7c\x20\x64\x65\x73\x74\x5f\x63\x70\x75\x20\x5b\x25\x64\x5d\x20\x7c\x20"
+"\x65\x70\x5f\x72\x70\x73\x5f\x6d\x61\x73\x6b\x20\x3d\x20\x30\x78\x25\x78\x20\x7c\x20\x63\x70\x75\x5f\x6f\x6e\x6c\x69\x6e\x65\x28\x64\x65\x73\x74\x29\x20\x3d\x20\x25\x64"
+"\x63\x70\x75\x5f\x69\x6e\x5f\x72\x70\x73\x5f\x6d\x61\x73\x6b\x20\x3d\x20\x25\x64\x20\x7c\x63\x70\x75\x20\x69\x73\x6f\x6c\x61\x74\x65\x64\x28\x64\x65\x73\x74\x29\x20\x3d\x20\x25\x64"
+,DATARMNET7c894c2f8f,DATARMNET208ea67e1d,ep->DATARMNET9fb369ce5f,cpu_online(
+DATARMNET208ea67e1d),DATARMNET553df5e12a,cpu_isolated(DATARMNET208ea67e1d));if(
+DATARMNET7c894c2f8f==DATARMNET208ea67e1d||!cpu_online(DATARMNET208ea67e1d)||!
+DATARMNET553df5e12a||cpu_isolated(DATARMNET208ea67e1d)){return(0xd2d+202-0xdf7);
+}return(0xd26+209-0xdf6);}int DATARMNET5f72606f6f(u16 DATARMNETc790ff30fc,u16 
+DATARMNET208ea67e1d,u32 DATARMNET4da4612f1e,u32 DATARMNETa3f89581b5){unsigned 
+long flags;struct DATARMNET9b44b71ee9*ep;if(DATARMNETc790ff30fc>=
+DATARMNETc6782fed88||DATARMNET208ea67e1d>=DATARMNETc6782fed88){
+DATARMNET68d84e7b98[DATARMNET54b67b8a75]++;return(0xd2d+202-0xdf7);}
+spin_lock_irqsave(&DATARMNETec2a4f5211,flags);list_for_each_entry(ep,&
+DATARMNET30a3e83974,DATARMNET0763436b8d){if(!ep)continue;if(!ep->
+DATARMNET4a4e6f66b5)continue;if(!DATARMNET769bbe36c6(DATARMNETc790ff30fc,
+DATARMNET208ea67e1d,ep)){rm_err(
+"\x53\x48\x53\x5f\x46\x44\x45\x53\x43\x3a\x20\x3e\x3e\x20\x43\x61\x6e\x6e\x6f\x74\x20\x6d\x6f\x76\x65\x20\x66\x6c\x6f\x77\x20\x30\x78\x25\x78\x20\x6f\x6e\x20\x65\x70"
+"\x20\x66\x72\x6f\x6d\x20\x63\x70\x75\x5b\x25\x64\x5d\x20\x74\x6f\x20\x63\x70\x75\x5b\x25\x64\x5d"
+,DATARMNET4da4612f1e,DATARMNETc790ff30fc,DATARMNET208ea67e1d);continue;}if(
+DATARMNET6f56fe7597(DATARMNETc790ff30fc,DATARMNET208ea67e1d,ep,
+DATARMNET4da4612f1e,DATARMNETa3f89581b5)){rm_err(
+"\x53\x48\x53\x5f\x46\x44\x45\x53\x43\x3a\x20\x3e\x3e\x20\x66\x6c\x6f\x77\x20\x30\x78\x25\x78\x20\x77\x61\x73\x20\x73\x75\x67\x67\x65\x73\x74\x65\x64\x20\x74\x6f"
+"\x20\x6d\x6f\x76\x65\x20\x66\x72\x6f\x6d\x20\x63\x70\x75\x5b\x25\x64\x5d\x20\x74\x6f\x20\x63\x70\x75\x5b\x25\x64\x5d\x20\x73\x75\x67\x67\x5f\x74\x79\x70\x65\x20\x5b\x25\x64\x5d"
+,DATARMNET4da4612f1e,DATARMNETc790ff30fc,DATARMNET208ea67e1d,DATARMNETa3f89581b5
+);spin_unlock_irqrestore(&DATARMNETec2a4f5211,flags);return(0xd26+209-0xdf6);}}
+spin_unlock_irqrestore(&DATARMNETec2a4f5211,flags);return(0xd2d+202-0xdf7);}int 
+DATARMNETf85599b9d8(u32 DATARMNET8c11bd9466,u8 DATARMNET87636d0152){struct 
+DATARMNET63d7680df2*node_p;struct DATARMNET6c78e47d24*DATARMNET7b2c1bbf38;
+unsigned long ht_flags;u16 bkt;spin_lock_irqsave(&DATARMNET3764d083f0,ht_flags);
+hash_for_each(DATARMNETe603c3a4b3,bkt,node_p,list){if(!node_p)continue;if(!
+node_p->DATARMNET341ea38662)continue;DATARMNET7b2c1bbf38=node_p->
+DATARMNET341ea38662;if(DATARMNET7b2c1bbf38->hash!=DATARMNET8c11bd9466)continue;
+rm_err(
+"\x53\x48\x53\x5f\x48\x54\x3a\x20\x3e\x3e\x20\x73\x65\x67\x6d\x65\x6e\x74\x61\x74\x69\x6f\x6e\x20\x6f\x6e\x20\x68\x61\x73\x68\x20\x30\x78\x25\x78\x20\x73\x65\x67\x73\x5f\x70\x65\x72\x5f\x73\x6b\x62\x20\x25\x75"
+,DATARMNET8c11bd9466,DATARMNET87636d0152);trace_rmnet_shs_wq_high(
+DATARMNET394831f22a,DATARMNET213a62da0d,DATARMNET7b2c1bbf38->hash,
+DATARMNET87636d0152,(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),DATARMNET7b2c1bbf38,
+NULL);node_p->DATARMNET341ea38662->DATARMNET87636d0152=DATARMNET87636d0152;
+spin_unlock_irqrestore(&DATARMNET3764d083f0,ht_flags);return(0xd26+209-0xdf6);}
+spin_unlock_irqrestore(&DATARMNET3764d083f0,ht_flags);rm_err(
+"\x53\x48\x53\x5f\x48\x54\x3a\x20\x3e\x3e\x20\x73\x65\x67\x6d\x65\x6e\x74\x61\x74\x69\x6f\x6e\x20\x6f\x6e\x20\x68\x61\x73\x68\x20\x30\x78\x25\x78\x20\x73\x65\x67\x73\x5f\x70\x65\x72\x5f\x73\x6b\x62\x20\x25\x75\x20\x6e\x6f\x74\x20\x73\x65\x74\x20\x2d\x20\x68\x61\x73\x68\x20\x6e\x6f\x74\x20\x66\x6f\x75\x6e\x64"
+,DATARMNET8c11bd9466,DATARMNET87636d0152);return(0xd2d+202-0xdf7);}void 
+DATARMNET5e1aaed12b(void){struct DATARMNETc8fdbf9c85*DATARMNET7bea4a06a6=&
+DATARMNET6cdd58e74c;struct DATARMNET228056d4b7*DATARMNETf632b170b1;struct 
+DATARMNET6c78e47d24*DATARMNETd2a694d52a;int flows,i;u16 DATARMNET42a992465f=
+(0xd2d+202-0xdf7);if(!DATARMNETdfb4d931bc)return;for(DATARMNET42a992465f=
+(0xd2d+202-0xdf7);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)continue;if(DATARMNETd2a694d52a->DATARMNET0dc393a345==
+(0xd2d+202-0xdf7))continue;if(DATARMNETd2a694d52a->DATARMNET63b1a086d5){if(
+DATARMNETd2a694d52a->DATARMNET7c894c2f8f==DATARMNET42a992465f)rm_err(
+"\x53\x48\x53\x5f\x43\x50\x55\x3a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3e\x20\x66\x6c\x6f\x77\x20\x30\x78\x25\x78\x20"
+"\x77\x69\x74\x68\x20\x70\x70\x73\x20\x25\x6c\x6c\x75\x20\x61\x76\x67\x5f\x70\x70\x73\x20\x25\x6c\x6c\x75\x20\x72\x78\x5f\x62\x70\x73\x20\x25\x6c\x6c\x75\x20"
+,DATARMNETd2a694d52a->hash,DATARMNETd2a694d52a->DATARMNET324c1a8f98,
+DATARMNETd2a694d52a->DATARMNET253a9fc708,DATARMNETd2a694d52a->
+DATARMNETbb80fccd97);}}for(i=(0xd2d+202-0xdf7);i<(0xd18+223-0xdf4)-flows;i++){
+rm_err("\x25\x73",
+"\x53\x48\x53\x5f\x43\x50\x55\x3a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3e\x20");
+}}}void DATARMNET468586cca6(struct list_head*DATARMNETb436c3f30b){struct 
+DATARMNET09a412b1c6*DATARMNET4238158b2a;if(!DATARMNETdfb4d931bc)return;if(!
+DATARMNETb436c3f30b){rm_err("\x25\x73",
+"\x53\x48\x53\x5f\x47\x44\x4d\x41\x3a\x20\x47\x6f\x6c\x64\x20\x46\x6c\x6f\x77\x73\x20\x4c\x69\x73\x74\x20\x69\x73\x20\x4e\x55\x4c\x4c"
+);return;}rm_err("\x25\x73",
+"\x53\x48\x53\x5f\x47\x44\x4d\x41\x3a\x20\x4c\x69\x73\x74\x20\x6f\x66\x20\x73\x6f\x72\x74\x65\x64\x20\x67\x6f\x6c\x64\x20\x66\x6c\x6f\x77\x73\x3a"
+);list_for_each_entry(DATARMNET4238158b2a,DATARMNETb436c3f30b,
+DATARMNETd502c0412a){if(!DATARMNET4238158b2a)continue;rm_err(
+"\x53\x48\x53\x5f\x47\x44\x4d\x41\x3a\x20\x3e\x20\x66\x6c\x6f\x77\x20\x30\x78\x25\x78\x20\x77\x69\x74\x68\x20\x70\x70\x73\x20\x25\x6c\x6c\x75\x20\x6f\x6e\x20\x63\x70\x75\x5b\x25\x64\x5d"
+,DATARMNET4238158b2a->hash,DATARMNET4238158b2a->DATARMNET324c1a8f98,
+DATARMNET4238158b2a->DATARMNET42a992465f);}}void DATARMNET7792d4f4ad(struct 
+list_head*DATARMNETe46ae760db,struct list_head*DATARMNETb436c3f30b,struct 
+list_head*DATARMNETf0fb155a9c,struct list_head*DATARMNET3208cd0982){if(!
+DATARMNETe46ae760db||!DATARMNETb436c3f30b||!DATARMNETf0fb155a9c||!
+DATARMNET3208cd0982){DATARMNET68d84e7b98[DATARMNETac729c3d29]++;return;}
+list_sort(NULL,DATARMNETe46ae760db,&DATARMNET85af86a36d);list_sort(NULL,
+DATARMNETb436c3f30b,&DATARMNETd5c15f1ff3);list_sort(NULL,DATARMNET3208cd0982,&
+DATARMNETd5c15f1ff3);DATARMNET5157210c44(DATARMNETe46ae760db);
+DATARMNET0e273eab79(DATARMNETb436c3f30b);DATARMNETe15af8eb6d(DATARMNETf0fb155a9c
+);DATARMNET78f3a0ca4f(DATARMNET3208cd0982);DATARMNET78666f33a1();
+DATARMNET5945236cd3(DATARMNET7afb49ee3f);trace_rmnet_shs_wq_high(
+DATARMNETa0ecb9daac,DATARMNET1fc50aac59,(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),
+(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),NULL,NULL);}void DATARMNET95736008d9(void)
+{struct DATARMNETc8fdbf9c85*DATARMNET7bea4a06a6=&DATARMNET6cdd58e74c;struct 
+DATARMNET228056d4b7*DATARMNET373ff1422a;u64 DATARMNETc7c10881f4,
+DATARMNET4a7d30059b,DATARMNETed01f76643;u64 DATARMNET629c75e1fa,
+DATARMNET253a9fc708;u64 DATARMNET264b01f4d5,DATARMNET53ce143c7e=
+(0xd2d+202-0xdf7);u16 DATARMNET42a992465f,DATARMNETab4cf0ad84,
+DATARMNET0c72af011b;int flows;for(DATARMNET42a992465f=(0xd2d+202-0xdf7);
+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)||((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);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);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)continue
+;if(!ep->DATARMNET4a4e6f66b5)continue;DATARMNETe00453a3e4(ep);}}static int 
+DATARMNET1154e4fac6(time_t time,int DATARMNET64bb8a8f57){int ret=false;if(time>
+DATARMNETa804c0b904)ret=true;else if(DATARMNET64bb8a8f57>DATARMNET1c2d76f636&&
+time>DATARMNET2922c89d50)ret=true;else if(DATARMNET64bb8a8f57>
+DATARMNET7a815512d3&&time>DATARMNET270b564b55)ret=true;return ret;}void 
+DATARMNET39391a8bc5(u8 DATARMNETcd94e0d3c7){struct DATARMNET63d7680df2*node_p=
+NULL;time_t DATARMNETf48008e7b6;unsigned long ht_flags;struct 
+DATARMNET6c78e47d24*DATARMNETd2a694d52a=NULL;struct list_head*
+DATARMNET7b34b7b5be=NULL,*next=NULL;list_for_each_safe(DATARMNET7b34b7b5be,next,
+&DATARMNET9825511866){DATARMNETd2a694d52a=list_entry(DATARMNET7b34b7b5be,struct 
+DATARMNET6c78e47d24,DATARMNET6de26f0feb);if(DATARMNETd2a694d52a==NULL)continue;
+if(DATARMNETd2a694d52a->DATARMNET63b1a086d5==NULL)continue;node_p=
+DATARMNETd2a694d52a->DATARMNET63b1a086d5;DATARMNETf48008e7b6=DATARMNET36cfa76181
+(DATARMNETd2a694d52a->DATARMNET42ceaf5cc2);if(DATARMNET1154e4fac6(
+DATARMNETf48008e7b6,DATARMNETecc0627c70.DATARMNET64bb8a8f57)||
+DATARMNETcd94e0d3c7){trace_rmnet_shs_wq_low(DATARMNET394831f22a,
+DATARMNET5e2c5adaae,node_p->hash,DATARMNETf48008e7b6,(0x16e8+787-0xc0c),
+(0x16e8+787-0xc0c),node_p,DATARMNETd2a694d52a);spin_lock_irqsave(&
+DATARMNET3764d083f0,ht_flags);DATARMNET23c7ddd780(node_p,DATARMNET5b5927fd7e);
+DATARMNET3669e7b703(DATARMNETd2a694d52a->DATARMNET7c894c2f8f);if(node_p){
+DATARMNETde8ee16f92(node_p);hash_del_rcu(&node_p->list);kfree(node_p);}rm_err(
+"\x53\x48\x53\x5f\x46\x4c\x4f\x57\x3a\x20\x72\x65\x6d\x6f\x76\x69\x6e\x67\x20\x66\x6c\x6f\x77\x20\x30\x78\x25\x78\x20\x6f\x6e\x20\x63\x70\x75\x5b\x25\x64\x5d\x20"
+"\x70\x70\x73\x3a\x20\x25\x6c\x6c\x75\x20\x61\x76\x67\x5f\x70\x70\x73\x3a\x20\x25\x6c\x6c\x75"
+,DATARMNETd2a694d52a->hash,DATARMNETd2a694d52a->DATARMNET7c894c2f8f,
+DATARMNETd2a694d52a->DATARMNET324c1a8f98,DATARMNETd2a694d52a->
+DATARMNET253a9fc708);DATARMNETb4a6870b3b(DATARMNETd2a694d52a);if(
+DATARMNETd2a694d52a->DATARMNET0bfc2b2c85==(0xd2d+202-0xdf7)||DATARMNETcd94e0d3c7
+){DATARMNET2fe780019f(DATARMNETd2a694d52a);kfree(DATARMNETd2a694d52a);}else{
+DATARMNETa6e92c3315(DATARMNETd2a694d52a);}DATARMNETecc0627c70.
+DATARMNET64bb8a8f57--;spin_unlock_irqrestore(&DATARMNET3764d083f0,ht_flags);}}}
+void DATARMNETe69c918dc8(struct DATARMNET9b44b71ee9*ep){struct rps_map*map;u8 
+len=(0xd2d+202-0xdf7);if(!ep||!ep->ep){DATARMNET68d84e7b98[DATARMNETb8fe2c0e64]
+++;return;}rcu_read_lock();if(!ep->ep){pr_info(
+"\x20\x72\x6d\x6e\x65\x74\x5f\x73\x68\x73\x20\x69\x6e\x76\x61\x6c\x69\x64\x20\x73\x74\x61\x74\x65\x20\x25\x70"
+,ep->ep);DATARMNET68d84e7b98[DATARMNETb8fe2c0e64]++;return;}map=rcu_dereference(
+ep->ep->_rx->rps_map);ep->DATARMNET9fb369ce5f=(0xd2d+202-0xdf7);if(map!=NULL){
+for(len=(0xd2d+202-0xdf7);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)continue;if(ep->ep==dev)
+{ep->DATARMNET4a4e6f66b5=(0xd2d+202-0xdf7);DATARMNETf7d317ed55(ep);kfree(ep);
+break;}}spin_unlock_irqrestore(&DATARMNETec2a4f5211,flags);}void 
+DATARMNET7492293980(struct net_device*dev){struct DATARMNET9b44b71ee9*ep=NULL;
+unsigned long flags;if(!dev){DATARMNET68d84e7b98[DATARMNETf5157a9b85]++;return;}
+spin_lock_irqsave(&DATARMNETec2a4f5211,flags);ep=kzalloc(sizeof(*ep),GFP_ATOMIC)
+;if(!ep){DATARMNET68d84e7b98[DATARMNET40ceff078e]++;spin_unlock_irqrestore(&
+DATARMNETec2a4f5211,flags);return;}ep->ep=dev;ep->DATARMNET4a4e6f66b5=
+(0xd26+209-0xdf6);INIT_LIST_HEAD(&ep->DATARMNET0763436b8d);DATARMNETe69c918dc8(
+ep);DATARMNET4095253347(ep);spin_unlock_irqrestore(&DATARMNETec2a4f5211,flags);}
+void DATARMNET039ac6d55d(void){struct DATARMNET9b44b71ee9*ep=NULL;
+list_for_each_entry(ep,&DATARMNET30a3e83974,DATARMNET0763436b8d){if(!ep)continue
+;if(!ep->DATARMNET4a4e6f66b5)continue;DATARMNETe69c918dc8(ep);ep->
+DATARMNET257fc4b2d4=(0xd2d+202-0xdf7);ep->DATARMNET4eb77c78e6=(0xd2d+202-0xdf7);
+}}void DATARMNETedc898218c(void){int cpu,DATARMNETc790ff30fc;int 
+DATARMNET421230d879;struct DATARMNET6c78e47d24*DATARMNETd2a694d52a=NULL;for(cpu=
+(0xd2d+202-0xdf7);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){continue;}if(
+DATARMNETd2a694d52a->DATARMNET63b1a086d5->DATARMNET341ea38662->
+DATARMNET87636d0152>(0xd2d+202-0xdf7)){DATARMNET0997c5650d[DATARMNETc790ff30fc].
+seg++;}}}void DATARMNETcd6e26f0ad(void){struct timespec time;struct 
+DATARMNET6c78e47d24*DATARMNETd2a694d52a=NULL;(void)getnstimeofday(&time);
+DATARMNETb3a4036d6d=DATARMNETe6671dbf38(time.tv_sec)+time.tv_nsec;
+DATARMNET039ac6d55d();DATARMNETe46c480d71();list_for_each_entry(
+DATARMNETd2a694d52a,&DATARMNET9825511866,DATARMNET6de26f0feb){if(!
+DATARMNETd2a694d52a)continue;if(DATARMNETd2a694d52a->DATARMNET0dc393a345==
+(0xd2d+202-0xdf7))continue;if(DATARMNETd2a694d52a->DATARMNET63b1a086d5){
+DATARMNET9a7769cf21(DATARMNETd2a694d52a);DATARMNET5b2ed86112(DATARMNETd2a694d52a
+);if(DATARMNETc252c204a8){if(DATARMNETd2a694d52a->DATARMNET63b1a086d5->
+DATARMNETa1099c74fe==(0xd2d+202-0xdf7)){DATARMNET6f4b0915d3(DATARMNETd2a694d52a,
+&DATARMNET3208cd0982);}DATARMNET6f4b0915d3(DATARMNETd2a694d52a,&
+DATARMNET3208cd0982);if(!DATARMNET362b15f941(DATARMNETd2a694d52a->
+DATARMNET7c894c2f8f)){DATARMNET24e4475345(DATARMNETd2a694d52a,&
+DATARMNET6c23f11e81);}if(DATARMNETd2a694d52a->DATARMNET1e9d25d9ff==IPPROTO_TCP){
+DATARMNET28a80d526e(DATARMNETd2a694d52a,&DATARMNETf91b305f4e);}}else{
+DATARMNETd2a694d52a->DATARMNET63b1a086d5->DATARMNET341ea38662->
+DATARMNET87636d0152=(0xd2d+202-0xdf7);}}}DATARMNET617b443145();
+DATARMNET0ce3f33785();DATARMNET8b2fb5dc3c();if(DATARMNETc252c204a8){rm_err(
+"\x25\x73",
+"\x53\x48\x53\x5f\x55\x50\x44\x41\x54\x45\x3a\x20\x55\x73\x65\x72\x73\x70\x61\x63\x65\x20\x63\x6f\x6e\x6e\x65\x63\x74\x65\x64\x2c\x20\x72\x65\x6c\x79\x69\x6e\x67\x20\x6f\x6e\x20\x75\x73\x65\x72\x73\x70\x61\x63\x65\x20\x65\x76\x61\x6c\x75\x61\x74\x69\x6f\x6e"
+);DATARMNET7792d4f4ad(&DATARMNETe46ae760db,&DATARMNET6c23f11e81,&
+DATARMNETf91b305f4e,&DATARMNET3208cd0982);DATARMNETa1b141715b(&
+DATARMNET6c23f11e81);DATARMNET3af54cd726(&DATARMNETf91b305f4e);
+DATARMNETb177316a15(&DATARMNETe46ae760db);DATARMNETcc489fbbad(&
+DATARMNET3208cd0982);}else{rm_err("\x25\x73",
+"\x53\x48\x53\x5f\x55\x50\x44\x41\x54\x45\x3a\x20\x73\x68\x73\x20\x75\x73\x65\x72\x73\x70\x61\x63\x65\x20\x6e\x6f\x74\x20\x63\x6f\x6e\x6e\x65\x63\x74\x65\x64\x2c\x20\x75\x73\x69\x6e\x67\x20\x64\x65\x66\x61\x75\x6c\x74\x20\x6c\x6f\x67\x69\x63"
+);DATARMNET95736008d9();}DATARMNET0a6fb12cb2();DATARMNETedc898218c();}void 
+DATARMNETb4b5fc9686(struct work_struct*DATARMNET33110a3ff5){unsigned long flags;
+unsigned long DATARMNET28085cfd14;trace_rmnet_shs_wq_high(DATARMNET4fe8e8c1a9,
+DATARMNET5a417740cb,(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),
+(0x16e8+787-0xc0c),NULL,NULL);spin_lock_irqsave(&DATARMNETec2a4f5211,flags);
+DATARMNETcd6e26f0ad();spin_unlock_irqrestore(&DATARMNETec2a4f5211,flags);
+DATARMNET39391a8bc5(DATARMNET53bef3c026);DATARMNET5e1aaed12b();
+DATARMNET28085cfd14=msecs_to_jiffies(DATARMNET1fc3ad67fd);queue_delayed_work(
+DATARMNETf141197982,&DATARMNET9dc7755be5->DATARMNET1150269da2,
+DATARMNET28085cfd14);trace_rmnet_shs_wq_high(DATARMNET4fe8e8c1a9,
+DATARMNET848d2ddfa7,(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),
+(0x16e8+787-0xc0c),NULL,NULL);}void DATARMNET5fb4151598(void){struct 
+DATARMNET9b44b71ee9*ep=NULL;struct list_head*DATARMNET7b34b7b5be=NULL,*next=NULL
+;list_for_each_safe(DATARMNET7b34b7b5be,next,&DATARMNET30a3e83974){ep=list_entry
+(DATARMNET7b34b7b5be,struct DATARMNET9b44b71ee9,DATARMNET0763436b8d);if(!ep)
+continue;trace_rmnet_shs_wq_high(DATARMNET5e796836fb,DATARMNET1ee5d0565d,
+(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),ep,
+NULL);DATARMNETf7d317ed55(ep);kfree(ep);}}void DATARMNETf7dcab9a9e(void){if(!
+DATARMNETf141197982||!DATARMNET9dc7755be5)return;DATARMNET28d33bd09f();
+DATARMNET5945236cd3(DATARMNET19092afcc2);trace_rmnet_shs_wq_high(
+DATARMNETc1e19aa345,DATARMNET7cf840e991,(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),
+(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),NULL,NULL);cancel_delayed_work_sync(&
+DATARMNET9dc7755be5->DATARMNET1150269da2);drain_workqueue(DATARMNETf141197982);
+destroy_workqueue(DATARMNETf141197982);kfree(DATARMNET9dc7755be5);
+DATARMNET9dc7755be5=NULL;DATARMNETf141197982=NULL;DATARMNET39391a8bc5(
+DATARMNETc5db038c35);DATARMNET5fb4151598();trace_rmnet_shs_wq_high(
+DATARMNETc1e19aa345,DATARMNETa5cdfd53b3,(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),
+(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),NULL,NULL);}void DATARMNETd3d1d13f44(void)
+{u8 DATARMNET42a992465f;struct DATARMNET228056d4b7*DATARMNET7bea4a06a6;for(
+DATARMNET42a992465f=(0xd2d+202-0xdf7);DATARMNET42a992465f<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);}void 
+DATARMNET7b6c061b06(void){if(DATARMNETf141197982&&DATARMNET9dc7755be5)
+queue_delayed_work(DATARMNETf141197982,&DATARMNET9dc7755be5->DATARMNET1150269da2
+,(0xd2d+202-0xdf7));}void DATARMNET3ae0d614d6(struct net_device*dev){if(
+DATARMNETf141197982)return;if(!dev){DATARMNET68d84e7b98[DATARMNETf5157a9b85]++;
+return;}DATARMNETf5f83b943f();trace_rmnet_shs_wq_high(DATARMNET9104d544fa,
+DATARMNET1b421b0381,(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),
+(0x16e8+787-0xc0c),NULL,NULL);DATARMNETf141197982=alloc_workqueue(
+"\x72\x6d\x6e\x65\x74\x5f\x73\x68\x73\x5f\x77\x71",WQ_CPU_INTENSIVE,
+(0xd26+209-0xdf6));if(!DATARMNETf141197982){DATARMNET68d84e7b98[
+DATARMNETecdf13872c]++;return;}DATARMNET9dc7755be5=kmalloc(sizeof(struct 
+DATARMNETa144e2bd00),GFP_ATOMIC);if(!DATARMNET9dc7755be5){DATARMNET68d84e7b98[
+DATARMNETd1687e0776]++;DATARMNETf7dcab9a9e();return;}DATARMNETf5b8fce55d(
+DATARMNET138a989ecb,(0xd26+209-0xdf6));DATARMNETd3d1d13f44();
+INIT_DEFERRABLE_WORK(&DATARMNET9dc7755be5->DATARMNET1150269da2,
+DATARMNETb4b5fc9686);trace_rmnet_shs_wq_high(DATARMNET9104d544fa,
+DATARMNETb196f64ee0,(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),
+(0x16e8+787-0xc0c),NULL,NULL);}int DATARMNETb709a938b5(u16 cpu){int flows=-
+(0xd26+209-0xdf6);if(cpu>=DATARMNETc6782fed88){DATARMNET68d84e7b98[
+DATARMNET709b59b0e6]++;return flows;}flows=DATARMNET6cdd58e74c.
+DATARMNET73464778dc[cpu].flows;trace_rmnet_shs_wq_low(DATARMNET39a68a0eba,
+DATARMNET0e287157de,cpu,flows,(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),NULL,NULL);
+return flows;}int DATARMNET392890a12b(void){u16 cpu;int DATARMNET59bd820724=-
+(0xd26+209-0xdf6);int DATARMNET847bd62811;for(cpu=(0xd2d+202-0xdf7);cpu<
+DATARMNETc6782fed88;cpu++){DATARMNET847bd62811=DATARMNETb709a938b5(cpu);if(
+DATARMNET847bd62811>DATARMNET59bd820724)DATARMNET59bd820724=DATARMNET847bd62811;
+trace_rmnet_shs_wq_low(DATARMNET39a68a0eba,DATARMNETc2a28b3abe,cpu,
+DATARMNET847bd62811,DATARMNET59bd820724,(0x16e8+787-0xc0c),NULL,NULL);}return 
+DATARMNET59bd820724;}int DATARMNETdd3b17f0c3(u16 cpu){u32 DATARMNET1802cc4803=
+(0xd26+209-0xdf6)<<(0xd11+230-0xdf3);u32 DATARMNETb998398361=(0xd26+209-0xdf6);
+u16 DATARMNETaff7dd6611=(0xd2d+202-0xdf7);u16 DATARMNET2ab4b15bd2=
+(0xd11+230-0xdf3);int DATARMNET59bd820724=-(0xd26+209-0xdf6);int 
+DATARMNET847bd62811;if(cpu>DATARMNETc6782fed88){DATARMNET68d84e7b98[
+DATARMNET709b59b0e6]++;return DATARMNET59bd820724;}DATARMNETb998398361<<=cpu;if(
+DATARMNETb998398361>=DATARMNET1802cc4803){DATARMNETaff7dd6611=(0xd11+230-0xdf3);
+DATARMNET2ab4b15bd2=DATARMNETc6782fed88;}for(;DATARMNETaff7dd6611<
+DATARMNET2ab4b15bd2;DATARMNETaff7dd6611++){DATARMNET847bd62811=
+DATARMNETb709a938b5(DATARMNETaff7dd6611);if(DATARMNET847bd62811>
+DATARMNET59bd820724)DATARMNET59bd820724=DATARMNET847bd62811;}
+trace_rmnet_shs_wq_low(DATARMNET39a68a0eba,DATARMNET23906b61e9,
+DATARMNETaff7dd6611,DATARMNET2ab4b15bd2,cpu,DATARMNET59bd820724,NULL,NULL);
+return DATARMNET59bd820724;}void DATARMNET0349051465(u16 cpu){if(cpu>=
+DATARMNETc6782fed88){DATARMNET68d84e7b98[DATARMNET54b67b8a75]++;return;}
+DATARMNET6cdd58e74c.DATARMNET73464778dc[cpu].flows++;trace_rmnet_shs_wq_low(
+DATARMNET39a68a0eba,DATARMNET0832f93bf0,cpu,DATARMNET6cdd58e74c.
+DATARMNET73464778dc[cpu].flows,(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),NULL,NULL);
+}void DATARMNET3669e7b703(u16 cpu){if(cpu>=DATARMNETc6782fed88){
+DATARMNET68d84e7b98[DATARMNET54b67b8a75]++;return;}if(DATARMNET6cdd58e74c.
+DATARMNET73464778dc[cpu].flows>(0xd2d+202-0xdf7))DATARMNET6cdd58e74c.
+DATARMNET73464778dc[cpu].flows--;trace_rmnet_shs_wq_low(DATARMNET39a68a0eba,
+DATARMNETecb00bceb2,cpu,DATARMNET6cdd58e74c.DATARMNET73464778dc[cpu].flows,
+(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),NULL,NULL);}

+ 123 - 0
shs/rmnet_shs_wq.h

@@ -0,0 +1,123 @@
+/* Copyright (c) 2018-2020, The Linux Foundation. All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 and
+ * only version 2 as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ */
+
+#ifndef DATARMNETa58841a91d
+#define DATARMNETa58841a91d
+#include "rmnet_shs_config.h"
+#include "rmnet_shs.h"
+#define DATARMNETdfb4d931bc  (0xd2d+202-0xdf7)
+#define DATARMNETf0dc5ccb6f (0xd2d+202-0xdf7)
+#define rm_err(DATARMNET6c3cf5865b, ...)  \
+	do { if (DATARMNETdfb4d931bc) pr_err(DATARMNET6c3cf5865b, __VA_ARGS__); } while\
+ ((0xd2d+202-0xdf7))
+#define DATARMNETd2da2e8466(DATARMNET6c3cf5865b, ...)  \
+	do { if (DATARMNETf0dc5ccb6f) pr_err(DATARMNET6c3cf5865b, __VA_ARGS__); } while\
+ ((0xd2d+202-0xdf7))
+#define DATARMNET2f9ea73326 (0xeb7+1158-0x132d)
+#define DATARMNET855e9d7062(DATARMNET5f1b691e95) ((DATARMNET5f1b691e95)*\
+1000000000)
+#define DATARMNETe6671dbf38(DATARMNET5f1b691e95) ((DATARMNET5f1b691e95)*\
+1000000000)
+#define DATARMNET36cfa76181(DATARMNET5f1b691e95) ((DATARMNET5f1b691e95)/\
+1000000000)
+#define DATARMNET64577537b7(DATARMNET5f1b691e95) ((DATARMNET5f1b691e95)*\
+(0xd35+210-0xdff))
+#define DATARMNET138a989ecb (0xeb7+1158-0x132d)
+#define DATARMNETe4c625a3a3  (0xeb7+698-0x110d)
+extern struct list_head DATARMNET30a3e83974;struct DATARMNET9b44b71ee9{u64 
+DATARMNET4eb77c78e6;u64 DATARMNET257fc4b2d4;struct list_head DATARMNET0763436b8d
+;struct net_device*ep;int DATARMNET5af04d0405[DATARMNETc6782fed88];int 
+DATARMNET7167e10d99[DATARMNETc6782fed88];u16 DATARMNET24a91635db;u16 
+DATARMNET1a1d89d417;u16 DATARMNET9fb369ce5f;u8 DATARMNET4a4e6f66b5;int 
+DATARMNET6bda8fe27e;int DATARMNET121a654efd;int DATARMNETd7a83774f8;int 
+DATARMNET847276e5af;};struct DATARMNET0737a3aa12{struct list_head 
+DATARMNETd0c222566b;struct DATARMNET9b44b71ee9 ep;};enum DATARMNET0780ebfa33{
+DATARMNET8866cd9e9a,DATARMNETed5a873a00,DATARMNETd7a3f55a51,DATARMNETefe8657028,
+DATARMNET3563036124,};struct DATARMNET6c78e47d24{unsigned long int 
+DATARMNET61e1ee0e95[DATARMNET3563036124];struct list_head DATARMNET742867e97a;
+struct list_head DATARMNET6de26f0feb;struct DATARMNET63d7680df2*
+DATARMNET63b1a086d5;time_t DATARMNETadd51beef4;time_t DATARMNET68714ac92c;time_t
+ DATARMNET42ceaf5cc2;u64 DATARMNET4b4a76b094;u64 rx_bytes;u64 
+DATARMNETa7352711af;u64 DATARMNET324c1a8f98;u64 DATARMNETbb80fccd97;u64 
+DATARMNET6c2816c16a;u64 DATARMNET253a9fc708;u64 DATARMNET95266642d1;u64 
+DATARMNET6edbc8b649;u64 DATARMNET4025a4ec90;u64 DATARMNETde6a309f37;u32 
+DATARMNET9fb369ce5f;u32 DATARMNET17f2abdf03;u32 DATARMNET399c840115;u32 
+DATARMNET1a1d89d417;u32 DATARMNETb932033f50;u32 hash;int DATARMNETb5f5519502;u16
+ DATARMNET6e1a4eaf09;u16 DATARMNET7c894c2f8f;u16 DATARMNET1e9d25d9ff;u8 mux_id;
+u8 DATARMNET0dc393a345;u8 DATARMNET0bfc2b2c85;u8 DATARMNET8a4e1d5aaa;u8 
+DATARMNET87636d0152;};struct DATARMNET228056d4b7{struct list_head 
+DATARMNETab5c1e9ad5;time_t DATARMNET68714ac92c;u64 DATARMNET9853a006ae;u64 
+DATARMNETde6a309f37;u64 DATARMNETc589c49a2e;u64 DATARMNET7fc41d655d;u64 rx_bytes
+;u64 DATARMNET57f040bb2c;u64 DATARMNET324c1a8f98;u64 DATARMNETbb80fccd97;u64 
+DATARMNET27c3925eff;u64 DATARMNET8233cb4988;u64 DATARMNET253a9fc708;u64 
+DATARMNETc0b20e240a;u32 DATARMNETae196235f2;u32 DATARMNET8b9956a3f9;u32 
+DATARMNET69770f8ef7;u32 DATARMNET14b0d18481;u32 DATARMNET17380ba0f8;int flows;
+u16 DATARMNET42a992465f;};struct DATARMNETc8fdbf9c85{struct DATARMNET228056d4b7 
+DATARMNET73464778dc[DATARMNETc6782fed88];time_t DATARMNET68714ac92c;u64 
+DATARMNET601156672d;u64 DATARMNETbfe25a2160;u64 DATARMNET4947607c52;u64 
+DATARMNET903a2cea81;u64 DATARMNET3067b3dafd;u64 DATARMNET47334112aa;u64 
+DATARMNET9853a006ae;u64 DATARMNETde6a309f37;u64 DATARMNETc589c49a2e;u64 
+DATARMNET27c3925eff;u64 DATARMNET8233cb4988;u64 DATARMNET7fc41d655d;u64 rx_bytes
+;u64 DATARMNET57f040bb2c;u64 DATARMNET324c1a8f98;u64 DATARMNETbb80fccd97;u32 
+DATARMNET9fb369ce5f;u32 DATARMNET399c840115;u32 DATARMNET1a1d89d417;u32 
+DATARMNETb932033f50;int DATARMNET5af04d0405[DATARMNETc6782fed88];int 
+DATARMNET7167e10d99[DATARMNETc6782fed88];int DATARMNET6bda8fe27e;int 
+DATARMNET121a654efd;int DATARMNETd7a83774f8;int DATARMNET847276e5af;int flows;u8
+ cpus;};struct DATARMNETa144e2bd00{struct delayed_work DATARMNET1150269da2;};
+struct DATARMNET47a6995138{struct list_head DATARMNET02523bfb57;u64 
+DATARMNET18b7a5b761;u64 DATARMNET4da6031170;u64 DATARMNET4df302dbd6;u16 
+DATARMNET42a992465f;};struct DATARMNET09a412b1c6{struct list_head 
+DATARMNETd502c0412a;u64 DATARMNET324c1a8f98;u64 DATARMNET253a9fc708;u32 hash;u16
+ DATARMNET42a992465f;};struct DATARMNET13c47d154e{struct list_head 
+DATARMNETec0e3cb8f0;union{struct iphdr DATARMNETac9bbaad7c;struct ipv6hdr 
+DATARMNET1688a97aa4;}ip_hdr;union{struct tcphdr tp;struct udphdr up;}
+DATARMNETe33b41dad9;u64 DATARMNET324c1a8f98;u64 DATARMNET253a9fc708;u64 
+DATARMNETbb80fccd97;u64 DATARMNET95266642d1;u32 hash;u16 DATARMNET42a992465f;u16
+ trans_proto;u8 mux_id;};struct DATARMNETa52c09a590{struct list_head 
+DATARMNET6f898987df;u64 DATARMNET324c1a8f98;u64 DATARMNET253a9fc708;u64 
+DATARMNETbb80fccd97;u32 hash;u16 DATARMNET42a992465f;};enum DATARMNET8487fb1a16{
+DATARMNET9104d544fa,DATARMNET4fe8e8c1a9,DATARMNETc1e19aa345,DATARMNET5e796836fb,
+DATARMNET238d08f0df,DATARMNET92b282b12c,DATARMNET394831f22a,DATARMNET39a68a0eba,
+DATARMNET0dd7951b5e,DATARMNETa0ecb9daac,};enum DATARMNETb2fa0397cc{
+DATARMNET34ace72e7e,DATARMNET7fc202c4c1,DATARMNET7643ab0f49,DATARMNET1ee5d0565d,
+DATARMNETfab7330394,DATARMNET72f22d7cf7,DATARMNETf81dcb955d,DATARMNET3f2d29c867,
+DATARMNET5a3ea29c57,DATARMNETb43d929c3b,DATARMNET31d8e00b80,DATARMNET8d783e2a07,
+DATARMNET4b15fcda7c,DATARMNET08284be63e,DATARMNET8ce5a018df,DATARMNET57cad43bb7,
+DATARMNET4b58d51c6a,DATARMNETfd4d416388,DATARMNETdb9197631d,DATARMNET067f70ac85,
+DATARMNET91e905574d,DATARMNET35902389b3,DATARMNET29c0bc0151,DATARMNET45edcec1e4,
+DATARMNET5b2500c971,DATARMNET08cee5b48c,DATARMNET5e2c5adaae,DATARMNETb0ed796e8c,
+DATARMNET6bde6a5171,DATARMNET55cd50e666,DATARMNET0832f93bf0,DATARMNETecb00bceb2,
+DATARMNET0e287157de,DATARMNETc2a28b3abe,DATARMNET23906b61e9,DATARMNET95d1ddcb1a,
+DATARMNETbdcc04c8d8,DATARMNETcd209744bd,DATARMNETde65aa00a6,DATARMNETf4dabe20e4,
+DATARMNETb9205423e5,DATARMNETffec99a10f,DATARMNET5c7c474d94,DATARMNET4af220a9f9,
+DATARMNET709474066f,DATARMNET9a286e7654,DATARMNET5a417740cb,DATARMNET848d2ddfa7,
+DATARMNET59a1cb0962,DATARMNET1b421b0381,DATARMNETb196f64ee0,DATARMNET7cf840e991,
+DATARMNETa5cdfd53b3,DATARMNETd7f7ade458,DATARMNET53e4a6b394,DATARMNETd1d3902361,
+DATARMNET1fc50aac59,DATARMNET213a62da0d,DATARMNETf814701a94,DATARMNET166a43f3aa,
+};extern struct DATARMNETe600c5b727 DATARMNET0997c5650d[DATARMNETc6782fed88];
+extern struct list_head DATARMNET9825511866;void DATARMNET3ae0d614d6(struct 
+net_device*dev);void DATARMNETf7dcab9a9e(void);void DATARMNET7b6c061b06(void);
+void DATARMNET4063c95208(void);void DATARMNETe46c480d71(void);u64 
+DATARMNETd406e89a85(u32 DATARMNETfaedbb66a9);void DATARMNET350f55bfca(struct 
+DATARMNET63d7680df2*node_p);int DATARMNET362c14e98b(u16 DATARMNETfaedbb66a9);int
+ DATARMNETf181a18009(struct net_device*dev);int DATARMNET98b2a0ce62(struct 
+net_device*dev);u64 DATARMNETfc888b4d3e(u16 cpu);void DATARMNET0349051465(u16 
+cpu);void DATARMNET3669e7b703(u16 cpu);void DATARMNET54ebea1d15(void);void 
+DATARMNET7492293980(struct net_device*dev);void DATARMNETd6ee05f1b4(struct 
+net_device*dev);void DATARMNET0a6fb12cb2(void);int DATARMNET5f72606f6f(u16 
+DATARMNETc790ff30fc,u16 DATARMNET208ea67e1d,u32 DATARMNET4da4612f1e,u32 
+DATARMNETa3f89581b5);int DATARMNETf85599b9d8(u32 DATARMNET8c11bd9466,u8 
+DATARMNET87636d0152);void DATARMNET6bf538fa23(void);void DATARMNETaea4c85748(
+void);
+#endif 
+

+ 169 - 0
shs/rmnet_shs_wq_genl.c

@@ -0,0 +1,169 @@
+/* Copyright (c) 2019-2020 The Linux Foundation. All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 and
+ * only version 2 as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ */
+
+#include "rmnet_shs_modules.h"
+#include "rmnet_shs_common.h"
+#include "rmnet_shs_wq_genl.h"
+#include <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
+);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);}

+ 44 - 0
shs/rmnet_shs_wq_genl.h

@@ -0,0 +1,44 @@
+/* Copyright (c) 2019-2020 The Linux Foundation. All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 and
+ * only version 2 as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ */
+
+#ifndef DATARMNETf34a2d1928
+#define DATARMNETf34a2d1928
+#include "rmnet_shs.h"
+#include <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 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 
+

+ 526 - 0
shs/rmnet_shs_wq_mem.c

@@ -0,0 +1,526 @@
+/* Copyright (c) 2019-2020 The Linux Foundation. All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 and
+ * only version 2 as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ */
+
+#include "rmnet_shs_modules.h"
+#include "rmnet_shs_common.h"
+#include "rmnet_shs_wq_mem.h"
+#include <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);if(!DATARMNET0f551e8a47)continue;list_del_init(&
+DATARMNET0f551e8a47->DATARMNET6f898987df);kfree(DATARMNET0f551e8a47);}}void 
+DATARMNET24e4475345(struct DATARMNET6c78e47d24*DATARMNETd2a694d52a,struct 
+list_head*DATARMNETb436c3f30b){struct DATARMNET09a412b1c6*DATARMNET4238158b2a;if
+(!DATARMNETd2a694d52a||!DATARMNETb436c3f30b){DATARMNET68d84e7b98[
+DATARMNETac729c3d29]++;return;}if(!DATARMNET362b15f941(DATARMNETd2a694d52a->
+DATARMNET7c894c2f8f)){DATARMNET4238158b2a=kzalloc(sizeof(*DATARMNET4238158b2a),
+GFP_ATOMIC);if(DATARMNET4238158b2a!=NULL){DATARMNET4238158b2a->
+DATARMNET253a9fc708=DATARMNETd2a694d52a->DATARMNET253a9fc708;DATARMNET4238158b2a
+->DATARMNET42a992465f=DATARMNETd2a694d52a->DATARMNET7c894c2f8f;
+DATARMNET4238158b2a->hash=DATARMNETd2a694d52a->hash;DATARMNET4238158b2a->
+DATARMNET324c1a8f98=DATARMNETd2a694d52a->DATARMNET324c1a8f98;list_add(&
+DATARMNET4238158b2a->DATARMNETd502c0412a,DATARMNETb436c3f30b);}else{
+DATARMNET68d84e7b98[DATARMNET6533f70c87]++;}}}void DATARMNETa1b141715b(struct 
+list_head*DATARMNETb436c3f30b){struct DATARMNET09a412b1c6*DATARMNET4238158b2a;
+struct list_head*DATARMNET7b34b7b5be,*next;if(!DATARMNETb436c3f30b){
+DATARMNET68d84e7b98[DATARMNETac729c3d29]++;return;}list_for_each_safe(
+DATARMNET7b34b7b5be,next,DATARMNETb436c3f30b){DATARMNET4238158b2a=list_entry(
+DATARMNET7b34b7b5be,struct DATARMNET09a412b1c6,DATARMNETd502c0412a);if(!
+DATARMNET4238158b2a)continue;list_del_init(&DATARMNET4238158b2a->
+DATARMNETd502c0412a);kfree(DATARMNET4238158b2a);}}void DATARMNETc6439e3d71(
+struct DATARMNETc8fdbf9c85*DATARMNET7bea4a06a6,struct DATARMNET228056d4b7*
+DATARMNETf632b170b1,struct list_head*DATARMNETe46ae760db){u64 
+DATARMNET264b01f4d5,DATARMNET53ce143c7e=(0xd2d+202-0xdf7);struct 
+DATARMNET47a6995138*DATARMNETace28a2c7f;int flows=(0xd2d+202-0xdf7);if(!
+DATARMNETf632b170b1||!DATARMNETe46ae760db){DATARMNET68d84e7b98[
+DATARMNETac729c3d29]++;return;}flows=DATARMNET7bea4a06a6->DATARMNET73464778dc[
+DATARMNETf632b170b1->DATARMNET42a992465f].flows;DATARMNET264b01f4d5=
+DATARMNET713717107f[DATARMNETf632b170b1->DATARMNET42a992465f];
+DATARMNET53ce143c7e=DATARMNET4793ed48af[DATARMNETf632b170b1->DATARMNET42a992465f
+];DATARMNETace28a2c7f=kzalloc(sizeof(*DATARMNETace28a2c7f),GFP_ATOMIC);if(
+DATARMNETace28a2c7f==NULL){DATARMNET68d84e7b98[DATARMNET6533f70c87]++;return;}
+DATARMNETace28a2c7f->DATARMNET42a992465f=DATARMNETf632b170b1->
+DATARMNET42a992465f;if(flows<=(0xd2d+202-0xdf7)){DATARMNETace28a2c7f->
+DATARMNET18b7a5b761=DATARMNET264b01f4d5;DATARMNETace28a2c7f->DATARMNET4da6031170
+=DATARMNET264b01f4d5;DATARMNETace28a2c7f->DATARMNET4df302dbd6=(0xd2d+202-0xdf7);
+list_add(&DATARMNETace28a2c7f->DATARMNET02523bfb57,DATARMNETe46ae760db);return;}
+if(DATARMNETf632b170b1->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);if(!DATARMNETace28a2c7f)continue;list_del_init(&
+DATARMNETace28a2c7f->DATARMNET02523bfb57);kfree(DATARMNETace28a2c7f);}}void 
+DATARMNET6f4b0915d3(struct DATARMNET6c78e47d24*DATARMNETd2a694d52a,struct 
+list_head*DATARMNET3208cd0982){struct DATARMNET13c47d154e*DATARMNETf02b2a5be7;if
+(!DATARMNETd2a694d52a||!DATARMNET3208cd0982){DATARMNET68d84e7b98[
+DATARMNETac729c3d29]++;return;}DATARMNETf02b2a5be7=kzalloc(sizeof(*
+DATARMNETf02b2a5be7),GFP_ATOMIC);if(DATARMNETf02b2a5be7!=NULL&&
+DATARMNETd2a694d52a->DATARMNET63b1a086d5!=NULL){DATARMNETf02b2a5be7->
+DATARMNET253a9fc708=DATARMNETd2a694d52a->DATARMNET253a9fc708;DATARMNETf02b2a5be7
+->DATARMNET42a992465f=DATARMNETd2a694d52a->DATARMNET7c894c2f8f;
+DATARMNETf02b2a5be7->hash=DATARMNETd2a694d52a->hash;DATARMNETf02b2a5be7->
+DATARMNET324c1a8f98=DATARMNETd2a694d52a->DATARMNET324c1a8f98;DATARMNETf02b2a5be7
+->DATARMNETbb80fccd97=DATARMNETd2a694d52a->DATARMNETbb80fccd97;
+DATARMNETf02b2a5be7->trans_proto=DATARMNETd2a694d52a->DATARMNET1e9d25d9ff;
+DATARMNETf02b2a5be7->mux_id=DATARMNETd2a694d52a->mux_id;DATARMNETf02b2a5be7->
+DATARMNET95266642d1=DATARMNETd2a694d52a->DATARMNET95266642d1;rm_err(
+"\x53\x48\x53\x5f\x46\x4d\x55\x58\x3a\x20\x6d\x75\x78\x20\x69\x64\x20\x66\x6f\x72\x20\x66\x66\x20\x68\x61\x73\x68\x20\x30\x78\x25\x78\x20\x69\x73\x20\x25\x64\x20\x74\x70\x20\x25\x64"
+,DATARMNETf02b2a5be7->hash,DATARMNETf02b2a5be7->mux_id,DATARMNETf02b2a5be7->
+trans_proto);memcpy(&DATARMNETf02b2a5be7->ip_hdr,&DATARMNETd2a694d52a->
+DATARMNET63b1a086d5->ip_hdr,sizeof(DATARMNETf02b2a5be7->ip_hdr));memcpy(&
+DATARMNETf02b2a5be7->DATARMNETe33b41dad9,&DATARMNETd2a694d52a->
+DATARMNET63b1a086d5->DATARMNETe33b41dad9,sizeof(DATARMNETf02b2a5be7->
+DATARMNETe33b41dad9));list_add(&DATARMNETf02b2a5be7->DATARMNETec0e3cb8f0,
+DATARMNET3208cd0982);}else{DATARMNET68d84e7b98[DATARMNET6533f70c87]++;}}void 
+DATARMNETcc489fbbad(struct list_head*DATARMNET3208cd0982){struct 
+DATARMNET13c47d154e*DATARMNETf02b2a5be7;struct list_head*DATARMNET7b34b7b5be,*
+next;if(!DATARMNET3208cd0982){DATARMNET68d84e7b98[DATARMNETac729c3d29]++;return;
+}list_for_each_safe(DATARMNET7b34b7b5be,next,DATARMNET3208cd0982){
+DATARMNETf02b2a5be7=list_entry(DATARMNET7b34b7b5be,struct DATARMNET13c47d154e,
+DATARMNETec0e3cb8f0);if(!DATARMNETf02b2a5be7)continue;list_del_init(&
+DATARMNETf02b2a5be7->DATARMNETec0e3cb8f0);kfree(DATARMNETf02b2a5be7);}}void 
+DATARMNET5157210c44(struct list_head*DATARMNETe46ae760db){struct 
+DATARMNET47a6995138*DATARMNETace28a2c7f;uint16_t idx=(0xd2d+202-0xdf7);if(!
+DATARMNETe46ae760db){rm_err("\x25\x73",
+"\x53\x48\x53\x5f\x53\x43\x41\x50\x53\x3a\x20\x43\x50\x55\x20\x43\x61\x70\x61\x63\x69\x74\x69\x65\x73\x20\x4c\x69\x73\x74\x20\x69\x73\x20\x4e\x55\x4c\x4c"
+);return;}rm_err("\x25\x73",
+"\x53\x48\x53\x5f\x53\x43\x41\x50\x53\x3a\x20\x53\x6f\x72\x74\x65\x64\x20\x43\x50\x55\x20\x43\x61\x70\x61\x63\x69\x74\x69\x65\x73\x3a"
+);list_for_each_entry(DATARMNETace28a2c7f,DATARMNETe46ae760db,
+DATARMNET02523bfb57){if(!DATARMNETace28a2c7f)continue;if(idx>=
+DATARMNETc6782fed88)break;rm_err(
+"\x53\x48\x53\x5f\x53\x43\x41\x50\x53\x3a\x20\x3e\x20\x63\x70\x75\x5b\x25\x64\x5d\x20\x77\x69\x74\x68\x20\x70\x70\x73\x20\x63\x61\x70\x61\x63\x69\x74\x79\x20\x3d\x20\x25\x6c\x6c\x75\x20\x7c\x20"
+"\x61\x76\x67\x20\x70\x70\x73\x20\x63\x61\x70\x20\x3d\x20\x25\x6c\x6c\x75\x20\x62\x70\x73\x20\x3d\x20\x25\x6c\x6c\x75"
+,DATARMNETace28a2c7f->DATARMNET42a992465f,DATARMNETace28a2c7f->
+DATARMNET18b7a5b761,DATARMNETace28a2c7f->DATARMNET4da6031170,DATARMNETace28a2c7f
+->DATARMNET4df302dbd6);DATARMNET63c47f3c37[idx].DATARMNET4da6031170=
+DATARMNETace28a2c7f->DATARMNET4da6031170;DATARMNET63c47f3c37[idx].
+DATARMNET18b7a5b761=DATARMNETace28a2c7f->DATARMNET18b7a5b761;DATARMNET63c47f3c37
+[idx].DATARMNET4df302dbd6=DATARMNETace28a2c7f->DATARMNET4df302dbd6;
+DATARMNET63c47f3c37[idx].DATARMNET42a992465f=DATARMNETace28a2c7f->
+DATARMNET42a992465f;idx+=(0xd26+209-0xdf6);}rm_err(
+"\x53\x48\x53\x5f\x4d\x45\x4d\x3a\x20\x63\x61\x70\x5f\x64\x6d\x61\x5f\x70\x74\x72\x20\x3d\x20\x30\x78\x25\x6c\x6c\x78\x20\x61\x64\x64\x72\x20\x3d\x20\x30\x78\x25\x70\x4b" "\n"
+,(unsigned long long)virt_to_phys((void*)DATARMNET410036d5ac),
+DATARMNET410036d5ac);if(!DATARMNET410036d5ac){rm_err("\x25\x73",
+"\x53\x48\x53\x5f\x57\x52\x49\x54\x45\x3a\x20\x63\x61\x70\x5f\x73\x68\x61\x72\x65\x64\x20\x69\x73\x20\x4e\x55\x4c\x4c"
+);return;}memcpy((char*)DATARMNET410036d5ac->data,(void*)&DATARMNET63c47f3c37[
+(0xd2d+202-0xdf7)],sizeof(DATARMNET63c47f3c37));}void DATARMNET0e273eab79(struct
+ list_head*DATARMNETb436c3f30b){struct DATARMNET09a412b1c6*DATARMNET4238158b2a;
+uint16_t idx=(0xd2d+202-0xdf7);int DATARMNETcde08f6e7d=(0xd2d+202-0xdf7);if(!
+DATARMNETb436c3f30b){rm_err("\x25\x73",
+"\x53\x48\x53\x5f\x53\x47\x4f\x4c\x44\x3a\x20\x47\x6f\x6c\x64\x20\x46\x6c\x6f\x77\x73\x20\x4c\x69\x73\x74\x20\x69\x73\x20\x4e\x55\x4c\x4c"
+);return;}rm_err("\x25\x73",
+"\x53\x48\x53\x5f\x53\x47\x4f\x4c\x44\x3a\x20\x4c\x69\x73\x74\x20\x6f\x66\x20\x73\x6f\x72\x74\x65\x64\x20\x67\x6f\x6c\x64\x20\x66\x6c\x6f\x77\x73\x3a"
+);list_for_each_entry(DATARMNET4238158b2a,DATARMNETb436c3f30b,
+DATARMNETd502c0412a){if(!DATARMNET4238158b2a)continue;if(DATARMNET4238158b2a->
+DATARMNET324c1a8f98==(0xd2d+202-0xdf7)){continue;}if(idx>=DATARMNET75c69edb82){
+break;}rm_err(
+"\x53\x48\x53\x5f\x53\x47\x4f\x4c\x44\x3a\x20\x3e\x20\x66\x6c\x6f\x77\x20\x30\x78\x25\x78\x20\x77\x69\x74\x68\x20\x70\x70\x73\x20\x25\x6c\x6c\x75\x20\x6f\x6e\x20\x63\x70\x75\x5b\x25\x64\x5d"
+,DATARMNET4238158b2a->hash,DATARMNET4238158b2a->DATARMNET324c1a8f98,
+DATARMNET4238158b2a->DATARMNET42a992465f);DATARMNETcde08f6e7d+=(0xd26+209-0xdf6)
+;DATARMNET22b4032799[idx].DATARMNET42a992465f=DATARMNET4238158b2a->
+DATARMNET42a992465f;DATARMNET22b4032799[idx].hash=DATARMNET4238158b2a->hash;
+DATARMNET22b4032799[idx].DATARMNET253a9fc708=DATARMNET4238158b2a->
+DATARMNET253a9fc708;DATARMNET22b4032799[idx].DATARMNET324c1a8f98=
+DATARMNET4238158b2a->DATARMNET324c1a8f98;idx+=(0xd26+209-0xdf6);}rm_err(
+"\x53\x48\x53\x5f\x4d\x45\x4d\x3a\x20\x67\x66\x6c\x6f\x77\x5f\x64\x6d\x61\x5f\x70\x74\x72\x20\x3d\x20\x30\x78\x25\x6c\x6c\x78\x20\x61\x64\x64\x72\x20\x3d\x20\x30\x78\x25\x70\x4b" "\n"
+,(unsigned long long)virt_to_phys((void*)DATARMNET19c47a9f3a),
+DATARMNET19c47a9f3a);if(!DATARMNET19c47a9f3a){rm_err("\x25\x73",
+"\x53\x48\x53\x5f\x57\x52\x49\x54\x45\x3a\x20\x67\x66\x6c\x6f\x77\x5f\x73\x68\x61\x72\x65\x64\x20\x69\x73\x20\x4e\x55\x4c\x4c"
+);return;}rm_err(
+"\x53\x48\x53\x5f\x53\x47\x4f\x4c\x44\x3a\x20\x6e\x75\x6d\x20\x67\x6f\x6c\x64\x20\x66\x6c\x6f\x77\x73\x20\x3d\x20\x25\x75" "\n"
+,idx);memcpy(((char*)DATARMNET19c47a9f3a->data),&idx,sizeof(idx));memcpy(((char*
+)DATARMNET19c47a9f3a->data+sizeof(uint16_t)),(void*)&DATARMNET22b4032799[
+(0xd2d+202-0xdf7)],sizeof(DATARMNET22b4032799));}void DATARMNETe15af8eb6d(struct
+ list_head*DATARMNETf0fb155a9c){struct DATARMNETa52c09a590*DATARMNET0f551e8a47;
+uint16_t idx=(0xd2d+202-0xdf7);int DATARMNET6d96003717=(0xd2d+202-0xdf7);if(!
+DATARMNETf0fb155a9c){rm_err("\x25\x73",
+"\x53\x48\x53\x5f\x53\x4c\x4f\x57\x3a\x20\x53\x53\x20\x46\x6c\x6f\x77\x73\x20\x4c\x69\x73\x74\x20\x69\x73\x20\x4e\x55\x4c\x4c"
+);return;}rm_err("\x25\x73",
+"\x53\x48\x53\x5f\x53\x4c\x4f\x57\x3a\x20\x4c\x69\x73\x74\x20\x6f\x66\x20\x73\x6f\x72\x74\x65\x64\x20\x73\x73\x20\x66\x6c\x6f\x77\x73\x3a"
+);list_for_each_entry(DATARMNET0f551e8a47,DATARMNETf0fb155a9c,
+DATARMNET6f898987df){if(!DATARMNET0f551e8a47)continue;if(DATARMNET0f551e8a47->
+DATARMNET324c1a8f98==(0xd2d+202-0xdf7)){continue;}if(idx>=DATARMNET75c69edb82){
+break;}rm_err(
+"\x53\x48\x53\x5f\x53\x4c\x4f\x57\x3a\x20\x3e\x20\x66\x6c\x6f\x77\x20\x30\x78\x25\x78\x20\x77\x69\x74\x68\x20\x70\x70\x73\x20\x25\x6c\x6c\x75\x20\x6f\x6e\x20\x63\x70\x75\x5b\x25\x64\x5d"
+,DATARMNET0f551e8a47->hash,DATARMNET0f551e8a47->DATARMNET324c1a8f98,
+DATARMNET0f551e8a47->DATARMNET42a992465f);DATARMNET6d96003717+=(0xd26+209-0xdf6)
+;DATARMNETb0d78d576f[idx].DATARMNET42a992465f=DATARMNET0f551e8a47->
+DATARMNET42a992465f;DATARMNETb0d78d576f[idx].hash=DATARMNET0f551e8a47->hash;
+DATARMNETb0d78d576f[idx].DATARMNET253a9fc708=DATARMNET0f551e8a47->
+DATARMNET253a9fc708;DATARMNETb0d78d576f[idx].DATARMNET324c1a8f98=
+DATARMNET0f551e8a47->DATARMNET324c1a8f98;DATARMNETb0d78d576f[idx].
+DATARMNETbb80fccd97=DATARMNET0f551e8a47->DATARMNETbb80fccd97;idx+=
+(0xd26+209-0xdf6);}rm_err(
+"\x53\x48\x53\x5f\x4d\x45\x4d\x3a\x20\x73\x73\x66\x6c\x6f\x77\x5f\x64\x6d\x61\x5f\x70\x74\x72\x20\x3d\x20\x30\x78\x25\x6c\x6c\x78\x20\x61\x64\x64\x72\x20\x3d\x20\x30\x78\x25\x70\x4b" "\n"
+,(unsigned long long)virt_to_phys((void*)DATARMNET22e796eff3),
+DATARMNET22e796eff3);if(!DATARMNET22e796eff3){rm_err("\x25\x73",
+"\x53\x48\x53\x5f\x57\x52\x49\x54\x45\x3a\x20\x73\x73\x66\x6c\x6f\x77\x5f\x73\x68\x61\x72\x65\x64\x20\x69\x73\x20\x4e\x55\x4c\x4c"
+);return;}rm_err(
+"\x53\x48\x53\x5f\x53\x4c\x4f\x57\x3a\x20\x6e\x75\x6d\x20\x73\x73\x20\x66\x6c\x6f\x77\x73\x20\x3d\x20\x25\x75" "\n"
+,idx);memcpy(((char*)DATARMNET22e796eff3->data),&idx,sizeof(idx));memcpy(((char*
+)DATARMNET22e796eff3->data+sizeof(uint16_t)),(void*)&DATARMNETb0d78d576f[
+(0xd2d+202-0xdf7)],sizeof(DATARMNETb0d78d576f));}void DATARMNET78f3a0ca4f(struct
+ list_head*DATARMNET3208cd0982){struct DATARMNET13c47d154e*DATARMNETf02b2a5be7;
+uint16_t idx=(0xd2d+202-0xdf7);int DATARMNETd31ee74d2e=(0xd2d+202-0xdf7);if(!
+DATARMNET3208cd0982){rm_err("\x25\x73",
+"\x53\x48\x53\x5f\x54\x4f\x50\x3a\x20\x46\x69\x6c\x74\x65\x72\x20\x46\x6c\x6f\x77\x73\x20\x4c\x69\x73\x74\x20\x69\x73\x20\x4e\x55\x4c\x4c"
+);return;}rm_err("\x25\x73",
+"\x53\x48\x53\x5f\x54\x4f\x50\x3a\x20\x4c\x69\x73\x74\x20\x6f\x66\x20\x54\x4f\x50\x20\x66\x69\x6c\x74\x65\x72\x20\x66\x6c\x6f\x77\x73\x3a"
+);list_for_each_entry(DATARMNETf02b2a5be7,DATARMNET3208cd0982,
+DATARMNETec0e3cb8f0){if(!DATARMNETf02b2a5be7)continue;if(DATARMNETf02b2a5be7->
+DATARMNET324c1a8f98==(0xd2d+202-0xdf7)){continue;}if(idx>=DATARMNET67578af78f){
+break;}rm_err(
+"\x53\x48\x53\x5f\x54\x4f\x50\x3a\x20\x3e\x20\x66\x6c\x6f\x77\x20\x30\x78\x25\x78\x20\x77\x69\x74\x68\x20\x70\x70\x73\x20\x25\x6c\x6c\x75\x20\x6f\x6e\x20\x63\x70\x75\x5b\x25\x64\x5d"
+,DATARMNETf02b2a5be7->hash,DATARMNETf02b2a5be7->DATARMNET324c1a8f98,
+DATARMNETf02b2a5be7->DATARMNET42a992465f);DATARMNETd31ee74d2e+=(0xd26+209-0xdf6)
+;memcpy(&(DATARMNET3d25ff4ef4[idx].ip_hdr),&(DATARMNETf02b2a5be7->ip_hdr),sizeof
+(DATARMNET3d25ff4ef4[idx].ip_hdr));memcpy(&(DATARMNET3d25ff4ef4[idx].
+DATARMNETe33b41dad9),&(DATARMNETf02b2a5be7->DATARMNETe33b41dad9),sizeof(
+DATARMNET3d25ff4ef4[idx].DATARMNETe33b41dad9));DATARMNET3d25ff4ef4[idx].
+DATARMNET42a992465f=DATARMNETf02b2a5be7->DATARMNET42a992465f;DATARMNET3d25ff4ef4
+[idx].hash=DATARMNETf02b2a5be7->hash;DATARMNET3d25ff4ef4[idx].
+DATARMNET253a9fc708=DATARMNETf02b2a5be7->DATARMNET253a9fc708;DATARMNET3d25ff4ef4
+[idx].DATARMNET324c1a8f98=DATARMNETf02b2a5be7->DATARMNET324c1a8f98;
+DATARMNET3d25ff4ef4[idx].DATARMNETbb80fccd97=DATARMNETf02b2a5be7->
+DATARMNETbb80fccd97;DATARMNET3d25ff4ef4[idx].trans_proto=DATARMNETf02b2a5be7->
+trans_proto;DATARMNET3d25ff4ef4[idx].mux_id=DATARMNETf02b2a5be7->mux_id;
+DATARMNET3d25ff4ef4[idx].DATARMNET95266642d1=DATARMNETf02b2a5be7->
+DATARMNET95266642d1;idx+=(0xd26+209-0xdf6);}rm_err(
+"\x53\x48\x53\x5f\x4d\x45\x4d\x3a\x20\x66\x66\x6c\x6f\x77\x5f\x64\x6d\x61\x5f\x70\x74\x72\x20\x3d\x20\x30\x78\x25\x6c\x6c\x78\x20\x61\x64\x64\x72\x20\x3d\x20\x30\x78\x25\x70\x4b" "\n"
+,(unsigned long long)virt_to_phys((void*)DATARMNET9b8000d2a7),
+DATARMNET9b8000d2a7);if(!DATARMNET9b8000d2a7){rm_err("\x25\x73",
+"\x53\x48\x53\x5f\x57\x52\x49\x54\x45\x3a\x20\x66\x66\x6c\x6f\x77\x5f\x73\x68\x61\x72\x65\x64\x20\x69\x73\x20\x4e\x55\x4c\x4c"
+);return;}rm_err(
+"\x53\x48\x53\x5f\x53\x4c\x4f\x57\x3a\x20\x6e\x75\x6d\x20\x66\x66\x6c\x6f\x77\x73\x20\x3d\x20\x25\x75" "\n"
+,idx);memcpy(((char*)DATARMNET9b8000d2a7->data),&idx,sizeof(idx));memcpy(((char*
+)DATARMNET9b8000d2a7->data+sizeof(uint16_t)),(void*)&DATARMNET3d25ff4ef4[
+(0xd2d+202-0xdf7)],sizeof(DATARMNET3d25ff4ef4));}void DATARMNET78666f33a1(void){
+struct rmnet_priv*priv;struct DATARMNET9b44b71ee9*ep=NULL;u16 idx=
+(0xd2d+202-0xdf7);u16 count=(0xd2d+202-0xdf7);rm_err(
+"\x53\x48\x53\x5f\x4e\x45\x54\x44\x45\x56\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x65\x6e\x74\x65\x72\x20\x25\x75" "\n"
+,idx);list_for_each_entry(ep,&DATARMNET30a3e83974,DATARMNET0763436b8d){count+=
+(0xd26+209-0xdf6);rm_err(
+"\x53\x48\x53\x5f\x4e\x45\x54\x44\x45\x56\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x65\x6e\x74\x65\x72\x20\x65\x70\x20\x25\x75" "\n"
+,count);if(!ep)continue;if(!ep->DATARMNET4a4e6f66b5){rm_err(
+"\x53\x48\x53\x5f\x4e\x45\x54\x44\x45\x56\x3a\x20\x65\x70\x20\x25\x75\x20\x69\x73\x20\x4e\x4f\x54\x20\x61\x63\x74\x69\x76\x65" "\n"
+,count);continue;}rm_err(
+"\x53\x48\x53\x5f\x4e\x45\x54\x44\x45\x56\x3a\x20\x65\x70\x20\x25\x75\x20\x69\x73\x20\x61\x63\x74\x69\x76\x65\x20\x61\x6e\x64\x20\x6e\x6f\x74\x20\x6e\x75\x6c\x6c" "\n"
+,count);if(idx>=DATARMNETe4d15b9332){break;}priv=netdev_priv(ep->ep);if(!priv){
+rm_err(
+"\x53\x48\x53\x5f\x4e\x45\x54\x44\x45\x56\x3a\x20\x70\x72\x69\x76\x20\x66\x6f\x72\x20\x65\x70\x20\x25\x75\x20\x69\x73\x20\x6e\x75\x6c\x6c" "\n"
+,count);continue;}rm_err(
+"\x53\x48\x53\x5f\x4e\x45\x54\x44\x45\x56\x3a\x20\x65\x70\x20\x25\x75\x20\x68\x61\x73\x20\x6e\x61\x6d\x65\x20\x3d\x20\x25\x73\x20" "\n"
+,count,ep->ep->name);rm_err(
+"\x53\x48\x53\x5f\x4e\x45\x54\x44\x45\x56\x3a\x20\x65\x70\x20\x25\x75\x20\x68\x61\x73\x20\x6d\x75\x78\x5f\x69\x64\x20\x3d\x20\x25\x75\x20" "\n"
+,count,priv->mux_id);rm_err(
+"\x53\x48\x53\x5f\x4e\x45\x54\x44\x45\x56\x3a\x20\x65\x70\x20\x25\x75\x20\x68\x61\x73\x20\x69\x70\x5f\x6d\x69\x73\x73\x20\x3d\x20\x25\x6c\x75\x20" "\n"
+,count,priv->stats.coal.close.ip_miss);rm_err(
+"\x53\x48\x53\x5f\x4e\x45\x54\x44\x45\x56\x3a\x20\x65\x70\x20\x25\x75\x20\x68\x61\x73\x20\x63\x6f\x61\x6c\x5f\x72\x78\x5f\x70\x6b\x74\x73\x20\x3d\x20\x25\x6c\x75\x20" "\n"
+,count,priv->stats.coal.coal_pkts);rm_err(
+"\x53\x48\x53\x5f\x4e\x45\x54\x44\x45\x56\x3a\x20\x65\x70\x20\x25\x75\x20\x68\x61\x73\x20\x75\x64\x70\x5f\x72\x78\x5f\x62\x70\x73\x20\x3d\x20\x25\x6c\x75\x20" "\n"
+,count,ep->DATARMNET257fc4b2d4);rm_err(
+"\x53\x48\x53\x5f\x4e\x45\x54\x44\x45\x56\x3a\x20\x65\x70\x20\x25\x75\x20\x68\x61\x73\x20\x74\x63\x70\x5f\x72\x78\x5f\x62\x70\x73\x20\x3d\x20\x25\x6c\x75\x20" "\n"
+,count,ep->DATARMNET4eb77c78e6);DATARMNETf46265286b[idx].DATARMNET77de6e34f2=
+priv->stats.coal.close.ip_miss;DATARMNETf46265286b[idx].hw_evict=priv->stats.
+coal.close.hw_evict;DATARMNETf46265286b[idx].coal_tcp=priv->stats.coal.coal_tcp;
+DATARMNETf46265286b[idx].coal_tcp_bytes=priv->stats.coal.coal_tcp_bytes;
+DATARMNETf46265286b[idx].coal_udp=priv->stats.coal.coal_udp;DATARMNETf46265286b[
+idx].coal_udp_bytes=priv->stats.coal.coal_udp_bytes;DATARMNETf46265286b[idx].
+mux_id=priv->mux_id;strlcpy(DATARMNETf46265286b[idx].name,ep->ep->name,sizeof(
+DATARMNETf46265286b[idx].name));DATARMNETf46265286b[idx].DATARMNET870c3dafcb=
+priv->stats.coal.coal_pkts;DATARMNETf46265286b[idx].DATARMNET4eb77c78e6=ep->
+DATARMNET4eb77c78e6;DATARMNETf46265286b[idx].DATARMNET257fc4b2d4=ep->
+DATARMNET257fc4b2d4;idx+=(0xd26+209-0xdf6);}rm_err(
+"\x53\x48\x53\x5f\x4d\x45\x4d\x3a\x20\x6e\x65\x74\x64\x65\x76\x5f\x73\x68\x61\x72\x65\x64\x20\x3d\x20\x30\x78\x25\x6c\x6c\x78\x20\x61\x64\x64\x72\x20\x3d\x20\x30\x78\x25\x70\x4b" "\n"
+,(unsigned long long)virt_to_phys((void*)DATARMNET67d31dc40a),
+DATARMNET67d31dc40a);if(!DATARMNET67d31dc40a){rm_err("\x25\x73",
+"\x53\x48\x53\x5f\x57\x52\x49\x54\x45\x3a\x20\x6e\x65\x74\x64\x65\x76\x5f\x73\x68\x61\x72\x65\x64\x20\x69\x73\x20\x4e\x55\x4c\x4c"
+);return;}memcpy(((char*)DATARMNET67d31dc40a->data),&idx,sizeof(idx));memcpy(((
+char*)DATARMNET67d31dc40a->data+sizeof(uint16_t)),(void*)&DATARMNETf46265286b[
+(0xd2d+202-0xdf7)],sizeof(DATARMNETf46265286b));}void DATARMNETf5f83b943f(void){
+kuid_t DATARMNETdaca088404;kgid_t DATARMNET254aa091f2;DATARMNETe4c5563cdb=
+proc_mkdir("\x73\x68\x73",NULL);DATARMNETdaca088404=make_kuid(&init_user_ns,
+(0xdc7+2646-0x1434));DATARMNET254aa091f2=make_kgid(&init_user_ns,
+(0xdc7+2646-0x1434));if(uid_valid(DATARMNETdaca088404)&&gid_valid(
+DATARMNET254aa091f2))proc_set_user(DATARMNETe4c5563cdb,DATARMNETdaca088404,
+DATARMNET254aa091f2);proc_create(DATARMNET41be983a65,(0xdb7+6665-0x261c),
+DATARMNETe4c5563cdb,&DATARMNET668485bd14);proc_create(DATARMNET5ddc91451c,
+(0xdb7+6665-0x261c),DATARMNETe4c5563cdb,&DATARMNETe84fbaa6af);proc_create(
+DATARMNETeb2a21dd7c,(0xdb7+6665-0x261c),DATARMNETe4c5563cdb,&DATARMNET8fe5f892a8
+);proc_create(DATARMNET1c4ea23858,(0xdb7+6665-0x261c),DATARMNETe4c5563cdb,&
+DATARMNET0104d40d4b);proc_create(DATARMNETe98d39b779,(0xdb7+6665-0x261c),
+DATARMNETe4c5563cdb,&DATARMNET6eb63d9ad0);DATARMNET6bf538fa23();
+DATARMNET410036d5ac=NULL;DATARMNET19c47a9f3a=NULL;DATARMNET22e796eff3=NULL;
+DATARMNET9b8000d2a7=NULL;DATARMNET67d31dc40a=NULL;DATARMNETaea4c85748();}void 
+DATARMNET28d33bd09f(void){remove_proc_entry(DATARMNET41be983a65,
+DATARMNETe4c5563cdb);remove_proc_entry(DATARMNET5ddc91451c,DATARMNETe4c5563cdb);
+remove_proc_entry(DATARMNETeb2a21dd7c,DATARMNETe4c5563cdb);remove_proc_entry(
+DATARMNET1c4ea23858,DATARMNETe4c5563cdb);remove_proc_entry(DATARMNETe98d39b779,
+DATARMNETe4c5563cdb);remove_proc_entry(DATARMNET6517f07a36,NULL);
+DATARMNET6bf538fa23();DATARMNET410036d5ac=NULL;DATARMNET19c47a9f3a=NULL;
+DATARMNET22e796eff3=NULL;DATARMNET9b8000d2a7=NULL;DATARMNET67d31dc40a=NULL;
+DATARMNETaea4c85748();}

+ 69 - 0
shs/rmnet_shs_wq_mem.h

@@ -0,0 +1,69 @@
+/* Copyright (c) 2019-2020 The Linux Foundation. All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 and
+ * only version 2 as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ */
+
+#ifndef DATARMNETe10fe0b1e0
+#define DATARMNETe10fe0b1e0
+#include "rmnet_shs.h"
+#define DATARMNET6517f07a36      "\x73\x68\x73"
+#define DATARMNET41be983a65     \
+"\x72\x6d\x6e\x65\x74\x5f\x73\x68\x73\x5f\x63\x61\x70\x73"
+#define DATARMNET5ddc91451c  \
+"\x72\x6d\x6e\x65\x74\x5f\x73\x68\x73\x5f\x66\x6c\x6f\x77\x73"
+#define DATARMNETeb2a21dd7c \
+"\x72\x6d\x6e\x65\x74\x5f\x73\x68\x73\x5f\x73\x73\x5f\x66\x6c\x6f\x77\x73"
+#define DATARMNET1c4ea23858   \
+"\x72\x6d\x6e\x65\x74\x5f\x73\x68\x73\x5f\x66\x66\x6c\x6f\x77\x73"
+#define DATARMNETe98d39b779   \
+"\x72\x6d\x6e\x65\x74\x5f\x73\x68\x73\x5f\x6e\x65\x74\x64\x65\x76"
+#define DATARMNET67578af78f ((0xd11+230-0xdf3))
+#define DATARMNET75c69edb82 ((0xef7+694-0x112d))
+#define DATARMNETe4d15b9332 ((0xec7+1166-0x132d))
+#define DATARMNET9ae5f81f71 ((0xeb7+1158-0x132d))
+#define DATARMNET29d29f44cf ((0xd2d+202-0xdf7))
+struct __attribute__((__packed__))DATARMNET33582f7450{u64 DATARMNET18b7a5b761;
+u64 DATARMNET4da6031170;u64 DATARMNET4df302dbd6;u16 DATARMNET42a992465f;};struct
+ __attribute__((__packed__))DATARMNETf44cda1bf2{u64 DATARMNET324c1a8f98;u64 
+DATARMNET253a9fc708;u64 DATARMNETbb80fccd97;u32 hash;u16 DATARMNET42a992465f;};
+struct __attribute__((__packed__))DATARMNET3a84fbfeae{u64 DATARMNET324c1a8f98;
+u64 DATARMNET253a9fc708;u64 DATARMNETbb80fccd97;u32 hash;u16 DATARMNET42a992465f
+;};struct __attribute__((__packed__))DATARMNETc13d990bf1{union{struct iphdr 
+DATARMNETac9bbaad7c;struct ipv6hdr DATARMNET1688a97aa4;}ip_hdr;union{struct 
+tcphdr tp;struct udphdr up;}DATARMNETe33b41dad9;u64 DATARMNET324c1a8f98;u64 
+DATARMNET253a9fc708;u64 DATARMNETbb80fccd97;u64 DATARMNET95266642d1;u32 hash;u16
+ DATARMNET42a992465f;u16 trans_proto;u8 mux_id;};struct __attribute__((
+__packed__))DATARMNET57ccbe14f3{char name[DATARMNET9ae5f81f71];u64 
+DATARMNET77de6e34f2;u64 hw_evict;u64 DATARMNET870c3dafcb;u64 coal_tcp;u64 
+coal_tcp_bytes;u64 coal_udp;u64 coal_udp_bytes;u64 DATARMNET257fc4b2d4;u64 
+DATARMNET4eb77c78e6;u8 mux_id;};extern struct list_head DATARMNET6c23f11e81;
+extern struct list_head DATARMNETf91b305f4e;extern struct list_head 
+DATARMNET3208cd0982;extern struct list_head DATARMNETe46ae760db;enum{
+DATARMNETbd4083a6a4=(0x24f5+499-0x16e8)};struct DATARMNETa41d4c4a12{char*data;
+refcount_t refcnt;};void DATARMNET28a80d526e(struct DATARMNET6c78e47d24*
+DATARMNETd2a694d52a,struct list_head*DATARMNETf0fb155a9c);void 
+DATARMNET24e4475345(struct DATARMNET6c78e47d24*DATARMNETd2a694d52a,struct 
+list_head*DATARMNETb436c3f30b);void DATARMNET6f4b0915d3(struct 
+DATARMNET6c78e47d24*DATARMNETd2a694d52a,struct list_head*DATARMNET3208cd0982);
+void DATARMNETa1b141715b(struct list_head*DATARMNETb436c3f30b);void 
+DATARMNET3af54cd726(struct list_head*DATARMNETf0fb155a9c);void 
+DATARMNETcc489fbbad(struct list_head*DATARMNET3208cd0982);void 
+DATARMNETc6439e3d71(struct DATARMNETc8fdbf9c85*DATARMNET7bea4a06a6,struct 
+DATARMNET228056d4b7*DATARMNETf632b170b1,struct list_head*DATARMNETe46ae760db);
+void DATARMNETb177316a15(struct list_head*DATARMNETe46ae760db);void 
+DATARMNET5157210c44(struct list_head*DATARMNETe46ae760db);void 
+DATARMNET0e273eab79(struct list_head*DATARMNETb436c3f30b);void 
+DATARMNETe15af8eb6d(struct list_head*DATARMNETf0fb155a9c);void 
+DATARMNET78f3a0ca4f(struct list_head*DATARMNET3208cd0982);void 
+DATARMNET78666f33a1(void);void DATARMNETf5f83b943f(void);void 
+DATARMNET28d33bd09f(void);
+#endif 
+