diff options
author | Robert Love <robert.w.love@intel.com> | 2009-05-02 13:48:32 -0700 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2009-05-02 13:48:32 -0700 |
commit | d0ab8ff81bf1b01bae7d6b92ca067badbbb02cc9 (patch) | |
tree | 872f9521e3f51018be9afd9492e7509e42478621 | |
parent | 1824a9897473fda5e5e42f991ddc674c175e3a09 (diff) | |
download | op-kernel-dev-d0ab8ff81bf1b01bae7d6b92ca067badbbb02cc9.zip op-kernel-dev-d0ab8ff81bf1b01bae7d6b92ca067badbbb02cc9.tar.gz |
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>
-rw-r--r-- | net/sched/cls_api.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/net/sched/cls_api.c b/net/sched/cls_api.c index 173fcc4..0759f32 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; |