summaryrefslogtreecommitdiffstats
path: root/net/sched/sch_netem.c
diff options
context:
space:
mode:
authorDavid S. Miller2011-12-30 19:04:14 +0100
committerDavid S. Miller2011-12-30 19:04:14 +0100
commit7f8e3234c5f7fbdb06be050c8a1907e9c36d7c61 (patch)
treed6e9edb2087fa4a97b2cc3d585a0189672a14cf4 /net/sched/sch_netem.c
parentipv6: Fix neigh lookup using NULL device. (diff)
parentMerge branch 'iommu/fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/j... (diff)
downloadkernel-qcow2-linux-7f8e3234c5f7fbdb06be050c8a1907e9c36d7c61.tar.gz
kernel-qcow2-linux-7f8e3234c5f7fbdb06be050c8a1907e9c36d7c61.tar.xz
kernel-qcow2-linux-7f8e3234c5f7fbdb06be050c8a1907e9c36d7c61.zip
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
Diffstat (limited to 'net/sched/sch_netem.c')
-rw-r--r--net/sched/sch_netem.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/net/sched/sch_netem.c b/net/sched/sch_netem.c
index ffcaa5975947..a92c1b3dab83 100644
--- a/net/sched/sch_netem.c
+++ b/net/sched/sch_netem.c
@@ -532,7 +532,7 @@ static int get_dist_table(struct Qdisc *sch, const struct nlattr *attr)
return -EINVAL;
s = sizeof(struct disttable) + n * sizeof(s16);
- d = kmalloc(s, GFP_KERNEL);
+ d = kmalloc(s, GFP_KERNEL | __GFP_NOWARN);
if (!d)
d = vmalloc(s);
if (!d)
@@ -545,9 +545,10 @@ static int get_dist_table(struct Qdisc *sch, const struct nlattr *attr)
root_lock = qdisc_root_sleeping_lock(sch);
spin_lock_bh(root_lock);
- dist_free(q->delay_dist);
- q->delay_dist = d;
+ swap(q->delay_dist, d);
spin_unlock_bh(root_lock);
+
+ dist_free(d);
return 0;
}