diff options
author | David S. Miller <davem@davemloft.net> | 2014-05-12 13:19:14 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2014-05-12 13:19:14 -0400 |
commit | 5f013c9bc70214dcacd5fbed5a06c217d6ff9c59 (patch) | |
tree | 34c3a633000e03bca57d0ce55d8759f86edecc03 /net/sched | |
parent | 51ee42efa0829cf9e46f8e1c0ab7a9ab6facf3f2 (diff) | |
parent | 1a466ae96e9f749d02a73315a3e66375e61a61dd (diff) |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
Conflicts:
drivers/net/ethernet/altera/altera_sgdma.c
net/netlink/af_netlink.c
net/sched/cls_api.c
net/sched/sch_api.c
The netlink conflict dealt with moving to netlink_capable() and
netlink_ns_capable() in the 'net' tree vs. supporting 'tc' operations
in non-init namespaces. These were simple transformations from
netlink_capable to netlink_ns_capable.
The Altera driver conflict was simply code removal overlapping some
void pointer cast cleanups in net-next.
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/sched')
-rw-r--r-- | net/sched/act_api.c | 2 | ||||
-rw-r--r-- | net/sched/cls_api.c | 2 | ||||
-rw-r--r-- | net/sched/sch_api.c | 6 | ||||
-rw-r--r-- | net/sched/sch_hhf.c | 11 |
4 files changed, 11 insertions, 10 deletions
diff --git a/net/sched/act_api.c b/net/sched/act_api.c index 8a5ba5add4bc..648778aef1a2 100644 --- a/net/sched/act_api.c +++ b/net/sched/act_api.c | |||
@@ -948,7 +948,7 @@ static int tc_ctl_action(struct sk_buff *skb, struct nlmsghdr *n) | |||
948 | u32 portid = skb ? NETLINK_CB(skb).portid : 0; | 948 | u32 portid = skb ? NETLINK_CB(skb).portid : 0; |
949 | int ret = 0, ovr = 0; | 949 | int ret = 0, ovr = 0; |
950 | 950 | ||
951 | if ((n->nlmsg_type != RTM_GETACTION) && !capable(CAP_NET_ADMIN)) | 951 | if ((n->nlmsg_type != RTM_GETACTION) && !netlink_capable(skb, CAP_NET_ADMIN)) |
952 | return -EPERM; | 952 | return -EPERM; |
953 | 953 | ||
954 | ret = nlmsg_parse(n, sizeof(struct tcamsg), tca, TCA_ACT_MAX, NULL); | 954 | ret = nlmsg_parse(n, sizeof(struct tcamsg), tca, TCA_ACT_MAX, NULL); |
diff --git a/net/sched/cls_api.c b/net/sched/cls_api.c index 1a4a20267787..45527e6b52db 100644 --- a/net/sched/cls_api.c +++ b/net/sched/cls_api.c | |||
@@ -135,7 +135,7 @@ static int tc_ctl_tfilter(struct sk_buff *skb, struct nlmsghdr *n) | |||
135 | int tp_created = 0; | 135 | int tp_created = 0; |
136 | 136 | ||
137 | if ((n->nlmsg_type != RTM_GETTFILTER) && | 137 | if ((n->nlmsg_type != RTM_GETTFILTER) && |
138 | !ns_capable(net->user_ns, CAP_NET_ADMIN)) | 138 | !netlink_ns_capable(skb, net->user_ns, CAP_NET_ADMIN)) |
139 | return -EPERM; | 139 | return -EPERM; |
140 | 140 | ||
141 | replay: | 141 | replay: |
diff --git a/net/sched/sch_api.c b/net/sched/sch_api.c index 86f8edfd6b8a..fd14df56e5ff 100644 --- a/net/sched/sch_api.c +++ b/net/sched/sch_api.c | |||
@@ -1085,7 +1085,7 @@ static int tc_get_qdisc(struct sk_buff *skb, struct nlmsghdr *n) | |||
1085 | int err; | 1085 | int err; |
1086 | 1086 | ||
1087 | if ((n->nlmsg_type != RTM_GETQDISC) && | 1087 | if ((n->nlmsg_type != RTM_GETQDISC) && |
1088 | !ns_capable(net->user_ns, CAP_NET_ADMIN)) | 1088 | !netlink_ns_capable(skb, net->user_ns, CAP_NET_ADMIN)) |
1089 | return -EPERM; | 1089 | return -EPERM; |
1090 | 1090 | ||
1091 | err = nlmsg_parse(n, sizeof(*tcm), tca, TCA_MAX, NULL); | 1091 | err = nlmsg_parse(n, sizeof(*tcm), tca, TCA_MAX, NULL); |
@@ -1152,7 +1152,7 @@ static int tc_modify_qdisc(struct sk_buff *skb, struct nlmsghdr *n) | |||
1152 | struct Qdisc *q, *p; | 1152 | struct Qdisc *q, *p; |
1153 | int err; | 1153 | int err; |
1154 | 1154 | ||
1155 | if (!ns_capable(net->user_ns, CAP_NET_ADMIN)) | 1155 | if (!netlink_ns_capable(skb, net->user_ns, CAP_NET_ADMIN)) |
1156 | return -EPERM; | 1156 | return -EPERM; |
1157 | 1157 | ||
1158 | replay: | 1158 | replay: |
@@ -1492,7 +1492,7 @@ static int tc_ctl_tclass(struct sk_buff *skb, struct nlmsghdr *n) | |||
1492 | int err; | 1492 | int err; |
1493 | 1493 | ||
1494 | if ((n->nlmsg_type != RTM_GETTCLASS) && | 1494 | if ((n->nlmsg_type != RTM_GETTCLASS) && |
1495 | !ns_capable(net->user_ns, CAP_NET_ADMIN)) | 1495 | !netlink_ns_capable(skb, net->user_ns, CAP_NET_ADMIN)) |
1496 | return -EPERM; | 1496 | return -EPERM; |
1497 | 1497 | ||
1498 | err = nlmsg_parse(n, sizeof(*tcm), tca, TCA_MAX, NULL); | 1498 | err = nlmsg_parse(n, sizeof(*tcm), tca, TCA_MAX, NULL); |
diff --git a/net/sched/sch_hhf.c b/net/sched/sch_hhf.c index edee03d922e2..6e957c3b9854 100644 --- a/net/sched/sch_hhf.c +++ b/net/sched/sch_hhf.c | |||
@@ -553,11 +553,6 @@ static int hhf_change(struct Qdisc *sch, struct nlattr *opt) | |||
553 | if (err < 0) | 553 | if (err < 0) |
554 | return err; | 554 | return err; |
555 | 555 | ||
556 | sch_tree_lock(sch); | ||
557 | |||
558 | if (tb[TCA_HHF_BACKLOG_LIMIT]) | ||
559 | sch->limit = nla_get_u32(tb[TCA_HHF_BACKLOG_LIMIT]); | ||
560 | |||
561 | if (tb[TCA_HHF_QUANTUM]) | 556 | if (tb[TCA_HHF_QUANTUM]) |
562 | new_quantum = nla_get_u32(tb[TCA_HHF_QUANTUM]); | 557 | new_quantum = nla_get_u32(tb[TCA_HHF_QUANTUM]); |
563 | 558 | ||
@@ -567,6 +562,12 @@ static int hhf_change(struct Qdisc *sch, struct nlattr *opt) | |||
567 | non_hh_quantum = (u64)new_quantum * new_hhf_non_hh_weight; | 562 | non_hh_quantum = (u64)new_quantum * new_hhf_non_hh_weight; |
568 | if (non_hh_quantum > INT_MAX) | 563 | if (non_hh_quantum > INT_MAX) |
569 | return -EINVAL; | 564 | return -EINVAL; |
565 | |||
566 | sch_tree_lock(sch); | ||
567 | |||
568 | if (tb[TCA_HHF_BACKLOG_LIMIT]) | ||
569 | sch->limit = nla_get_u32(tb[TCA_HHF_BACKLOG_LIMIT]); | ||
570 | |||
570 | q->quantum = new_quantum; | 571 | q->quantum = new_quantum; |
571 | q->hhf_non_hh_weight = new_hhf_non_hh_weight; | 572 | q->hhf_non_hh_weight = new_hhf_non_hh_weight; |
572 | 573 | ||