diff options
Diffstat (limited to 'net/irda/irlan/irlan_eth.c')
-rw-r--r-- | net/irda/irlan/irlan_eth.c | 31 |
1 files changed, 14 insertions, 17 deletions
diff --git a/net/irda/irlan/irlan_eth.c b/net/irda/irlan/irlan_eth.c index d14152e866d9..ffcec225b5d9 100644 --- a/net/irda/irlan/irlan_eth.c +++ b/net/irda/irlan/irlan_eth.c | |||
@@ -44,12 +44,12 @@ static int irlan_eth_open(struct net_device *dev); | |||
44 | static int irlan_eth_close(struct net_device *dev); | 44 | static int irlan_eth_close(struct net_device *dev); |
45 | static netdev_tx_t irlan_eth_xmit(struct sk_buff *skb, | 45 | static netdev_tx_t irlan_eth_xmit(struct sk_buff *skb, |
46 | struct net_device *dev); | 46 | struct net_device *dev); |
47 | static void irlan_eth_set_multicast_list( struct net_device *dev); | 47 | static void irlan_eth_set_multicast_list(struct net_device *dev); |
48 | 48 | ||
49 | static const struct net_device_ops irlan_eth_netdev_ops = { | 49 | static const struct net_device_ops irlan_eth_netdev_ops = { |
50 | .ndo_open = irlan_eth_open, | 50 | .ndo_open = irlan_eth_open, |
51 | .ndo_stop = irlan_eth_close, | 51 | .ndo_stop = irlan_eth_close, |
52 | .ndo_start_xmit = irlan_eth_xmit, | 52 | .ndo_start_xmit = irlan_eth_xmit, |
53 | .ndo_set_rx_mode = irlan_eth_set_multicast_list, | 53 | .ndo_set_rx_mode = irlan_eth_set_multicast_list, |
54 | .ndo_change_mtu = eth_change_mtu, | 54 | .ndo_change_mtu = eth_change_mtu, |
55 | .ndo_validate_addr = eth_validate_addr, | 55 | .ndo_validate_addr = eth_validate_addr, |
@@ -110,7 +110,7 @@ static int irlan_eth_open(struct net_device *dev) | |||
110 | { | 110 | { |
111 | struct irlan_cb *self = netdev_priv(dev); | 111 | struct irlan_cb *self = netdev_priv(dev); |
112 | 112 | ||
113 | IRDA_DEBUG(2, "%s()\n", __func__ ); | 113 | IRDA_DEBUG(2, "%s()\n", __func__); |
114 | 114 | ||
115 | /* Ready to play! */ | 115 | /* Ready to play! */ |
116 | netif_stop_queue(dev); /* Wait until data link is ready */ | 116 | netif_stop_queue(dev); /* Wait until data link is ready */ |
@@ -137,7 +137,7 @@ static int irlan_eth_close(struct net_device *dev) | |||
137 | { | 137 | { |
138 | struct irlan_cb *self = netdev_priv(dev); | 138 | struct irlan_cb *self = netdev_priv(dev); |
139 | 139 | ||
140 | IRDA_DEBUG(2, "%s()\n", __func__ ); | 140 | IRDA_DEBUG(2, "%s()\n", __func__); |
141 | 141 | ||
142 | /* Stop device */ | 142 | /* Stop device */ |
143 | netif_stop_queue(dev); | 143 | netif_stop_queue(dev); |
@@ -310,35 +310,32 @@ static void irlan_eth_set_multicast_list(struct net_device *dev) | |||
310 | { | 310 | { |
311 | struct irlan_cb *self = netdev_priv(dev); | 311 | struct irlan_cb *self = netdev_priv(dev); |
312 | 312 | ||
313 | IRDA_DEBUG(2, "%s()\n", __func__ ); | 313 | IRDA_DEBUG(2, "%s()\n", __func__); |
314 | 314 | ||
315 | /* Check if data channel has been connected yet */ | 315 | /* Check if data channel has been connected yet */ |
316 | if (self->client.state != IRLAN_DATA) { | 316 | if (self->client.state != IRLAN_DATA) { |
317 | IRDA_DEBUG(1, "%s(), delaying!\n", __func__ ); | 317 | IRDA_DEBUG(1, "%s(), delaying!\n", __func__); |
318 | return; | 318 | return; |
319 | } | 319 | } |
320 | 320 | ||
321 | if (dev->flags & IFF_PROMISC) { | 321 | if (dev->flags & IFF_PROMISC) { |
322 | /* Enable promiscuous mode */ | 322 | /* Enable promiscuous mode */ |
323 | IRDA_WARNING("Promiscuous mode not implemented by IrLAN!\n"); | 323 | IRDA_WARNING("Promiscuous mode not implemented by IrLAN!\n"); |
324 | } | 324 | } else if ((dev->flags & IFF_ALLMULTI) || |
325 | else if ((dev->flags & IFF_ALLMULTI) || | ||
326 | netdev_mc_count(dev) > HW_MAX_ADDRS) { | 325 | netdev_mc_count(dev) > HW_MAX_ADDRS) { |
327 | /* Disable promiscuous mode, use normal mode. */ | 326 | /* Disable promiscuous mode, use normal mode. */ |
328 | IRDA_DEBUG(4, "%s(), Setting multicast filter\n", __func__ ); | 327 | IRDA_DEBUG(4, "%s(), Setting multicast filter\n", __func__); |
329 | /* hardware_set_filter(NULL); */ | 328 | /* hardware_set_filter(NULL); */ |
330 | 329 | ||
331 | irlan_set_multicast_filter(self, TRUE); | 330 | irlan_set_multicast_filter(self, TRUE); |
332 | } | 331 | } else if (!netdev_mc_empty(dev)) { |
333 | else if (!netdev_mc_empty(dev)) { | 332 | IRDA_DEBUG(4, "%s(), Setting multicast filter\n", __func__); |
334 | IRDA_DEBUG(4, "%s(), Setting multicast filter\n", __func__ ); | ||
335 | /* Walk the address list, and load the filter */ | 333 | /* Walk the address list, and load the filter */ |
336 | /* hardware_set_filter(dev->mc_list); */ | 334 | /* hardware_set_filter(dev->mc_list); */ |
337 | 335 | ||
338 | irlan_set_multicast_filter(self, TRUE); | 336 | irlan_set_multicast_filter(self, TRUE); |
339 | } | 337 | } else { |
340 | else { | 338 | IRDA_DEBUG(4, "%s(), Clearing multicast filter\n", __func__); |
341 | IRDA_DEBUG(4, "%s(), Clearing multicast filter\n", __func__ ); | ||
342 | irlan_set_multicast_filter(self, FALSE); | 339 | irlan_set_multicast_filter(self, FALSE); |
343 | } | 340 | } |
344 | 341 | ||