diff options
author | Eric Dumazet <edumazet@google.com> | 2014-09-18 08:02:05 -0700 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2014-09-22 14:21:47 -0400 |
commit | 257117862634d89de33fec74858b1a0ba5ab444b (patch) | |
tree | 799321753c9f5ac9358c708bced556df7e309772 /include/net/sch_generic.h | |
parent | 476c18850c6cbaa3f2bb661ae9710645081563b9 (diff) | |
download | op-kernel-dev-257117862634d89de33fec74858b1a0ba5ab444b.zip op-kernel-dev-257117862634d89de33fec74858b1a0ba5ab444b.tar.gz |
net: sched: shrink struct qdisc_skb_cb to 28 bytes
We cannot make struct qdisc_skb_cb bigger without impacting IPoIB,
or increasing skb->cb[] size.
Commit e0f31d849867 ("flow_keys: Record IP layer protocol in
skb_flow_dissect()") broke IPoIB.
Only current offender is sch_choke, and this one do not need an
absolutely precise flow key.
If we store 17 bytes of flow key, its more than enough. (Its the actual
size of flow_keys if it was a packed structure, but we might add new
fields at the end of it later)
Signed-off-by: Eric Dumazet <edumazet@google.com>
Fixes: e0f31d849867 ("flow_keys: Record IP layer protocol in skb_flow_dissect()")
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include/net/sch_generic.h')
-rw-r--r-- | include/net/sch_generic.h | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/include/net/sch_generic.h b/include/net/sch_generic.h index a3cfb8e..620e086 100644 --- a/include/net/sch_generic.h +++ b/include/net/sch_generic.h @@ -231,7 +231,8 @@ struct qdisc_skb_cb { unsigned int pkt_len; u16 slave_dev_queue_mapping; u16 _pad; - unsigned char data[24]; +#define QDISC_CB_PRIV_LEN 20 + unsigned char data[QDISC_CB_PRIV_LEN]; }; static inline void qdisc_cb_private_validate(const struct sk_buff *skb, int sz) |