diff options
author | Sean Tranchetti <quic_stranche@quicinc.com> | 2022-05-05 10:42:31 -0700 |
---|---|---|
committer | Sean Tranchetti <quic_stranche@quicinc.com> | 2022-06-09 09:04:55 -0700 |
commit | 4456a2029a9f696a7ddc0d7c694a82845cc484ad (patch) | |
tree | dc1a2169db0151e7f30dcfd69af31119f7c9284e | |
parent | f3b24a59ae76b823a217b24bc2cd8c13b34ee25a (diff) | |
download | datarmnet-ext-4456a2029a9f696a7ddc0d7c694a82845cc484ad.tar.gz |
Updates modules to version I9df774e092cc6b420ed46206101e31f6e218f451
Updates modules to version I9df774e092cc6b420ed46206101e31f6e218f451.
Change-Id: I9df774e092cc6b420ed46206101e31f6e218f451
Signed-off-by: Sean Tranchetti <quic_stranche@quicinc.com>
-rw-r--r-- | aps/rmnet_aps_main.c | 25 | ||||
-rw-r--r-- | offload/rmnet_offload_engine.c | 32 | ||||
-rw-r--r-- | offload/rmnet_offload_main.c | 70 | ||||
-rw-r--r-- | offload/rmnet_offload_main.h | 19 | ||||
-rw-r--r-- | perf/rmnet_perf_main.c | 32 | ||||
-rw-r--r-- | perf_tether/rmnet_perf_tether_main.c | 33 | ||||
-rw-r--r-- | shs/rmnet_shs.h | 4 | ||||
-rw-r--r-- | shs/rmnet_shs_config.c | 27 | ||||
-rw-r--r-- | shs/rmnet_shs_main.c | 119 | ||||
-rw-r--r-- | shs/rmnet_shs_wq.c | 37 | ||||
-rw-r--r-- | shs/rmnet_shs_wq_genl.c | 21 | ||||
-rw-r--r-- | wlan/rmnet_wlan_connection.c | 15 | ||||
-rw-r--r-- | wlan/rmnet_wlan_main.c | 15 |
13 files changed, 249 insertions, 200 deletions
diff --git a/aps/rmnet_aps_main.c b/aps/rmnet_aps_main.c index fde175e..3270b35 100644 --- a/aps/rmnet_aps_main.c +++ b/aps/rmnet_aps_main.c @@ -17,12 +17,14 @@ #include <net/ip.h> #include <net/ipv6.h> #include "rmnet_config.h" +#include "rmnet_module.h" #include "rmnet_aps.h" #include "rmnet_aps_genl.h" -static char*verinfo[]={"\x33\x32\x61\x36\x65\x62\x61\x39", -"\x36\x39\x30\x35\x35\x36\x38\x65","\x37\x34\x31\x35\x39\x32\x31\x63", -"\x39\x66\x36\x36\x38\x31\x62\x34"};module_param_array(verinfo,charp,NULL, -(0xcb7+5769-0x221c));MODULE_PARM_DESC(verinfo, +static char*verinfo[]={"\x65\x32\x31\x38\x66\x34\x35\x31", +"\x33\x32\x61\x36\x65\x62\x61\x39","\x36\x39\x30\x35\x35\x36\x38\x65", +"\x37\x34\x31\x35\x39\x32\x31\x63","\x39\x66\x36\x36\x38\x31\x62\x34"}; +module_param_array(verinfo,charp,NULL,(0xcb7+5769-0x221c));MODULE_PARM_DESC( +verinfo, "\x56\x65\x72\x73\x69\x6f\x6e\x20\x6f\x66\x20\x74\x68\x65\x20\x64\x72\x69\x76\x65\x72" ); #define DATARMNET63ff5c35c2 (0xd26+209-0xdf6) @@ -490,7 +492,10 @@ DATARMNET912d2a7edd;if(aps_cb->DATARMNET91119c34ed&&skb_hwtstamps( DATARMNET543491eb0f)->hwtstamp&&DATARMNETe7a1ab1dab){DATARMNET912d2a7edd= ktime_get_boottime();if(ktime_sub(DATARMNET912d2a7edd,skb_hwtstamps( DATARMNET543491eb0f)->hwtstamp)>DATARMNETe7a1ab1dab)return-ETIMEDOUT;}return -(0xd2d+202-0xdf7);}static int __init DATARMNET0718a3fa4c(void){int +(0xd2d+202-0xdf7);}static const struct rmnet_module_hook_register_info +DATARMNET509284caa6[]={{.hooknum=RMNET_MODULE_HOOK_APS_PRE_QUEUE,.func= +DATARMNETe0c7b9d5a4,},{.hooknum=RMNET_MODULE_HOOK_APS_POST_QUEUE,.func= +DATARMNET6ab4bbdaf4,},};static int __init DATARMNET0718a3fa4c(void){int DATARMNETb14e52a504;pr_info( "\x61\x70\x73\x3a\x20\x69\x6e\x69\x74\x20\x28\x25\x73\x29" "\n", DATARMNETe5ef0e617c);DATARMNETb14e52a504=DATARMNETcfa8d492f8();if( @@ -498,11 +503,13 @@ DATARMNETb14e52a504){pr_err( "\x61\x70\x73\x3a\x20\x66\x61\x69\x6c\x65\x64\x20\x74\x6f\x20\x72\x65\x67\x69\x73\x74\x65\x72\x20\x67\x65\x6e\x6c\x20\x66\x61\x6d\x69\x6c\x79" "\n" );return DATARMNETb14e52a504;}register_netdevice_notifier(&DATARMNETc580548769); rcu_assign_pointer(rmnet_aps_pre_queue,DATARMNETe0c7b9d5a4);rcu_assign_pointer( -rmnet_aps_post_queue,DATARMNET6ab4bbdaf4);mutex_lock(&DATARMNETd7b5a80f84); -DATARMNET54b95e4416=true;mutex_unlock(&DATARMNETd7b5a80f84);return -(0xd2d+202-0xdf7);}static void __exit DATARMNETff67054ba9(void){ +rmnet_aps_post_queue,DATARMNET6ab4bbdaf4);rmnet_module_hook_register( +DATARMNET509284caa6,ARRAY_SIZE(DATARMNET509284caa6));mutex_lock(& +DATARMNETd7b5a80f84);DATARMNET54b95e4416=true;mutex_unlock(&DATARMNETd7b5a80f84) +;return(0xd2d+202-0xdf7);}static void __exit DATARMNETff67054ba9(void){ rcu_assign_pointer(rmnet_aps_pre_queue,NULL);rcu_assign_pointer( -rmnet_aps_post_queue,NULL);synchronize_rcu();mutex_lock(&DATARMNETd7b5a80f84); +rmnet_aps_post_queue,NULL);rmnet_module_hook_unregister(DATARMNET509284caa6, +ARRAY_SIZE(DATARMNET509284caa6));mutex_lock(&DATARMNETd7b5a80f84); DATARMNET54b95e4416=false;DATARMNET9ac8a34003();mutex_unlock(& DATARMNETd7b5a80f84);DATARMNET446f780f19((0xd2d+202-0xdf7),DATARMNET94016043b8); cancel_delayed_work_sync(&DATARMNET3481998252);del_timer_sync(& diff --git a/offload/rmnet_offload_engine.c b/offload/rmnet_offload_engine.c index 1d1f6c5..2e075b1 100644 --- a/offload/rmnet_offload_engine.c +++ b/offload/rmnet_offload_engine.c @@ -1,4 +1,5 @@ /* Copyright (c) 2018-2021, The Linux Foundation. All rights reserved. + * Copyright (c) 2022 Qualcomm Innovation Center, Inc. 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 @@ -14,6 +15,7 @@ #include <linux/list.h> #include <linux/hashtable.h> #include "rmnet_descriptor.h" +#include "rmnet_module.h" #include "rmnet_offload_state.h" #include "rmnet_offload_engine.h" #include "rmnet_offload_main.h" @@ -94,20 +96,24 @@ DATARMNETa00cda79d0(DATARMNETf3f92fc0b9);DATARMNETa3055c21f2(DATARMNET6745427f98 DATARMNET6745427f98;}static void DATARMNETbe30d096c6(void){LIST_HEAD( DATARMNET6f9bfa17e6);DATARMNET664568fcd0();if(DATARMNETae70636c90(& DATARMNET6f9bfa17e6))DATARMNETa00cda79d0(DATARMNET5727f095ec); -DATARMNET6a76048590();DATARMNETc70e73c8d4(&DATARMNET6f9bfa17e6);}void +DATARMNET6a76048590();DATARMNETc70e73c8d4(&DATARMNET6f9bfa17e6);}static const +struct rmnet_module_hook_register_info DATARMNETcbc211d052={.hooknum= +RMNET_MODULE_HOOK_OFFLOAD_CHAIN_END,.func=DATARMNETbe30d096c6,};void DATARMNETd4230b6bfe(void){rcu_assign_pointer(rmnet_perf_chain_end, -DATARMNETbe30d096c6);}void DATARMNET560e127137(void){rcu_assign_pointer( -rmnet_perf_chain_end,NULL);}int DATARMNET241493ab9a(u64 DATARMNET0470698d6c,u64 -DATARMNETfeff65e096){LIST_HEAD(DATARMNET6f9bfa17e6);u32 DATARMNET737bbd41c3= -(0xd2d+202-0xdf7);if(DATARMNET0470698d6c==DATARMNET5fe3af8828|| -DATARMNETfeff65e096==DATARMNET2d89680280)return(0xd2d+202-0xdf7);switch( -DATARMNETfeff65e096){case DATARMNET03daf91a60:DATARMNET737bbd41c3= -DATARMNET1993bae165(DATARMNETa656f324b2,&DATARMNET6f9bfa17e6);break;case -DATARMNET88a9920663:DATARMNET737bbd41c3=DATARMNET1993bae165(DATARMNETfd5c3d30e5, -&DATARMNET6f9bfa17e6);break;case DATARMNET5fe3af8828:DATARMNET737bbd41c3= -DATARMNETae70636c90(&DATARMNET6f9bfa17e6);break;}DATARMNETbad3b5165e( -DATARMNETddf572458d,DATARMNET737bbd41c3);DATARMNETc70e73c8d4(& -DATARMNET6f9bfa17e6);return(0xd2d+202-0xdf7);}void DATARMNETa3055c21f2(struct +DATARMNETbe30d096c6);rmnet_module_hook_register(&DATARMNETcbc211d052, +(0xd26+209-0xdf6));}void DATARMNET560e127137(void){rcu_assign_pointer( +rmnet_perf_chain_end,NULL);rmnet_module_hook_unregister_no_sync(& +DATARMNETcbc211d052,(0xd26+209-0xdf6));}int DATARMNET241493ab9a(u64 +DATARMNET0470698d6c,u64 DATARMNETfeff65e096){LIST_HEAD(DATARMNET6f9bfa17e6);u32 +DATARMNET737bbd41c3=(0xd2d+202-0xdf7);if(DATARMNET0470698d6c== +DATARMNET5fe3af8828||DATARMNETfeff65e096==DATARMNET2d89680280)return +(0xd2d+202-0xdf7);switch(DATARMNETfeff65e096){case DATARMNET03daf91a60: +DATARMNET737bbd41c3=DATARMNET1993bae165(DATARMNETa656f324b2,&DATARMNET6f9bfa17e6 +);break;case DATARMNET88a9920663:DATARMNET737bbd41c3=DATARMNET1993bae165( +DATARMNETfd5c3d30e5,&DATARMNET6f9bfa17e6);break;case DATARMNET5fe3af8828: +DATARMNET737bbd41c3=DATARMNETae70636c90(&DATARMNET6f9bfa17e6);break;} +DATARMNETbad3b5165e(DATARMNETddf572458d,DATARMNET737bbd41c3);DATARMNETc70e73c8d4 +(&DATARMNET6f9bfa17e6);return(0xd2d+202-0xdf7);}void DATARMNETa3055c21f2(struct DATARMNETd7c9631acd*DATARMNETaa568481cf,struct list_head*DATARMNET6f9bfa17e6){ struct DATARMNET70f3b87b5d*DATARMNETe05748b000=DATARMNETc2a630b113();struct rmnet_frag_descriptor*DATARMNETd74aeaa49a,*DATARMNETa1625e27e2,* diff --git a/offload/rmnet_offload_main.c b/offload/rmnet_offload_main.c index 7a2c72e..03917e6 100644 --- a/offload/rmnet_offload_main.c +++ b/offload/rmnet_offload_main.c @@ -18,14 +18,15 @@ #include "rmnet_descriptor.h" #include "rmnet_handlers.h" #include "rmnet_map.h" +#include "rmnet_module.h" #include "rmnet_offload_main.h" #include "rmnet_offload_state.h" #include "rmnet_offload_engine.h" #include "rmnet_offload_stats.h" -static char*verinfo[]={"\x32\x61\x34\x34\x66\x36\x62\x65", -"\x37\x34\x31\x35\x39\x32\x31\x63","\x34\x31\x32\x39\x36\x62\x30\x39"}; -module_param_array(verinfo,charp,NULL,(0xcb7+5769-0x221c));MODULE_PARM_DESC( -verinfo, +static char*verinfo[]={"\x65\x32\x31\x38\x66\x34\x35\x31", +"\x32\x61\x34\x34\x66\x36\x62\x65","\x37\x34\x31\x35\x39\x32\x31\x63", +"\x34\x31\x32\x39\x36\x62\x30\x39"};module_param_array(verinfo,charp,NULL, +(0xcb7+5769-0x221c));MODULE_PARM_DESC(verinfo, "\x56\x65\x72\x73\x69\x6f\x6e\x20\x6f\x66\x20\x74\x68\x65\x20\x64\x72\x69\x76\x65\x72" );static DEFINE_SPINLOCK(DATARMNET0b5e447f18);static u32 DATARMNETcb7325e02d( struct DATARMNETd812bcdbb5*DATARMNET458b70e7e5){struct DATARMNET4287f07234* @@ -179,7 +180,7 @@ DATARMNET5affe290b8-DATARMNET8814564ab9->DATARMNET4ca5ac9de1-DATARMNET8814564ab9 ->DATARMNET0aeee57ceb;if(DATARMNET458b70e7e5->DATARMNET8f59f5a745) DATARMNETa00cda79d0(DATARMNET52b7da9033);DATARMNET458b70e7e5-> DATARMNET719f68fb88=DATARMNET9d1b321642;return false;}static void -DATARMNET29e8d137c4(struct rmnet_frag_descriptor*DATARMNET9d1b321642,struct +DATARMNETb56d685c50(struct rmnet_frag_descriptor*DATARMNET9d1b321642,struct rmnet_port*DATARMNETf0d9de7e2f){struct DATARMNET70f3b87b5d*DATARMNETe05748b000= DATARMNETc2a630b113();struct DATARMNETd812bcdbb5 DATARMNET458b70e7e5;LIST_HEAD( DATARMNET6f9bfa17e6);memset(&DATARMNET458b70e7e5,(0xd2d+202-0xdf7),sizeof( @@ -196,33 +197,38 @@ DATARMNET806c6f8e60;}if(!DATARMNETfbf5798e15(&DATARMNET458b70e7e5,& DATARMNET6f9bfa17e6))goto DATARMNET806c6f8e60;goto DATARMNETbf4095f79e; DATARMNET806c6f8e60:DATARMNET19d190f2bd(&DATARMNET458b70e7e5,& DATARMNET6f9bfa17e6);DATARMNETbf4095f79e:DATARMNET6a76048590(); -DATARMNETc70e73c8d4(&DATARMNET6f9bfa17e6);}void DATARMNET664568fcd0(void){ -spin_lock_bh(&DATARMNET0b5e447f18);}void DATARMNET6a76048590(void){ -spin_unlock_bh(&DATARMNET0b5e447f18);}void DATARMNET818b960147(void){ -rcu_assign_pointer(rmnet_perf_desc_entry,DATARMNET29e8d137c4);}void -DATARMNETba38823a2f(void){rcu_assign_pointer(rmnet_perf_desc_entry,NULL);}bool -DATARMNET19eb0de3b2(void){void(*DATARMNET27ebcde4bf)(struct -rmnet_frag_descriptor*DATARMNET9d1b321642,struct rmnet_port*DATARMNETf0d9de7e2f) -;rcu_read_lock();DATARMNET27ebcde4bf=rcu_dereference(rmnet_perf_desc_entry); -rcu_read_unlock();return DATARMNET27ebcde4bf!=NULL;}void DATARMNETc70e73c8d4( -struct list_head*DATARMNETb5730f5283){struct DATARMNET70f3b87b5d* -DATARMNETe05748b000=DATARMNETc2a630b113();struct rmnet_frag_descriptor* -DATARMNET9d1b321642,*DATARMNET0386f6f82a;list_for_each_entry_safe( -DATARMNET9d1b321642,DATARMNET0386f6f82a,DATARMNETb5730f5283,list){ -DATARMNETe26a68d20e(DATARMNET9d1b321642->len);DATARMNETa00cda79d0( -DATARMNET65843ad009);list_del_init(&DATARMNET9d1b321642->list); -rmnet_frag_deliver(DATARMNET9d1b321642,DATARMNETe05748b000->DATARMNET403589239f) -;}}void DATARMNET19d190f2bd(struct DATARMNETd812bcdbb5*DATARMNET458b70e7e5, -struct list_head*DATARMNET6f9bfa17e6){struct rmnet_frag_descriptor* -DATARMNET9d1b321642=DATARMNET458b70e7e5->DATARMNET719f68fb88;u32 -DATARMNET5affe290b8=DATARMNET458b70e7e5->DATARMNET1ef22e4c76+DATARMNET458b70e7e5 -->DATARMNET144d119066.DATARMNET4ca5ac9de1+DATARMNET458b70e7e5-> -DATARMNET144d119066.DATARMNET0aeee57ceb;if(DATARMNET5affe290b8>65536)return;if(! -DATARMNET458b70e7e5->DATARMNET3eb91ee54d)DATARMNET9d1b321642->hash= -DATARMNET458b70e7e5->DATARMNET645e8912b8;list_add_tail(&DATARMNET9d1b321642-> -list,DATARMNET6f9bfa17e6);}void DATARMNET9292bebdd3(void*DATARMNETf0d9de7e2f){} -void DATARMNETb7e47d7254(void*DATARMNETf0d9de7e2f){}void DATARMNET95e1703026( -struct rmnet_map_dl_ind_hdr*DATARMNET7c7748ef7a,struct +DATARMNETc70e73c8d4(&DATARMNET6f9bfa17e6);}static void DATARMNET29e8d137c4( +struct list_head*DATARMNETb5730f5283,struct rmnet_port*DATARMNETf0d9de7e2f){ +struct rmnet_frag_descriptor*DATARMNETced5b4128f,*DATARMNET0386f6f82a; +list_for_each_entry_safe(DATARMNETced5b4128f,DATARMNET0386f6f82a, +DATARMNETb5730f5283,list){list_del_init(&DATARMNETced5b4128f->list); +DATARMNETb56d685c50(DATARMNETced5b4128f,DATARMNETf0d9de7e2f);}}void +DATARMNET664568fcd0(void){spin_lock_bh(&DATARMNET0b5e447f18);}void +DATARMNET6a76048590(void){spin_unlock_bh(&DATARMNET0b5e447f18);}static const +struct rmnet_module_hook_register_info DATARMNET162e7a2013={.hooknum= +RMNET_MODULE_HOOK_OFFLOAD_INGRESS,.func=DATARMNET29e8d137c4,};void +DATARMNET818b960147(void){rcu_assign_pointer(rmnet_perf_desc_entry, +DATARMNETb56d685c50);rmnet_module_hook_register(&DATARMNET162e7a2013, +(0xd26+209-0xdf6));}void DATARMNETba38823a2f(void){rcu_assign_pointer( +rmnet_perf_desc_entry,NULL);rmnet_module_hook_unregister_no_sync(& +DATARMNET162e7a2013,(0xd26+209-0xdf6));}void DATARMNETc70e73c8d4(struct +list_head*DATARMNETb5730f5283){struct DATARMNET70f3b87b5d*DATARMNETe05748b000= +DATARMNETc2a630b113();struct rmnet_frag_descriptor*DATARMNET9d1b321642,* +DATARMNET0386f6f82a;list_for_each_entry_safe(DATARMNET9d1b321642, +DATARMNET0386f6f82a,DATARMNETb5730f5283,list){DATARMNETe26a68d20e( +DATARMNET9d1b321642->len);DATARMNETa00cda79d0(DATARMNET65843ad009);list_del_init +(&DATARMNET9d1b321642->list);rmnet_frag_deliver(DATARMNET9d1b321642, +DATARMNETe05748b000->DATARMNET403589239f);}}void DATARMNET19d190f2bd(struct +DATARMNETd812bcdbb5*DATARMNET458b70e7e5,struct list_head*DATARMNET6f9bfa17e6){ +struct rmnet_frag_descriptor*DATARMNET9d1b321642=DATARMNET458b70e7e5-> +DATARMNET719f68fb88;u32 DATARMNET5affe290b8=DATARMNET458b70e7e5-> +DATARMNET1ef22e4c76+DATARMNET458b70e7e5->DATARMNET144d119066.DATARMNET4ca5ac9de1 ++DATARMNET458b70e7e5->DATARMNET144d119066.DATARMNET0aeee57ceb;if( +DATARMNET5affe290b8>65536)return;if(!DATARMNET458b70e7e5->DATARMNET3eb91ee54d) +DATARMNET9d1b321642->hash=DATARMNET458b70e7e5->DATARMNET645e8912b8;list_add_tail +(&DATARMNET9d1b321642->list,DATARMNET6f9bfa17e6);}void DATARMNET9292bebdd3(void* +DATARMNETf0d9de7e2f){}void DATARMNETb7e47d7254(void*DATARMNETf0d9de7e2f){}void +DATARMNET95e1703026(struct rmnet_map_dl_ind_hdr*DATARMNET7c7748ef7a,struct rmnet_map_control_command_header*DATARMNET8b07ee3e82){struct DATARMNET70f3b87b5d *DATARMNETe05748b000=DATARMNETc2a630b113();LIST_HEAD(DATARMNET6f9bfa17e6);(void) DATARMNET8b07ee3e82;DATARMNET664568fcd0();if(DATARMNETe05748b000-> diff --git a/offload/rmnet_offload_main.h b/offload/rmnet_offload_main.h index ccb3712..5a3c142 100644 --- a/offload/rmnet_offload_main.h +++ b/offload/rmnet_offload_main.h @@ -1,4 +1,5 @@ /* Copyright (c) 2018-2021, The Linux Foundation. All rights reserved. + * Copyright (c) 2022, Qualcomm Innovation Center, Inc. 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 @@ -60,14 +61,14 @@ rmnet_frag_descriptor*DATARMNET719f68fb88;struct DATARMNET4287f07234 DATARMNET144d119066;u32 DATARMNET645e8912b8;u16 DATARMNET1ef22e4c76;bool DATARMNETf1b6b0a6cc;bool DATARMNET3eb91ee54d;bool DATARMNET8f59f5a745;};void DATARMNET664568fcd0(void);void DATARMNET6a76048590(void);void -DATARMNET818b960147(void);void DATARMNETba38823a2f(void);bool -DATARMNET19eb0de3b2(void);void DATARMNETc70e73c8d4(struct list_head* -DATARMNETb5730f5283);void DATARMNET19d190f2bd(struct DATARMNETd812bcdbb5* -DATARMNET458b70e7e5,struct list_head*DATARMNET6f9bfa17e6);void -DATARMNET9292bebdd3(void*DATARMNETf0d9de7e2f);void DATARMNETb7e47d7254(void* -DATARMNETf0d9de7e2f);void DATARMNET95e1703026(struct rmnet_map_dl_ind_hdr* -DATARMNET7c7748ef7a,struct rmnet_map_control_command_header*DATARMNET8b07ee3e82) -;void DATARMNETc9dd320f49(struct rmnet_map_dl_ind_trl*DATARMNET2541770fea,struct - rmnet_map_control_command_header*DATARMNET8b07ee3e82); +DATARMNET818b960147(void);void DATARMNETba38823a2f(void);void +DATARMNETc70e73c8d4(struct list_head*DATARMNETb5730f5283);void +DATARMNET19d190f2bd(struct DATARMNETd812bcdbb5*DATARMNET458b70e7e5,struct +list_head*DATARMNET6f9bfa17e6);void DATARMNET9292bebdd3(void*DATARMNETf0d9de7e2f +);void DATARMNETb7e47d7254(void*DATARMNETf0d9de7e2f);void DATARMNET95e1703026( +struct rmnet_map_dl_ind_hdr*DATARMNET7c7748ef7a,struct +rmnet_map_control_command_header*DATARMNET8b07ee3e82);void DATARMNETc9dd320f49( +struct rmnet_map_dl_ind_trl*DATARMNET2541770fea,struct +rmnet_map_control_command_header*DATARMNET8b07ee3e82); #endif diff --git a/perf/rmnet_perf_main.c b/perf/rmnet_perf_main.c index b71efda..b727455 100644 --- a/perf/rmnet_perf_main.c +++ b/perf/rmnet_perf_main.c @@ -10,14 +10,14 @@ #include <linux/udp.h> #include <linux/ip.h> #include <linux/ipv6.h> +#include "rmnet_module.h" MODULE_LICENSE("\x47\x50\x4c\x20\x76\x32");static char*verinfo[]={ -"\x33\x39\x63\x62\x64\x37\x64\x35","\x37\x34\x31\x35\x39\x32\x31\x63", -"\x34\x64\x65\x34\x39\x64\x62\x35","\x62\x31\x63\x34\x34\x62\x34\x63"}; -module_param_array(verinfo,charp,NULL,(0xcb7+5769-0x221c));MODULE_PARM_DESC( -verinfo, +"\x65\x32\x31\x38\x66\x34\x35\x31","\x33\x39\x63\x62\x64\x37\x64\x35", +"\x37\x34\x31\x35\x39\x32\x31\x63","\x34\x64\x65\x34\x39\x64\x62\x35", +"\x62\x31\x63\x34\x34\x62\x34\x63"};module_param_array(verinfo,charp,NULL, +(0xcb7+5769-0x221c));MODULE_PARM_DESC(verinfo, "\x56\x65\x72\x73\x69\x6f\x6e\x20\x6f\x66\x20\x74\x68\x65\x20\x64\x72\x69\x76\x65\x72" -);extern int(*rmnet_perf_ingress_hook1)(struct sk_buff*DATARMNET543491eb0f); -extern void(*rmnet_perf_egress_hook1)(struct sk_buff*DATARMNET543491eb0f); +);extern void(*rmnet_perf_egress_hook1)(struct sk_buff*DATARMNET543491eb0f); #define DATARMNETf241a4b20f (0xe07+6616-0x2624) static inline bool DATARMNETe1ef3edea2(struct udphdr*DATARMNETa1abb4897c){return be16_to_cpu(DATARMNETa1abb4897c->source)==DATARMNETf241a4b20f||be16_to_cpu( @@ -44,13 +44,17 @@ protocol==htons(ETH_P_IP)){if(ip_hdr(DATARMNET543491eb0f)->protocol!=IPPROTO_UDP (DATARMNET543491eb0f->protocol==htons(ETH_P_IPV6)){if(ipv6_hdr( DATARMNET543491eb0f)->nexthdr!=IPPROTO_UDP)return;if(DATARMNET77ab42949f( DATARMNET543491eb0f))goto DATARMNETb261f33b7b;}return;DATARMNETb261f33b7b: -DATARMNET543491eb0f->priority=14286874;}void DATARMNET49c17a32bc(void){ -rcu_assign_pointer(rmnet_perf_ingress_hook1,DATARMNETee9214ce9b); -rcu_assign_pointer(rmnet_perf_egress_hook1,DATARMNET05c4bf8af9);}void -DATARMNET41e8cc085c(void){rcu_assign_pointer(rmnet_perf_ingress_hook1,NULL); -rcu_assign_pointer(rmnet_perf_egress_hook1,NULL);synchronize_rcu();}static int -__init DATARMNET63abbdc3d3(void){pr_info("%s(): Loading\n",__func__); -DATARMNET49c17a32bc();return(0xd2d+202-0xdf7);}static void __exit -DATARMNETa343229e33(void){DATARMNET41e8cc085c();pr_info( +DATARMNET543491eb0f->priority=14286874;}static const struct +rmnet_module_hook_register_info DATARMNET95a71e03c1[]={{.hooknum= +RMNET_MODULE_HOOK_PERF_INGRESS,.func=DATARMNETee9214ce9b,},{.hooknum= +RMNET_MODULE_HOOK_PERF_EGRESS,.func=DATARMNET05c4bf8af9,},};void +DATARMNET49c17a32bc(void){rcu_assign_pointer(rmnet_perf_egress_hook1, +DATARMNET05c4bf8af9);rmnet_module_hook_register(DATARMNET95a71e03c1,ARRAY_SIZE( +DATARMNET95a71e03c1));}void DATARMNET41e8cc085c(void){rcu_assign_pointer( +rmnet_perf_egress_hook1,NULL);rmnet_module_hook_unregister(DATARMNET95a71e03c1, +ARRAY_SIZE(DATARMNET95a71e03c1));}static int __init DATARMNET63abbdc3d3(void){ +pr_info("%s(): Loading\n",__func__);DATARMNET49c17a32bc();return +(0xd2d+202-0xdf7);}static void __exit DATARMNETa343229e33(void){ +DATARMNET41e8cc085c();pr_info( "\x25\x73\x28\x29\x3a\x20\x65\x78\x69\x74\x69\x6e\x67" "\n",__func__);} module_init(DATARMNET63abbdc3d3);module_exit(DATARMNETa343229e33); diff --git a/perf_tether/rmnet_perf_tether_main.c b/perf_tether/rmnet_perf_tether_main.c index 0301030..ad8f16c 100644 --- a/perf_tether/rmnet_perf_tether_main.c +++ b/perf_tether/rmnet_perf_tether_main.c @@ -11,10 +11,12 @@ #include "rmnet_descriptor.h" #include "rmnet_map.h" #include "rmnet_qmap.h" +#include "rmnet_module.h" MODULE_LICENSE("\x47\x50\x4c\x20\x76\x32");static char*verinfo[]={ -"\x36\x34\x38\x62\x37\x30\x39\x35","\x37\x34\x31\x35\x39\x32\x31\x63", -"\x34\x39\x61\x66\x39\x62\x64\x34"};module_param_array(verinfo,charp,NULL, -(0xcb7+5769-0x221c));MODULE_PARM_DESC(verinfo, +"\x65\x32\x31\x38\x66\x34\x35\x31","\x36\x34\x38\x62\x37\x30\x39\x35", +"\x37\x34\x31\x35\x39\x32\x31\x63","\x34\x39\x61\x66\x39\x62\x64\x34"}; +module_param_array(verinfo,charp,NULL,(0xcb7+5769-0x221c));MODULE_PARM_DESC( +verinfo, "\x56\x65\x72\x73\x69\x6f\x6e\x20\x6f\x66\x20\x74\x68\x65\x20\x64\x72\x69\x76\x65\x72" );extern void(*rmnet_perf_tether_ingress_hook)(struct tcphdr*DATARMNET2e7cc88971 ,struct rmnet_frag_descriptor*DATARMNET9d1b321642,struct iphdr* @@ -178,15 +180,22 @@ sizeof(*DATARMNETf937c77d8f)+sizeof(*DATARMNETb87c07b92a));DATARMNETcd32395e82-> DATARMNETba8c503d04=DATARMNET7bd625a8c0;DATARMNETcd32395e82->DATARMNETc59f891d69 =!DATARMNETcc6099cb14;DATARMNET543491eb0f->dev=dev;DATARMNET543491eb0f->protocol =htons(ETH_P_MAP);rmnet_qmap_send(DATARMNET543491eb0f,RMNET_CH_CTL,false);} -DATARMNETaabe3a05f8:dev_put(dev);}void DATARMNET5fe3ffe2ab(void){ -rcu_assign_pointer(rmnet_perf_tether_ingress_hook,DATARMNETe70d5ec61a); -rcu_assign_pointer(rmnet_perf_tether_egress_hook,DATARMNET6ab362e985); -rcu_assign_pointer(rmnet_perf_tether_cmd_hook,DATARMNET136e008d70);}void -DATARMNET229327cbd2(void){rcu_assign_pointer(rmnet_perf_tether_ingress_hook,NULL -);rcu_assign_pointer(rmnet_perf_tether_egress_hook,NULL);rcu_assign_pointer( -rmnet_perf_tether_cmd_hook,NULL);}static int DATARMNETaa549ce89a(void){int -DATARMNETefc9df3df2;DATARMNET8a1e9920bf=kzalloc(sizeof(*DATARMNET8a1e9920bf), -GFP_KERNEL);if(!DATARMNET8a1e9920bf){pr_err( +DATARMNETaabe3a05f8:dev_put(dev);}static const struct +rmnet_module_hook_register_info DATARMNET0762b4f121[]={{.hooknum= +RMNET_MODULE_HOOK_PERF_TETHER_INGRESS,.func=DATARMNETe70d5ec61a,},{.hooknum= +RMNET_MODULE_HOOK_PERF_TETHER_EGRESS,.func=DATARMNET6ab362e985,},{.hooknum= +RMNET_MODULE_HOOK_PERF_TETHER_CMD,.func=DATARMNET136e008d70,},};void +DATARMNET5fe3ffe2ab(void){rcu_assign_pointer(rmnet_perf_tether_ingress_hook, +DATARMNETe70d5ec61a);rcu_assign_pointer(rmnet_perf_tether_egress_hook, +DATARMNET6ab362e985);rcu_assign_pointer(rmnet_perf_tether_cmd_hook, +DATARMNET136e008d70);rmnet_module_hook_register(DATARMNET0762b4f121,ARRAY_SIZE( +DATARMNET0762b4f121));}void DATARMNET229327cbd2(void){rcu_assign_pointer( +rmnet_perf_tether_ingress_hook,NULL);rcu_assign_pointer( +rmnet_perf_tether_egress_hook,NULL);rcu_assign_pointer( +rmnet_perf_tether_cmd_hook,NULL);rmnet_module_hook_unregister( +DATARMNET0762b4f121,ARRAY_SIZE(DATARMNET0762b4f121));}static int +DATARMNETaa549ce89a(void){int DATARMNETefc9df3df2;DATARMNET8a1e9920bf=kzalloc( +sizeof(*DATARMNET8a1e9920bf),GFP_KERNEL);if(!DATARMNET8a1e9920bf){pr_err( "\x25\x73\x28\x29\x3a\x20\x52\x65\x73\x6f\x75\x72\x63\x65\x20\x61\x6c\x6c\x6f\x63\x61\x74\x69\x6f\x6e\x20\x66\x61\x69\x6c\x65\x64" "\n" ,__func__);return-(0xd26+209-0xdf6);}DATARMNET8a1e9920bf->DATARMNETd0ef85194f++; for(DATARMNETefc9df3df2=(0xd2d+202-0xdf7);DATARMNETefc9df3df2< diff --git a/shs/rmnet_shs.h b/shs/rmnet_shs.h index d8e8215..714844c 100644 --- a/shs/rmnet_shs.h +++ b/shs/rmnet_shs.h @@ -143,7 +143,9 @@ extern spinlock_t DATARMNETfbdbab2ef6;extern struct hlist_head DATARMNETe603c3a4b3[(0xd26+209-0xdf6)<<(DATARMNET25437d35fd)];extern int(* rmnet_shs_skb_entry)(struct sk_buff*skb,struct rmnet_shs_clnt_s* DATARMNET9e820fbfe3);extern int(*rmnet_shs_switch)(struct sk_buff*skb,struct -rmnet_shs_clnt_s*DATARMNET9e820fbfe3);int DATARMNET362b15f941(u16 cpu);void +rmnet_shs_clnt_s*DATARMNET9e820fbfe3);void DATARMNET203752febd(void);void +DATARMNET7520667b38(void);void DATARMNETa871eeb7e7(void);void +DATARMNET8f9da46b14(void);int DATARMNET362b15f941(u16 cpu);void DATARMNETeacad8334e(void);void DATARMNETe1f95274f1(void);unsigned int DATARMNET02cdd9b125(void);int DATARMNET310c3eb16e(u8 mask);int DATARMNETe02152c351(struct DATARMNET63d7680df2*DATARMNET63b1a086d5,u8 diff --git a/shs/rmnet_shs_config.c b/shs/rmnet_shs_config.c index 15a94fe..e6cfe23 100644 --- a/shs/rmnet_shs_config.c +++ b/shs/rmnet_shs_config.c @@ -56,16 +56,16 @@ DATARMNETd6ee05f1b4(dev);break;case NETDEV_UNREGISTER:DATARMNET2cb9ae589c--;if(! DATARMNET2cb9ae589c&&DATARMNETecc0627c70.DATARMNETfc89d842ae){unsigned int DATARMNET9f4bc49c6f;pr_info( "\x72\x6d\x6e\x65\x74\x5f\x73\x68\x73\x20\x64\x65\x69\x6e\x69\x74\x20\x25\x73\x20\x67\x6f\x69\x6e\x67\x20\x64\x6f\x77\x6e\x20" -,dev->name);RCU_INIT_POINTER(rmnet_shs_skb_entry,NULL);RCU_INIT_POINTER( -rmnet_shs_switch,NULL);qmi_rmnet_ps_ind_deregister(DATARMNETecc0627c70.port,& -DATARMNETecc0627c70.rmnet_idl_ind_cb);rmnet_map_dl_ind_deregister( -DATARMNETecc0627c70.port,&DATARMNETecc0627c70.DATARMNET08dbb5ab35); -DATARMNETeacad8334e();DATARMNET9f4bc49c6f=DATARMNET02cdd9b125(); -DATARMNETf7dcab9a9e();DATARMNET9297340f58(DATARMNET9f4bc49c6f); -trace_rmnet_shs_high(DATARMNET1790979ccf,DATARMNET443dab7031,(0x16e8+787-0xc0c), -(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),NULL,NULL);}break;case -NETDEV_REGISTER:DATARMNET2cb9ae589c++;if(DATARMNET2cb9ae589c&&! -DATARMNETecc0627c70.DATARMNETfc89d842ae){pr_info( +,dev->name);DATARMNET203752febd();DATARMNETa871eeb7e7(); +qmi_rmnet_ps_ind_deregister(DATARMNETecc0627c70.port,&DATARMNETecc0627c70. +rmnet_idl_ind_cb);rmnet_map_dl_ind_deregister(DATARMNETecc0627c70.port,& +DATARMNETecc0627c70.DATARMNET08dbb5ab35);DATARMNETeacad8334e(); +DATARMNET9f4bc49c6f=DATARMNET02cdd9b125();DATARMNETf7dcab9a9e(); +DATARMNET9297340f58(DATARMNET9f4bc49c6f);trace_rmnet_shs_high( +DATARMNET1790979ccf,DATARMNET443dab7031,(0x16e8+787-0xc0c),(0x16e8+787-0xc0c), +(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),NULL,NULL);}break;case NETDEV_REGISTER: +DATARMNET2cb9ae589c++;if(DATARMNET2cb9ae589c&&!DATARMNETecc0627c70. +DATARMNETfc89d842ae){pr_info( "\x72\x6d\x6e\x65\x74\x5f\x73\x68\x73\x20\x69\x6e\x69\x74\x69\x61\x6c\x69\x7a\x69\x6e\x67\x20\x25\x73" ,dev->name);priv=netdev_priv(dev);port=rmnet_get_port(priv->real_dev);if(!port){ pr_err( @@ -92,7 +92,6 @@ rmnet_idl_ind_cb);if(ret)pr_err( DATARMNETe46c480d71();DATARMNETecc0627c70.DATARMNET9c869c1ec2=(0xd26+209-0xdf6); trace_rmnet_shs_high(DATARMNET1790979ccf,DATARMNET443dab7031,(0x16e8+787-0xc0c), (0x16e8+787-0xc0c),(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),NULL,NULL); -DATARMNETcd6e26f0ad();RCU_INIT_POINTER(rmnet_shs_switch,NULL);RCU_INIT_POINTER( -rmnet_shs_skb_entry,DATARMNET756778f14f);break;}DATARMNET7492293980(dev);break; -default:break;}return NOTIFY_DONE;}module_init(DATARMNET163e93649e);module_exit( -DATARMNETf3298dab6f); +DATARMNETcd6e26f0ad();DATARMNETa871eeb7e7();DATARMNET7520667b38();break;} +DATARMNET7492293980(dev);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 3a86a70..8e0f1ee 100644 --- a/shs/rmnet_shs_main.c +++ b/shs/rmnet_shs_main.c @@ -27,6 +27,7 @@ #include <linux/ipv6.h> #include <linux/netdevice.h> #include <linux/percpu-defs.h> +#include "rmnet_module.h" #include "rmnet_shs.h" #include "rmnet_shs_config.h" #include "rmnet_shs_wq.h" @@ -38,14 +39,14 @@ #include <linux/cpumask.h> #include <linux/icmp.h> #include <linux/inet.h> -static char*verinfo[]={"\x30\x66\x36\x63\x61\x30\x31\x30", -"\x30\x36\x61\x33\x66\x33\x34\x62","\x38\x65\x30\x61\x35\x38\x36\x62", -"\x35\x66\x64\x35\x63\x66\x66\x37","\x31\x39\x64\x61\x63\x36\x32\x36", -"\x35\x65\x31\x64\x38\x37\x39\x62","\x37\x34\x31\x35\x39\x32\x31\x63", -"\x31\x35\x33\x64\x31\x61\x62\x31","\x34\x66\x64\x35\x39\x63\x66\x35", -"\x38\x61\x64\x37\x64\x32\x62\x65","\x63\x30\x32\x62\x61\x39\x30\x65"}; -module_param_array(verinfo,charp,NULL,(0xcb7+5769-0x221c));MODULE_PARM_DESC( -verinfo, +static char*verinfo[]={"\x65\x32\x31\x38\x66\x34\x35\x31", +"\x30\x66\x36\x63\x61\x30\x31\x30","\x30\x36\x61\x33\x66\x33\x34\x62", +"\x38\x65\x30\x61\x35\x38\x36\x62","\x35\x66\x64\x35\x63\x66\x66\x37", +"\x31\x39\x64\x61\x63\x36\x32\x36","\x35\x65\x31\x64\x38\x37\x39\x62", +"\x37\x34\x31\x35\x39\x32\x31\x63","\x31\x35\x33\x64\x31\x61\x62\x31", +"\x34\x66\x64\x35\x39\x63\x66\x35","\x38\x61\x64\x37\x64\x32\x62\x65", +"\x63\x30\x32\x62\x61\x39\x30\x65"};module_param_array(verinfo,charp,NULL, +(0xcb7+5769-0x221c));MODULE_PARM_DESC(verinfo, "\x56\x65\x72\x73\x69\x6f\x6e\x20\x6f\x66\x20\x74\x68\x65\x20\x64\x72\x69\x76\x65\x72" ); #define DATARMNET2f67183a86 2000000 @@ -105,9 +106,7 @@ DATARMNET673cf85e28, "\x4d\x61\x78\x20\x70\x68\x79\x20\x62\x61\x63\x6b\x6c\x6f\x67\x20\x73\x65\x65\x6e" );struct DATARMNETa6b20d7e8b DATARMNETecc0627c70;struct DATARMNET37ef896af8 shs_rx_work;int DATARMNET762cfa52fe(u8 mask);unsigned DATARMNET016351c9e4= -(0xd2d+202-0xdf7);typedef int(*DATARMNET318cb01989)(struct sk_buff*skb); -DATARMNET318cb01989 rmnet_perf_ingress_hook1 __rcu __read_mostly;EXPORT_SYMBOL( -rmnet_perf_ingress_hook1);ssize_t DATARMNET713da9913c(struct netdev_rx_queue* +(0xd2d+202-0xdf7);ssize_t DATARMNET713da9913c(struct netdev_rx_queue* DATARMNETb4180393e4,u8 cpu,u8 DATARMNET5780499e9c){struct rps_map* DATARMNETaeb4918e65,*map;cpumask_var_t mask;map=rcu_dereference( DATARMNETb4180393e4->rps_map);if(map){map->cpus[(0xd2d+202-0xdf7)]=cpu;map->len= @@ -134,18 +133,18 @@ 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;DATARMNET318cb01989 -DATARMNET9a0f3e1b3a;s64 DATARMNETe30c7cdaf5;struct timespec64 time; -DATARMNET9a0f3e1b3a=rcu_dereference(rmnet_perf_ingress_hook1);if( -DATARMNET9a0f3e1b3a){if(!DATARMNET9a0f3e1b3a(skb)){goto done;}}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);(void)ktime_get_boottime_ts64(& -time);DATARMNETe30c7cdaf5=ktime_ms_delta(ktime_set(time.tv_sec,time.tv_nsec), -DATARMNETecc0627c70.DATARMNETdd3caf9200);if(hrtimer_active(&DATARMNETecc0627c70. -hrtimer_wake)){hrtimer_cancel(&DATARMNETecc0627c70.hrtimer_wake);hrtimer_start(& +DATARMNETc00baf31c3;struct ipv6hdr*ip6h,DATARMNETcf1d9e2c1e;s64 +DATARMNETe30c7cdaf5;struct timespec64 time;int DATARMNET441081ddc0;if( +rmnet_module_hook_perf_ingress(&DATARMNET441081ddc0,skb)){if(! +DATARMNET441081ddc0){goto done;}}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);(void)ktime_get_boottime_ts64(&time);DATARMNETe30c7cdaf5= +ktime_ms_delta(ktime_set(time.tv_sec,time.tv_nsec),DATARMNETecc0627c70. +DATARMNETdd3caf9200);if(hrtimer_active(&DATARMNETecc0627c70.hrtimer_wake)){ +hrtimer_cancel(&DATARMNETecc0627c70.hrtimer_wake);hrtimer_start(& DATARMNETecc0627c70.hrtimer_wake,ns_to_ktime((0xbf7+4070-0x172d)* DATARMNET68fc0be252),HRTIMER_MODE_REL|HRTIMER_MODE_PINNED);DATARMNET064fbe9e3a= (0xd1f+216-0xdf5);}else{hrtimer_start(&DATARMNETecc0627c70.hrtimer_wake, @@ -433,15 +432,15 @@ DATARMNET132b9c7dc4[DATARMNET42a992465f].DATARMNETe61d62310f=(0xd2d+202-0xdf7); DATARMNET0997c5650d[DATARMNET42a992465f].DATARMNET4133fc9428=(0xd2d+202-0xdf7); spin_unlock_irqrestore(&DATARMNET3764d083f0,ht_flags);local_bh_enable();if( DATARMNET42a992465f==DATARMNETecc0627c70.DATARMNET6625085b71&&rcu_dereference( -rmnet_shs_switch)){RCU_INIT_POINTER(rmnet_shs_switch,NULL);DATARMNETecc0627c70. -DATARMNETfeee6933fc=(0xd2d+202-0xdf7);DATARMNETecc0627c70.DATARMNET6625085b71= -DATARMNETecc0627c70.DATARMNET7d667e828e;}DATARMNET52de1f3dc0(DATARMNET4510abc30d -,DATARMNET576793621a,DATARMNETecc0627c70.DATARMNETa2e32cdd3a,DATARMNETecc0627c70 -.DATARMNETc252a1f55d,DATARMNET8bf94cc2f7,DATARMNET76192fa639,NULL,NULL);}void -DATARMNET056c939591(struct work_struct*DATARMNET33110a3ff5){struct -DATARMNETa6f2d499b2*DATARMNET4b39dc1574=container_of(DATARMNET33110a3ff5,struct -DATARMNETa6f2d499b2,DATARMNET33110a3ff5);DATARMNETfbc06e60f1(DATARMNET4b39dc1574 -->DATARMNET42c3ecbd5e);DATARMNET14ed771dfb[DATARMNETbb5757569c]++;}void +rmnet_shs_switch)){DATARMNETa871eeb7e7();DATARMNETecc0627c70.DATARMNETfeee6933fc +=(0xd2d+202-0xdf7);DATARMNETecc0627c70.DATARMNET6625085b71=DATARMNETecc0627c70. +DATARMNET7d667e828e;}DATARMNET52de1f3dc0(DATARMNET4510abc30d,DATARMNET576793621a +,DATARMNETecc0627c70.DATARMNETa2e32cdd3a,DATARMNETecc0627c70.DATARMNETc252a1f55d +,DATARMNET8bf94cc2f7,DATARMNET76192fa639,NULL,NULL);}void DATARMNET056c939591( +struct work_struct*DATARMNET33110a3ff5){struct DATARMNETa6f2d499b2* +DATARMNET4b39dc1574=container_of(DATARMNET33110a3ff5,struct DATARMNETa6f2d499b2, +DATARMNET33110a3ff5);DATARMNETfbc06e60f1(DATARMNET4b39dc1574-> +DATARMNET42c3ecbd5e);DATARMNET14ed771dfb[DATARMNETbb5757569c]++;}void DATARMNETcba2f7f7b6(struct DATARMNET63d7680df2*DATARMNET63b1a086d5,u8 DATARMNETf345c1d909){struct sk_buff*skb=NULL;struct sk_buff*DATARMNETcebafc57a4= NULL;struct DATARMNETe600c5b727*DATARMNETa4055affd5;u32 DATARMNETe20a9cab2b= @@ -481,25 +480,24 @@ DATARMNET63b1a086d5->DATARMNETae4b27456e.DATARMNET6215127f48=(0xd2d+202-0xdf7); DATARMNET63b1a086d5->DATARMNETae4b27456e.DATARMNETbaa5765693=(0xd2d+202-0xdf7); DATARMNET63b1a086d5->DATARMNETae4b27456e.head=NULL;DATARMNET63b1a086d5-> DATARMNETae4b27456e.tail=NULL;if(DATARMNET63b1a086d5->DATARMNET85c698ec34){ -RCU_INIT_POINTER(rmnet_shs_switch,NULL);DATARMNET63b1a086d5->DATARMNET0371465875 -=(0xd2d+202-0xdf7);DATARMNETecc0627c70.DATARMNETfeee6933fc=(0xd2d+202-0xdf7); -DATARMNETecc0627c70.DATARMNET6625085b71=DATARMNETecc0627c70.DATARMNET7d667e828e; -}DATARMNET52de1f3dc0(DATARMNET4510abc30d,DATARMNETfb753e521e,DATARMNET63b1a086d5 -->hash,DATARMNET1fcbf046ec,DATARMNETe20a9cab2b,DATARMNETb481d13a78, -DATARMNET63b1a086d5,NULL);}void DATARMNET23c7ddd780(struct DATARMNET63d7680df2* -DATARMNET63b1a086d5,u8 DATARMNET5447204733){struct sk_buff*skb;struct sk_buff* -DATARMNETcebafc57a4=NULL;u32 DATARMNETe20a9cab2b=(0xd2d+202-0xdf7);u32 -DATARMNETb481d13a78=(0xd2d+202-0xdf7);u32 DATARMNET1fcbf046ec;u8 map, -DATARMNET0258668025;if(!DATARMNET63b1a086d5->DATARMNETae4b27456e.head)return;map -=DATARMNET63b1a086d5->DATARMNETfbbec4c537;DATARMNET0258668025= -DATARMNET63b1a086d5->DATARMNETa59ce1fd2d;if(map){DATARMNET1fcbf046ec= -DATARMNET8532ab3089(DATARMNET63b1a086d5->map_index,DATARMNET0258668025, -DATARMNET63b1a086d5->DATARMNETae4b27456e.head->hash);}else{DATARMNET63b1a086d5-> -DATARMNET6250e93187=(0xd2d+202-0xdf7);}for((skb=DATARMNET63b1a086d5-> -DATARMNETae4b27456e.head);skb!=NULL;skb=DATARMNETcebafc57a4){DATARMNETcebafc57a4 -=skb->next;if(DATARMNET63b1a086d5->DATARMNET6250e93187)skb->hash= -DATARMNET1fcbf046ec;skb->next=NULL;DATARMNETe20a9cab2b+=(0xd26+209-0xdf6); -DATARMNETb481d13a78+=skb->len;if(DATARMNET5447204733==DATARMNET0b15fd8b54&&(! +DATARMNETa871eeb7e7();DATARMNET63b1a086d5->DATARMNET0371465875=(0xd2d+202-0xdf7) +;DATARMNETecc0627c70.DATARMNETfeee6933fc=(0xd2d+202-0xdf7);DATARMNETecc0627c70. +DATARMNET6625085b71=DATARMNETecc0627c70.DATARMNET7d667e828e;}DATARMNET52de1f3dc0 +(DATARMNET4510abc30d,DATARMNETfb753e521e,DATARMNET63b1a086d5->hash, +DATARMNET1fcbf046ec,DATARMNETe20a9cab2b,DATARMNETb481d13a78,DATARMNET63b1a086d5, +NULL);}void DATARMNET23c7ddd780(struct DATARMNET63d7680df2*DATARMNET63b1a086d5, +u8 DATARMNET5447204733){struct sk_buff*skb;struct sk_buff*DATARMNETcebafc57a4= +NULL;u32 DATARMNETe20a9cab2b=(0xd2d+202-0xdf7);u32 DATARMNETb481d13a78= +(0xd2d+202-0xdf7);u32 DATARMNET1fcbf046ec;u8 map,DATARMNET0258668025;if(! +DATARMNET63b1a086d5->DATARMNETae4b27456e.head)return;map=DATARMNET63b1a086d5-> +DATARMNETfbbec4c537;DATARMNET0258668025=DATARMNET63b1a086d5->DATARMNETa59ce1fd2d +;if(map){DATARMNET1fcbf046ec=DATARMNET8532ab3089(DATARMNET63b1a086d5->map_index, +DATARMNET0258668025,DATARMNET63b1a086d5->DATARMNETae4b27456e.head->hash);}else{ +DATARMNET63b1a086d5->DATARMNET6250e93187=(0xd2d+202-0xdf7);}for((skb= +DATARMNET63b1a086d5->DATARMNETae4b27456e.head);skb!=NULL;skb=DATARMNETcebafc57a4 +){DATARMNETcebafc57a4=skb->next;if(DATARMNET63b1a086d5->DATARMNET6250e93187)skb +->hash=DATARMNET1fcbf046ec;skb->next=NULL;DATARMNETe20a9cab2b+=(0xd26+209-0xdf6) +;DATARMNETb481d13a78+=skb->len;if(DATARMNET5447204733==DATARMNET0b15fd8b54&&(! DATARMNET63b1a086d5->DATARMNET85c698ec34))DATARMNETe767554e6e(skb);else if( DATARMNET5447204733==DATARMNET5b5927fd7e&&(!DATARMNET63b1a086d5-> DATARMNET85c698ec34))DATARMNET514ce0bf59(skb);else{netif_rx_ni(skb);}} @@ -832,8 +830,8 @@ hash=57005;if(raw_smp_processor_id()==DATARMNETecc0627c70.DATARMNET6625085b71&& DATARMNETecc0627c70.DATARMNET6625085b71!=DATARMNETecc0627c70.DATARMNET7d667e828e ){netif_rx(skb);DATARMNETecc0627c70.DATARMNETfeee6933fc++;if(DATARMNETecc0627c70 .DATARMNETfeee6933fc>DATARMNETf4cacbb5dc){DATARMNETa4bf9fbf64( -DATARMNETf3dfa53867,DATARMNET0b15fd8b54);RCU_INIT_POINTER(rmnet_shs_switch,NULL) -;DATARMNET68d84e7b98[DATARMNET43405942ed]++;DATARMNETecc0627c70. +DATARMNETf3dfa53867,DATARMNET0b15fd8b54);DATARMNETa871eeb7e7(); +DATARMNET68d84e7b98[DATARMNET43405942ed]++;DATARMNETecc0627c70. DATARMNETfeee6933fc=(0xd2d+202-0xdf7);}return(0xd2d+202-0xdf7);}} spin_lock_irqsave(&DATARMNET3764d083f0,ht_flags);do{hash_for_each_possible_safe( DATARMNETe603c3a4b3,node_p,tmp,list,hash){if(hash!=node_p->hash)continue; @@ -928,7 +926,20 @@ NULL,NULL);DATARMNETa4bf9fbf64((0xd2d+202-0xdf7),DATARMNET0b15fd8b54);}else if(! DATARMNETa2e32cdd3a&&DATARMNETecc0627c70.DATARMNET6fe0db3a49!= DATARMNET1c55e5fdb1){DATARMNET14ed771dfb[DATARMNET01bf75e27c]++; DATARMNETa4bf9fbf64((0xd2d+202-0xdf7),DATARMNET0b15fd8b54);}return -(0xd2d+202-0xdf7);}void DATARMNET9297340f58(unsigned int DATARMNET9f4bc49c6f){ +(0xd2d+202-0xdf7);}static const struct rmnet_module_hook_register_info +DATARMNETef42b9f0b2={.hooknum=RMNET_MODULE_HOOK_SHS_SKB_ENTRY,.func= +DATARMNET756778f14f,};void DATARMNET203752febd(void){RCU_INIT_POINTER( +rmnet_shs_skb_entry,NULL);rmnet_module_hook_unregister_no_sync(& +DATARMNETef42b9f0b2,(0xd26+209-0xdf6));}void DATARMNET7520667b38(void){ +RCU_INIT_POINTER(rmnet_shs_skb_entry,DATARMNET756778f14f); +rmnet_module_hook_register(&DATARMNETef42b9f0b2,(0xd26+209-0xdf6));}static const + struct rmnet_module_hook_register_info DATARMNET28a9685974={.hooknum= +RMNET_MODULE_HOOK_SHS_SWITCH,.func=DATARMNET756778f14f,};void +DATARMNETa871eeb7e7(void){RCU_INIT_POINTER(rmnet_shs_switch,NULL); +rmnet_module_hook_unregister_no_sync(&DATARMNET28a9685974,(0xd26+209-0xdf6));} +void DATARMNET8f9da46b14(void){RCU_INIT_POINTER(rmnet_shs_switch, +DATARMNET756778f14f);rmnet_module_hook_register(&DATARMNET28a9685974, +(0xd26+209-0xdf6));}void DATARMNET9297340f58(unsigned int DATARMNET9f4bc49c6f){ DATARMNETdf74db7e38();DATARMNETecc0627c70.DATARMNET9c869c1ec2=(0xd2d+202-0xdf7); unregister_oom_notifier(&DATARMNET105c85d84c);wakeup_source_unregister( DATARMNETecc0627c70.ws);if(DATARMNETecc0627c70.DATARMNETf5ab31b9b0) diff --git a/shs/rmnet_shs_wq.c b/shs/rmnet_shs_wq.c index d544fd1..a8efff3 100644 --- a/shs/rmnet_shs_wq.c +++ b/shs/rmnet_shs_wq.c @@ -816,26 +816,25 @@ DATARMNET9dc7755be5->DATARMNET1150269da2);for(cpu=(0xd2d+202-0xdf7);cpu< DATARMNETc6782fed88;cpu++)DATARMNET2d482e7d9f[cpu]=(0xd2d+202-0xdf7); rcu_read_lock();if(((0xd26+209-0xdf6)<<DATARMNETecc0627c70.DATARMNET7d667e828e)& DATARMNETbc3c416b77){DATARMNETecc0627c70.DATARMNET5c24e1df05=(0xd26+209-0xdf6); -RCU_INIT_POINTER(rmnet_shs_switch,DATARMNET756778f14f);DATARMNETb7ddf3c5dd[ -DATARMNET6ea8a58f4e]++;}rcu_read_unlock();}void DATARMNET7b6c061b06(void){if( -DATARMNETf141197982&&DATARMNET9dc7755be5)queue_delayed_work(DATARMNETf141197982, -&DATARMNET9dc7755be5->DATARMNET1150269da2,(0xd2d+202-0xdf7));}void -DATARMNET3ae0d614d6(void){if(DATARMNETf141197982)return;DATARMNETf5f83b943f(); -trace_rmnet_shs_wq_high(DATARMNET9104d544fa,DATARMNET1b421b0381, +DATARMNET8f9da46b14();DATARMNETb7ddf3c5dd[DATARMNET6ea8a58f4e]++;} +rcu_read_unlock();}void DATARMNET7b6c061b06(void){if(DATARMNETf141197982&& +DATARMNET9dc7755be5)queue_delayed_work(DATARMNETf141197982,&DATARMNET9dc7755be5 +->DATARMNET1150269da2,(0xd2d+202-0xdf7));}void DATARMNET3ae0d614d6(void){if( +DATARMNETf141197982)return;DATARMNETf5f83b943f();trace_rmnet_shs_wq_high( +DATARMNET9104d544fa,DATARMNET1b421b0381,(0x16e8+787-0xc0c),(0x16e8+787-0xc0c), +(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),NULL,NULL);DATARMNETf141197982= +alloc_workqueue("\x72\x6d\x6e\x65\x74\x5f\x73\x68\x73\x5f\x77\x71",WQ_UNBOUND, +(0xd26+209-0xdf6));if(!DATARMNETf141197982){DATARMNET68d84e7b98[ +DATARMNETecdf13872c]++;return;}DATARMNET9dc7755be5=kmalloc(sizeof(struct +DATARMNETa144e2bd00),GFP_ATOMIC);if(!DATARMNET9dc7755be5){DATARMNET68d84e7b98[ +DATARMNETd1687e0776]++;DATARMNETf7dcab9a9e();return;}DATARMNETf5b8fce55d( +DATARMNET138a989ecb,(0xd26+209-0xdf6));DATARMNETd3d1d13f44();INIT_DELAYED_WORK(& +DATARMNET9dc7755be5->DATARMNET1150269da2,DATARMNETb4b5fc9686); +trace_rmnet_shs_wq_high(DATARMNET9104d544fa,DATARMNETb196f64ee0, (0x16e8+787-0xc0c),(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),NULL -,NULL);DATARMNETf141197982=alloc_workqueue( -"\x72\x6d\x6e\x65\x74\x5f\x73\x68\x73\x5f\x77\x71",WQ_UNBOUND,(0xd26+209-0xdf6)) -;if(!DATARMNETf141197982){DATARMNET68d84e7b98[DATARMNETecdf13872c]++;return;} -DATARMNET9dc7755be5=kmalloc(sizeof(struct DATARMNETa144e2bd00),GFP_ATOMIC);if(! -DATARMNET9dc7755be5){DATARMNET68d84e7b98[DATARMNETd1687e0776]++; -DATARMNETf7dcab9a9e();return;}DATARMNETf5b8fce55d(DATARMNET138a989ecb, -(0xd26+209-0xdf6));DATARMNETd3d1d13f44();INIT_DELAYED_WORK(&DATARMNET9dc7755be5 -->DATARMNET1150269da2,DATARMNETb4b5fc9686);trace_rmnet_shs_wq_high( -DATARMNET9104d544fa,DATARMNETb196f64ee0,(0x16e8+787-0xc0c),(0x16e8+787-0xc0c), -(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),NULL,NULL);}int DATARMNETb709a938b5(u16 -cpu){int flows=-(0xd26+209-0xdf6);if(cpu>=DATARMNETc6782fed88){ -DATARMNET68d84e7b98[DATARMNET709b59b0e6]++;return flows;}flows= -DATARMNET6cdd58e74c.DATARMNET73464778dc[cpu].flows;trace_rmnet_shs_wq_low( +,NULL);}int DATARMNETb709a938b5(u16 cpu){int flows=-(0xd26+209-0xdf6);if(cpu>= +DATARMNETc6782fed88){DATARMNET68d84e7b98[DATARMNET709b59b0e6]++;return flows;} +flows=DATARMNET6cdd58e74c.DATARMNET73464778dc[cpu].flows;trace_rmnet_shs_wq_low( DATARMNET39a68a0eba,DATARMNET0e287157de,cpu,flows,(0x16e8+787-0xc0c), (0x16e8+787-0xc0c),NULL,NULL);return flows;}int DATARMNET392890a12b(void){u16 cpu;int DATARMNET59bd820724=-(0xd26+209-0xdf6);int DATARMNET847bd62811;for(cpu= diff --git a/shs/rmnet_shs_wq_genl.c b/shs/rmnet_shs_wq_genl.c index 1f5aa58..913f7ed 100644 --- a/shs/rmnet_shs_wq_genl.c +++ b/shs/rmnet_shs_wq_genl.c @@ -156,17 +156,16 @@ DATARMNET7f0ce2d6ad.DATARMNET208ea67e1d)&DATARMNET9273f84bf1)||(( (0xd26+209-0xdf6)<<DATARMNETecc0627c70.DATARMNET5c24e1df05)&DATARMNET9273f84bf1) ){DATARMNET5d4ca1da1c(DATARMNET54338da2ff,DATARMNET2d19c9b1ef);return- (0xd26+209-0xdf6);}DATARMNETecc0627c70.DATARMNET5c24e1df05=DATARMNET7f0ce2d6ad. -DATARMNET208ea67e1d;rcu_read_lock();RCU_INIT_POINTER(rmnet_shs_switch, -DATARMNET756778f14f);rcu_read_unlock();DATARMNET5d4ca1da1c(DATARMNET54338da2ff, -DATARMNET2d19c9b1ef);return(0xd2d+202-0xdf7);}if(DATARMNET7f0ce2d6ad. -DATARMNETa3f89581b5==DATARMNET37da25c8e8){DATARMNETb7ddf3c5dd[ -DATARMNETb6eae1e097]++;if(!(((0xd26+209-0xdf6)<<DATARMNET7f0ce2d6ad. -DATARMNET208ea67e1d)&DATARMNETbc3c416b77)||(((0xd26+209-0xdf6)<< -DATARMNETecc0627c70.DATARMNET5c24e1df05)&DATARMNETbc3c416b77)){ -DATARMNET5d4ca1da1c(DATARMNET54338da2ff,DATARMNET2d19c9b1ef);return- -(0xd26+209-0xdf6);}DATARMNETecc0627c70.DATARMNET5c24e1df05=DATARMNET7f0ce2d6ad. -DATARMNET208ea67e1d;rcu_read_lock();RCU_INIT_POINTER(rmnet_shs_switch, -DATARMNET756778f14f);rcu_read_unlock();DATARMNET5d4ca1da1c(DATARMNET54338da2ff, +DATARMNET208ea67e1d;rcu_read_lock();DATARMNET8f9da46b14();rcu_read_unlock(); +DATARMNET5d4ca1da1c(DATARMNET54338da2ff,DATARMNET2d19c9b1ef);return +(0xd2d+202-0xdf7);}if(DATARMNET7f0ce2d6ad.DATARMNETa3f89581b5== +DATARMNET37da25c8e8){DATARMNETb7ddf3c5dd[DATARMNETb6eae1e097]++;if(!(( +(0xd26+209-0xdf6)<<DATARMNET7f0ce2d6ad.DATARMNET208ea67e1d)&DATARMNETbc3c416b77) +||(((0xd26+209-0xdf6)<<DATARMNETecc0627c70.DATARMNET5c24e1df05)& +DATARMNETbc3c416b77)){DATARMNET5d4ca1da1c(DATARMNET54338da2ff, +DATARMNET2d19c9b1ef);return-(0xd26+209-0xdf6);}DATARMNETecc0627c70. +DATARMNET5c24e1df05=DATARMNET7f0ce2d6ad.DATARMNET208ea67e1d;rcu_read_lock(); +DATARMNET8f9da46b14();rcu_read_unlock();DATARMNET5d4ca1da1c(DATARMNET54338da2ff, DATARMNET2d19c9b1ef);return(0xd2d+202-0xdf7);}rc=DATARMNET5f72606f6f( DATARMNET7f0ce2d6ad.DATARMNETc790ff30fc,DATARMNET7f0ce2d6ad.DATARMNET208ea67e1d, DATARMNET7f0ce2d6ad.DATARMNET4da4612f1e,DATARMNET7f0ce2d6ad.DATARMNETa3f89581b5) diff --git a/wlan/rmnet_wlan_connection.c b/wlan/rmnet_wlan_connection.c index d7649c7..858ad73 100644 --- a/wlan/rmnet_wlan_connection.c +++ b/wlan/rmnet_wlan_connection.c @@ -18,6 +18,7 @@ #include <net/ipv6.h> #include <net/dst.h> #include <net/netfilter/nf_conntrack.h> +#include "rmnet_module.h" #include "rmnet_wlan.h" #include "rmnet_wlan_connection.h" #include "rmnet_wlan_stats.h" @@ -329,11 +330,15 @@ IPPROTO_UDP){if(udp_hdr(DATARMNET543491eb0f)->source==DATARMNET3396919a68-> DATARMNET08e913477e&&udp_hdr(DATARMNET543491eb0f)->dest==DATARMNET3396919a68-> DATARMNETda7f7fa492)goto DATARMNET9573fcc9c6;}return;DATARMNET9573fcc9c6: DATARMNET543491eb0f->priority=2607612160;DATARMNET5ca94dbc3c(DATARMNETc2cade1d75 -);}void DATARMNET333c107558(void){rcu_assign_pointer(rmnet_wlan_ll_tuple_hook, -DATARMNET6f73df41cd);}void DATARMNET4c08c7210c(void){rcu_assign_pointer( -rmnet_wlan_ll_tuple_hook,NULL);synchronize_rcu();}int DATARMNET9f106ed933(void){ -int DATARMNET268a8314cf;DATARMNET268a8314cf=register_netdevice_notifier(& -DATARMNET61d0113123);if(DATARMNET268a8314cf)pr_err( +);}static const struct rmnet_module_hook_register_info DATARMNETd0b5ecd937={. +hooknum=RMNET_MODULE_HOOK_WLAN_FLOW_MATCH,.func=DATARMNET6f73df41cd,};void +DATARMNET333c107558(void){rcu_assign_pointer(rmnet_wlan_ll_tuple_hook, +DATARMNET6f73df41cd);rmnet_module_hook_register(&DATARMNETd0b5ecd937, +(0xd26+209-0xdf6));}void DATARMNET4c08c7210c(void){rcu_assign_pointer( +rmnet_wlan_ll_tuple_hook,NULL);rmnet_module_hook_unregister(&DATARMNETd0b5ecd937 +,(0xd26+209-0xdf6));}int DATARMNET9f106ed933(void){int DATARMNET268a8314cf; +DATARMNET268a8314cf=register_netdevice_notifier(&DATARMNET61d0113123);if( +DATARMNET268a8314cf)pr_err( "\x25\x73\x28\x29\x3a\x20\x6e\x6f\x74\x69\x66\x69\x65\x72\x20\x66\x61\x69\x6c\x65\x64" "\n" ,__func__);return DATARMNET268a8314cf;}int DATARMNETf56cbaa2b1(void){int DATARMNET268a8314cf;DATARMNET268a8314cf=unregister_netdevice_notifier(& diff --git a/wlan/rmnet_wlan_main.c b/wlan/rmnet_wlan_main.c index 0717e76..48db0bf 100644 --- a/wlan/rmnet_wlan_main.c +++ b/wlan/rmnet_wlan_main.c @@ -25,13 +25,14 @@ #include "rmnet_wlan_stats.h" #include "rmnet_wlan_fragment.h" #include "rmnet_wlan_connection.h" -static char*verinfo[]={"\x30\x65\x33\x34\x62\x31\x39\x31", -"\x39\x66\x33\x66\x31\x31\x33\x30","\x62\x31\x62\x63\x64\x66\x66\x61", -"\x61\x33\x33\x33\x36\x37\x61\x31","\x37\x34\x31\x35\x39\x32\x31\x63", -"\x33\x35\x36\x63\x34\x39\x31\x63","\x34\x64\x32\x32\x34\x33\x36\x33", -"\x61\x34\x31\x63\x39\x64\x37\x62","\x38\x66\x32\x66\x65\x64\x32\x66", -"\x63\x30\x32\x62\x61\x39\x30\x65"};module_param_array(verinfo,charp,NULL, -(0xcb7+5769-0x221c));MODULE_PARM_DESC(verinfo, +static char*verinfo[]={"\x65\x32\x31\x38\x66\x34\x35\x31", +"\x30\x65\x33\x34\x62\x31\x39\x31","\x39\x66\x33\x66\x31\x31\x33\x30", +"\x62\x31\x62\x63\x64\x66\x66\x61","\x61\x33\x33\x33\x36\x37\x61\x31", +"\x37\x34\x31\x35\x39\x32\x31\x63","\x33\x35\x36\x63\x34\x39\x31\x63", +"\x34\x64\x32\x32\x34\x33\x36\x33","\x61\x34\x31\x63\x39\x64\x37\x62", +"\x38\x66\x32\x66\x65\x64\x32\x66","\x63\x30\x32\x62\x61\x39\x30\x65"}; +module_param_array(verinfo,charp,NULL,(0xcb7+5769-0x221c));MODULE_PARM_DESC( +verinfo, "\x56\x65\x72\x73\x69\x6f\x6e\x20\x6f\x66\x20\x74\x68\x65\x20\x64\x72\x69\x76\x65\x72" ); #define DATARMNETaf49b04806 ((0xeb7+1158-0x132d)) |