android_kernel_xiaomi_sm8350/shs/rmnet_shs_main.c
Subash Abhinov Kasiviswanathan 603fcd33d7 rmnet_shs: I6695e980c5e7bb29365c47e1536dc14efa1c0043
Change-Id: I6695e980c5e7bb29365c47e1536dc14efa1c0043
Acked-by: Raul Martinez <mraul@qti.qualcomm.com>
Signed-off-by: Subash Abhinov Kasiviswanathan <subashab@codeaurora.org>
2021-07-28 12:12:04 -07:00

765 lines
53 KiB
C

/* Copyright (c) 2018-2021 The Linux Foundation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
* only version 2 as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
*/
#include <net/sock.h>
#include <linux/netlink.h>
#include <linux/ip.h>
#include <linux/cpu.h>
#include <linux/oom.h>
#include <net/ip.h>
#include <linux/cpu.h>
#include <linux/bitmap.h>
#include <linux/netdevice.h>
#include <linux/kernel.h>
#include <linux/smp.h>
#include <linux/ipv6.h>
#include <linux/netdevice.h>
#include <linux/percpu-defs.h>
#include "rmnet_shs.h"
#include "rmnet_shs_config.h"
#include "rmnet_shs_wq.h"
#include "rmnet_shs_modules.h"
#include "rmnet_shs_common.h"
#include <linux/module.h>
#include <linux/cpumask.h>
#define DATARMNET2f67183a86 2000000
#define DATARMNET68fc0be252 1000000
#define DATARMNETd391fbd694 (0xd2d+202-0xdf7)
#define DATARMNETae2e980d66 (0xd11+230-0xdf3)
#define DATARMNET249a927510 (0xd27+224-0xdfd)
#define DATARMNET904145ccb9 (0xd11+230-0xdf3)
#define DATARMNETb91aee91fd -(0xd26+209-0xdf6)
#define DATARMNET00d5787aad 2000000
#define DATARMNET8948dc953d (0xd0a+237-0xdf2)
#define DATARMNET20dc6bb36b (0xd26+209-0xdf6)
#define DATARMNET832731a933(CPU) (per_cpu(softnet_data, CPU).input_pkt_queue)
#define DATARMNET3de2536baf(CPU) (per_cpu(softnet_data, CPU).process_queue)
#define DATARMNET78ec5e8746(DATARMNETfbfdc7f27e, CPU) (per_cpu(\
DATARMNETfbfdc7f27e, CPU).input_queue_tail)
#define DATARMNET9c1c20df35(DATARMNETfbfdc7f27e, CPU) (per_cpu(\
DATARMNETfbfdc7f27e, CPU).input_queue_head)
#define DATARMNETba5ea4329f(CPU) DATARMNETecc0627c70.DATARMNET132b9c7dc4[CPU].\
DATARMNET758a55f103
#define DATARMNETec970d7090 (0xd26+209-0xdf6)
#define DATARMNET8fadb49f38 (0xd2d+202-0xdf7)
#define DATARMNET48a89fcc16 (0xd26+209-0xdf6)
#define DATARMNETbfe901fc62 (0xd2d+202-0xdf7)
DEFINE_SPINLOCK(DATARMNET3764d083f0);DEFINE_HASHTABLE(DATARMNETe603c3a4b3,
DATARMNET25437d35fd);struct DATARMNETe600c5b727 DATARMNET0997c5650d[
DATARMNETc6782fed88];int DATARMNETcff375d916[DATARMNETc6782fed88];unsigned int
DATARMNETaf998640fd __read_mostly=(0xcb7+2213-0x123c);module_param(
DATARMNETaf998640fd,uint,(0xdb7+6665-0x261c));MODULE_PARM_DESC(
DATARMNETaf998640fd,
"\x4d\x61\x78\x20\x71\x6d\x61\x70\x20\x62\x61\x63\x6b\x6c\x6f\x67");struct
DATARMNETa6b20d7e8b DATARMNETecc0627c70;struct DATARMNET37ef896af8 shs_rx_work;
ssize_t DATARMNET713da9913c(struct netdev_rx_queue*DATARMNETb4180393e4,u8 cpu,u8
DATARMNETa7a5705ab0,u8 DATARMNET5780499e9c){struct rps_map*DATARMNETaeb4918e65,
*map;cpumask_var_t mask;int DATARMNET421230d879;if(!DATARMNET5780499e9c&&(
DATARMNET3de2536baf(DATARMNETa7a5705ab0).qlen&DATARMNET832731a933(
DATARMNETa7a5705ab0).qlen))return-(0xd26+209-0xdf6);map=rcu_dereference(
DATARMNETb4180393e4->rps_map);if(map){map->cpus[(0xd2d+202-0xdf7)]=cpu;map->len=
(0xd26+209-0xdf6);DATARMNET421230d879=(DATARMNET3de2536baf(DATARMNETa7a5705ab0).
qlen+DATARMNET832731a933(DATARMNETa7a5705ab0).qlen);if(DATARMNET421230d879&&
DATARMNETecc0627c70.DATARMNET7d667e828e!=DATARMNETecc0627c70.DATARMNET5c24e1df05
){DATARMNET68d84e7b98[DATARMNETfeaf903a28]++;DATARMNET4bde88919f(
DATARMNETa7a5705ab0,DATARMNET421230d879);}return(0xd2d+202-0xdf7);}if(!
alloc_cpumask_var(&mask,GFP_ATOMIC))return-ENOMEM;cpumask_set_cpu(cpu,(struct
cpumask*)&mask);map=kzalloc(max_t(unsigned int,RPS_MAP_SIZE(cpumask_weight(mask)
),L1_CACHE_BYTES),GFP_ATOMIC);if(!map){free_cpumask_var(mask);return-ENOMEM;}map
->cpus[(0xd2d+202-0xdf7)]=cpu;map->len=(0xd26+209-0xdf6);rcu_read_lock();
DATARMNETaeb4918e65=rcu_dereference(DATARMNETb4180393e4->rps_map);
rcu_assign_pointer(DATARMNETb4180393e4->rps_map,map);if(DATARMNETaeb4918e65)
kfree(DATARMNETaeb4918e65);free_cpumask_var(mask);rcu_read_unlock();
DATARMNET421230d879=(DATARMNET3de2536baf(DATARMNETa7a5705ab0).qlen+
DATARMNET832731a933(DATARMNETa7a5705ab0).qlen);if(DATARMNET421230d879&&
DATARMNETecc0627c70.DATARMNET7d667e828e!=DATARMNETecc0627c70.DATARMNET5c24e1df05
){DATARMNET68d84e7b98[DATARMNETfeaf903a28]++;}return(0xd2d+202-0xdf7);}static
void*DATARMNETefcaf5fbe9(struct sk_buff*skb,u32 offset,u32 DATARMNET567bdc7221,
void*buf){struct skb_shared_info*shinfo=skb_shinfo(skb);skb_frag_t*frag;u32
DATARMNETedc267a909=offset;int i;if(offset>skb->len||DATARMNET567bdc7221>skb->
len||offset+DATARMNET567bdc7221>skb->len)return NULL;if(skb_headlen(skb)>=offset
+DATARMNET567bdc7221)return skb->data+offset;offset-=skb_headlen(skb);for(i=
(0xd2d+202-0xdf7);i<shinfo->nr_frags;i++){u32 frag_size;frag=&shinfo->frags[i];
frag_size=skb_frag_size(frag);if(offset>=frag_size){offset-=frag_size;continue;}
if(frag_size>=offset+DATARMNET567bdc7221)return skb_frag_address(frag)+offset;}
if(skb_copy_bits(skb,(int)DATARMNETedc267a909,buf,(int)DATARMNET567bdc7221))
return NULL;return buf;}int DATARMNET9303cec796(struct sk_buff*skb){int
DATARMNETbd864aa442=(0xd2d+202-0xdf7);struct iphdr*ip4h,DATARMNETc00baf31c3;
struct ipv6hdr*ip6h,DATARMNETcf1d9e2c1e;switch(skb->protocol){case htons(
ETH_P_IP):ip4h=DATARMNETefcaf5fbe9(skb,(0xd2d+202-0xdf7),sizeof(*ip4h),&
DATARMNETc00baf31c3);if(!ip4h)break;if(!ip_is_fragment(ip4h)&&(ip4h->protocol==
IPPROTO_TCP||ip4h->protocol==IPPROTO_UDP)){DATARMNETbd864aa442=(0xd26+209-0xdf6)
;break;}if(ip4h->protocol==IPPROTO_ICMP){skb->hash=(0xd2d+202-0xdf7);skb->
sw_hash=(0xd26+209-0xdf6);}break;case htons(ETH_P_IPV6):ip6h=DATARMNETefcaf5fbe9
(skb,(0xd2d+202-0xdf7),sizeof(*ip6h),&DATARMNETcf1d9e2c1e);if(!ip6h)break;if(!(
ip6h->nexthdr==NEXTHDR_FRAGMENT)&&(ip6h->nexthdr==IPPROTO_TCP||ip6h->nexthdr==
IPPROTO_UDP)){DATARMNETbd864aa442=(0xd26+209-0xdf6);break;}if(ip6h->nexthdr==
NEXTHDR_ICMP){skb->hash=(0xd2d+202-0xdf7);skb->sw_hash=(0xd26+209-0xdf6);}break;
default:break;}DATARMNETda96251102(DATARMNETcd24fca747,DATARMNET116c96c236,
DATARMNETbd864aa442,(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),skb
,NULL);return DATARMNETbd864aa442;}static void DATARMNETfa919d00dc(int cpu,int
DATARMNET8a461bad56){struct timespec DATARMNET2e47295bf1;struct timespec*
DATARMNET736ac5582e;long DATARMNETb64270afc1;int DATARMNETa67155ba38=(
DATARMNETa1ac2608b5<DATARMNET8948dc953d)?DATARMNET8948dc953d:DATARMNETa1ac2608b5
;getnstimeofday(&DATARMNET2e47295bf1);DATARMNET736ac5582e=&DATARMNETecc0627c70.
DATARMNET132b9c7dc4[cpu].DATARMNET251b97a380;DATARMNETb64270afc1=
DATARMNETe6671dbf38(DATARMNET2e47295bf1.tv_sec-DATARMNET736ac5582e->tv_sec)+
DATARMNET2e47295bf1.tv_nsec-DATARMNET736ac5582e->tv_nsec;if(DATARMNETb64270afc1
>=DATARMNETa67155ba38*DATARMNET68fc0be252){if(DATARMNETecc0627c70.
DATARMNET132b9c7dc4[cpu].DATARMNETe61d62310f>DATARMNETd75e474598[cpu])
DATARMNETd75e474598[cpu]=DATARMNETecc0627c70.DATARMNET132b9c7dc4[cpu].
DATARMNETe61d62310f;DATARMNETecc0627c70.DATARMNET132b9c7dc4[cpu].
DATARMNET251b97a380.tv_sec=DATARMNET2e47295bf1.tv_sec;DATARMNETecc0627c70.
DATARMNET132b9c7dc4[cpu].DATARMNET251b97a380.tv_nsec=DATARMNET2e47295bf1.tv_nsec
;DATARMNETecc0627c70.DATARMNET132b9c7dc4[cpu].DATARMNETe61d62310f=
DATARMNET8a461bad56;}else{DATARMNETecc0627c70.DATARMNET132b9c7dc4[cpu].
DATARMNETe61d62310f+=DATARMNET8a461bad56;}}static void DATARMNETe767554e6e(
struct sk_buff*skb){DATARMNETda96251102(DATARMNET6b317c4c73,DATARMNET43225b7a7c,
(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),skb,
NULL);netif_receive_skb(skb);}static void DATARMNET514ce0bf59(struct sk_buff*skb
){DATARMNETda96251102(DATARMNET6b317c4c73,DATARMNET43225b7a7c,(0x16e8+787-0xc0c)
,(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),skb,NULL);netif_rx_ni(
skb);}static struct sk_buff*DATARMNET0e315f0262(struct sk_buff*skb,u16
DATARMNETf8272cfb41){struct skb_shared_info*shinfo=skb_shinfo(skb);struct
sk_buff*DATARMNET6643e66666,*tmp;u16 gso_size=shinfo->gso_size;u16 gso_segs=
shinfo->gso_segs;unsigned int gso_type=shinfo->gso_type;if(DATARMNETf8272cfb41>=
gso_segs){return NULL;}shinfo->gso_segs=DIV_ROUND_UP(gso_segs,
DATARMNETf8272cfb41);shinfo->gso_size=gso_size*DATARMNETf8272cfb41;
DATARMNET6643e66666=__skb_gso_segment(skb,NETIF_F_SG,false);if(unlikely(
IS_ERR_OR_NULL(DATARMNET6643e66666))){shinfo->gso_size=gso_size;shinfo->gso_segs
=gso_segs;return NULL;}if(DATARMNETf8272cfb41<=(0xd26+209-0xdf6))return
DATARMNET6643e66666;for(tmp=DATARMNET6643e66666;tmp;tmp=tmp->next){struct
skb_shared_info*DATARMNETa7dac37e66=skb_shinfo(tmp);DATARMNETa7dac37e66->
gso_type=gso_type;DATARMNETa7dac37e66->gso_size=gso_size;if(gso_segs>=
DATARMNETf8272cfb41)DATARMNETa7dac37e66->gso_segs=DATARMNETf8272cfb41;else
DATARMNETa7dac37e66->gso_segs=gso_segs;gso_segs-=DATARMNETf8272cfb41;if(gso_segs
<=(0xd26+209-0xdf6)){break;}}return DATARMNET6643e66666;}static void
DATARMNET21243b86ae(struct sk_buff*DATARMNETe08e18123e,u8 DATARMNETf345c1d909,
u16 DATARMNET87636d0152){struct sk_buff*skb=NULL;struct sk_buff*
DATARMNETcebafc57a4=NULL;struct sk_buff*DATARMNET39bcb0d197=NULL;int count=
(0xd2d+202-0xdf7);DATARMNETda96251102(DATARMNET6b317c4c73,DATARMNET43225b7a7c,
(0xd26+209-0xdf6),(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),
DATARMNETe08e18123e,NULL);DATARMNET39bcb0d197=DATARMNET0e315f0262(
DATARMNETe08e18123e,DATARMNET87636d0152);if(DATARMNET39bcb0d197==NULL){if(
DATARMNETf345c1d909==DATARMNET0b15fd8b54)netif_receive_skb(DATARMNETe08e18123e);
else netif_rx(DATARMNETe08e18123e);return;}for((skb=DATARMNET39bcb0d197);skb!=
NULL;skb=DATARMNETcebafc57a4){DATARMNETcebafc57a4=skb->next;skb->hash=
DATARMNETe08e18123e->hash;skb->dev=DATARMNETe08e18123e->dev;skb->next=NULL;if(
DATARMNETf345c1d909==DATARMNET0b15fd8b54)netif_receive_skb(skb);else netif_rx(
skb);count+=(0xd26+209-0xdf6);}consume_skb(DATARMNETe08e18123e);return;}int
DATARMNET2efb1a51c7(struct DATARMNET63d7680df2*node_p){int ret=(0xd2d+202-0xdf7)
;int DATARMNET42c3ecbd5e=(0xd26+209-0xdf6);u16 idx=(0xd2d+202-0xdf7);for(idx=
(0xd2d+202-0xdf7);idx<DATARMNETc6782fed88;idx++){if(node_p->DATARMNET341ea38662
->DATARMNET1a1d89d417&DATARMNET42c3ecbd5e)ret++;DATARMNET42c3ecbd5e=
DATARMNET42c3ecbd5e<<(0xd26+209-0xdf6);}return ret;}u32 DATARMNET8532ab3089(u32
index,u32 DATARMNET0258668025,u32 hash){int DATARMNETebbd4cd1d9[
DATARMNETc6782fed88/(0xd1f+216-0xdf5)]={(0xd35+210-0xdff),(0xd11+230-0xdf3),
(0xd18+223-0xdf4),(0xd1f+216-0xdf5)};u32 ret=(0xd2d+202-0xdf7);if(!
DATARMNET0258668025){DATARMNET68d84e7b98[DATARMNETef8cbfa62f]++;return ret;}if(
DATARMNET0258668025<DATARMNETc6782fed88)ret=((((index+((DATARMNET0258668025%
(0xd1f+216-0xdf5))?(0xd26+209-0xdf6):(0xd2d+202-0xdf7))))<<(0xec7+1122-0x130d))*
DATARMNETebbd4cd1d9[(DATARMNET0258668025-(0xd26+209-0xdf6))>>(0xd26+209-0xdf6)])
|(hash&1048575);DATARMNETda96251102(DATARMNETf3aaad06eb,DATARMNET4e91ddb48a,ret,
hash,index,DATARMNET0258668025,NULL,NULL);return ret;}int DATARMNET762cfa52fe(u8
mask){int ret=DATARMNETb91aee91fd;int DATARMNETd416f5b047=DATARMNETb91aee91fd;
u8 DATARMNET05e5e122cd=(0xd2d+202-0xdf7);u8 i;for(i=(0xd2d+202-0xdf7);i<
DATARMNETc6782fed88;i++){if(!(mask&((0xd26+209-0xdf6)<<i)))continue;if(mask&(
(0xd26+209-0xdf6)<<i))DATARMNET05e5e122cd++;if(list_empty(&DATARMNET0997c5650d[i
].DATARMNET3dc4262f53))return i;if(DATARMNETcff375d916[i]<=DATARMNETd416f5b047||
DATARMNETd416f5b047==DATARMNETb91aee91fd){ret=i;DATARMNETd416f5b047=
DATARMNETcff375d916[i];}}return ret;}static int DATARMNETaef946bb68(u8 index,u8
mask){int ret=DATARMNETb91aee91fd;u8 DATARMNET05e5e122cd=(0xd2d+202-0xdf7);u8 i;
for(i=(0xd2d+202-0xdf7);i<DATARMNETc6782fed88;i++){if(DATARMNET05e5e122cd==index
&&(mask&((0xd26+209-0xdf6)<<i)))return i;if(mask&((0xd26+209-0xdf6)<<i))
DATARMNET05e5e122cd++;}return ret;}static int DATARMNET04e8d1b862(u8 cpu,u8 mask
){int ret=DATARMNETb91aee91fd;u8 idx=(0xd2d+202-0xdf7);u8 i;if(!(mask&
(0xd26+209-0xdf6)<<cpu))return ret;for(i=(0xd2d+202-0xdf7);i<DATARMNETc6782fed88
;i++){if(i==cpu&&(mask&((0xd26+209-0xdf6)<<i))){ret=idx;break;}if(mask&(
(0xd26+209-0xdf6)<<i))idx++;}return ret;}int DATARMNET217fe38119(u64
DATARMNETab155dfd5d,struct net_device*dev){int DATARMNETf54fdb137b=
DATARMNETb91aee91fd;if(DATARMNETab155dfd5d<DATARMNETd82a2ed45e)
DATARMNETf54fdb137b=DATARMNETf181a18009(dev);if(DATARMNETf54fdb137b==
DATARMNETb91aee91fd||DATARMNETab155dfd5d>=DATARMNETd82a2ed45e)
DATARMNETf54fdb137b=DATARMNET98b2a0ce62(dev);DATARMNET52de1f3dc0(
DATARMNET720469c0a9,DATARMNET7e63a08ad4,DATARMNETf54fdb137b,DATARMNETab155dfd5d,
(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),NULL,NULL);return DATARMNETf54fdb137b;}int
DATARMNET6af33ebb5b(struct DATARMNET63d7680df2*DATARMNET63b1a086d5){int cpu=
DATARMNETb91aee91fd;u8 DATARMNETd4a0b11b47;u8 DATARMNET7dc3d97229;if(
DATARMNET63b1a086d5->DATARMNET85c698ec34)return DATARMNETecc0627c70.
DATARMNET5c24e1df05;else if(DATARMNET0997c5650d[DATARMNET63b1a086d5->map_cpu].
DATARMNETef866573e0&&DATARMNET362b15f941(DATARMNET63b1a086d5->map_cpu)){cpu=
DATARMNET762cfa52fe(DATARMNETbc3c416b77&~DATARMNETecc0627c70.DATARMNETba3f7a11ef
&DATARMNET63b1a086d5->DATARMNETfbbec4c537);if(cpu<(0xd2d+202-0xdf7)&&
DATARMNET63b1a086d5->DATARMNET341ea38662!=NULL)cpu=DATARMNET63b1a086d5->
DATARMNET341ea38662->DATARMNET6e1a4eaf09;}else if(DATARMNET63b1a086d5->
DATARMNET341ea38662!=NULL){cpu=DATARMNET63b1a086d5->DATARMNET341ea38662->
DATARMNET6e1a4eaf09;if(((0xd26+209-0xdf6)<<DATARMNET63b1a086d5->map_cpu)&
DATARMNETecc0627c70.DATARMNETba3f7a11ef){DATARMNETd4a0b11b47=(
DATARMNETbc3c416b77&((0xd26+209-0xdf6)<<cpu))?DATARMNETbc3c416b77:
DATARMNET9273f84bf1;cpu=DATARMNET762cfa52fe(DATARMNETd4a0b11b47&~
DATARMNETecc0627c70.DATARMNETba3f7a11ef&DATARMNET63b1a086d5->DATARMNETfbbec4c537
);DATARMNETb7ddf3c5dd[DATARMNET7f401828b3]++;}else if(((0xd26+209-0xdf6)<<cpu)&
DATARMNETecc0627c70.DATARMNETba3f7a11ef){DATARMNETd4a0b11b47=(
DATARMNETbc3c416b77&((0xd26+209-0xdf6)<<cpu))?DATARMNETbc3c416b77:
DATARMNET9273f84bf1;DATARMNET7dc3d97229=(DATARMNETbc3c416b77&((0xd26+209-0xdf6)
<<DATARMNET63b1a086d5->map_cpu))?DATARMNETbc3c416b77:DATARMNET9273f84bf1;if(
DATARMNETd4a0b11b47!=DATARMNET7dc3d97229)cpu=DATARMNET762cfa52fe(
DATARMNETd4a0b11b47&~DATARMNETecc0627c70.DATARMNETba3f7a11ef&DATARMNET63b1a086d5
->DATARMNETfbbec4c537);else cpu=DATARMNET63b1a086d5->map_cpu;}}return cpu;}int
DATARMNETb6bff4a724(struct DATARMNET63d7680df2*DATARMNET63b1a086d5){int cpu,idx=
DATARMNETb91aee91fd;cpu=DATARMNET6af33ebb5b(DATARMNET63b1a086d5);idx=
DATARMNET04e8d1b862(cpu,DATARMNET63b1a086d5->DATARMNETfbbec4c537);if(unlikely(
idx<(0xd2d+202-0xdf7)))idx=DATARMNET04e8d1b862(DATARMNET63b1a086d5->map_cpu,
DATARMNET63b1a086d5->DATARMNETfbbec4c537);DATARMNETda96251102(
DATARMNETf3aaad06eb,DATARMNETf2fc7954d4,DATARMNET63b1a086d5->hash,cpu,idx,
(0x16e8+787-0xc0c),DATARMNET63b1a086d5,NULL);return idx;}static int
DATARMNET2af09ccd0b(int cpu,int DATARMNET63a222ae1f,int DATARMNETea08087fc0){int
ret=(0xd2d+202-0xdf7);if(DATARMNETecc0627c70.DATARMNET132b9c7dc4[cpu].
DATARMNETe61d62310f>=DATARMNET65393dea13[cpu]){ret=DATARMNET0efbbe2821;}if(
DATARMNET63a222ae1f&&((DATARMNETeea3cef5b6(cpu)+DATARMNETea08087fc0)>=
DATARMNETbc049ffc4c[cpu]))ret=DATARMNETa4267dfd8a;return ret;}void
DATARMNET349c3a0cab(u16 map_cpu,bool DATARMNETb639f6e1b1){if(map_cpu<
DATARMNETc6782fed88)(DATARMNETb639f6e1b1)?DATARMNETcff375d916[map_cpu]++:
DATARMNETcff375d916[map_cpu]--;else DATARMNET68d84e7b98[DATARMNETcc0ef52ccb]++;}
void DATARMNETb1157fd5c4(u8 DATARMNET42a992465f){if(DATARMNET42a992465f>=
DATARMNETc6782fed88)return;rcu_read_lock();DATARMNET0997c5650d[
DATARMNET42a992465f].DATARMNETae196235f2=DATARMNET9c1c20df35(softnet_data,
DATARMNET42a992465f);DATARMNET0997c5650d[DATARMNET42a992465f].qtail=
DATARMNET78ec5e8746(softnet_data,DATARMNET42a992465f);rcu_read_unlock();
DATARMNET0997c5650d[DATARMNET42a992465f].DATARMNET96571b28de=DATARMNET0997c5650d
[DATARMNET42a992465f].qtail-DATARMNET0997c5650d[DATARMNET42a992465f].
DATARMNETae196235f2;DATARMNETda96251102(DATARMNET75d955c408,DATARMNET5874e1ecd7,
DATARMNET42a992465f,DATARMNET0997c5650d[DATARMNET42a992465f].DATARMNETae196235f2
,DATARMNET0997c5650d[DATARMNET42a992465f].qtail,(0x16e8+787-0xc0c),NULL,NULL);}
void DATARMNETe074a09496(void){u8 DATARMNET42a992465f;rcu_read_lock();for(
DATARMNET42a992465f=(0xd2d+202-0xdf7);DATARMNET42a992465f<DATARMNETc6782fed88;
DATARMNET42a992465f++){if(!cpu_online(DATARMNET42a992465f))continue;
DATARMNETb1157fd5c4(DATARMNET42a992465f);DATARMNETda96251102(DATARMNET75d955c408
,DATARMNET5874e1ecd7,DATARMNET42a992465f,DATARMNET0997c5650d[DATARMNET42a992465f
].DATARMNETae196235f2,DATARMNET0997c5650d[DATARMNET42a992465f].qtail,
(0x16e8+787-0xc0c),NULL,NULL);}rcu_read_unlock();}int DATARMNET765b8ecfba(struct
net_device*dev,u8 cpu,u8 DATARMNET5780499e9c){if(rmnet_is_real_dev_registered(
dev)){if(DATARMNET713da9913c(dev->_rx,cpu,raw_smp_processor_id(),
DATARMNET5780499e9c)==(0xd2d+202-0xdf7)){RCU_INIT_POINTER(rmnet_shs_switch,NULL)
;if(((0xd26+209-0xdf6)<<cpu)&DATARMNETbc3c416b77)DATARMNETb7ddf3c5dd[
DATARMNETf13db5ace8]++;else DATARMNETb7ddf3c5dd[DATARMNETb6eae1e097]++;
DATARMNETecc0627c70.DATARMNETba3f7a11ef=(0xd26+209-0xdf6)<<cpu;
DATARMNETecc0627c70.DATARMNET7d667e828e=cpu;}else{return-(0xd26+209-0xdf6);}}
else{DATARMNET68d84e7b98[DATARMNET767c76ca08]++;}return(0xd2d+202-0xdf7);}int
DATARMNETe488c1c396(struct DATARMNET63d7680df2*DATARMNET63b1a086d5,u8
DATARMNETd87669e323,u8 DATARMNET5447204733){int DATARMNET5c4a331b9c;u32
DATARMNETd3673fd5f0;u32 DATARMNET9bbfe49633;int ret=(0xd2d+202-0xdf7);int
DATARMNET5a2e9192f9=-(0xd26+209-0xdf6);int DATARMNET8ceb7a8cc9;int
DATARMNET42a992465f;int DATARMNETcfb5dc7296;int DATARMNETeaf6716f3e;struct
DATARMNETe600c5b727*DATARMNET373e474754;u8 map=DATARMNET63b1a086d5->
DATARMNETfbbec4c537;DATARMNET5c4a331b9c=DATARMNETb6bff4a724(DATARMNET63b1a086d5)
;do{DATARMNET5a2e9192f9=DATARMNET63b1a086d5->map_cpu;if(DATARMNET5c4a331b9c<
(0xd2d+202-0xdf7)){DATARMNET63b1a086d5->DATARMNET6250e93187=(0xd2d+202-0xdf7);
ret=(0xd26+209-0xdf6);break;}DATARMNET63b1a086d5->DATARMNET6250e93187=
(0xd26+209-0xdf6);if(!map){DATARMNET63b1a086d5->DATARMNET6250e93187=
(0xd2d+202-0xdf7);ret=(0xd26+209-0xdf6);break;}if(DATARMNET5c4a331b9c==
DATARMNET63b1a086d5->map_index){ret=(0xd26+209-0xdf6);break;}DATARMNETd3673fd5f0
=DATARMNETadb0248bd4(DATARMNET63b1a086d5->map_cpu);DATARMNET9bbfe49633=
DATARMNET63b1a086d5->queue_head;DATARMNET42a992465f=DATARMNET63b1a086d5->map_cpu
;DATARMNETeaf6716f3e=DATARMNET3de2536baf(DATARMNET42a992465f).qlen+
DATARMNET832731a933(DATARMNET42a992465f).qlen;if((DATARMNET63b1a086d5->
DATARMNET85c698ec34&&(!DATARMNETeaf6716f3e))||(!DATARMNET63b1a086d5->
DATARMNET85c698ec34&&DATARMNETd3673fd5f0>=DATARMNET9bbfe49633)||(
DATARMNETd87669e323)){if(likely(DATARMNETa7909611da)){if(DATARMNET63b1a086d5->
DATARMNET85c698ec34&&!((DATARMNET765b8ecfba(DATARMNET63b1a086d5->dev,
DATARMNET5c4a331b9c,DATARMNETd87669e323)==(0xd2d+202-0xdf7)))){ret=
(0xd26+209-0xdf6);break;}DATARMNETcfb5dc7296=DATARMNETaef946bb68(
DATARMNET5c4a331b9c,DATARMNET63b1a086d5->DATARMNETfbbec4c537);if(
DATARMNETcfb5dc7296<(0xd2d+202-0xdf7)){ret=(0xd26+209-0xdf6);break;}
DATARMNET0997c5650d[DATARMNETcfb5dc7296].DATARMNET4133fc9428+=
DATARMNET63b1a086d5->DATARMNETae4b27456e.DATARMNET6215127f48;DATARMNET0997c5650d
[DATARMNET63b1a086d5->map_cpu].DATARMNET4133fc9428-=DATARMNET63b1a086d5->
DATARMNETae4b27456e.DATARMNET6215127f48;DATARMNET63b1a086d5->map_index=
DATARMNET5c4a331b9c;DATARMNET63b1a086d5->map_cpu=DATARMNETcfb5dc7296;
DATARMNET8ceb7a8cc9=DATARMNET63b1a086d5->map_cpu;if(DATARMNETd3673fd5f0<
DATARMNET9bbfe49633){DATARMNETb7ddf3c5dd[DATARMNET28bb261646]++;
DATARMNETb7ddf3c5dd[DATARMNET67b67dc88f]+=(DATARMNET9bbfe49633-
DATARMNETd3673fd5f0);DATARMNET4bde88919f(DATARMNET42a992465f,DATARMNET9bbfe49633
-DATARMNETd3673fd5f0);}if(DATARMNET63b1a086d5->DATARMNET341ea38662)
DATARMNET63b1a086d5->DATARMNET341ea38662->DATARMNET6e1a4eaf09=
DATARMNET8ceb7a8cc9;if(DATARMNET0997c5650d[DATARMNET42a992465f].
DATARMNETef866573e0){DATARMNET0997c5650d[DATARMNET8ceb7a8cc9].
DATARMNET1e1f197118=(0xd26+209-0xdf6);DATARMNETb7ddf3c5dd[DATARMNETc3bce05be2]++
;}else{DATARMNETb7ddf3c5dd[DATARMNET14067f0be4]++;}DATARMNET373e474754=&
DATARMNET0997c5650d[DATARMNET63b1a086d5->map_cpu];DATARMNETe074a09496();
DATARMNET63b1a086d5->queue_head=DATARMNET373e474754->DATARMNETae196235f2;
DATARMNET63b1a086d5->queue_head+=DATARMNET63b1a086d5->DATARMNETae4b27456e.
DATARMNET6215127f48;DATARMNETe102b3a798(DATARMNET63b1a086d5,&DATARMNET373e474754
->DATARMNET3dc4262f53,DATARMNET42a992465f);DATARMNET52de1f3dc0(
DATARMNET4510abc30d,DATARMNET052f49b190,DATARMNET63b1a086d5->map_cpu,
DATARMNET5a2e9192f9,(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),DATARMNET63b1a086d5,
NULL);}ret=(0xd26+209-0xdf6);}}while((0xd2d+202-0xdf7));DATARMNETda96251102(
DATARMNET4510abc30d,DATARMNET23b8465daf,ret,DATARMNET63b1a086d5->map_cpu,
DATARMNET5a2e9192f9,(0x16e8+787-0xc0c),DATARMNET63b1a086d5,NULL);return ret;}
void DATARMNETfbc06e60f1(u8 DATARMNET42a992465f){struct DATARMNET63d7680df2*
DATARMNET3f85732c70;struct list_head*DATARMNET7b34b7b5be,*next;unsigned long
ht_flags;u32 DATARMNET61ab18a4bd;u32 DATARMNETed7800fc72=(0xd2d+202-0xdf7);u32
DATARMNETa0df5de99d=(0xd2d+202-0xdf7);u32 DATARMNET8bf94cc2f7=(0xd2d+202-0xdf7);
u32 DATARMNET76192fa639=(0xd2d+202-0xdf7);DATARMNETe074a09496();
DATARMNET52de1f3dc0(DATARMNET4510abc30d,DATARMNETde91850c28,DATARMNETecc0627c70.
DATARMNETa2e32cdd3a,DATARMNETecc0627c70.DATARMNETc252a1f55d,(0x16e8+787-0xc0c),
(0x16e8+787-0xc0c),NULL,NULL);local_bh_disable();spin_lock_irqsave(&
DATARMNET3764d083f0,ht_flags);DATARMNET61ab18a4bd=DATARMNETeb3978575d(
DATARMNET42a992465f);list_for_each_safe(DATARMNET7b34b7b5be,next,&
DATARMNET0997c5650d[DATARMNET42a992465f].DATARMNET3dc4262f53){
DATARMNET3f85732c70=list_entry(DATARMNET7b34b7b5be,struct DATARMNET63d7680df2,
DATARMNET04c88b8191);if(DATARMNET3f85732c70->DATARMNETae4b27456e.
DATARMNET6215127f48){DATARMNETed7800fc72=DATARMNET3f85732c70->
DATARMNETae4b27456e.DATARMNET6215127f48;DATARMNETa0df5de99d=DATARMNET3f85732c70
->DATARMNETae4b27456e.DATARMNETbaa5765693;DATARMNETe02152c351(
DATARMNET3f85732c70,(0xd26+209-0xdf6),DATARMNET5b5927fd7e);DATARMNET8bf94cc2f7+=
DATARMNETed7800fc72;DATARMNET76192fa639+=DATARMNETa0df5de99d;if(
DATARMNET3f85732c70->map_cpu==DATARMNET42a992465f){DATARMNET61ab18a4bd+=
DATARMNETed7800fc72;DATARMNET3f85732c70->queue_head=DATARMNET61ab18a4bd;}}}
DATARMNETecc0627c70.DATARMNETc252a1f55d-=DATARMNET76192fa639;DATARMNETecc0627c70
.DATARMNETa2e32cdd3a-=DATARMNET8bf94cc2f7;DATARMNET0997c5650d[
DATARMNET42a992465f].DATARMNETef866573e0=(0xd2d+202-0xdf7);DATARMNETecc0627c70.
DATARMNET132b9c7dc4[DATARMNET42a992465f].DATARMNETe61d62310f=(0xd2d+202-0xdf7);
DATARMNET0997c5650d[DATARMNET42a992465f].DATARMNET4133fc9428=(0xd2d+202-0xdf7);
spin_unlock_irqrestore(&DATARMNET3764d083f0,ht_flags);local_bh_enable();
DATARMNET52de1f3dc0(DATARMNET4510abc30d,DATARMNET576793621a,DATARMNETecc0627c70.
DATARMNETa2e32cdd3a,DATARMNETecc0627c70.DATARMNETc252a1f55d,DATARMNET8bf94cc2f7,
DATARMNET76192fa639,NULL,NULL);}static void DATARMNET056c939591(struct
work_struct*DATARMNET33110a3ff5){struct DATARMNETa6f2d499b2*DATARMNET4b39dc1574=
container_of(DATARMNET33110a3ff5,struct DATARMNETa6f2d499b2,DATARMNET33110a3ff5)
;DATARMNETfbc06e60f1(DATARMNET4b39dc1574->DATARMNET42c3ecbd5e);
DATARMNET14ed771dfb[DATARMNETbb5757569c]++;}void DATARMNETcba2f7f7b6(struct
DATARMNET63d7680df2*DATARMNET63b1a086d5,u8 DATARMNETf345c1d909){struct sk_buff*
skb=NULL;struct sk_buff*DATARMNETcebafc57a4=NULL;u32 DATARMNETe20a9cab2b=
(0xd2d+202-0xdf7);u32 DATARMNETb481d13a78=(0xd2d+202-0xdf7);u32
DATARMNET1fcbf046ec=(0xd2d+202-0xdf7);u8 map=(0xd2d+202-0xdf7),
DATARMNET0258668025=(0xd2d+202-0xdf7);u16 DATARMNET87636d0152=(0xd2d+202-0xdf7);
u16 index;if(!DATARMNET63b1a086d5->DATARMNETae4b27456e.head)return;if(!
DATARMNET63b1a086d5->DATARMNETfbbec4c537){map=DATARMNETecc0627c70.map_mask;
DATARMNET0258668025=DATARMNETecc0627c70.map_len;index=DATARMNET63b1a086d5->
map_index;}else{map=DATARMNET63b1a086d5->DATARMNETfbbec4c537;DATARMNET0258668025
=DATARMNET63b1a086d5->DATARMNETa59ce1fd2d;index=DATARMNET63b1a086d5->map_index;}
if(map){DATARMNET1fcbf046ec=DATARMNET8532ab3089(index,DATARMNET0258668025,
DATARMNET63b1a086d5->DATARMNETae4b27456e.head->hash);}else{DATARMNET63b1a086d5->
DATARMNET6250e93187=(0xd2d+202-0xdf7);}DATARMNET52de1f3dc0(DATARMNET4510abc30d,
DATARMNETe4ee0d2636,DATARMNET63b1a086d5->hash,DATARMNET1fcbf046ec,
DATARMNET63b1a086d5->DATARMNETae4b27456e.DATARMNET6215127f48,DATARMNET63b1a086d5
->DATARMNETae4b27456e.DATARMNETbaa5765693,DATARMNET63b1a086d5,
DATARMNET63b1a086d5->DATARMNETae4b27456e.head);DATARMNET87636d0152=(u16)
DATARMNET63b1a086d5->DATARMNET341ea38662->DATARMNET87636d0152;for((skb=
DATARMNET63b1a086d5->DATARMNETae4b27456e.head);skb!=NULL;skb=DATARMNETcebafc57a4
){DATARMNETcebafc57a4=skb->next;if(DATARMNET63b1a086d5->DATARMNET6250e93187)skb
->hash=DATARMNET1fcbf046ec;skb->next=NULL;DATARMNETe20a9cab2b+=(0xd26+209-0xdf6)
;DATARMNETb481d13a78+=skb->len;if(DATARMNET87636d0152>(0xd2d+202-0xdf7)){if(
DATARMNET63b1a086d5->DATARMNET1e9d25d9ff==IPPROTO_UDP)DATARMNET68d84e7b98[
DATARMNETdd6bf3de6b]++;DATARMNET21243b86ae(skb,DATARMNETf345c1d909,
DATARMNET87636d0152);}else{if(DATARMNETf345c1d909==DATARMNET0b15fd8b54&&(!
DATARMNET63b1a086d5->DATARMNET85c698ec34))DATARMNETe767554e6e(skb);else if(
DATARMNETf345c1d909==DATARMNET5b5927fd7e&&!DATARMNET63b1a086d5->
DATARMNET85c698ec34)DATARMNETe767554e6e(skb);else DATARMNET514ce0bf59(skb);}}
DATARMNET63b1a086d5->DATARMNETae4b27456e.DATARMNET6215127f48=(0xd2d+202-0xdf7);
DATARMNET63b1a086d5->DATARMNETae4b27456e.DATARMNETbaa5765693=(0xd2d+202-0xdf7);
DATARMNET63b1a086d5->DATARMNETae4b27456e.head=NULL;DATARMNET63b1a086d5->
DATARMNETae4b27456e.tail=NULL;DATARMNET52de1f3dc0(DATARMNET4510abc30d,
DATARMNETfb753e521e,DATARMNET63b1a086d5->hash,DATARMNET1fcbf046ec,
DATARMNETe20a9cab2b,DATARMNETb481d13a78,DATARMNET63b1a086d5,NULL);}void
DATARMNET23c7ddd780(struct DATARMNET63d7680df2*DATARMNET63b1a086d5,u8
DATARMNET5447204733){struct sk_buff*skb;struct sk_buff*DATARMNETcebafc57a4=NULL;
u32 DATARMNETe20a9cab2b=(0xd2d+202-0xdf7);u32 DATARMNETb481d13a78=
(0xd2d+202-0xdf7);u32 DATARMNET1fcbf046ec;u8 map,DATARMNET0258668025;if(!
DATARMNET63b1a086d5->DATARMNETae4b27456e.head)return;map=DATARMNET63b1a086d5->
DATARMNETfbbec4c537;DATARMNET0258668025=DATARMNET63b1a086d5->DATARMNETa59ce1fd2d
;if(map){DATARMNET1fcbf046ec=DATARMNET8532ab3089(DATARMNET63b1a086d5->map_index,
DATARMNET0258668025,DATARMNET63b1a086d5->DATARMNETae4b27456e.head->hash);}else{
DATARMNET63b1a086d5->DATARMNET6250e93187=(0xd2d+202-0xdf7);}for((skb=
DATARMNET63b1a086d5->DATARMNETae4b27456e.head);skb!=NULL;skb=DATARMNETcebafc57a4
){DATARMNETcebafc57a4=skb->next;if(DATARMNET63b1a086d5->DATARMNET6250e93187)skb
->hash=DATARMNET1fcbf046ec;skb->next=NULL;DATARMNETe20a9cab2b+=(0xd26+209-0xdf6)
;DATARMNETb481d13a78+=skb->len;if(DATARMNET5447204733==DATARMNET0b15fd8b54&&(!
DATARMNET63b1a086d5->DATARMNET85c698ec34))DATARMNETe767554e6e(skb);else if(
DATARMNET5447204733==DATARMNET5b5927fd7e&&!DATARMNET63b1a086d5->
DATARMNET85c698ec34)DATARMNETe767554e6e(skb);else DATARMNET514ce0bf59(skb);}
DATARMNET68d84e7b98[DATARMNET72db8b9bac]++;DATARMNETecc0627c70.
DATARMNETc252a1f55d-=DATARMNETb481d13a78;DATARMNETecc0627c70.DATARMNETa2e32cdd3a
-=DATARMNETe20a9cab2b;DATARMNET0997c5650d[DATARMNET63b1a086d5->map_cpu].
DATARMNET4133fc9428-=DATARMNETe20a9cab2b;}int DATARMNETe02152c351(struct
DATARMNET63d7680df2*DATARMNET63b1a086d5,u8 DATARMNETd87669e323,u8
DATARMNET5447204733){int DATARMNETbd864aa442=(0xd2d+202-0xdf7);int map=
DATARMNET63b1a086d5->DATARMNETfbbec4c537;int DATARMNET5643f7b5e9;
DATARMNET52de1f3dc0(DATARMNET4510abc30d,DATARMNET022082b219,DATARMNETd87669e323,
DATARMNET5447204733,(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),DATARMNET63b1a086d5,
NULL);if(DATARMNETaef946bb68(DATARMNET63b1a086d5->map_index,map)!=
DATARMNET63b1a086d5->map_cpu){DATARMNET5643f7b5e9=DATARMNET04e8d1b862(
DATARMNET63b1a086d5->map_cpu,map);if(DATARMNET5643f7b5e9>=(0xd2d+202-0xdf7)){
DATARMNET63b1a086d5->map_index=DATARMNET5643f7b5e9;DATARMNET63b1a086d5->map_cpu=
DATARMNETaef946bb68(DATARMNET5643f7b5e9,map);}else{DATARMNET63b1a086d5->
map_index=DATARMNET2edff26954;DATARMNET63b1a086d5->map_cpu=DATARMNETaef946bb68(
DATARMNET2edff26954,map);if(DATARMNET63b1a086d5->map_cpu<(0xd2d+202-0xdf7))
DATARMNET63b1a086d5->map_cpu=DATARMNET2edff26954;}DATARMNETd87669e323=
(0xd26+209-0xdf6);DATARMNET68d84e7b98[DATARMNETa1f9420686]++;DATARMNET015fb2ba0e
(DATARMNET720469c0a9,DATARMNET998c6de143,(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),
(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),NULL,NULL);}if(DATARMNETe488c1c396(
DATARMNET63b1a086d5,DATARMNETd87669e323,DATARMNET5447204733)){
DATARMNETcba2f7f7b6(DATARMNET63b1a086d5,DATARMNET5447204733);DATARMNETbd864aa442
=(0xd26+209-0xdf6);}DATARMNET52de1f3dc0(DATARMNET4510abc30d,DATARMNET64b02f64c6,
DATARMNETbd864aa442,DATARMNETd87669e323,(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),
DATARMNET63b1a086d5,NULL);return DATARMNETbd864aa442;}static void
DATARMNETc54e431bbc(u8 DATARMNET42a992465f,u8 DATARMNET7845d39672,u32
DATARMNETea08087fc0){u32 DATARMNETba6017a3a9=(!DATARMNET227d2ff866)?
(0xd26+209-0xdf6):DATARMNET227d2ff866;int DATARMNETd9d8392917;if((
DATARMNETd9d8392917=DATARMNET2af09ccd0b(DATARMNET42a992465f,DATARMNET7845d39672,
DATARMNETea08087fc0))&&DATARMNET362b15f941(DATARMNET42a992465f)&&!
DATARMNET0997c5650d[DATARMNET42a992465f].DATARMNETef866573e0){
DATARMNETba6017a3a9=(!DATARMNET7845d39672)?DATARMNET249a927510:
DATARMNETba6017a3a9;DATARMNET0997c5650d[DATARMNET42a992465f].DATARMNETef866573e0
=(0xd26+209-0xdf6);DATARMNETfb7007f025();if(hrtimer_active(&DATARMNETba5ea4329f(
DATARMNET42a992465f)))hrtimer_cancel(&DATARMNETba5ea4329f(DATARMNET42a992465f));
hrtimer_start(&DATARMNETba5ea4329f(DATARMNET42a992465f),ns_to_ktime(
DATARMNETba6017a3a9*DATARMNET68fc0be252),HRTIMER_MODE_REL);DATARMNETb7ddf3c5dd[
DATARMNETd9d8392917]++;}}void DATARMNETe377e0368d(u8 DATARMNETded3da1a77,u8
DATARMNET5447204733){struct DATARMNET63d7680df2*DATARMNET3f85732c70=NULL;struct
list_head*DATARMNET7b34b7b5be=NULL,*next=NULL;int DATARMNET42a992465f;u32
DATARMNET61ab18a4bd;u32 DATARMNETed7800fc72=(0xd2d+202-0xdf7);u32
DATARMNETa0df5de99d=(0xd2d+202-0xdf7);u32 DATARMNETe56f4fbbe6=(0xd2d+202-0xdf7);
u32 DATARMNET8bf94cc2f7=(0xd2d+202-0xdf7);u32 DATARMNET76192fa639=
(0xd2d+202-0xdf7);u32 DATARMNET870611bedd=(0xd2d+202-0xdf7);u32
DATARMNETa6424e3c4e=(0xd2d+202-0xdf7);u8 DATARMNET77e7f4db43=(0xd2d+202-0xdf7);
DATARMNETe074a09496();DATARMNET52de1f3dc0(DATARMNET4510abc30d,
DATARMNETde91850c28,DATARMNETecc0627c70.DATARMNETa2e32cdd3a,DATARMNETecc0627c70.
DATARMNETc252a1f55d,(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),NULL,NULL);for(
DATARMNET42a992465f=(0xd2d+202-0xdf7);DATARMNET42a992465f<DATARMNETc6782fed88;
DATARMNET42a992465f++){DATARMNET61ab18a4bd=DATARMNETeb3978575d(
DATARMNET42a992465f);DATARMNET870611bedd=(0xd2d+202-0xdf7);DATARMNETe56f4fbbe6=
(0xd2d+202-0xdf7);list_for_each_safe(DATARMNET7b34b7b5be,next,&
DATARMNET0997c5650d[DATARMNET42a992465f].DATARMNET3dc4262f53){
DATARMNET3f85732c70=list_entry(DATARMNET7b34b7b5be,struct DATARMNET63d7680df2,
DATARMNET04c88b8191);DATARMNETe56f4fbbe6+=DATARMNET3f85732c70->
DATARMNETae4b27456e.DATARMNET35234676d4;}if(DATARMNET12565c8f98){
DATARMNETc54e431bbc(DATARMNET42a992465f,DATARMNET20dc6bb36b,DATARMNETe56f4fbbe6)
;}list_for_each_safe(DATARMNET7b34b7b5be,next,&DATARMNET0997c5650d[
DATARMNET42a992465f].DATARMNET3dc4262f53){DATARMNET3f85732c70=list_entry(
DATARMNET7b34b7b5be,struct DATARMNET63d7680df2,DATARMNET04c88b8191);if(
DATARMNET3f85732c70->DATARMNETae4b27456e.DATARMNET6215127f48){
DATARMNETed7800fc72=DATARMNET3f85732c70->DATARMNETae4b27456e.DATARMNET6215127f48
;DATARMNETa0df5de99d=DATARMNET3f85732c70->DATARMNETae4b27456e.
DATARMNETbaa5765693;DATARMNETa6424e3c4e=DATARMNET3f85732c70->DATARMNETae4b27456e
.DATARMNET35234676d4;DATARMNET77e7f4db43=DATARMNETe02152c351(DATARMNET3f85732c70
,DATARMNETded3da1a77,DATARMNET5447204733);if(DATARMNET77e7f4db43){
DATARMNET870611bedd+=DATARMNETa6424e3c4e;DATARMNET8bf94cc2f7+=
DATARMNETed7800fc72;DATARMNET76192fa639+=DATARMNETa0df5de99d;DATARMNET0997c5650d
[DATARMNET3f85732c70->map_cpu].DATARMNET4133fc9428-=DATARMNETed7800fc72;
DATARMNET3f85732c70->DATARMNETae4b27456e.DATARMNET35234676d4=(0xd2d+202-0xdf7);
if(DATARMNET3f85732c70->map_cpu==DATARMNET42a992465f){DATARMNET61ab18a4bd+=
DATARMNETed7800fc72;DATARMNET3f85732c70->queue_head=DATARMNET61ab18a4bd;}}}}if(
DATARMNET12565c8f98){if(DATARMNET362b15f941(DATARMNET42a992465f)&&!
DATARMNET0997c5650d[DATARMNET42a992465f].DATARMNETef866573e0)DATARMNETfa919d00dc
(DATARMNET42a992465f,DATARMNET870611bedd);DATARMNETc54e431bbc(
DATARMNET42a992465f,DATARMNET20dc6bb36b,(0xd2d+202-0xdf7));}if(
DATARMNET0997c5650d[DATARMNET42a992465f].DATARMNET4133fc9428<(0xd2d+202-0xdf7))
DATARMNET68d84e7b98[DATARMNET33a9d4759f]++;if(DATARMNETeea3cef5b6(
DATARMNET42a992465f)>=DATARMNET84413d1257[DATARMNET42a992465f])
DATARMNET84413d1257[DATARMNET42a992465f]=DATARMNETeea3cef5b6(DATARMNET42a992465f
);}DATARMNETecc0627c70.DATARMNETc252a1f55d-=DATARMNET76192fa639;
DATARMNETecc0627c70.DATARMNETa2e32cdd3a-=DATARMNET8bf94cc2f7;DATARMNET52de1f3dc0
(DATARMNET4510abc30d,DATARMNET576793621a,DATARMNETecc0627c70.DATARMNETa2e32cdd3a
,DATARMNETecc0627c70.DATARMNETc252a1f55d,DATARMNET8bf94cc2f7,DATARMNET76192fa639
,NULL,NULL);if((DATARMNETecc0627c70.DATARMNETc252a1f55d<=(0xd2d+202-0xdf7))||(
DATARMNETecc0627c70.DATARMNETa2e32cdd3a<=(0xd2d+202-0xdf7))){DATARMNETecc0627c70
.DATARMNETc252a1f55d=(0xd2d+202-0xdf7);DATARMNETecc0627c70.DATARMNETa2e32cdd3a=
(0xd2d+202-0xdf7);DATARMNETecc0627c70.DATARMNETd9cfd2812b=(0xd2d+202-0xdf7);
DATARMNETecc0627c70.DATARMNET34097703c8=DATARMNET8dcf06727b;if(
DATARMNET365ddeca1c){if(hrtimer_active(&DATARMNETecc0627c70.DATARMNET6fd692fc7a)
)hrtimer_cancel(&DATARMNETecc0627c70.DATARMNET6fd692fc7a);}}}void
DATARMNETa4bf9fbf64(u8 DATARMNETded3da1a77,u8 DATARMNET5447204733){unsigned long
ht_flags;spin_lock_irqsave(&DATARMNET3764d083f0,ht_flags);DATARMNETe377e0368d(
DATARMNETded3da1a77,DATARMNET5447204733);if(DATARMNET5447204733==
DATARMNET5b5927fd7e){if(DATARMNET365ddeca1c&&DATARMNETecc0627c70.
DATARMNETc252a1f55d&&DATARMNETecc0627c70.DATARMNETa2e32cdd3a){if(hrtimer_active(
&DATARMNETecc0627c70.DATARMNET6fd692fc7a))hrtimer_cancel(&DATARMNETecc0627c70.
DATARMNET6fd692fc7a);hrtimer_start(&DATARMNETecc0627c70.DATARMNET6fd692fc7a,
ns_to_ktime(DATARMNET4ac8af832c*DATARMNET68fc0be252),HRTIMER_MODE_REL);}
DATARMNET14ed771dfb[DATARMNETd45c383019]++;}spin_unlock_irqrestore(&
DATARMNET3764d083f0,ht_flags);}void DATARMNET495dab3d72(struct sk_buff*skb,
struct DATARMNET63d7680df2*DATARMNET63b1a086d5,struct rmnet_shs_clnt_s*
DATARMNET0bf01e7c6f){u8 DATARMNET7d63e92341=(0xd2d+202-0xdf7);
#ifdef DATARMNETdddae6afa8
if(!(DATARMNET0bf01e7c6f->config&DATARMNET2a76d433b3)&&skb->cb[
DATARMNET8fadb49f38]){DATARMNETe377e0368d((0xd2d+202-0xdf7),DATARMNET0b15fd8b54)
;DATARMNET14ed771dfb[DATARMNETc8058e2cff]++;DATARMNET7d63e92341=
(0xd26+209-0xdf6);}
#endif
if(skb_shinfo(skb)->gso_segs){DATARMNET63b1a086d5->DATARMNET11930c5df8+=
skb_shinfo(skb)->gso_segs;DATARMNET0997c5650d[DATARMNET63b1a086d5->map_cpu].
DATARMNET4133fc9428++;DATARMNET63b1a086d5->DATARMNETae4b27456e.
DATARMNET35234676d4+=skb_shinfo(skb)->gso_segs;}else{DATARMNET63b1a086d5->
DATARMNET11930c5df8+=(0xd26+209-0xdf6);DATARMNET0997c5650d[DATARMNET63b1a086d5->
map_cpu].DATARMNET4133fc9428++;DATARMNET63b1a086d5->DATARMNETae4b27456e.
DATARMNET35234676d4++;}DATARMNET63b1a086d5->DATARMNETa8940e4a7b+=
(0xd26+209-0xdf6);DATARMNET63b1a086d5->DATARMNET2594c418db+=skb->len;
DATARMNET63b1a086d5->DATARMNETae4b27456e.DATARMNETbaa5765693+=skb->len;
DATARMNETecc0627c70.DATARMNETc252a1f55d+=skb->len;if(DATARMNET63b1a086d5->
DATARMNETae4b27456e.DATARMNET6215127f48>(0xd2d+202-0xdf7)){DATARMNET63b1a086d5->
DATARMNETae4b27456e.tail->next=skb;DATARMNET63b1a086d5->DATARMNETae4b27456e.tail
=DATARMNET63b1a086d5->DATARMNETae4b27456e.tail->next;}else{DATARMNET63b1a086d5->
DATARMNETae4b27456e.head=skb;DATARMNET63b1a086d5->DATARMNETae4b27456e.tail=skb;}
DATARMNET63b1a086d5->DATARMNETae4b27456e.DATARMNET6215127f48+=(0xd26+209-0xdf6);
DATARMNETecc0627c70.DATARMNETa2e32cdd3a+=(0xd26+209-0xdf6);if(unlikely(
DATARMNET7d63e92341))DATARMNETe377e0368d((0xd2d+202-0xdf7),DATARMNET0b15fd8b54);
DATARMNET52de1f3dc0(DATARMNET720469c0a9,DATARMNETf5c836f9ae,DATARMNET63b1a086d5
->DATARMNETae4b27456e.DATARMNET6215127f48,DATARMNET63b1a086d5->
DATARMNETae4b27456e.DATARMNETbaa5765693,DATARMNETecc0627c70.DATARMNETa2e32cdd3a,
DATARMNETecc0627c70.DATARMNETc252a1f55d,skb,DATARMNET63b1a086d5);}static void
DATARMNETa7afc8cdaa(struct work_struct*DATARMNET33110a3ff5){u8
DATARMNET665469cfb6=(0xd2d+202-0xdf7);DATARMNET52de1f3dc0(DATARMNET4510abc30d,
DATARMNET816bb1e327,DATARMNET665469cfb6,DATARMNETecc0627c70.DATARMNET34097703c8,
(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),NULL,NULL);if(DATARMNETecc0627c70.
DATARMNETa2e32cdd3a&&DATARMNETecc0627c70.DATARMNET34097703c8==
DATARMNETb3e3b2a799){local_bh_disable();DATARMNETa4bf9fbf64(DATARMNET665469cfb6,
DATARMNET5b5927fd7e);local_bh_enable();}DATARMNET52de1f3dc0(DATARMNET4510abc30d,
DATARMNETf311f20c00,DATARMNET665469cfb6,(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),
(0x16e8+787-0xc0c),NULL,NULL);}enum hrtimer_restart DATARMNET0a73c53ae6(struct
hrtimer*DATARMNET6e4292679f){enum hrtimer_restart ret=HRTIMER_NORESTART;
DATARMNET52de1f3dc0(DATARMNET4510abc30d,DATARMNET237e7bd5f6,DATARMNETecc0627c70.
DATARMNET34097703c8,(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),
NULL,NULL);if(DATARMNETecc0627c70.DATARMNETa2e32cdd3a>(0xd2d+202-0xdf7)){if(
DATARMNETecc0627c70.DATARMNET34097703c8==DATARMNET7bc926fdbe){
DATARMNETecc0627c70.DATARMNET34097703c8=DATARMNETb3e3b2a799;hrtimer_forward(
DATARMNET6e4292679f,hrtimer_cb_get_time(DATARMNET6e4292679f),ns_to_ktime(
DATARMNET00d5787aad));ret=HRTIMER_RESTART;DATARMNET52de1f3dc0(
DATARMNET4510abc30d,DATARMNETf16e78412b,DATARMNETecc0627c70.DATARMNETa2e32cdd3a,
(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),NULL,NULL);}else if(
DATARMNETecc0627c70.DATARMNET34097703c8==DATARMNET8dcf06727b){
DATARMNETecc0627c70.DATARMNET34097703c8=DATARMNET7bc926fdbe;}else if(
DATARMNETecc0627c70.DATARMNET34097703c8==DATARMNETb3e3b2a799){
DATARMNET52de1f3dc0(DATARMNET4510abc30d,DATARMNET83147a2e7d,DATARMNETecc0627c70.
DATARMNET34097703c8,(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),
NULL,NULL);schedule_work((struct work_struct*)&shs_rx_work);}}return ret;}enum
hrtimer_restart DATARMNET4ce9744605(struct hrtimer*DATARMNET6e4292679f){const
enum hrtimer_restart ret=HRTIMER_NORESTART;struct DATARMNETa6f2d499b2*
DATARMNET4b39dc1574=container_of(DATARMNET6e4292679f,struct DATARMNETa6f2d499b2,
DATARMNET758a55f103);DATARMNET371703c28d();schedule_work(&DATARMNET4b39dc1574->
DATARMNET33110a3ff5);return ret;}void DATARMNETe1f95274f1(void){int i;for(i=
(0xd2d+202-0xdf7);i<DATARMNETc6782fed88;i++){DATARMNETecc0627c70.
DATARMNET132b9c7dc4[i].DATARMNET42c3ecbd5e=i;INIT_WORK(&DATARMNETecc0627c70.
DATARMNET132b9c7dc4[i].DATARMNET33110a3ff5,DATARMNET056c939591);hrtimer_init(&
DATARMNETecc0627c70.DATARMNET132b9c7dc4[i].DATARMNET758a55f103,CLOCK_MONOTONIC,
HRTIMER_MODE_REL);DATARMNETecc0627c70.DATARMNET132b9c7dc4[i].DATARMNET758a55f103
.function=DATARMNET4ce9744605;}hrtimer_init(&DATARMNETecc0627c70.
DATARMNET6fd692fc7a,CLOCK_MONOTONIC,HRTIMER_MODE_REL);DATARMNETecc0627c70.
DATARMNET6fd692fc7a.function=DATARMNET0a73c53ae6;INIT_WORK(&shs_rx_work.
DATARMNET33110a3ff5,DATARMNETa7afc8cdaa);}unsigned int DATARMNET02cdd9b125(void)
{unsigned int DATARMNET9f4bc49c6f=DATARMNET12565c8f98;int i;DATARMNET12565c8f98=
(0xd2d+202-0xdf7);for(i=(0xd2d+202-0xdf7);i<DATARMNETc6782fed88;i++){
hrtimer_cancel(&DATARMNETba5ea4329f(i));cancel_work_sync(&DATARMNETecc0627c70.
DATARMNET132b9c7dc4[i].DATARMNET33110a3ff5);}cancel_work_sync(&shs_rx_work.
DATARMNET33110a3ff5);return DATARMNET9f4bc49c6f;}int DATARMNET82e88dbb56(struct
sk_buff_head*list,int cpu){struct sk_buff*skb;struct softnet_data*
DATARMNETe95ad852b4=&per_cpu(softnet_data,cpu);rtnl_lock();while((skb=
skb_dequeue_tail(list))!=NULL){if(rmnet_is_real_dev_registered(skb->dev)){
DATARMNET68d84e7b98[DATARMNETf8de7cb644]++;atomic_long_inc(&skb->dev->rx_dropped
);input_queue_head_incr(DATARMNETe95ad852b4);DATARMNETe95ad852b4->dropped++;
kfree_skb(skb);}}rtnl_unlock();return(0xd2d+202-0xdf7);}static int
DATARMNET2aa4ef6ff9(struct notifier_block*DATARMNETea991f24f2,unsigned long
DATARMNET7ee7b05b93,void*DATARMNETe53e117dd2){int DATARMNETc3193054f2,
DATARMNET25fc1e341e,cpu;int*DATARMNETc628e18b55=(int*)DATARMNETe53e117dd2;struct
sk_buff_head*DATARMNET49115bea94;struct sk_buff_head*DATARMNETaf21dd6000;
for_each_possible_cpu(cpu){DATARMNET49115bea94=&DATARMNET3de2536baf(cpu);
DATARMNETaf21dd6000=&DATARMNET832731a933(cpu);DATARMNETc3193054f2=skb_queue_len(
DATARMNET49115bea94);DATARMNET25fc1e341e=skb_queue_len(DATARMNETaf21dd6000);if(
DATARMNET1ad396a890&&(DATARMNETc3193054f2+DATARMNET25fc1e341e)>=
DATARMNET1ad396a890){DATARMNET82e88dbb56(&per_cpu(softnet_data,cpu).
input_pkt_queue,cpu);DATARMNETc3193054f2=skb_queue_len(DATARMNET49115bea94);
DATARMNET25fc1e341e=skb_queue_len(DATARMNETaf21dd6000);if(DATARMNET25fc1e341e>=
DATARMNET1ad396a890){DATARMNET82e88dbb56(DATARMNET49115bea94,cpu);}(*
DATARMNETc628e18b55)++;}}return(0xd2d+202-0xdf7);}static struct notifier_block
DATARMNET105c85d84c={.notifier_call=DATARMNET2aa4ef6ff9,};void
DATARMNET78bb6be330(struct rmnet_map_dl_ind_hdr*dlhdr,struct
rmnet_map_control_command_header*qcmd){DATARMNET7ed4cef8a3(dlhdr);}void
DATARMNET7ed4cef8a3(struct rmnet_map_dl_ind_hdr*dlhdr){DATARMNETda96251102(
DATARMNET23f8730007,DATARMNET4ebbc01257,dlhdr->le.seq,dlhdr->le.pkts,
(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),NULL,NULL);if(DATARMNETecc0627c70.
DATARMNETa2e32cdd3a>(0xd2d+202-0xdf7)&&DATARMNETecc0627c70.DATARMNET6fe0db3a49!=
DATARMNET4ab5a31d0c){DATARMNET14ed771dfb[DATARMNET01bf75e27c]++;
DATARMNETa4bf9fbf64((0xd2d+202-0xdf7),DATARMNET0b15fd8b54);}DATARMNETecc0627c70.
DATARMNET6fe0db3a49=DATARMNET1c55e5fdb1;}void DATARMNETf61cd23b90(struct
rmnet_map_dl_ind_trl*dltrl,struct rmnet_map_control_command_header*qcmd){
DATARMNET613a81eca8(dltrl);}void DATARMNET613a81eca8(struct rmnet_map_dl_ind_trl
*dltrl){DATARMNET52de1f3dc0(DATARMNET23f8730007,DATARMNET0808844559,
DATARMNETecc0627c70.DATARMNETa2e32cdd3a,(0xd2d+202-0xdf7),dltrl->seq_le,
(0x16e8+787-0xc0c),NULL,NULL);DATARMNETecc0627c70.DATARMNET6fe0db3a49=
DATARMNET4ab5a31d0c;if(DATARMNETecc0627c70.DATARMNETa2e32cdd3a>(0xd2d+202-0xdf7)
){DATARMNET14ed771dfb[DATARMNET84a9e136b8]++;DATARMNETa4bf9fbf64(
(0xd2d+202-0xdf7),DATARMNET0b15fd8b54);}}void DATARMNET45d8cdb224(struct
net_device*dev,struct net_device*vnd){struct rps_map*map;int rc;u8
DATARMNET0e4304d903;u8 map_mask;u8 map_len;if(DATARMNETecc0627c70.
DATARMNETfc89d842ae)return;map=rcu_dereference(vnd->_rx->rps_map);if(!map){
map_mask=(0xd2d+202-0xdf7);map_len=(0xd2d+202-0xdf7);}else{map_mask=
DATARMNET928c931df9(map);map_len=DATARMNET310c3eb16e(map_mask);}
DATARMNETecc0627c70.port=rmnet_get_port(dev);DATARMNETecc0627c70.map_mask=
map_mask;DATARMNETecc0627c70.map_len=map_len;DATARMNETecc0627c70.
DATARMNETba3f7a11ef=(0xd1f+216-0xdf5);DATARMNETecc0627c70.DATARMNET5c24e1df05=
(0xd26+209-0xdf6);DATARMNETecc0627c70.DATARMNET7d667e828e=(0xd26+209-0xdf6);for(
DATARMNET0e4304d903=(0xd2d+202-0xdf7);DATARMNET0e4304d903<DATARMNETc6782fed88;
DATARMNET0e4304d903++)INIT_LIST_HEAD(&DATARMNET0997c5650d[DATARMNET0e4304d903].
DATARMNET3dc4262f53);DATARMNETe6e8431304();rc=register_oom_notifier(&
DATARMNET105c85d84c);if(rc<(0xd2d+202-0xdf7)){pr_info(
"\x52\x6d\x6e\x65\x74\x5f\x73\x68\x73\x5f\x6f\x6f\x6d\x20\x72\x65\x67\x69\x73\x74\x65\x72\x20\x66\x61\x69\x6c\x75\x72\x65"
);}pr_info(
"\x72\x6d\x6e\x65\x74\x5f\x73\x68\x73\x20\x69\x6e\x69\x74\x20\x77\x69\x74\x68\x20\x25\x78"
,DATARMNETecc0627c70.map_mask);DATARMNETecc0627c70.DATARMNETfc89d842ae=
(0xd26+209-0xdf6);}void DATARMNETeacad8334e(void){struct hlist_node*tmp;struct
DATARMNET63d7680df2*DATARMNET63b1a086d5;struct sk_buff*DATARMNET9a788b5480;int
bkt;struct sk_buff*buf;unsigned long ht_flags;if(!DATARMNETecc0627c70.
DATARMNETa2e32cdd3a)return;spin_lock_irqsave(&DATARMNET3764d083f0,ht_flags);
hash_for_each_safe(DATARMNETe603c3a4b3,bkt,tmp,DATARMNET63b1a086d5,list){for((
buf=DATARMNET63b1a086d5->DATARMNETae4b27456e.head);buf!=NULL;buf=
DATARMNET9a788b5480){DATARMNET9a788b5480=buf->next;if(buf)consume_skb(buf);}
DATARMNET63b1a086d5->DATARMNETae4b27456e.DATARMNET6215127f48=(0xd2d+202-0xdf7);
DATARMNET63b1a086d5->DATARMNETae4b27456e.DATARMNETbaa5765693=(0xd2d+202-0xdf7);
DATARMNET63b1a086d5->DATARMNETae4b27456e.head=NULL;DATARMNET63b1a086d5->
DATARMNETae4b27456e.tail=NULL;}DATARMNETecc0627c70.DATARMNETc252a1f55d=
(0xd2d+202-0xdf7);DATARMNETecc0627c70.DATARMNETa2e32cdd3a=(0xd2d+202-0xdf7);
DATARMNETecc0627c70.DATARMNETd9cfd2812b=(0xd2d+202-0xdf7);DATARMNETecc0627c70.
DATARMNET34097703c8=DATARMNET8dcf06727b;spin_unlock_irqrestore(&
DATARMNET3764d083f0,ht_flags);}void DATARMNET44459105b4(struct sk_buff*skb,
struct DATARMNET63d7680df2*node_p){struct iphdr*ip4h,DATARMNETc00baf31c3;struct
ipv6hdr*ip6h,DATARMNETcf1d9e2c1e;struct tcphdr*tp,DATARMNETd1ff6cd568;struct
udphdr*up,DATARMNETc82d2f4e16;int len=(0xd2d+202-0xdf7);u16 ip_len=
(0xd2d+202-0xdf7);__be16 frag_off;u8 protocol;node_p->DATARMNETa1099c74fe=
(0xd2d+202-0xdf7);switch(skb->protocol){case htons(ETH_P_IP):ip4h=
DATARMNETefcaf5fbe9(skb,(0xd2d+202-0xdf7),sizeof(*ip4h),&DATARMNETc00baf31c3);if
(!ip4h)return;node_p->DATARMNET1e9d25d9ff=ip4h->protocol;memcpy(&(node_p->ip_hdr
.DATARMNETac9bbaad7c),ip4h,sizeof(*ip4h));ip_len=ip4h->ihl*(0xd11+230-0xdf3);
node_p->DATARMNETa1099c74fe=!(ip4h->frag_off&htons(IP_DF));break;case htons(
ETH_P_IPV6):ip6h=DATARMNETefcaf5fbe9(skb,(0xd2d+202-0xdf7),sizeof(*ip6h),&
DATARMNETcf1d9e2c1e);if(!ip6h)return;node_p->DATARMNET1e9d25d9ff=ip6h->nexthdr;
memcpy(&(node_p->ip_hdr.DATARMNET1688a97aa4),ip6h,sizeof(*ip6h));protocol=ip6h->
nexthdr;len=ipv6_skip_exthdr(skb,sizeof(*ip6h),&protocol,&frag_off);if(len<
(0xd2d+202-0xdf7)){return;}ip_len=(u16)len;break;default:break;}if(node_p->
DATARMNET1e9d25d9ff==IPPROTO_TCP){tp=DATARMNETefcaf5fbe9(skb,ip_len,sizeof(*tp),
&DATARMNETd1ff6cd568);if(!tp)return;memcpy(&(node_p->DATARMNETe33b41dad9.tp),tp,
sizeof(struct tcphdr));}else if(node_p->DATARMNET1e9d25d9ff==IPPROTO_UDP){up=
DATARMNETefcaf5fbe9(skb,ip_len,sizeof(*up),&DATARMNETc82d2f4e16);if(!up)return;
memcpy(&(node_p->DATARMNETe33b41dad9.up),up,sizeof(struct udphdr));}else{}}int
DATARMNET756778f14f(struct sk_buff*skb,struct rmnet_shs_clnt_s*
DATARMNET0bf01e7c6f){struct DATARMNET63d7680df2*node_p;struct hlist_node*tmp;int
map=DATARMNETecc0627c70.map_mask;unsigned long ht_flags;int DATARMNETcfb5dc7296
;int map_cpu;u32 DATARMNET5c4a331b9c,hash;u8 is_match_found=(0xd2d+202-0xdf7);u8
DATARMNET935af10724=(0xd2d+202-0xdf7);u8 DATARMNET7c5ef97eab=(0xd2d+202-0xdf7);
struct DATARMNETe600c5b727*DATARMNETa4055affd5;struct rmnet_priv*priv;if(!(
DATARMNET0bf01e7c6f->config&RMNET_SHS_STMP_ALL)&&!DATARMNET9303cec796(skb)){
DATARMNETe767554e6e(skb);return(0xd2d+202-0xdf7);}if((unlikely(!map))||!
DATARMNETecc0627c70.DATARMNETfc89d842ae){DATARMNETe767554e6e(skb);
DATARMNET015fb2ba0e(DATARMNET720469c0a9,DATARMNETe0fee0991a,(0x16e8+787-0xc0c),
(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),NULL,NULL);
DATARMNET68d84e7b98[DATARMNETe3c02ddaeb]++;return(0xd2d+202-0xdf7);}
DATARMNET52de1f3dc0(DATARMNET720469c0a9,DATARMNET856c53293b,(0x16e8+787-0xc0c),
(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),skb,NULL);hash=
skb_get_hash(skb);spin_lock_irqsave(&DATARMNET3764d083f0,ht_flags);do{
hash_for_each_possible_safe(DATARMNETe603c3a4b3,node_p,tmp,list,hash){if(hash!=
node_p->hash)continue;DATARMNETda96251102(DATARMNET720469c0a9,
DATARMNET08b6defcff,(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),
(0x16e8+787-0xc0c),skb,NULL);DATARMNET5c4a331b9c=node_p->map_index;
DATARMNET495dab3d72(skb,node_p,DATARMNET0bf01e7c6f);is_match_found=
(0xd26+209-0xdf6);DATARMNET935af10724=(0xd26+209-0xdf6);if(node_p->
DATARMNET85c698ec34){if(node_p->map_cpu>=(0xd2d+202-0xdf7)&&node_p->map_cpu<
DATARMNETc6782fed88){if(!hrtimer_active(&DATARMNETba5ea4329f(node_p->map_cpu)))
hrtimer_start(&DATARMNETba5ea4329f(node_p->map_cpu),ns_to_ktime(
DATARMNET4ac8af832c*DATARMNET68fc0be252),HRTIMER_MODE_REL);}if(
raw_smp_processor_id()!=DATARMNETecc0627c70.DATARMNET7d667e828e&&(
DATARMNETecc0627c70.DATARMNET7d667e828e==DATARMNETecc0627c70.DATARMNET5c24e1df05
)){DATARMNET68d84e7b98[DATARMNET048727d1d9]++;DATARMNET7c5ef97eab=
(0xd26+209-0xdf6);}if(DATARMNETaf998640fd&&node_p->DATARMNETae4b27456e.
DATARMNET6215127f48>DATARMNETaf998640fd)DATARMNET7c5ef97eab=(0xd26+209-0xdf6);}
break;}if(is_match_found)break;if(DATARMNET0bf01e7c6f->map_mask){
DATARMNETcfb5dc7296=DATARMNET362c14e98b(DATARMNETecc0627c70.map_mask&
DATARMNET9273f84bf1&~DATARMNETecc0627c70.DATARMNETba3f7a11ef);}else{
DATARMNETcfb5dc7296=DATARMNET217fe38119((0xd2d+202-0xdf7),skb->dev);}if(
DATARMNETcfb5dc7296<(0xd2d+202-0xdf7)){DATARMNET68d84e7b98[DATARMNETa1f9420686]
++;break;}if(DATARMNETecc0627c70.DATARMNET64bb8a8f57>DATARMNETbfe31ef643){
DATARMNET68d84e7b98[DATARMNETe6e77f9f03]++;break;}node_p=kzalloc(sizeof(*node_p)
,GFP_ATOMIC);if(!node_p){DATARMNET68d84e7b98[DATARMNET394acaf558]++;break;}
DATARMNETecc0627c70.DATARMNET64bb8a8f57++;node_p->dev=skb->dev;node_p->hash=skb
->hash;node_p->map_cpu=DATARMNETcfb5dc7296;node_p->map_index=DATARMNET04e8d1b862
(node_p->map_cpu,map);INIT_LIST_HEAD(&node_p->DATARMNET04c88b8191);
DATARMNET44459105b4(skb,node_p);if(DATARMNET0bf01e7c6f->map_mask){node_p->
DATARMNETfbbec4c537=DATARMNET0bf01e7c6f->map_mask;node_p->DATARMNETa59ce1fd2d=
DATARMNET310c3eb16e(node_p->DATARMNETfbbec4c537);node_p->map_cpu=
raw_smp_processor_id();node_p->map_index=node_p->map_cpu;node_p->
DATARMNET85c698ec34=(0xd26+209-0xdf6);if(hrtimer_active(&DATARMNETba5ea4329f(
node_p->map_cpu)))hrtimer_cancel(&DATARMNETba5ea4329f(node_p->map_cpu));
hrtimer_start(&DATARMNETba5ea4329f(node_p->map_cpu),ns_to_ktime(
DATARMNET4ac8af832c*DATARMNET68fc0be252),HRTIMER_MODE_REL);}else if(node_p->
DATARMNET85c698ec34){node_p->DATARMNET341ea38662->mux_id=(0xd2d+202-0xdf7);}else
{node_p->DATARMNETfbbec4c537=DATARMNETecc0627c70.map_mask;node_p->
DATARMNETa59ce1fd2d=DATARMNETecc0627c70.map_len;}DATARMNET0349051465(node_p->
map_cpu);DATARMNET350f55bfca(node_p);map_cpu=node_p->map_cpu;DATARMNETa4055affd5
=&DATARMNET0997c5650d[map_cpu];priv=netdev_priv(node_p->dev);if(!priv){rm_err(
"\x70\x72\x69\x76\x20\x66\x6f\x72\x20\x6e\x65\x74\x64\x65\x76\x20\x69\x73\x20\x6e\x75\x6c\x6c\x20\x66\x6f\x72\x20\x68\x61\x73\x68\x20\x30\x78\x25\x78"
,node_p->hash);DATARMNET68d84e7b98[DATARMNETf5157a9b85]++;}else{node_p->
DATARMNET341ea38662->mux_id=priv->mux_id;rm_err(
"\x53\x48\x53\x5f\x4d\x55\x58\x3a\x20\x6d\x75\x78\x20\x69\x64\x20\x66\x6f\x72\x20\x68\x61\x73\x68\x20\x30\x78\x25\x78\x20\x69\x73\x20\x25\x64"
,node_p->hash,node_p->DATARMNET341ea38662->mux_id);}DATARMNET3e37ad2816(node_p,&
DATARMNETa4055affd5->DATARMNET3dc4262f53);hash_add_rcu(DATARMNETe603c3a4b3,&
node_p->list,skb->hash);DATARMNET495dab3d72(skb,node_p,DATARMNET0bf01e7c6f);
DATARMNET935af10724=(0xd26+209-0xdf6);break;}while((0xd2d+202-0xdf7));if(!
DATARMNET935af10724){spin_unlock_irqrestore(&DATARMNET3764d083f0,ht_flags);
DATARMNET68d84e7b98[DATARMNET99db6e7d86]++;DATARMNETe767554e6e(skb);
DATARMNET015fb2ba0e(DATARMNET720469c0a9,DATARMNETe0fee0991a,(0x16e8+787-0xc0c),
(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),NULL,NULL);return
(0xd2d+202-0xdf7);}if(!DATARMNETecc0627c70.DATARMNETd9cfd2812b&&
DATARMNETecc0627c70.DATARMNETa2e32cdd3a&&DATARMNET365ddeca1c){
DATARMNETecc0627c70.DATARMNETd9cfd2812b=(0xd26+209-0xdf6);DATARMNETecc0627c70.
DATARMNET34097703c8=DATARMNET7bc926fdbe;if(hrtimer_active(&DATARMNETecc0627c70.
DATARMNET6fd692fc7a)){DATARMNETda96251102(DATARMNET720469c0a9,
DATARMNETf730f80f06,DATARMNET2f67183a86,(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),
(0x16e8+787-0xc0c),skb,NULL);hrtimer_cancel(&DATARMNETecc0627c70.
DATARMNET6fd692fc7a);}hrtimer_start(&DATARMNETecc0627c70.DATARMNET6fd692fc7a,
ns_to_ktime(DATARMNET4ac8af832c*DATARMNET68fc0be252),HRTIMER_MODE_REL);
DATARMNETda96251102(DATARMNET720469c0a9,DATARMNETdd870ee64c,DATARMNET2f67183a86,
(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),skb,NULL);}
spin_unlock_irqrestore(&DATARMNET3764d083f0,ht_flags);if(DATARMNETecc0627c70.
DATARMNETa2e32cdd3a>DATARMNET7d18c0bcf8){if(DATARMNET58b009b16b)
DATARMNET14ed771dfb[DATARMNET802083239a]++;DATARMNET52de1f3dc0(
DATARMNET4510abc30d,DATARMNET562b7d32a8,(0xd2d+202-0xdf7),(0x16e8+787-0xc0c),
(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),NULL,NULL);DATARMNETa4bf9fbf64(
(0xd26+209-0xdf6),DATARMNET0b15fd8b54);}else if(DATARMNETecc0627c70.
DATARMNETc252a1f55d>DATARMNETea75c7b6f6){if(DATARMNET58b009b16b)
DATARMNET14ed771dfb[DATARMNETed69052342]++;DATARMNET52de1f3dc0(
DATARMNET4510abc30d,DATARMNET99640d60f7,(0xd2d+202-0xdf7),(0x16e8+787-0xc0c),
(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),NULL,NULL);DATARMNETa4bf9fbf64(
(0xd26+209-0xdf6),DATARMNET0b15fd8b54);}else if(DATARMNET7c5ef97eab){if(
DATARMNET58b009b16b)DATARMNET14ed771dfb[DATARMNETcc3c294f38]++;
DATARMNET52de1f3dc0(DATARMNET4510abc30d,DATARMNET562b7d32a8,(0xd26+209-0xdf6),
DATARMNETecc0627c70.DATARMNETa2e32cdd3a,(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),
NULL,NULL);DATARMNETa4bf9fbf64((0xd26+209-0xdf6),DATARMNET0b15fd8b54);}else if((
DATARMNET0bf01e7c6f->config&RMNET_SHS_NO_DLMKR)&&DATARMNETecc0627c70.
DATARMNETa2e32cdd3a){if(DATARMNET58b009b16b)DATARMNET14ed771dfb[
DATARMNET04dac3a62b]++;DATARMNETa4bf9fbf64((0xd2d+202-0xdf7),DATARMNET0b15fd8b54
);}else if(DATARMNETecc0627c70.DATARMNET34097703c8==DATARMNETb3e3b2a799){
DATARMNET14ed771dfb[DATARMNETcfb1764a91]++;DATARMNET52de1f3dc0(
DATARMNET4510abc30d,DATARMNETa2bd301af7,(0xd26+209-0xdf6),DATARMNETecc0627c70.
DATARMNETa2e32cdd3a,(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),NULL,NULL);
DATARMNETa4bf9fbf64((0xd2d+202-0xdf7),DATARMNET0b15fd8b54);}else if(!(
DATARMNET0bf01e7c6f->config&RMNET_SHS_NO_DLMKR)&&DATARMNETecc0627c70.
DATARMNETa2e32cdd3a&&DATARMNETecc0627c70.DATARMNET6fe0db3a49!=
DATARMNET1c55e5fdb1){DATARMNET14ed771dfb[DATARMNET01bf75e27c]++;
DATARMNETa4bf9fbf64((0xd2d+202-0xdf7),DATARMNET0b15fd8b54);}return
(0xd2d+202-0xdf7);}void DATARMNET9297340f58(unsigned int DATARMNET9f4bc49c6f){
DATARMNETdf74db7e38();DATARMNETecc0627c70.DATARMNET9c869c1ec2=(0xd2d+202-0xdf7);
unregister_oom_notifier(&DATARMNET105c85d84c);if(DATARMNETecc0627c70.
DATARMNETf5ab31b9b0)hrtimer_cancel(&DATARMNETecc0627c70.DATARMNET6fd692fc7a);
memset(&DATARMNETecc0627c70,(0xd2d+202-0xdf7),sizeof(DATARMNETecc0627c70));
DATARMNETecc0627c70.port=NULL;DATARMNETecc0627c70.DATARMNETfc89d842ae=
(0xd2d+202-0xdf7);DATARMNET12565c8f98=DATARMNET9f4bc49c6f;}