All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jeff Garzik <jgarzik@pobox.com>
To: Joseph Fannin <jhf@rivenstone.net>
Cc: netdev@oss.sgi.com
Subject: Re: 2.6 sis900 (and tlan?) multicast bug
Date: Mon, 26 Jan 2004 17:22:41 -0500	[thread overview]
Message-ID: <40159331.80808@pobox.com> (raw)
In-Reply-To: <20040126204215.GA25578@rivenstone.net>

Joseph Fannin wrote:
> "Craig A. Huegen" <huegen@pentics.com> wrote:
> 
>>In the same vein as:
>>http://seclists.org/lists/linux-kernel/2003/Oct/5794.html
> 
> 
>>...there is a bug in the SiS900 driver in 2.6.1 which prevents multicast
>>MAC filtering from working properly.  This breaks IPv6.
> 
> 
>     I'm seeing this problem too.  My sis900 interface can't get an
> IPv6 address unless promiscious or allmulti mode is set, since it
> doesn't get responses on ip6-allrouters.
> 
>     Please note that I am not subscribed to netdev, so a CC on any
> responses would be appreciated.
> 
> 
>>Patch attached (same one as from the 2.4 post from Oct 28) that made
>>IPv6 work for me again.
> 
> 
>     From the original post, referring to the change this reverts:
> 
> 
>>>This will not work for bit_nr larger than 16 and hence the failure.
>>>Reverting to use set_bit causes multicast to be handled properly.
> 
> 
>>--- linux/drivers/net/sis900.c.old	2004-01-17 03:56:53.893211412 -0600
>>+++ linux/drivers/net/sis900.c	2004-01-17 03:57:02.785567615 -0600
>>@@ -2091,9 +2091,8 @@
>> 		rx_mode = RFAAB;
>> 		for (i = 0, mclist = net_dev->mc_list; mclist && i < net_dev->mc_count;
>> 		     i++, mclist = mclist->next) {
>>-			unsigned int bit_nr =
>>-				sis900_mcast_bitnr(mclist->dmi_addr, revision);
>>-			mc_filter[bit_nr >> 4] |= (1 << bit_nr);
>>+			set_bit(sis900_mcast_bitnr(mclist->dmi_addr, revision),
>>+				mc_filter);
>> 		}
>> 	}
> 
> 
>     This fix didn't go into 2.4 either, so presumably something is wrong
> with it (perhaps we're moving away from set_bit)?  I am over my head
> here really, but I don't want to just set allmulti mode and forget
> about this bug.


Correct, set_bit should only occur on unsigned long variables.  So, the 
code needs to manually set that bit.

	Jeff

  reply	other threads:[~2004-01-26 22:22 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-01-26 20:42 2.6 sis900 (and tlan?) multicast bug Joseph Fannin
2004-01-26 22:22 ` Jeff Garzik [this message]
     [not found]   ` <20040212045321.GA15355@rivenstone.net>
2004-02-12  5:23     ` Jeff Garzik
2004-02-19  0:13     ` Jeff Garzik

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=40159331.80808@pobox.com \
    --to=jgarzik@pobox.com \
    --cc=jhf@rivenstone.net \
    --cc=netdev@oss.sgi.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.