]> err.no Git - linux-2.6/blobdiff - net/core/neighbour.c
HID: fix a potential bug in pointer casting
[linux-2.6] / net / core / neighbour.c
index cc8a2f190acfa75dd9cd0fef1149e82689fcfccb..29b8ee4e35d6dc53f32064c1c067c7287ce80924 100644 (file)
@@ -1316,6 +1316,8 @@ void neigh_parms_release(struct neigh_table *tbl, struct neigh_parms *parms)
                        *p = parms->next;
                        parms->dead = 1;
                        write_unlock_bh(&tbl->lock);
+                       if (parms->dev)
+                               dev_put(parms->dev);
                        call_rcu(&parms->rcu_head, neigh_rcu_free_parms);
                        return;
                }
@@ -1326,8 +1328,6 @@ void neigh_parms_release(struct neigh_table *tbl, struct neigh_parms *parms)
 
 void neigh_parms_destroy(struct neigh_parms *parms)
 {
-       if (parms->dev)
-               dev_put(parms->dev);
        kfree(parms);
 }