[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <45FFF675.8040501@trash.net>
Date: Tue, 20 Mar 2007 15:57:57 +0100
From: Patrick McHardy <kaber@...sh.net>
To: Chris Madden <chris@...lexsecurity.com>
CC: hadi@...erus.ca, netdev@...r.kernel.org
Subject: Re: Oops in filter add
Patrick McHardy wrote:
> Chris Madden wrote:
>
>>Ok, I replaced ingress_lock with queue_lock in ing_filter and it died in
>>the same place. Trace below (looks to be substantively the same)...
>>
>>If I am reading tc_ctl_tfilter correctly, we are adding our new
>>tcf_proto to the end of the list, and it is getting used before the
>>change function is getting executed on it. Locking the ingress_lock in
>>qdisc_lock_tree ( in addition to the extant queue_lock )seems to have
>>the same effect; I can get a traceback from that if its useful.
>
>
>
> The problem is that some classifiers (like basic, fw and route)
> implement empty ->init functions, although fw and route properly
> deal with it in their classification functions. The ->init function
> should allocate and initalize tp->root, which basic fails to do.
> If you give me a few hours I'll cook up a patch for this.
Actually its only cls_basic thats broken, in case of route and fw
its intentional for backwards-compatibility.
Can you try this patch please?
View attachment "x" of type "text/plain" (823 bytes)
Powered by blists - more mailing lists