xfrm: optimise the use of walk list header in xfrm_policy/state_walk
[linux-drm-fsl-dcu.git] / net / xfrm / xfrm_policy.c
index d8c35ad4210daabf773d9b8ae1f52d9b2b3d5176..847053ec7d91dcd8c38b49c1b25ea17a0277379e 100644 (file)
@@ -1004,7 +1004,9 @@ int xfrm_policy_walk(struct net *net, struct xfrm_policy_walk *walk,
        if (list_empty(&walk->walk.all))
                x = list_first_entry(&net->xfrm.policy_all, struct xfrm_policy_walk_entry, all);
        else
-               x = list_entry(&walk->walk.all, struct xfrm_policy_walk_entry, all);
+               x = list_first_entry(&walk->walk.all,
+                                    struct xfrm_policy_walk_entry, all);
+
        list_for_each_entry_from(x, &net->xfrm.policy_all, all) {
                if (x->dead)
                        continue;