aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/s390/net/Kconfig5
-rw-r--r--drivers/s390/net/lcs.c21
-rw-r--r--drivers/s390/net/qeth_core.h2
-rw-r--r--drivers/s390/net/qeth_core_main.c6
-rw-r--r--drivers/s390/net/qeth_l3_main.c35
5 files changed, 11 insertions, 58 deletions
diff --git a/drivers/s390/net/Kconfig b/drivers/s390/net/Kconfig
index 9b66d2d1809..dfda748c400 100644
--- a/drivers/s390/net/Kconfig
+++ b/drivers/s390/net/Kconfig
@@ -4,11 +4,10 @@ menu "S/390 network device drivers"
4config LCS 4config 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 && (ETHERNET || TR || FDDI) 7 depends on CCW && NETDEVICES && (ETHERNET || 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 FDDI (IEEE 802.7) and Ethernet.
11 FDDI (IEEE 802.7) and Ethernet.
12 To compile as a module, choose M. The module name is lcs. 11 To compile as a module, choose M. The module name is lcs.
13 If you do not know what it is, it's safe to choose Y. 12 If you do not know what it is, it's safe to choose Y.
14 13
diff --git a/drivers/s390/net/lcs.c b/drivers/s390/net/lcs.c
index 687efe4d589..6056cf6da03 100644
--- a/drivers/s390/net/lcs.c
+++ b/drivers/s390/net/lcs.c
@@ -30,7 +30,6 @@
30#include <linux/if.h> 30#include <linux/if.h>
31#include <linux/netdevice.h> 31#include <linux/netdevice.h>
32#include <linux/etherdevice.h> 32#include <linux/etherdevice.h>
33#include <linux/trdevice.h>
34#include <linux/fddidevice.h> 33#include <linux/fddidevice.h>
35#include <linux/inetdevice.h> 34#include <linux/inetdevice.h>
36#include <linux/in.h> 35#include <linux/in.h>
@@ -50,8 +49,7 @@
50#include "lcs.h" 49#include "lcs.h"
51 50
52 51
53#if !defined(CONFIG_ETHERNET) && \ 52#if !defined(CONFIG_ETHERNET) && !defined(CONFIG_FDDI)
54 !defined(CONFIG_TR) && !defined(CONFIG_FDDI)
55#error Cannot compile lcs.c without some net devices switched on. 53#error Cannot compile lcs.c without some net devices switched on.
56#endif 54#endif
57 55
@@ -1166,10 +1164,7 @@ static void
1166lcs_get_mac_for_ipm(__be32 ipm, char *mac, struct net_device *dev) 1164lcs_get_mac_for_ipm(__be32 ipm, char *mac, struct net_device *dev)
1167{ 1165{
1168 LCS_DBF_TEXT(4,trace, "getmac"); 1166 LCS_DBF_TEXT(4,trace, "getmac");
1169 if (dev->type == ARPHRD_IEEE802_TR) 1167 ip_eth_mc_map(ipm, mac);
1170 ip_tr_mc_map(ipm, mac);
1171 else
1172 ip_eth_mc_map(ipm, mac);
1173} 1168}
1174 1169
1175/** 1170/**
@@ -1641,12 +1636,6 @@ lcs_startlan_auto(struct lcs_card *card)
1641 return 0; 1636 return 0;
1642 1637
1643#endif 1638#endif
1644#ifdef CONFIG_TR
1645 card->lan_type = LCS_FRAME_TYPE_TR;
1646 rc = lcs_send_startlan(card, LCS_INITIATOR_TCPIP);
1647 if (rc == 0)
1648 return 0;
1649#endif
1650#ifdef CONFIG_FDDI 1639#ifdef CONFIG_FDDI
1651 card->lan_type = LCS_FRAME_TYPE_FDDI; 1640 card->lan_type = LCS_FRAME_TYPE_FDDI;
1652 rc = lcs_send_startlan(card, LCS_INITIATOR_TCPIP); 1641 rc = lcs_send_startlan(card, LCS_INITIATOR_TCPIP);
@@ -2172,12 +2161,6 @@ lcs_new_device(struct ccwgroup_device *ccwgdev)
2172 dev = alloc_etherdev(0); 2161 dev = alloc_etherdev(0);
2173 break; 2162 break;
2174#endif 2163#endif
2175#ifdef CONFIG_TR
2176 case LCS_FRAME_TYPE_TR:
2177 card->lan_type_trans = tr_type_trans;
2178 dev = alloc_trdev(0);
2179 break;
2180#endif
2181#ifdef CONFIG_FDDI 2164#ifdef CONFIG_FDDI
2182 case LCS_FRAME_TYPE_FDDI: 2165 case LCS_FRAME_TYPE_FDDI:
2183 card->lan_type_trans = fddi_type_trans; 2166 card->lan_type_trans = fddi_type_trans;
diff --git a/drivers/s390/net/qeth_core.h b/drivers/s390/net/qeth_core.h
index ec7921b5138..bb7190fdfbb 100644
--- a/drivers/s390/net/qeth_core.h
+++ b/drivers/s390/net/qeth_core.h
@@ -13,8 +13,6 @@
13 13
14#include <linux/if.h> 14#include <linux/if.h>
15#include <linux/if_arp.h> 15#include <linux/if_arp.h>
16#include <linux/if_tr.h>
17#include <linux/trdevice.h>
18#include <linux/etherdevice.h> 16#include <linux/etherdevice.h>
19#include <linux/if_vlan.h> 17#include <linux/if_vlan.h>
20#include <linux/ctype.h> 18#include <linux/ctype.h>
diff --git a/drivers/s390/net/qeth_core_main.c b/drivers/s390/net/qeth_core_main.c
index 8334dadc681..83b0d2feac0 100644
--- a/drivers/s390/net/qeth_core_main.c
+++ b/drivers/s390/net/qeth_core_main.c
@@ -4911,11 +4911,7 @@ struct sk_buff *qeth_core_get_next_skb(struct qeth_card *card,
4911 break; 4911 break;
4912 case QETH_HEADER_TYPE_LAYER3: 4912 case QETH_HEADER_TYPE_LAYER3:
4913 skb_len = (*hdr)->hdr.l3.length; 4913 skb_len = (*hdr)->hdr.l3.length;
4914 if ((card->info.link_type == QETH_LINK_TYPE_LANE_TR) || 4914 headroom = ETH_HLEN;
4915 (card->info.link_type == QETH_LINK_TYPE_HSTR))
4916 headroom = TR_HLEN;
4917 else
4918 headroom = ETH_HLEN;
4919 break; 4915 break;
4920 case QETH_HEADER_TYPE_OSN: 4916 case QETH_HEADER_TYPE_OSN:
4921 skb_len = (*hdr)->hdr.osn.pdu_length; 4917 skb_len = (*hdr)->hdr.osn.pdu_length;
diff --git a/drivers/s390/net/qeth_l3_main.c b/drivers/s390/net/qeth_l3_main.c
index f8592160768..74ebeaf597a 100644
--- a/drivers/s390/net/qeth_l3_main.c
+++ b/drivers/s390/net/qeth_l3_main.c
@@ -1671,10 +1671,7 @@ qeth_diags_trace(struct qeth_card *card, enum qeth_diags_trace_cmds diags_cmd)
1671static void qeth_l3_get_mac_for_ipm(__u32 ipm, char *mac, 1671static void qeth_l3_get_mac_for_ipm(__u32 ipm, char *mac,
1672 struct net_device *dev) 1672 struct net_device *dev)
1673{ 1673{
1674 if (dev->type == ARPHRD_IEEE802_TR) 1674 ip_eth_mc_map(ipm, mac);
1675 ip_tr_mc_map(ipm, mac);
1676 else
1677 ip_eth_mc_map(ipm, mac);
1678} 1675}
1679 1676
1680static void qeth_l3_add_mc(struct qeth_card *card, struct in_device *in4_dev) 1677static void qeth_l3_add_mc(struct qeth_card *card, struct in_device *in4_dev)
@@ -1922,8 +1919,6 @@ static inline int qeth_l3_rebuild_skb(struct qeth_card *card,
1922#endif 1919#endif
1923 case __constant_htons(ETH_P_IP): 1920 case __constant_htons(ETH_P_IP):
1924 ip_hdr = (struct iphdr *)skb->data; 1921 ip_hdr = (struct iphdr *)skb->data;
1925 (card->dev->type == ARPHRD_IEEE802_TR) ?
1926 ip_tr_mc_map(ip_hdr->daddr, tg_addr):
1927 ip_eth_mc_map(ip_hdr->daddr, tg_addr); 1922 ip_eth_mc_map(ip_hdr->daddr, tg_addr);
1928 break; 1923 break;
1929 default: 1924 default:
@@ -1959,12 +1954,7 @@ static inline int qeth_l3_rebuild_skb(struct qeth_card *card,
1959 tg_addr, "FAKELL", card->dev->addr_len); 1954 tg_addr, "FAKELL", card->dev->addr_len);
1960 } 1955 }
1961 1956
1962#ifdef CONFIG_TR 1957 skb->protocol = eth_type_trans(skb, card->dev);
1963 if (card->dev->type == ARPHRD_IEEE802_TR)
1964 skb->protocol = tr_type_trans(skb, card->dev);
1965 else
1966#endif
1967 skb->protocol = eth_type_trans(skb, card->dev);
1968 1958
1969 if (hdr->hdr.l3.ext_flags & 1959 if (hdr->hdr.l3.ext_flags &
1970 (QETH_HDR_EXT_VLAN_FRAME | QETH_HDR_EXT_INCLUDE_VLAN_TAG)) { 1960 (QETH_HDR_EXT_VLAN_FRAME | QETH_HDR_EXT_INCLUDE_VLAN_TAG)) {
@@ -2883,13 +2873,7 @@ static void qeth_l3_fill_header(struct qeth_card *card, struct qeth_hdr *hdr,
2883 hdr->hdr.l3.flags &= ~QETH_HDR_PASSTHRU; 2873 hdr->hdr.l3.flags &= ~QETH_HDR_PASSTHRU;
2884 memcpy(hdr->hdr.l3.dest_addr, pkey, 16); 2874 memcpy(hdr->hdr.l3.dest_addr, pkey, 16);
2885 } else { 2875 } else {
2886 /* passthrough */ 2876 if (!memcmp(skb->data + sizeof(struct qeth_hdr),
2887 if ((skb->dev->type == ARPHRD_IEEE802_TR) &&
2888 !memcmp(skb->data + sizeof(struct qeth_hdr) +
2889 sizeof(__u16), skb->dev->broadcast, 6)) {
2890 hdr->hdr.l3.flags = QETH_CAST_BROADCAST |
2891 QETH_HDR_PASSTHRU;
2892 } else if (!memcmp(skb->data + sizeof(struct qeth_hdr),
2893 skb->dev->broadcast, 6)) { 2877 skb->dev->broadcast, 6)) {
2894 /* broadcast? */ 2878 /* broadcast? */
2895 hdr->hdr.l3.flags = QETH_CAST_BROADCAST | 2879 hdr->hdr.l3.flags = QETH_CAST_BROADCAST |
@@ -3031,10 +3015,7 @@ static int qeth_l3_hard_start_xmit(struct sk_buff *skb, struct net_device *dev)
3031 skb_pull(new_skb, ETH_HLEN); 3015 skb_pull(new_skb, ETH_HLEN);
3032 } else { 3016 } else {
3033 if (ipv == 4) { 3017 if (ipv == 4) {
3034 if (card->dev->type == ARPHRD_IEEE802_TR) 3018 skb_pull(new_skb, ETH_HLEN);
3035 skb_pull(new_skb, TR_HLEN);
3036 else
3037 skb_pull(new_skb, ETH_HLEN);
3038 } 3019 }
3039 3020
3040 if (ipv != 4 && vlan_tx_tag_present(new_skb)) { 3021 if (ipv != 4 && vlan_tx_tag_present(new_skb)) {
@@ -3318,12 +3299,8 @@ static int qeth_l3_setup_netdev(struct qeth_card *card)
3318 card->info.type == QETH_CARD_TYPE_OSX) { 3299 card->info.type == QETH_CARD_TYPE_OSX) {
3319 if ((card->info.link_type == QETH_LINK_TYPE_LANE_TR) || 3300 if ((card->info.link_type == QETH_LINK_TYPE_LANE_TR) ||
3320 (card->info.link_type == QETH_LINK_TYPE_HSTR)) { 3301 (card->info.link_type == QETH_LINK_TYPE_HSTR)) {
3321#ifdef CONFIG_TR 3302 pr_info("qeth_l3: ignoring TR device\n");
3322 card->dev = alloc_trdev(0); 3303 return -ENODEV;
3323#endif
3324 if (!card->dev)
3325 return -ENODEV;
3326 card->dev->netdev_ops = &qeth_l3_netdev_ops;
3327 } else { 3304 } else {
3328 card->dev = alloc_etherdev(0); 3305 card->dev = alloc_etherdev(0);
3329 if (!card->dev) 3306 if (!card->dev)