diff options
Diffstat (limited to 'net/xfrm/xfrm_user.c')
| -rw-r--r-- | net/xfrm/xfrm_user.c | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/net/xfrm/xfrm_user.c b/net/xfrm/xfrm_user.c index 1ada6186933c..d5a712976004 100644 --- a/net/xfrm/xfrm_user.c +++ b/net/xfrm/xfrm_user.c | |||
| @@ -781,7 +781,8 @@ static inline size_t xfrm_spdinfo_msgsize(void) | |||
| 781 | + nla_total_size(sizeof(struct xfrmu_spdhinfo)); | 781 | + nla_total_size(sizeof(struct xfrmu_spdhinfo)); |
| 782 | } | 782 | } |
| 783 | 783 | ||
| 784 | static int build_spdinfo(struct sk_buff *skb, u32 pid, u32 seq, u32 flags) | 784 | static int build_spdinfo(struct sk_buff *skb, struct net *net, |
| 785 | u32 pid, u32 seq, u32 flags) | ||
| 785 | { | 786 | { |
| 786 | struct xfrmk_spdinfo si; | 787 | struct xfrmk_spdinfo si; |
| 787 | struct xfrmu_spdinfo spc; | 788 | struct xfrmu_spdinfo spc; |
| @@ -795,7 +796,7 @@ static int build_spdinfo(struct sk_buff *skb, u32 pid, u32 seq, u32 flags) | |||
| 795 | 796 | ||
| 796 | f = nlmsg_data(nlh); | 797 | f = nlmsg_data(nlh); |
| 797 | *f = flags; | 798 | *f = flags; |
| 798 | xfrm_spd_getinfo(&si); | 799 | xfrm_spd_getinfo(net, &si); |
| 799 | spc.incnt = si.incnt; | 800 | spc.incnt = si.incnt; |
| 800 | spc.outcnt = si.outcnt; | 801 | spc.outcnt = si.outcnt; |
| 801 | spc.fwdcnt = si.fwdcnt; | 802 | spc.fwdcnt = si.fwdcnt; |
| @@ -828,7 +829,7 @@ static int xfrm_get_spdinfo(struct sk_buff *skb, struct nlmsghdr *nlh, | |||
| 828 | if (r_skb == NULL) | 829 | if (r_skb == NULL) |
| 829 | return -ENOMEM; | 830 | return -ENOMEM; |
| 830 | 831 | ||
| 831 | if (build_spdinfo(r_skb, spid, seq, *flags) < 0) | 832 | if (build_spdinfo(r_skb, net, spid, seq, *flags) < 0) |
| 832 | BUG(); | 833 | BUG(); |
| 833 | 834 | ||
| 834 | return nlmsg_unicast(net->xfrm.nlsk, r_skb, spid); | 835 | return nlmsg_unicast(net->xfrm.nlsk, r_skb, spid); |
| @@ -841,7 +842,8 @@ static inline size_t xfrm_sadinfo_msgsize(void) | |||
| 841 | + nla_total_size(4); /* XFRMA_SAD_CNT */ | 842 | + nla_total_size(4); /* XFRMA_SAD_CNT */ |
| 842 | } | 843 | } |
| 843 | 844 | ||
| 844 | static int build_sadinfo(struct sk_buff *skb, u32 pid, u32 seq, u32 flags) | 845 | static int build_sadinfo(struct sk_buff *skb, struct net *net, |
| 846 | u32 pid, u32 seq, u32 flags) | ||
| 845 | { | 847 | { |
| 846 | struct xfrmk_sadinfo si; | 848 | struct xfrmk_sadinfo si; |
| 847 | struct xfrmu_sadhinfo sh; | 849 | struct xfrmu_sadhinfo sh; |
| @@ -854,7 +856,7 @@ static int build_sadinfo(struct sk_buff *skb, u32 pid, u32 seq, u32 flags) | |||
| 854 | 856 | ||
| 855 | f = nlmsg_data(nlh); | 857 | f = nlmsg_data(nlh); |
| 856 | *f = flags; | 858 | *f = flags; |
| 857 | xfrm_sad_getinfo(&si); | 859 | xfrm_sad_getinfo(net, &si); |
| 858 | 860 | ||
| 859 | sh.sadhmcnt = si.sadhmcnt; | 861 | sh.sadhmcnt = si.sadhmcnt; |
| 860 | sh.sadhcnt = si.sadhcnt; | 862 | sh.sadhcnt = si.sadhcnt; |
| @@ -882,7 +884,7 @@ static int xfrm_get_sadinfo(struct sk_buff *skb, struct nlmsghdr *nlh, | |||
| 882 | if (r_skb == NULL) | 884 | if (r_skb == NULL) |
| 883 | return -ENOMEM; | 885 | return -ENOMEM; |
| 884 | 886 | ||
| 885 | if (build_sadinfo(r_skb, spid, seq, *flags) < 0) | 887 | if (build_sadinfo(r_skb, net, spid, seq, *flags) < 0) |
| 886 | BUG(); | 888 | BUG(); |
| 887 | 889 | ||
| 888 | return nlmsg_unicast(net->xfrm.nlsk, r_skb, spid); | 890 | return nlmsg_unicast(net->xfrm.nlsk, r_skb, spid); |
