summaryrefslogtreecommitdiffstats
path: root/net/sched/sch_drr.c
diff options
context:
space:
mode:
authorEric Dumazet <eric.dumazet@gmail.com>2009-08-16 09:36:49 +0000
committerDavid S. Miller <davem@davemloft.net>2009-08-17 21:33:49 -0700
commitc1a8f1f1c8e01eab5862c8db39b49ace814e6c66 (patch)
tree0679f709f70d9a91850888636a28adb79940c402 /net/sched/sch_drr.c
parentc6ba973b8fa97422aab4204f7d79f1d413cde925 (diff)
downloadlinux-c1a8f1f1c8e01eab5862c8db39b49ace814e6c66.tar.gz
linux-c1a8f1f1c8e01eab5862c8db39b49ace814e6c66.tar.bz2
linux-c1a8f1f1c8e01eab5862c8db39b49ace814e6c66.zip
net: restore gnet_stats_basic to previous definition
In 5e140dfc1fe87eae27846f193086724806b33c7d "net: reorder struct Qdisc for better SMP performance" the definition of struct gnet_stats_basic changed incompatibly, as copies of this struct are shipped to userland via netlink. Restoring old behavior is not welcome, for performance reason. Fix is to use a private structure for kernel, and teach gnet_stats_copy_basic() to convert from kernel to user land, using legacy structure (struct gnet_stats_basic) Based on a report and initial patch from Michael Spang. Reported-by: Michael Spang <mspang@csclub.uwaterloo.ca> Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/sched/sch_drr.c')
-rw-r--r--net/sched/sch_drr.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/net/sched/sch_drr.c b/net/sched/sch_drr.c
index 7597fe146866..12b2fb04b29b 100644
--- a/net/sched/sch_drr.c
+++ b/net/sched/sch_drr.c
@@ -22,7 +22,7 @@ struct drr_class {
unsigned int refcnt;
unsigned int filter_cnt;
- struct gnet_stats_basic bstats;
+ struct gnet_stats_basic_packed bstats;
struct gnet_stats_queue qstats;
struct gnet_stats_rate_est rate_est;
struct list_head alist;