diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2011-11-20 17:59:33 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2011-11-20 17:59:33 -0500 |
commit | 6fe4c6d466e95d31164f14b1ac4aefb51f0f4f82 (patch) | |
tree | 54dd0130534a0e20195f45ece12421c604064d01 /drivers/s390 | |
parent | a4cc3889f7e2c3f2fd15b492822c889fed5e1800 (diff) | |
parent | 9cc20b268a5a14f5e57b8ad405a83513ab0d78dc (diff) |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (86 commits)
ipv4: fix redirect handling
ping: dont increment ICMP_MIB_INERRORS
sky2: fix hang in napi_disable
sky2: enforce minimum ring size
bonding: Don't allow mode change via sysfs with slaves present
f_phonet: fix page offset of first received fragment
stmmac: fix pm functions avoiding sleep on spinlock
stmmac: remove spin_lock in stmmac_ioctl.
stmmac: parameters auto-tuning through HW cap reg
stmmac: fix advertising 1000Base capabilties for non GMII iface
stmmac: use mdelay on timeout of sw reset
sky2: version 1.30
sky2: used fixed RSS key
sky2: reduce default Tx ring size
sky2: rename up/down functions
sky2: pci posting issues
sky2: fix hang on shutdown (and other irq issues)
r6040: fix check against MCRO_HASHEN bit in r6040_multicast_list
MAINTAINERS: change email address for shemminger
pch_gbe: Move #include of module.h
...
Diffstat (limited to 'drivers/s390')
-rw-r--r-- | drivers/s390/net/Kconfig | 2 | ||||
-rw-r--r-- | drivers/s390/net/lcs.c | 6 | ||||
-rw-r--r-- | drivers/s390/net/netiucv.c | 2 | ||||
-rw-r--r-- | drivers/s390/net/qeth_core.h | 3 | ||||
-rw-r--r-- | drivers/s390/net/qeth_core_main.c | 1 | ||||
-rw-r--r-- | drivers/s390/net/qeth_l3_main.c | 7 | ||||
-rw-r--r-- | drivers/s390/net/qeth_l3_sys.c | 4 |
7 files changed, 16 insertions, 9 deletions
diff --git a/drivers/s390/net/Kconfig b/drivers/s390/net/Kconfig index fa80ba1f0344..9b66d2d1809b 100644 --- a/drivers/s390/net/Kconfig +++ b/drivers/s390/net/Kconfig | |||
@@ -4,7 +4,7 @@ menu "S/390 network device drivers" | |||
4 | config LCS | 4 | config LCS |
5 | def_tristate m | 5 | def_tristate m |
6 | prompt "Lan Channel Station Interface" | 6 | prompt "Lan Channel Station Interface" |
7 | depends on CCW && NETDEVICES && (NET_ETHERNET || TR || FDDI) | 7 | depends on CCW && NETDEVICES && (ETHERNET || TR || FDDI) |
8 | help | 8 | help |
9 | Select this option if you want to use LCS networking on IBM System z. | 9 | Select this option if you want to use LCS networking on IBM System z. |
10 | This device driver supports Token Ring (IEEE 802.5), | 10 | This device driver supports Token Ring (IEEE 802.5), |
diff --git a/drivers/s390/net/lcs.c b/drivers/s390/net/lcs.c index c28713da1ec5..863fc2197155 100644 --- a/drivers/s390/net/lcs.c +++ b/drivers/s390/net/lcs.c | |||
@@ -50,7 +50,7 @@ | |||
50 | #include "lcs.h" | 50 | #include "lcs.h" |
51 | 51 | ||
52 | 52 | ||
53 | #if !defined(CONFIG_NET_ETHERNET) && \ | 53 | #if !defined(CONFIG_ETHERNET) && \ |
54 | !defined(CONFIG_TR) && !defined(CONFIG_FDDI) | 54 | !defined(CONFIG_TR) && !defined(CONFIG_FDDI) |
55 | #error Cannot compile lcs.c without some net devices switched on. | 55 | #error Cannot compile lcs.c without some net devices switched on. |
56 | #endif | 56 | #endif |
@@ -1634,7 +1634,7 @@ lcs_startlan_auto(struct lcs_card *card) | |||
1634 | int rc; | 1634 | int rc; |
1635 | 1635 | ||
1636 | LCS_DBF_TEXT(2, trace, "strtauto"); | 1636 | LCS_DBF_TEXT(2, trace, "strtauto"); |
1637 | #ifdef CONFIG_NET_ETHERNET | 1637 | #ifdef CONFIG_ETHERNET |
1638 | card->lan_type = LCS_FRAME_TYPE_ENET; | 1638 | card->lan_type = LCS_FRAME_TYPE_ENET; |
1639 | rc = lcs_send_startlan(card, LCS_INITIATOR_TCPIP); | 1639 | rc = lcs_send_startlan(card, LCS_INITIATOR_TCPIP); |
1640 | if (rc == 0) | 1640 | if (rc == 0) |
@@ -2166,7 +2166,7 @@ lcs_new_device(struct ccwgroup_device *ccwgdev) | |||
2166 | goto netdev_out; | 2166 | goto netdev_out; |
2167 | } | 2167 | } |
2168 | switch (card->lan_type) { | 2168 | switch (card->lan_type) { |
2169 | #ifdef CONFIG_NET_ETHERNET | 2169 | #ifdef CONFIG_ETHERNET |
2170 | case LCS_FRAME_TYPE_ENET: | 2170 | case LCS_FRAME_TYPE_ENET: |
2171 | card->lan_type_trans = eth_type_trans; | 2171 | card->lan_type_trans = eth_type_trans; |
2172 | dev = alloc_etherdev(0); | 2172 | dev = alloc_etherdev(0); |
diff --git a/drivers/s390/net/netiucv.c b/drivers/s390/net/netiucv.c index 3251333a23df..b6a6356d09b3 100644 --- a/drivers/s390/net/netiucv.c +++ b/drivers/s390/net/netiucv.c | |||
@@ -1994,6 +1994,8 @@ static struct net_device *netiucv_init_netdevice(char *username) | |||
1994 | netiucv_setup_netdevice); | 1994 | netiucv_setup_netdevice); |
1995 | if (!dev) | 1995 | if (!dev) |
1996 | return NULL; | 1996 | return NULL; |
1997 | if (dev_alloc_name(dev, dev->name) < 0) | ||
1998 | goto out_netdev; | ||
1997 | 1999 | ||
1998 | privptr = netdev_priv(dev); | 2000 | privptr = netdev_priv(dev); |
1999 | privptr->fsm = init_fsm("netiucvdev", dev_state_names, | 2001 | privptr->fsm = init_fsm("netiucvdev", dev_state_names, |
diff --git a/drivers/s390/net/qeth_core.h b/drivers/s390/net/qeth_core.h index b77c65ed1381..4abc79d3963f 100644 --- a/drivers/s390/net/qeth_core.h +++ b/drivers/s390/net/qeth_core.h | |||
@@ -236,8 +236,7 @@ static inline int qeth_is_ipa_enabled(struct qeth_ipa_info *ipa, | |||
236 | #define QETH_IN_BUF_COUNT_MAX 128 | 236 | #define QETH_IN_BUF_COUNT_MAX 128 |
237 | #define QETH_MAX_BUFFER_ELEMENTS(card) ((card)->qdio.in_buf_size >> 12) | 237 | #define QETH_MAX_BUFFER_ELEMENTS(card) ((card)->qdio.in_buf_size >> 12) |
238 | #define QETH_IN_BUF_REQUEUE_THRESHOLD(card) \ | 238 | #define QETH_IN_BUF_REQUEUE_THRESHOLD(card) \ |
239 | ((card)->ssqd.qdioac1 & AC1_SIGA_INPUT_NEEDED ? 1 : \ | 239 | ((card)->qdio.in_buf_pool.buf_count / 2) |
240 | ((card)->qdio.in_buf_pool.buf_count / 2)) | ||
241 | 240 | ||
242 | /* buffers we have to be behind before we get a PCI */ | 241 | /* buffers we have to be behind before we get a PCI */ |
243 | #define QETH_PCI_THRESHOLD_A(card) ((card)->qdio.in_buf_pool.buf_count+1) | 242 | #define QETH_PCI_THRESHOLD_A(card) ((card)->qdio.in_buf_pool.buf_count+1) |
diff --git a/drivers/s390/net/qeth_core_main.c b/drivers/s390/net/qeth_core_main.c index 81534437373a..fff57de78943 100644 --- a/drivers/s390/net/qeth_core_main.c +++ b/drivers/s390/net/qeth_core_main.c | |||
@@ -881,7 +881,6 @@ EXPORT_SYMBOL_GPL(qeth_do_run_thread); | |||
881 | void qeth_schedule_recovery(struct qeth_card *card) | 881 | void qeth_schedule_recovery(struct qeth_card *card) |
882 | { | 882 | { |
883 | QETH_CARD_TEXT(card, 2, "startrec"); | 883 | QETH_CARD_TEXT(card, 2, "startrec"); |
884 | WARN_ON(1); | ||
885 | if (qeth_set_thread_start_bit(card, QETH_RECOVER_THREAD) == 0) | 884 | if (qeth_set_thread_start_bit(card, QETH_RECOVER_THREAD) == 0) |
886 | schedule_work(&card->kernel_thread_starter); | 885 | schedule_work(&card->kernel_thread_starter); |
887 | } | 886 | } |
diff --git a/drivers/s390/net/qeth_l3_main.c b/drivers/s390/net/qeth_l3_main.c index e4c1176ee25b..4d5307ddbe55 100644 --- a/drivers/s390/net/qeth_l3_main.c +++ b/drivers/s390/net/qeth_l3_main.c | |||
@@ -2756,11 +2756,13 @@ int inline qeth_l3_get_cast_type(struct qeth_card *card, struct sk_buff *skb) | |||
2756 | struct neighbour *n = NULL; | 2756 | struct neighbour *n = NULL; |
2757 | struct dst_entry *dst; | 2757 | struct dst_entry *dst; |
2758 | 2758 | ||
2759 | rcu_read_lock(); | ||
2759 | dst = skb_dst(skb); | 2760 | dst = skb_dst(skb); |
2760 | if (dst) | 2761 | if (dst) |
2761 | n = dst_get_neighbour(dst); | 2762 | n = dst_get_neighbour(dst); |
2762 | if (n) { | 2763 | if (n) { |
2763 | cast_type = n->type; | 2764 | cast_type = n->type; |
2765 | rcu_read_unlock(); | ||
2764 | if ((cast_type == RTN_BROADCAST) || | 2766 | if ((cast_type == RTN_BROADCAST) || |
2765 | (cast_type == RTN_MULTICAST) || | 2767 | (cast_type == RTN_MULTICAST) || |
2766 | (cast_type == RTN_ANYCAST)) | 2768 | (cast_type == RTN_ANYCAST)) |
@@ -2768,6 +2770,8 @@ int inline qeth_l3_get_cast_type(struct qeth_card *card, struct sk_buff *skb) | |||
2768 | else | 2770 | else |
2769 | return RTN_UNSPEC; | 2771 | return RTN_UNSPEC; |
2770 | } | 2772 | } |
2773 | rcu_read_unlock(); | ||
2774 | |||
2771 | /* try something else */ | 2775 | /* try something else */ |
2772 | if (skb->protocol == ETH_P_IPV6) | 2776 | if (skb->protocol == ETH_P_IPV6) |
2773 | return (skb_network_header(skb)[24] == 0xff) ? | 2777 | return (skb_network_header(skb)[24] == 0xff) ? |
@@ -2847,6 +2851,8 @@ static void qeth_l3_fill_header(struct qeth_card *card, struct qeth_hdr *hdr, | |||
2847 | } | 2851 | } |
2848 | 2852 | ||
2849 | hdr->hdr.l3.length = skb->len - sizeof(struct qeth_hdr); | 2853 | hdr->hdr.l3.length = skb->len - sizeof(struct qeth_hdr); |
2854 | |||
2855 | rcu_read_lock(); | ||
2850 | dst = skb_dst(skb); | 2856 | dst = skb_dst(skb); |
2851 | if (dst) | 2857 | if (dst) |
2852 | n = dst_get_neighbour(dst); | 2858 | n = dst_get_neighbour(dst); |
@@ -2893,6 +2899,7 @@ static void qeth_l3_fill_header(struct qeth_card *card, struct qeth_hdr *hdr, | |||
2893 | QETH_CAST_UNICAST | QETH_HDR_PASSTHRU; | 2899 | QETH_CAST_UNICAST | QETH_HDR_PASSTHRU; |
2894 | } | 2900 | } |
2895 | } | 2901 | } |
2902 | rcu_read_unlock(); | ||
2896 | } | 2903 | } |
2897 | 2904 | ||
2898 | static inline void qeth_l3_hdr_csum(struct qeth_card *card, | 2905 | static inline void qeth_l3_hdr_csum(struct qeth_card *card, |
diff --git a/drivers/s390/net/qeth_l3_sys.c b/drivers/s390/net/qeth_l3_sys.c index 0ea2fbfe0e99..d979bb26522f 100644 --- a/drivers/s390/net/qeth_l3_sys.c +++ b/drivers/s390/net/qeth_l3_sys.c | |||
@@ -335,10 +335,10 @@ static ssize_t qeth_l3_dev_sniffer_store(struct device *dev, | |||
335 | QETH_IN_BUF_COUNT_MAX) | 335 | QETH_IN_BUF_COUNT_MAX) |
336 | qeth_realloc_buffer_pool(card, | 336 | qeth_realloc_buffer_pool(card, |
337 | QETH_IN_BUF_COUNT_MAX); | 337 | QETH_IN_BUF_COUNT_MAX); |
338 | break; | ||
339 | } else | 338 | } else |
340 | rc = -EPERM; | 339 | rc = -EPERM; |
341 | default: /* fall through */ | 340 | break; |
341 | default: | ||
342 | rc = -EINVAL; | 342 | rc = -EINVAL; |
343 | } | 343 | } |
344 | out: | 344 | out: |