123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110 |
- /* Copyright (c) 2018-2021 The Linux Foundation. All rights reserved.
- * Copyright (c) 2022-2023 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
- * only version 2 as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- */
- #include <linux/kernel.h>
- #include <linux/netdevice.h>
- #include <linux/module.h>
- #include "rmnet_map.h"
- #include "rmnet_private.h"
- #include "rmnet_shs_config.h"
- #include "rmnet_shs.h"
- #include "rmnet_shs_wq.h"
- #include "rmnet_shs_ll.h"
- #include "rmnet_shs_freq.h"
- #include "rmnet_shs_wq_genl.h"
- #include "rmnet_shs_common.h"
- #include "rmnet_shs_modules.h"
- #include "rmnet_module.h"
- static int DATARMNETe9173bbe0e(struct notifier_block*DATARMNET272c159b3c,
- unsigned long DATARMNET7f045a1e6e,void*data);static struct notifier_block
- DATARMNET5fc54f7a13 __read_mostly={.notifier_call=DATARMNETe9173bbe0e,.priority=
- (0xd1f+216-0xdf5),};static char*DATARMNETbc8418e817[]={"\x34\x33\x61\x36\x62",
- "\x61\x32\x63\x65\x36","\x64\x31\x61\x62\x31","\x64\x38\x37\x39\x62",
- "\x61\x63\x36\x32\x36","\x35\x63\x66\x66\x37","\x61\x35\x38\x36\x62"};
- module_param_array(DATARMNETbc8418e817,charp,NULL,(0xcb7+5769-0x221c));
- MODULE_PARM_DESC(DATARMNETbc8418e817,
- "\x56\x65\x72\x73\x69\x6f\x6e\x20\x6f\x66\x20\x73\x68\x73\x20\x64\x72\x69\x76\x65\x72"
- );static const struct rmnet_module_hook_register_info DATARMNETf6217b20b8={.
- hooknum=RMNET_MODULE_HOOK_SHS_SKB_LL_ENTRY,.func=DATARMNETf5821256ad};static int
- DATARMNET2cb9ae589c;int __init DATARMNET163e93649e(void){pr_info(
- "\x25\x73\x28\x29\x3a\x20\x53\x74\x61\x72\x74\x69\x6e\x67\x20\x72\x6d\x6e\x65\x74\x20\x53\x48\x53\x20\x6d\x6f\x64\x75\x6c\x65\x20\x25\x73\x20" "\n"
- ,__func__,DATARMNETbc8418e817[(0xd2d+202-0xdf7)]);trace_rmnet_shs_high(
- DATARMNET1790979ccf,DATARMNET72cb00fdc0,(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),
- (0x16e8+787-0xc0c),(0x16e8+787-0xc0c),NULL,NULL);if(DATARMNET0dbc627e8f()){
- rm_err("\x25\x73",
- "\x53\x48\x53\x5f\x47\x4e\x4c\x3a\x20\x46\x61\x69\x6c\x65\x64\x20\x74\x6f\x20\x69\x6e\x69\x74\x20\x67\x65\x6e\x65\x72\x69\x63\x20\x6e\x65\x74\x6c\x69\x6e\x6b"
- );}return register_netdevice_notifier(&DATARMNET5fc54f7a13);}void __exit
- DATARMNETf3298dab6f(void){trace_rmnet_shs_high(DATARMNET1790979ccf,
- DATARMNET89958f9b63,(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),
- (0x16e8+787-0xc0c),NULL,NULL);unregister_netdevice_notifier(&DATARMNET5fc54f7a13
- );DATARMNETeabd69d1ab();pr_info(
- "\x25\x73\x28\x29\x3a\x20\x45\x78\x69\x74\x69\x6e\x67\x20\x72\x6d\x6e\x65\x74\x20\x53\x48\x53\x20\x6d\x6f\x64\x75\x6c\x65" "\n"
- ,__func__);}static int DATARMNETe9173bbe0e(struct notifier_block*
- DATARMNET272c159b3c,unsigned long DATARMNET7f045a1e6e,void*data){struct
- net_device*dev=netdev_notifier_info_to_dev(data);struct rmnet_priv*priv;struct
- rmnet_port*port;int ret=(0xd2d+202-0xdf7);if(!dev){DATARMNET68d84e7b98[
- DATARMNETf5157a9b85]++;return NOTIFY_DONE;}if(!(strncmp(dev->name,
- "\x72\x6d\x6e\x65\x74\x5f\x64\x61\x74\x61",(0xd27+224-0xdfd))==(0xd2d+202-0xdf7)
- ))return NOTIFY_DONE;switch(DATARMNET7f045a1e6e){case NETDEV_DOWN:
- 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);DATARMNET203752febd();DATARMNETa871eeb7e7();
- rmnet_module_hook_unregister_no_sync(&DATARMNETf6217b20b8,(0xd26+209-0xdf6));
- qmi_rmnet_ps_ind_deregister(DATARMNETecc0627c70.port,&DATARMNETecc0627c70.
- rmnet_idl_ind_cb);rmnet_map_dl_ind_deregister(DATARMNETecc0627c70.port,&
- DATARMNETecc0627c70.DATARMNET08dbb5ab35);rmnet_map_pb_ind_deregister(
- DATARMNETecc0627c70.port,&DATARMNETecc0627c70.DATARMNET6b783c98fe);
- DATARMNETeacad8334e();DATARMNET90fe3a4b56();DATARMNET9f4bc49c6f=
- DATARMNET02cdd9b125();if(DATARMNETecc0627c70.DATARMNET9c869c1ec2)
- DATARMNET7fcf8c178f();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();
- DATARMNETe1f95274f1();DATARMNETecc0627c70.DATARMNETf5ab31b9b0=(0xd26+209-0xdf6);
- }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;
- DATARMNETecc0627c70.DATARMNET6b783c98fe.priority=RMNET_SHS;if(port->data_format&
- RMNET_INGRESS_FORMAT_DL_MARKER_V2){DATARMNETecc0627c70.DATARMNET08dbb5ab35.
- dl_hdr_handler_v2=&DATARMNET78bb6be330;DATARMNETecc0627c70.DATARMNET08dbb5ab35.
- dl_trl_handler_v2=&DATARMNETf61cd23b90;DATARMNETecc0627c70.DATARMNET6b783c98fe.
- pb_ind_handler=&DATARMNET4684d6c911;}DATARMNETecc0627c70.rmnet_idl_ind_cb.
- ps_on_handler=&DATARMNET7f1d9480cb;DATARMNETecc0627c70.rmnet_idl_ind_cb.
- ps_off_handler=&DATARMNETa4bd2ef52c;ret=rmnet_map_dl_ind_register(port,&
- DATARMNETecc0627c70.DATARMNET08dbb5ab35);if(ret)pr_err(
- "\x25\x73\x28\x29\x3a\x20\x72\x6d\x6e\x65\x74\x20\x64\x6c\x5f\x69\x6e\x64\x20\x72\x65\x67\x69\x73\x74\x72\x61\x74\x69\x6f\x6e\x20\x66\x61\x69\x6c" "\n"
- ,__func__);ret=rmnet_map_pb_ind_register(port,&DATARMNETecc0627c70.
- DATARMNET6b783c98fe);if(ret)pr_err(
- "\x25\x73\x28\x29\x3a\x20\x72\x6d\x6e\x65\x74\x20\x70\x62\x5f\x69\x6e\x64\x20\x72\x65\x67\x69\x73\x74\x72\x61\x74\x69\x6f\x6e\x20\x66\x61\x69\x6c" "\n"
- ,__func__);ret=qmi_rmnet_ps_ind_register(port,&DATARMNETecc0627c70.
- rmnet_idl_ind_cb);if(ret)pr_err(
- "\x25\x73\x28\x29\x3a\x20\x72\x6d\x6e\x65\x74\x20\x70\x73\x5f\x69\x6e\x64\x20\x72\x65\x67\x69\x73\x74\x72\x61\x74\x69\x6f\x6e\x20\x66\x61\x69\x6c" "\n"
- ,__func__);DATARMNET7492293980(dev);DATARMNET039ac6d55d();DATARMNET0a6fb12cb2();
- DATARMNETe46c480d71();trace_rmnet_shs_high(DATARMNET1790979ccf,
- DATARMNET443dab7031,(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),(0x16e8+787-0xc0c),
- (0x16e8+787-0xc0c),NULL,NULL);DATARMNETa871eeb7e7();DATARMNET7520667b38();
- rmnet_module_hook_register(&DATARMNETf6217b20b8,(0xd26+209-0xdf6));
- DATARMNETed3cac41ac();DATARMNETecc0627c70.DATARMNET9c869c1ec2=(0xd26+209-0xdf6);
- break;}DATARMNET7492293980(dev);break;default:break;}return NOTIFY_DONE;}
- module_init(DATARMNET163e93649e);module_exit(DATARMNETf3298dab6f);
|