diff --git a/drivers/net/gtp.c b/drivers/net/gtp.c index 7e950980ba7374b01b61a99335d6587b25f8ca48..64c7d64aa23ddc41acf52a47b32b4742f4a70bf0 100644 --- a/drivers/net/gtp.c +++ b/drivers/net/gtp.c @@ -707,11 +707,12 @@ static int gtp_newlink(struct net *src_net, struct net_device *dev, static void gtp_dellink(struct net_device *dev, struct list_head *head) { struct gtp_dev *gtp = netdev_priv(dev); + struct hlist_node *next; struct pdp_ctx *pctx; int i; for (i = 0; i < gtp->hash_size; i++) - hlist_for_each_entry_rcu(pctx, >p->tid_hash[i], hlist_tid) + hlist_for_each_entry_safe(pctx, next, >p->tid_hash[i], hlist_tid) pdp_context_delete(pctx); gtp_encap_disable(gtp);