Эх сурвалжийг харах

wlan: Ife0054be08abe255481fe64cb823f2eea41c9d7b

Update to Ife0054be08abe255481fe64cb823f2eea41c9d7b

CRs-Fixed: 3089793
Change-Id: Ife0054be08abe255481fe64cb823f2eea41c9d7b
Signed-off-by: Subash Abhinov Kasiviswanathan <[email protected]>
Subash Abhinov Kasiviswanathan 3 жил өмнө
parent
commit
3ab675026a

+ 38 - 33
wlan/rmnet_wlan_connection.c

@@ -1,5 +1,6 @@
 // SPDX-License-Identifier: GPL-2.0-only
 /* Copyright (c) 2021, The Linux Foundation. All rights reserved.
+ * Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved.
  *
  * RMNET WLAN connection management framework
  *
@@ -60,20 +61,22 @@ DATARMNET813ca18d06){DATARMNET17f6bc1be5(DATARMNETfa4b3dd44a);goto
 DATARMNETc1174a0f45;}DATARMNET543491eb0f->dev=DATARMNET813ca18d06;memcpy(&
 DATARMNET099aa93adc.saddr,&DATARMNET86f1f2cdc9->saddr,sizeof(__be32));memcpy(&
 DATARMNET099aa93adc.daddr,&DATARMNET86f1f2cdc9->daddr,sizeof(__be32));
-DATARMNET066b8bd537=ip_route_output_key(&init_net,&DATARMNET099aa93adc);if(
-IS_ERR(DATARMNET066b8bd537)){DATARMNET17f6bc1be5(DATARMNET72ab5e86d8);goto 
-DATARMNETc1174a0f45;}DATARMNET3f85732c70=dst_neigh_lookup(&DATARMNET066b8bd537->
-dst,&DATARMNET099aa93adc.daddr);ip_rt_put(DATARMNET066b8bd537);if(!
+DATARMNET099aa93adc.flowi4_oif=DATARMNET813ca18d06->ifindex;DATARMNET099aa93adc.
+flowi4_flags=FLOWI_FLAG_KNOWN_NH;DATARMNET066b8bd537=ip_route_output_key(&
+init_net,&DATARMNET099aa93adc);if(IS_ERR(DATARMNET066b8bd537)){
+DATARMNET17f6bc1be5(DATARMNET72ab5e86d8);goto DATARMNETc1174a0f45;}
+DATARMNET3f85732c70=dst_neigh_lookup(&DATARMNET066b8bd537->dst,&
+DATARMNET099aa93adc.daddr);ip_rt_put(DATARMNET066b8bd537);if(!
 DATARMNET3f85732c70){DATARMNET17f6bc1be5(DATARMNET0e6bd55b8b);goto 
-DATARMNETc1174a0f45;}if(DATARMNET3f85732c70->dev!=DATARMNET543491eb0f->dev){
-DATARMNET17f6bc1be5(DATARMNET64aecaa865);neigh_release(DATARMNET3f85732c70);goto
- DATARMNETc1174a0f45;}DATARMNET268a8314cf=neigh_resolve_output(
-DATARMNET3f85732c70,DATARMNET543491eb0f);neigh_release(DATARMNET3f85732c70);if(
-likely(DATARMNET268a8314cf==NET_XMIT_SUCCESS||DATARMNET268a8314cf==NET_XMIT_CN))
-{DATARMNET17f6bc1be5(DATARMNETc1b437465b);}else{DATARMNET17f6bc1be5(
-DATARMNET43a65c0be7);}return RX_HANDLER_CONSUMED;}else if(DATARMNET543491eb0f->
-dev&&(DATARMNET543491eb0f->protocol==htons(ETH_P_IPV6))&&!(strncmp(
-DATARMNET543491eb0f->dev->name,
+DATARMNETc1174a0f45;}if(DATARMNET3f85732c70->dev!=DATARMNET543491eb0f->dev||!
+DATARMNET3f85732c70->dev->header_ops){DATARMNET17f6bc1be5(DATARMNET64aecaa865);
+neigh_release(DATARMNET3f85732c70);goto DATARMNETc1174a0f45;}DATARMNET268a8314cf
+=neigh_resolve_output(DATARMNET3f85732c70,DATARMNET543491eb0f);neigh_release(
+DATARMNET3f85732c70);if(likely(DATARMNET268a8314cf==NET_XMIT_SUCCESS||
+DATARMNET268a8314cf==NET_XMIT_CN)){DATARMNET17f6bc1be5(DATARMNETc1b437465b);}
+else{DATARMNET17f6bc1be5(DATARMNET43a65c0be7);}return RX_HANDLER_CONSUMED;}else 
+if(DATARMNET543491eb0f->dev&&(DATARMNET543491eb0f->protocol==htons(ETH_P_IPV6))
+&&!(strncmp(DATARMNET543491eb0f->dev->name,
 "\x72\x5f\x72\x6d\x6e\x65\x74\x5f\x64\x61\x74\x61\x30",IFNAMSIZ))){struct 
 ipv6hdr*DATARMNETbf55123e5b,DATARMNETcf1d9e2c1e;struct net_device*
 DATARMNET813ca18d06=NULL;struct flowi6 DATARMNET8fbe36a2fa={};struct neighbour*
@@ -86,26 +89,28 @@ DATARMNET934406764d());if(!DATARMNET813ca18d06){DATARMNET17f6bc1be5(
 DATARMNET9cff15f94d);goto DATARMNETc1174a0f45;}DATARMNET543491eb0f->dev=
 DATARMNET813ca18d06;memcpy(&DATARMNET8fbe36a2fa.saddr,&DATARMNETbf55123e5b->
 saddr,sizeof(struct in6_addr));memcpy(&DATARMNET8fbe36a2fa.daddr,&
-DATARMNETbf55123e5b->daddr,sizeof(struct in6_addr));dst=ipv6_stub->
-ipv6_dst_lookup_flow(&init_net,NULL,&DATARMNET8fbe36a2fa,NULL);if(IS_ERR(dst)){
-DATARMNET17f6bc1be5(DATARMNETbf6e6853f9);goto DATARMNETc1174a0f45;}
-DATARMNET3f85732c70=dst_neigh_lookup(dst,&DATARMNET8fbe36a2fa.daddr);dst_release
-(dst);if(!DATARMNET3f85732c70){DATARMNET17f6bc1be5(DATARMNETa0da722329);goto 
-DATARMNETc1174a0f45;}if(DATARMNET3f85732c70->dev!=DATARMNET543491eb0f->dev){
-DATARMNET17f6bc1be5(DATARMNET729e252fb9);neigh_release(DATARMNET3f85732c70);goto
- DATARMNETc1174a0f45;}DATARMNET268a8314cf=neigh_resolve_output(
-DATARMNET3f85732c70,DATARMNET543491eb0f);neigh_release(DATARMNET3f85732c70);if(
-likely(DATARMNET268a8314cf==NET_XMIT_SUCCESS||DATARMNET268a8314cf==NET_XMIT_CN))
-{DATARMNET17f6bc1be5(DATARMNET04311361a2);}else{DATARMNET17f6bc1be5(
-DATARMNET13bbe5f5c5);}return RX_HANDLER_CONSUMED;}return RX_HANDLER_PASS;
-DATARMNETc1174a0f45:kfree_skb(DATARMNET543491eb0f);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;if(!DATARMNET543491eb0f||
-DATARMNET543491eb0f->pkt_type==PACKET_LOOPBACK)return RX_HANDLER_PASS;if(
-DATARMNET543491eb0f->dev&&strncmp(DATARMNET543491eb0f->dev->name,
-"\x72\x5f\x72\x6d\x6e\x65\x74\x5f\x64\x61\x74\x61\x30",IFNAMSIZ))nf_ct_set(
+DATARMNETbf55123e5b->daddr,sizeof(struct in6_addr));DATARMNET8fbe36a2fa.
+flowi6_oif=DATARMNET813ca18d06->ifindex;DATARMNET8fbe36a2fa.flowi6_flags=
+FLOWI_FLAG_KNOWN_NH;dst=ipv6_stub->ipv6_dst_lookup_flow(&init_net,NULL,&
+DATARMNET8fbe36a2fa,NULL);if(IS_ERR(dst)){DATARMNET17f6bc1be5(
+DATARMNETbf6e6853f9);goto DATARMNETc1174a0f45;}DATARMNET3f85732c70=
+dst_neigh_lookup(dst,&DATARMNET8fbe36a2fa.daddr);dst_release(dst);if(!
+DATARMNET3f85732c70){DATARMNET17f6bc1be5(DATARMNETa0da722329);goto 
+DATARMNETc1174a0f45;}if(DATARMNET3f85732c70->dev!=DATARMNET543491eb0f->dev||!
+DATARMNET3f85732c70->dev->header_ops){DATARMNET17f6bc1be5(DATARMNET729e252fb9);
+neigh_release(DATARMNET3f85732c70);goto DATARMNETc1174a0f45;}DATARMNET268a8314cf
+=neigh_resolve_output(DATARMNET3f85732c70,DATARMNET543491eb0f);neigh_release(
+DATARMNET3f85732c70);if(likely(DATARMNET268a8314cf==NET_XMIT_SUCCESS||
+DATARMNET268a8314cf==NET_XMIT_CN)){DATARMNET17f6bc1be5(DATARMNET04311361a2);}
+else{DATARMNET17f6bc1be5(DATARMNET13bbe5f5c5);}return RX_HANDLER_CONSUMED;}
+return RX_HANDLER_PASS;DATARMNETc1174a0f45:kfree_skb(DATARMNET543491eb0f);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;if(!
+DATARMNET543491eb0f||DATARMNET543491eb0f->pkt_type==PACKET_LOOPBACK)return 
+RX_HANDLER_PASS;if(DATARMNET543491eb0f->dev&&strncmp(DATARMNET543491eb0f->dev->
+name,"\x72\x5f\x72\x6d\x6e\x65\x74\x5f\x64\x61\x74\x61\x30",IFNAMSIZ))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),