From: [EMAIL PROTECTED] Date: Mon, 04 Feb 2008 23:45:21 -0800 > From: "Nathaniel Filardo" <[EMAIL PROTECTED]> > > Taken from http://bugzilla.kernel.org/show_bug.cgi?id=9806 > > The TUN/TAP driver only permits one-way transitions of IFF_NO_PI or > IFF_ONE_QUEUE during the lifetime of a tap/tun interface. Note that > tun_set_iff contains > > 541 if (ifr->ifr_flags & IFF_NO_PI) > 542 tun->flags |= TUN_NO_PI; > 543 > 544 if (ifr->ifr_flags & IFF_ONE_QUEUE) > 545 tun->flags |= TUN_ONE_QUEUE; > > This is easily fixed by adding else branches which clear these bits. > > Steps to reproduce: > > This is easily reproduced by setting an interface persistant using tunctl then > attempting to open it as IFF_TAP or IFF_TUN, without asserting the IFF_NO_PI > flag. The ioctl() will succeed and the ifr.flags word is not modified, but > the > interface remains in IFF_NO_PI mode (as it was set by tunctl). > > Cc: "David S. Miller" <[EMAIL PROTECTED]> > Cc: Jeff Garzik <[EMAIL PROTECTED]> > Acked-by: Maxim Krasnyansky <[EMAIL PROTECTED]> > Signed-off-by: Andrew Morton <[EMAIL PROTECTED]>
Applied. -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html