From mboxrd@z Thu Jan 1 00:00:00 1970 From: Patrick McHardy Subject: Re: Quota on SMP AGAIN Date: Sun, 30 Dec 2007 19:27:15 +0100 Message-ID: <4777E303.7060601@trash.net> References: <4773C13D.1040106@simm.ru> <477515BB.1060303@trash.net> <477520C3.8040501@trash.net> <47752958.3010601@trash.net> <47767699.2020302@trash.net> <4777D734.7090405@trash.net> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Cc: Krzysztof Oledzki , gpf , Netfilter Developer Mailing List , Eric Dumazet To: Jan Engelhardt Return-path: Received: from stinky.trash.net ([213.144.137.162]:53777 "EHLO stinky.trash.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751821AbXL3S1b (ORCPT ); Sun, 30 Dec 2007 13:27:31 -0500 In-Reply-To: Sender: netfilter-devel-owner@vger.kernel.org List-ID: Jan Engelhardt wrote: > Hmph, how are matches supposed to work with it at all? > Assume this: > > static int ...check...(...) > { > struct my_match_info *info = matchinfo; > > info->foobar = kmalloc(...); > } > > ->checkentry() is only called once for each rule, but if each > rule has its own data space (e.g. info->foobar), then that sucks. > ->checkentry is called before the copying, so all CPUs get the same foobar pointer.