diff options
| author | Robert Love <[email protected]> | 2009-05-02 20:48:32 +0000 |
|---|---|---|
| committer | David S. Miller <[email protected]> | 2009-05-02 20:48:32 +0000 |
| commit | d0ab8ff81bf1b01bae7d6b92ca067badbbb02cc9 (patch) | |
| tree | 872f9521e3f51018be9afd9492e7509e42478621 /net/sched/cls_api.c | |
| parent | virtio_net: Fix function name typo (diff) | |
| download | kernel-d0ab8ff81bf1b01bae7d6b92ca067badbbb02cc9.tar.gz kernel-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 <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
Diffstat (limited to 'net/sched/cls_api.c')
| -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 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; |
