|
@@ -1,6 +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-2023 Qualcomm Innovation Center, Inc. All rights reserved.
|
|
|
|
|
|
+ * Copyright (c) 2022-2024 Qualcomm Innovation Center, Inc. All rights reserved.
|
|
*
|
|
*
|
|
* RMNET WLAN connection management framework
|
|
* RMNET WLAN connection management framework
|
|
*
|
|
*
|
|
@@ -31,11 +31,9 @@ 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
|
|
DATARMNET7ed5754a5c;};static DEFINE_SPINLOCK(DATARMNET820642743b);static
|
|
DATARMNET7ed5754a5c;};static DEFINE_SPINLOCK(DATARMNET820642743b);static
|
|
-DEFINE_HASHTABLE(DATARMNET5413d6f8ec,DATARMNETeaf0945284);
|
|
|
|
-#define DATARMNET898fc3651c (0xef7+694-0x112d)
|
|
|
|
-#define DATARMNET20defbe7a0 (0xf07+3965-0x1a3c)
|
|
|
|
-static bool DATARMNET5f3c9ed4da(struct DATARMNET0ca9d8ead7*DATARMNET75decd6f60,
|
|
|
|
-struct DATARMNET0ca9d8ead7*DATARMNET6745cad668){if(DATARMNET75decd6f60->
|
|
|
|
|
|
+DEFINE_HASHTABLE(DATARMNET5413d6f8ec,DATARMNETeaf0945284);static bool
|
|
|
|
+DATARMNET5f3c9ed4da(struct DATARMNET0ca9d8ead7*DATARMNET75decd6f60,struct
|
|
|
|
+DATARMNET0ca9d8ead7*DATARMNET6745cad668){if(DATARMNET75decd6f60->
|
|
DATARMNET0d956cc77a!=DATARMNET6745cad668->DATARMNET0d956cc77a)return false;if(
|
|
DATARMNET0d956cc77a!=DATARMNET6745cad668->DATARMNET0d956cc77a)return false;if(
|
|
DATARMNET75decd6f60->DATARMNET0d956cc77a==(0xd11+230-0xdf3))return
|
|
DATARMNET75decd6f60->DATARMNET0d956cc77a==(0xd11+230-0xdf3))return
|
|
DATARMNET75decd6f60->DATARMNETdfe430c2d6==DATARMNET6745cad668->
|
|
DATARMNET75decd6f60->DATARMNETdfe430c2d6==DATARMNET6745cad668->
|
|
@@ -212,97 +210,63 @@ DATARMNET97b44d0c09);goto DATARMNETc1174a0f45;}skb_dst_set(DATARMNET543491eb0f,
|
|
DATARMNETb5af46179c);dst_output(&init_net,NULL,DATARMNET543491eb0f);
|
|
DATARMNETb5af46179c);dst_output(&init_net,NULL,DATARMNET543491eb0f);
|
|
DATARMNET17f6bc1be5(DATARMNETf954265acb);return RX_HANDLER_CONSUMED;}
|
|
DATARMNET17f6bc1be5(DATARMNETf954265acb);return RX_HANDLER_CONSUMED;}
|
|
DATARMNETc1174a0f45:kfree_skb(DATARMNET543491eb0f);return RX_HANDLER_CONSUMED;}
|
|
DATARMNETc1174a0f45:kfree_skb(DATARMNET543491eb0f);return RX_HANDLER_CONSUMED;}
|
|
-static rx_handler_result_t DATARMNET6e2f632fce(struct sk_buff*
|
|
|
|
-DATARMNET543491eb0f,uint8_t DATARMNET1a901c3d09){struct sk_buff*
|
|
|
|
-DATARMNETb6d6995997=NULL;unsigned int DATARMNETc26140baf9=(0xd2d+202-0xdf7);
|
|
|
|
-unsigned int DATARMNET3301d81682=(0xd2d+202-0xdf7);struct ipv6hdr*
|
|
|
|
-DATARMNETbf55123e5b,*DATARMNET0b51978dd7;struct frag_hdr*DATARMNET2d5a34898d,*
|
|
|
|
-DATARMNET4a64bfeda0;if(skb_linearize(DATARMNET543491eb0f)){DATARMNET17f6bc1be5(
|
|
|
|
-DATARMNET4f59e3a6e4);goto DATARMNET27d4697979;}if(DATARMNET543491eb0f->protocol
|
|
|
|
-!=htons(ETH_P_IPV6)){DATARMNET17f6bc1be5(DATARMNET87c37ed8cc);goto
|
|
|
|
-DATARMNETb042feb7e2;}DATARMNETb6d6995997=skb_copy_expand(DATARMNET543491eb0f,
|
|
|
|
-DATARMNET898fc3651c,DATARMNET898fc3651c,GFP_ATOMIC);if(!DATARMNETb6d6995997){
|
|
|
|
-DATARMNET17f6bc1be5(DATARMNET03b5eea9bc);goto DATARMNETb042feb7e2;}
|
|
|
|
-DATARMNETbf55123e5b=(struct ipv6hdr*)(DATARMNET543491eb0f->data);
|
|
|
|
-DATARMNET0b51978dd7=(struct ipv6hdr*)(DATARMNETb6d6995997->data);
|
|
|
|
-DATARMNET2d5a34898d=(struct frag_hdr*)((char*)DATARMNET543491eb0f->data+sizeof(
|
|
|
|
-struct ipv6hdr));DATARMNET4a64bfeda0=(struct frag_hdr*)((char*)
|
|
|
|
-DATARMNETb6d6995997->data+sizeof(struct ipv6hdr));DATARMNETc26140baf9=ntohs(
|
|
|
|
-DATARMNETbf55123e5b->payload_len)-sizeof(struct frag_hdr);DATARMNET3301d81682=
|
|
|
|
-DATARMNETc26140baf9-DATARMNET20defbe7a0;memcpy(DATARMNETb6d6995997->data+sizeof(
|
|
|
|
-struct ipv6hdr)+sizeof(struct frag_hdr),DATARMNET543491eb0f->data+sizeof(struct
|
|
|
|
-ipv6hdr)+sizeof(struct frag_hdr)+DATARMNET20defbe7a0,DATARMNET3301d81682);
|
|
|
|
-DATARMNET2d5a34898d->frag_off=(0xd2d+202-0xdf7);DATARMNET2d5a34898d->frag_off|=
|
|
|
|
-htons(IP6_MF);skb_trim(DATARMNET543491eb0f,sizeof(struct ipv6hdr)+sizeof(struct
|
|
|
|
-frag_hdr)+DATARMNET20defbe7a0);DATARMNETbf55123e5b->payload_len=htons(sizeof(
|
|
|
|
-struct frag_hdr)+DATARMNET20defbe7a0);DATARMNET4a64bfeda0->frag_off=
|
|
|
|
-(0xd2d+202-0xdf7);DATARMNET4a64bfeda0->frag_off=htons(DATARMNET20defbe7a0);
|
|
|
|
-DATARMNET4a64bfeda0->frag_off|=htons(IP6_MF);skb_trim(DATARMNETb6d6995997,sizeof
|
|
|
|
-(struct ipv6hdr)+sizeof(struct frag_hdr)+DATARMNET3301d81682);
|
|
|
|
-DATARMNET0b51978dd7->payload_len=htons(sizeof(struct frag_hdr)+
|
|
|
|
-DATARMNET3301d81682);DATARMNETc9ed97754a(DATARMNET543491eb0f,DATARMNET1a901c3d09
|
|
|
|
-);DATARMNETc9ed97754a(DATARMNETb6d6995997,DATARMNET1a901c3d09);goto
|
|
|
|
-DATARMNET27d4697979;DATARMNETb042feb7e2:kfree_skb(DATARMNET543491eb0f);
|
|
|
|
-DATARMNET27d4697979:return RX_HANDLER_CONSUMED;}static rx_handler_result_t
|
|
|
|
-DATARMNET68fe094884(struct sk_buff**DATARMNET89946cec52){struct
|
|
|
|
-DATARMNET0ca9d8ead7 DATARMNETa76763310b={};struct DATARMNET4f49486833*
|
|
|
|
-DATARMNET63b1a086d5;struct sk_buff*DATARMNET543491eb0f=*DATARMNET89946cec52;
|
|
|
|
-unsigned long DATARMNETfb0677cc3c;struct DATARMNET8d3c2559ca DATARMNET2d4b4cfc9e
|
|
|
|
-;struct DATARMNET41b426061d*DATARMNET8184934307;uint8_t DATARMNET1a901c3d09=
|
|
|
|
-DATARMNETdcafdec32a;if(!DATARMNET543491eb0f||DATARMNET543491eb0f->pkt_type==
|
|
|
|
-PACKET_LOOPBACK)return RX_HANDLER_PASS;if(DATARMNET543491eb0f->protocol==htons(
|
|
|
|
-ETH_P_IP)){struct iphdr*DATARMNET86f1f2cdc9,DATARMNETbf6548198e;
|
|
|
|
-DATARMNET86f1f2cdc9=skb_header_pointer(DATARMNET543491eb0f,(0xd2d+202-0xdf7),
|
|
|
|
-sizeof(*DATARMNET86f1f2cdc9),&DATARMNETbf6548198e);if(!DATARMNET86f1f2cdc9)goto
|
|
|
|
-DATARMNETbf4095f79e;DATARMNET2d4b4cfc9e.DATARMNET0dc14167a1=DATARMNET86f1f2cdc9
|
|
|
|
-->saddr;DATARMNET2d4b4cfc9e.DATARMNET0d956cc77a=(0xd11+230-0xdf3);}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)goto DATARMNETbf4095f79e;memcpy(&
|
|
|
|
-DATARMNET2d4b4cfc9e.DATARMNET5700daac01,&DATARMNETbf55123e5b->saddr,sizeof(
|
|
|
|
-DATARMNET2d4b4cfc9e.DATARMNET5700daac01));DATARMNET2d4b4cfc9e.
|
|
|
|
-DATARMNET0d956cc77a=(0xd03+244-0xdf1);}else{goto DATARMNETbf4095f79e;}
|
|
|
|
-rcu_read_lock();DATARMNET8184934307=DATARMNETcc0a01df2a(&DATARMNET2d4b4cfc9e);
|
|
|
|
-rcu_read_unlock();if(!DATARMNET8184934307)goto DATARMNETbf4095f79e;
|
|
|
|
-DATARMNET1a901c3d09=DATARMNET8184934307->DATARMNET7ed5754a5c.DATARMNET9954a624ac
|
|
|
|
-;if(DATARMNET1a901c3d09==DATARMNETdcafdec32a)goto DATARMNETbf4095f79e;if(
|
|
|
|
-DATARMNET543491eb0f->dev)nf_ct_set(DATARMNET543491eb0f,NULL,IP_CT_UNTRACKED);if(
|
|
|
|
|
|
+static rx_handler_result_t DATARMNET68fe094884(struct sk_buff**
|
|
|
|
+DATARMNET89946cec52){struct DATARMNET0ca9d8ead7 DATARMNETa76763310b={};struct
|
|
|
|
+DATARMNET4f49486833*DATARMNET63b1a086d5;struct sk_buff*DATARMNET543491eb0f=*
|
|
|
|
+DATARMNET89946cec52;unsigned long DATARMNETfb0677cc3c;struct DATARMNET8d3c2559ca
|
|
|
|
+ DATARMNET2d4b4cfc9e;struct DATARMNET41b426061d*DATARMNET8184934307;uint8_t
|
|
|
|
+DATARMNET1a901c3d09=DATARMNETdcafdec32a;if(!DATARMNET543491eb0f||
|
|
|
|
+DATARMNET543491eb0f->pkt_type==PACKET_LOOPBACK)return RX_HANDLER_PASS;if(
|
|
DATARMNET543491eb0f->protocol==htons(ETH_P_IP)){struct iphdr*DATARMNET86f1f2cdc9
|
|
DATARMNET543491eb0f->protocol==htons(ETH_P_IP)){struct iphdr*DATARMNET86f1f2cdc9
|
|
,DATARMNETbf6548198e;DATARMNET86f1f2cdc9=skb_header_pointer(DATARMNET543491eb0f,
|
|
,DATARMNETbf6548198e;DATARMNET86f1f2cdc9=skb_header_pointer(DATARMNET543491eb0f,
|
|
(0xd2d+202-0xdf7),sizeof(*DATARMNET86f1f2cdc9),&DATARMNETbf6548198e);if(!
|
|
(0xd2d+202-0xdf7),sizeof(*DATARMNET86f1f2cdc9),&DATARMNETbf6548198e);if(!
|
|
-DATARMNET86f1f2cdc9)goto DATARMNETbf4095f79e;if(DATARMNET86f1f2cdc9->protocol==
|
|
|
|
-IPPROTO_TCP)goto DATARMNET9b3d23a43b;if(DATARMNET86f1f2cdc9->protocol!=
|
|
|
|
-IPPROTO_ICMP)goto DATARMNETbf4095f79e;DATARMNETa76763310b.DATARMNETdfe430c2d6=
|
|
|
|
-DATARMNET86f1f2cdc9->saddr;DATARMNETa76763310b.DATARMNET2cb607d686=
|
|
|
|
-DATARMNET86f1f2cdc9->daddr;DATARMNETa76763310b.DATARMNET0d956cc77a=
|
|
|
|
-(0xd11+230-0xdf3);}else if(DATARMNET543491eb0f->protocol==htons(ETH_P_IPV6)){
|
|
|
|
-struct ipv6hdr*DATARMNETbf55123e5b,DATARMNETcf1d9e2c1e;__be16 frag_off;u8
|
|
|
|
-DATARMNET65293f17c4;DATARMNETbf55123e5b=skb_header_pointer(DATARMNET543491eb0f,
|
|
|
|
-(0xd2d+202-0xdf7),sizeof(*DATARMNETbf55123e5b),&DATARMNETcf1d9e2c1e);if(!
|
|
|
|
-DATARMNETbf55123e5b)goto DATARMNETbf4095f79e;DATARMNET65293f17c4=
|
|
|
|
-DATARMNETbf55123e5b->nexthdr;if(ipv6_skip_exthdr(DATARMNET543491eb0f,sizeof(*
|
|
|
|
-DATARMNETbf55123e5b),&DATARMNET65293f17c4,&frag_off)<(0xd2d+202-0xdf7))goto
|
|
|
|
-DATARMNETbf4095f79e;if(frag_off&&DATARMNET65293f17c4==NEXTHDR_FRAGMENT)goto
|
|
|
|
-DATARMNETbf4095f79e;if(DATARMNETbf55123e5b->nexthdr==NEXTHDR_FRAGMENT&&(ntohs(
|
|
|
|
-DATARMNETbf55123e5b->payload_len)>(sizeof(struct frag_hdr)+DATARMNET20defbe7a0))
|
|
|
|
-)goto DATARMNETf10b3df68d;if(DATARMNET65293f17c4==IPPROTO_TCP)goto
|
|
|
|
-DATARMNET9b3d23a43b;if(DATARMNET65293f17c4!=IPPROTO_ICMPV6)goto
|
|
|
|
-DATARMNETbf4095f79e;memcpy(&DATARMNETa76763310b.DATARMNET815cbb4bf5,&
|
|
|
|
-DATARMNETbf55123e5b->saddr,sizeof(DATARMNETa76763310b.DATARMNET815cbb4bf5));
|
|
|
|
-memcpy(&DATARMNETa76763310b.DATARMNETc3f31215b7,&DATARMNETbf55123e5b->daddr,
|
|
|
|
-sizeof(DATARMNETa76763310b.DATARMNETc3f31215b7));DATARMNETa76763310b.
|
|
|
|
-DATARMNET0d956cc77a=(0xd03+244-0xdf1);}else{goto DATARMNETbf4095f79e;}
|
|
|
|
-rcu_read_lock();hash_for_each_possible_rcu(DATARMNET5413d6f8ec,
|
|
|
|
-DATARMNET63b1a086d5,DATARMNETe8608dd267,DATARMNETa76763310b.DATARMNET2cb607d686)
|
|
|
|
-{if(!DATARMNET5f3c9ed4da(&DATARMNET63b1a086d5->DATARMNET54338da2ff,&
|
|
|
|
-DATARMNETa76763310b))continue;if(likely(hrtimer_is_queued(&DATARMNET63b1a086d5->
|
|
|
|
-DATARMNET9f31ce5d2d)))hrtimer_start(&DATARMNET63b1a086d5->DATARMNET9f31ce5d2d,
|
|
|
|
-DATARMNET5da8c68c19,HRTIMER_MODE_REL);rcu_read_unlock();goto DATARMNETbf4095f79e
|
|
|
|
-;}rcu_read_unlock();spin_lock_irqsave(&DATARMNET820642743b,DATARMNETfb0677cc3c);
|
|
|
|
-DATARMNET63b1a086d5=kzalloc(sizeof(*DATARMNET63b1a086d5),GFP_ATOMIC);if(!
|
|
|
|
-DATARMNET63b1a086d5){spin_unlock_irqrestore(&DATARMNET820642743b,
|
|
|
|
-DATARMNETfb0677cc3c);goto DATARMNETbf4095f79e;}INIT_HLIST_NODE(&
|
|
|
|
|
|
+DATARMNET86f1f2cdc9)goto DATARMNETbf4095f79e;DATARMNET2d4b4cfc9e.
|
|
|
|
+DATARMNET0dc14167a1=DATARMNET86f1f2cdc9->saddr;DATARMNET2d4b4cfc9e.
|
|
|
|
+DATARMNET0d956cc77a=(0xd11+230-0xdf3);}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)goto
|
|
|
|
+DATARMNETbf4095f79e;memcpy(&DATARMNET2d4b4cfc9e.DATARMNET5700daac01,&
|
|
|
|
+DATARMNETbf55123e5b->saddr,sizeof(DATARMNET2d4b4cfc9e.DATARMNET5700daac01));
|
|
|
|
+DATARMNET2d4b4cfc9e.DATARMNET0d956cc77a=(0xd03+244-0xdf1);}else{goto
|
|
|
|
+DATARMNETbf4095f79e;}rcu_read_lock();DATARMNET8184934307=DATARMNETcc0a01df2a(&
|
|
|
|
+DATARMNET2d4b4cfc9e);rcu_read_unlock();if(!DATARMNET8184934307)goto
|
|
|
|
+DATARMNETbf4095f79e;DATARMNET1a901c3d09=DATARMNET8184934307->DATARMNET7ed5754a5c
|
|
|
|
+.DATARMNET9954a624ac;if(DATARMNET1a901c3d09==DATARMNETdcafdec32a)goto
|
|
|
|
+DATARMNETbf4095f79e;if(DATARMNET543491eb0f->dev)nf_ct_set(DATARMNET543491eb0f,
|
|
|
|
+NULL,IP_CT_UNTRACKED);if(DATARMNET543491eb0f->protocol==htons(ETH_P_IP)){struct
|
|
|
|
+iphdr*DATARMNET86f1f2cdc9,DATARMNETbf6548198e;DATARMNET86f1f2cdc9=
|
|
|
|
+skb_header_pointer(DATARMNET543491eb0f,(0xd2d+202-0xdf7),sizeof(*
|
|
|
|
+DATARMNET86f1f2cdc9),&DATARMNETbf6548198e);if(!DATARMNET86f1f2cdc9)goto
|
|
|
|
+DATARMNETbf4095f79e;if(DATARMNET86f1f2cdc9->protocol==IPPROTO_TCP)goto
|
|
|
|
+DATARMNET9b3d23a43b;if(DATARMNET86f1f2cdc9->protocol!=IPPROTO_ICMP)goto
|
|
|
|
+DATARMNETbf4095f79e;DATARMNETa76763310b.DATARMNETdfe430c2d6=DATARMNET86f1f2cdc9
|
|
|
|
+->saddr;DATARMNETa76763310b.DATARMNET2cb607d686=DATARMNET86f1f2cdc9->daddr;
|
|
|
|
+DATARMNETa76763310b.DATARMNET0d956cc77a=(0xd11+230-0xdf3);}else if(
|
|
|
|
+DATARMNET543491eb0f->protocol==htons(ETH_P_IPV6)){struct ipv6hdr*
|
|
|
|
+DATARMNETbf55123e5b,DATARMNETcf1d9e2c1e;__be16 frag_off;u8 DATARMNET65293f17c4;
|
|
|
|
+DATARMNETbf55123e5b=skb_header_pointer(DATARMNET543491eb0f,(0xd2d+202-0xdf7),
|
|
|
|
+sizeof(*DATARMNETbf55123e5b),&DATARMNETcf1d9e2c1e);if(!DATARMNETbf55123e5b)goto
|
|
|
|
+DATARMNETbf4095f79e;DATARMNET65293f17c4=DATARMNETbf55123e5b->nexthdr;if(
|
|
|
|
+ipv6_skip_exthdr(DATARMNET543491eb0f,sizeof(*DATARMNETbf55123e5b),&
|
|
|
|
+DATARMNET65293f17c4,&frag_off)<(0xd2d+202-0xdf7))goto DATARMNETbf4095f79e;if(
|
|
|
|
+frag_off&&DATARMNET65293f17c4==NEXTHDR_FRAGMENT)goto DATARMNETbf4095f79e;if(
|
|
|
|
+DATARMNET65293f17c4==IPPROTO_TCP)goto DATARMNET9b3d23a43b;if(DATARMNET65293f17c4
|
|
|
|
+!=IPPROTO_ICMPV6)goto DATARMNETbf4095f79e;memcpy(&DATARMNETa76763310b.
|
|
|
|
+DATARMNET815cbb4bf5,&DATARMNETbf55123e5b->saddr,sizeof(DATARMNETa76763310b.
|
|
|
|
+DATARMNET815cbb4bf5));memcpy(&DATARMNETa76763310b.DATARMNETc3f31215b7,&
|
|
|
|
+DATARMNETbf55123e5b->daddr,sizeof(DATARMNETa76763310b.DATARMNETc3f31215b7));
|
|
|
|
+DATARMNETa76763310b.DATARMNET0d956cc77a=(0xd03+244-0xdf1);}else{goto
|
|
|
|
+DATARMNETbf4095f79e;}rcu_read_lock();hash_for_each_possible_rcu(
|
|
|
|
+DATARMNET5413d6f8ec,DATARMNET63b1a086d5,DATARMNETe8608dd267,DATARMNETa76763310b.
|
|
|
|
+DATARMNET2cb607d686){if(!DATARMNET5f3c9ed4da(&DATARMNET63b1a086d5->
|
|
|
|
+DATARMNET54338da2ff,&DATARMNETa76763310b))continue;if(likely(hrtimer_is_queued(&
|
|
|
|
+DATARMNET63b1a086d5->DATARMNET9f31ce5d2d)))hrtimer_start(&DATARMNET63b1a086d5->
|
|
|
|
+DATARMNET9f31ce5d2d,DATARMNET5da8c68c19,HRTIMER_MODE_REL);rcu_read_unlock();goto
|
|
|
|
+ DATARMNETbf4095f79e;}rcu_read_unlock();spin_lock_irqsave(&DATARMNET820642743b,
|
|
|
|
+DATARMNETfb0677cc3c);DATARMNET63b1a086d5=kzalloc(sizeof(*DATARMNET63b1a086d5),
|
|
|
|
+GFP_ATOMIC);if(!DATARMNET63b1a086d5){spin_unlock_irqrestore(&DATARMNET820642743b
|
|
|
|
+,DATARMNETfb0677cc3c);goto DATARMNETbf4095f79e;}INIT_HLIST_NODE(&
|
|
DATARMNET63b1a086d5->DATARMNETe8608dd267);memcpy(&DATARMNET63b1a086d5->
|
|
DATARMNET63b1a086d5->DATARMNETe8608dd267);memcpy(&DATARMNET63b1a086d5->
|
|
DATARMNET54338da2ff,&DATARMNETa76763310b,sizeof(DATARMNETa76763310b));
|
|
DATARMNET54338da2ff,&DATARMNETa76763310b,sizeof(DATARMNETa76763310b));
|
|
DATARMNET63b1a086d5->DATARMNET7ed5754a5c.DATARMNET57656f6f2f=DATARMNET543491eb0f
|
|
DATARMNET63b1a086d5->DATARMNET7ed5754a5c.DATARMNET57656f6f2f=DATARMNET543491eb0f
|
|
@@ -315,10 +279,9 @@ DATARMNET63b1a086d5->DATARMNETe8608dd267,DATARMNETa76763310b.DATARMNET2cb607d686
|
|
DATARMNETbf4095f79e:return DATARMNETc9ed97754a(DATARMNET543491eb0f,
|
|
DATARMNETbf4095f79e:return DATARMNETc9ed97754a(DATARMNET543491eb0f,
|
|
DATARMNET1a901c3d09);DATARMNET9b3d23a43b:DATARMNET7ca470d54b(DATARMNET543491eb0f
|
|
DATARMNET1a901c3d09);DATARMNET9b3d23a43b:DATARMNET7ca470d54b(DATARMNET543491eb0f
|
|
,TCP_FLAG_SYN);return DATARMNETc9ed97754a(DATARMNET543491eb0f,
|
|
,TCP_FLAG_SYN);return DATARMNETc9ed97754a(DATARMNET543491eb0f,
|
|
-DATARMNET1a901c3d09);DATARMNETf10b3df68d:return DATARMNET6e2f632fce(
|
|
|
|
-DATARMNET543491eb0f,DATARMNET1a901c3d09);}static void DATARMNETbc6bd11f47(struct
|
|
|
|
- net_device*DATARMNET00dcb79bc4){struct DATARMNET4f49486833*DATARMNET63b1a086d5;
|
|
|
|
-int DATARMNET5c2fd31d7b;rcu_read_lock();hash_for_each_rcu(DATARMNET5413d6f8ec,
|
|
|
|
|
|
+DATARMNET1a901c3d09);}static void DATARMNETbc6bd11f47(struct net_device*
|
|
|
|
+DATARMNET00dcb79bc4){struct DATARMNET4f49486833*DATARMNET63b1a086d5;int
|
|
|
|
+DATARMNET5c2fd31d7b;rcu_read_lock();hash_for_each_rcu(DATARMNET5413d6f8ec,
|
|
DATARMNET5c2fd31d7b,DATARMNET63b1a086d5,DATARMNETe8608dd267){if(
|
|
DATARMNET5c2fd31d7b,DATARMNET63b1a086d5,DATARMNETe8608dd267){if(
|
|
DATARMNET63b1a086d5->DATARMNET7ed5754a5c.DATARMNET57656f6f2f==
|
|
DATARMNET63b1a086d5->DATARMNET7ed5754a5c.DATARMNET57656f6f2f==
|
|
DATARMNET00dcb79bc4)hrtimer_cancel(&DATARMNET63b1a086d5->DATARMNET9f31ce5d2d);}
|
|
DATARMNET00dcb79bc4)hrtimer_cancel(&DATARMNET63b1a086d5->DATARMNET9f31ce5d2d);}
|