diff --git a/shs/rmnet_shs.h b/shs/rmnet_shs.h index 0f072a16a0ae6..ca4ce724447b6 100644 --- a/shs/rmnet_shs.h +++ b/shs/rmnet_shs.h @@ -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 @@ -33,6 +33,7 @@ #define DATARMNET401583e606 (0xd11+230-0xdf3) #define DATARMNETc6782fed88 (0xd35+210-0xdff) #define DATARMNETbc3c416b77 (0xbf7+4405-0x1c3c) +#define DATARMNET9273f84bf1 (0xeb7+1101-0x12f5) #define DATARMNET2edff26954 (0xd2d+202-0xdf7) #define DATARMNET752465942a (0xbf7+4364-0x1c04) #define DATARMNETbfe31ef643 (0xc07+1233-0xe1c) @@ -70,31 +71,35 @@ DATARMNETa6f2d499b2 DATARMNET132b9c7dc4[DATARMNETc6782fed88];u64 DATARMNETbd3a0ee74e[DATARMNETc6782fed88];long DATARMNETc252a1f55d;long DATARMNETa2e32cdd3a;u32 DATARMNET9c869c1ec2;u16 DATARMNET64bb8a8f57;u8 DATARMNETd9cfd2812b;u8 DATARMNETf5ab31b9b0;u8 DATARMNET34097703c8;u8 -DATARMNETfc89d842ae;u8 DATARMNET6fe0db3a49;u8 map_mask;u8 map_len;};struct -DATARMNETa034b2e60c{struct sk_buff*head;struct sk_buff*tail;u64 -DATARMNETbaa5765693;u32 DATARMNET6215127f48;u32 DATARMNET35234676d4;};struct -DATARMNET63d7680df2{union{struct iphdr DATARMNETac9bbaad7c;struct ipv6hdr -DATARMNET1688a97aa4;}ip_hdr;union{struct tcphdr tp;struct udphdr up;} -DATARMNETe33b41dad9;struct list_head DATARMNET04c88b8191;struct net_device*dev; -struct DATARMNET6c78e47d24*DATARMNET341ea38662;struct DATARMNETa034b2e60c -DATARMNETae4b27456e;struct hlist_node list;u64 DATARMNET11930c5df8;u64 -DATARMNETa8940e4a7b;u64 DATARMNET2594c418db;u32 queue_head;u32 hash;u16 -map_index;u16 map_cpu;u16 DATARMNET1e9d25d9ff;u8 DATARMNETa1099c74fe;u8 -DATARMNET6250e93187;u8 mux_id;};enum DATARMNET156842d55e{DATARMNET7bc926fdbe, -DATARMNETb3e3b2a799,DATARMNET8dcf06727b};enum DATARMNET8463cba7c7{ -DATARMNETc3bce05be2,DATARMNET14067f0be4,DATARMNET28bb261646,DATARMNET67b67dc88f, -DATARMNET0efbbe2821,DATARMNETa4267dfd8a,DATARMNETeccb61ebc3};enum -DATARMNETf355367410{DATARMNET557ff68d74,DATARMNET1c55e5fdb1,DATARMNET4ab5a31d0c, -DATARMNETde2dd86539};enum DATARMNET3f3bc61c03{DATARMNETf5157a9b85, -DATARMNET709b59b0e6,DATARMNET99db6e7d86,DATARMNETe3c02ddaeb,DATARMNET394acaf558, -DATARMNETef8cbfa62f,DATARMNETe6e77f9f03,DATARMNETecdf13872c,DATARMNETd1687e0776, -DATARMNET1828d69e96,DATARMNET40ceff078e,DATARMNET42b73d0f3f,DATARMNETb8fe2c0e64, -DATARMNET72db8b9bac,DATARMNET33a9d4759f,DATARMNET46966e7828,DATARMNETa1f9420686, -DATARMNET54b67b8a75,DATARMNETac729c3d29,DATARMNET6533f70c87,DATARMNET6f6efeaf61, -DATARMNETcc0ef52ccb,DATARMNETf8de7cb644,DATARMNETdd6bf3de6b,DATARMNETf3110711cb} -;enum DATARMNETd751e3ec84{DATARMNET802083239a,DATARMNETed69052342, -DATARMNETcfb1764a91,DATARMNET84a9e136b8,DATARMNET01bf75e27c,DATARMNETd45c383019, -DATARMNETbb5757569c,DATARMNETc8058e2cff,DATARMNET3cef75f6cd};struct +DATARMNETfc89d842ae;u8 DATARMNET6fe0db3a49;u8 DATARMNETba3f7a11ef;u8 map_mask;u8 + map_len;u8 DATARMNET5c24e1df05;};struct DATARMNETa034b2e60c{struct sk_buff*head +;struct sk_buff*tail;u64 DATARMNETbaa5765693;u32 DATARMNET6215127f48;u32 +DATARMNET35234676d4;};struct DATARMNET63d7680df2{union{struct iphdr +DATARMNETac9bbaad7c;struct ipv6hdr DATARMNET1688a97aa4;}ip_hdr;union{struct +tcphdr tp;struct udphdr up;}DATARMNETe33b41dad9;struct list_head +DATARMNET04c88b8191;struct net_device*dev;struct DATARMNET6c78e47d24* +DATARMNET341ea38662;struct DATARMNETa034b2e60c DATARMNETae4b27456e;struct +hlist_node list;u64 DATARMNET11930c5df8;u64 DATARMNETa8940e4a7b;u64 +DATARMNET2594c418db;u32 queue_head;u32 hash;u16 map_index;u16 map_cpu;u16 +DATARMNETfbbec4c537;u16 DATARMNETa59ce1fd2d;u8 DATARMNET85c698ec34;u16 +DATARMNET1e9d25d9ff;u8 DATARMNETa1099c74fe;u8 DATARMNET6250e93187;u8 mux_id;}; +enum DATARMNET156842d55e{DATARMNET7bc926fdbe,DATARMNETb3e3b2a799, +DATARMNET8dcf06727b};enum DATARMNET8463cba7c7{DATARMNETc3bce05be2, +DATARMNET14067f0be4,DATARMNET28bb261646,DATARMNET67b67dc88f,DATARMNET0efbbe2821, +DATARMNETa4267dfd8a,DATARMNETf13db5ace8,DATARMNETb6eae1e097,DATARMNET7f401828b3, +DATARMNETeccb61ebc3};enum DATARMNETf355367410{DATARMNET557ff68d74, +DATARMNET1c55e5fdb1,DATARMNET4ab5a31d0c,DATARMNETde2dd86539};enum +DATARMNET3f3bc61c03{DATARMNETf5157a9b85,DATARMNET709b59b0e6,DATARMNET99db6e7d86, +DATARMNETe3c02ddaeb,DATARMNET394acaf558,DATARMNETef8cbfa62f,DATARMNETe6e77f9f03, +DATARMNETecdf13872c,DATARMNETd1687e0776,DATARMNET1828d69e96,DATARMNET40ceff078e, +DATARMNET42b73d0f3f,DATARMNETb8fe2c0e64,DATARMNET72db8b9bac,DATARMNET33a9d4759f, +DATARMNET46966e7828,DATARMNETa1f9420686,DATARMNET54b67b8a75,DATARMNETac729c3d29, +DATARMNET6533f70c87,DATARMNET6f6efeaf61,DATARMNETcc0ef52ccb,DATARMNETf8de7cb644, +DATARMNETdd6bf3de6b,DATARMNETfeaf903a28,DATARMNET767c76ca08,DATARMNET048727d1d9, +DATARMNET6ea8a58f4e,DATARMNETf3110711cb};enum DATARMNETd751e3ec84{ +DATARMNETcc3c294f38,DATARMNET802083239a,DATARMNETed69052342,DATARMNETcfb1764a91, +DATARMNET84a9e136b8,DATARMNET01bf75e27c,DATARMNETd45c383019,DATARMNETbb5757569c, +DATARMNETc8058e2cff,DATARMNET04dac3a62b,DATARMNET3cef75f6cd};struct DATARMNETfd554c7eac{struct sk_buff*skb;struct DATARMNETfd554c7eac*next;};struct DATARMNET37ef896af8{struct work_struct DATARMNET33110a3ff5;struct rmnet_port* port;};struct DATARMNETe600c5b727{struct list_head DATARMNET3dc4262f53;u32 @@ -123,19 +128,20 @@ DATARMNET595eed6ea2,DATARMNETde090e8314,DATARMNETa593d87b38,DATARMNET8a2898988b, DATARMNET0709c9f764,};extern struct DATARMNET37ef896af8 DATARMNET1731db288b; extern spinlock_t DATARMNET3764d083f0;extern spinlock_t DATARMNETec2a4f5211; extern spinlock_t DATARMNETfbdbab2ef6;extern struct hlist_head -DATARMNETe603c3a4b3[(0xd26+209-0xdf6)<<(DATARMNET25437d35fd)];extern void -rmnet_deliver_skb(struct sk_buff*skb,struct rmnet_port*port);extern int(* -rmnet_shs_skb_entry)(struct sk_buff*skb,struct rmnet_port*port);int -DATARMNET362b15f941(u16 cpu);void DATARMNETeacad8334e(void);void -DATARMNETe1f95274f1(void);unsigned int DATARMNET02cdd9b125(void);int -DATARMNET310c3eb16e(u8 mask);int DATARMNETe02152c351(struct DATARMNET63d7680df2* -DATARMNET63b1a086d5,u8 DATARMNETd87669e323,u8 DATARMNET5447204733);void -DATARMNET78bb6be330(struct rmnet_map_dl_ind_hdr*dlhdr,struct -rmnet_map_control_command_header*qcmd);void DATARMNETf61cd23b90(struct -rmnet_map_dl_ind_trl*dltrl,struct rmnet_map_control_command_header*qcmd);void -DATARMNET7ed4cef8a3(struct rmnet_map_dl_ind_hdr*dlhdr);void DATARMNET613a81eca8( -struct rmnet_map_dl_ind_trl*dltrl);int DATARMNET756778f14f(struct sk_buff*skb, -struct rmnet_port*port);void DATARMNETa4bf9fbf64(u8 DATARMNET665469cfb6,u8 +DATARMNETe603c3a4b3[(0xd26+209-0xdf6)<<(DATARMNET25437d35fd)];extern int(* +rmnet_shs_skb_entry)(struct sk_buff*skb,struct rmnet_shs_clnt_s* +DATARMNET9e820fbfe3);extern int(*rmnet_shs_switch)(struct sk_buff*skb,struct +rmnet_shs_clnt_s*DATARMNET9e820fbfe3);int DATARMNET362b15f941(u16 cpu);void +DATARMNETeacad8334e(void);void DATARMNETe1f95274f1(void);unsigned int +DATARMNET02cdd9b125(void);int DATARMNET310c3eb16e(u8 mask);int +DATARMNETe02152c351(struct DATARMNET63d7680df2*DATARMNET63b1a086d5,u8 +DATARMNETd87669e323,u8 DATARMNET5447204733);void DATARMNET78bb6be330(struct +rmnet_map_dl_ind_hdr*dlhdr,struct rmnet_map_control_command_header*qcmd);void +DATARMNETf61cd23b90(struct rmnet_map_dl_ind_trl*dltrl,struct +rmnet_map_control_command_header*qcmd);void DATARMNET7ed4cef8a3(struct +rmnet_map_dl_ind_hdr*dlhdr);void DATARMNET613a81eca8(struct rmnet_map_dl_ind_trl +*dltrl);int DATARMNET756778f14f(struct sk_buff*skb,struct rmnet_shs_clnt_s* +DATARMNET9e820fbfe3);void DATARMNETa4bf9fbf64(u8 DATARMNET665469cfb6,u8 DATARMNET5447204733);void DATARMNETde8ee16f92(struct DATARMNET63d7680df2* DATARMNET63b1a086d5);void DATARMNET45d8cdb224(struct net_device*dev,struct net_device*vnd);void DATARMNET9297340f58(unsigned int DATARMNET9f4bc49c6f);void diff --git a/shs/rmnet_shs_common.c b/shs/rmnet_shs_common.c index 872bccb7bb479..f3ed51d62d18b 100644 --- a/shs/rmnet_shs_common.c +++ b/shs/rmnet_shs_common.c @@ -1,4 +1,4 @@ -/* Copyright (c) 2020 The Linux Foundation. All rights reserved. +/* Copyright (c) 2020-2021 The Linux Foundation. All rights reserved. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 and diff --git a/shs/rmnet_shs_config.c b/shs/rmnet_shs_config.c index efdda74375433..5e6c652ce20b2 100644 --- a/shs/rmnet_shs_config.c +++ b/shs/rmnet_shs_config.c @@ -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 @@ -45,7 +45,9 @@ DATARMNET5fc54f7a13 __read_mostly={.notifier_call=DATARMNETe9173bbe0e,.priority= "\x49\x65\x64\x36\x62\x63\x38\x64\x37\x35\x36\x61\x65\x62\x65\x39\x39\x39\x65\x66\x64\x62\x30\x35\x61\x37\x37\x38\x39\x64\x36\x34\x36\x31\x31\x35\x64\x66\x35\x31\x39" , "\x49\x38\x38\x66\x32\x37\x65\x64\x36\x62\x35\x34\x65\x31\x61\x32\x64\x65\x31\x66\x35\x62\x31\x35\x63\x62\x65\x37\x35\x65\x38\x30\x38\x62\x38\x37\x33\x36\x31\x61\x32" -,};static int DATARMNET2cb9ae589c;int __init DATARMNET163e93649e(void){pr_info( +, +"\x49\x35\x62\x33\x65\x64\x30\x65\x63\x34\x66\x33\x36\x37\x39\x30\x64\x38\x65\x64\x30\x35\x39\x33\x32\x62\x37\x38\x34\x66\x32\x35\x33\x33\x66\x36\x31\x37\x33\x62\x62" +};static int DATARMNET2cb9ae589c;int __init DATARMNET163e93649e(void){pr_info( "\x25\x73\x28\x29\x3a\x20\x53\x74\x61\x72\x74\x69\x6e\x67\x20\x72\x6d\x6e\x65\x74\x20\x53\x48\x53\x20\x6d\x6f\x64\x75\x6c\x65\x20\x25\x73\x20" "\n" ,__func__,DATARMNETbc8418e817[(0xd2d+202-0xdf7)]);trace_rmnet_shs_high( DATARMNET1790979ccf,DATARMNET72cb00fdc0,(0x16e8+787-0xc0c),(0x16e8+787-0xc0c), @@ -70,23 +72,23 @@ DATARMNET7f045a1e6e){case NETDEV_UNREGISTER:DATARMNETd6ee05f1b4(dev); DATARMNET2cb9ae589c--;if(!DATARMNET2cb9ae589c&&DATARMNETecc0627c70. DATARMNETfc89d842ae){unsigned int DATARMNET9f4bc49c6f;pr_info( "\x72\x6d\x6e\x65\x74\x5f\x73\x68\x73\x20\x64\x65\x69\x6e\x69\x74\x20\x25\x73\x20\x67\x6f\x69\x6e\x67\x20\x64\x6f\x77\x6e\x20" -,dev->name);RCU_INIT_POINTER(rmnet_shs_skb_entry,NULL); -qmi_rmnet_ps_ind_deregister(DATARMNETecc0627c70.port,&DATARMNETecc0627c70. -rmnet_idl_ind_cb);DATARMNETeacad8334e();DATARMNET9f4bc49c6f=DATARMNET02cdd9b125( -);DATARMNETf7dcab9a9e();DATARMNET9297340f58(DATARMNET9f4bc49c6f); -trace_rmnet_shs_high(DATARMNET1790979ccf,DATARMNET443dab7031,(0x16e8+787-0xc0c), -(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),NULL,NULL);}break;case -NETDEV_REGISTER:DATARMNET2cb9ae589c++;if(DATARMNET2cb9ae589c&&! -DATARMNETecc0627c70.DATARMNETfc89d842ae){pr_info( +,dev->name);RCU_INIT_POINTER(rmnet_shs_skb_entry,NULL);RCU_INIT_POINTER( +rmnet_shs_switch,NULL);qmi_rmnet_ps_ind_deregister(DATARMNETecc0627c70.port,& +DATARMNETecc0627c70.rmnet_idl_ind_cb);DATARMNETeacad8334e();DATARMNET9f4bc49c6f= +DATARMNET02cdd9b125();DATARMNETf7dcab9a9e();DATARMNET9297340f58( +DATARMNET9f4bc49c6f);trace_rmnet_shs_high(DATARMNET1790979ccf, +DATARMNET443dab7031,(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),(0x16e8+787-0xc0c), +(0x16e8+787-0xc0c),NULL,NULL);}break;case NETDEV_REGISTER:DATARMNET2cb9ae589c++; +if(DATARMNET2cb9ae589c&&!DATARMNETecc0627c70.DATARMNETfc89d842ae){pr_info( "\x72\x6d\x6e\x65\x74\x5f\x73\x68\x73\x20\x69\x6e\x69\x74\x69\x61\x6c\x69\x7a\x69\x6e\x67\x20\x25\x73" ,dev->name);priv=netdev_priv(dev);port=rmnet_get_port(priv->real_dev);if(!port){ pr_err( "\x72\x6d\x6e\x65\x74\x5f\x73\x68\x73\x3a\x20\x69\x6e\x76\x61\x6c\x69\x64\x20\x72\x6d\x6e\x65\x74\x5f\x70\x6f\x72\x74" -);break;}DATARMNET45d8cdb224(priv->real_dev,dev);DATARMNET3ae0d614d6(priv-> -real_dev);DATARMNETe1f95274f1();DATARMNETecc0627c70.DATARMNETf5ab31b9b0= -(0xd26+209-0xdf6);}DATARMNET7492293980(dev);break;case NETDEV_UP:if(! -DATARMNETecc0627c70.DATARMNET9c869c1ec2&&DATARMNETecc0627c70.DATARMNETfc89d842ae -){port=DATARMNETecc0627c70.port;if(!port){pr_err( +);break;}DATARMNET45d8cdb224(priv->real_dev,dev);DATARMNET3ae0d614d6(); +DATARMNETe1f95274f1();DATARMNETecc0627c70.DATARMNETf5ab31b9b0=(0xd26+209-0xdf6); +}DATARMNET7492293980(dev);break;case NETDEV_UP:if(!DATARMNETecc0627c70. +DATARMNET9c869c1ec2&&DATARMNETecc0627c70.DATARMNETfc89d842ae){port= +DATARMNETecc0627c70.port;if(!port){pr_err( "\x72\x6d\x6e\x65\x74\x5f\x73\x68\x73\x3a\x20\x69\x6e\x76\x61\x6c\x69\x64\x20\x72\x6d\x6e\x65\x74\x5f\x63\x66\x67\x5f\x70\x6f\x72\x74" );break;}DATARMNETecc0627c70.DATARMNET08dbb5ab35.priority=RMNET_SHS;if(port-> data_format&RMNET_INGRESS_FORMAT_DL_MARKER_V2){DATARMNETecc0627c70. @@ -104,5 +106,6 @@ rmnet_idl_ind_cb);if(ret)pr_err( DATARMNETecc0627c70.DATARMNET9c869c1ec2=(0xd26+209-0xdf6);trace_rmnet_shs_high( DATARMNET1790979ccf,DATARMNET443dab7031,(0x16e8+787-0xc0c),(0x16e8+787-0xc0c), (0x16e8+787-0xc0c),(0x16e8+787-0xc0c),NULL,NULL);RCU_INIT_POINTER( -rmnet_shs_skb_entry,DATARMNET756778f14f);}break;default:break;}return -NOTIFY_DONE;}module_init(DATARMNET163e93649e);module_exit(DATARMNETf3298dab6f); +rmnet_shs_switch,NULL);RCU_INIT_POINTER(rmnet_shs_skb_entry,DATARMNET756778f14f) +;}break;default:break;}return NOTIFY_DONE;}module_init(DATARMNET163e93649e); +module_exit(DATARMNETf3298dab6f); diff --git a/shs/rmnet_shs_main.c b/shs/rmnet_shs_main.c index be67cd99bff03..eae8d272c51b5 100644 --- a/shs/rmnet_shs_main.c +++ b/shs/rmnet_shs_main.c @@ -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 #include #include +#include +#include +#include +#include +#include #include #include #include @@ -25,6 +30,8 @@ #include "rmnet_shs_wq.h" #include "rmnet_shs_modules.h" #include "rmnet_shs_common.h" +#include +#include #define DATARMNET2f67183a86 2000000 #define DATARMNET68fc0be252 1000000 #define DATARMNETd391fbd694 (0xd2d+202-0xdf7) @@ -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);inr_frags;i++){u32 frag_size; -frag=&shinfo->frags[i];frag_size=skb_frag_size(frag);if(offset>=frag_size){ -offset-=frag_size;continue;}if(frag_size>=offset+DATARMNET567bdc7221)return -skb_frag_address(frag)+offset;}if(skb_copy_bits(skb,(int)DATARMNETedc267a909,buf -,(int)DATARMNET567bdc7221))return NULL;return buf;}int DATARMNET9303cec796( -struct sk_buff*skb){int DATARMNETbd864aa442=(0xd2d+202-0xdf7);struct iphdr*ip4h, -DATARMNETc00baf31c3;struct ipv6hdr*ip6h,DATARMNETcf1d9e2c1e;switch(skb->protocol -){case htons(ETH_P_IP):ip4h=DATARMNETefcaf5fbe9(skb,(0xd2d+202-0xdf7),sizeof(* -ip4h),&DATARMNETc00baf31c3);if(!ip4h)break;if(!ip_is_fragment(ip4h)&&(ip4h-> -protocol==IPPROTO_TCP||ip4h->protocol==IPPROTO_UDP)){DATARMNETbd864aa442= -(0xd26+209-0xdf6);break;}if(ip4h->protocol==IPPROTO_ICMP){skb->hash= -(0xd2d+202-0xdf7);skb->sw_hash=(0xd26+209-0xdf6);}break;case htons(ETH_P_IPV6): -ip6h=DATARMNETefcaf5fbe9(skb,(0xd2d+202-0xdf7),sizeof(*ip6h),& +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);inr_frags;i++){u32 frag_size;frag=&shinfo->frags[i]; +frag_size=skb_frag_size(frag);if(offset>=frag_size){offset-=frag_size;continue;} +if(frag_size>=offset+DATARMNET567bdc7221)return skb_frag_address(frag)+offset;} +if(skb_copy_bits(skb,(int)DATARMNETedc267a909,buf,(int)DATARMNET567bdc7221)) +return NULL;return buf;}int DATARMNET9303cec796(struct sk_buff*skb){int +DATARMNETbd864aa442=(0xd2d+202-0xdf7);struct iphdr*ip4h,DATARMNETc00baf31c3; +struct ipv6hdr*ip6h,DATARMNETcf1d9e2c1e;switch(skb->protocol){case htons( +ETH_P_IP):ip4h=DATARMNETefcaf5fbe9(skb,(0xd2d+202-0xdf7),sizeof(*ip4h),& +DATARMNETc00baf31c3);if(!ip4h)break;if(!ip_is_fragment(ip4h)&&(ip4h->protocol== +IPPROTO_TCP||ip4h->protocol==IPPROTO_UDP)){DATARMNETbd864aa442=(0xd26+209-0xdf6) +;break;}if(ip4h->protocol==IPPROTO_ICMP){skb->hash=(0xd2d+202-0xdf7);skb-> +sw_hash=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=( -DATARMNETa1ac2608b5sw_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)<map_cpu)&DATARMNETecc0627c70. +DATARMNETba3f7a11ef||((0xd26+209-0xdf6)<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)<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(DATARMNETd3673fd5f0DATARMNET341ea38662->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 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= diff --git a/shs/rmnet_shs_modules.c b/shs/rmnet_shs_modules.c index 9275bcbd0f938..bf469113e3bfd 100644 --- a/shs/rmnet_shs_modules.c +++ b/shs/rmnet_shs_modules.c @@ -1,4 +1,4 @@ -/* Copyright (c) 2020 The Linux Foundation. All rights reserved. +/* Copyright (c) 2020-2021 The Linux Foundation. All rights reserved. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 and @@ -132,13 +132,13 @@ DATARMNETb7ddf3c5dd, DATARMNET14ed771dfb,ulong,NULL,(0xcb7+5769-0x221c));MODULE_PARM_DESC( DATARMNET14ed771dfb, "\x72\x6d\x6e\x65\x74\x20\x73\x68\x73\x20\x73\x6b\x62\x20\x66\x6c\x75\x73\x68\x20\x74\x72\x69\x67\x67\x65\x72\x20\x74\x79\x70\x65" -);unsigned int DATARMNETea75c7b6f6 __read_mostly=271800*(0xeb7+710-0x112d); -module_param(DATARMNETea75c7b6f6,uint,(0xdb7+6665-0x261c));MODULE_PARM_DESC( +);unsigned int DATARMNETea75c7b6f6 __read_mostly=30144000;module_param( +DATARMNETea75c7b6f6,uint,(0xdb7+6665-0x261c));MODULE_PARM_DESC( DATARMNETea75c7b6f6, "\x4d\x61\x78\x69\x6d\x75\x6d\x20\x62\x79\x74\x65\x20\x6d\x6f\x64\x75\x6c\x65\x20\x77\x69\x6c\x6c\x20\x70\x61\x72\x6b" -);unsigned int DATARMNET7d18c0bcf8 __read_mostly=(0xa58+3472-0xfb4)* -(0xd35+210-0xdff);module_param(DATARMNET7d18c0bcf8,uint,(0xdb7+6665-0x261c)); -MODULE_PARM_DESC(DATARMNET7d18c0bcf8, +);unsigned int DATARMNET7d18c0bcf8 __read_mostly=24000;module_param( +DATARMNET7d18c0bcf8,uint,(0xdb7+6665-0x261c));MODULE_PARM_DESC( +DATARMNET7d18c0bcf8, "\x4d\x61\x78\x69\x6d\x75\x6d\x20\x70\x6b\x74\x73\x20\x6d\x6f\x64\x75\x6c\x65\x20\x77\x69\x6c\x6c\x20\x70\x61\x72\x6b" );unsigned int DATARMNET227d2ff866 __read_mostly=(0xec7+1131-0x1305); module_param(DATARMNET227d2ff866,uint,(0xdb7+6665-0x261c));MODULE_PARM_DESC( diff --git a/shs/rmnet_shs_wq.c b/shs/rmnet_shs_wq.c index 642f9faf21e5e..5d7c86850b2be 100644 --- a/shs/rmnet_shs_wq.c +++ b/shs/rmnet_shs_wq.c @@ -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 @@ -430,51 +430,52 @@ DATARMNETbd864aa442=-(0xd26+209-0xdf6);int DATARMNETd415a9f9bd=- (0xd26+209-0xdf6);int DATARMNETb6773d2790=-(0xd26+209-0xdf6);int DATARMNET42a992465f=(0xd2d+202-0xdf7);u16 DATARMNETdebcca6b26;for( DATARMNET42a992465f=(0xd2d+202-0xdf7);DATARMNET42a992465fDATARMNET73464778dc[ -DATARMNET42a992465f];trace_rmnet_shs_wq_low(DATARMNET39a68a0eba, -DATARMNET55cd50e666,DATARMNET42a992465f,DATARMNET65385af8a0->DATARMNET324c1a8f98 -,DATARMNET609049f7b7,(0xd2d+202-0xdf7),NULL,NULL);if(DATARMNET65385af8a0->flows -==(0xd2d+202-0xdf7)){DATARMNETb6773d2790=DATARMNET42a992465f;break;}if( -DATARMNET65385af8a0->DATARMNET324c1a8f98==(0xd2d+202-0xdf7)&&DATARMNET65385af8a0 -->flowsflows; -DATARMNETd415a9f9bd=DATARMNET42a992465f;}if(DATARMNET65385af8a0-> -DATARMNET324c1a8f98<=DATARMNET609049f7b7){DATARMNET609049f7b7= -DATARMNET65385af8a0->DATARMNET324c1a8f98;DATARMNETbd864aa442=DATARMNET42a992465f -;}}if(DATARMNETb6773d2790>=(0xd2d+202-0xdf7))DATARMNETbd864aa442= -DATARMNETb6773d2790;else if(DATARMNETd415a9f9bd>=(0xd2d+202-0xdf7)) -DATARMNETbd864aa442=DATARMNETd415a9f9bd;return DATARMNETbd864aa442;}u16 -DATARMNET3c1fc10379(u16 DATARMNET7c894c2f8f,struct DATARMNET9b44b71ee9*ep){ -struct DATARMNETc8fdbf9c85*DATARMNET7bea4a06a6=&DATARMNET6cdd58e74c;struct -DATARMNET228056d4b7*DATARMNET373ff1422a,*DATARMNETd8755a1440;u64 -DATARMNETf115ef7639,DATARMNET64bef917cb,DATARMNET85bfb4b2ca;u64 -DATARMNET264b01f4d5,DATARMNET53ce143c7e=(0xd2d+202-0xdf7);u16 -DATARMNETd668725d64=DATARMNET7c894c2f8f;u16 DATARMNET42a992465f;u8 -DATARMNETca535905d7;u32 DATARMNETa7176e3ad8=(0xd2d+202-0xdf7);if(!ep){ -DATARMNET68d84e7b98[DATARMNETb8fe2c0e64]++;return DATARMNETd668725d64;} -DATARMNETd8755a1440=&DATARMNET7bea4a06a6->DATARMNET73464778dc[ -DATARMNET7c894c2f8f];DATARMNET85bfb4b2ca=DATARMNETd8755a1440-> -DATARMNET324c1a8f98;DATARMNET264b01f4d5=DATARMNET713717107f[DATARMNET7c894c2f8f] -;DATARMNET53ce143c7e=DATARMNET4793ed48af[DATARMNET7c894c2f8f];if(! -DATARMNET362b15f941(DATARMNET7c894c2f8f)&&(DATARMNET85bfb4b2ca> -DATARMNET53ce143c7e)){return DATARMNETd668725d64;}if(DATARMNET0997c5650d[ -DATARMNET7c894c2f8f].DATARMNET1e1f197118)return DATARMNET7c894c2f8f;for( -DATARMNET42a992465f=(0xd2d+202-0xdf7);DATARMNET42a992465fDATARMNET9fb369ce5f);if((DATARMNET42a992465f== -DATARMNET7c894c2f8f)||(!DATARMNETca535905d7)||!cpu_online(DATARMNET7c894c2f8f)) -continue;DATARMNET264b01f4d5=DATARMNET713717107f[DATARMNET42a992465f]; -DATARMNET53ce143c7e=DATARMNET4793ed48af[DATARMNET42a992465f];DATARMNET373ff1422a -=&DATARMNET7bea4a06a6->DATARMNET73464778dc[DATARMNET42a992465f]; -DATARMNETf115ef7639=DATARMNET373ff1422a->DATARMNET324c1a8f98;DATARMNET64bef917cb -=DATARMNETf115ef7639+DATARMNET85bfb4b2ca;trace_rmnet_shs_wq_low( -DATARMNET39a68a0eba,DATARMNETcd209744bd,DATARMNET7c894c2f8f,DATARMNET42a992465f, -DATARMNET64bef917cb,DATARMNETf115ef7639,NULL,NULL);if((DATARMNET64bef917cb> -DATARMNET53ce143c7e)&&(DATARMNET64bef917cb +DATARMNET73464778dc[DATARMNET42a992465f];trace_rmnet_shs_wq_low( +DATARMNET39a68a0eba,DATARMNET55cd50e666,DATARMNET42a992465f,DATARMNET65385af8a0 +->DATARMNET324c1a8f98,DATARMNET609049f7b7,(0xd2d+202-0xdf7),NULL,NULL);if( +DATARMNET65385af8a0->flows==(0xd2d+202-0xdf7)){DATARMNETb6773d2790= +DATARMNET42a992465f;break;}if(DATARMNET65385af8a0->DATARMNET324c1a8f98== +(0xd2d+202-0xdf7)&&DATARMNET65385af8a0->flowsflows;DATARMNETd415a9f9bd= +DATARMNET42a992465f;}if(DATARMNET65385af8a0->DATARMNET324c1a8f98<= +DATARMNET609049f7b7){DATARMNET609049f7b7=DATARMNET65385af8a0-> +DATARMNET324c1a8f98;DATARMNETbd864aa442=DATARMNET42a992465f;}}if( +DATARMNETb6773d2790>=(0xd2d+202-0xdf7))DATARMNETbd864aa442=DATARMNETb6773d2790; +else if(DATARMNETd415a9f9bd>=(0xd2d+202-0xdf7))DATARMNETbd864aa442= +DATARMNETd415a9f9bd;return DATARMNETbd864aa442;}u16 DATARMNET3c1fc10379(u16 +DATARMNET7c894c2f8f,struct DATARMNET9b44b71ee9*ep){struct DATARMNETc8fdbf9c85* +DATARMNET7bea4a06a6=&DATARMNET6cdd58e74c;struct DATARMNET228056d4b7* +DATARMNET373ff1422a,*DATARMNETd8755a1440;u64 DATARMNETf115ef7639, +DATARMNET64bef917cb,DATARMNET85bfb4b2ca;u64 DATARMNET264b01f4d5, +DATARMNET53ce143c7e=(0xd2d+202-0xdf7);u16 DATARMNETd668725d64= +DATARMNET7c894c2f8f;u16 DATARMNET42a992465f;u8 DATARMNETca535905d7;u32 +DATARMNETa7176e3ad8=(0xd2d+202-0xdf7);if(!ep){DATARMNET68d84e7b98[ +DATARMNETb8fe2c0e64]++;return DATARMNETd668725d64;}DATARMNETd8755a1440=& +DATARMNET7bea4a06a6->DATARMNET73464778dc[DATARMNET7c894c2f8f]; +DATARMNET85bfb4b2ca=DATARMNETd8755a1440->DATARMNET324c1a8f98;DATARMNET264b01f4d5 +=DATARMNET713717107f[DATARMNET7c894c2f8f];DATARMNET53ce143c7e= +DATARMNET4793ed48af[DATARMNET7c894c2f8f];if(!DATARMNET362b15f941( +DATARMNET7c894c2f8f)&&(DATARMNET85bfb4b2ca>DATARMNET53ce143c7e)){return +DATARMNETd668725d64;}if(DATARMNET0997c5650d[DATARMNET7c894c2f8f]. +DATARMNET1e1f197118)return DATARMNET7c894c2f8f;for(DATARMNET42a992465f= +(0xd2d+202-0xdf7);DATARMNET42a992465f +DATARMNET9fb369ce5f&~DATARMNETecc0627c70.DATARMNETba3f7a11ef));if(( +DATARMNET42a992465f==DATARMNET7c894c2f8f)||(!DATARMNETca535905d7)||!cpu_online( +DATARMNET42a992465f))continue;DATARMNET264b01f4d5=DATARMNET713717107f[ +DATARMNET42a992465f];DATARMNET53ce143c7e=DATARMNET4793ed48af[DATARMNET42a992465f +];DATARMNET373ff1422a=&DATARMNET7bea4a06a6->DATARMNET73464778dc[ +DATARMNET42a992465f];DATARMNETf115ef7639=DATARMNET373ff1422a-> +DATARMNET324c1a8f98;DATARMNET64bef917cb=DATARMNETf115ef7639+DATARMNET85bfb4b2ca; +trace_rmnet_shs_wq_low(DATARMNET39a68a0eba,DATARMNETcd209744bd, +DATARMNET7c894c2f8f,DATARMNET42a992465f,DATARMNET64bef917cb,DATARMNETf115ef7639, +NULL,NULL);if((DATARMNET64bef917cb>DATARMNET53ce143c7e)&&(DATARMNET64bef917cb< +DATARMNET264b01f4d5)&&DATARMNETf115ef7639<=DATARMNETa7176e3ad8){ +DATARMNETd668725d64=DATARMNET42a992465f;DATARMNETa7176e3ad8=DATARMNETf115ef7639; +}}trace_rmnet_shs_wq_high(DATARMNET39a68a0eba,DATARMNETcd209744bd, DATARMNET7c894c2f8f,DATARMNETd668725d64,DATARMNET85bfb4b2ca,DATARMNET7bea4a06a6 ->DATARMNET73464778dc[DATARMNETd668725d64].DATARMNET324c1a8f98,NULL,NULL);return DATARMNETd668725d64;}void DATARMNET466244e5d6(u16 DATARMNETc790ff30fc){struct @@ -488,7 +489,8 @@ DATARMNET208ea67e1d,struct DATARMNET9b44b71ee9*ep){u16 DATARMNET553df5e12a= (0xd2d+202-0xdf7);}if(DATARMNET7c894c2f8f>=DATARMNETc6782fed88|| DATARMNET208ea67e1d>=DATARMNETc6782fed88){DATARMNET68d84e7b98[ DATARMNET54b67b8a75]++;return(0xd2d+202-0xdf7);}DATARMNET553df5e12a=( -(0xd26+209-0xdf6)<DATARMNET9fb369ce5f;rm_err( +(0xd26+209-0xdf6)<DATARMNET9fb369ce5f&~ +DATARMNETecc0627c70.DATARMNETba3f7a11ef;rm_err( "\x53\x48\x53\x5f\x4d\x41\x53\x4b\x3a\x20\x20\x63\x75\x72\x20\x63\x70\x75\x20\x5b\x25\x64\x5d\x20\x7c\x20\x64\x65\x73\x74\x5f\x63\x70\x75\x20\x5b\x25\x64\x5d\x20\x7c\x20" "\x65\x70\x5f\x72\x70\x73\x5f\x6d\x61\x73\x6b\x20\x3d\x20\x30\x78\x25\x78\x20\x7c\x20\x63\x70\x75\x5f\x6f\x6e\x6c\x69\x6e\x65\x28\x64\x65\x73\x74\x29\x20\x3d\x20\x25\x64" "\x63\x70\x75\x5f\x69\x6e\x5f\x72\x70\x73\x5f\x6d\x61\x73\x6b\x20\x3d\x20\x25\x64\x20\x7c\x63\x70\x75\x20\x69\x73\x6f\x6c\x61\x74\x65\x64\x28\x64\x65\x73\x74\x29\x20\x3d\x20\x25\x64" @@ -604,14 +606,16 @@ DATARMNET629c75e1fa))/(DATARMNETab4cf0ad84+DATARMNET0c72af011b); DATARMNET373ff1422a->DATARMNET253a9fc708=DATARMNET253a9fc708; trace_rmnet_shs_wq_high(DATARMNET39a68a0eba,DATARMNETde65aa00a6, DATARMNET42a992465f,DATARMNETc7c10881f4,DATARMNET4a7d30059b,DATARMNET253a9fc708, -NULL,NULL);if((DATARMNET253a9fc708>DATARMNET264b01f4d5)||((DATARMNET253a9fc708< -DATARMNET53ce143c7e)&&(DATARMNETc7c10881f4DATARMNET9fb369ce5f;DATARMNETc312f6517d=ep->DATARMNET24a91635db; +NULL,NULL);if((DATARMNET253a9fc708>DATARMNET264b01f4d5)||(((0xd26+209-0xdf6)<< +DATARMNET42a992465f)&DATARMNETecc0627c70.DATARMNETba3f7a11ef)||!cpu_online( +DATARMNET42a992465f)||((DATARMNET253a9fc708 +DATARMNET9fb369ce5f;DATARMNETc312f6517d=ep->DATARMNET24a91635db; DATARMNETc35b40fa7b=ep->DATARMNET1a1d89d417;memset(ep->DATARMNET5af04d0405,- (0xd26+209-0xdf6),sizeof(*ep->DATARMNET5af04d0405)*DATARMNETc6782fed88);memset( ep->DATARMNET7167e10d99,-(0xd26+209-0xdf6),sizeof(*ep->DATARMNET7167e10d99)* @@ -769,14 +773,17 @@ DATARMNETab5c1e9ad5);DATARMNET7bea4a06a6->DATARMNET42a992465f= DATARMNET42a992465f;}}void DATARMNET4063c95208(void){int cpu;if( DATARMNETf141197982&&DATARMNET9dc7755be5)cancel_delayed_work_sync(& DATARMNET9dc7755be5->DATARMNET1150269da2);for(cpu=(0xd2d+202-0xdf7);cpu< -DATARMNETc6782fed88;cpu++)DATARMNET2d482e7d9f[cpu]=(0xd2d+202-0xdf7);}void -DATARMNET7b6c061b06(void){if(DATARMNETf141197982&&DATARMNET9dc7755be5) -queue_delayed_work(DATARMNETf141197982,&DATARMNET9dc7755be5->DATARMNET1150269da2 -,(0xd2d+202-0xdf7));}void DATARMNET3ae0d614d6(struct net_device*dev){if( -DATARMNETf141197982)return;if(!dev){DATARMNET68d84e7b98[DATARMNETf5157a9b85]++; -return;}DATARMNETf5f83b943f();trace_rmnet_shs_wq_high(DATARMNET9104d544fa, -DATARMNET1b421b0381,(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),(0x16e8+787-0xc0c), -(0x16e8+787-0xc0c),NULL,NULL);DATARMNETf141197982=alloc_workqueue( +DATARMNETc6782fed88;cpu++)DATARMNET2d482e7d9f[cpu]=(0xd2d+202-0xdf7);if(( +(0xd26+209-0xdf6)<DATARMNET1150269da2,(0xd2d+202-0xdf7));}void +DATARMNET3ae0d614d6(void){if(DATARMNETf141197982)return;DATARMNETf5f83b943f(); +trace_rmnet_shs_wq_high(DATARMNET9104d544fa,DATARMNET1b421b0381, +(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),NULL +,NULL);DATARMNETf141197982=alloc_workqueue( "\x72\x6d\x6e\x65\x74\x5f\x73\x68\x73\x5f\x77\x71",WQ_CPU_INTENSIVE, (0xd26+209-0xdf6));if(!DATARMNETf141197982){DATARMNET68d84e7b98[ DATARMNETecdf13872c]++;return;}DATARMNET9dc7755be5=kmalloc(sizeof(struct diff --git a/shs/rmnet_shs_wq.h b/shs/rmnet_shs_wq.h index 8562ef90834fb..5f890718c310e 100644 --- a/shs/rmnet_shs_wq.h +++ b/shs/rmnet_shs_wq.h @@ -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 @@ -43,13 +43,13 @@ DATARMNET6bda8fe27e;int DATARMNET121a654efd;int DATARMNETd7a83774f8;int DATARMNET847276e5af;};struct DATARMNET0737a3aa12{struct list_head DATARMNETd0c222566b;struct DATARMNET9b44b71ee9 ep;};enum DATARMNET0780ebfa33{ DATARMNET8866cd9e9a,DATARMNETed5a873a00,DATARMNETd7a3f55a51,DATARMNETefe8657028, -DATARMNET3563036124,};struct DATARMNET6c78e47d24{unsigned long int -DATARMNET61e1ee0e95[DATARMNET3563036124];struct list_head DATARMNET742867e97a; -struct list_head DATARMNET6de26f0feb;struct DATARMNET63d7680df2* -DATARMNET63b1a086d5;time_t DATARMNETadd51beef4;time_t DATARMNET68714ac92c;time_t - DATARMNET42ceaf5cc2;u64 DATARMNET4b4a76b094;u64 rx_bytes;u64 -DATARMNETa7352711af;u64 DATARMNET324c1a8f98;u64 DATARMNETbb80fccd97;u64 -DATARMNET6c2816c16a;u64 DATARMNET253a9fc708;u64 DATARMNET95266642d1;u64 +DATARMNET37da25c8e8,DATARMNET5dccc475d4,DATARMNET3563036124,};struct +DATARMNET6c78e47d24{unsigned long int DATARMNET61e1ee0e95[DATARMNET3563036124]; +struct list_head DATARMNET742867e97a;struct list_head DATARMNET6de26f0feb;struct + DATARMNET63d7680df2*DATARMNET63b1a086d5;time_t DATARMNETadd51beef4;time_t +DATARMNET68714ac92c;time_t DATARMNET42ceaf5cc2;u64 DATARMNET4b4a76b094;u64 +rx_bytes;u64 DATARMNETa7352711af;u64 DATARMNET324c1a8f98;u64 DATARMNETbb80fccd97 +;u64 DATARMNET6c2816c16a;u64 DATARMNET253a9fc708;u64 DATARMNET95266642d1;u64 DATARMNET6edbc8b649;u64 DATARMNET4025a4ec90;u64 DATARMNETde6a309f37;u32 DATARMNET9fb369ce5f;u32 DATARMNET17f2abdf03;u32 DATARMNET399c840115;u32 DATARMNET1a1d89d417;u32 DATARMNETb932033f50;u32 hash;int DATARMNETb5f5519502;u16 @@ -105,9 +105,9 @@ DATARMNET59a1cb0962,DATARMNET1b421b0381,DATARMNETb196f64ee0,DATARMNET7cf840e991, DATARMNETa5cdfd53b3,DATARMNETd7f7ade458,DATARMNET53e4a6b394,DATARMNETd1d3902361, DATARMNET1fc50aac59,DATARMNET213a62da0d,DATARMNETf814701a94,DATARMNET166a43f3aa, };extern struct DATARMNETe600c5b727 DATARMNET0997c5650d[DATARMNETc6782fed88]; -extern struct list_head DATARMNET9825511866;void DATARMNET3ae0d614d6(struct -net_device*dev);void DATARMNETf7dcab9a9e(void);void DATARMNET7b6c061b06(void); -void DATARMNET4063c95208(void);void DATARMNETe46c480d71(void);void +extern struct list_head DATARMNET9825511866;void DATARMNET3ae0d614d6(void);void +DATARMNETf7dcab9a9e(void);void DATARMNET7b6c061b06(void);void +DATARMNET4063c95208(void);void DATARMNETe46c480d71(void);void DATARMNET039ac6d55d(void);u64 DATARMNETd406e89a85(u32 DATARMNETfaedbb66a9);void DATARMNET350f55bfca(struct DATARMNET63d7680df2*node_p);int DATARMNET362c14e98b( u16 DATARMNETfaedbb66a9);int DATARMNETf181a18009(struct net_device*dev);int diff --git a/shs/rmnet_shs_wq_genl.c b/shs/rmnet_shs_wq_genl.c index dd46dca31c531..77c991d20b131 100644 --- a/shs/rmnet_shs_wq_genl.c +++ b/shs/rmnet_shs_wq_genl.c @@ -1,4 +1,4 @@ -/* Copyright (c) 2019-2020 The Linux Foundation. All rights reserved. +/* Copyright (c) 2019-2021 The Linux Foundation. All rights reserved. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 and @@ -127,18 +127,34 @@ if(na){if(nla_memcpy(&DATARMNET7f0ce2d6ad,na,sizeof(DATARMNET7f0ce2d6ad))> "\x68\x61\x73\x68\x5f\x74\x6f\x5f\x6d\x6f\x76\x65\x20\x3d\x20\x30\x78\x25\x78\x20\x73\x75\x67\x67\x5f\x74\x79\x70\x65\x20\x3d\x20\x25\x75" ,DATARMNET7f0ce2d6ad.DATARMNETc790ff30fc,DATARMNET7f0ce2d6ad.DATARMNET208ea67e1d ,DATARMNET7f0ce2d6ad.DATARMNET4da4612f1e,DATARMNET7f0ce2d6ad.DATARMNETa3f89581b5 -);rc=DATARMNET5f72606f6f(DATARMNET7f0ce2d6ad.DATARMNETc790ff30fc, -DATARMNET7f0ce2d6ad.DATARMNET208ea67e1d,DATARMNET7f0ce2d6ad.DATARMNET4da4612f1e, -DATARMNET7f0ce2d6ad.DATARMNETa3f89581b5);if(rc==(0xd26+209-0xdf6)){ -DATARMNET5d4ca1da1c(DATARMNET54338da2ff,DATARMNET598eb03fad); -trace_rmnet_shs_wq_high(DATARMNETa0ecb9daac,DATARMNETd7f7ade458, +);if(DATARMNET7f0ce2d6ad.DATARMNETa3f89581b5==DATARMNET5dccc475d4){if(!(( +(0xd26+209-0xdf6)<