@@ -577,8 +577,8 @@ static struct sk_buff *amt_build_igmp_gq(struct amt_dev *amt)
577
577
return skb ;
578
578
}
579
579
580
- static void __amt_update_gw_status (struct amt_dev * amt , enum amt_status status ,
581
- bool validate )
580
+ static void amt_update_gw_status (struct amt_dev * amt , enum amt_status status ,
581
+ bool validate )
582
582
{
583
583
if (validate && amt -> status >= status )
584
584
return ;
@@ -600,14 +600,6 @@ static void __amt_update_relay_status(struct amt_tunnel_list *tunnel,
600
600
tunnel -> status = status ;
601
601
}
602
602
603
- static void amt_update_gw_status (struct amt_dev * amt , enum amt_status status ,
604
- bool validate )
605
- {
606
- spin_lock_bh (& amt -> lock );
607
- __amt_update_gw_status (amt , status , validate );
608
- spin_unlock_bh (& amt -> lock );
609
- }
610
-
611
603
static void amt_update_relay_status (struct amt_tunnel_list * tunnel ,
612
604
enum amt_status status , bool validate )
613
605
{
@@ -700,9 +692,7 @@ static void amt_send_discovery(struct amt_dev *amt)
700
692
if (unlikely (net_xmit_eval (err )))
701
693
amt -> dev -> stats .tx_errors ++ ;
702
694
703
- spin_lock_bh (& amt -> lock );
704
- __amt_update_gw_status (amt , AMT_STATUS_SENT_DISCOVERY , true);
705
- spin_unlock_bh (& amt -> lock );
695
+ amt_update_gw_status (amt , AMT_STATUS_SENT_DISCOVERY , true);
706
696
out :
707
697
rcu_read_unlock ();
708
698
}
@@ -937,18 +927,14 @@ static void amt_secret_work(struct work_struct *work)
937
927
938
928
static void amt_event_send_discovery (struct amt_dev * amt )
939
929
{
940
- spin_lock_bh (& amt -> lock );
941
930
if (amt -> status > AMT_STATUS_SENT_DISCOVERY )
942
931
goto out ;
943
932
get_random_bytes (& amt -> nonce , sizeof (__be32 ));
944
- spin_unlock_bh (& amt -> lock );
945
933
946
934
amt_send_discovery (amt );
947
- spin_lock_bh (& amt -> lock );
948
935
out :
949
936
mod_delayed_work (amt_wq , & amt -> discovery_wq ,
950
937
msecs_to_jiffies (AMT_DISCOVERY_TIMEOUT ));
951
- spin_unlock_bh (& amt -> lock );
952
938
}
953
939
954
940
static void amt_discovery_work (struct work_struct * work )
@@ -966,7 +952,6 @@ static void amt_event_send_request(struct amt_dev *amt)
966
952
{
967
953
u32 exp ;
968
954
969
- spin_lock_bh (& amt -> lock );
970
955
if (amt -> status < AMT_STATUS_RECEIVED_ADVERTISEMENT )
971
956
goto out ;
972
957
@@ -976,21 +961,18 @@ static void amt_event_send_request(struct amt_dev *amt)
976
961
amt -> ready4 = false;
977
962
amt -> ready6 = false;
978
963
amt -> remote_ip = 0 ;
979
- __amt_update_gw_status (amt , AMT_STATUS_INIT , false);
964
+ amt_update_gw_status (amt , AMT_STATUS_INIT , false);
980
965
amt -> req_cnt = 0 ;
981
966
goto out ;
982
967
}
983
- spin_unlock_bh (& amt -> lock );
984
968
985
969
amt_send_request (amt , false);
986
970
amt_send_request (amt , true);
987
- spin_lock_bh (& amt -> lock );
988
- __amt_update_gw_status (amt , AMT_STATUS_SENT_REQUEST , true);
971
+ amt_update_gw_status (amt , AMT_STATUS_SENT_REQUEST , true);
989
972
amt -> req_cnt ++ ;
990
973
out :
991
974
exp = min_t (u32 , (1 * (1 << amt -> req_cnt )), AMT_MAX_REQ_TIMEOUT );
992
975
mod_delayed_work (amt_wq , & amt -> req_wq , msecs_to_jiffies (exp * 1000 ));
993
- spin_unlock_bh (& amt -> lock );
994
976
}
995
977
996
978
static void amt_req_work (struct work_struct * work )
@@ -2386,12 +2368,10 @@ static bool amt_membership_query_handler(struct amt_dev *amt,
2386
2368
ihv3 = skb_pull (skb , sizeof (* iph ) + AMT_IPHDR_OPTS );
2387
2369
skb_reset_transport_header (skb );
2388
2370
skb_push (skb , sizeof (* iph ) + AMT_IPHDR_OPTS );
2389
- spin_lock_bh (& amt -> lock );
2390
2371
amt -> ready4 = true;
2391
2372
amt -> mac = amtmq -> response_mac ;
2392
2373
amt -> req_cnt = 0 ;
2393
2374
amt -> qi = ihv3 -> qqic ;
2394
- spin_unlock_bh (& amt -> lock );
2395
2375
skb -> protocol = htons (ETH_P_IP );
2396
2376
eth -> h_proto = htons (ETH_P_IP );
2397
2377
ip_eth_mc_map (iph -> daddr , eth -> h_dest );
@@ -2411,12 +2391,10 @@ static bool amt_membership_query_handler(struct amt_dev *amt,
2411
2391
mld2q = skb_pull (skb , sizeof (* ip6h ) + AMT_IP6HDR_OPTS );
2412
2392
skb_reset_transport_header (skb );
2413
2393
skb_push (skb , sizeof (* ip6h ) + AMT_IP6HDR_OPTS );
2414
- spin_lock_bh (& amt -> lock );
2415
2394
amt -> ready6 = true;
2416
2395
amt -> mac = amtmq -> response_mac ;
2417
2396
amt -> req_cnt = 0 ;
2418
2397
amt -> qi = mld2q -> mld2q_qqic ;
2419
- spin_unlock_bh (& amt -> lock );
2420
2398
skb -> protocol = htons (ETH_P_IPV6 );
2421
2399
eth -> h_proto = htons (ETH_P_IPV6 );
2422
2400
ipv6_eth_mc_map (& ip6h -> daddr , eth -> h_dest );
0 commit comments