e727657b4f
Updates the module to version I6ab970e6bee4394c610381bb89f6361a4f036cf0. CRs-Fixed: 2710737 Change-Id: I168b5d5dfe3f6af646eb1f3a8dd9d4d9cf353a31 Signed-off-by: Subash Abhinov Kasiviswanathan <subashab@codeaurora.org>
76 lines
4.1 KiB
C
76 lines
4.1 KiB
C
/* Copyright (c) 2018-2020, The Linux Foundation. All rights reserved.
|
|
*
|
|
* This program is free software; you can redistribute it and/or modify
|
|
* it under the terms of the GNU General Public License version 2 and
|
|
* only version 2 as published by the Free Software Foundation.
|
|
*
|
|
* This program is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
* GNU General Public License for more details.
|
|
*/
|
|
|
|
#include <linux/moduleparam.h>
|
|
#include "rmnet_offload_knob.h"
|
|
#include "rmnet_offload_main.h"
|
|
#include "rmnet_offload_engine.h"
|
|
#define DATARMNET7996ea045b(DATARMNET4c4a5ce272) \
|
|
static int __ ## DATARMNET4c4a5ce272(const char *DATARMNETcc6099cb14, const \
|
|
struct kernel_param *DATARMNETb3ce0fdc63) \
|
|
{ \
|
|
return DATARMNETf467eaf6fc(DATARMNETcc6099cb14, DATARMNETb3ce0fdc63, \
|
|
DATARMNET4c4a5ce272); \
|
|
}
|
|
#define DATARMNETce9a74c748(DATARMNET4c4a5ce272, DATARMNET91574ba67a, \
|
|
DATARMNET8f535916a4, DATARMNETae9bf9b111, DATARMNETbdf6f9d425) \
|
|
(struct DATARMNET5374f6eafa) { \
|
|
.DATARMNETd67569df12 = DATARMNET91574ba67a, \
|
|
.DATARMNET949fb858da = DATARMNET8f535916a4, \
|
|
.DATARMNET6c81c0097b = DATARMNETae9bf9b111, \
|
|
.DATARMNET8a7dce7d36 = DATARMNETbdf6f9d425, \
|
|
.DATARMNET9cee06cbe4 = { \
|
|
.set = __ ## DATARMNET4c4a5ce272, \
|
|
.get = param_get_ullong, \
|
|
}, \
|
|
}
|
|
#define DATARMNET584f34118e(DATARMNETe1196c6554, DATARMNET4c4a5ce272) \
|
|
module_param_cb(DATARMNETe1196c6554, &DATARMNET07ae1e39fb[DATARMNET4c4a5ce272].\
|
|
DATARMNET9cee06cbe4, \
|
|
&DATARMNET07ae1e39fb[DATARMNET4c4a5ce272].DATARMNETd67569df12, \
|
|
(0xdb7+6665-0x261c))
|
|
struct DATARMNET5374f6eafa{u64 DATARMNETd67569df12;u64 DATARMNET949fb858da;u64
|
|
DATARMNET6c81c0097b;int(*DATARMNET8a7dce7d36)(u64 DATARMNET7e07157b72,u64
|
|
DATARMNETcd597b0a1b);struct kernel_param_ops DATARMNET9cee06cbe4;};static int
|
|
DATARMNETf467eaf6fc(const char*DATARMNETcc6099cb14,const struct kernel_param*
|
|
DATARMNETb3ce0fdc63,u32 DATARMNET4c4a5ce272);DATARMNET7996ea045b(
|
|
DATARMNETdf66588a73);DATARMNET7996ea045b(DATARMNET9c85bb95a3);
|
|
DATARMNET7996ea045b(DATARMNET6d2ed4b822);static struct DATARMNET5374f6eafa
|
|
DATARMNET07ae1e39fb[DATARMNET94aa767bca]={DATARMNETce9a74c748(
|
|
DATARMNETdf66588a73,65000,(0xd2d+202-0xdf7),65000,NULL),DATARMNETce9a74c748(
|
|
DATARMNET9c85bb95a3,65000,(0xd2d+202-0xdf7),65000,NULL),DATARMNETce9a74c748(
|
|
DATARMNET6d2ed4b822,DATARMNET2d89680280,DATARMNETa2ddeec85f,DATARMNETaccb69cf16,
|
|
DATARMNET241493ab9a),};static int DATARMNETf467eaf6fc(const char*
|
|
DATARMNETcc6099cb14,const struct kernel_param*DATARMNETb3ce0fdc63,u32
|
|
DATARMNET4c4a5ce272){struct DATARMNET5374f6eafa*DATARMNET0751f2024d;unsigned
|
|
long long DATARMNETcd597b0a1b;u64 DATARMNET7e07157b72;int DATARMNETb14e52a504;if
|
|
(DATARMNET4c4a5ce272>=DATARMNET94aa767bca)return-EINVAL;DATARMNETb14e52a504=
|
|
kstrtoull(DATARMNETcc6099cb14,(0xd2d+202-0xdf7),&DATARMNETcd597b0a1b);if(
|
|
DATARMNETb14e52a504<(0xd2d+202-0xdf7))return DATARMNETb14e52a504;
|
|
DATARMNET0751f2024d=&DATARMNET07ae1e39fb[DATARMNET4c4a5ce272];if((u64)
|
|
DATARMNETcd597b0a1b<DATARMNET0751f2024d->DATARMNET949fb858da||(u64)
|
|
DATARMNETcd597b0a1b>DATARMNET0751f2024d->DATARMNET6c81c0097b)return-ERANGE;
|
|
DATARMNET664568fcd0();DATARMNET7e07157b72=*(u64*)DATARMNETb3ce0fdc63->arg;if((
|
|
u64)DATARMNETcd597b0a1b==DATARMNET7e07157b72){DATARMNET6a76048590();return
|
|
(0xd2d+202-0xdf7);}if(DATARMNET0751f2024d->DATARMNET8a7dce7d36){
|
|
DATARMNETb14e52a504=DATARMNET0751f2024d->DATARMNET8a7dce7d36(DATARMNET7e07157b72
|
|
,(u64)DATARMNETcd597b0a1b);if(DATARMNETb14e52a504<(0xd2d+202-0xdf7)){
|
|
DATARMNET6a76048590();return DATARMNETb14e52a504;}}*(u64*)DATARMNETb3ce0fdc63->
|
|
arg=(u64)DATARMNETcd597b0a1b;DATARMNET6a76048590();return(0xd2d+202-0xdf7);}
|
|
DATARMNET584f34118e(rmnet_offload_knob0,DATARMNETdf66588a73);DATARMNET584f34118e
|
|
(rmnet_offload_knob1,DATARMNET9c85bb95a3);DATARMNET584f34118e(
|
|
rmnet_offload_knob2,DATARMNET6d2ed4b822);u64 DATARMNETf1d1b8287f(u32
|
|
DATARMNET4c4a5ce272){struct DATARMNET5374f6eafa*DATARMNET0751f2024d;if(
|
|
DATARMNET4c4a5ce272>=DATARMNET94aa767bca)return(u64)~(0xd2d+202-0xdf7);
|
|
DATARMNET0751f2024d=&DATARMNET07ae1e39fb[DATARMNET4c4a5ce272];return
|
|
DATARMNET0751f2024d->DATARMNETd67569df12;}
|