]> Pileus Git - ~andy/linux/blobdiff - net/rose/rose_route.c
[ROSE]: Fix routing table locking in rose_remove_neigh.
[~andy/linux] / net / rose / rose_route.c
index 4cb6bfa6fcbdb6505cfdeffb20f0277f9a944d12..a22542fa1bc848cedef82a914a49f40ededae771 100644 (file)
@@ -233,11 +233,8 @@ static void rose_remove_neigh(struct rose_neigh *rose_neigh)
 
        skb_queue_purge(&rose_neigh->queue);
 
-       spin_lock_bh(&rose_neigh_list_lock);
-
        if ((s = rose_neigh_list) == rose_neigh) {
                rose_neigh_list = rose_neigh->next;
-               spin_unlock_bh(&rose_neigh_list_lock);
                kfree(rose_neigh->digipeat);
                kfree(rose_neigh);
                return;
@@ -246,7 +243,6 @@ static void rose_remove_neigh(struct rose_neigh *rose_neigh)
        while (s != NULL && s->next != NULL) {
                if (s->next == rose_neigh) {
                        s->next = rose_neigh->next;
-                       spin_unlock_bh(&rose_neigh_list_lock);
                        kfree(rose_neigh->digipeat);
                        kfree(rose_neigh);
                        return;
@@ -254,7 +250,6 @@ static void rose_remove_neigh(struct rose_neigh *rose_neigh)
 
                s = s->next;
        }
-       spin_unlock_bh(&rose_neigh_list_lock);
 }
 
 /*