netdev.vger.kernel.org archive mirror
 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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).