Thread (8 messages) 8 messages, 3 authors, 2005-05-30

Re: [PATCH 2.6] fix deadlock with ip_queue and tcp local input path

From: Harald Welte <hidden>
Date: 2005-05-27 07:37:58
Also in: netfilter-devel

On Fri, May 27, 2005 at 07:38:57AM +1000, Herbert Xu wrote:
Harald Welte [off-list ref] wrote:
quoted
The patch below adds an additional queue for ip_queue verdicts.  They
come up from userspace, are appended to a queue which is then processed
by a tasklet.  The tasklet itself runs in softirq context, so when timer
hardirq leaves, no tcp_delack_timer() will be executed until
nf_reinject() has finished.
This seems to be overly complicated if all you want is to do this in
softirq context.  What's wrong with simply alling local_bh_disable?
Patrick just pointed this out, too.  I wasn't sure whether
local_bh_disable() would make the context really look like softirq in
every way.  If yes, it would certainly solve the problem, because
in_interrupt() at hardirq-exit would be true and therefore the timer
softirq not scheduled immediately.

I'll have Astaro test this variant.

-- 
- Harald Welte [off-list ref]                 http://netfilter.org/
============================================================================
  "Fragmentation is like classful addressing -- an interesting early
   architectural error that shows how much experimentation was going
   on while IP was being designed."                    -- Paul Vixie

Attachments

  • (unnamed) [application/pgp-signature] 189 bytes
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help