aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/sgiseeq.c
diff options
context:
space:
mode:
authorAndrea Bastoni <bastoni@cs.unc.edu>2010-05-30 19:16:45 -0400
committerAndrea Bastoni <bastoni@cs.unc.edu>2010-05-30 19:16:45 -0400
commitada47b5fe13d89735805b566185f4885f5a3f750 (patch)
tree644b88f8a71896307d71438e9b3af49126ffb22b /drivers/net/sgiseeq.c
parent43e98717ad40a4ae64545b5ba047c7b86aa44f4f (diff)
parent3280f21d43ee541f97f8cda5792150d2dbec20d5 (diff)
Merge branch 'wip-2.6.34' into old-private-masterarchived-private-master
Diffstat (limited to 'drivers/net/sgiseeq.c')
-rw-r--r--drivers/net/sgiseeq.c14
1 files changed, 8 insertions, 6 deletions
diff --git a/drivers/net/sgiseeq.c b/drivers/net/sgiseeq.c
index f4dfd1f679a9..c8fc896fc460 100644
--- a/drivers/net/sgiseeq.c
+++ b/drivers/net/sgiseeq.c
@@ -8,6 +8,7 @@
8 8
9#include <linux/kernel.h> 9#include <linux/kernel.h>
10#include <linux/module.h> 10#include <linux/module.h>
11#include <linux/slab.h>
11#include <linux/errno.h> 12#include <linux/errno.h>
12#include <linux/init.h> 13#include <linux/init.h>
13#include <linux/types.h> 14#include <linux/types.h>
@@ -365,11 +366,10 @@ static inline void sgiseeq_rx(struct net_device *dev, struct sgiseeq_private *sp
365 } 366 }
366 skb_reserve(newskb, 2); 367 skb_reserve(newskb, 2);
367 } else { 368 } else {
368 skb = netdev_alloc_skb(dev, len + 2); 369 skb = netdev_alloc_skb_ip_align(dev, len);
369 if (skb) { 370 if (skb)
370 skb_reserve(skb, 2);
371 skb_copy_to_linear_data(skb, rd->skb->data, len); 371 skb_copy_to_linear_data(skb, rd->skb->data, len);
372 } 372
373 newskb = rd->skb; 373 newskb = rd->skb;
374 } 374 }
375memory_squeeze: 375memory_squeeze:
@@ -593,8 +593,10 @@ static int sgiseeq_start_xmit(struct sk_buff *skb, struct net_device *dev)
593 /* Setup... */ 593 /* Setup... */
594 len = skb->len; 594 len = skb->len;
595 if (len < ETH_ZLEN) { 595 if (len < ETH_ZLEN) {
596 if (skb_padto(skb, ETH_ZLEN)) 596 if (skb_padto(skb, ETH_ZLEN)) {
597 spin_unlock_irqrestore(&sp->tx_lock, flags);
597 return NETDEV_TX_OK; 598 return NETDEV_TX_OK;
599 }
598 len = ETH_ZLEN; 600 len = ETH_ZLEN;
599 } 601 }
600 602
@@ -661,7 +663,7 @@ static void sgiseeq_set_multicast(struct net_device *dev)
661 663
662 if(dev->flags & IFF_PROMISC) 664 if(dev->flags & IFF_PROMISC)
663 sp->mode = SEEQ_RCMD_RANY; 665 sp->mode = SEEQ_RCMD_RANY;
664 else if ((dev->flags & IFF_ALLMULTI) || dev->mc_count) 666 else if ((dev->flags & IFF_ALLMULTI) || !netdev_mc_empty(dev))
665 sp->mode = SEEQ_RCMD_RBMCAST; 667 sp->mode = SEEQ_RCMD_RBMCAST;
666 else 668 else
667 sp->mode = SEEQ_RCMD_RBCAST; 669 sp->mode = SEEQ_RCMD_RBCAST;