Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 121946
b: refs/heads/master
c: 47a1a1d
h: refs/heads/master
v: v3
  • Loading branch information
Patrick McHardy authored and David S. Miller committed Nov 20, 2008
1 parent e145ad6 commit d16d08b
Show file tree
Hide file tree
Showing 8 changed files with 13 additions and 19 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: b94c8afcba3ae6584653b98e315446ea83be6ea5
refs/heads/master: 47a1a1d4be2910b13a8e90f75c17e253c39531ff
3 changes: 2 additions & 1 deletion trunk/net/sched/cls_api.c
Original file line number Diff line number Diff line change
Expand Up @@ -531,7 +531,8 @@ void tcf_exts_change(struct tcf_proto *tp, struct tcf_exts *dst,
if (src->action) {
struct tc_action *act;
tcf_tree_lock(tp);
act = xchg(&dst->action, src->action);
act = dst->action;
dst->action = src->action;
tcf_tree_unlock(tp);
if (act)
tcf_action_destroy(act, TCA_ACT_UNBIND);
Expand Down
2 changes: 1 addition & 1 deletion trunk/net/sched/cls_basic.c
Original file line number Diff line number Diff line change
Expand Up @@ -102,7 +102,7 @@ static inline void basic_delete_filter(struct tcf_proto *tp,

static void basic_destroy(struct tcf_proto *tp)
{
struct basic_head *head = (struct basic_head *) xchg(&tp->root, NULL);
struct basic_head *head = tp->root;
struct basic_filter *f, *n;

list_for_each_entry_safe(f, n, &head->flist, link) {
Expand Down
4 changes: 1 addition & 3 deletions trunk/net/sched/cls_cgroup.c
Original file line number Diff line number Diff line change
Expand Up @@ -201,9 +201,7 @@ static int cls_cgroup_change(struct tcf_proto *tp, unsigned long base,

static void cls_cgroup_destroy(struct tcf_proto *tp)
{
struct cls_cgroup_head *head;

head = (struct cls_cgroup_head *)xchg(&tp->root, NULL);
struct cls_cgroup_head *head = tp->root;

if (head) {
tcf_exts_destroy(tp, &head->exts);
Expand Down
2 changes: 1 addition & 1 deletion trunk/net/sched/cls_fw.c
Original file line number Diff line number Diff line change
Expand Up @@ -148,7 +148,7 @@ fw_delete_filter(struct tcf_proto *tp, struct fw_filter *f)

static void fw_destroy(struct tcf_proto *tp)
{
struct fw_head *head = (struct fw_head*)xchg(&tp->root, NULL);
struct fw_head *head = tp->root;
struct fw_filter *f;
int h;

Expand Down
2 changes: 1 addition & 1 deletion trunk/net/sched/cls_route.c
Original file line number Diff line number Diff line change
Expand Up @@ -260,7 +260,7 @@ route4_delete_filter(struct tcf_proto *tp, struct route4_filter *f)

static void route4_destroy(struct tcf_proto *tp)
{
struct route4_head *head = xchg(&tp->root, NULL);
struct route4_head *head = tp->root;
int h1, h2;

if (head == NULL)
Expand Down
6 changes: 0 additions & 6 deletions trunk/net/sched/cls_tcindex.c
Original file line number Diff line number Diff line change
Expand Up @@ -13,12 +13,6 @@
#include <net/netlink.h>
#include <net/pkt_cls.h>


/*
* Not quite sure if we need all the xchgs Alexey uses when accessing things.
* Can always add them later ... :)
*/

/*
* Passing parameters to the root seems to be done more awkwardly than really
* necessary. At least, u32 doesn't seem to use such dirty hacks. To be
Expand Down
11 changes: 6 additions & 5 deletions trunk/net/sched/cls_u32.c
Original file line number Diff line number Diff line change
Expand Up @@ -387,7 +387,7 @@ static int u32_destroy_hnode(struct tcf_proto *tp, struct tc_u_hnode *ht)
static void u32_destroy(struct tcf_proto *tp)
{
struct tc_u_common *tp_c = tp->data;
struct tc_u_hnode *root_ht = xchg(&tp->root, NULL);
struct tc_u_hnode *root_ht = tp->root;

WARN_ON(root_ht == NULL);

Expand Down Expand Up @@ -479,7 +479,7 @@ static int u32_set_parms(struct tcf_proto *tp, unsigned long base,
err = -EINVAL;
if (tb[TCA_U32_LINK]) {
u32 handle = nla_get_u32(tb[TCA_U32_LINK]);
struct tc_u_hnode *ht_down = NULL;
struct tc_u_hnode *ht_down = NULL, *ht_old;

if (TC_U32_KEY(handle))
goto errout;
Expand All @@ -493,11 +493,12 @@ static int u32_set_parms(struct tcf_proto *tp, unsigned long base,
}

tcf_tree_lock(tp);
ht_down = xchg(&n->ht_down, ht_down);
ht_old = n->ht_down;
n->ht_down = ht_down;
tcf_tree_unlock(tp);

if (ht_down)
ht_down->refcnt--;
if (ht_old)
ht_old->refcnt--;
}
if (tb[TCA_U32_CLASSID]) {
n->res.classid = nla_get_u32(tb[TCA_U32_CLASSID]);
Expand Down

0 comments on commit d16d08b

Please sign in to comment.