Lines 1416-1423
Link Here
|
1416 |
_wl_set_multicast_list(struct net_device *dev) |
1416 |
_wl_set_multicast_list(struct net_device *dev) |
1417 |
{ |
1417 |
{ |
1418 |
wl_info_t *wl; |
1418 |
wl_info_t *wl; |
|
|
1419 |
#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 34) |
1419 |
struct dev_mc_list *mclist; |
1420 |
struct dev_mc_list *mclist; |
1420 |
int i; |
1421 |
int i; |
|
|
1422 |
#else |
1423 |
struct netdev_hw_addr *ha; |
1424 |
int i=0; |
1425 |
#endif |
1421 |
|
1426 |
|
1422 |
if (!dev) |
1427 |
if (!dev) |
1423 |
return; |
1428 |
return; |
Lines 1429-1443
Link Here
|
1429 |
|
1434 |
|
1430 |
if (wl->pub->up) { |
1435 |
if (wl->pub->up) { |
1431 |
wl->pub->allmulti = (dev->flags & IFF_ALLMULTI)? TRUE: FALSE; |
1436 |
wl->pub->allmulti = (dev->flags & IFF_ALLMULTI)? TRUE: FALSE; |
1432 |
|
1437 |
#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 34) |
1433 |
for (i = 0, mclist = dev->mc_list; mclist && (i < dev->mc_count); |
1438 |
for (i = 0, mclist = dev->mc_list; mclist && (i < dev->mc_count); |
1434 |
i++, mclist = mclist->next) { |
1439 |
i++, mclist = mclist->next) { |
|
|
1440 |
#else |
1441 |
netdev_for_each_mc_addr(ha, dev) { |
1442 |
#endif |
1435 |
if (i >= MAXMULTILIST) { |
1443 |
if (i >= MAXMULTILIST) { |
1436 |
wl->pub->allmulti = TRUE; |
1444 |
wl->pub->allmulti = TRUE; |
1437 |
i = 0; |
1445 |
i = 0; |
1438 |
break; |
1446 |
break; |
1439 |
} |
1447 |
} |
|
|
1448 |
#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 34) |
1440 |
wl->pub->multicast[i] = *((struct ether_addr*) mclist->dmi_addr); |
1449 |
wl->pub->multicast[i] = *((struct ether_addr*) mclist->dmi_addr); |
|
|
1450 |
#else |
1451 |
wl->pub->multicast[i] = *((struct ether_addr*) ha->addr); |
1452 |
#endif |
1441 |
} |
1453 |
} |
1442 |
wl->pub->nmulticast = i; |
1454 |
wl->pub->nmulticast = i; |
1443 |
wlc_set(wl->wlc, WLC_SET_PROMISC, (dev->flags & IFF_PROMISC)); |
1455 |
wlc_set(wl->wlc, WLC_SET_PROMISC, (dev->flags & IFF_PROMISC)); |