summaryrefslogtreecommitdiffstats
path: root/net/sched/cls_api.c
diff options
context:
space:
mode:
authorRobert Love <robert.w.love@intel.com>2009-05-02 22:48:32 +0200
committerDavid S. Miller <davem@davemloft.net>2009-05-02 22:48:32 +0200
commitd0ab8ff81bf1b01bae7d6b92ca067badbbb02cc9 (patch)
tree872f9521e3f51018be9afd9492e7509e42478621 /net/sched/cls_api.c
parentvirtio_net: Fix function name typo (diff)
downloadlinux-d0ab8ff81bf1b01bae7d6b92ca067badbbb02cc9.tar.xz
linux-d0ab8ff81bf1b01bae7d6b92ca067badbbb02cc9.zip
net: Only store high 16 bits of kernel generated filter priorities
The kernel should only be using the high 16 bits of a kernel generated priority. Filter priorities in all other cases only use the upper 16 bits of the u32 'prio' field of 'struct tcf_proto', but when the kernel generates the priority of a filter is saves all 32 bits which can result in incorrect lookup failures when a filter needs to be deleted or modified. Signed-off-by: Robert Love <robert.w.love@intel.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/sched/cls_api.c')
-rw-r--r--net/sched/cls_api.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/net/sched/cls_api.c b/net/sched/cls_api.c
index 173fcc4b050d..0759f32e9dca 100644
--- a/net/sched/cls_api.c
+++ b/net/sched/cls_api.c
@@ -254,7 +254,7 @@ replay:
}
tp->ops = tp_ops;
tp->protocol = protocol;
- tp->prio = nprio ? : tcf_auto_prio(*back);
+ tp->prio = nprio ? : TC_H_MAJ(tcf_auto_prio(*back));
tp->q = q;
tp->classify = tp_ops->classify;
tp->classid = parent;