xfrm: remove useless hash_resize_mutex locks
[firefly-linux-kernel-4.4.55.git] / net / xfrm / xfrm_state.c
index 0ab54134bb40b84cf825df6035a9acf7cb3cf760..de971b6d38c58310f744988bb970ccb5438ef39b 100644 (file)
@@ -97,8 +97,6 @@ static unsigned long xfrm_hash_new_size(unsigned int state_hmask)
        return ((state_hmask + 1) << 1) * sizeof(struct hlist_head);
 }
 
-static DEFINE_MUTEX(hash_resize_mutex);
-
 static void xfrm_hash_resize(struct work_struct *work)
 {
        struct net *net = container_of(work, struct net, xfrm.state_hash_work);
@@ -107,22 +105,20 @@ static void xfrm_hash_resize(struct work_struct *work)
        unsigned int nhashmask, ohashmask;
        int i;
 
-       mutex_lock(&hash_resize_mutex);
-
        nsize = xfrm_hash_new_size(net->xfrm.state_hmask);
        ndst = xfrm_hash_alloc(nsize);
        if (!ndst)
-               goto out_unlock;
+               return;
        nsrc = xfrm_hash_alloc(nsize);
        if (!nsrc) {
                xfrm_hash_free(ndst, nsize);
-               goto out_unlock;
+               return;
        }
        nspi = xfrm_hash_alloc(nsize);
        if (!nspi) {
                xfrm_hash_free(ndst, nsize);
                xfrm_hash_free(nsrc, nsize);
-               goto out_unlock;
+               return;
        }
 
        spin_lock_bh(&net->xfrm.xfrm_state_lock);
@@ -148,9 +144,6 @@ static void xfrm_hash_resize(struct work_struct *work)
        xfrm_hash_free(odst, osize);
        xfrm_hash_free(osrc, osize);
        xfrm_hash_free(ospi, osize);
-
-out_unlock:
-       mutex_unlock(&hash_resize_mutex);
 }
 
 static DEFINE_SPINLOCK(xfrm_state_afinfo_lock);