rmnet_wlan: I92b7224d3982c2aee0bb97464a8ba5768c31e3c7
Updates the module to version I92b7224d3982c2aee0bb97464a8ba5768c31e3c7 Change-Id: I54c0ea9da7ec38a03e11a9c5889eef617ae70585 Signed-off-by: Elmer Melendez <quic_emelende@quicinc.com>
This commit is contained in:

committed by
Subash Abhinov Kasiviswanathan

parent
36b1c52e67
commit
ad211dd2c5
@@ -15,7 +15,23 @@ LOCAL_MODULE_PATH := $(KERNEL_MODULES_OUT)
|
|||||||
LOCAL_MODULE := rmnet_wlan.ko
|
LOCAL_MODULE := rmnet_wlan.ko
|
||||||
LOCAL_SRC_FILES := $(wildcard $(LOCAL_PATH)/**/*) $(wildcard $(LOCAL_PATH)/*)
|
LOCAL_SRC_FILES := $(wildcard $(LOCAL_PATH)/**/*) $(wildcard $(LOCAL_PATH)/*)
|
||||||
|
|
||||||
|
#path from build top to the core directory
|
||||||
|
DATARMNET_CORE_PATH := datarmnet/core
|
||||||
|
RMNET_CORE_PATH := vendor/qcom/opensource/$(DATARMNET_CORE_PATH)
|
||||||
DLKM_DIR := $(TOP)/device/qcom/common/dlkm
|
DLKM_DIR := $(TOP)/device/qcom/common/dlkm
|
||||||
|
#absolute path to the build directory. Can't use $(TOP) here since
|
||||||
|
#that resolves to ., and we pass this to Kbuild, where . is different
|
||||||
|
RMNET_CORE_INC_DIR := $(abspath $(RMNET_CORE_PATH))
|
||||||
|
|
||||||
|
#pass variables down to Kbuild environment
|
||||||
|
KBUILD_OPTIONS := RMNET_CORE_INC_DIR=$(RMNET_CORE_INC_DIR)
|
||||||
|
KBUILD_OPTIONS += RMNET_CORE_PATH=$(RMNET_CORE_PATH)
|
||||||
|
KBUILD_OPTIONS += DATARMNET_CORE_PATH=$(DATARMNET_CORE_PATH)
|
||||||
|
KBUILD_OPTIONS_GKI := RMNET_CORE_INC_DIR=$(RMNET_CORE_INC_DIR)
|
||||||
|
KBUILD_OPTIONS_GKI += RMNET_CORE_PATH=$(RMNET_CORE_PATH)/gki
|
||||||
|
|
||||||
|
LOCAL_ADDITIONAL_DEPENDENCIES := $(TARGET_OUT_INTERMEDIATES)/DLKM_OBJ/$(RMNET_CORE_PATH)/rmnet_core.ko
|
||||||
|
LOCAL_ADDITIONAL_DEPENDENCIES_GKI := $(TARGET_OUT_INTERMEDIATES)/DLKM_OBJ/$(RMNET_CORE_PATH)/gki/rmnet_core.ko
|
||||||
|
|
||||||
include $(DLKM_DIR)/Build_external_kernelmodule.mk
|
include $(DLKM_DIR)/Build_external_kernelmodule.mk
|
||||||
|
|
||||||
|
@@ -1,5 +1,6 @@
|
|||||||
obj-m += rmnet_wlan.o
|
obj-m += rmnet_wlan.o
|
||||||
ccflags-y := $(call cc-option,-Wno-misleading-indentation)
|
ccflags-y := -I$(RMNET_CORE_INC_DIR) \
|
||||||
|
$(call cc-option,-Wno-misleading-indentation)
|
||||||
rmnet_wlan-y := \
|
rmnet_wlan-y := \
|
||||||
rmnet_wlan_main.o \
|
rmnet_wlan_main.o \
|
||||||
rmnet_wlan_genl.o \
|
rmnet_wlan_genl.o \
|
||||||
|
@@ -5,5 +5,6 @@
|
|||||||
menuconfig RMNET_WLAN
|
menuconfig RMNET_WLAN
|
||||||
tristate "Rmnet WLAN support"
|
tristate "Rmnet WLAN support"
|
||||||
default m
|
default m
|
||||||
|
depends on RMNET_CORE
|
||||||
---help---
|
---help---
|
||||||
WLAN processing module for RmNet driver
|
WLAN processing module for RmNet driver
|
||||||
|
@@ -2,11 +2,12 @@
|
|||||||
RMNET_WLAN_SELECT := CONFIG_RMNET_WLAN=m
|
RMNET_WLAN_SELECT := CONFIG_RMNET_WLAN=m
|
||||||
KBUILD_OPTIONS += $(RMNET_WLAN_SELECT)
|
KBUILD_OPTIONS += $(RMNET_WLAN_SELECT)
|
||||||
KBUILD_OPTIONS += $(KBUILD_EXTRA) # Extra config if any
|
KBUILD_OPTIONS += $(KBUILD_EXTRA) # Extra config if any
|
||||||
|
KBUILD_EXTRA_SYMBOLS := $(M)/../../$(DATARMNET_CORE_PATH)/Module.symvers
|
||||||
|
|
||||||
M ?= $(shell pwd)
|
M ?= $(shell pwd)
|
||||||
|
|
||||||
all:
|
all:
|
||||||
$(MAKE) -C $(KERNEL_SRC) M=$(M) modules $(KBUILD_OPTIONS)
|
$(MAKE) -C $(KERNEL_SRC) M=$(M) modules $(KBUILD_OPTIONS) $(KBUILD_EXTRA_SYMBOLS)
|
||||||
|
|
||||||
modules_install:
|
modules_install:
|
||||||
$(MAKE) INSTALL_MOD_STRIP=1 -C $(KERNEL_SRC) M=$(M) modules_install
|
$(MAKE) INSTALL_MOD_STRIP=1 -C $(KERNEL_SRC) M=$(M) modules_install
|
||||||
|
@@ -19,11 +19,14 @@ DATARMNET0dc14167a1;struct in6_addr DATARMNET5700daac01;};u8 DATARMNET0d956cc77a
|
|||||||
;u8 DATARMNET9954a624ac;};struct DATARMNET41b426061d{struct hlist_node
|
;u8 DATARMNET9954a624ac;};struct DATARMNET41b426061d{struct hlist_node
|
||||||
DATARMNETe8608dd267;struct rcu_head DATARMNET28bfe9e6ad;struct notifier_block
|
DATARMNETe8608dd267;struct rcu_head DATARMNET28bfe9e6ad;struct notifier_block
|
||||||
DATARMNET272c159b3c;char DATARMNET852d4d00e2[IFNAMSIZ];struct
|
DATARMNET272c159b3c;char DATARMNET852d4d00e2[IFNAMSIZ];struct
|
||||||
DATARMNET8d3c2559ca DATARMNET7ed5754a5c;};enum{DATARMNET356f2a237e,
|
DATARMNET8d3c2559ca DATARMNET7ed5754a5c;};struct DATARMNETe117226f58{union{
|
||||||
DATARMNET45ee632553,DATARMNET9bfbc31cd6,DATARMNETdcafdec32a,};void
|
__be32 DATARMNETdfe430c2d6;struct in6_addr DATARMNET815cbb4bf5;};union{__be32
|
||||||
DATARMNET7ca470d54b(struct sk_buff*DATARMNET543491eb0f,u32 DATARMNET1464100e7a);
|
DATARMNET2cb607d686;struct in6_addr DATARMNETc3f31215b7;};__be16
|
||||||
int DATARMNET4899053671(struct sk_buff*DATARMNET543491eb0f,struct
|
DATARMNET08e913477e;__be16 DATARMNETda7f7fa492;u8 DATARMNET0d956cc77a;};enum{
|
||||||
DATARMNET8d3c2559ca*DATARMNET2d4b4cfc9e);bool DATARMNET4eafcdee07(struct
|
DATARMNET356f2a237e,DATARMNET45ee632553,DATARMNET9bfbc31cd6,DATARMNETdcafdec32a,
|
||||||
|
};void DATARMNET7ca470d54b(struct sk_buff*DATARMNET543491eb0f,u32
|
||||||
|
DATARMNET1464100e7a);int DATARMNET4899053671(struct sk_buff*DATARMNET543491eb0f,
|
||||||
|
struct DATARMNET8d3c2559ca*DATARMNET2d4b4cfc9e);bool DATARMNET4eafcdee07(struct
|
||||||
DATARMNETb89ecedefc*DATARMNET3396919a68);int DATARMNET53f12a0f7d(struct
|
DATARMNETb89ecedefc*DATARMNET3396919a68);int DATARMNET53f12a0f7d(struct
|
||||||
DATARMNETb89ecedefc*DATARMNETcadc2ef9aa,u32 DATARMNETef77661260,struct genl_info
|
DATARMNETb89ecedefc*DATARMNETcadc2ef9aa,u32 DATARMNETef77661260,struct genl_info
|
||||||
*DATARMNET54338da2ff);int DATARMNET07f6485c9b(struct DATARMNETb89ecedefc*
|
*DATARMNET54338da2ff);int DATARMNET07f6485c9b(struct DATARMNETb89ecedefc*
|
||||||
@@ -47,6 +50,8 @@ DATARMNET0a4704e5e0(struct DATARMNETb89ecedefc*DATARMNET3396919a68);int
|
|||||||
DATARMNET078f6bd384(void);void DATARMNETfae36afa03(void);char*
|
DATARMNET078f6bd384(void);void DATARMNETfae36afa03(void);char*
|
||||||
DATARMNET934406764d(void);char*DATARMNETe447822105(void);struct
|
DATARMNET934406764d(void);char*DATARMNETe447822105(void);struct
|
||||||
DATARMNET41b426061d*DATARMNETcc0a01df2a(struct DATARMNET8d3c2559ca*
|
DATARMNET41b426061d*DATARMNETcc0a01df2a(struct DATARMNET8d3c2559ca*
|
||||||
DATARMNET54338da2ff);
|
DATARMNET54338da2ff);int DATARMNET4c1c11d8a5(struct DATARMNETe117226f58*
|
||||||
|
DATARMNET3396919a68);int DATARMNET56fde5181e(void);extern struct
|
||||||
|
DATARMNETe117226f58*DATARMNETcde6e442f5;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@@ -25,6 +25,7 @@
|
|||||||
#define DATARMNET8fc07fbb24 ((0xeb7+1158-0x132d))
|
#define DATARMNET8fc07fbb24 ((0xeb7+1158-0x132d))
|
||||||
#define DATARMNETeaf0945284 \
|
#define DATARMNETeaf0945284 \
|
||||||
(const_ilog2(DATARMNET8fc07fbb24))
|
(const_ilog2(DATARMNET8fc07fbb24))
|
||||||
|
extern void(*rmnet_wlan_ll_tuple_hook)(struct sk_buff*DATARMNET543491eb0f);
|
||||||
struct DATARMNET4f49486833{struct hlist_node DATARMNETe8608dd267;struct rcu_head
|
struct DATARMNET4f49486833{struct hlist_node DATARMNETe8608dd267;struct rcu_head
|
||||||
DATARMNET28bfe9e6ad;struct hrtimer DATARMNET9f31ce5d2d;struct
|
DATARMNET28bfe9e6ad;struct hrtimer DATARMNET9f31ce5d2d;struct
|
||||||
DATARMNET0ca9d8ead7 DATARMNET54338da2ff;struct DATARMNET8d3c2559ca
|
DATARMNET0ca9d8ead7 DATARMNET54338da2ff;struct DATARMNET8d3c2559ca
|
||||||
@@ -116,8 +117,8 @@ daddr,sizeof(__be32));DATARMNET099aa93adc.flowi4_oif=DATARMNET813ca18d06->
|
|||||||
ifindex;DATARMNET099aa93adc.flowi4_flags=FLOWI_FLAG_KNOWN_NH;DATARMNET066b8bd537
|
ifindex;DATARMNET099aa93adc.flowi4_flags=FLOWI_FLAG_KNOWN_NH;DATARMNET066b8bd537
|
||||||
=ip_route_output_key(&init_net,&DATARMNET099aa93adc);if(IS_ERR(
|
=ip_route_output_key(&init_net,&DATARMNET099aa93adc);if(IS_ERR(
|
||||||
DATARMNET066b8bd537)){DATARMNET17f6bc1be5(DATARMNET666fc9a664);
|
DATARMNET066b8bd537)){DATARMNET17f6bc1be5(DATARMNET666fc9a664);
|
||||||
DATARMNET39542b437e=dev_get_by_name_rcu(&init_net,"\x64\x75\x6d\x6d\x79\x30");if
|
DATARMNET39542b437e=dev_get_by_name_rcu(&init_net,"dummy0");if(!
|
||||||
(!DATARMNET39542b437e){DATARMNET17f6bc1be5(DATARMNET521b065310);goto
|
DATARMNET39542b437e){DATARMNET17f6bc1be5(DATARMNET521b065310);goto
|
||||||
DATARMNETc1174a0f45;}DATARMNET099aa93adc.flowi4_oif=DATARMNET39542b437e->ifindex
|
DATARMNETc1174a0f45;}DATARMNET099aa93adc.flowi4_oif=DATARMNET39542b437e->ifindex
|
||||||
;DATARMNET099aa93adc.flowi4_flags=FLOWI_FLAG_KNOWN_NH;DATARMNET066b8bd537=
|
;DATARMNET099aa93adc.flowi4_flags=FLOWI_FLAG_KNOWN_NH;DATARMNET066b8bd537=
|
||||||
ip_route_output_key(&init_net,&DATARMNET099aa93adc);if(IS_ERR(
|
ip_route_output_key(&init_net,&DATARMNET099aa93adc);if(IS_ERR(
|
||||||
@@ -306,9 +307,33 @@ DATARMNET7ed5754a5c;}return NULL;}void DATARMNETf4e1a29dbc(void){struct
|
|||||||
DATARMNET4f49486833*DATARMNET63b1a086d5;int DATARMNET5c2fd31d7b;rcu_read_lock();
|
DATARMNET4f49486833*DATARMNET63b1a086d5;int DATARMNET5c2fd31d7b;rcu_read_lock();
|
||||||
hash_for_each_rcu(DATARMNET5413d6f8ec,DATARMNET5c2fd31d7b,DATARMNET63b1a086d5,
|
hash_for_each_rcu(DATARMNET5413d6f8ec,DATARMNET5c2fd31d7b,DATARMNET63b1a086d5,
|
||||||
DATARMNETe8608dd267)hrtimer_cancel(&DATARMNET63b1a086d5->DATARMNET9f31ce5d2d);
|
DATARMNETe8608dd267)hrtimer_cancel(&DATARMNET63b1a086d5->DATARMNET9f31ce5d2d);
|
||||||
rcu_read_unlock();}int DATARMNET9f106ed933(void){int DATARMNET268a8314cf;
|
rcu_read_unlock();}void DATARMNET6f73df41cd(struct sk_buff*DATARMNET543491eb0f){
|
||||||
DATARMNET268a8314cf=register_netdevice_notifier(&DATARMNET61d0113123);if(
|
int protocol=-(0xd26+209-0xdf6);struct DATARMNETe117226f58*DATARMNET3396919a68=
|
||||||
DATARMNET268a8314cf)pr_err(
|
rcu_dereference(DATARMNETcde6e442f5);if(!DATARMNET3396919a68)return;if(
|
||||||
|
DATARMNET543491eb0f->protocol==htons(ETH_P_IP)){struct iphdr*DATARMNET86f1f2cdc9
|
||||||
|
,DATARMNETbf6548198e;DATARMNET86f1f2cdc9=skb_header_pointer(DATARMNET543491eb0f,
|
||||||
|
(0xd2d+202-0xdf7),sizeof(*DATARMNET86f1f2cdc9),&DATARMNETbf6548198e);if(!
|
||||||
|
DATARMNET86f1f2cdc9)return;if(DATARMNET86f1f2cdc9->version!=DATARMNET3396919a68
|
||||||
|
->DATARMNET0d956cc77a&&DATARMNET86f1f2cdc9->saddr!=DATARMNET3396919a68->
|
||||||
|
DATARMNETdfe430c2d6&&DATARMNET86f1f2cdc9->daddr!=DATARMNET3396919a68->
|
||||||
|
DATARMNET2cb607d686)return;protocol=DATARMNET86f1f2cdc9->protocol;}else if(
|
||||||
|
DATARMNET543491eb0f->protocol==htons(ETH_P_IPV6)){struct ipv6hdr*
|
||||||
|
DATARMNETbf55123e5b,DATARMNETcf1d9e2c1e;DATARMNETbf55123e5b=skb_header_pointer(
|
||||||
|
DATARMNET543491eb0f,(0xd2d+202-0xdf7),sizeof(*DATARMNETbf55123e5b),&
|
||||||
|
DATARMNETcf1d9e2c1e);if(!DATARMNETbf55123e5b)return;if(DATARMNETbf55123e5b->
|
||||||
|
version!=DATARMNET3396919a68->DATARMNET0d956cc77a&&ipv6_addr_cmp(&
|
||||||
|
DATARMNETbf55123e5b->saddr,&DATARMNET3396919a68->DATARMNET815cbb4bf5)&&
|
||||||
|
ipv6_addr_cmp(&DATARMNETbf55123e5b->daddr,&DATARMNET3396919a68->
|
||||||
|
DATARMNETc3f31215b7))return;protocol=DATARMNETbf55123e5b->nexthdr;}if(protocol==
|
||||||
|
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(
|
||||||
"\x25\x73\x28\x29\x3a\x20\x6e\x6f\x74\x69\x66\x69\x65\x72\x20\x66\x61\x69\x6c\x65\x64" "\n"
|
"\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
|
,__func__);return DATARMNET268a8314cf;}int DATARMNETf56cbaa2b1(void){int
|
||||||
DATARMNET268a8314cf;DATARMNET268a8314cf=unregister_netdevice_notifier(&
|
DATARMNET268a8314cf;DATARMNET268a8314cf=unregister_netdevice_notifier(&
|
||||||
|
@@ -1,5 +1,6 @@
|
|||||||
/* SPDX-License-Identifier: GPL-2.0-only */
|
/* SPDX-License-Identifier: GPL-2.0-only */
|
||||||
/* Copyright (c) 2021, The Linux Foundation. All rights reserved.
|
/* Copyright (c) 2021, The Linux Foundation. All rights reserved.
|
||||||
|
* Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved.
|
||||||
*
|
*
|
||||||
* RMNET WLAN connection management framework
|
* RMNET WLAN connection management framework
|
||||||
*
|
*
|
||||||
@@ -14,7 +15,8 @@ struct DATARMNET0ca9d8ead7{union{__be32 DATARMNETdfe430c2d6;struct in6_addr
|
|||||||
DATARMNET815cbb4bf5;};union{__be32 DATARMNET2cb607d686;struct in6_addr
|
DATARMNET815cbb4bf5;};union{__be32 DATARMNET2cb607d686;struct in6_addr
|
||||||
DATARMNETc3f31215b7;};u8 DATARMNET0d956cc77a;};struct DATARMNET8d3c2559ca*
|
DATARMNETc3f31215b7;};u8 DATARMNET0d956cc77a;};struct DATARMNET8d3c2559ca*
|
||||||
DATARMNET07f0e0f286(struct DATARMNET0ca9d8ead7*DATARMNET54338da2ff);void
|
DATARMNET07f0e0f286(struct DATARMNET0ca9d8ead7*DATARMNET54338da2ff);void
|
||||||
DATARMNETf4e1a29dbc(void);int DATARMNET9f106ed933(void);int DATARMNETf56cbaa2b1(
|
DATARMNETf4e1a29dbc(void);void DATARMNET333c107558(void);void
|
||||||
|
DATARMNET4c08c7210c(void);int DATARMNET9f106ed933(void);int DATARMNETf56cbaa2b1(
|
||||||
void);
|
void);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@@ -24,7 +24,10 @@ NLA_POLICY_NESTED_ARRAY(DATARMNET19c5fce390),[DATARMNETb8afde4a5a]={.type=
|
|||||||
NLA_NUL_STRING,.len=IFNAMSIZ-(0xd26+209-0xdf6),},[DATARMNETea4b56dc2b]={.type=
|
NLA_NUL_STRING,.len=IFNAMSIZ-(0xd26+209-0xdf6),},[DATARMNETea4b56dc2b]={.type=
|
||||||
NLA_NUL_STRING,.len=INET6_ADDRSTRLEN,},[DATARMNET8bf80e4b66]={.type=
|
NLA_NUL_STRING,.len=INET6_ADDRSTRLEN,},[DATARMNET8bf80e4b66]={.type=
|
||||||
NLA_NUL_STRING,.len=IFNAMSIZ-(0xd26+209-0xdf6),},[DATARMNET44a9a789aa]={.type=
|
NLA_NUL_STRING,.len=IFNAMSIZ-(0xd26+209-0xdf6),},[DATARMNET44a9a789aa]={.type=
|
||||||
NLA_U16,},[DATARMNET149cafb1b7]={.type=NLA_U8,},};
|
NLA_U16,},[DATARMNET149cafb1b7]={.type=NLA_U8,},[DATARMNET185fd3de68]={.type=
|
||||||
|
NLA_NUL_STRING,.len=INET6_ADDRSTRLEN,},[DATARMNETd996a18fa6]={.type=
|
||||||
|
NLA_NUL_STRING,.len=INET6_ADDRSTRLEN,},[DATARMNETd3dacf7559]={.type=NLA_U16,},[
|
||||||
|
DATARMNETeaebe95912]={.type=NLA_U16,},};
|
||||||
#define DATARMNET58eca5265b(DATARMNET5aeb0ef9bc, DATARMNETbd9859b58e) \
|
#define DATARMNET58eca5265b(DATARMNET5aeb0ef9bc, DATARMNETbd9859b58e) \
|
||||||
{ \
|
{ \
|
||||||
.cmd = DATARMNET5aeb0ef9bc, \
|
.cmd = DATARMNET5aeb0ef9bc, \
|
||||||
@@ -213,6 +216,47 @@ DATARMNET54338da2ff,
|
|||||||
DATARMNET54338da2ff);}static int DATARMNETa4773cb837(struct sk_buff*
|
DATARMNET54338da2ff);}static int DATARMNETa4773cb837(struct sk_buff*
|
||||||
DATARMNET543491eb0f,struct genl_info*DATARMNET54338da2ff){(void)
|
DATARMNET543491eb0f,struct genl_info*DATARMNET54338da2ff){(void)
|
||||||
DATARMNET543491eb0f;(void)DATARMNET54338da2ff;DATARMNET078f6bd384();return
|
DATARMNET543491eb0f;(void)DATARMNET54338da2ff;DATARMNET078f6bd384();return
|
||||||
|
(0xd2d+202-0xdf7);}static int DATARMNET6a53c4576d(struct sk_buff*
|
||||||
|
DATARMNET543491eb0f,struct genl_info*DATARMNET54338da2ff){struct
|
||||||
|
DATARMNETe117226f58 DATARMNET3396919a68={};struct nlattr*DATARMNETef7cdd7b6b;
|
||||||
|
char*DATARMNETd7f4d7c495;if(!DATARMNET54338da2ff->attrs[DATARMNET185fd3de68]||!
|
||||||
|
DATARMNET54338da2ff->attrs[DATARMNETd996a18fa6]||!DATARMNET54338da2ff->attrs[
|
||||||
|
DATARMNETd3dacf7559]||!DATARMNET54338da2ff->attrs[DATARMNETeaebe95912]){
|
||||||
|
GENL_SET_ERR_MSG(DATARMNET54338da2ff,
|
||||||
|
"\x4d\x75\x73\x74\x20\x73\x70\x65\x63\x69\x66\x79\x20\x46\x57\x44\x20\x64\x65\x76\x69\x63\x65\x20\x61\x6e\x64\x20\x61\x64\x64\x72\x65\x73\x73"
|
||||||
|
);return-EINVAL;}DATARMNETef7cdd7b6b=DATARMNET54338da2ff->attrs[
|
||||||
|
DATARMNET185fd3de68];DATARMNETd7f4d7c495=nla_data(DATARMNETef7cdd7b6b);if(strchr
|
||||||
|
(DATARMNETd7f4d7c495,DATARMNET5fe2c6571f)){if(in6_pton(DATARMNETd7f4d7c495,
|
||||||
|
nla_len(DATARMNETef7cdd7b6b),DATARMNET3396919a68.DATARMNET815cbb4bf5.s6_addr,-
|
||||||
|
(0xd26+209-0xdf6),NULL)!=(0xd26+209-0xdf6)){GENL_SET_ERR_MSG(DATARMNET54338da2ff
|
||||||
|
,
|
||||||
|
"\x53\x52\x43\x20\x61\x64\x64\x72\x65\x73\x73\x20\x69\x73\x20\x69\x6e\x76\x61\x6c\x69\x64\x20\x69\x6e\x20\x49\x50\x76\x36"
|
||||||
|
);return-EINVAL;}DATARMNET3396919a68.DATARMNET0d956cc77a=(0xd03+244-0xdf1);}else
|
||||||
|
{if(in4_pton(DATARMNETd7f4d7c495,nla_len(DATARMNETef7cdd7b6b),(u8*)&
|
||||||
|
DATARMNET3396919a68.DATARMNETdfe430c2d6,-(0xd26+209-0xdf6),NULL)!=
|
||||||
|
(0xd26+209-0xdf6)){GENL_SET_ERR_MSG(DATARMNET54338da2ff,
|
||||||
|
"\x53\x52\x43\x20\x61\x64\x64\x72\x65\x73\x73\x20\x69\x73\x20\x69\x6e\x76\x61\x6c\x69\x64\x20\x69\x6e\x20\x49\x50\x76\x34"
|
||||||
|
);return-EINVAL;}DATARMNET3396919a68.DATARMNET0d956cc77a=(0xd11+230-0xdf3);}
|
||||||
|
DATARMNETef7cdd7b6b=DATARMNET54338da2ff->attrs[DATARMNETd996a18fa6];
|
||||||
|
DATARMNETd7f4d7c495=nla_data(DATARMNETef7cdd7b6b);if(strchr(DATARMNETd7f4d7c495,
|
||||||
|
DATARMNET5fe2c6571f)){if(in6_pton(DATARMNETd7f4d7c495,nla_len(
|
||||||
|
DATARMNETef7cdd7b6b),DATARMNET3396919a68.DATARMNETc3f31215b7.s6_addr,-
|
||||||
|
(0xd26+209-0xdf6),NULL)!=(0xd26+209-0xdf6)){GENL_SET_ERR_MSG(DATARMNET54338da2ff
|
||||||
|
,
|
||||||
|
"\x44\x53\x54\x20\x61\x64\x64\x72\x65\x73\x73\x20\x69\x73\x20\x69\x6e\x76\x61\x6c\x69\x64\x20\x69\x6e\x20\x49\x50\x76\x36"
|
||||||
|
);return-EINVAL;}}else{if(in4_pton(DATARMNETd7f4d7c495,nla_len(
|
||||||
|
DATARMNETef7cdd7b6b),(u8*)&DATARMNET3396919a68.DATARMNET2cb607d686,-
|
||||||
|
(0xd26+209-0xdf6),NULL)!=(0xd26+209-0xdf6)){GENL_SET_ERR_MSG(DATARMNET54338da2ff
|
||||||
|
,
|
||||||
|
"\x44\x53\x54\x20\x61\x64\x64\x72\x65\x73\x73\x20\x69\x73\x20\x69\x6e\x76\x61\x6c\x69\x64\x20\x69\x6e\x20\x49\x50\x76\x34"
|
||||||
|
);return-EINVAL;}}DATARMNETef7cdd7b6b=DATARMNET54338da2ff->attrs[
|
||||||
|
DATARMNETd3dacf7559];DATARMNET3396919a68.DATARMNET08e913477e=nla_get_be16(
|
||||||
|
DATARMNETef7cdd7b6b);DATARMNETef7cdd7b6b=DATARMNET54338da2ff->attrs[
|
||||||
|
DATARMNETeaebe95912];DATARMNET3396919a68.DATARMNETda7f7fa492=nla_get_be16(
|
||||||
|
DATARMNETef7cdd7b6b);DATARMNET4c1c11d8a5(&DATARMNET3396919a68);return
|
||||||
|
(0xd2d+202-0xdf7);}static int DATARMNET425149b729(struct sk_buff*
|
||||||
|
DATARMNET543491eb0f,struct genl_info*DATARMNET54338da2ff){(void)
|
||||||
|
DATARMNET543491eb0f;(void)DATARMNET54338da2ff;DATARMNET56fde5181e();return
|
||||||
(0xd2d+202-0xdf7);}static const struct genl_ops DATARMNETf9df19988d[]={
|
(0xd2d+202-0xdf7);}static const struct genl_ops DATARMNETf9df19988d[]={
|
||||||
DATARMNET58eca5265b(DATARMNET0604500302,DATARMNET72501635c8),DATARMNET58eca5265b
|
DATARMNET58eca5265b(DATARMNET0604500302,DATARMNET72501635c8),DATARMNET58eca5265b
|
||||||
(DATARMNET91becfb9ac,DATARMNET41dd9b14ab),DATARMNET58eca5265b(
|
(DATARMNET91becfb9ac,DATARMNET41dd9b14ab),DATARMNET58eca5265b(
|
||||||
@@ -223,11 +267,13 @@ DATARMNETb86993aefb),DATARMNET58eca5265b(DATARMNET18145b00f6,DATARMNETc175a08219
|
|||||||
DATARMNET58eca5265b(DATARMNET6d50a30ec2,DATARMNETa6aec23397),DATARMNET58eca5265b
|
DATARMNET58eca5265b(DATARMNET6d50a30ec2,DATARMNETa6aec23397),DATARMNET58eca5265b
|
||||||
(DATARMNET2e5d7ed755,DATARMNETa4773cb837),DATARMNET58eca5265b(
|
(DATARMNET2e5d7ed755,DATARMNETa4773cb837),DATARMNET58eca5265b(
|
||||||
DATARMNETd37aaf8b58,DATARMNET16add73734),DATARMNET58eca5265b(DATARMNET3626d362d4
|
DATARMNETd37aaf8b58,DATARMNET16add73734),DATARMNET58eca5265b(DATARMNET3626d362d4
|
||||||
,DATARMNETb318ed4796),};struct genl_family DATARMNET61e8f41aae={.name=
|
,DATARMNETb318ed4796),DATARMNET58eca5265b(DATARMNET433fe7da93,
|
||||||
DATARMNET040266f460,.version=DATARMNET7c442b83bb,.maxattr=DATARMNETebcc30fe04,.
|
DATARMNET6a53c4576d),DATARMNET58eca5265b(DATARMNET77d31b75a3,DATARMNET425149b729
|
||||||
policy=DATARMNET0381a65e93,.ops=DATARMNETf9df19988d,.n_ops=ARRAY_SIZE(
|
),};struct genl_family DATARMNET61e8f41aae={.name=DATARMNET040266f460,.version=
|
||||||
DATARMNETf9df19988d),};static int __init DATARMNET7eb0fa5c8f(void){int
|
DATARMNET7c442b83bb,.maxattr=DATARMNETebcc30fe04,.policy=DATARMNET0381a65e93,.
|
||||||
DATARMNET61c2303133=(0xd2d+202-0xdf7);pr_info(
|
ops=DATARMNETf9df19988d,.n_ops=ARRAY_SIZE(DATARMNETf9df19988d),};static int
|
||||||
|
__init DATARMNET7eb0fa5c8f(void){int DATARMNET61c2303133=(0xd2d+202-0xdf7);
|
||||||
|
pr_info(
|
||||||
"\x25\x73\x28\x29\x3a\x20\x72\x6d\x6e\x65\x74\x5f\x77\x6c\x61\x6e\x20\x69\x6e\x69\x74\x69\x61\x6c\x69\x7a\x69\x6e\x67" "\n"
|
"\x25\x73\x28\x29\x3a\x20\x72\x6d\x6e\x65\x74\x5f\x77\x6c\x61\x6e\x20\x69\x6e\x69\x74\x69\x61\x6c\x69\x7a\x69\x6e\x67" "\n"
|
||||||
,__func__);DATARMNET61c2303133=genl_register_family(&DATARMNET61e8f41aae);if(
|
,__func__);DATARMNET61c2303133=genl_register_family(&DATARMNET61e8f41aae);if(
|
||||||
DATARMNET61c2303133){pr_err(
|
DATARMNET61c2303133){pr_err(
|
||||||
@@ -235,10 +281,12 @@ DATARMNET61c2303133){pr_err(
|
|||||||
,__func__,DATARMNET61c2303133);goto DATARMNET27d4697979;}DATARMNET61c2303133=
|
,__func__,DATARMNET61c2303133);goto DATARMNET27d4697979;}DATARMNET61c2303133=
|
||||||
DATARMNET9f106ed933();if(DATARMNET61c2303133){pr_err(
|
DATARMNET9f106ed933();if(DATARMNET61c2303133){pr_err(
|
||||||
"\x25\x73\x28\x29\x3a\x20\x63\x6f\x6e\x6e\x65\x63\x74\x69\x6f\x6e\x20\x6d\x61\x6e\x61\x67\x65\x6d\x65\x6e\x74\x20\x69\x6e\x69\x74\x20\x66\x61\x69\x6c\x65\x64\x3a\x20\x25\x69" "\n"
|
"\x25\x73\x28\x29\x3a\x20\x63\x6f\x6e\x6e\x65\x63\x74\x69\x6f\x6e\x20\x6d\x61\x6e\x61\x67\x65\x6d\x65\x6e\x74\x20\x69\x6e\x69\x74\x20\x66\x61\x69\x6c\x65\x64\x3a\x20\x25\x69" "\n"
|
||||||
,__func__,DATARMNET61c2303133);goto DATARMNETb042feb7e2;}return(0xd2d+202-0xdf7)
|
,__func__,DATARMNET61c2303133);goto DATARMNETb042feb7e2;}DATARMNET333c107558();
|
||||||
;DATARMNETb042feb7e2:genl_unregister_family(&DATARMNET61e8f41aae);
|
pr_info(
|
||||||
DATARMNET27d4697979:return DATARMNET61c2303133;}static void __exit
|
"\x25\x73\x28\x29\x3a\x20\x72\x6d\x6e\x65\x74\x5f\x77\x6c\x61\x6e\x5f\x73\x65\x74\x5f\x68\x6f\x6f\x6b\x73\x20\x73\x65\x74" "\n"
|
||||||
DATARMNET7a381832d5(void){int DATARMNET61c2303133;pr_info(
|
,__func__);return(0xd2d+202-0xdf7);DATARMNETb042feb7e2:genl_unregister_family(&
|
||||||
|
DATARMNET61e8f41aae);DATARMNET27d4697979:return DATARMNET61c2303133;}static void
|
||||||
|
__exit DATARMNET7a381832d5(void){int DATARMNET61c2303133;pr_info(
|
||||||
"\x25\x73\x28\x29\x3a\x20\x72\x6d\x6e\x65\x74\x5f\x77\x6c\x61\x6e\x20\x65\x78\x69\x74\x69\x6e\x67" "\n"
|
"\x25\x73\x28\x29\x3a\x20\x72\x6d\x6e\x65\x74\x5f\x77\x6c\x61\x6e\x20\x65\x78\x69\x74\x69\x6e\x67" "\n"
|
||||||
,__func__);DATARMNET61c2303133=DATARMNETf56cbaa2b1();if(DATARMNET61c2303133)
|
,__func__);DATARMNET61c2303133=DATARMNETf56cbaa2b1();if(DATARMNET61c2303133)
|
||||||
pr_err(
|
pr_err(
|
||||||
@@ -246,5 +294,7 @@ pr_err(
|
|||||||
,__func__,DATARMNET61c2303133);DATARMNETfae36afa03();DATARMNET61c2303133=
|
,__func__,DATARMNET61c2303133);DATARMNETfae36afa03();DATARMNET61c2303133=
|
||||||
genl_unregister_family(&DATARMNET61e8f41aae);if(DATARMNET61c2303133)pr_err(
|
genl_unregister_family(&DATARMNET61e8f41aae);if(DATARMNET61c2303133)pr_err(
|
||||||
"\x25\x73\x28\x29\x3a\x20\x75\x6e\x72\x65\x67\x69\x73\x74\x65\x72\x20\x66\x61\x6d\x69\x6c\x79\x20\x66\x61\x69\x6c\x65\x64\x3a\x20\x25\x69" "\n"
|
"\x25\x73\x28\x29\x3a\x20\x75\x6e\x72\x65\x67\x69\x73\x74\x65\x72\x20\x66\x61\x6d\x69\x6c\x79\x20\x66\x61\x69\x6c\x65\x64\x3a\x20\x25\x69" "\n"
|
||||||
,__func__,DATARMNET61c2303133);}MODULE_LICENSE("\x47\x50\x4c\x20\x76\x32");
|
,__func__,DATARMNET61c2303133);DATARMNET4c08c7210c();pr_info(
|
||||||
module_init(DATARMNET7eb0fa5c8f);module_exit(DATARMNET7a381832d5);
|
"\x25\x73\x28\x29\x3a\x20\x72\x6d\x6e\x65\x74\x5f\x77\x6c\x61\x6e\x5f\x75\x6e\x73\x65\x74\x5f\x68\x6f\x6f\x6b\x73\x20\x75\x6e\x73\x65\x74" "\n"
|
||||||
|
,__func__);}MODULE_LICENSE("\x47\x50\x4c\x20\x76\x32");module_init(
|
||||||
|
DATARMNET7eb0fa5c8f);module_exit(DATARMNET7a381832d5);
|
||||||
|
@@ -13,9 +13,11 @@
|
|||||||
enum{DATARMNET6ea2b7cfbe,DATARMNET0604500302,DATARMNET91becfb9ac,
|
enum{DATARMNET6ea2b7cfbe,DATARMNET0604500302,DATARMNET91becfb9ac,
|
||||||
DATARMNET14a3625b43,DATARMNET4478d3511b,DATARMNETc2d5a4e103,DATARMNET18145b00f6,
|
DATARMNET14a3625b43,DATARMNET4478d3511b,DATARMNETc2d5a4e103,DATARMNET18145b00f6,
|
||||||
DATARMNETb8857fe6d9,DATARMNET6d50a30ec2,DATARMNET2e5d7ed755,DATARMNETd37aaf8b58,
|
DATARMNETb8857fe6d9,DATARMNET6d50a30ec2,DATARMNET2e5d7ed755,DATARMNETd37aaf8b58,
|
||||||
DATARMNET3626d362d4,DATARMNETce1982dccc,};enum{DATARMNET09a5930cdf,
|
DATARMNET3626d362d4,DATARMNET433fe7da93,DATARMNET77d31b75a3,DATARMNETce1982dccc,
|
||||||
DATARMNET4e9cd7b8bf,DATARMNETb8afde4a5a,DATARMNETea4b56dc2b,DATARMNET8bf80e4b66,
|
};enum{DATARMNET09a5930cdf,DATARMNET4e9cd7b8bf,DATARMNETb8afde4a5a,
|
||||||
DATARMNET44a9a789aa,DATARMNET149cafb1b7,DATARMNET0bfbea52c0,};
|
DATARMNETea4b56dc2b,DATARMNET8bf80e4b66,DATARMNET44a9a789aa,DATARMNET149cafb1b7,
|
||||||
|
DATARMNET185fd3de68,DATARMNETd996a18fa6,DATARMNETd3dacf7559,DATARMNETeaebe95912,
|
||||||
|
DATARMNET0bfbea52c0,};
|
||||||
#define DATARMNETebcc30fe04 (DATARMNET0bfbea52c0 - (0xd26+209-0xdf6))
|
#define DATARMNETebcc30fe04 (DATARMNET0bfbea52c0 - (0xd26+209-0xdf6))
|
||||||
enum{DATARMNET0dcb7acdac,DATARMNET8c062d7709,DATARMNET93b5e3666d,};
|
enum{DATARMNET0dcb7acdac,DATARMNET8c062d7709,DATARMNET93b5e3666d,};
|
||||||
#define DATARMNETf6bbad94a5 (DATARMNET93b5e3666d - (0xd26+209-0xdf6))
|
#define DATARMNETf6bbad94a5 (DATARMNET93b5e3666d - (0xd26+209-0xdf6))
|
||||||
|
@@ -25,12 +25,13 @@
|
|||||||
#include "rmnet_wlan_stats.h"
|
#include "rmnet_wlan_stats.h"
|
||||||
#include "rmnet_wlan_fragment.h"
|
#include "rmnet_wlan_fragment.h"
|
||||||
#include "rmnet_wlan_connection.h"
|
#include "rmnet_wlan_connection.h"
|
||||||
static char*verinfo[]={"\x62\x31\x62\x63\x64\x66\x66\x61",
|
static char*verinfo[]={"\x39\x66\x33\x66\x31\x31\x33\x30",
|
||||||
"\x61\x33\x33\x33\x36\x37\x61\x31","\x37\x34\x31\x35\x39\x32\x31\x63",
|
"\x62\x31\x62\x63\x64\x66\x66\x61","\x61\x33\x33\x33\x36\x37\x61\x31",
|
||||||
"\x33\x35\x36\x63\x34\x39\x31\x63","\x34\x64\x32\x32\x34\x33\x36\x33",
|
"\x37\x34\x31\x35\x39\x32\x31\x63","\x33\x35\x36\x63\x34\x39\x31\x63",
|
||||||
"\x61\x34\x31\x63\x39\x64\x37\x62","\x38\x66\x32\x66\x65\x64\x32\x66",
|
"\x34\x64\x32\x32\x34\x33\x36\x33","\x61\x34\x31\x63\x39\x64\x37\x62",
|
||||||
"\x63\x30\x32\x62\x61\x39\x30\x65"};module_param_array(verinfo,charp,NULL,
|
"\x38\x66\x32\x66\x65\x64\x32\x66","\x63\x30\x32\x62\x61\x39\x30\x65"};
|
||||||
(0xcb7+5769-0x221c));MODULE_PARM_DESC(verinfo,
|
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"
|
"\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))
|
#define DATARMNETaf49b04806 ((0xeb7+1158-0x132d))
|
||||||
@@ -44,20 +45,21 @@ DATARMNET6b4ac8224c);static DEFINE_MUTEX(DATARMNETf46fb02ac6);static
|
|||||||
DEFINE_HASHTABLE(DATARMNET78ed39f13b,DATARMNET6b4ac8224c);static DEFINE_MUTEX(
|
DEFINE_HASHTABLE(DATARMNET78ed39f13b,DATARMNET6b4ac8224c);static DEFINE_MUTEX(
|
||||||
DATARMNET954bef55d0);static DEFINE_HASHTABLE(DATARMNET133502ca0e,
|
DATARMNET954bef55d0);static DEFINE_HASHTABLE(DATARMNET133502ca0e,
|
||||||
DATARMNET6b4ac8224c);static DEFINE_HASHTABLE(DATARMNET665d2f133f,
|
DATARMNET6b4ac8224c);static DEFINE_HASHTABLE(DATARMNET665d2f133f,
|
||||||
DATARMNET6b4ac8224c);static char DATARMNET30500ba48c[IFNAMSIZ];static char
|
DATARMNET6b4ac8224c);static DEFINE_MUTEX(DATARMNET38726379d1);static
|
||||||
DATARMNET755f0f0df8[IFNAMSIZ];static bool DATARMNET1e31b22eff(struct
|
DEFINE_SPINLOCK(DATARMNETe6ee7c273e);static char DATARMNET30500ba48c[IFNAMSIZ];
|
||||||
DATARMNETb89ecedefc*DATARMNETae0905b0b3,struct DATARMNETb89ecedefc*
|
static char DATARMNET755f0f0df8[IFNAMSIZ];struct DATARMNETe117226f58*
|
||||||
DATARMNETdb49f21565){if(DATARMNETae0905b0b3->DATARMNET0d956cc77a!=
|
DATARMNETcde6e442f5;static bool DATARMNET1e31b22eff(struct DATARMNETb89ecedefc*
|
||||||
DATARMNETdb49f21565->DATARMNET0d956cc77a||DATARMNETae0905b0b3->
|
DATARMNETae0905b0b3,struct DATARMNETb89ecedefc*DATARMNETdb49f21565){if(
|
||||||
DATARMNET4924e79411!=DATARMNETdb49f21565->DATARMNET4924e79411)return false;if(
|
DATARMNETae0905b0b3->DATARMNET0d956cc77a!=DATARMNETdb49f21565->
|
||||||
DATARMNETae0905b0b3->DATARMNET0d956cc77a==IPPROTO_ESP)return DATARMNETae0905b0b3
|
DATARMNET0d956cc77a||DATARMNETae0905b0b3->DATARMNET4924e79411!=
|
||||||
->DATARMNET906b2ee561==DATARMNETdb49f21565->DATARMNET906b2ee561;return
|
DATARMNETdb49f21565->DATARMNET4924e79411)return false;if(DATARMNETae0905b0b3->
|
||||||
DATARMNETae0905b0b3->DATARMNETf0d9de7e2f==DATARMNETdb49f21565->
|
DATARMNET0d956cc77a==IPPROTO_ESP)return DATARMNETae0905b0b3->DATARMNET906b2ee561
|
||||||
DATARMNETf0d9de7e2f;}static int DATARMNET0b72d312f9(struct DATARMNETb89ecedefc*
|
==DATARMNETdb49f21565->DATARMNET906b2ee561;return DATARMNETae0905b0b3->
|
||||||
DATARMNET3396919a68,struct genl_info*DATARMNET54338da2ff)__must_hold(&
|
DATARMNETf0d9de7e2f==DATARMNETdb49f21565->DATARMNETf0d9de7e2f;}static int
|
||||||
DATARMNET63a2b7773e){struct DATARMNET745f724205*DATARMNET63b1a086d5;
|
DATARMNET0b72d312f9(struct DATARMNETb89ecedefc*DATARMNET3396919a68,struct
|
||||||
rcu_read_lock();if(DATARMNET4eafcdee07(DATARMNET3396919a68)){rcu_read_unlock();
|
genl_info*DATARMNET54338da2ff)__must_hold(&DATARMNET63a2b7773e){struct
|
||||||
GENL_SET_ERR_MSG(DATARMNET54338da2ff,
|
DATARMNET745f724205*DATARMNET63b1a086d5;rcu_read_lock();if(DATARMNET4eafcdee07(
|
||||||
|
DATARMNET3396919a68)){rcu_read_unlock();GENL_SET_ERR_MSG(DATARMNET54338da2ff,
|
||||||
"\x54\x75\x70\x6c\x65\x20\x61\x6c\x72\x65\x61\x64\x79\x20\x70\x72\x65\x73\x65\x6e\x74"
|
"\x54\x75\x70\x6c\x65\x20\x61\x6c\x72\x65\x61\x64\x79\x20\x70\x72\x65\x73\x65\x6e\x74"
|
||||||
);return-EEXIST;}rcu_read_unlock();DATARMNET63b1a086d5=kzalloc(sizeof(*
|
);return-EEXIST;}rcu_read_unlock();DATARMNET63b1a086d5=kzalloc(sizeof(*
|
||||||
DATARMNET63b1a086d5),GFP_KERNEL);if(!DATARMNET63b1a086d5){GENL_SET_ERR_MSG(
|
DATARMNET63b1a086d5),GFP_KERNEL);if(!DATARMNET63b1a086d5){GENL_SET_ERR_MSG(
|
||||||
@@ -192,14 +194,32 @@ return-ESRCH;}static bool DATARMNETa96214b53c(__be16 DATARMNETf0d9de7e2f)
|
|||||||
__must_hold(RCU){struct DATARMNETda06413d0d*DATARMNET63b1a086d5;
|
__must_hold(RCU){struct DATARMNETda06413d0d*DATARMNET63b1a086d5;
|
||||||
hash_for_each_possible_rcu(DATARMNET665d2f133f,DATARMNET63b1a086d5,
|
hash_for_each_possible_rcu(DATARMNET665d2f133f,DATARMNET63b1a086d5,
|
||||||
DATARMNETe8608dd267,DATARMNETf0d9de7e2f){if(DATARMNET63b1a086d5->
|
DATARMNETe8608dd267,DATARMNETf0d9de7e2f){if(DATARMNET63b1a086d5->
|
||||||
DATARMNETf0d9de7e2f==DATARMNETf0d9de7e2f)return true;}return false;}int
|
DATARMNETf0d9de7e2f==DATARMNETf0d9de7e2f)return true;}return false;}static int
|
||||||
DATARMNET59b8376224(__be16 DATARMNETf0d9de7e2f,struct genl_info*
|
DATARMNET51f60f2fd3(struct DATARMNETe117226f58*DATARMNET3396919a68)__must_hold(&
|
||||||
DATARMNET54338da2ff)__must_hold(&DATARMNET954bef55d0){struct DATARMNETda06413d0d
|
DATARMNET38726379d1){struct DATARMNETe117226f58*DATARMNET28d35f5346;struct
|
||||||
*DATARMNET63b1a086d5;struct hlist_node*DATARMNET0386f6f82a;
|
DATARMNETe117226f58*DATARMNETe302a1b49b;unsigned long DATARMNET0861dd728f;
|
||||||
hash_for_each_possible_safe(DATARMNET665d2f133f,DATARMNET63b1a086d5,
|
DATARMNET28d35f5346=kzalloc(sizeof(*DATARMNET28d35f5346),GFP_KERNEL);if(!
|
||||||
DATARMNET0386f6f82a,DATARMNETe8608dd267,DATARMNETf0d9de7e2f){if(
|
DATARMNET28d35f5346){return-ENOMEM;}memcpy(DATARMNET28d35f5346,
|
||||||
DATARMNET63b1a086d5->DATARMNETf0d9de7e2f==DATARMNETf0d9de7e2f){hash_del_rcu(&
|
DATARMNET3396919a68,sizeof(*DATARMNET28d35f5346));spin_lock_irqsave(&
|
||||||
DATARMNET63b1a086d5->DATARMNETe8608dd267);kfree_rcu(DATARMNET63b1a086d5,
|
DATARMNETe6ee7c273e,DATARMNET0861dd728f);DATARMNETe302a1b49b=
|
||||||
|
rcu_dereference_protected(DATARMNETcde6e442f5,lockdep_is_held(&
|
||||||
|
DATARMNETe6ee7c273e));rcu_assign_pointer(DATARMNETcde6e442f5,DATARMNET28d35f5346
|
||||||
|
);spin_unlock_irqrestore(&DATARMNETe6ee7c273e,DATARMNET0861dd728f);
|
||||||
|
synchronize_rcu();if(DATARMNETe302a1b49b)kfree(DATARMNETe302a1b49b);return
|
||||||
|
(0xd2d+202-0xdf7);}static int DATARMNETb9c7621157(void)__must_hold(&
|
||||||
|
DATARMNET38726379d1){struct DATARMNETe117226f58*DATARMNETe302a1b49b;unsigned
|
||||||
|
long DATARMNET0861dd728f;spin_lock_irqsave(&DATARMNETe6ee7c273e,
|
||||||
|
DATARMNET0861dd728f);DATARMNETe302a1b49b=rcu_dereference_protected(
|
||||||
|
DATARMNETcde6e442f5,lockdep_is_held(&DATARMNETe6ee7c273e));rcu_assign_pointer(
|
||||||
|
DATARMNETcde6e442f5,NULL);spin_unlock_irqrestore(&DATARMNETe6ee7c273e,
|
||||||
|
DATARMNET0861dd728f);synchronize_rcu();if(DATARMNETe302a1b49b)kfree(
|
||||||
|
DATARMNETe302a1b49b);return(0xd2d+202-0xdf7);}int DATARMNET59b8376224(__be16
|
||||||
|
DATARMNETf0d9de7e2f,struct genl_info*DATARMNET54338da2ff)__must_hold(&
|
||||||
|
DATARMNET954bef55d0){struct DATARMNETda06413d0d*DATARMNET63b1a086d5;struct
|
||||||
|
hlist_node*DATARMNET0386f6f82a;hash_for_each_possible_safe(DATARMNET665d2f133f,
|
||||||
|
DATARMNET63b1a086d5,DATARMNET0386f6f82a,DATARMNETe8608dd267,DATARMNETf0d9de7e2f)
|
||||||
|
{if(DATARMNET63b1a086d5->DATARMNETf0d9de7e2f==DATARMNETf0d9de7e2f){hash_del_rcu(
|
||||||
|
&DATARMNET63b1a086d5->DATARMNETe8608dd267);kfree_rcu(DATARMNET63b1a086d5,
|
||||||
DATARMNET28bfe9e6ad);DATARMNET5ca94dbc3c(DATARMNETa726eebea4);return
|
DATARMNET28bfe9e6ad);DATARMNET5ca94dbc3c(DATARMNETa726eebea4);return
|
||||||
(0xd2d+202-0xdf7);}}return(0xd2d+202-0xdf7);}int DATARMNET0b12e969c5(__be16
|
(0xd2d+202-0xdf7);}}return(0xd2d+202-0xdf7);}int DATARMNET0b12e969c5(__be16
|
||||||
DATARMNETf0d9de7e2f,struct genl_info*DATARMNET54338da2ff)__must_hold(&
|
DATARMNETf0d9de7e2f,struct genl_info*DATARMNET54338da2ff)__must_hold(&
|
||||||
@@ -314,16 +334,17 @@ DATARMNET268a8314cf;if(!DATARMNET755f0f0df8[(0xd2d+202-0xdf7)])return
|
|||||||
DATARMNET2c4484aef5);if(!DATARMNET268a8314cf)DATARMNET755f0f0df8[
|
DATARMNET2c4484aef5);if(!DATARMNET268a8314cf)DATARMNET755f0f0df8[
|
||||||
(0xd2d+202-0xdf7)]=(0xd2d+202-0xdf7);return DATARMNET268a8314cf;}static void
|
(0xd2d+202-0xdf7)]=(0xd2d+202-0xdf7);return DATARMNET268a8314cf;}static void
|
||||||
DATARMNETbb4efa5b3d(void){DATARMNET116f9a46aa();DATARMNET1f36d4813c();
|
DATARMNETbb4efa5b3d(void){DATARMNET116f9a46aa();DATARMNET1f36d4813c();
|
||||||
DATARMNET8c0e010dfb();DATARMNETe5b03fe375();DATARMNETad43e44c7e();}static int
|
DATARMNET8c0e010dfb();DATARMNETe5b03fe375();DATARMNETad43e44c7e();
|
||||||
DATARMNET38ebe8f319(struct sk_buff*DATARMNET543491eb0f,int DATARMNET1faf88208b){
|
DATARMNET56fde5181e();}static int DATARMNET38ebe8f319(struct sk_buff*
|
||||||
if(!pskb_may_pull(DATARMNET543491eb0f,DATARMNET1faf88208b))return-ENOMEM;if(!
|
DATARMNET543491eb0f,int DATARMNET1faf88208b){if(!pskb_may_pull(
|
||||||
skb_cloned(DATARMNET543491eb0f)||skb_clone_writable(DATARMNET543491eb0f,
|
DATARMNET543491eb0f,DATARMNET1faf88208b))return-ENOMEM;if(!skb_cloned(
|
||||||
DATARMNET1faf88208b))return(0xd2d+202-0xdf7);return pskb_expand_head(
|
DATARMNET543491eb0f)||skb_clone_writable(DATARMNET543491eb0f,DATARMNET1faf88208b
|
||||||
DATARMNET543491eb0f,(0xd2d+202-0xdf7),(0xd2d+202-0xdf7),GFP_ATOMIC);}static void
|
))return(0xd2d+202-0xdf7);return pskb_expand_head(DATARMNET543491eb0f,
|
||||||
DATARMNET9a8d756527(__sum16*DATARMNETc2284e5688,struct sk_buff*
|
(0xd2d+202-0xdf7),(0xd2d+202-0xdf7),GFP_ATOMIC);}static void DATARMNET9a8d756527
|
||||||
DATARMNET543491eb0f,__be32 DATARMNET9080427d4e,__be32 DATARMNETc0e620c987,bool
|
(__sum16*DATARMNETc2284e5688,struct sk_buff*DATARMNET543491eb0f,__be32
|
||||||
DATARMNETcb0345b337){if(DATARMNET543491eb0f->ip_summed!=CHECKSUM_PARTIAL){
|
DATARMNET9080427d4e,__be32 DATARMNETc0e620c987,bool DATARMNETcb0345b337){if(
|
||||||
csum_replace4(DATARMNETc2284e5688,DATARMNET9080427d4e,DATARMNETc0e620c987);if(
|
DATARMNET543491eb0f->ip_summed!=CHECKSUM_PARTIAL){csum_replace4(
|
||||||
|
DATARMNETc2284e5688,DATARMNET9080427d4e,DATARMNETc0e620c987);if(
|
||||||
DATARMNET543491eb0f->ip_summed==CHECKSUM_COMPLETE&&DATARMNETcb0345b337){
|
DATARMNET543491eb0f->ip_summed==CHECKSUM_COMPLETE&&DATARMNETcb0345b337){
|
||||||
DATARMNET543491eb0f->csum=csum_sub(~(DATARMNET543491eb0f->csum),(__wsum)
|
DATARMNET543491eb0f->csum=csum_sub(~(DATARMNET543491eb0f->csum),(__wsum)
|
||||||
DATARMNET9080427d4e);DATARMNET543491eb0f->csum=~csum_add(DATARMNET543491eb0f->
|
DATARMNET9080427d4e);DATARMNET543491eb0f->csum=~csum_add(DATARMNET543491eb0f->
|
||||||
@@ -497,7 +518,13 @@ DATARMNET611d08d671+sizeof(*DATARMNET75be5f3406),sizeof(*DATARMNETdf2dbc641f),&
|
|||||||
DATARMNET6c56902362);if(!DATARMNETdf2dbc641f)return false;return!!(*
|
DATARMNET6c56902362);if(!DATARMNETdf2dbc641f)return false;return!!(*
|
||||||
DATARMNETdf2dbc641f);}bool DATARMNET0a4704e5e0(struct DATARMNETb89ecedefc*
|
DATARMNETdf2dbc641f);}bool DATARMNET0a4704e5e0(struct DATARMNETb89ecedefc*
|
||||||
DATARMNET3396919a68){return DATARMNETa96214b53c(DATARMNET3396919a68->
|
DATARMNET3396919a68){return DATARMNETa96214b53c(DATARMNET3396919a68->
|
||||||
DATARMNETf0d9de7e2f);}int DATARMNET078f6bd384(void){DATARMNETbb4efa5b3d();return
|
DATARMNETf0d9de7e2f);}int DATARMNET4c1c11d8a5(struct DATARMNETe117226f58*
|
||||||
|
DATARMNET3396919a68){int DATARMNET268a8314cf;mutex_lock(&DATARMNET38726379d1);
|
||||||
|
DATARMNET268a8314cf=DATARMNET51f60f2fd3(DATARMNET3396919a68);mutex_unlock(&
|
||||||
|
DATARMNET38726379d1);return DATARMNET268a8314cf;}int DATARMNET56fde5181e(void){
|
||||||
|
int DATARMNET268a8314cf;mutex_lock(&DATARMNET38726379d1);DATARMNET268a8314cf=
|
||||||
|
DATARMNETb9c7621157();mutex_unlock(&DATARMNET38726379d1);return
|
||||||
|
DATARMNET268a8314cf;}int DATARMNET078f6bd384(void){DATARMNETbb4efa5b3d();return
|
||||||
(0xd2d+202-0xdf7);}void DATARMNETfae36afa03(void){DATARMNETbb4efa5b3d();}char*
|
(0xd2d+202-0xdf7);}void DATARMNETfae36afa03(void){DATARMNETbb4efa5b3d();}char*
|
||||||
DATARMNET934406764d(void){return DATARMNET30500ba48c;}char*DATARMNETe447822105(
|
DATARMNET934406764d(void){return DATARMNET30500ba48c;}char*DATARMNETe447822105(
|
||||||
void){return DATARMNET755f0f0df8;}
|
void){return DATARMNET755f0f0df8;}
|
||||||
|
@@ -14,19 +14,19 @@ DATARMNETf4c2a83526,DATARMNET591885a019,DATARMNETd8273aa7e1,DATARMNET7a58a5c1fc,
|
|||||||
DATARMNETba232077da,DATARMNETe75ad1a949,DATARMNETd691057b85,DATARMNETd1ad664d00,
|
DATARMNETba232077da,DATARMNETe75ad1a949,DATARMNETd691057b85,DATARMNETd1ad664d00,
|
||||||
DATARMNETef2af4f071,DATARMNETebc1b87b7d,DATARMNET21bdbe6a27,DATARMNET90782e08cf,
|
DATARMNETef2af4f071,DATARMNETebc1b87b7d,DATARMNET21bdbe6a27,DATARMNET90782e08cf,
|
||||||
DATARMNETb7c9f010b2,DATARMNET990edaea89,DATARMNETa726eebea4,DATARMNET0981317411,
|
DATARMNETb7c9f010b2,DATARMNET990edaea89,DATARMNETa726eebea4,DATARMNET0981317411,
|
||||||
DATARMNETb59245fef4,DATARMNETf1f7e2c408,DATARMNETc6bf075f65,};enum{
|
DATARMNETb59245fef4,DATARMNETf1f7e2c408,DATARMNETc2cade1d75,DATARMNETc6bf075f65,
|
||||||
DATARMNETc1b437465b,DATARMNET04311361a2,DATARMNET43a65c0be7,DATARMNET13bbe5f5c5,
|
};enum{DATARMNETc1b437465b,DATARMNET04311361a2,DATARMNET43a65c0be7,
|
||||||
DATARMNETd1c349b9fc,DATARMNETfa4b3dd44a,DATARMNET72ab5e86d8,DATARMNET0e6bd55b8b,
|
DATARMNET13bbe5f5c5,DATARMNETd1c349b9fc,DATARMNETfa4b3dd44a,DATARMNET72ab5e86d8,
|
||||||
DATARMNET64aecaa865,DATARMNET72f4fdd48a,DATARMNET9cff15f94d,DATARMNETbf6e6853f9,
|
DATARMNET0e6bd55b8b,DATARMNET64aecaa865,DATARMNET72f4fdd48a,DATARMNET9cff15f94d,
|
||||||
DATARMNETa0da722329,DATARMNET729e252fb9,DATARMNET6b0ed53aab,DATARMNET22ac945cae,
|
DATARMNETbf6e6853f9,DATARMNETa0da722329,DATARMNET729e252fb9,DATARMNET6b0ed53aab,
|
||||||
DATARMNET97b44d0c09,DATARMNETf954265acb,DATARMNET15454f969d,DATARMNET9bdb1c4072,
|
DATARMNET22ac945cae,DATARMNET97b44d0c09,DATARMNETf954265acb,DATARMNET15454f969d,
|
||||||
DATARMNET9a57ef32d3,DATARMNET9a940d93dc,DATARMNETf326b7c906,DATARMNET544d78ede7,
|
DATARMNET9bdb1c4072,DATARMNET9a57ef32d3,DATARMNET9a940d93dc,DATARMNETf326b7c906,
|
||||||
DATARMNET5abdc89190,DATARMNET101af46c1c,DATARMNET0b9541c9b3,DATARMNET0078f1d36d,
|
DATARMNET544d78ede7,DATARMNET5abdc89190,DATARMNET101af46c1c,DATARMNET0b9541c9b3,
|
||||||
DATARMNET661bdeccd4,DATARMNET28e7704d13,DATARMNET7c6c30b7d2,DATARMNET39d80cc483,
|
DATARMNET0078f1d36d,DATARMNET661bdeccd4,DATARMNET28e7704d13,DATARMNET7c6c30b7d2,
|
||||||
DATARMNET1be480319c,DATARMNET15d1a78b15,DATARMNETddb1bc27cb,DATARMNETc730640bf7,
|
DATARMNET39d80cc483,DATARMNET1be480319c,DATARMNET15d1a78b15,DATARMNETddb1bc27cb,
|
||||||
DATARMNET521b065310,DATARMNET8a15bcdcc7,DATARMNET0978ff973f,DATARMNETc52168a41e,
|
DATARMNETc730640bf7,DATARMNET521b065310,DATARMNET8a15bcdcc7,DATARMNET0978ff973f,
|
||||||
DATARMNET666fc9a664,DATARMNET7803c877c0,DATARMNET4c5aeeb476,DATARMNETfe1714cc0e,
|
DATARMNETc52168a41e,DATARMNET666fc9a664,DATARMNET7803c877c0,DATARMNET4c5aeeb476,
|
||||||
};void DATARMNET5ca94dbc3c(u32 DATARMNET248f120dd5);void DATARMNET17f6bc1be5(u32
|
DATARMNETfe1714cc0e,};void DATARMNET5ca94dbc3c(u32 DATARMNET248f120dd5);void
|
||||||
DATARMNET248f120dd5);
|
DATARMNET17f6bc1be5(u32 DATARMNET248f120dd5);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user