@@ -60,8 +60,13 @@ static struct hlist_head *rds_conn_bucket(const struct in6_addr *laddr,
60
60
net_get_random_once (& rds6_hash_secret , sizeof (rds6_hash_secret ));
61
61
62
62
lhash = (__force u32 )laddr -> s6_addr32 [3 ];
63
+ #if IS_ENABLED (CONFIG_IPV6 )
63
64
fhash = __ipv6_addr_jhash (faddr , rds6_hash_secret );
64
- hash = __inet6_ehashfn (lhash , 0 , fhash , 0 , rds_hash_secret );
65
+ #else
66
+ fhash = (__force u32 )faddr -> s6_addr32 [3 ];
67
+ #endif
68
+ hash = __inet_ehashfn ((__force __be32 )lhash , 0 , (__force __be32 )fhash ,
69
+ 0 , rds_hash_secret );
65
70
66
71
return & rds_conn_hash [hash & RDS_CONNECTION_HASH_MASK ];
67
72
}
@@ -221,6 +226,8 @@ static struct rds_connection *__rds_conn_create(struct net *net,
221
226
conn -> c_isv6 = !ipv6_addr_v4mapped (laddr );
222
227
conn -> c_faddr = * faddr ;
223
228
conn -> c_dev_if = dev_if ;
229
+
230
+ #if IS_ENABLED (CONFIG_IPV6 )
224
231
/* If the local address is link local, set c_bound_if to be the
225
232
* index used for this connection. Otherwise, set it to 0 as
226
233
* the socket is not bound to an interface. c_bound_if is used
@@ -229,6 +236,7 @@ static struct rds_connection *__rds_conn_create(struct net *net,
229
236
if (ipv6_addr_type (laddr ) & IPV6_ADDR_LINKLOCAL )
230
237
conn -> c_bound_if = dev_if ;
231
238
else
239
+ #endif
232
240
conn -> c_bound_if = 0 ;
233
241
234
242
rds_conn_net_set (conn , net );
@@ -570,9 +578,11 @@ static void __rds_inc_msg_cp(struct rds_incoming *inc,
570
578
struct rds_info_iterator * iter ,
571
579
void * saddr , void * daddr , int flip , bool isv6 )
572
580
{
581
+ #if IS_ENABLED (CONFIG_IPV6 )
573
582
if (isv6 )
574
583
rds6_inc_info_copy (inc , iter , saddr , daddr , flip );
575
584
else
585
+ #endif
576
586
rds_inc_info_copy (inc , iter , * (__be32 * )saddr ,
577
587
* (__be32 * )daddr , flip );
578
588
}
@@ -650,13 +660,15 @@ static void rds_conn_message_info(struct socket *sock, unsigned int len,
650
660
rds_conn_message_info_cmn (sock , len , iter , lens , want_send , false);
651
661
}
652
662
663
+ #if IS_ENABLED (CONFIG_IPV6 )
653
664
static void rds6_conn_message_info (struct socket * sock , unsigned int len ,
654
665
struct rds_info_iterator * iter ,
655
666
struct rds_info_lengths * lens ,
656
667
int want_send )
657
668
{
658
669
rds_conn_message_info_cmn (sock , len , iter , lens , want_send , true);
659
670
}
671
+ #endif
660
672
661
673
static void rds_conn_message_info_send (struct socket * sock , unsigned int len ,
662
674
struct rds_info_iterator * iter ,
@@ -665,12 +677,14 @@ static void rds_conn_message_info_send(struct socket *sock, unsigned int len,
665
677
rds_conn_message_info (sock , len , iter , lens , 1 );
666
678
}
667
679
680
+ #if IS_ENABLED (CONFIG_IPV6 )
668
681
static void rds6_conn_message_info_send (struct socket * sock , unsigned int len ,
669
682
struct rds_info_iterator * iter ,
670
683
struct rds_info_lengths * lens )
671
684
{
672
685
rds6_conn_message_info (sock , len , iter , lens , 1 );
673
686
}
687
+ #endif
674
688
675
689
static void rds_conn_message_info_retrans (struct socket * sock ,
676
690
unsigned int len ,
@@ -680,13 +694,15 @@ static void rds_conn_message_info_retrans(struct socket *sock,
680
694
rds_conn_message_info (sock , len , iter , lens , 0 );
681
695
}
682
696
697
+ #if IS_ENABLED (CONFIG_IPV6 )
683
698
static void rds6_conn_message_info_retrans (struct socket * sock ,
684
699
unsigned int len ,
685
700
struct rds_info_iterator * iter ,
686
701
struct rds_info_lengths * lens )
687
702
{
688
703
rds6_conn_message_info (sock , len , iter , lens , 0 );
689
704
}
705
+ #endif
690
706
691
707
void rds_for_each_conn_info (struct socket * sock , unsigned int len ,
692
708
struct rds_info_iterator * iter ,
@@ -807,6 +823,7 @@ static int rds_conn_info_visitor(struct rds_conn_path *cp, void *buffer)
807
823
return 1 ;
808
824
}
809
825
826
+ #if IS_ENABLED (CONFIG_IPV6 )
810
827
static int rds6_conn_info_visitor (struct rds_conn_path * cp , void * buffer )
811
828
{
812
829
struct rds6_info_connection * cinfo6 = buffer ;
@@ -837,6 +854,7 @@ static int rds6_conn_info_visitor(struct rds_conn_path *cp, void *buffer)
837
854
*/
838
855
return 1 ;
839
856
}
857
+ #endif
840
858
841
859
static void rds_conn_info (struct socket * sock , unsigned int len ,
842
860
struct rds_info_iterator * iter ,
@@ -849,6 +867,7 @@ static void rds_conn_info(struct socket *sock, unsigned int len,
849
867
sizeof (struct rds_info_connection ));
850
868
}
851
869
870
+ #if IS_ENABLED (CONFIG_IPV6 )
852
871
static void rds6_conn_info (struct socket * sock , unsigned int len ,
853
872
struct rds_info_iterator * iter ,
854
873
struct rds_info_lengths * lens )
@@ -859,6 +878,7 @@ static void rds6_conn_info(struct socket *sock, unsigned int len,
859
878
rds6_conn_info_visitor , buffer ,
860
879
sizeof (struct rds6_info_connection ));
861
880
}
881
+ #endif
862
882
863
883
int rds_conn_init (void )
864
884
{
@@ -873,11 +893,13 @@ int rds_conn_init(void)
873
893
rds_conn_message_info_send );
874
894
rds_info_register_func (RDS_INFO_RETRANS_MESSAGES ,
875
895
rds_conn_message_info_retrans );
896
+ #if IS_ENABLED (CONFIG_IPV6 )
876
897
rds_info_register_func (RDS6_INFO_CONNECTIONS , rds6_conn_info );
877
898
rds_info_register_func (RDS6_INFO_SEND_MESSAGES ,
878
899
rds6_conn_message_info_send );
879
900
rds_info_register_func (RDS6_INFO_RETRANS_MESSAGES ,
880
901
rds6_conn_message_info_retrans );
902
+ #endif
881
903
882
904
return 0 ;
883
905
}
@@ -895,11 +917,13 @@ void rds_conn_exit(void)
895
917
rds_conn_message_info_send );
896
918
rds_info_deregister_func (RDS_INFO_RETRANS_MESSAGES ,
897
919
rds_conn_message_info_retrans );
920
+ #if IS_ENABLED (CONFIG_IPV6 )
898
921
rds_info_deregister_func (RDS6_INFO_CONNECTIONS , rds6_conn_info );
899
922
rds_info_deregister_func (RDS6_INFO_SEND_MESSAGES ,
900
923
rds6_conn_message_info_send );
901
924
rds_info_deregister_func (RDS6_INFO_RETRANS_MESSAGES ,
902
925
rds6_conn_message_info_retrans );
926
+ #endif
903
927
}
904
928
905
929
static char * conn_drop_reasons [] = {
0 commit comments