Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6
* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6: (1232 commits) iucv: Fix bad merging. net_sched: Add size table for qdiscs net_sched: Add accessor function for packet length for qdiscs net_sched: Add qdisc_enqueue wrapper highmem: Export totalhigh_pages. ipv6 mcast: Omit redundant address family checks in ip6_mc_source(). net: Use standard structures for generic socket address structures. ipv6 netns: Make several "global" sysctl variables namespace aware. netns: Use net_eq() to compare net-namespaces for optimization. ipv6: remove unused macros from net/ipv6.h ipv6: remove unused parameter from ip6_ra_control tcp: fix kernel panic with listening_get_next tcp: Remove redundant checks when setting eff_sacks tcp: options clean up tcp: Fix MD5 signatures for non-linear skbs sctp: Update sctp global memory limit allocations. sctp: remove unnecessary byteshifting, calculate directly in big-endian sctp: Allow only 1 listening socket with SO_REUSEADDR sctp: Do not leak memory on multiple listen() calls sctp: Support ipv6only AF_INET6 sockets. ...
This commit is contained in:
@@ -99,9 +99,6 @@ struct sixpack {
|
||||
unsigned int rx_count;
|
||||
unsigned int rx_count_cooked;
|
||||
|
||||
/* 6pack interface statistics. */
|
||||
struct net_device_stats stats;
|
||||
|
||||
int mtu; /* Our mtu (to spot changes!) */
|
||||
int buffsize; /* Max buffers sizes */
|
||||
|
||||
@@ -237,7 +234,7 @@ static void sp_encaps(struct sixpack *sp, unsigned char *icp, int len)
|
||||
return;
|
||||
|
||||
out_drop:
|
||||
sp->stats.tx_dropped++;
|
||||
sp->dev->stats.tx_dropped++;
|
||||
netif_start_queue(sp->dev);
|
||||
if (net_ratelimit())
|
||||
printk(KERN_DEBUG "%s: %s - dropped.\n", sp->dev->name, msg);
|
||||
@@ -252,7 +249,7 @@ static int sp_xmit(struct sk_buff *skb, struct net_device *dev)
|
||||
spin_lock_bh(&sp->lock);
|
||||
/* We were not busy, so we are now... :-) */
|
||||
netif_stop_queue(dev);
|
||||
sp->stats.tx_bytes += skb->len;
|
||||
dev->stats.tx_bytes += skb->len;
|
||||
sp_encaps(sp, skb->data, skb->len);
|
||||
spin_unlock_bh(&sp->lock);
|
||||
|
||||
@@ -298,18 +295,14 @@ static int sp_header(struct sk_buff *skb, struct net_device *dev,
|
||||
return 0;
|
||||
}
|
||||
|
||||
static struct net_device_stats *sp_get_stats(struct net_device *dev)
|
||||
{
|
||||
struct sixpack *sp = netdev_priv(dev);
|
||||
return &sp->stats;
|
||||
}
|
||||
|
||||
static int sp_set_mac_address(struct net_device *dev, void *addr)
|
||||
{
|
||||
struct sockaddr_ax25 *sa = addr;
|
||||
|
||||
netif_tx_lock_bh(dev);
|
||||
netif_addr_lock(dev);
|
||||
memcpy(dev->dev_addr, &sa->sax25_call, AX25_ADDR_LEN);
|
||||
netif_addr_unlock(dev);
|
||||
netif_tx_unlock_bh(dev);
|
||||
|
||||
return 0;
|
||||
@@ -338,7 +331,6 @@ static void sp_setup(struct net_device *dev)
|
||||
dev->destructor = free_netdev;
|
||||
dev->stop = sp_close;
|
||||
|
||||
dev->get_stats = sp_get_stats;
|
||||
dev->set_mac_address = sp_set_mac_address;
|
||||
dev->hard_header_len = AX25_MAX_HEADER_LEN;
|
||||
dev->header_ops = &sp_header_ops;
|
||||
@@ -370,7 +362,7 @@ static void sp_bump(struct sixpack *sp, char cmd)
|
||||
|
||||
count = sp->rcount + 1;
|
||||
|
||||
sp->stats.rx_bytes += count;
|
||||
sp->dev->stats.rx_bytes += count;
|
||||
|
||||
if ((skb = dev_alloc_skb(count)) == NULL)
|
||||
goto out_mem;
|
||||
@@ -382,12 +374,12 @@ static void sp_bump(struct sixpack *sp, char cmd)
|
||||
skb->protocol = ax25_type_trans(skb, sp->dev);
|
||||
netif_rx(skb);
|
||||
sp->dev->last_rx = jiffies;
|
||||
sp->stats.rx_packets++;
|
||||
sp->dev->stats.rx_packets++;
|
||||
|
||||
return;
|
||||
|
||||
out_mem:
|
||||
sp->stats.rx_dropped++;
|
||||
sp->dev->stats.rx_dropped++;
|
||||
}
|
||||
|
||||
|
||||
@@ -436,7 +428,7 @@ static void sixpack_write_wakeup(struct tty_struct *tty)
|
||||
if (sp->xleft <= 0) {
|
||||
/* Now serial buffer is almost free & we can start
|
||||
* transmission of another packet */
|
||||
sp->stats.tx_packets++;
|
||||
sp->dev->stats.tx_packets++;
|
||||
clear_bit(TTY_DO_WRITE_WAKEUP, &tty->flags);
|
||||
sp->tx_enable = 0;
|
||||
netif_wake_queue(sp->dev);
|
||||
@@ -484,7 +476,7 @@ static void sixpack_receive_buf(struct tty_struct *tty,
|
||||
count--;
|
||||
if (fp && *fp++) {
|
||||
if (!test_and_set_bit(SIXPF_ERROR, &sp->flags))
|
||||
sp->stats.rx_errors++;
|
||||
sp->dev->stats.rx_errors++;
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user