Linux Headquarters
[ Register ]
[ About us ] [ Home Page ]

Advertisement
[ Kernel ] [ Documentation ] [ Links ] [ Books ]

Kernel v2.4.19 /drivers/net/am79c961a.c

Filename:/drivers/net/am79c961a.c
Lines Added:3
Lines Deleted:22
Also changed in: (Previous) 2.4.19-rc5  2.4.19-rc4  2.4.19-rc3  2.4.19-rc2  2.4.19-rc1  2.4.19-pre10 
(Following) 2.4.21-pre3-ac1  2.4.21-pre3-ac2  2.4.21-pre3-ac3  2.4.21-pre3-ac4  2.4.21-pre3-ac5  2.4.21-pre4-ac1 

Location
[  2.4.19
  [  drivers
    [  net
       o  am79c961a.c

Patch

diff -urN linux-2.4.18/drivers/net/am79c961a.c linux-2.4.19/drivers/net/am79c961a.c
--- linux-2.4.18/drivers/net/am79c961a.c   Wed Jun 27 14:12:04 2001
+++ linux-2.4.19/drivers/net/am79c961a.c   Fri Aug  2 17:39:44 2002
@@ -29,6 +29,7 @@
 #include <linux/skbuff.h>
 #include <linux/delay.h>
 #include <linux/init.h>
+#include <linux/crc32.h>
 
 #include <asm/system.h>
 #include <asm/bitops.h>
@@ -308,33 +309,13 @@
    return &priv->stats;
 }
 
-static inline u32 update_crc(u32 crc, u8 byte)
-{
-   int i;
-
-   for (i = 8; i != 0; i--) {
-      byte ^= crc & 1;
-      crc >>= 1;
-
-      if (byte & 1)
-         crc ^= 0xedb88320;
-
-      byte >>= 1;
-   }
-
-   return crc;
-}
-
 static void am79c961_mc_hash(struct dev_mc_list *dmi, unsigned short *hash)
 {
    if (dmi->dmi_addrlen == ETH_ALEN && dmi->dmi_addr[0] & 0x01) {
-      int i, idx, bit;
+      int idx, bit;
       u32 crc;
 
-      crc = 0xffffffff;
-
-      for (i = 0; i < ETH_ALEN; i++)
-         crc = update_crc(crc, dmi->dmi_addr[i]);
+      crc = ether_crc_le(ETH_ALEN, dmi->dmi_addr);
 
       idx = crc >> 30;
       bit = (crc >> 26) & 15;


Comments: webmaster (at) linuxhq.com.
Advertising: banners (at) linuxhq.com.
Compilation ©1998-2008 Linux Headquarters, Inc.