diff -ru VT6656_linux_src_v1.20.03_x86.old/driver/main_usb.c VT6656_linux_src_v1.20.03_x86/driver/main_usb.c
--- VT6656_linux_src_v1.20.03_x86.old/driver/main_usb.c 2009-11-13 16:05:21.000000000 +0100
+++ VT6656_linux_src_v1.20.03_x86/driver/main_usb.c 2010-11-11 19:34:35.000000000 +0100
@@ -2060,7 +2060,7 @@
PSMgmtObject pMgmt = &(pDevice->sMgmtObj);
u32 mc_filter[2];
int ii;
- struct dev_mc_list *mclist;
+ struct netdev_hw_addr *mclist;
BYTE pbyData[8] = {0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff};
BYTE byTmpMode = 0;
int rc;
@@ -2083,7 +2083,7 @@
// Unconditionally log net taps.
pDevice->byRxMode |= (RCR_MULTICAST|RCR_BROADCAST|RCR_UNICAST);
}
- else if ((dev->mc_count > pDevice->multicast_limit) || (dev->flags & IFF_ALLMULTI)) {
+ else if ((netdev_mc_count(dev) > pDevice->multicast_limit) || (dev->flags & IFF_ALLMULTI)) {
CONTROLnsRequestOut(pDevice,
MESSAGE_TYPE_WRITE,
MAC_REG_MAR0,
@@ -2095,9 +2095,8 @@
}
else {
memset(mc_filter, 0, sizeof(mc_filter));
- for (ii = 0, mclist = dev->mc_list; mclist && ii < dev->mc_count;
- ii++, mclist = mclist->next) {
- int bit_nr = ether_crc(ETH_ALEN, mclist->dmi_addr) >> 26;
+ netdev_for_each_mc_addr(mclist,dev) {
+ int bit_nr = ether_crc(ETH_ALEN, mclist->addr) >> 26;
mc_filter[bit_nr >> 5] |= cpu_to_le32(1 << (bit_nr & 31));
}
for (ii = 0; ii < 4; ii++) {
|