diff options
Diffstat (limited to 'drivers/net')
| -rw-r--r-- | drivers/net/forcedeth.c | 16 | ||||
| -rw-r--r-- | drivers/net/netconsole.c | 2 | ||||
| -rw-r--r-- | drivers/net/pcmcia/nmclan_cs.c | 2 | ||||
| -rw-r--r-- | drivers/net/pppoe.c | 3 |
4 files changed, 21 insertions, 2 deletions
diff --git a/drivers/net/forcedeth.c b/drivers/net/forcedeth.c index 705e1229d89d..feb5b223cd60 100644 --- a/drivers/net/forcedeth.c +++ b/drivers/net/forcedeth.c | |||
| @@ -2615,6 +2615,18 @@ static int nv_nway_reset(struct net_device *dev) | |||
| 2615 | return ret; | 2615 | return ret; |
| 2616 | } | 2616 | } |
| 2617 | 2617 | ||
| 2618 | #ifdef NETIF_F_TSO | ||
| 2619 | static int nv_set_tso(struct net_device *dev, u32 value) | ||
| 2620 | { | ||
| 2621 | struct fe_priv *np = netdev_priv(dev); | ||
| 2622 | |||
| 2623 | if ((np->driver_data & DEV_HAS_CHECKSUM)) | ||
| 2624 | return ethtool_op_set_tso(dev, value); | ||
| 2625 | else | ||
| 2626 | return value ? -EOPNOTSUPP : 0; | ||
| 2627 | } | ||
| 2628 | #endif | ||
| 2629 | |||
| 2618 | static struct ethtool_ops ops = { | 2630 | static struct ethtool_ops ops = { |
| 2619 | .get_drvinfo = nv_get_drvinfo, | 2631 | .get_drvinfo = nv_get_drvinfo, |
| 2620 | .get_link = ethtool_op_get_link, | 2632 | .get_link = ethtool_op_get_link, |
| @@ -2626,6 +2638,10 @@ static struct ethtool_ops ops = { | |||
| 2626 | .get_regs = nv_get_regs, | 2638 | .get_regs = nv_get_regs, |
| 2627 | .nway_reset = nv_nway_reset, | 2639 | .nway_reset = nv_nway_reset, |
| 2628 | .get_perm_addr = ethtool_op_get_perm_addr, | 2640 | .get_perm_addr = ethtool_op_get_perm_addr, |
| 2641 | #ifdef NETIF_F_TSO | ||
| 2642 | .get_tso = ethtool_op_get_tso, | ||
| 2643 | .set_tso = nv_set_tso | ||
| 2644 | #endif | ||
| 2629 | }; | 2645 | }; |
| 2630 | 2646 | ||
| 2631 | static void nv_vlan_rx_register(struct net_device *dev, struct vlan_group *grp) | 2647 | static void nv_vlan_rx_register(struct net_device *dev, struct vlan_group *grp) |
diff --git a/drivers/net/netconsole.c b/drivers/net/netconsole.c index 66e74f740261..bf58db29e2ed 100644 --- a/drivers/net/netconsole.c +++ b/drivers/net/netconsole.c | |||
| @@ -107,7 +107,7 @@ static int init_netconsole(void) | |||
| 107 | 107 | ||
| 108 | if(!configured) { | 108 | if(!configured) { |
| 109 | printk("netconsole: not configured, aborting\n"); | 109 | printk("netconsole: not configured, aborting\n"); |
| 110 | return -EINVAL; | 110 | return 0; |
| 111 | } | 111 | } |
| 112 | 112 | ||
| 113 | if(netpoll_setup(&np)) | 113 | if(netpoll_setup(&np)) |
diff --git a/drivers/net/pcmcia/nmclan_cs.c b/drivers/net/pcmcia/nmclan_cs.c index 4260c2128f47..a8f6bfc96fd2 100644 --- a/drivers/net/pcmcia/nmclan_cs.c +++ b/drivers/net/pcmcia/nmclan_cs.c | |||
| @@ -1204,7 +1204,7 @@ static int mace_rx(struct net_device *dev, unsigned char RxCnt) | |||
| 1204 | 1204 | ||
| 1205 | dev->last_rx = jiffies; | 1205 | dev->last_rx = jiffies; |
| 1206 | lp->linux_stats.rx_packets++; | 1206 | lp->linux_stats.rx_packets++; |
| 1207 | lp->linux_stats.rx_bytes += skb->len; | 1207 | lp->linux_stats.rx_bytes += pkt_len; |
| 1208 | outb(0xFF, ioaddr + AM2150_RCV_NEXT); /* skip to next frame */ | 1208 | outb(0xFF, ioaddr + AM2150_RCV_NEXT); /* skip to next frame */ |
| 1209 | continue; | 1209 | continue; |
| 1210 | } else { | 1210 | } else { |
diff --git a/drivers/net/pppoe.c b/drivers/net/pppoe.c index 475dc930380f..0d101a18026a 100644 --- a/drivers/net/pppoe.c +++ b/drivers/net/pppoe.c | |||
| @@ -861,6 +861,9 @@ static int __pppoe_xmit(struct sock *sk, struct sk_buff *skb) | |||
| 861 | * give dev_queue_xmit something it can free. | 861 | * give dev_queue_xmit something it can free. |
| 862 | */ | 862 | */ |
| 863 | skb2 = skb_clone(skb, GFP_ATOMIC); | 863 | skb2 = skb_clone(skb, GFP_ATOMIC); |
| 864 | |||
| 865 | if (skb2 == NULL) | ||
| 866 | goto abort; | ||
| 864 | } | 867 | } |
| 865 | 868 | ||
| 866 | ph = (struct pppoe_hdr *) skb_push(skb2, sizeof(struct pppoe_hdr)); | 869 | ph = (struct pppoe_hdr *) skb_push(skb2, sizeof(struct pppoe_hdr)); |
