Messages in this thread | | | Date | Sun, 27 Jun 1999 15:11:39 -0300 | From | Juanjo Ciarlante <> | Subject | Re: [patch] 2.3.8+ UP masq |
| |
On Sun, Jun 27, 1999 at 05:56:02PM +0100, Steve Dodd wrote: > On Sun, Jun 27, 1999 at 01:33:28PM -0300, Juanjo Ciarlante wrote: > > > The change that triggered these probs is that > > spin_lock_irq(&lock) on UP mapped > > previously --> cli(); > > now --> local_irq_disable();spin_lock(&lock); > > +--> (void)(&lock); > > ie. "lock" must exist. > > Yup, s'what I said (though I wasn't necessarily clear enough) :) > > > And YES, in UP that cli() (or equiv.) MUST exist (masq_port variable IS > > changed from U-space [ip_masq_user module] and obviously from kernel [bh]). > > How come? As I understand it, > the masq stuff is called by the networking stuff > the networking stuff is called from the bottom half > the bottom halves are run in sched.c, out of irq context (obviously) Yup: thats kernel path [I used irq locks instead of bh locks because of the tiny area they protect, given that the actual code that blocks IRQ was faster (this assumption may be wrong)]
The lock is _actually_ needed because of ip_masq_user module, that allows creation of masq tunnels from U-space (so it must protect itself from bh-firing in this region).
Juanjo
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.tux.org/lkml/
| |