Commit 8ca2e93b557f2a0b35f7769038abf600177e1122
Committed by
David S. Miller
1 parent
3d6acfa764
Exists in
master
and in
39 other branches
xfrm: SP lookups signature with mark
pass mark to all SP lookups to prepare them for when we add code to have them search. Signed-off-by: Jamal Hadi Salim <hadi@cyberus.ca> Signed-off-by: David S. Miller <davem@davemloft.net>
Showing 4 changed files with 14 additions and 13 deletions Side-by-side Diff
include/net/xfrm.h
... | ... | @@ -1450,11 +1450,12 @@ |
1450 | 1450 | int (*func)(struct xfrm_policy *, int, int, void*), void *); |
1451 | 1451 | extern void xfrm_policy_walk_done(struct xfrm_policy_walk *walk); |
1452 | 1452 | int xfrm_policy_insert(int dir, struct xfrm_policy *policy, int excl); |
1453 | -struct xfrm_policy *xfrm_policy_bysel_ctx(struct net *net, u8 type, int dir, | |
1453 | +struct xfrm_policy *xfrm_policy_bysel_ctx(struct net *net, u32 mark, | |
1454 | + u8 type, int dir, | |
1454 | 1455 | struct xfrm_selector *sel, |
1455 | 1456 | struct xfrm_sec_ctx *ctx, int delete, |
1456 | 1457 | int *err); |
1457 | -struct xfrm_policy *xfrm_policy_byid(struct net *net, u8, int dir, u32 id, int delete, int *err); | |
1458 | +struct xfrm_policy *xfrm_policy_byid(struct net *net, u32 mark, u8, int dir, u32 id, int delete, int *err); | |
1458 | 1459 | int xfrm_policy_flush(struct net *net, u8 type, struct xfrm_audit *audit_info); |
1459 | 1460 | u32 xfrm_get_acqseq(void); |
1460 | 1461 | extern int xfrm_alloc_spi(struct xfrm_state *x, u32 minspi, u32 maxspi); |
net/key/af_key.c
... | ... | @@ -2326,7 +2326,7 @@ |
2326 | 2326 | return err; |
2327 | 2327 | } |
2328 | 2328 | |
2329 | - xp = xfrm_policy_bysel_ctx(net, XFRM_POLICY_TYPE_MAIN, | |
2329 | + xp = xfrm_policy_bysel_ctx(net, DUMMY_MARK, XFRM_POLICY_TYPE_MAIN, | |
2330 | 2330 | pol->sadb_x_policy_dir - 1, &sel, pol_ctx, |
2331 | 2331 | 1, &err); |
2332 | 2332 | security_xfrm_policy_free(pol_ctx); |
... | ... | @@ -2574,7 +2574,7 @@ |
2574 | 2574 | return -EINVAL; |
2575 | 2575 | |
2576 | 2576 | delete = (hdr->sadb_msg_type == SADB_X_SPDDELETE2); |
2577 | - xp = xfrm_policy_byid(net, XFRM_POLICY_TYPE_MAIN, | |
2577 | + xp = xfrm_policy_byid(net, DUMMY_MARK, XFRM_POLICY_TYPE_MAIN, | |
2578 | 2578 | dir, pol->sadb_x_policy_id, delete, &err); |
2579 | 2579 | if (xp == NULL) |
2580 | 2580 | return -ENOENT; |
net/xfrm/xfrm_policy.c
... | ... | @@ -635,8 +635,8 @@ |
635 | 635 | } |
636 | 636 | EXPORT_SYMBOL(xfrm_policy_insert); |
637 | 637 | |
638 | -struct xfrm_policy *xfrm_policy_bysel_ctx(struct net *net, u8 type, int dir, | |
639 | - struct xfrm_selector *sel, | |
638 | +struct xfrm_policy *xfrm_policy_bysel_ctx(struct net *net, u32 mark, u8 type, | |
639 | + int dir, struct xfrm_selector *sel, | |
640 | 640 | struct xfrm_sec_ctx *ctx, int delete, |
641 | 641 | int *err) |
642 | 642 | { |
... | ... | @@ -676,8 +676,8 @@ |
676 | 676 | } |
677 | 677 | EXPORT_SYMBOL(xfrm_policy_bysel_ctx); |
678 | 678 | |
679 | -struct xfrm_policy *xfrm_policy_byid(struct net *net, u8 type, int dir, u32 id, | |
680 | - int delete, int *err) | |
679 | +struct xfrm_policy *xfrm_policy_byid(struct net *net, u32 mark, u8 type, | |
680 | + int dir, u32 id, int delete, int *err) | |
681 | 681 | { |
682 | 682 | struct xfrm_policy *pol, *ret; |
683 | 683 | struct hlist_head *chain; |
net/xfrm/xfrm_user.c
... | ... | @@ -1457,7 +1457,7 @@ |
1457 | 1457 | return err; |
1458 | 1458 | |
1459 | 1459 | if (p->index) |
1460 | - xp = xfrm_policy_byid(net, type, p->dir, p->index, delete, &err); | |
1460 | + xp = xfrm_policy_byid(net, DUMMY_MARK, type, p->dir, p->index, delete, &err); | |
1461 | 1461 | else { |
1462 | 1462 | struct nlattr *rt = attrs[XFRMA_SEC_CTX]; |
1463 | 1463 | struct xfrm_sec_ctx *ctx; |
... | ... | @@ -1474,8 +1474,8 @@ |
1474 | 1474 | if (err) |
1475 | 1475 | return err; |
1476 | 1476 | } |
1477 | - xp = xfrm_policy_bysel_ctx(net, type, p->dir, &p->sel, ctx, | |
1478 | - delete, &err); | |
1477 | + xp = xfrm_policy_bysel_ctx(net, DUMMY_MARK, type, p->dir, | |
1478 | + &p->sel, ctx, delete, &err); | |
1479 | 1479 | security_xfrm_policy_free(ctx); |
1480 | 1480 | } |
1481 | 1481 | if (xp == NULL) |
... | ... | @@ -1712,7 +1712,7 @@ |
1712 | 1712 | return err; |
1713 | 1713 | |
1714 | 1714 | if (p->index) |
1715 | - xp = xfrm_policy_byid(net, type, p->dir, p->index, 0, &err); | |
1715 | + xp = xfrm_policy_byid(net, DUMMY_MARK, type, p->dir, p->index, 0, &err); | |
1716 | 1716 | else { |
1717 | 1717 | struct nlattr *rt = attrs[XFRMA_SEC_CTX]; |
1718 | 1718 | struct xfrm_sec_ctx *ctx; |
... | ... | @@ -1729,7 +1729,7 @@ |
1729 | 1729 | if (err) |
1730 | 1730 | return err; |
1731 | 1731 | } |
1732 | - xp = xfrm_policy_bysel_ctx(net, type, p->dir, &p->sel, ctx, 0, &err); | |
1732 | + xp = xfrm_policy_bysel_ctx(net, DUMMY_MARK, type, p->dir, &p->sel, ctx, 0, &err); | |
1733 | 1733 | security_xfrm_policy_free(ctx); |
1734 | 1734 | } |
1735 | 1735 | if (xp == NULL) |