Proposed patch for this failure. Tests multicast addresses when being added to adapter for ethernet multicast prefix (0x01005e) and adds token ring mc functional address to rx list if found. No testing by me yet (was hoping Bjorn could help there :)). Signed-off-by: Neil Horman <nhorman@xxxxxxxxxx> lanstreamer.c | 17 +++++++++++++++++ 1 files changed, 17 insertions(+) --- linux-2.6-latest-lanstreamer/drivers/net/tokenring/lanstreamer.c.old 2005-01-24 11:08:43.193778616 -0500 +++ linux-2.6-latest-lanstreamer/drivers/net/tokenring/lanstreamer.c 2005-01-24 11:14:32.100736696 -0500 @@ -68,6 +68,9 @@ * 09/27/02 - New PCI interface + bug fix. - <yoder1@xxxxxxxxxx> * 11/13/02 - Removed free_irq calls which could cause a hang, added * netif_carrier_{on|off} - <yoder1@xxxxxxxxxx> + * 01/24/05 - Added code to set_multicast_list method to add mc functional + * addr to adapter rx list if we add any ethernet multicast + * addresses - <nhorman@xxxxxxxxxx> * * To Do: * @@ -1316,6 +1319,20 @@ for (i=0,dmi=dev->mc_list;i < dev->mc_count; i++,dmi = dmi->next) { + /* + *if any of the addresses in the mc list + *are ethernet multicast addresses + *be sure to include the token ring + *functional address in the adapters + *functional address mask + */ + if((dmi->dmi_addr[0] == 0x01) && + (dmi->dmi_addr[1] == 0x00) && + (dmi->dmi_addr[2] == 0x5E)) { + dev_mc_address[0] |= 0xC0; + dev_mc_address[3] |= 0x04; + } + dev_mc_address[0] |= dmi->dmi_addr[2] ; dev_mc_address[1] |= dmi->dmi_addr[3] ; dev_mc_address[2] |= dmi->dmi_addr[4] ; -- /*************************************************** *Neil Horman *Software Engineer *Red Hat, Inc. *nhorman@xxxxxxxxxx *gpg keyid: 1024D / 0x92A74FA1 *http://pgp.mit.edu ***************************************************/ - : send the line "unsubscribe linux-net" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html