Gitweb:     
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=0b45d18643f0a3eab09616b8a1283b013a7417ea
Commit:     0b45d18643f0a3eab09616b8a1283b013a7417ea
Parent:     44a1d2e5c5c935fff3a093a1bcede32912c76421
Author:     Komuro <[EMAIL PROTECTED]>
AuthorDate: Sun May 6 09:16:53 2007 +0900
Committer:  Jeff Garzik <[EMAIL PROTECTED]>
CommitDate: Tue May 8 01:30:21 2007 -0400

    PCMCIA-NETDEV : xirc2ps_cs: bugfix of multicast code
    
    Dear Jeff
    
    Subject: [PATCH] xirc2ps_cs: bugfix of multicast code
    
    Signed-off-by: Komuro <[EMAIL PROTECTED]>
    Signed-off-by: Jeff Garzik <[EMAIL PROTECTED]>
---
 drivers/net/pcmcia/xirc2ps_cs.c |   14 ++++++++------
 1 files changed, 8 insertions(+), 6 deletions(-)

diff --git a/drivers/net/pcmcia/xirc2ps_cs.c b/drivers/net/pcmcia/xirc2ps_cs.c
index 809ec44..258d6f3 100644
--- a/drivers/net/pcmcia/xirc2ps_cs.c
+++ b/drivers/net/pcmcia/xirc2ps_cs.c
@@ -1420,7 +1420,7 @@ set_addresses(struct net_device *dev)
     kio_addr_t ioaddr = dev->base_addr;
     local_info_t *lp = netdev_priv(dev);
     struct dev_mc_list *dmi = dev->mc_list;
-    char *addr;
+    unsigned char *addr;
     int i,j,k,n;
 
     SelectPage(k=0x50);
@@ -1429,6 +1429,9 @@ set_addresses(struct net_device *dev)
            if (++n > 9)
                break;
            i = 0;
+           if (n > 1 && n <= dev->mc_count && dmi) {
+                dmi = dmi->next;
+           }
        }
        if (j > 15) {
            j = 8;
@@ -1436,10 +1439,9 @@ set_addresses(struct net_device *dev)
            SelectPage(k);
        }
 
-       if (n && n <= dev->mc_count && dmi) {
+       if (n && n <= dev->mc_count && dmi)
            addr = dmi->dmi_addr;
-           dmi = dmi->next;
-       } else
+       else
            addr = dev->dev_addr;
 
        if (lp->mohawk)
@@ -1465,10 +1467,10 @@ set_multicast_list(struct net_device *dev)
     if (dev->flags & IFF_PROMISC) { /* snoop */
        PutByte(XIRCREG42_SWC1, 0x06); /* set MPE and PME */
     } else if (dev->mc_count > 9 || (dev->flags & IFF_ALLMULTI)) {
-       PutByte(XIRCREG42_SWC1, 0x06); /* set MPE */
+       PutByte(XIRCREG42_SWC1, 0x02); /* set MPE */
     } else if (dev->mc_count) {
        /* the chip can filter 9 addresses perfectly */
-       PutByte(XIRCREG42_SWC1, 0x00);
+       PutByte(XIRCREG42_SWC1, 0x01);
        SelectPage(0x40);
        PutByte(XIRCREG40_CMD0, Offline);
        set_addresses(dev);
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to