[Top] [All Lists]


To: jgarzik@xxxxxxxxxxxxxxxx
Subject: Re: IFF_PROMISC bug?
From: "David S. Miller" <davem@xxxxxxxxxx>
Date: Tue, 12 Feb 2002 20:58:09 -0800 (PST)
Cc: linux-net@xxxxxxxxxxxxxxx, netdev@xxxxxxxxxxx, kuznet@xxxxxxxxxxxxx
In-reply-to: <>
References: <> <> <>
Sender: owner-netdev@xxxxxxxxxxx
   From: Jeff Garzik <jgarzik@xxxxxxxxxxxxxxxx>
   Date: Tue, 12 Feb 2002 23:54:54 -0500
   Since netlink flags and dmesg show promisc mode, and promisc mode works,
   and SIOCGIFLAGS used to return IFF_PROMISC, I made the assumption that
   the problem was elsewhere :)

Can you trace the value of dev->gflags for me through all of these
actions?  It should contain IFF_PROMISC when set by this bit of code:

        if ((flags^dev->gflags)&IFF_ALLMULTI) {
                int inc = (flags&IFF_ALLMULTI) ? +1 : -1;
                dev->gflags ^= IFF_ALLMULTI;
                dev_set_allmulti(dev, inc);

in net/core/dev.c:dev_change_flags(), which is the only way
dev_set_promiscuity and the dmesg log you see can occur.

This code and logic hasn't even changed between 2.2 and 2.4.x
in fact.

I'm stumped :)

<Prev in Thread] Current Thread [Next in Thread>