Re: [patch] 2.3.8+ UP masq

Juanjo Ciarlante (irriga@impsat1.com.ar)
Sun, 27 Jun 1999 15:11:39 -0300


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/