linux/drivers
Bruce Robson 46fa06170d [netdrvr] eexpress: IPv6 fails - multicast problems
Taken from http://bugzilla.kernel.org/show_bug.cgi?id=10577

I was unable to access a computer containing an Intel EtherExpress 16 network
card using IPv6.

I traced this to failure of neighbour discovery.  When I used an "ip -6 neigh
add" command, on the computer attempting access, to insert a binding between
the IPv6 address of the computer with the Intel EtherExpress 16 network card
and the card's ethernet address, I was able to access that computer using
IPv6.

Neighbour discovery requires working multicast.  The driver sources file
eexpress.c contains an approximately 30 line function eexp_setup_filter used
when loading multicast addresses.

I found 3 problems in this function

1) It wrote the number of multicast addresses to the card instead of the
    number of bytes in the multicast addresses.

2) When loading multiple multicast addresses it loaded the first one
    provided multiple times instead of loading each one once.

3) The setting of pointer 'data' from 'dmi->dmi_addr' occured before the
    test for the error situation of 'dmi' being NULL.

Correcting these problems allows the computer with the Intel EtherExpress 16
network card to found by IPv6 neighbour discovery.

p.s. There is some information on the Intel EtherExpress 16 at
http://www.intel.com/support/etherexpress/vintage/sb/cs-013500.htm
Datasheet for the Intel 82586 ethernet controller used by the card
http://www.datasheetcatalog.com/datasheets_pdf/8/2/5/8/82586.shtml

Signed-off-by: Bruce Robson <bns_robson@hotmail.com>
Cc: Jeff Garzik <jeff@garzik.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
2008-05-06 12:22:34 -04:00
..
accessibility Basic braille screen reader support 2008-04-30 08:29:52 -07:00
acorn/char
acpi Fix ACPI vs proc_create_data() mismerge 2008-04-30 16:26:27 -07:00
amba
ata ahci: SB600 ahci can't do MSI, blacklist that capability 2008-04-29 17:42:04 -04:00
atm Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6 2008-04-30 08:45:48 -07:00
auxdisplay
base driver core: remove no longer used "struct class_device" 2008-04-30 16:52:49 -07:00
block brd: modify ramdisk device to be able to manage partitions 2008-04-30 08:29:53 -07:00
bluetooth hci_usb.h: fix hard-to-trigger race 2008-05-02 16:45:10 -07:00
cdrom Merge branch 'for-linus' of git://git.kernel.dk/linux-2.6-block 2008-04-29 08:18:03 -07:00
char toshiba: use ioremap_cached 2008-04-30 23:15:34 +02:00
clocksource
connector
cpufreq [CPUFREQ] state info wrong after resume 2008-04-28 16:27:08 -04:00
cpuidle
crypto
dca
dio
dma
edac pasemi_edac needs to include linux/edac.h 2008-04-29 19:06:57 -07:00
eisa
firewire
firmware edd: add default mode CONFIG_EDD_OFF=n, override with edd={on,off} 2008-04-29 08:06:23 -07:00
gpio drivers: replace remaining __FUNCTION__ occurrences 2008-04-30 08:29:53 -07:00
hid hid-core: use get_unaligned_* helpers 2008-04-29 08:06:27 -07:00
hwmon drivers: replace remaining __FUNCTION__ occurrences 2008-04-30 08:29:53 -07:00
i2c i2c: Convert most new-style drivers to use module aliasing 2008-04-29 23:11:40 +02:00
ide alim15x3: disable init_hwif_ali15x3 for PowerPC 2008-04-29 22:57:38 +02:00
ieee1394 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394-2.6 2008-04-25 12:24:06 -07:00
infiniband RDMA/nes: Formatting cleanup 2008-04-29 13:46:54 -07:00
input tty: The big operations rework 2008-04-30 08:29:47 -07:00
isdn tty: The big operations rework 2008-04-30 08:29:47 -07:00
leds Remove duplicated unlikely() in IS_ERR() 2008-04-29 08:06:25 -07:00
lguest
macintosh [POWERPC] windfarm: Add PowerMac 12,1 support 2008-04-29 15:57:35 +10:00
mca proc: remove proc_root from drivers 2008-04-29 08:06:18 -07:00
md md: support blocking writes to an array on device failure 2008-04-30 08:29:33 -07:00
media fix drivers/media/common/tuners/ build bug 2008-04-30 08:36:04 -07:00
memstick
message Remove duplicated unlikely() in IS_ERR() 2008-04-29 08:06:25 -07:00
mfd drivers: replace remaining __FUNCTION__ occurrences 2008-04-30 08:29:53 -07:00
misc Merge branch 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-acpi-2.6 2008-04-30 11:52:52 -07:00
mmc Merge master.kernel.org:/home/rmk/linux-2.6-arm 2008-04-29 15:18:06 -07:00
mtd drivers: fix integer as NULL pointer warnings 2008-04-28 17:31:13 -07:00
net [netdrvr] eexpress: IPv6 fails - multicast problems 2008-05-06 12:22:34 -04:00
nubus proc: convert /proc/bus/nubus to seq_file interface 2008-04-29 08:06:19 -07:00
of
oprofile oprofile: change cpu_buffer from array to per_cpu variable 2008-04-28 08:58:31 -07:00
parisc parisc: use non-racy method for proc entries creation 2008-04-29 08:06:22 -07:00
parport debugobjects: add timer specific object debugging code 2008-04-30 08:29:53 -07:00
pci Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci-2.6 2008-04-29 10:17:59 -07:00
pcmcia pcmcia: remove pccard_sysfs_interface warnings 2008-04-30 16:52:48 -07:00
pnp Merge branch 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-acpi-2.6 2008-04-30 11:52:52 -07:00
power x86: olpc: add One Laptop Per Child architecture support 2008-04-29 08:06:07 -07:00
ps3
rapidio [RAPIDIO] Auto-probe the RapidIO system size 2008-04-29 19:40:28 +10:00
rtc Merge branch 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-acpi-2.6 2008-04-30 11:52:52 -07:00
s390 Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6 2008-04-30 08:45:48 -07:00
sbus drivers: replace remaining __FUNCTION__ occurrences 2008-04-30 08:29:53 -07:00
scsi Merge branch 'for-linus' of git://git.kernel.dk/linux-2.6-block 2008-04-29 08:18:03 -07:00
serial Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc 2008-04-30 08:37:40 -07:00
sh
sn
spi atmel_spi: clean up baud rate divisor calculation 2008-04-30 08:29:31 -07:00
ssb
tc
telephony
thermal thermal: re-name thermal.c to thermal_sys.c 2008-04-29 03:12:17 -04:00
uio
usb tty: The big operations rework 2008-04-30 08:29:47 -07:00
video pxafb: preliminary smart panel interface support (update) 2008-04-30 08:29:32 -07:00
virtio
w1 drivers: replace remaining __FUNCTION__ occurrences 2008-04-30 08:29:53 -07:00
watchdog
xen
zorro zorro: use non-racy method for proc entries creation 2008-04-29 08:06:21 -07:00
Kconfig Basic braille screen reader support 2008-04-30 08:29:52 -07:00
Makefile Basic braille screen reader support 2008-04-30 08:29:52 -07:00