Revision b6c40d68ff6498b7f63ddf97cf0aa818d748dee7 authored by Patrick McHardy on 07 October 2008, 22:26:48 UTC, committed by David S. Miller on 07 October 2008, 22:26:48 UTC
Jesper Dangaard Brouer <hawk@comx.dk> reported a bug when setting a VLAN device down that is in promiscous mode: When the VLAN device is set down, the promiscous count on the real device is decremented by one by vlan_dev_stop(). When removing the promiscous flag from the VLAN device afterwards, the promiscous count on the real device is decremented a second time by the vlan_change_rx_flags() callback. The root cause for this is that the ->change_rx_flags() callback is invoked while the device is down. The synchronization is meant to mirror the behaviour of the ->set_rx_mode callbacks, meaning the ->open function is responsible for doing a full sync on open, the ->close() function is responsible for doing full cleanup on ->stop() and ->change_rx_flags() is meant to do incremental changes while the device is UP. Only invoke ->change_rx_flags() while the device is UP to provide the intended behaviour. Tested-by: Jesper Dangaard Brouer <jdb@comx.dk> Signed-off-by: Patrick McHardy <kaber@trash.net> Signed-off-by: David S. Miller <davem@davemloft.net>
1 parent 859f4c7
File | Mode | Size |
---|---|---|
basic | ||
genksyms | ||
kconfig | ||
ksymoops | ||
mod | ||
package | ||
rt-tester | ||
.gitignore | -rw-r--r-- | 77 bytes |
Kbuild.include | -rw-r--r-- | 9.1 KB |
Lindent | -rwxr-xr-x | 460 bytes |
Makefile | -rw-r--r-- | 893 bytes |
Makefile.build | -rw-r--r-- | 11.1 KB |
Makefile.clean | -rw-r--r-- | 3.2 KB |
Makefile.fwinst | -rw-r--r-- | 2.0 KB |
Makefile.headersinst | -rw-r--r-- | 3.0 KB |
Makefile.host | -rw-r--r-- | 6.5 KB |
Makefile.lib | -rw-r--r-- | 6.8 KB |
Makefile.modinst | -rw-r--r-- | 1.0 KB |
Makefile.modpost | -rw-r--r-- | 5.4 KB |
bin2c.c | -rw-r--r-- | 702 bytes |
binoffset.c | -rw-r--r-- | 3.9 KB |
bloat-o-meter | -rwxr-xr-x | 1.7 KB |
checkincludes.pl | -rwxr-xr-x | 529 bytes |
checkkconfigsymbols.sh | -rwxr-xr-x | 1.8 KB |
checkpatch.pl | -rwxr-xr-x | 61.8 KB |
checkstack.pl | -rwxr-xr-x | 4.9 KB |
checksyscalls.sh | -rwxr-xr-x | 3.1 KB |
checkversion.pl | -rwxr-xr-x | 1.8 KB |
cleanfile | -rwxr-xr-x | 3.4 KB |
cleanpatch | -rwxr-xr-x | 5.0 KB |
conmakehash.c | -rw-r--r-- | 6.0 KB |
decodecode | -rwxr-xr-x | 1.1 KB |
diffconfig | -rwxr-xr-x | 3.6 KB |
export_report.pl | -rw-r--r-- | 4.2 KB |
extract-ikconfig | -rwxr-xr-x | 1.7 KB |
gcc-version.sh | -rw-r--r-- | 818 bytes |
gcc-x86_64-has-stack-protector.sh | -rw-r--r-- | 187 bytes |
gen_initramfs_list.sh | -rw-r--r-- | 6.6 KB |
headers.sh | -rwxr-xr-x | 767 bytes |
headers_check.pl | -rw-r--r-- | 1.2 KB |
headers_install.pl | -rw-r--r-- | 1.4 KB |
kallsyms.c | -rw-r--r-- | 13.2 KB |
kernel-doc | -rwxr-xr-x | 55.9 KB |
makelst | -rwxr-xr-x | 773 bytes |
mkcompile_h | -rwxr-xr-x | 2.5 KB |
mkmakefile | -rw-r--r-- | 1.0 KB |
mksysmap | -rw-r--r-- | 1.3 KB |
mkuboot.sh | -rwxr-xr-x | 379 bytes |
mkversion | -rw-r--r-- | 74 bytes |
namespace.pl | -rwxr-xr-x | 13.1 KB |
patch-kernel | -rwxr-xr-x | 9.8 KB |
pnmtologo.c | -rw-r--r-- | 11.7 KB |
profile2linkerlist.pl | -rw-r--r-- | 378 bytes |
setlocalversion | -rwxr-xr-x | 1.5 KB |
show_delta | -rwxr-xr-x | 3.0 KB |
unifdef.c | -rw-r--r-- | 29.0 KB |
ver_linux | -rwxr-xr-x | 3.1 KB |
![swh spinner](/static/img/swh-spinner.gif)
Computing file changes ...