diff options
author | David Howells <dhowells@redhat.com> | 2006-12-05 09:37:56 -0500 |
---|---|---|
committer | David Howells <dhowells@warthog.cambridge.redhat.com> | 2006-12-05 09:37:56 -0500 |
commit | 4c1ac1b49122b805adfa4efc620592f68dccf5db (patch) | |
tree | 87557f4bc2fd4fe65b7570489c2f610c45c0adcd /drivers/net/amd8111e.c | |
parent | c4028958b6ecad064b1a6303a6a5906d4fe48d73 (diff) | |
parent | d916faace3efc0bf19fe9a615a1ab8fa1a24cd93 (diff) |
Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6
Conflicts:
drivers/infiniband/core/iwcm.c
drivers/net/chelsio/cxgb2.c
drivers/net/wireless/bcm43xx/bcm43xx_main.c
drivers/net/wireless/prism54/islpci_eth.c
drivers/usb/core/hub.h
drivers/usb/input/hid-core.c
net/core/netpoll.c
Fix up merge failures with Linus's head and fix new compilation failures.
Signed-Off-By: David Howells <dhowells@redhat.com>
Diffstat (limited to 'drivers/net/amd8111e.c')
-rw-r--r-- | drivers/net/amd8111e.c | 27 |
1 files changed, 1 insertions, 26 deletions
diff --git a/drivers/net/amd8111e.c b/drivers/net/amd8111e.c index ef65e5917c8f..18896f24d407 100644 --- a/drivers/net/amd8111e.c +++ b/drivers/net/amd8111e.c | |||
@@ -1490,32 +1490,7 @@ static void amd8111e_read_regs(struct amd8111e_priv *lp, u32 *buf) | |||
1490 | buf[12] = readl(mmio + STAT0); | 1490 | buf[12] = readl(mmio + STAT0); |
1491 | } | 1491 | } |
1492 | 1492 | ||
1493 | /* | ||
1494 | amd8111e crc generator implementation is different from the kernel | ||
1495 | ether_crc() function. | ||
1496 | */ | ||
1497 | static int amd8111e_ether_crc(int len, char* mac_addr) | ||
1498 | { | ||
1499 | int i,byte; | ||
1500 | unsigned char octet; | ||
1501 | u32 crc= INITCRC; | ||
1502 | |||
1503 | for(byte=0; byte < len; byte++){ | ||
1504 | octet = mac_addr[byte]; | ||
1505 | for( i=0;i < 8; i++){ | ||
1506 | /*If the next bit form the input stream is 1,subtract the divisor (CRC32) from the dividend(crc).*/ | ||
1507 | if( (octet & 0x1) ^ (crc & 0x1) ){ | ||
1508 | crc >>= 1; | ||
1509 | crc ^= CRC32; | ||
1510 | } | ||
1511 | else | ||
1512 | crc >>= 1; | ||
1513 | 1493 | ||
1514 | octet >>= 1; | ||
1515 | } | ||
1516 | } | ||
1517 | return crc; | ||
1518 | } | ||
1519 | /* | 1494 | /* |
1520 | This function sets promiscuos mode, all-multi mode or the multicast address | 1495 | This function sets promiscuos mode, all-multi mode or the multicast address |
1521 | list to the device. | 1496 | list to the device. |
@@ -1556,7 +1531,7 @@ static void amd8111e_set_multicast_list(struct net_device *dev) | |||
1556 | mc_filter[1] = mc_filter[0] = 0; | 1531 | mc_filter[1] = mc_filter[0] = 0; |
1557 | for (i = 0, mc_ptr = dev->mc_list; mc_ptr && i < dev->mc_count; | 1532 | for (i = 0, mc_ptr = dev->mc_list; mc_ptr && i < dev->mc_count; |
1558 | i++, mc_ptr = mc_ptr->next) { | 1533 | i++, mc_ptr = mc_ptr->next) { |
1559 | bit_num = ( amd8111e_ether_crc(ETH_ALEN,mc_ptr->dmi_addr) >> 26 ) & 0x3f; | 1534 | bit_num = (ether_crc_le(ETH_ALEN, mc_ptr->dmi_addr) >> 26) & 0x3f; |
1560 | mc_filter[bit_num >> 5] |= 1 << (bit_num & 31); | 1535 | mc_filter[bit_num >> 5] |= 1 << (bit_num & 31); |
1561 | } | 1536 | } |
1562 | amd8111e_writeq(*(u64*)mc_filter,lp->mmio+ LADRF); | 1537 | amd8111e_writeq(*(u64*)mc_filter,lp->mmio+ LADRF); |