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
Attachments
- (unnamed) [application/pgp-signature] 189 bytes
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