diff options
Diffstat (limited to 'drivers/net')
| -rw-r--r-- | drivers/net/Kconfig | 5 | ||||
| -rw-r--r-- | drivers/net/bonding/bond_main.c | 59 | ||||
| -rw-r--r-- | drivers/net/pppox.c | 8 |
3 files changed, 33 insertions, 39 deletions
diff --git a/drivers/net/Kconfig b/drivers/net/Kconfig index eb4b96c4d388..dcdad217df51 100644 --- a/drivers/net/Kconfig +++ b/drivers/net/Kconfig | |||
| @@ -2927,11 +2927,6 @@ endif #NETDEVICES | |||
| 2927 | config NETPOLL | 2927 | config NETPOLL |
| 2928 | def_bool NETCONSOLE | 2928 | def_bool NETCONSOLE |
| 2929 | 2929 | ||
| 2930 | config NETPOLL_RX | ||
| 2931 | bool "Netpoll support for trapping incoming packets" | ||
| 2932 | default n | ||
| 2933 | depends on NETPOLL | ||
| 2934 | |||
| 2935 | config NETPOLL_TRAP | 2930 | config NETPOLL_TRAP |
| 2936 | bool "Netpoll traffic trapping" | 2931 | bool "Netpoll traffic trapping" |
| 2937 | default n | 2932 | default n |
diff --git a/drivers/net/bonding/bond_main.c b/drivers/net/bonding/bond_main.c index cea3783c92c5..724bce51f936 100644 --- a/drivers/net/bonding/bond_main.c +++ b/drivers/net/bonding/bond_main.c | |||
| @@ -1360,13 +1360,6 @@ int bond_enslave(struct net_device *bond_dev, struct net_device *slave_dev) | |||
| 1360 | goto err_undo_flags; | 1360 | goto err_undo_flags; |
| 1361 | } | 1361 | } |
| 1362 | 1362 | ||
| 1363 | if (slave_dev->get_stats == NULL) { | ||
| 1364 | printk(KERN_NOTICE DRV_NAME | ||
| 1365 | ": %s: the driver for slave device %s does not provide " | ||
| 1366 | "get_stats function, network statistics will be " | ||
| 1367 | "inaccurate.\n", bond_dev->name, slave_dev->name); | ||
| 1368 | } | ||
| 1369 | |||
| 1370 | new_slave = kzalloc(sizeof(struct slave), GFP_KERNEL); | 1363 | new_slave = kzalloc(sizeof(struct slave), GFP_KERNEL); |
| 1371 | if (!new_slave) { | 1364 | if (!new_slave) { |
| 1372 | res = -ENOMEM; | 1365 | res = -ENOMEM; |
| @@ -3641,33 +3634,31 @@ static struct net_device_stats *bond_get_stats(struct net_device *bond_dev) | |||
| 3641 | 3634 | ||
| 3642 | bond_for_each_slave(bond, slave, i) { | 3635 | bond_for_each_slave(bond, slave, i) { |
| 3643 | sstats = slave->dev->get_stats(slave->dev); | 3636 | sstats = slave->dev->get_stats(slave->dev); |
| 3644 | if (sstats) { | 3637 | stats->rx_packets += sstats->rx_packets; |
| 3645 | stats->rx_packets += sstats->rx_packets; | 3638 | stats->rx_bytes += sstats->rx_bytes; |
| 3646 | stats->rx_bytes += sstats->rx_bytes; | 3639 | stats->rx_errors += sstats->rx_errors; |
| 3647 | stats->rx_errors += sstats->rx_errors; | 3640 | stats->rx_dropped += sstats->rx_dropped; |
| 3648 | stats->rx_dropped += sstats->rx_dropped; | 3641 | |
| 3649 | 3642 | stats->tx_packets += sstats->tx_packets; | |
| 3650 | stats->tx_packets += sstats->tx_packets; | 3643 | stats->tx_bytes += sstats->tx_bytes; |
| 3651 | stats->tx_bytes += sstats->tx_bytes; | 3644 | stats->tx_errors += sstats->tx_errors; |
| 3652 | stats->tx_errors += sstats->tx_errors; | 3645 | stats->tx_dropped += sstats->tx_dropped; |
| 3653 | stats->tx_dropped += sstats->tx_dropped; | 3646 | |
| 3654 | 3647 | stats->multicast += sstats->multicast; | |
| 3655 | stats->multicast += sstats->multicast; | 3648 | stats->collisions += sstats->collisions; |
| 3656 | stats->collisions += sstats->collisions; | 3649 | |
| 3657 | 3650 | stats->rx_length_errors += sstats->rx_length_errors; | |
| 3658 | stats->rx_length_errors += sstats->rx_length_errors; | 3651 | stats->rx_over_errors += sstats->rx_over_errors; |
| 3659 | stats->rx_over_errors += sstats->rx_over_errors; | 3652 | stats->rx_crc_errors += sstats->rx_crc_errors; |
| 3660 | stats->rx_crc_errors += sstats->rx_crc_errors; | 3653 | stats->rx_frame_errors += sstats->rx_frame_errors; |
| 3661 | stats->rx_frame_errors += sstats->rx_frame_errors; | 3654 | stats->rx_fifo_errors += sstats->rx_fifo_errors; |
| 3662 | stats->rx_fifo_errors += sstats->rx_fifo_errors; | 3655 | stats->rx_missed_errors += sstats->rx_missed_errors; |
| 3663 | stats->rx_missed_errors += sstats->rx_missed_errors; | 3656 | |
| 3664 | 3657 | stats->tx_aborted_errors += sstats->tx_aborted_errors; | |
| 3665 | stats->tx_aborted_errors += sstats->tx_aborted_errors; | 3658 | stats->tx_carrier_errors += sstats->tx_carrier_errors; |
| 3666 | stats->tx_carrier_errors += sstats->tx_carrier_errors; | 3659 | stats->tx_fifo_errors += sstats->tx_fifo_errors; |
| 3667 | stats->tx_fifo_errors += sstats->tx_fifo_errors; | 3660 | stats->tx_heartbeat_errors += sstats->tx_heartbeat_errors; |
| 3668 | stats->tx_heartbeat_errors += sstats->tx_heartbeat_errors; | 3661 | stats->tx_window_errors += sstats->tx_window_errors; |
| 3669 | stats->tx_window_errors += sstats->tx_window_errors; | ||
| 3670 | } | ||
| 3671 | } | 3662 | } |
| 3672 | 3663 | ||
| 3673 | read_unlock_bh(&bond->lock); | 3664 | read_unlock_bh(&bond->lock); |
diff --git a/drivers/net/pppox.c b/drivers/net/pppox.c index 3f8115db4d54..f3e47d0c2b3c 100644 --- a/drivers/net/pppox.c +++ b/drivers/net/pppox.c | |||
| @@ -31,6 +31,7 @@ | |||
| 31 | #include <linux/ppp_defs.h> | 31 | #include <linux/ppp_defs.h> |
| 32 | #include <linux/if_ppp.h> | 32 | #include <linux/if_ppp.h> |
| 33 | #include <linux/ppp_channel.h> | 33 | #include <linux/ppp_channel.h> |
| 34 | #include <linux/kmod.h> | ||
| 34 | 35 | ||
| 35 | #include <net/sock.h> | 36 | #include <net/sock.h> |
| 36 | 37 | ||
| @@ -114,6 +115,13 @@ static int pppox_create(struct socket *sock, int protocol) | |||
| 114 | goto out; | 115 | goto out; |
| 115 | 116 | ||
| 116 | rc = -EPROTONOSUPPORT; | 117 | rc = -EPROTONOSUPPORT; |
| 118 | #ifdef CONFIG_KMOD | ||
| 119 | if (!pppox_protos[protocol]) { | ||
| 120 | char buffer[32]; | ||
| 121 | sprintf(buffer, "pppox-proto-%d", protocol); | ||
| 122 | request_module(buffer); | ||
| 123 | } | ||
| 124 | #endif | ||
| 117 | if (!pppox_protos[protocol] || | 125 | if (!pppox_protos[protocol] || |
| 118 | !try_module_get(pppox_protos[protocol]->owner)) | 126 | !try_module_get(pppox_protos[protocol]->owner)) |
| 119 | goto out; | 127 | goto out; |
