|
|
|
@ -1,4 +1,4 @@
|
|
|
|
|
/* Copyright (c) 2018-2020 The Linux Foundation. All rights reserved.
|
|
|
|
|
/* Copyright (c) 2018-2021 The Linux Foundation. All rights reserved.
|
|
|
|
|
*
|
|
|
|
|
* This program is free software; you can redistribute it and/or modify
|
|
|
|
|
* it under the terms of the GNU General Public License version 2 and
|
|
|
|
@ -17,6 +17,11 @@
|
|
|
|
|
#include <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>
|
|
|
|
@ -25,6 +30,8 @@
|
|
|
|
|
#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)
|
|
|
|
@ -35,8 +42,8 @@
|
|
|
|
|
#define DATARMNET00d5787aad 2000000
|
|
|
|
|
#define DATARMNET8948dc953d (0xd0a+237-0xdf2)
|
|
|
|
|
#define DATARMNET20dc6bb36b (0xd26+209-0xdf6)
|
|
|
|
|
#define DATARMNET3de2536baf(CPU) (per_cpu(softnet_data, CPU).input_pkt_queue)
|
|
|
|
|
#define DATARMNET832731a933(CPU) (per_cpu(softnet_data, CPU).process_queue)
|
|
|
|
|
#define DATARMNET832731a933(CPU) (per_cpu(softnet_data, CPU).input_pkt_queue)
|
|
|
|
|
#define DATARMNET3de2536baf(CPU) (per_cpu(softnet_data, CPU).process_queue)
|
|
|
|
|
#define DATARMNET78ec5e8746(DATARMNETfbfdc7f27e, CPU) (per_cpu(\
|
|
|
|
|
DATARMNETfbfdc7f27e, CPU).input_queue_tail)
|
|
|
|
|
#define DATARMNET9c1c20df35(DATARMNETfbfdc7f27e, CPU) (per_cpu(\
|
|
|
|
@ -51,35 +58,61 @@ DEFINE_SPINLOCK(DATARMNET3764d083f0);DEFINE_HASHTABLE(DATARMNETe603c3a4b3,
|
|
|
|
|
DATARMNET25437d35fd);struct DATARMNETe600c5b727 DATARMNET0997c5650d[
|
|
|
|
|
DATARMNETc6782fed88];int DATARMNETcff375d916[DATARMNETc6782fed88];struct
|
|
|
|
|
DATARMNETa6b20d7e8b DATARMNETecc0627c70;struct DATARMNET37ef896af8 shs_rx_work;
|
|
|
|
|
static void*DATARMNETefcaf5fbe9(struct sk_buff*skb,u32 offset,u32
|
|
|
|
|
DATARMNET567bdc7221,void*buf){struct skb_shared_info*shinfo=skb_shinfo(skb);
|
|
|
|
|
skb_frag_t*frag;u32 DATARMNETedc267a909=offset;int i;if(offset>skb->len||
|
|
|
|
|
DATARMNET567bdc7221>skb->len||offset+DATARMNET567bdc7221>skb->len)return NULL;if
|
|
|
|
|
(skb_headlen(skb)>=offset+DATARMNET567bdc7221)return skb->data+offset;offset-=
|
|
|
|
|
skb_headlen(skb);for(i=(0xd2d+202-0xdf7);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),&
|
|
|
|
|
ssize_t DATARMNET713da9913c(struct netdev_rx_queue*DATARMNETb4180393e4,u8 cpu,u8
|
|
|
|
|
DATARMNETa7a5705ab0,u8 DATARMNET5780499e9c){struct rps_map*DATARMNETaeb4918e65,
|
|
|
|
|
*map;cpumask_var_t mask;unsigned long ht_flags;int DATARMNET421230d879;if(!
|
|
|
|
|
DATARMNET5780499e9c&&(DATARMNET3de2536baf(DATARMNETa7a5705ab0).qlen&
|
|
|
|
|
DATARMNET832731a933(DATARMNETa7a5705ab0).qlen))return-(0xd26+209-0xdf6);map=
|
|
|
|
|
rcu_dereference(DATARMNETb4180393e4->rps_map);if(map){spin_lock_irqsave(&
|
|
|
|
|
DATARMNET832731a933(DATARMNETa7a5705ab0).lock,ht_flags);map->cpus[
|
|
|
|
|
(0xd2d+202-0xdf7)]=cpu;map->len=(0xd26+209-0xdf6);spin_unlock_irqrestore(&
|
|
|
|
|
DATARMNET832731a933(DATARMNETa7a5705ab0).lock,ht_flags);DATARMNET421230d879=(
|
|
|
|
|
DATARMNET3de2536baf(DATARMNETa7a5705ab0).qlen+DATARMNET832731a933(
|
|
|
|
|
DATARMNETa7a5705ab0).qlen);if(DATARMNET421230d879){DATARMNET68d84e7b98[
|
|
|
|
|
DATARMNETfeaf903a28]++;DATARMNET4bde88919f(DATARMNETa7a5705ab0,
|
|
|
|
|
DATARMNET421230d879);}return(0xd2d+202-0xdf7);}if(!alloc_cpumask_var(&mask,
|
|
|
|
|
GFP_ATOMIC))return-ENOMEM;cpumask_set_cpu(cpu,(struct cpumask*)&mask);map=
|
|
|
|
|
kzalloc(max_t(unsigned int,RPS_MAP_SIZE(cpumask_weight(mask)),L1_CACHE_BYTES),
|
|
|
|
|
GFP_ATOMIC);if(!map){free_cpumask_var(mask);return-ENOMEM;}map->cpus[
|
|
|
|
|
(0xd2d+202-0xdf7)]=cpu;map->len=(0xd26+209-0xdf6);spin_lock_irqsave(&
|
|
|
|
|
DATARMNET832731a933(DATARMNETa7a5705ab0).lock,ht_flags);rcu_read_lock();
|
|
|
|
|
DATARMNETaeb4918e65=rcu_dereference(DATARMNETb4180393e4->rps_map);
|
|
|
|
|
rcu_assign_pointer(DATARMNETb4180393e4->rps_map,map);if(DATARMNETaeb4918e65)
|
|
|
|
|
kfree(DATARMNETaeb4918e65);free_cpumask_var(mask);rcu_read_unlock();
|
|
|
|
|
spin_unlock_irqrestore(&DATARMNET832731a933(DATARMNETa7a5705ab0).lock,ht_flags);
|
|
|
|
|
DATARMNET421230d879=(DATARMNET3de2536baf(DATARMNETa7a5705ab0).qlen+
|
|
|
|
|
DATARMNET832731a933(DATARMNETa7a5705ab0).qlen);if(DATARMNET421230d879){
|
|
|
|
|
DATARMNET68d84e7b98[DATARMNETfeaf903a28]++;}return(0xd2d+202-0xdf7);}static void
|
|
|
|
|
*DATARMNETefcaf5fbe9(struct sk_buff*skb,u32 offset,u32 DATARMNET567bdc7221,void*
|
|
|
|
|
buf){struct skb_shared_info*shinfo=skb_shinfo(skb);skb_frag_t*frag;u32
|
|
|
|
|
DATARMNETedc267a909=offset;int i;if(offset>skb->len||DATARMNET567bdc7221>skb->
|
|
|
|
|
len||offset+DATARMNET567bdc7221>skb->len)return NULL;if(skb_headlen(skb)>=offset
|
|
|
|
|
+DATARMNET567bdc7221)return skb->data+offset;offset-=skb_headlen(skb);for(i=
|
|
|
|
|
(0xd2d+202-0xdf7);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=DATARMNET9273f84bf1&DATARMNETecc0627c70.DATARMNET5c24e1df05;}break;case
|
|
|
|
|
htons(ETH_P_IPV6):ip6h=DATARMNETefcaf5fbe9(skb,(0xd2d+202-0xdf7),sizeof(*ip6h),&
|
|
|
|
|
DATARMNETcf1d9e2c1e);if(!ip6h)break;if(!(ip6h->nexthdr==NEXTHDR_FRAGMENT)&&(ip6h
|
|
|
|
|
->nexthdr==IPPROTO_TCP||ip6h->nexthdr==IPPROTO_UDP)){DATARMNETbd864aa442=
|
|
|
|
|
(0xd26+209-0xdf6);break;}if(ip6h->nexthdr==IPPROTO_ICMP){skb->hash=
|
|
|
|
|
(0xd2d+202-0xdf7);skb->sw_hash=(0xd26+209-0xdf6);}break;default:break;}
|
|
|
|
|
DATARMNETda96251102(DATARMNETcd24fca747,DATARMNET116c96c236,DATARMNETbd864aa442,
|
|
|
|
|
(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),skb,NULL);return
|
|
|
|
|
DATARMNETbd864aa442;}static void DATARMNETfa919d00dc(int cpu,int
|
|
|
|
|
DATARMNET8a461bad56){struct timespec DATARMNET2e47295bf1;struct timespec*
|
|
|
|
|
DATARMNET736ac5582e;long DATARMNETb64270afc1;int DATARMNETa67155ba38=(
|
|
|
|
|
DATARMNETa1ac2608b5<DATARMNET8948dc953d)?DATARMNET8948dc953d:DATARMNETa1ac2608b5
|
|
|
|
|
;getnstimeofday(&DATARMNET2e47295bf1);DATARMNET736ac5582e=&DATARMNETecc0627c70.
|
|
|
|
|
(0xd2d+202-0xdf7);skb->sw_hash=DATARMNET9273f84bf1&DATARMNETecc0627c70.
|
|
|
|
|
DATARMNET5c24e1df05;}break;default:break;}DATARMNETda96251102(
|
|
|
|
|
DATARMNETcd24fca747,DATARMNET116c96c236,DATARMNETbd864aa442,(0x16e8+787-0xc0c),
|
|
|
|
|
(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),skb,NULL);return DATARMNETbd864aa442;}
|
|
|
|
|
static void DATARMNETfa919d00dc(int cpu,int DATARMNET8a461bad56){struct timespec
|
|
|
|
|
DATARMNET2e47295bf1;struct timespec*DATARMNET736ac5582e;long
|
|
|
|
|
DATARMNETb64270afc1;int DATARMNETa67155ba38=(DATARMNETa1ac2608b5<
|
|
|
|
|
DATARMNET8948dc953d)?DATARMNET8948dc953d:DATARMNETa1ac2608b5;getnstimeofday(&
|
|
|
|
|
DATARMNET2e47295bf1);DATARMNET736ac5582e=&DATARMNETecc0627c70.
|
|
|
|
|
DATARMNET132b9c7dc4[cpu].DATARMNET251b97a380;DATARMNETb64270afc1=
|
|
|
|
|
DATARMNETe6671dbf38(DATARMNET2e47295bf1.tv_sec-DATARMNET736ac5582e->tv_sec)+
|
|
|
|
|
DATARMNET2e47295bf1.tv_nsec-DATARMNET736ac5582e->tv_nsec;if(DATARMNETb64270afc1
|
|
|
|
@ -95,11 +128,10 @@ DATARMNETe61d62310f+=DATARMNET8a461bad56;}}static void DATARMNETe767554e6e(
|
|
|
|
|
struct sk_buff*skb){DATARMNETda96251102(DATARMNET6b317c4c73,DATARMNET43225b7a7c,
|
|
|
|
|
(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),skb,
|
|
|
|
|
NULL);netif_receive_skb(skb);}static void DATARMNET514ce0bf59(struct sk_buff*skb
|
|
|
|
|
){struct rmnet_priv*priv;DATARMNETda96251102(DATARMNET6b317c4c73,
|
|
|
|
|
DATARMNET43225b7a7c,(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),
|
|
|
|
|
(0x16e8+787-0xc0c),skb,NULL);priv=netdev_priv(skb->dev);gro_cells_receive(&priv
|
|
|
|
|
->gro_cells,skb);}static struct sk_buff*DATARMNET0e315f0262(struct sk_buff*skb,
|
|
|
|
|
u16 DATARMNETf8272cfb41){struct skb_shared_info*shinfo=skb_shinfo(skb);struct
|
|
|
|
|
){DATARMNETda96251102(DATARMNET6b317c4c73,DATARMNET43225b7a7c,(0x16e8+787-0xc0c)
|
|
|
|
|
,(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),skb,NULL);netif_rx_ni(
|
|
|
|
|
skb);}static struct sk_buff*DATARMNET0e315f0262(struct sk_buff*skb,u16
|
|
|
|
|
DATARMNETf8272cfb41){struct skb_shared_info*shinfo=skb_shinfo(skb);struct
|
|
|
|
|
sk_buff*DATARMNET6643e66666,*tmp;u16 gso_size=shinfo->gso_size;u16 gso_segs=
|
|
|
|
|
shinfo->gso_segs;unsigned int gso_type=shinfo->gso_type;if(DATARMNETf8272cfb41>=
|
|
|
|
|
gso_segs){return NULL;}shinfo->gso_segs=DIV_ROUND_UP(gso_segs,
|
|
|
|
@ -163,21 +195,30 @@ DATARMNETf54fdb137b=DATARMNET98b2a0ce62(dev);DATARMNET52de1f3dc0(
|
|
|
|
|
DATARMNET720469c0a9,DATARMNET7e63a08ad4,DATARMNETf54fdb137b,DATARMNETab155dfd5d,
|
|
|
|
|
(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),NULL,NULL);return DATARMNETf54fdb137b;}int
|
|
|
|
|
DATARMNET6af33ebb5b(struct DATARMNET63d7680df2*DATARMNET63b1a086d5){int cpu=
|
|
|
|
|
DATARMNETb91aee91fd;if(DATARMNET0997c5650d[DATARMNET63b1a086d5->map_cpu].
|
|
|
|
|
DATARMNETef866573e0&&DATARMNET362b15f941(DATARMNET63b1a086d5->map_cpu)){cpu=
|
|
|
|
|
DATARMNET762cfa52fe(DATARMNETbc3c416b77&DATARMNETecc0627c70.map_mask);if(cpu<
|
|
|
|
|
(0xd2d+202-0xdf7)&&DATARMNET63b1a086d5->DATARMNET341ea38662!=NULL)cpu=
|
|
|
|
|
DATARMNET63b1a086d5->DATARMNET341ea38662->DATARMNET6e1a4eaf09;}else if(
|
|
|
|
|
DATARMNET63b1a086d5->DATARMNET341ea38662!=NULL)cpu=DATARMNET63b1a086d5->
|
|
|
|
|
DATARMNET341ea38662->DATARMNET6e1a4eaf09;return cpu;}int DATARMNETb6bff4a724(
|
|
|
|
|
struct DATARMNET63d7680df2*DATARMNET63b1a086d5){int cpu,idx=DATARMNETb91aee91fd;
|
|
|
|
|
cpu=DATARMNET6af33ebb5b(DATARMNET63b1a086d5);idx=DATARMNET04e8d1b862(cpu,
|
|
|
|
|
DATARMNETecc0627c70.map_mask);if(unlikely(idx<(0xd2d+202-0xdf7)))idx=
|
|
|
|
|
DATARMNET04e8d1b862(DATARMNET63b1a086d5->map_cpu,DATARMNETecc0627c70.map_mask);
|
|
|
|
|
DATARMNETda96251102(DATARMNETf3aaad06eb,DATARMNETf2fc7954d4,DATARMNET63b1a086d5
|
|
|
|
|
->hash,cpu,idx,(0x16e8+787-0xc0c),DATARMNET63b1a086d5,NULL);return idx;}static
|
|
|
|
|
int DATARMNET2af09ccd0b(int cpu,int DATARMNET63a222ae1f,int DATARMNETea08087fc0)
|
|
|
|
|
{int ret=(0xd2d+202-0xdf7);if(DATARMNETecc0627c70.DATARMNET132b9c7dc4[cpu].
|
|
|
|
|
DATARMNETb91aee91fd;u8 DATARMNETd4a0b11b47;if(DATARMNET63b1a086d5->
|
|
|
|
|
DATARMNET85c698ec34)return DATARMNETecc0627c70.DATARMNET5c24e1df05;else if(
|
|
|
|
|
DATARMNET0997c5650d[DATARMNET63b1a086d5->map_cpu].DATARMNETef866573e0&&
|
|
|
|
|
DATARMNET362b15f941(DATARMNET63b1a086d5->map_cpu)){cpu=DATARMNET762cfa52fe(
|
|
|
|
|
DATARMNETbc3c416b77&~DATARMNETecc0627c70.DATARMNETba3f7a11ef&DATARMNET63b1a086d5
|
|
|
|
|
->DATARMNETfbbec4c537);if(cpu<(0xd2d+202-0xdf7)&&DATARMNET63b1a086d5->
|
|
|
|
|
DATARMNET341ea38662!=NULL)cpu=DATARMNET63b1a086d5->DATARMNET341ea38662->
|
|
|
|
|
DATARMNET6e1a4eaf09;}else if(DATARMNET63b1a086d5->DATARMNET341ea38662!=NULL){cpu
|
|
|
|
|
=DATARMNET63b1a086d5->DATARMNET341ea38662->DATARMNET6e1a4eaf09;if((
|
|
|
|
|
(0xd26+209-0xdf6)<<DATARMNET63b1a086d5->map_cpu)&DATARMNETecc0627c70.
|
|
|
|
|
DATARMNETba3f7a11ef||((0xd26+209-0xdf6)<<cpu)&DATARMNETecc0627c70.
|
|
|
|
|
DATARMNETba3f7a11ef){DATARMNETd4a0b11b47=(DATARMNETbc3c416b77&((0xd26+209-0xdf6)
|
|
|
|
|
<<cpu))?DATARMNETbc3c416b77:DATARMNET9273f84bf1;cpu=DATARMNET762cfa52fe(
|
|
|
|
|
DATARMNETd4a0b11b47&~DATARMNETecc0627c70.DATARMNETba3f7a11ef&DATARMNET63b1a086d5
|
|
|
|
|
->DATARMNETfbbec4c537);DATARMNETb7ddf3c5dd[DATARMNET7f401828b3]++;}}return cpu;}
|
|
|
|
|
int DATARMNETb6bff4a724(struct DATARMNET63d7680df2*DATARMNET63b1a086d5){int cpu,
|
|
|
|
|
idx=DATARMNETb91aee91fd;cpu=DATARMNET6af33ebb5b(DATARMNET63b1a086d5);idx=
|
|
|
|
|
DATARMNET04e8d1b862(cpu,DATARMNET63b1a086d5->DATARMNETfbbec4c537);if(unlikely(
|
|
|
|
|
idx<(0xd2d+202-0xdf7)))idx=DATARMNET04e8d1b862(DATARMNET63b1a086d5->map_cpu,
|
|
|
|
|
DATARMNET63b1a086d5->DATARMNETfbbec4c537);DATARMNETda96251102(
|
|
|
|
|
DATARMNETf3aaad06eb,DATARMNETf2fc7954d4,DATARMNET63b1a086d5->hash,cpu,idx,
|
|
|
|
|
(0x16e8+787-0xc0c),DATARMNET63b1a086d5,NULL);return idx;}static int
|
|
|
|
|
DATARMNET2af09ccd0b(int cpu,int DATARMNET63a222ae1f,int DATARMNETea08087fc0){int
|
|
|
|
|
ret=(0xd2d+202-0xdf7);if(DATARMNETecc0627c70.DATARMNET132b9c7dc4[cpu].
|
|
|
|
|
DATARMNETe61d62310f>=DATARMNET65393dea13[cpu]){ret=DATARMNET0efbbe2821;}if(
|
|
|
|
|
DATARMNET63a222ae1f&&((DATARMNETeea3cef5b6(cpu)+DATARMNETea08087fc0)>=
|
|
|
|
|
DATARMNETbc049ffc4c[cpu]))ret=DATARMNETa4267dfd8a;return ret;}void
|
|
|
|
@ -200,39 +241,53 @@ DATARMNET42a992465f++){if(!cpu_online(DATARMNET42a992465f))continue;
|
|
|
|
|
DATARMNETb1157fd5c4(DATARMNET42a992465f);DATARMNETda96251102(DATARMNET75d955c408
|
|
|
|
|
,DATARMNET5874e1ecd7,DATARMNET42a992465f,DATARMNET0997c5650d[DATARMNET42a992465f
|
|
|
|
|
].DATARMNETae196235f2,DATARMNET0997c5650d[DATARMNET42a992465f].qtail,
|
|
|
|
|
(0x16e8+787-0xc0c),NULL,NULL);}rcu_read_unlock();}int DATARMNETe488c1c396(struct
|
|
|
|
|
DATARMNET63d7680df2*DATARMNET63b1a086d5,u8 DATARMNETd87669e323){int
|
|
|
|
|
(0x16e8+787-0xc0c),NULL,NULL);}rcu_read_unlock();}int DATARMNET765b8ecfba(struct
|
|
|
|
|
net_device*dev,u8 cpu,u8 DATARMNET5780499e9c){if(rmnet_is_real_dev_registered(
|
|
|
|
|
dev)){if(DATARMNET713da9913c(dev->_rx,cpu,raw_smp_processor_id(),
|
|
|
|
|
DATARMNET5780499e9c)==(0xd2d+202-0xdf7)){RCU_INIT_POINTER(rmnet_shs_switch,NULL)
|
|
|
|
|
;if(((0xd26+209-0xdf6)<<cpu)&DATARMNETbc3c416b77)DATARMNETb7ddf3c5dd[
|
|
|
|
|
DATARMNETf13db5ace8]++;else DATARMNETb7ddf3c5dd[DATARMNETb6eae1e097]++;
|
|
|
|
|
DATARMNETecc0627c70.DATARMNETba3f7a11ef=(0xd26+209-0xdf6)<<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;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=&
|
|
|
|
|
DATARMNET8ceb7a8cc9;int DATARMNET42a992465f;int DATARMNETcfb5dc7296;int
|
|
|
|
|
DATARMNETeaf6716f3e;struct DATARMNETe600c5b727*DATARMNET373e474754;u8 map=
|
|
|
|
|
DATARMNET63b1a086d5->DATARMNETfbbec4c537;DATARMNET5c4a331b9c=DATARMNETb6bff4a724
|
|
|
|
|
(DATARMNET63b1a086d5);do{DATARMNET5a2e9192f9=DATARMNET63b1a086d5->map_cpu;if(
|
|
|
|
|
DATARMNET5c4a331b9c<(0xd2d+202-0xdf7)){DATARMNET63b1a086d5->DATARMNET6250e93187=
|
|
|
|
|
(0xd2d+202-0xdf7);ret=(0xd26+209-0xdf6);break;}DATARMNET63b1a086d5->
|
|
|
|
|
DATARMNET6250e93187=(0xd26+209-0xdf6);if(!map){DATARMNET63b1a086d5->
|
|
|
|
|
DATARMNET6250e93187=(0xd2d+202-0xdf7);ret=(0xd26+209-0xdf6);break;}if(
|
|
|
|
|
DATARMNET5c4a331b9c==DATARMNET63b1a086d5->map_index){ret=(0xd26+209-0xdf6);break
|
|
|
|
|
;}DATARMNETd3673fd5f0=DATARMNETadb0248bd4(DATARMNET63b1a086d5->map_cpu);
|
|
|
|
|
DATARMNET9bbfe49633=DATARMNET63b1a086d5->queue_head;DATARMNET42a992465f=
|
|
|
|
|
DATARMNET63b1a086d5->map_cpu;DATARMNETeaf6716f3e=DATARMNET3de2536baf(
|
|
|
|
|
DATARMNET42a992465f).qlen+DATARMNET832731a933(DATARMNET42a992465f).qlen;if((
|
|
|
|
|
DATARMNET63b1a086d5->DATARMNET85c698ec34&&(!DATARMNETeaf6716f3e))||(!
|
|
|
|
|
DATARMNET63b1a086d5->DATARMNET85c698ec34&&DATARMNETd3673fd5f0>=
|
|
|
|
|
DATARMNET9bbfe49633)||(DATARMNETd87669e323)){if(likely(DATARMNETa7909611da)){if(
|
|
|
|
|
DATARMNET63b1a086d5->DATARMNET85c698ec34&&!((DATARMNET765b8ecfba(
|
|
|
|
|
DATARMNET63b1a086d5->dev,DATARMNET5c4a331b9c,DATARMNETd87669e323)==
|
|
|
|
|
(0xd2d+202-0xdf7)))){ret=(0xd26+209-0xdf6);break;}DATARMNETcfb5dc7296=
|
|
|
|
|
DATARMNETaef946bb68(DATARMNET5c4a331b9c,DATARMNET63b1a086d5->DATARMNETfbbec4c537
|
|
|
|
|
);if(DATARMNETcfb5dc7296<(0xd2d+202-0xdf7)){ret=(0xd26+209-0xdf6);break;}
|
|
|
|
|
DATARMNET0997c5650d[DATARMNETcfb5dc7296].DATARMNET4133fc9428+=
|
|
|
|
|
DATARMNET63b1a086d5->DATARMNETae4b27456e.DATARMNET6215127f48;DATARMNET0997c5650d
|
|
|
|
|
[DATARMNET63b1a086d5->map_cpu].DATARMNET4133fc9428-=DATARMNET63b1a086d5->
|
|
|
|
|
DATARMNETae4b27456e.DATARMNET6215127f48;DATARMNET63b1a086d5->map_index=
|
|
|
|
|
DATARMNET5c4a331b9c;DATARMNET63b1a086d5->map_cpu=DATARMNETcfb5dc7296;
|
|
|
|
|
DATARMNET8ceb7a8cc9=DATARMNET63b1a086d5->map_cpu;if(DATARMNETd3673fd5f0<
|
|
|
|
|
DATARMNET9bbfe49633){DATARMNETb7ddf3c5dd[DATARMNET28bb261646]++;
|
|
|
|
|
DATARMNETb7ddf3c5dd[DATARMNET67b67dc88f]+=(DATARMNET9bbfe49633-
|
|
|
|
|
DATARMNETd3673fd5f0);DATARMNET4bde88919f(DATARMNET42a992465f,DATARMNET9bbfe49633
|
|
|
|
|
-DATARMNETd3673fd5f0);}if(DATARMNET0997c5650d[DATARMNET42a992465f].
|
|
|
|
|
DATARMNETef866573e0){DATARMNET63b1a086d5->DATARMNET341ea38662->
|
|
|
|
|
DATARMNET6e1a4eaf09=DATARMNET8ceb7a8cc9;DATARMNET0997c5650d[DATARMNET8ceb7a8cc9]
|
|
|
|
|
.DATARMNET1e1f197118=(0xd26+209-0xdf6);DATARMNETb7ddf3c5dd[DATARMNETc3bce05be2]
|
|
|
|
|
++;}else{DATARMNETb7ddf3c5dd[DATARMNET14067f0be4]++;}DATARMNET373e474754=&
|
|
|
|
|
DATARMNET0997c5650d[DATARMNET63b1a086d5->map_cpu];DATARMNETe074a09496();
|
|
|
|
|
DATARMNET63b1a086d5->queue_head=DATARMNET373e474754->DATARMNETae196235f2;
|
|
|
|
|
DATARMNETe102b3a798(DATARMNET63b1a086d5,&DATARMNET373e474754->
|
|
|
|
@ -280,37 +335,42 @@ skb=NULL;struct sk_buff*DATARMNETcebafc57a4=NULL;u32 DATARMNETe20a9cab2b=
|
|
|
|
|
(0xd2d+202-0xdf7);u32 DATARMNETb481d13a78=(0xd2d+202-0xdf7);u32
|
|
|
|
|
DATARMNET1fcbf046ec=(0xd2d+202-0xdf7);u8 map=(0xd2d+202-0xdf7),
|
|
|
|
|
DATARMNET0258668025=(0xd2d+202-0xdf7);u16 DATARMNET87636d0152=(0xd2d+202-0xdf7);
|
|
|
|
|
if(!DATARMNET63b1a086d5->DATARMNETae4b27456e.head)return;map=DATARMNETecc0627c70
|
|
|
|
|
.map_mask;DATARMNET0258668025=DATARMNETecc0627c70.map_len;if(map){
|
|
|
|
|
DATARMNET1fcbf046ec=DATARMNET8532ab3089(DATARMNET63b1a086d5->map_index,
|
|
|
|
|
DATARMNET0258668025,DATARMNET63b1a086d5->DATARMNETae4b27456e.head->hash);}else{
|
|
|
|
|
DATARMNET63b1a086d5->DATARMNET6250e93187=(0xd2d+202-0xdf7);}DATARMNET52de1f3dc0(
|
|
|
|
|
DATARMNET4510abc30d,DATARMNETe4ee0d2636,DATARMNET63b1a086d5->hash,
|
|
|
|
|
DATARMNET1fcbf046ec,DATARMNET63b1a086d5->DATARMNETae4b27456e.DATARMNET6215127f48
|
|
|
|
|
,DATARMNET63b1a086d5->DATARMNETae4b27456e.DATARMNETbaa5765693,
|
|
|
|
|
DATARMNET63b1a086d5,DATARMNET63b1a086d5->DATARMNETae4b27456e.head);
|
|
|
|
|
DATARMNET87636d0152=(u16)DATARMNET63b1a086d5->DATARMNET341ea38662->
|
|
|
|
|
DATARMNET87636d0152;for((skb=DATARMNET63b1a086d5->DATARMNETae4b27456e.head);skb
|
|
|
|
|
!=NULL;skb=DATARMNETcebafc57a4){DATARMNETcebafc57a4=skb->next;if(
|
|
|
|
|
DATARMNET63b1a086d5->DATARMNET6250e93187)skb->hash=DATARMNET1fcbf046ec;skb->next
|
|
|
|
|
=NULL;DATARMNETe20a9cab2b+=(0xd26+209-0xdf6);DATARMNETb481d13a78+=skb->len;if(
|
|
|
|
|
DATARMNET87636d0152>(0xd2d+202-0xdf7)){if(DATARMNET63b1a086d5->
|
|
|
|
|
DATARMNET1e9d25d9ff==IPPROTO_UDP)DATARMNET68d84e7b98[DATARMNETdd6bf3de6b]++;
|
|
|
|
|
DATARMNET21243b86ae(skb,DATARMNETf345c1d909,DATARMNET87636d0152);}else{if(
|
|
|
|
|
DATARMNETf345c1d909==DATARMNET0b15fd8b54)DATARMNETe767554e6e(skb);else
|
|
|
|
|
DATARMNET514ce0bf59(skb);}}DATARMNET63b1a086d5->DATARMNETae4b27456e.
|
|
|
|
|
DATARMNET6215127f48=(0xd2d+202-0xdf7);DATARMNET63b1a086d5->DATARMNETae4b27456e.
|
|
|
|
|
DATARMNETbaa5765693=(0xd2d+202-0xdf7);DATARMNET63b1a086d5->DATARMNETae4b27456e.
|
|
|
|
|
head=NULL;DATARMNET63b1a086d5->DATARMNETae4b27456e.tail=NULL;DATARMNET52de1f3dc0
|
|
|
|
|
(DATARMNET4510abc30d,DATARMNETfb753e521e,DATARMNET63b1a086d5->hash,
|
|
|
|
|
DATARMNET1fcbf046ec,DATARMNETe20a9cab2b,DATARMNETb481d13a78,DATARMNET63b1a086d5,
|
|
|
|
|
NULL);}void DATARMNET23c7ddd780(struct DATARMNET63d7680df2*DATARMNET63b1a086d5,
|
|
|
|
|
u8 DATARMNET5447204733){struct sk_buff*skb;struct sk_buff*DATARMNETcebafc57a4=
|
|
|
|
|
NULL;u32 DATARMNETe20a9cab2b=(0xd2d+202-0xdf7);u32 DATARMNETb481d13a78=
|
|
|
|
|
u16 index;if(!DATARMNET63b1a086d5->DATARMNETae4b27456e.head)return;if(!
|
|
|
|
|
DATARMNET63b1a086d5->DATARMNETfbbec4c537){map=DATARMNETecc0627c70.map_mask;
|
|
|
|
|
DATARMNET0258668025=DATARMNETecc0627c70.map_len;index=DATARMNET63b1a086d5->
|
|
|
|
|
map_index;}else{map=DATARMNET63b1a086d5->DATARMNETfbbec4c537;DATARMNET0258668025
|
|
|
|
|
=DATARMNET63b1a086d5->DATARMNETa59ce1fd2d;index=DATARMNET63b1a086d5->map_index;}
|
|
|
|
|
if(map){DATARMNET1fcbf046ec=DATARMNET8532ab3089(index,DATARMNET0258668025,
|
|
|
|
|
DATARMNET63b1a086d5->DATARMNETae4b27456e.head->hash);}else{DATARMNET63b1a086d5->
|
|
|
|
|
DATARMNET6250e93187=(0xd2d+202-0xdf7);}DATARMNET52de1f3dc0(DATARMNET4510abc30d,
|
|
|
|
|
DATARMNETe4ee0d2636,DATARMNET63b1a086d5->hash,DATARMNET1fcbf046ec,
|
|
|
|
|
DATARMNET63b1a086d5->DATARMNETae4b27456e.DATARMNET6215127f48,DATARMNET63b1a086d5
|
|
|
|
|
->DATARMNETae4b27456e.DATARMNETbaa5765693,DATARMNET63b1a086d5,
|
|
|
|
|
DATARMNET63b1a086d5->DATARMNETae4b27456e.head);DATARMNET87636d0152=(u16)
|
|
|
|
|
DATARMNET63b1a086d5->DATARMNET341ea38662->DATARMNET87636d0152;for((skb=
|
|
|
|
|
DATARMNET63b1a086d5->DATARMNETae4b27456e.head);skb!=NULL;skb=DATARMNETcebafc57a4
|
|
|
|
|
){DATARMNETcebafc57a4=skb->next;if(DATARMNET63b1a086d5->DATARMNET6250e93187)skb
|
|
|
|
|
->hash=DATARMNET1fcbf046ec;skb->next=NULL;DATARMNETe20a9cab2b+=(0xd26+209-0xdf6)
|
|
|
|
|
;DATARMNETb481d13a78+=skb->len;if(DATARMNET87636d0152>(0xd2d+202-0xdf7)){if(
|
|
|
|
|
DATARMNET63b1a086d5->DATARMNET1e9d25d9ff==IPPROTO_UDP)DATARMNET68d84e7b98[
|
|
|
|
|
DATARMNETdd6bf3de6b]++;DATARMNET21243b86ae(skb,DATARMNETf345c1d909,
|
|
|
|
|
DATARMNET87636d0152);}else{if(DATARMNETf345c1d909==DATARMNET0b15fd8b54&&(!
|
|
|
|
|
DATARMNET63b1a086d5->DATARMNET85c698ec34))DATARMNETe767554e6e(skb);else if(
|
|
|
|
|
DATARMNETf345c1d909==DATARMNET5b5927fd7e&&DATARMNET63b1a086d5->
|
|
|
|
|
DATARMNET85c698ec34)DATARMNETe767554e6e(skb);else DATARMNET514ce0bf59(skb);}}
|
|
|
|
|
DATARMNET63b1a086d5->DATARMNETae4b27456e.DATARMNET6215127f48=(0xd2d+202-0xdf7);
|
|
|
|
|
DATARMNET63b1a086d5->DATARMNETae4b27456e.DATARMNETbaa5765693=(0xd2d+202-0xdf7);
|
|
|
|
|
DATARMNET63b1a086d5->DATARMNETae4b27456e.head=NULL;DATARMNET63b1a086d5->
|
|
|
|
|
DATARMNETae4b27456e.tail=NULL;DATARMNET52de1f3dc0(DATARMNET4510abc30d,
|
|
|
|
|
DATARMNETfb753e521e,DATARMNET63b1a086d5->hash,DATARMNET1fcbf046ec,
|
|
|
|
|
DATARMNETe20a9cab2b,DATARMNETb481d13a78,DATARMNET63b1a086d5,NULL);}void
|
|
|
|
|
DATARMNET23c7ddd780(struct DATARMNET63d7680df2*DATARMNET63b1a086d5,u8
|
|
|
|
|
DATARMNET5447204733){struct sk_buff*skb;struct sk_buff*DATARMNETcebafc57a4=NULL;
|
|
|
|
|
u32 DATARMNETe20a9cab2b=(0xd2d+202-0xdf7);u32 DATARMNETb481d13a78=
|
|
|
|
|
(0xd2d+202-0xdf7);u32 DATARMNET1fcbf046ec;u8 map,DATARMNET0258668025;if(!
|
|
|
|
|
DATARMNET63b1a086d5->DATARMNETae4b27456e.head)return;map=DATARMNETecc0627c70.
|
|
|
|
|
map_mask;DATARMNET0258668025=DATARMNETecc0627c70.map_len;if(map){
|
|
|
|
|
DATARMNET1fcbf046ec=DATARMNET8532ab3089(DATARMNET63b1a086d5->map_index,
|
|
|
|
|
DATARMNET63b1a086d5->DATARMNETae4b27456e.head)return;map=DATARMNET63b1a086d5->
|
|
|
|
|
DATARMNETfbbec4c537;DATARMNET0258668025=DATARMNET63b1a086d5->DATARMNETa59ce1fd2d
|
|
|
|
|
;if(map){DATARMNET1fcbf046ec=DATARMNET8532ab3089(DATARMNET63b1a086d5->map_index,
|
|
|
|
|
DATARMNET0258668025,DATARMNET63b1a086d5->DATARMNETae4b27456e.head->hash);}else{
|
|
|
|
|
DATARMNET63b1a086d5->DATARMNET6250e93187=(0xd2d+202-0xdf7);}for((skb=
|
|
|
|
|
DATARMNET63b1a086d5->DATARMNETae4b27456e.head);skb!=NULL;skb=DATARMNETcebafc57a4
|
|
|
|
@ -323,40 +383,41 @@ DATARMNETb481d13a78;DATARMNETecc0627c70.DATARMNETa2e32cdd3a-=DATARMNETe20a9cab2b
|
|
|
|
|
;DATARMNET0997c5650d[DATARMNET63b1a086d5->map_cpu].DATARMNET4133fc9428-=
|
|
|
|
|
DATARMNETe20a9cab2b;}int DATARMNETe02152c351(struct DATARMNET63d7680df2*
|
|
|
|
|
DATARMNET63b1a086d5,u8 DATARMNETd87669e323,u8 DATARMNET5447204733){int
|
|
|
|
|
DATARMNETbd864aa442=(0xd2d+202-0xdf7);int map=DATARMNETecc0627c70.map_mask;int
|
|
|
|
|
DATARMNET5643f7b5e9;DATARMNET52de1f3dc0(DATARMNET4510abc30d,DATARMNET022082b219,
|
|
|
|
|
DATARMNETd87669e323,DATARMNET5447204733,(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),
|
|
|
|
|
DATARMNET63b1a086d5,NULL);if(DATARMNETaef946bb68(DATARMNET63b1a086d5->map_index,
|
|
|
|
|
map)!=DATARMNET63b1a086d5->map_cpu){DATARMNET5643f7b5e9=DATARMNET04e8d1b862(
|
|
|
|
|
DATARMNET63b1a086d5->map_cpu,map);if(DATARMNET5643f7b5e9>=(0xd2d+202-0xdf7)){
|
|
|
|
|
DATARMNET63b1a086d5->map_index=DATARMNET5643f7b5e9;DATARMNET63b1a086d5->map_cpu=
|
|
|
|
|
DATARMNETaef946bb68(DATARMNET5643f7b5e9,map);}else{DATARMNET63b1a086d5->
|
|
|
|
|
map_index=DATARMNET2edff26954;DATARMNET63b1a086d5->map_cpu=DATARMNETaef946bb68(
|
|
|
|
|
DATARMNETbd864aa442=(0xd2d+202-0xdf7);int map=DATARMNET63b1a086d5->
|
|
|
|
|
DATARMNETfbbec4c537;int DATARMNET5643f7b5e9;DATARMNET52de1f3dc0(
|
|
|
|
|
DATARMNET4510abc30d,DATARMNET022082b219,DATARMNETd87669e323,DATARMNET5447204733,
|
|
|
|
|
(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),DATARMNET63b1a086d5,NULL);if(
|
|
|
|
|
DATARMNETaef946bb68(DATARMNET63b1a086d5->map_index,map)!=DATARMNET63b1a086d5->
|
|
|
|
|
map_cpu){DATARMNET5643f7b5e9=DATARMNET04e8d1b862(DATARMNET63b1a086d5->map_cpu,
|
|
|
|
|
map);if(DATARMNET5643f7b5e9>=(0xd2d+202-0xdf7)){DATARMNET63b1a086d5->map_index=
|
|
|
|
|
DATARMNET5643f7b5e9;DATARMNET63b1a086d5->map_cpu=DATARMNETaef946bb68(
|
|
|
|
|
DATARMNET5643f7b5e9,map);}else{DATARMNET63b1a086d5->map_index=
|
|
|
|
|
DATARMNET2edff26954;DATARMNET63b1a086d5->map_cpu=DATARMNETaef946bb68(
|
|
|
|
|
DATARMNET2edff26954,map);if(DATARMNET63b1a086d5->map_cpu<(0xd2d+202-0xdf7))
|
|
|
|
|
DATARMNET63b1a086d5->map_cpu=DATARMNET2edff26954;}DATARMNETd87669e323=
|
|
|
|
|
(0xd26+209-0xdf6);DATARMNET68d84e7b98[DATARMNETa1f9420686]++;DATARMNET015fb2ba0e
|
|
|
|
|
(DATARMNET720469c0a9,DATARMNET998c6de143,(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),
|
|
|
|
|
(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),NULL,NULL);}if(DATARMNETe488c1c396(
|
|
|
|
|
DATARMNET63b1a086d5,DATARMNETd87669e323)){DATARMNETcba2f7f7b6(
|
|
|
|
|
DATARMNET63b1a086d5,DATARMNET5447204733);DATARMNETbd864aa442=(0xd26+209-0xdf6);}
|
|
|
|
|
DATARMNET52de1f3dc0(DATARMNET4510abc30d,DATARMNET64b02f64c6,DATARMNETbd864aa442,
|
|
|
|
|
DATARMNETd87669e323,(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),DATARMNET63b1a086d5,
|
|
|
|
|
NULL);return DATARMNETbd864aa442;}static void DATARMNETc54e431bbc(u8
|
|
|
|
|
DATARMNET42a992465f,u8 DATARMNET7845d39672,u32 DATARMNETea08087fc0){u32
|
|
|
|
|
DATARMNETba6017a3a9=(!DATARMNET227d2ff866)?(0xd26+209-0xdf6):DATARMNET227d2ff866
|
|
|
|
|
;int DATARMNETd9d8392917;if((DATARMNETd9d8392917=DATARMNET2af09ccd0b(
|
|
|
|
|
DATARMNET42a992465f,DATARMNET7845d39672,DATARMNETea08087fc0))&&
|
|
|
|
|
DATARMNET362b15f941(DATARMNET42a992465f)&&!DATARMNET0997c5650d[
|
|
|
|
|
DATARMNET42a992465f].DATARMNETef866573e0){DATARMNETba6017a3a9=(!
|
|
|
|
|
DATARMNET7845d39672)?DATARMNET249a927510:DATARMNETba6017a3a9;DATARMNET0997c5650d
|
|
|
|
|
[DATARMNET42a992465f].DATARMNETef866573e0=(0xd26+209-0xdf6);DATARMNETfb7007f025(
|
|
|
|
|
);if(hrtimer_active(&DATARMNETba5ea4329f(DATARMNET42a992465f)))hrtimer_cancel(&
|
|
|
|
|
DATARMNETba5ea4329f(DATARMNET42a992465f));hrtimer_start(&DATARMNETba5ea4329f(
|
|
|
|
|
DATARMNET42a992465f),ns_to_ktime(DATARMNETba6017a3a9*DATARMNET68fc0be252),
|
|
|
|
|
HRTIMER_MODE_REL);DATARMNETb7ddf3c5dd[DATARMNETd9d8392917]++;}}void
|
|
|
|
|
DATARMNETe377e0368d(u8 DATARMNETded3da1a77,u8 DATARMNET5447204733){struct
|
|
|
|
|
DATARMNET63d7680df2*DATARMNET3f85732c70=NULL;struct list_head*
|
|
|
|
|
DATARMNET7b34b7b5be=NULL,*next=NULL;int DATARMNET42a992465f;u32
|
|
|
|
|
DATARMNET63b1a086d5,DATARMNETd87669e323,DATARMNET5447204733)){
|
|
|
|
|
DATARMNETcba2f7f7b6(DATARMNET63b1a086d5,DATARMNET5447204733);DATARMNETbd864aa442
|
|
|
|
|
=(0xd26+209-0xdf6);}DATARMNET52de1f3dc0(DATARMNET4510abc30d,DATARMNET64b02f64c6,
|
|
|
|
|
DATARMNETbd864aa442,DATARMNETd87669e323,(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),
|
|
|
|
|
DATARMNET63b1a086d5,NULL);return DATARMNETbd864aa442;}static void
|
|
|
|
|
DATARMNETc54e431bbc(u8 DATARMNET42a992465f,u8 DATARMNET7845d39672,u32
|
|
|
|
|
DATARMNETea08087fc0){u32 DATARMNETba6017a3a9=(!DATARMNET227d2ff866)?
|
|
|
|
|
(0xd26+209-0xdf6):DATARMNET227d2ff866;int DATARMNETd9d8392917;if((
|
|
|
|
|
DATARMNETd9d8392917=DATARMNET2af09ccd0b(DATARMNET42a992465f,DATARMNET7845d39672,
|
|
|
|
|
DATARMNETea08087fc0))&&DATARMNET362b15f941(DATARMNET42a992465f)&&!
|
|
|
|
|
DATARMNET0997c5650d[DATARMNET42a992465f].DATARMNETef866573e0){
|
|
|
|
|
DATARMNETba6017a3a9=(!DATARMNET7845d39672)?DATARMNET249a927510:
|
|
|
|
|
DATARMNETba6017a3a9;DATARMNET0997c5650d[DATARMNET42a992465f].DATARMNETef866573e0
|
|
|
|
|
=(0xd26+209-0xdf6);DATARMNETfb7007f025();if(hrtimer_active(&DATARMNETba5ea4329f(
|
|
|
|
|
DATARMNET42a992465f)))hrtimer_cancel(&DATARMNETba5ea4329f(DATARMNET42a992465f));
|
|
|
|
|
hrtimer_start(&DATARMNETba5ea4329f(DATARMNET42a992465f),ns_to_ktime(
|
|
|
|
|
DATARMNETba6017a3a9*DATARMNET68fc0be252),HRTIMER_MODE_REL);DATARMNETb7ddf3c5dd[
|
|
|
|
|
DATARMNETd9d8392917]++;}}void DATARMNETe377e0368d(u8 DATARMNETded3da1a77,u8
|
|
|
|
|
DATARMNET5447204733){struct DATARMNET63d7680df2*DATARMNET3f85732c70=NULL;struct
|
|
|
|
|
list_head*DATARMNET7b34b7b5be=NULL,*next=NULL;int DATARMNET42a992465f;u32
|
|
|
|
|
DATARMNET61ab18a4bd;u32 DATARMNETed7800fc72=(0xd2d+202-0xdf7);u32
|
|
|
|
|
DATARMNETa0df5de99d=(0xd2d+202-0xdf7);u32 DATARMNETe56f4fbbe6=(0xd2d+202-0xdf7);
|
|
|
|
|
u32 DATARMNET8bf94cc2f7=(0xd2d+202-0xdf7);u32 DATARMNET76192fa639=
|
|
|
|
@ -418,47 +479,52 @@ DATARMNET6fd692fc7a);hrtimer_start(&DATARMNETecc0627c70.DATARMNET6fd692fc7a,
|
|
|
|
|
ns_to_ktime(DATARMNET4ac8af832c*DATARMNET68fc0be252),HRTIMER_MODE_REL);}
|
|
|
|
|
DATARMNET14ed771dfb[DATARMNETd45c383019]++;}spin_unlock_irqrestore(&
|
|
|
|
|
DATARMNET3764d083f0,ht_flags);}void DATARMNET495dab3d72(struct sk_buff*skb,
|
|
|
|
|
struct DATARMNET63d7680df2*DATARMNET63b1a086d5){u8 DATARMNET7d63e92341=
|
|
|
|
|
(0xd2d+202-0xdf7);if(skb->cb[DATARMNET8fadb49f38]){DATARMNETe377e0368d(
|
|
|
|
|
(0xd2d+202-0xdf7),DATARMNET0b15fd8b54);DATARMNET14ed771dfb[DATARMNETc8058e2cff]
|
|
|
|
|
++;DATARMNET7d63e92341=(0xd26+209-0xdf6);}if(skb_shinfo(skb)->gso_segs){
|
|
|
|
|
DATARMNET63b1a086d5->DATARMNET11930c5df8+=skb_shinfo(skb)->gso_segs;
|
|
|
|
|
DATARMNET0997c5650d[DATARMNET63b1a086d5->map_cpu].DATARMNET4133fc9428++;
|
|
|
|
|
DATARMNET63b1a086d5->DATARMNETae4b27456e.DATARMNET35234676d4+=skb_shinfo(skb)->
|
|
|
|
|
gso_segs;}else{DATARMNET63b1a086d5->DATARMNET11930c5df8+=(0xd26+209-0xdf6);
|
|
|
|
|
DATARMNET0997c5650d[DATARMNET63b1a086d5->map_cpu].DATARMNET4133fc9428++;
|
|
|
|
|
DATARMNET63b1a086d5->DATARMNETae4b27456e.DATARMNET35234676d4++;}
|
|
|
|
|
DATARMNET63b1a086d5->DATARMNETa8940e4a7b+=(0xd26+209-0xdf6);DATARMNET63b1a086d5
|
|
|
|
|
->DATARMNET2594c418db+=skb->len;DATARMNET63b1a086d5->DATARMNETae4b27456e.
|
|
|
|
|
DATARMNETbaa5765693+=skb->len;DATARMNETecc0627c70.DATARMNETc252a1f55d+=skb->len;
|
|
|
|
|
if(DATARMNET63b1a086d5->DATARMNETae4b27456e.DATARMNET6215127f48>
|
|
|
|
|
(0xd2d+202-0xdf7)){DATARMNET63b1a086d5->DATARMNETae4b27456e.tail->next=skb;
|
|
|
|
|
DATARMNET63b1a086d5->DATARMNETae4b27456e.tail=DATARMNET63b1a086d5->
|
|
|
|
|
DATARMNETae4b27456e.tail->next;}else{DATARMNET63b1a086d5->DATARMNETae4b27456e.
|
|
|
|
|
head=skb;DATARMNET63b1a086d5->DATARMNETae4b27456e.tail=skb;}DATARMNET63b1a086d5
|
|
|
|
|
->DATARMNETae4b27456e.DATARMNET6215127f48+=(0xd26+209-0xdf6);DATARMNETecc0627c70
|
|
|
|
|
.DATARMNETa2e32cdd3a+=(0xd26+209-0xdf6);if(unlikely(DATARMNET7d63e92341))
|
|
|
|
|
DATARMNETe377e0368d((0xd2d+202-0xdf7),DATARMNET0b15fd8b54);DATARMNET52de1f3dc0(
|
|
|
|
|
DATARMNET720469c0a9,DATARMNETf5c836f9ae,DATARMNET63b1a086d5->DATARMNETae4b27456e
|
|
|
|
|
.DATARMNET6215127f48,DATARMNET63b1a086d5->DATARMNETae4b27456e.
|
|
|
|
|
DATARMNETbaa5765693,DATARMNETecc0627c70.DATARMNETa2e32cdd3a,DATARMNETecc0627c70.
|
|
|
|
|
DATARMNETc252a1f55d,skb,DATARMNET63b1a086d5);}static void DATARMNETa7afc8cdaa(
|
|
|
|
|
struct work_struct*DATARMNET33110a3ff5){u8 DATARMNET665469cfb6=(0xd2d+202-0xdf7)
|
|
|
|
|
;DATARMNET52de1f3dc0(DATARMNET4510abc30d,DATARMNET816bb1e327,DATARMNET665469cfb6
|
|
|
|
|
,DATARMNETecc0627c70.DATARMNET34097703c8,(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),
|
|
|
|
|
NULL,NULL);if(DATARMNETecc0627c70.DATARMNETa2e32cdd3a&&DATARMNETecc0627c70.
|
|
|
|
|
DATARMNET34097703c8==DATARMNETb3e3b2a799){local_bh_disable();DATARMNETa4bf9fbf64
|
|
|
|
|
(DATARMNET665469cfb6,DATARMNET5b5927fd7e);local_bh_enable();}DATARMNET52de1f3dc0
|
|
|
|
|
(DATARMNET4510abc30d,DATARMNETf311f20c00,DATARMNET665469cfb6,(0x16e8+787-0xc0c),
|
|
|
|
|
(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),NULL,NULL);}enum hrtimer_restart
|
|
|
|
|
DATARMNET0a73c53ae6(struct hrtimer*DATARMNET6e4292679f){enum hrtimer_restart ret
|
|
|
|
|
=HRTIMER_NORESTART;DATARMNET52de1f3dc0(DATARMNET4510abc30d,DATARMNET237e7bd5f6,
|
|
|
|
|
DATARMNETecc0627c70.DATARMNET34097703c8,(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),
|
|
|
|
|
(0x16e8+787-0xc0c),NULL,NULL);if(DATARMNETecc0627c70.DATARMNETa2e32cdd3a>
|
|
|
|
|
(0xd2d+202-0xdf7)){if(DATARMNETecc0627c70.DATARMNET34097703c8==
|
|
|
|
|
DATARMNET7bc926fdbe){DATARMNETecc0627c70.DATARMNET34097703c8=DATARMNETb3e3b2a799
|
|
|
|
|
;hrtimer_forward(DATARMNET6e4292679f,hrtimer_cb_get_time(DATARMNET6e4292679f),
|
|
|
|
|
ns_to_ktime(DATARMNET00d5787aad));ret=HRTIMER_RESTART;DATARMNET52de1f3dc0(
|
|
|
|
|
struct DATARMNET63d7680df2*DATARMNET63b1a086d5,struct rmnet_shs_clnt_s*
|
|
|
|
|
DATARMNET0bf01e7c6f){u8 DATARMNET7d63e92341=(0xd2d+202-0xdf7);
|
|
|
|
|
#ifdef DATARMNETdddae6afa8
|
|
|
|
|
if(!(DATARMNET0bf01e7c6f->config&DATARMNET2a76d433b3)&&skb->cb[
|
|
|
|
|
DATARMNET8fadb49f38]){DATARMNETe377e0368d((0xd2d+202-0xdf7),DATARMNET0b15fd8b54)
|
|
|
|
|
;DATARMNET14ed771dfb[DATARMNETc8058e2cff]++;DATARMNET7d63e92341=
|
|
|
|
|
(0xd26+209-0xdf6);}
|
|
|
|
|
#endif
|
|
|
|
|
if(skb_shinfo(skb)->gso_segs){DATARMNET63b1a086d5->DATARMNET11930c5df8+=
|
|
|
|
|
skb_shinfo(skb)->gso_segs;DATARMNET0997c5650d[DATARMNET63b1a086d5->map_cpu].
|
|
|
|
|
DATARMNET4133fc9428++;DATARMNET63b1a086d5->DATARMNETae4b27456e.
|
|
|
|
|
DATARMNET35234676d4+=skb_shinfo(skb)->gso_segs;}else{DATARMNET63b1a086d5->
|
|
|
|
|
DATARMNET11930c5df8+=(0xd26+209-0xdf6);DATARMNET0997c5650d[DATARMNET63b1a086d5->
|
|
|
|
|
map_cpu].DATARMNET4133fc9428++;DATARMNET63b1a086d5->DATARMNETae4b27456e.
|
|
|
|
|
DATARMNET35234676d4++;}DATARMNET63b1a086d5->DATARMNETa8940e4a7b+=
|
|
|
|
|
(0xd26+209-0xdf6);DATARMNET63b1a086d5->DATARMNET2594c418db+=skb->len;
|
|
|
|
|
DATARMNET63b1a086d5->DATARMNETae4b27456e.DATARMNETbaa5765693+=skb->len;
|
|
|
|
|
DATARMNETecc0627c70.DATARMNETc252a1f55d+=skb->len;if(DATARMNET63b1a086d5->
|
|
|
|
|
DATARMNETae4b27456e.DATARMNET6215127f48>(0xd2d+202-0xdf7)){DATARMNET63b1a086d5->
|
|
|
|
|
DATARMNETae4b27456e.tail->next=skb;DATARMNET63b1a086d5->DATARMNETae4b27456e.tail
|
|
|
|
|
=DATARMNET63b1a086d5->DATARMNETae4b27456e.tail->next;}else{DATARMNET63b1a086d5->
|
|
|
|
|
DATARMNETae4b27456e.head=skb;DATARMNET63b1a086d5->DATARMNETae4b27456e.tail=skb;}
|
|
|
|
|
DATARMNET63b1a086d5->DATARMNETae4b27456e.DATARMNET6215127f48+=(0xd26+209-0xdf6);
|
|
|
|
|
DATARMNETecc0627c70.DATARMNETa2e32cdd3a+=(0xd26+209-0xdf6);if(unlikely(
|
|
|
|
|
DATARMNET7d63e92341))DATARMNETe377e0368d((0xd2d+202-0xdf7),DATARMNET0b15fd8b54);
|
|
|
|
|
DATARMNET52de1f3dc0(DATARMNET720469c0a9,DATARMNETf5c836f9ae,DATARMNET63b1a086d5
|
|
|
|
|
->DATARMNETae4b27456e.DATARMNET6215127f48,DATARMNET63b1a086d5->
|
|
|
|
|
DATARMNETae4b27456e.DATARMNETbaa5765693,DATARMNETecc0627c70.DATARMNETa2e32cdd3a,
|
|
|
|
|
DATARMNETecc0627c70.DATARMNETc252a1f55d,skb,DATARMNET63b1a086d5);}static void
|
|
|
|
|
DATARMNETa7afc8cdaa(struct work_struct*DATARMNET33110a3ff5){u8
|
|
|
|
|
DATARMNET665469cfb6=(0xd2d+202-0xdf7);DATARMNET52de1f3dc0(DATARMNET4510abc30d,
|
|
|
|
|
DATARMNET816bb1e327,DATARMNET665469cfb6,DATARMNETecc0627c70.DATARMNET34097703c8,
|
|
|
|
|
(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),NULL,NULL);if(DATARMNETecc0627c70.
|
|
|
|
|
DATARMNETa2e32cdd3a&&DATARMNETecc0627c70.DATARMNET34097703c8==
|
|
|
|
|
DATARMNETb3e3b2a799){local_bh_disable();DATARMNETa4bf9fbf64(DATARMNET665469cfb6,
|
|
|
|
|
DATARMNET5b5927fd7e);local_bh_enable();}DATARMNET52de1f3dc0(DATARMNET4510abc30d,
|
|
|
|
|
DATARMNETf311f20c00,DATARMNET665469cfb6,(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),
|
|
|
|
|
(0x16e8+787-0xc0c),NULL,NULL);}enum hrtimer_restart DATARMNET0a73c53ae6(struct
|
|
|
|
|
hrtimer*DATARMNET6e4292679f){enum hrtimer_restart ret=HRTIMER_NORESTART;
|
|
|
|
|
DATARMNET52de1f3dc0(DATARMNET4510abc30d,DATARMNET237e7bd5f6,DATARMNETecc0627c70.
|
|
|
|
|
DATARMNET34097703c8,(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),
|
|
|
|
|
NULL,NULL);if(DATARMNETecc0627c70.DATARMNETa2e32cdd3a>(0xd2d+202-0xdf7)){if(
|
|
|
|
|
DATARMNETecc0627c70.DATARMNET34097703c8==DATARMNET7bc926fdbe){
|
|
|
|
|
DATARMNETecc0627c70.DATARMNET34097703c8=DATARMNETb3e3b2a799;hrtimer_forward(
|
|
|
|
|
DATARMNET6e4292679f,hrtimer_cb_get_time(DATARMNET6e4292679f),ns_to_ktime(
|
|
|
|
|
DATARMNET00d5787aad));ret=HRTIMER_RESTART;DATARMNET52de1f3dc0(
|
|
|
|
|
DATARMNET4510abc30d,DATARMNETf16e78412b,DATARMNETecc0627c70.DATARMNETa2e32cdd3a,
|
|
|
|
|
(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),NULL,NULL);}else if(
|
|
|
|
|
DATARMNETecc0627c70.DATARMNET34097703c8==DATARMNET8dcf06727b){
|
|
|
|
@ -529,11 +595,12 @@ DATARMNETfc89d842ae)return;map=rcu_dereference(vnd->_rx->rps_map);if(!map){
|
|
|
|
|
map_mask=(0xd2d+202-0xdf7);map_len=(0xd2d+202-0xdf7);}else{map_mask=
|
|
|
|
|
DATARMNET928c931df9(map);map_len=DATARMNET310c3eb16e(map_mask);}
|
|
|
|
|
DATARMNETecc0627c70.port=rmnet_get_port(dev);DATARMNETecc0627c70.map_mask=
|
|
|
|
|
map_mask;DATARMNETecc0627c70.map_len=map_len;for(DATARMNET0e4304d903=
|
|
|
|
|
(0xd2d+202-0xdf7);DATARMNET0e4304d903<DATARMNETc6782fed88;DATARMNET0e4304d903++)
|
|
|
|
|
INIT_LIST_HEAD(&DATARMNET0997c5650d[DATARMNET0e4304d903].DATARMNET3dc4262f53);
|
|
|
|
|
DATARMNETe6e8431304();rc=register_oom_notifier(&DATARMNET105c85d84c);if(rc<
|
|
|
|
|
(0xd2d+202-0xdf7)){pr_info(
|
|
|
|
|
map_mask;DATARMNETecc0627c70.map_len=map_len;DATARMNETecc0627c70.
|
|
|
|
|
DATARMNETba3f7a11ef=(0xd1f+216-0xdf5);DATARMNETecc0627c70.DATARMNET5c24e1df05=
|
|
|
|
|
(0xd26+209-0xdf6);for(DATARMNET0e4304d903=(0xd2d+202-0xdf7);DATARMNET0e4304d903<
|
|
|
|
|
DATARMNETc6782fed88;DATARMNET0e4304d903++)INIT_LIST_HEAD(&DATARMNET0997c5650d[
|
|
|
|
|
DATARMNET0e4304d903].DATARMNET3dc4262f53);DATARMNETe6e8431304();rc=
|
|
|
|
|
register_oom_notifier(&DATARMNET105c85d84c);if(rc<(0xd2d+202-0xdf7)){pr_info(
|
|
|
|
|
"\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*
|
|
|
|
@ -570,27 +637,32 @@ DATARMNETe33b41dad9.tp),tp,sizeof(struct tcphdr));}else if(node_p->
|
|
|
|
|
DATARMNET1e9d25d9ff==IPPROTO_UDP){up=DATARMNETefcaf5fbe9(skb,ip_len,sizeof(*up),
|
|
|
|
|
&DATARMNETc82d2f4e16);if(!up)return;memcpy(&(node_p->DATARMNETe33b41dad9.up),up,
|
|
|
|
|
sizeof(struct udphdr));}else{}}int DATARMNET756778f14f(struct sk_buff*skb,struct
|
|
|
|
|
rmnet_port*port){struct DATARMNET63d7680df2*node_p;struct hlist_node*tmp;struct
|
|
|
|
|
net_device*dev=skb->dev;int map=DATARMNETecc0627c70.map_mask;unsigned long
|
|
|
|
|
ht_flags;int DATARMNETcfb5dc7296;int map_cpu;u64 DATARMNET138d6d02d2=
|
|
|
|
|
(0xd2d+202-0xdf7);u32 DATARMNET5c4a331b9c,hash;u8 is_match_found=
|
|
|
|
|
(0xd2d+202-0xdf7);u8 DATARMNET935af10724=(0xd2d+202-0xdf7);struct
|
|
|
|
|
DATARMNETe600c5b727*DATARMNETa4055affd5;struct rmnet_priv*priv;if(!
|
|
|
|
|
DATARMNET9303cec796(skb)){DATARMNETe767554e6e(skb);return(0xd2d+202-0xdf7);}if((
|
|
|
|
|
unlikely(!map))||!DATARMNETecc0627c70.DATARMNETfc89d842ae){DATARMNETe767554e6e(
|
|
|
|
|
skb);DATARMNET015fb2ba0e(DATARMNET720469c0a9,DATARMNETe0fee0991a,
|
|
|
|
|
(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),NULL
|
|
|
|
|
,NULL);DATARMNET68d84e7b98[DATARMNETe3c02ddaeb]++;return(0xd2d+202-0xdf7);}
|
|
|
|
|
DATARMNET52de1f3dc0(DATARMNET720469c0a9,DATARMNET856c53293b,(0x16e8+787-0xc0c),
|
|
|
|
|
(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),skb,NULL);hash=
|
|
|
|
|
skb_get_hash(skb);spin_lock_irqsave(&DATARMNET3764d083f0,ht_flags);do{
|
|
|
|
|
hash_for_each_possible_safe(DATARMNETe603c3a4b3,node_p,tmp,list,hash){if(hash!=
|
|
|
|
|
rmnet_shs_clnt_s*DATARMNET0bf01e7c6f){struct DATARMNET63d7680df2*node_p;struct
|
|
|
|
|
hlist_node*tmp;int map=DATARMNETecc0627c70.map_mask;unsigned long ht_flags;int
|
|
|
|
|
DATARMNETcfb5dc7296;int map_cpu;u32 DATARMNET5c4a331b9c,hash;u8 is_match_found=
|
|
|
|
|
(0xd2d+202-0xdf7);u8 DATARMNET935af10724=(0xd2d+202-0xdf7);u8
|
|
|
|
|
DATARMNET7c5ef97eab=(0xd2d+202-0xdf7);struct DATARMNETe600c5b727*
|
|
|
|
|
DATARMNETa4055affd5;struct rmnet_priv*priv;if(!(DATARMNET0bf01e7c6f->config&
|
|
|
|
|
RMNET_SHS_STMP_ALL)&&!DATARMNET9303cec796(skb)){DATARMNETe767554e6e(skb);return
|
|
|
|
|
(0xd2d+202-0xdf7);}if((unlikely(!map))||!DATARMNETecc0627c70.DATARMNETfc89d842ae
|
|
|
|
|
){DATARMNETe767554e6e(skb);DATARMNET015fb2ba0e(DATARMNET720469c0a9,
|
|
|
|
|
DATARMNETe0fee0991a,(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),
|
|
|
|
|
(0x16e8+787-0xc0c),NULL,NULL);DATARMNET68d84e7b98[DATARMNETe3c02ddaeb]++;return
|
|
|
|
|
(0xd2d+202-0xdf7);}DATARMNET52de1f3dc0(DATARMNET720469c0a9,DATARMNET856c53293b,
|
|
|
|
|
(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),skb,
|
|
|
|
|
NULL);hash=skb_get_hash(skb);spin_lock_irqsave(&DATARMNET3764d083f0,ht_flags);do
|
|
|
|
|
{hash_for_each_possible_safe(DATARMNETe603c3a4b3,node_p,tmp,list,hash){if(hash!=
|
|
|
|
|
node_p->hash)continue;DATARMNETda96251102(DATARMNET720469c0a9,
|
|
|
|
|
DATARMNET08b6defcff,(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),
|
|
|
|
|
(0x16e8+787-0xc0c),skb,NULL);DATARMNET5c4a331b9c=node_p->map_index;
|
|
|
|
|
DATARMNET495dab3d72(skb,node_p);is_match_found=(0xd26+209-0xdf6);
|
|
|
|
|
DATARMNET935af10724=(0xd26+209-0xdf6);break;}if(is_match_found)break;
|
|
|
|
|
DATARMNETcfb5dc7296=DATARMNET217fe38119(DATARMNET138d6d02d2,dev);if(
|
|
|
|
|
DATARMNET495dab3d72(skb,node_p,DATARMNET0bf01e7c6f);is_match_found=
|
|
|
|
|
(0xd26+209-0xdf6);DATARMNET935af10724=(0xd26+209-0xdf6);if(node_p->
|
|
|
|
|
DATARMNET85c698ec34){if(raw_smp_processor_id()==DATARMNETecc0627c70.
|
|
|
|
|
DATARMNET5c24e1df05)DATARMNET68d84e7b98[DATARMNET048727d1d9]++;if(
|
|
|
|
|
DATARMNET0bf01e7c6f->max_pkts&&node_p->DATARMNETae4b27456e.DATARMNET6215127f48>
|
|
|
|
|
DATARMNET0bf01e7c6f->max_pkts)DATARMNET7c5ef97eab=(0xd26+209-0xdf6);}break;}if(
|
|
|
|
|
is_match_found)break;DATARMNETcfb5dc7296=DATARMNET362c14e98b(DATARMNETecc0627c70
|
|
|
|
|
.map_mask&DATARMNET9273f84bf1&~DATARMNETecc0627c70.DATARMNETba3f7a11ef);if(
|
|
|
|
|
DATARMNETcfb5dc7296<(0xd2d+202-0xdf7)){DATARMNET68d84e7b98[DATARMNETa1f9420686]
|
|
|
|
|
++;break;}if(DATARMNETecc0627c70.DATARMNET64bb8a8f57>DATARMNETbfe31ef643){
|
|
|
|
|
DATARMNET68d84e7b98[DATARMNETe6e77f9f03]++;break;}node_p=kzalloc(sizeof(*node_p)
|
|
|
|
@ -598,7 +670,14 @@ DATARMNET68d84e7b98[DATARMNETe6e77f9f03]++;break;}node_p=kzalloc(sizeof(*node_p)
|
|
|
|
|
DATARMNETecc0627c70.DATARMNET64bb8a8f57++;node_p->dev=skb->dev;node_p->hash=skb
|
|
|
|
|
->hash;node_p->map_cpu=DATARMNETcfb5dc7296;node_p->map_index=DATARMNET04e8d1b862
|
|
|
|
|
(node_p->map_cpu,map);INIT_LIST_HEAD(&node_p->DATARMNET04c88b8191);
|
|
|
|
|
DATARMNET44459105b4(skb,node_p);DATARMNET0349051465(node_p->map_cpu);
|
|
|
|
|
DATARMNET44459105b4(skb,node_p);if(DATARMNET0bf01e7c6f->map_mask){node_p->
|
|
|
|
|
DATARMNETfbbec4c537=DATARMNET0bf01e7c6f->map_mask;node_p->DATARMNETa59ce1fd2d=
|
|
|
|
|
DATARMNET310c3eb16e(node_p->DATARMNETfbbec4c537);node_p->map_cpu=
|
|
|
|
|
raw_smp_processor_id();node_p->map_index=node_p->map_cpu;node_p->
|
|
|
|
|
DATARMNET85c698ec34=(0xd26+209-0xdf6);}else if(node_p->DATARMNET85c698ec34){
|
|
|
|
|
node_p->DATARMNET341ea38662->mux_id=(0xd2d+202-0xdf7);}else{node_p->
|
|
|
|
|
DATARMNETfbbec4c537=DATARMNETecc0627c70.map_mask;node_p->DATARMNETa59ce1fd2d=
|
|
|
|
|
DATARMNETecc0627c70.map_len;}DATARMNET0349051465(node_p->map_cpu);
|
|
|
|
|
DATARMNET350f55bfca(node_p);map_cpu=node_p->map_cpu;DATARMNETa4055affd5=&
|
|
|
|
|
DATARMNET0997c5650d[map_cpu];priv=netdev_priv(node_p->dev);if(!priv){rm_err(
|
|
|
|
|
"\x70\x72\x69\x76\x20\x66\x6f\x72\x20\x6e\x65\x74\x64\x65\x76\x20\x69\x73\x20\x6e\x75\x6c\x6c\x20\x66\x6f\x72\x20\x68\x61\x73\x68\x20\x30\x78\x25\x78"
|
|
|
|
@ -607,40 +686,49 @@ DATARMNET341ea38662->mux_id=priv->mux_id;rm_err(
|
|
|
|
|
"\x53\x48\x53\x5f\x4d\x55\x58\x3a\x20\x6d\x75\x78\x20\x69\x64\x20\x66\x6f\x72\x20\x68\x61\x73\x68\x20\x30\x78\x25\x78\x20\x69\x73\x20\x25\x64"
|
|
|
|
|
,node_p->hash,node_p->DATARMNET341ea38662->mux_id);}DATARMNET3e37ad2816(node_p,&
|
|
|
|
|
DATARMNETa4055affd5->DATARMNET3dc4262f53);hash_add_rcu(DATARMNETe603c3a4b3,&
|
|
|
|
|
node_p->list,skb->hash);DATARMNET495dab3d72(skb,node_p);DATARMNET935af10724=
|
|
|
|
|
(0xd26+209-0xdf6);break;}while((0xd2d+202-0xdf7));if(!DATARMNET935af10724){
|
|
|
|
|
spin_unlock_irqrestore(&DATARMNET3764d083f0,ht_flags);DATARMNET68d84e7b98[
|
|
|
|
|
DATARMNET99db6e7d86]++;DATARMNETe767554e6e(skb);DATARMNET015fb2ba0e(
|
|
|
|
|
DATARMNET720469c0a9,DATARMNETe0fee0991a,(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),
|
|
|
|
|
(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),NULL,NULL);return(0xd2d+202-0xdf7);}if(!
|
|
|
|
|
DATARMNETecc0627c70.DATARMNETd9cfd2812b&&DATARMNETecc0627c70.DATARMNETa2e32cdd3a
|
|
|
|
|
&&DATARMNET365ddeca1c){DATARMNETecc0627c70.DATARMNETd9cfd2812b=(0xd26+209-0xdf6)
|
|
|
|
|
;DATARMNETecc0627c70.DATARMNET34097703c8=DATARMNET7bc926fdbe;if(hrtimer_active(&
|
|
|
|
|
DATARMNETecc0627c70.DATARMNET6fd692fc7a)){DATARMNETda96251102(
|
|
|
|
|
DATARMNET720469c0a9,DATARMNETf730f80f06,DATARMNET2f67183a86,(0x16e8+787-0xc0c),
|
|
|
|
|
(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),skb,NULL);hrtimer_cancel(&
|
|
|
|
|
DATARMNETecc0627c70.DATARMNET6fd692fc7a);}hrtimer_start(&DATARMNETecc0627c70.
|
|
|
|
|
DATARMNET6fd692fc7a,ns_to_ktime(DATARMNET4ac8af832c*DATARMNET68fc0be252),
|
|
|
|
|
HRTIMER_MODE_REL);DATARMNETda96251102(DATARMNET720469c0a9,DATARMNETdd870ee64c,
|
|
|
|
|
DATARMNET2f67183a86,(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),skb
|
|
|
|
|
,NULL);}spin_unlock_irqrestore(&DATARMNET3764d083f0,ht_flags);if(
|
|
|
|
|
DATARMNETecc0627c70.DATARMNETa2e32cdd3a>DATARMNET7d18c0bcf8){if(
|
|
|
|
|
DATARMNET58b009b16b)DATARMNET14ed771dfb[DATARMNET802083239a]++;
|
|
|
|
|
DATARMNET52de1f3dc0(DATARMNET4510abc30d,DATARMNET562b7d32a8,(0xd2d+202-0xdf7),
|
|
|
|
|
(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),NULL,NULL);
|
|
|
|
|
DATARMNETa4bf9fbf64((0xd26+209-0xdf6),DATARMNET0b15fd8b54);}else if(
|
|
|
|
|
DATARMNETecc0627c70.DATARMNETc252a1f55d>DATARMNETea75c7b6f6){if(
|
|
|
|
|
DATARMNET58b009b16b)DATARMNET14ed771dfb[DATARMNETed69052342]++;
|
|
|
|
|
DATARMNET52de1f3dc0(DATARMNET4510abc30d,DATARMNET99640d60f7,(0xd2d+202-0xdf7),
|
|
|
|
|
(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),NULL,NULL);
|
|
|
|
|
DATARMNETa4bf9fbf64((0xd26+209-0xdf6),DATARMNET0b15fd8b54);}else if(
|
|
|
|
|
DATARMNETecc0627c70.DATARMNET34097703c8==DATARMNETb3e3b2a799){
|
|
|
|
|
node_p->list,skb->hash);DATARMNET495dab3d72(skb,node_p,DATARMNET0bf01e7c6f);
|
|
|
|
|
DATARMNET935af10724=(0xd26+209-0xdf6);break;}while((0xd2d+202-0xdf7));if(!
|
|
|
|
|
DATARMNET935af10724){spin_unlock_irqrestore(&DATARMNET3764d083f0,ht_flags);
|
|
|
|
|
DATARMNET68d84e7b98[DATARMNET99db6e7d86]++;DATARMNETe767554e6e(skb);
|
|
|
|
|
DATARMNET015fb2ba0e(DATARMNET720469c0a9,DATARMNETe0fee0991a,(0x16e8+787-0xc0c),
|
|
|
|
|
(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),NULL,NULL);return
|
|
|
|
|
(0xd2d+202-0xdf7);}if(!DATARMNETecc0627c70.DATARMNETd9cfd2812b&&
|
|
|
|
|
DATARMNETecc0627c70.DATARMNETa2e32cdd3a&&DATARMNET365ddeca1c){
|
|
|
|
|
DATARMNETecc0627c70.DATARMNETd9cfd2812b=(0xd26+209-0xdf6);DATARMNETecc0627c70.
|
|
|
|
|
DATARMNET34097703c8=DATARMNET7bc926fdbe;if(hrtimer_active(&DATARMNETecc0627c70.
|
|
|
|
|
DATARMNET6fd692fc7a)){DATARMNETda96251102(DATARMNET720469c0a9,
|
|
|
|
|
DATARMNETf730f80f06,DATARMNET2f67183a86,(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),
|
|
|
|
|
(0x16e8+787-0xc0c),skb,NULL);hrtimer_cancel(&DATARMNETecc0627c70.
|
|
|
|
|
DATARMNET6fd692fc7a);}hrtimer_start(&DATARMNETecc0627c70.DATARMNET6fd692fc7a,
|
|
|
|
|
ns_to_ktime(DATARMNET4ac8af832c*DATARMNET68fc0be252),HRTIMER_MODE_REL);
|
|
|
|
|
DATARMNETda96251102(DATARMNET720469c0a9,DATARMNETdd870ee64c,DATARMNET2f67183a86,
|
|
|
|
|
(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),skb,NULL);}
|
|
|
|
|
spin_unlock_irqrestore(&DATARMNET3764d083f0,ht_flags);if(DATARMNETecc0627c70.
|
|
|
|
|
DATARMNETa2e32cdd3a>DATARMNET7d18c0bcf8){if(DATARMNET58b009b16b)
|
|
|
|
|
DATARMNET14ed771dfb[DATARMNET802083239a]++;DATARMNET52de1f3dc0(
|
|
|
|
|
DATARMNET4510abc30d,DATARMNET562b7d32a8,(0xd2d+202-0xdf7),(0x16e8+787-0xc0c),
|
|
|
|
|
(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),NULL,NULL);DATARMNETa4bf9fbf64(
|
|
|
|
|
(0xd26+209-0xdf6),DATARMNET0b15fd8b54);}else if(DATARMNETecc0627c70.
|
|
|
|
|
DATARMNETc252a1f55d>DATARMNETea75c7b6f6){if(DATARMNET58b009b16b)
|
|
|
|
|
DATARMNET14ed771dfb[DATARMNETed69052342]++;DATARMNET52de1f3dc0(
|
|
|
|
|
DATARMNET4510abc30d,DATARMNET99640d60f7,(0xd2d+202-0xdf7),(0x16e8+787-0xc0c),
|
|
|
|
|
(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),NULL,NULL);DATARMNETa4bf9fbf64(
|
|
|
|
|
(0xd26+209-0xdf6),DATARMNET0b15fd8b54);}else if(DATARMNET7c5ef97eab){if(
|
|
|
|
|
DATARMNET58b009b16b)DATARMNET14ed771dfb[DATARMNETcc3c294f38]++;
|
|
|
|
|
DATARMNET52de1f3dc0(DATARMNET4510abc30d,DATARMNET562b7d32a8,(0xd26+209-0xdf6),
|
|
|
|
|
DATARMNETecc0627c70.DATARMNETa2e32cdd3a,(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),
|
|
|
|
|
NULL,NULL);DATARMNETa4bf9fbf64((0xd26+209-0xdf6),DATARMNET0b15fd8b54);}else if((
|
|
|
|
|
DATARMNET0bf01e7c6f->config&RMNET_SHS_NO_DLMKR)&&DATARMNETecc0627c70.
|
|
|
|
|
DATARMNETa2e32cdd3a){if(DATARMNET58b009b16b)DATARMNET14ed771dfb[
|
|
|
|
|
DATARMNET04dac3a62b]++;DATARMNETa4bf9fbf64((0xd2d+202-0xdf7),DATARMNET0b15fd8b54
|
|
|
|
|
);}else if(DATARMNETecc0627c70.DATARMNET34097703c8==DATARMNETb3e3b2a799){
|
|
|
|
|
DATARMNET14ed771dfb[DATARMNETcfb1764a91]++;DATARMNET52de1f3dc0(
|
|
|
|
|
DATARMNET4510abc30d,DATARMNETa2bd301af7,(0xd26+209-0xdf6),DATARMNETecc0627c70.
|
|
|
|
|
DATARMNETa2e32cdd3a,(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),NULL,NULL);
|
|
|
|
|
DATARMNETa4bf9fbf64((0xd2d+202-0xdf7),DATARMNET0b15fd8b54);}else if(
|
|
|
|
|
DATARMNETecc0627c70.DATARMNETa2e32cdd3a&&DATARMNETecc0627c70.DATARMNET6fe0db3a49
|
|
|
|
|
!=DATARMNET1c55e5fdb1){DATARMNET14ed771dfb[DATARMNET01bf75e27c]++;
|
|
|
|
|
DATARMNETa4bf9fbf64((0xd2d+202-0xdf7),DATARMNET0b15fd8b54);}else if(!(
|
|
|
|
|
DATARMNET0bf01e7c6f->config&RMNET_SHS_NO_DLMKR)&&DATARMNETecc0627c70.
|
|
|
|
|
DATARMNETa2e32cdd3a&&DATARMNETecc0627c70.DATARMNET6fe0db3a49!=
|
|
|
|
|
DATARMNET1c55e5fdb1){DATARMNET14ed771dfb[DATARMNET01bf75e27c]++;
|
|
|
|
|
DATARMNETa4bf9fbf64((0xd2d+202-0xdf7),DATARMNET0b15fd8b54);}return
|
|
|
|
|
(0xd2d+202-0xdf7);}void DATARMNET9297340f58(unsigned int DATARMNET9f4bc49c6f){
|
|
|
|
|
DATARMNETdf74db7e38();DATARMNETecc0627c70.DATARMNET08dbb5ab35.dl_hdr_handler_v2=
|
|
|
|
|