From 3a8ba3c63c485b747f508f1e04ff1012db18ef36 Mon Sep 17 00:00:00 2001 From: Daniel Borkmann Date: Wed, 18 May 2011 19:06:01 +0200 Subject: [PATCH] Revert "Use atomic_xchg to swap refcnt values." This reverts commit f6314c4b66e81f2b4066146e2f42d7b0e1513bce. --- src/down.sh | 2 +- src/up.sh | 2 +- src/xt_fblock.c | 5 ++++- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/src/down.sh b/src/down.sh index ce2b414..3353b1c 100755 --- a/src/down.sh +++ b/src/down.sh @@ -19,7 +19,7 @@ rmmod fb_eth sleep 1 -rmmod sd_rand +rmmod sd_rr rmmod lana echo "down" diff --git a/src/up.sh b/src/up.sh index bc13566..b6dee33 100755 --- a/src/up.sh +++ b/src/up.sh @@ -5,7 +5,7 @@ insmod lana.ko sleep 5 echo "starting" -insmod sd_rand.ko +insmod sd_rr.ko #echo "1" > /proc/net/lana/sched/sched_cpu insmod fb_eth.ko insmod fb_dummy.ko diff --git a/src/xt_fblock.c b/src/xt_fblock.c index fd2523b..5cd98a1 100644 --- a/src/xt_fblock.c +++ b/src/xt_fblock.c @@ -237,6 +237,7 @@ EXPORT_SYMBOL_GPL(fblock_migrate_p); void fblock_migrate_r(struct fblock *dst, struct fblock *src) { + int ref_old; struct fblock_notifier *not_old; struct fblock_subscrib *sub_old; @@ -260,7 +261,9 @@ void fblock_migrate_r(struct fblock *dst, struct fblock *src) rcu_assign_pointer(dst->others, src->others); rcu_assign_pointer(src->others, sub_old); - atomic_xchg(&dst->refcnt, atomic_xchg(&src->refcnt, &dst->refcnt)); + ref_old = atomic_read(&dst->refcnt); + atomic_set(&dst->refcnt, atomic_read(&src->refcnt)); + atomic_set(&src->refcnt, ref_old); write_unlock(&src->lock); write_unlock(&dst->lock); -- 2.11.4.GIT