summaryrefslogtreecommitdiffstats
path: root/drivers/s390
diff options
context:
space:
mode:
authorJulian Wiedmann <jwi@linux.ibm.com>2019-04-25 12:25:57 -0400
committerDavid S. Miller <davem@davemloft.net>2019-04-26 11:14:06 -0400
commit379ac99e5192f98c560b22ae2a3dbaa97c043cc8 (patch)
tree9fb377b3255290cd0f86a2ba53604067ff630326 /drivers/s390
parent5c0bfba780ba96a2e656abfa677155c935153aaa (diff)
s390/qeth: use IS_* helpers for checking device type
We have helper macros for all possible device types, replace all remaining open-coded accesses to the type fields. Signed-off-by: Julian Wiedmann <jwi@linux.ibm.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/s390')
-rw-r--r--drivers/s390/net/qeth_core.h2
-rw-r--r--drivers/s390/net/qeth_core_main.c80
-rw-r--r--drivers/s390/net/qeth_core_mpc.h2
-rw-r--r--drivers/s390/net/qeth_core_sys.c3
-rw-r--r--drivers/s390/net/qeth_l2_main.c15
-rw-r--r--drivers/s390/net/qeth_l3_main.c24
-rw-r--r--drivers/s390/net/qeth_l3_sys.c6
7 files changed, 54 insertions, 78 deletions
diff --git a/drivers/s390/net/qeth_core.h b/drivers/s390/net/qeth_core.h
index 16c8049672b7..92441593caf3 100644
--- a/drivers/s390/net/qeth_core.h
+++ b/drivers/s390/net/qeth_core.h
@@ -667,7 +667,7 @@ struct qeth_card_info {
667 __u16 func_level; 667 __u16 func_level;
668 char mcl_level[QETH_MCL_LENGTH + 1]; 668 char mcl_level[QETH_MCL_LENGTH + 1];
669 u8 open_when_online:1; 669 u8 open_when_online:1;
670 int guestlan; 670 u8 is_vm_nic:1;
671 int mac_bits; 671 int mac_bits;
672 enum qeth_card_types type; 672 enum qeth_card_types type;
673 enum qeth_link_types link_type; 673 enum qeth_link_types link_type;
diff --git a/drivers/s390/net/qeth_core_main.c b/drivers/s390/net/qeth_core_main.c
index d057ead200b5..bdae99636dd4 100644
--- a/drivers/s390/net/qeth_core_main.c
+++ b/drivers/s390/net/qeth_core_main.c
@@ -85,7 +85,7 @@ static void qeth_close_dev_handler(struct work_struct *work)
85 85
86static const char *qeth_get_cardname(struct qeth_card *card) 86static const char *qeth_get_cardname(struct qeth_card *card)
87{ 87{
88 if (card->info.guestlan) { 88 if (IS_VM_NIC(card)) {
89 switch (card->info.type) { 89 switch (card->info.type) {
90 case QETH_CARD_TYPE_OSD: 90 case QETH_CARD_TYPE_OSD:
91 return " Virtual NIC QDIO"; 91 return " Virtual NIC QDIO";
@@ -120,7 +120,7 @@ static const char *qeth_get_cardname(struct qeth_card *card)
120/* max length to be returned: 14 */ 120/* max length to be returned: 14 */
121const char *qeth_get_cardname_short(struct qeth_card *card) 121const char *qeth_get_cardname_short(struct qeth_card *card)
122{ 122{
123 if (card->info.guestlan) { 123 if (IS_VM_NIC(card)) {
124 switch (card->info.type) { 124 switch (card->info.type) {
125 case QETH_CARD_TYPE_OSD: 125 case QETH_CARD_TYPE_OSD:
126 return "Virt.NIC QDIO"; 126 return "Virt.NIC QDIO";
@@ -1330,7 +1330,7 @@ static void qeth_init_qdio_info(struct qeth_card *card)
1330 /* inbound */ 1330 /* inbound */
1331 card->qdio.no_in_queues = 1; 1331 card->qdio.no_in_queues = 1;
1332 card->qdio.in_buf_size = QETH_IN_BUF_SIZE_DEFAULT; 1332 card->qdio.in_buf_size = QETH_IN_BUF_SIZE_DEFAULT;
1333 if (card->info.type == QETH_CARD_TYPE_IQD) 1333 if (IS_IQD(card))
1334 card->qdio.init_pool.buf_count = QETH_IN_BUF_COUNT_HSDEFAULT; 1334 card->qdio.init_pool.buf_count = QETH_IN_BUF_COUNT_HSDEFAULT;
1335 else 1335 else
1336 card->qdio.init_pool.buf_count = QETH_IN_BUF_COUNT_DEFAULT; 1336 card->qdio.init_pool.buf_count = QETH_IN_BUF_COUNT_DEFAULT;
@@ -1554,7 +1554,7 @@ int qeth_qdio_clear_card(struct qeth_card *card, int use_halt)
1554 switch (atomic_cmpxchg(&card->qdio.state, QETH_QDIO_ESTABLISHED, 1554 switch (atomic_cmpxchg(&card->qdio.state, QETH_QDIO_ESTABLISHED,
1555 QETH_QDIO_CLEANING)) { 1555 QETH_QDIO_CLEANING)) {
1556 case QETH_QDIO_ESTABLISHED: 1556 case QETH_QDIO_ESTABLISHED:
1557 if (card->info.type == QETH_CARD_TYPE_IQD) 1557 if (IS_IQD(card))
1558 rc = qdio_shutdown(CARD_DDEV(card), 1558 rc = qdio_shutdown(CARD_DDEV(card),
1559 QDIO_FLAG_CLEANUP_USING_HALT); 1559 QDIO_FLAG_CLEANUP_USING_HALT);
1560 else 1560 else
@@ -1627,8 +1627,8 @@ static void qeth_configure_unitaddr(struct qeth_card *card, char *prcd)
1627 card->info.chpid = prcd[30]; 1627 card->info.chpid = prcd[30];
1628 card->info.unit_addr2 = prcd[31]; 1628 card->info.unit_addr2 = prcd[31];
1629 card->info.cula = prcd[63]; 1629 card->info.cula = prcd[63];
1630 card->info.guestlan = ((prcd[0x10] == _ascebc['V']) && 1630 card->info.is_vm_nic = ((prcd[0x10] == _ascebc['V']) &&
1631 (prcd[0x11] == _ascebc['M'])); 1631 (prcd[0x11] == _ascebc['M']));
1632} 1632}
1633 1633
1634static enum qeth_discipline_id qeth_vm_detect_layer(struct qeth_card *card) 1634static enum qeth_discipline_id qeth_vm_detect_layer(struct qeth_card *card)
@@ -1692,13 +1692,11 @@ static enum qeth_discipline_id qeth_enforce_discipline(struct qeth_card *card)
1692{ 1692{
1693 enum qeth_discipline_id disc = QETH_DISCIPLINE_UNDETERMINED; 1693 enum qeth_discipline_id disc = QETH_DISCIPLINE_UNDETERMINED;
1694 1694
1695 if (card->info.type == QETH_CARD_TYPE_OSM || 1695 if (IS_OSM(card) || IS_OSN(card))
1696 card->info.type == QETH_CARD_TYPE_OSN)
1697 disc = QETH_DISCIPLINE_LAYER2; 1696 disc = QETH_DISCIPLINE_LAYER2;
1698 else if (card->info.guestlan) 1697 else if (IS_VM_NIC(card))
1699 disc = (card->info.type == QETH_CARD_TYPE_IQD) ? 1698 disc = IS_IQD(card) ? QETH_DISCIPLINE_LAYER3 :
1700 QETH_DISCIPLINE_LAYER3 : 1699 qeth_vm_detect_layer(card);
1701 qeth_vm_detect_layer(card);
1702 1700
1703 switch (disc) { 1701 switch (disc) {
1704 case QETH_DISCIPLINE_LAYER2: 1702 case QETH_DISCIPLINE_LAYER2:
@@ -2217,7 +2215,7 @@ static int qeth_ulp_enable_cb(struct qeth_card *card, struct qeth_reply *reply,
2217 memcpy(&card->token.ulp_filter_r, 2215 memcpy(&card->token.ulp_filter_r,
2218 QETH_ULP_ENABLE_RESP_FILTER_TOKEN(iob->data), 2216 QETH_ULP_ENABLE_RESP_FILTER_TOKEN(iob->data),
2219 QETH_MPC_TOKEN_LENGTH); 2217 QETH_MPC_TOKEN_LENGTH);
2220 if (card->info.type == QETH_CARD_TYPE_IQD) { 2218 if (IS_IQD(card)) {
2221 memcpy(&framesize, QETH_ULP_ENABLE_RESP_MAX_MTU(iob->data), 2); 2219 memcpy(&framesize, QETH_ULP_ENABLE_RESP_MAX_MTU(iob->data), 2);
2222 mtu = qeth_get_mtu_outof_framesize(framesize); 2220 mtu = qeth_get_mtu_outof_framesize(framesize);
2223 } else { 2221 } else {
@@ -2555,7 +2553,7 @@ static int qeth_mpc_initialize(struct qeth_card *card)
2555 2553
2556 return 0; 2554 return 0;
2557out_qdio: 2555out_qdio:
2558 qeth_qdio_clear_card(card, card->info.type != QETH_CARD_TYPE_IQD); 2556 qeth_qdio_clear_card(card, !IS_IQD(card));
2559 qdio_free(CARD_DDEV(card)); 2557 qdio_free(CARD_DDEV(card));
2560 return rc; 2558 return rc;
2561} 2559}
@@ -2578,8 +2576,7 @@ void qeth_print_status_message(struct qeth_card *card)
2578 } 2576 }
2579 /* fallthrough */ 2577 /* fallthrough */
2580 case QETH_CARD_TYPE_IQD: 2578 case QETH_CARD_TYPE_IQD:
2581 if ((card->info.guestlan) || 2579 if (IS_VM_NIC(card) || (card->info.mcl_level[0] & 0x80)) {
2582 (card->info.mcl_level[0] & 0x80)) {
2583 card->info.mcl_level[0] = (char) _ebcasc[(__u8) 2580 card->info.mcl_level[0] = (char) _ebcasc[(__u8)
2584 card->info.mcl_level[0]]; 2581 card->info.mcl_level[0]];
2585 card->info.mcl_level[1] = (char) _ebcasc[(__u8) 2582 card->info.mcl_level[1] = (char) _ebcasc[(__u8)
@@ -3237,7 +3234,7 @@ static void qeth_handle_send_error(struct qeth_card *card,
3237 int sbalf15 = buffer->buffer->element[15].sflags; 3234 int sbalf15 = buffer->buffer->element[15].sflags;
3238 3235
3239 QETH_CARD_TEXT(card, 6, "hdsnderr"); 3236 QETH_CARD_TEXT(card, 6, "hdsnderr");
3240 if (card->info.type == QETH_CARD_TYPE_IQD) { 3237 if (IS_IQD(card)) {
3241 if (sbalf15 == 0) { 3238 if (sbalf15 == 0) {
3242 qdio_err = 0; 3239 qdio_err = 0;
3243 } else { 3240 } else {
@@ -3334,7 +3331,7 @@ static void qeth_flush_buffers(struct qeth_qdio_out_q *queue, int index,
3334 if (queue->bufstates) 3331 if (queue->bufstates)
3335 queue->bufstates[bidx].user = buf; 3332 queue->bufstates[bidx].user = buf;
3336 3333
3337 if (queue->card->info.type == QETH_CARD_TYPE_IQD) 3334 if (IS_IQD(queue->card))
3338 continue; 3335 continue;
3339 3336
3340 if (!queue->do_pack) { 3337 if (!queue->do_pack) {
@@ -3585,7 +3582,7 @@ static void qeth_qdio_output_handler(struct ccw_device *ccwdev,
3585 } 3582 }
3586 atomic_sub(count, &queue->used_buffers); 3583 atomic_sub(count, &queue->used_buffers);
3587 /* check if we need to do something on this outbound queue */ 3584 /* check if we need to do something on this outbound queue */
3588 if (card->info.type != QETH_CARD_TYPE_IQD) 3585 if (!IS_IQD(card))
3589 qeth_check_outbound_queue(queue); 3586 qeth_check_outbound_queue(queue);
3590 3587
3591 if (IS_IQD(card)) 3588 if (IS_IQD(card))
@@ -4336,9 +4333,8 @@ int qeth_set_access_ctrl_online(struct qeth_card *card, int fallback)
4336 4333
4337 QETH_CARD_TEXT(card, 4, "setactlo"); 4334 QETH_CARD_TEXT(card, 4, "setactlo");
4338 4335
4339 if ((card->info.type == QETH_CARD_TYPE_OSD || 4336 if ((IS_OSD(card) || IS_OSX(card)) &&
4340 card->info.type == QETH_CARD_TYPE_OSX) && 4337 qeth_adp_supported(card, IPA_SETADP_SET_ACCESS_CONTROL)) {
4341 qeth_adp_supported(card, IPA_SETADP_SET_ACCESS_CONTROL)) {
4342 rc = qeth_setadpparms_set_access_ctrl(card, 4338 rc = qeth_setadpparms_set_access_ctrl(card,
4343 card->options.isolation, fallback); 4339 card->options.isolation, fallback);
4344 if (rc) { 4340 if (rc) {
@@ -4503,7 +4499,7 @@ static int qeth_snmp_command(struct qeth_card *card, char __user *udata)
4503 4499
4504 QETH_CARD_TEXT(card, 3, "snmpcmd"); 4500 QETH_CARD_TEXT(card, 3, "snmpcmd");
4505 4501
4506 if (card->info.guestlan) 4502 if (IS_VM_NIC(card))
4507 return -EOPNOTSUPP; 4503 return -EOPNOTSUPP;
4508 4504
4509 if ((!qeth_adp_supported(card, IPA_SETADP_SET_SNMP_CONTROL)) && 4505 if ((!qeth_adp_supported(card, IPA_SETADP_SET_SNMP_CONTROL)) &&
@@ -4746,14 +4742,6 @@ out:
4746} 4742}
4747EXPORT_SYMBOL_GPL(qeth_vm_request_mac); 4743EXPORT_SYMBOL_GPL(qeth_vm_request_mac);
4748 4744
4749static int qeth_get_qdio_q_format(struct qeth_card *card)
4750{
4751 if (card->info.type == QETH_CARD_TYPE_IQD)
4752 return QDIO_IQDIO_QFMT;
4753 else
4754 return QDIO_QETH_QFMT;
4755}
4756
4757static void qeth_determine_capabilities(struct qeth_card *card) 4745static void qeth_determine_capabilities(struct qeth_card *card)
4758{ 4746{
4759 int rc; 4747 int rc;
@@ -4892,7 +4880,8 @@ static int qeth_qdio_establish(struct qeth_card *card)
4892 4880
4893 memset(&init_data, 0, sizeof(struct qdio_initialize)); 4881 memset(&init_data, 0, sizeof(struct qdio_initialize));
4894 init_data.cdev = CARD_DDEV(card); 4882 init_data.cdev = CARD_DDEV(card);
4895 init_data.q_format = qeth_get_qdio_q_format(card); 4883 init_data.q_format = IS_IQD(card) ? QDIO_IQDIO_QFMT :
4884 QDIO_QETH_QFMT;
4896 init_data.qib_param_field_format = 0; 4885 init_data.qib_param_field_format = 0;
4897 init_data.qib_param_field = qib_param_field; 4886 init_data.qib_param_field = qib_param_field;
4898 init_data.no_input_qs = card->qdio.no_in_queues; 4887 init_data.no_input_qs = card->qdio.no_in_queues;
@@ -4904,8 +4893,7 @@ static int qeth_qdio_establish(struct qeth_card *card)
4904 init_data.input_sbal_addr_array = in_sbal_ptrs; 4893 init_data.input_sbal_addr_array = in_sbal_ptrs;
4905 init_data.output_sbal_addr_array = out_sbal_ptrs; 4894 init_data.output_sbal_addr_array = out_sbal_ptrs;
4906 init_data.output_sbal_state_array = card->qdio.out_bufstates; 4895 init_data.output_sbal_state_array = card->qdio.out_bufstates;
4907 init_data.scan_threshold = 4896 init_data.scan_threshold = IS_IQD(card) ? 1 : 32;
4908 (card->info.type == QETH_CARD_TYPE_IQD) ? 1 : 32;
4909 4897
4910 if (atomic_cmpxchg(&card->qdio.state, QETH_QDIO_ALLOCATED, 4898 if (atomic_cmpxchg(&card->qdio.state, QETH_QDIO_ALLOCATED,
4911 QETH_QDIO_ESTABLISHED) == QETH_QDIO_ALLOCATED) { 4899 QETH_QDIO_ESTABLISHED) == QETH_QDIO_ALLOCATED) {
@@ -5007,7 +4995,7 @@ retry:
5007 if (retries < 3) 4995 if (retries < 3)
5008 QETH_DBF_MESSAGE(2, "Retrying to do IDX activates on device %x.\n", 4996 QETH_DBF_MESSAGE(2, "Retrying to do IDX activates on device %x.\n",
5009 CARD_DEVID(card)); 4997 CARD_DEVID(card));
5010 rc = qeth_qdio_clear_card(card, card->info.type != QETH_CARD_TYPE_IQD); 4998 rc = qeth_qdio_clear_card(card, !IS_IQD(card));
5011 ccw_device_set_offline(CARD_DDEV(card)); 4999 ccw_device_set_offline(CARD_DDEV(card));
5012 ccw_device_set_offline(CARD_WDEV(card)); 5000 ccw_device_set_offline(CARD_WDEV(card));
5013 ccw_device_set_offline(CARD_RDEV(card)); 5001 ccw_device_set_offline(CARD_RDEV(card));
@@ -5189,7 +5177,7 @@ struct sk_buff *qeth_core_get_next_skb(struct qeth_card *card,
5189 return NULL; 5177 return NULL;
5190 5178
5191 if (((skb_len >= card->options.rx_sg_cb) && 5179 if (((skb_len >= card->options.rx_sg_cb) &&
5192 (!(card->info.type == QETH_CARD_TYPE_OSN)) && 5180 !IS_OSN(card) &&
5193 (!atomic_read(&card->force_alloc_skb))) || 5181 (!atomic_read(&card->force_alloc_skb))) ||
5194 (card->options.cq == QETH_CQ_ENABLED)) 5182 (card->options.cq == QETH_CQ_ENABLED))
5195 use_rx_sg = 1; 5183 use_rx_sg = 1;
@@ -5687,9 +5675,8 @@ static int qeth_core_probe_device(struct ccwgroup_device *gdev)
5687 if (rc) 5675 if (rc)
5688 goto err_load; 5676 goto err_load;
5689 5677
5690 gdev->dev.type = (card->info.type != QETH_CARD_TYPE_OSN) 5678 gdev->dev.type = IS_OSN(card) ? &qeth_osn_devtype :
5691 ? card->discipline->devtype 5679 card->discipline->devtype;
5692 : &qeth_osn_devtype;
5693 rc = card->discipline->setup(card->gdev); 5680 rc = card->discipline->setup(card->gdev);
5694 if (rc) 5681 if (rc)
5695 goto err_disc; 5682 goto err_disc;
@@ -5733,10 +5720,8 @@ static int qeth_core_set_online(struct ccwgroup_device *gdev)
5733 enum qeth_discipline_id def_discipline; 5720 enum qeth_discipline_id def_discipline;
5734 5721
5735 if (!card->discipline) { 5722 if (!card->discipline) {
5736 if (card->info.type == QETH_CARD_TYPE_IQD) 5723 def_discipline = IS_IQD(card) ? QETH_DISCIPLINE_LAYER3 :
5737 def_discipline = QETH_DISCIPLINE_LAYER3; 5724 QETH_DISCIPLINE_LAYER2;
5738 else
5739 def_discipline = QETH_DISCIPLINE_LAYER2;
5740 rc = qeth_core_load_discipline(card, def_discipline); 5725 rc = qeth_core_load_discipline(card, def_discipline);
5741 if (rc) 5726 if (rc)
5742 goto err; 5727 goto err;
@@ -5864,13 +5849,10 @@ int qeth_do_ioctl(struct net_device *dev, struct ifreq *rq, int cmd)
5864 rc = qeth_snmp_command(card, rq->ifr_ifru.ifru_data); 5849 rc = qeth_snmp_command(card, rq->ifr_ifru.ifru_data);
5865 break; 5850 break;
5866 case SIOC_QETH_GET_CARD_TYPE: 5851 case SIOC_QETH_GET_CARD_TYPE:
5867 if ((card->info.type == QETH_CARD_TYPE_OSD || 5852 if ((IS_OSD(card) || IS_OSM(card) || IS_OSX(card)) &&
5868 card->info.type == QETH_CARD_TYPE_OSM || 5853 !IS_VM_NIC(card))
5869 card->info.type == QETH_CARD_TYPE_OSX) &&
5870 !card->info.guestlan)
5871 return 1; 5854 return 1;
5872 else 5855 return 0;
5873 return 0;
5874 case SIOCGMIIPHY: 5856 case SIOCGMIIPHY:
5875 mii_data = if_mii(rq); 5857 mii_data = if_mii(rq);
5876 mii_data->phy_id = 0; 5858 mii_data->phy_id = 0;
diff --git a/drivers/s390/net/qeth_core_mpc.h b/drivers/s390/net/qeth_core_mpc.h
index f8c5d4a9be13..f5237b7c14c4 100644
--- a/drivers/s390/net/qeth_core_mpc.h
+++ b/drivers/s390/net/qeth_core_mpc.h
@@ -82,7 +82,7 @@ enum qeth_card_types {
82#define IS_OSM(card) ((card)->info.type == QETH_CARD_TYPE_OSM) 82#define IS_OSM(card) ((card)->info.type == QETH_CARD_TYPE_OSM)
83#define IS_OSN(card) ((card)->info.type == QETH_CARD_TYPE_OSN) 83#define IS_OSN(card) ((card)->info.type == QETH_CARD_TYPE_OSN)
84#define IS_OSX(card) ((card)->info.type == QETH_CARD_TYPE_OSX) 84#define IS_OSX(card) ((card)->info.type == QETH_CARD_TYPE_OSX)
85#define IS_VM_NIC(card) ((card)->info.guestlan) 85#define IS_VM_NIC(card) ((card)->info.is_vm_nic)
86 86
87#define QETH_MPC_DIFINFO_LEN_INDICATES_LINK_TYPE 0x18 87#define QETH_MPC_DIFINFO_LEN_INDICATES_LINK_TYPE 0x18
88/* only the first two bytes are looked at in qeth_get_cardname_short */ 88/* only the first two bytes are looked at in qeth_get_cardname_short */
diff --git a/drivers/s390/net/qeth_core_sys.c b/drivers/s390/net/qeth_core_sys.c
index cea4a0bbc303..9f392497d570 100644
--- a/drivers/s390/net/qeth_core_sys.c
+++ b/drivers/s390/net/qeth_core_sys.c
@@ -479,8 +479,7 @@ static ssize_t qeth_dev_isolation_store(struct device *dev,
479 return -EINVAL; 479 return -EINVAL;
480 480
481 mutex_lock(&card->conf_mutex); 481 mutex_lock(&card->conf_mutex);
482 if (card->info.type != QETH_CARD_TYPE_OSD && 482 if (!IS_OSD(card) && !IS_OSX(card)) {
483 card->info.type != QETH_CARD_TYPE_OSX) {
484 rc = -EOPNOTSUPP; 483 rc = -EOPNOTSUPP;
485 dev_err(&card->gdev->dev, "Adapter does not " 484 dev_err(&card->gdev->dev, "Adapter does not "
486 "support QDIO data connection isolation\n"); 485 "support QDIO data connection isolation\n");
diff --git a/drivers/s390/net/qeth_l2_main.c b/drivers/s390/net/qeth_l2_main.c
index 07bfb110906d..fb21136c0ec2 100644
--- a/drivers/s390/net/qeth_l2_main.c
+++ b/drivers/s390/net/qeth_l2_main.c
@@ -336,7 +336,7 @@ static int qeth_l2_process_inbound_buffer(struct qeth_card *card,
336 napi_gro_receive(&card->napi, skb); 336 napi_gro_receive(&card->napi, skb);
337 break; 337 break;
338 case QETH_HEADER_TYPE_OSN: 338 case QETH_HEADER_TYPE_OSN:
339 if (card->info.type == QETH_CARD_TYPE_OSN) { 339 if (IS_OSN(card)) {
340 skb_push(skb, sizeof(struct qeth_hdr)); 340 skb_push(skb, sizeof(struct qeth_hdr));
341 skb_copy_to_linear_data(skb, hdr, 341 skb_copy_to_linear_data(skb, hdr,
342 sizeof(struct qeth_hdr)); 342 sizeof(struct qeth_hdr));
@@ -387,8 +387,7 @@ static int qeth_l2_request_initial_mac(struct qeth_card *card)
387 } 387 }
388 388
389 /* some devices don't support a custom MAC address: */ 389 /* some devices don't support a custom MAC address: */
390 if (card->info.type == QETH_CARD_TYPE_OSM || 390 if (IS_OSM(card) || IS_OSX(card))
391 card->info.type == QETH_CARD_TYPE_OSX)
392 return (rc) ? rc : -EADDRNOTAVAIL; 391 return (rc) ? rc : -EADDRNOTAVAIL;
393 eth_hw_addr_random(card->dev); 392 eth_hw_addr_random(card->dev);
394 393
@@ -733,7 +732,7 @@ static int qeth_l2_setup_netdev(struct qeth_card *card, bool carrier_ok)
733 card->dev->features |= NETIF_F_HW_VLAN_CTAG_FILTER; 732 card->dev->features |= NETIF_F_HW_VLAN_CTAG_FILTER;
734 } 733 }
735 734
736 if (card->info.type == QETH_CARD_TYPE_OSD && !card->info.guestlan) { 735 if (IS_OSD(card) && !IS_VM_NIC(card)) {
737 card->dev->features |= NETIF_F_SG; 736 card->dev->features |= NETIF_F_SG;
738 /* OSA 3S and earlier has no RX/TX support */ 737 /* OSA 3S and earlier has no RX/TX support */
739 if (qeth_is_supported(card, IPA_OUTBOUND_CHECKSUM)) { 738 if (qeth_is_supported(card, IPA_OUTBOUND_CHECKSUM)) {
@@ -843,8 +842,7 @@ static int qeth_l2_set_online(struct ccwgroup_device *gdev)
843 /* softsetup */ 842 /* softsetup */
844 QETH_DBF_TEXT(SETUP, 2, "softsetp"); 843 QETH_DBF_TEXT(SETUP, 2, "softsetp");
845 844
846 if ((card->info.type == QETH_CARD_TYPE_OSD) || 845 if (IS_OSD(card) || IS_OSX(card)) {
847 (card->info.type == QETH_CARD_TYPE_OSX)) {
848 rc = qeth_l2_start_ipassists(card); 846 rc = qeth_l2_start_ipassists(card);
849 if (rc) 847 if (rc)
850 goto out_remove; 848 goto out_remove;
@@ -1468,9 +1466,8 @@ static struct qeth_cmd_buffer *qeth_sbp_build_cmd(struct qeth_card *card,
1468 enum qeth_ipa_sbp_cmd sbp_cmd, 1466 enum qeth_ipa_sbp_cmd sbp_cmd,
1469 unsigned int cmd_length) 1467 unsigned int cmd_length)
1470{ 1468{
1471 enum qeth_ipa_cmds ipa_cmd = (card->info.type == QETH_CARD_TYPE_IQD) ? 1469 enum qeth_ipa_cmds ipa_cmd = IS_IQD(card) ? IPA_CMD_SETBRIDGEPORT_IQD :
1472 IPA_CMD_SETBRIDGEPORT_IQD : 1470 IPA_CMD_SETBRIDGEPORT_OSA;
1473 IPA_CMD_SETBRIDGEPORT_OSA;
1474 struct qeth_cmd_buffer *iob; 1471 struct qeth_cmd_buffer *iob;
1475 struct qeth_ipa_cmd *cmd; 1472 struct qeth_ipa_cmd *cmd;
1476 1473
diff --git a/drivers/s390/net/qeth_l3_main.c b/drivers/s390/net/qeth_l3_main.c
index 4c9394105138..8fd634229871 100644
--- a/drivers/s390/net/qeth_l3_main.c
+++ b/drivers/s390/net/qeth_l3_main.c
@@ -474,7 +474,7 @@ static int qeth_l3_send_setrouting(struct qeth_card *card,
474static int qeth_l3_correct_routing_type(struct qeth_card *card, 474static int qeth_l3_correct_routing_type(struct qeth_card *card,
475 enum qeth_routing_types *type, enum qeth_prot_versions prot) 475 enum qeth_routing_types *type, enum qeth_prot_versions prot)
476{ 476{
477 if (card->info.type == QETH_CARD_TYPE_IQD) { 477 if (IS_IQD(card)) {
478 switch (*type) { 478 switch (*type) {
479 case NO_ROUTER: 479 case NO_ROUTER:
480 case PRIMARY_CONNECTOR: 480 case PRIMARY_CONNECTOR:
@@ -854,7 +854,7 @@ static int qeth_l3_softsetup_ipv6(struct qeth_card *card)
854 854
855 QETH_CARD_TEXT(card, 3, "softipv6"); 855 QETH_CARD_TEXT(card, 3, "softipv6");
856 856
857 if (card->info.type == QETH_CARD_TYPE_IQD) 857 if (IS_IQD(card))
858 goto out; 858 goto out;
859 859
860 rc = qeth_send_simple_setassparms(card, IPA_IPV6, 860 rc = qeth_send_simple_setassparms(card, IPA_IPV6,
@@ -1380,8 +1380,7 @@ static int qeth_l3_process_inbound_buffer(struct qeth_card *card,
1380 switch (hdr->hdr.l3.id) { 1380 switch (hdr->hdr.l3.id) {
1381 case QETH_HEADER_TYPE_LAYER3: 1381 case QETH_HEADER_TYPE_LAYER3:
1382 magic = *(__u16 *)skb->data; 1382 magic = *(__u16 *)skb->data;
1383 if ((card->info.type == QETH_CARD_TYPE_IQD) && 1383 if (IS_IQD(card) && magic == ETH_P_AF_IUCV) {
1384 (magic == ETH_P_AF_IUCV)) {
1385 len = skb->len; 1384 len = skb->len;
1386 dev_hard_header(skb, dev, ETH_P_AF_IUCV, 1385 dev_hard_header(skb, dev, ETH_P_AF_IUCV,
1387 dev->dev_addr, "FAKELL", len); 1386 dev->dev_addr, "FAKELL", len);
@@ -1460,7 +1459,7 @@ qeth_l3_handle_promisc_mode(struct qeth_card *card)
1460 (card->info.promisc_mode == SET_PROMISC_MODE_OFF))) 1459 (card->info.promisc_mode == SET_PROMISC_MODE_OFF)))
1461 return; 1460 return;
1462 1461
1463 if (card->info.guestlan) { /* Guestlan trace */ 1462 if (IS_VM_NIC(card)) { /* Guestlan trace */
1464 if (qeth_adp_supported(card, IPA_SETADP_SET_PROMISC_MODE)) 1463 if (qeth_adp_supported(card, IPA_SETADP_SET_PROMISC_MODE))
1465 qeth_setadp_promisc_mode(card); 1464 qeth_setadp_promisc_mode(card);
1466 } else if (card->options.sniffer && /* HiperSockets trace */ 1465 } else if (card->options.sniffer && /* HiperSockets trace */
@@ -1557,7 +1556,7 @@ static int qeth_l3_arp_set_no_entries(struct qeth_card *card, int no_entries)
1557 * IPA_CMD_ASS_ARP_QUERY_INFO, but not IPA_CMD_ASS_ARP_SET_NO_ENTRIES; 1556 * IPA_CMD_ASS_ARP_QUERY_INFO, but not IPA_CMD_ASS_ARP_SET_NO_ENTRIES;
1558 * thus we say EOPNOTSUPP for this ARP function 1557 * thus we say EOPNOTSUPP for this ARP function
1559 */ 1558 */
1560 if (card->info.guestlan) 1559 if (IS_VM_NIC(card))
1561 return -EOPNOTSUPP; 1560 return -EOPNOTSUPP;
1562 if (!qeth_is_supported(card, IPA_ARP_PROCESSING)) { 1561 if (!qeth_is_supported(card, IPA_ARP_PROCESSING)) {
1563 return -EOPNOTSUPP; 1562 return -EOPNOTSUPP;
@@ -1789,7 +1788,7 @@ static int qeth_l3_arp_modify_entry(struct qeth_card *card,
1789 * IPA_CMD_ASS_ARP_QUERY_INFO, but not IPA_CMD_ASS_ARP_ADD_ENTRY; 1788 * IPA_CMD_ASS_ARP_QUERY_INFO, but not IPA_CMD_ASS_ARP_ADD_ENTRY;
1790 * thus we say EOPNOTSUPP for this ARP function 1789 * thus we say EOPNOTSUPP for this ARP function
1791 */ 1790 */
1792 if (card->info.guestlan) 1791 if (IS_VM_NIC(card))
1793 return -EOPNOTSUPP; 1792 return -EOPNOTSUPP;
1794 if (!qeth_is_supported(card, IPA_ARP_PROCESSING)) { 1793 if (!qeth_is_supported(card, IPA_ARP_PROCESSING)) {
1795 return -EOPNOTSUPP; 1794 return -EOPNOTSUPP;
@@ -1822,7 +1821,7 @@ static int qeth_l3_arp_flush_cache(struct qeth_card *card)
1822 * IPA_CMD_ASS_ARP_QUERY_INFO, but not IPA_CMD_ASS_ARP_FLUSH_CACHE; 1821 * IPA_CMD_ASS_ARP_QUERY_INFO, but not IPA_CMD_ASS_ARP_FLUSH_CACHE;
1823 * thus we say EOPNOTSUPP for this ARP function 1822 * thus we say EOPNOTSUPP for this ARP function
1824 */ 1823 */
1825 if (card->info.guestlan || (card->info.type == QETH_CARD_TYPE_IQD)) 1824 if (IS_VM_NIC(card) || IS_IQD(card))
1826 return -EOPNOTSUPP; 1825 return -EOPNOTSUPP;
1827 if (!qeth_is_supported(card, IPA_ARP_PROCESSING)) { 1826 if (!qeth_is_supported(card, IPA_ARP_PROCESSING)) {
1828 return -EOPNOTSUPP; 1827 return -EOPNOTSUPP;
@@ -2013,7 +2012,7 @@ static void qeth_l3_fill_header(struct qeth_qdio_out_q *queue,
2013 l3_hdr->next_hop.ipv6_addr = ipv6_hdr(skb)->daddr; 2012 l3_hdr->next_hop.ipv6_addr = ipv6_hdr(skb)->daddr;
2014 2013
2015 hdr->hdr.l3.flags |= QETH_HDR_IPV6; 2014 hdr->hdr.l3.flags |= QETH_HDR_IPV6;
2016 if (card->info.type != QETH_CARD_TYPE_IQD) 2015 if (!IS_IQD(card))
2017 hdr->hdr.l3.flags |= QETH_HDR_PASSTHRU; 2016 hdr->hdr.l3.flags |= QETH_HDR_PASSTHRU;
2018 } 2017 }
2019 rcu_read_unlock(); 2018 rcu_read_unlock();
@@ -2195,8 +2194,7 @@ static int qeth_l3_setup_netdev(struct qeth_card *card, bool carrier_ok)
2195 unsigned int headroom; 2194 unsigned int headroom;
2196 int rc; 2195 int rc;
2197 2196
2198 if (card->info.type == QETH_CARD_TYPE_OSD || 2197 if (IS_OSD(card) || IS_OSX(card)) {
2199 card->info.type == QETH_CARD_TYPE_OSX) {
2200 if ((card->info.link_type == QETH_LINK_TYPE_LANE_TR) || 2198 if ((card->info.link_type == QETH_LINK_TYPE_LANE_TR) ||
2201 (card->info.link_type == QETH_LINK_TYPE_HSTR)) { 2199 (card->info.link_type == QETH_LINK_TYPE_HSTR)) {
2202 pr_info("qeth_l3: ignoring TR device\n"); 2200 pr_info("qeth_l3: ignoring TR device\n");
@@ -2210,7 +2208,7 @@ static int qeth_l3_setup_netdev(struct qeth_card *card, bool carrier_ok)
2210 if (!(card->info.unique_id & UNIQUE_ID_NOT_BY_CARD)) 2208 if (!(card->info.unique_id & UNIQUE_ID_NOT_BY_CARD))
2211 card->dev->dev_id = card->info.unique_id & 0xffff; 2209 card->dev->dev_id = card->info.unique_id & 0xffff;
2212 2210
2213 if (!card->info.guestlan) { 2211 if (!IS_VM_NIC(card)) {
2214 card->dev->features |= NETIF_F_SG; 2212 card->dev->features |= NETIF_F_SG;
2215 card->dev->hw_features |= NETIF_F_TSO | 2213 card->dev->hw_features |= NETIF_F_TSO |
2216 NETIF_F_RXCSUM | NETIF_F_IP_CSUM; 2214 NETIF_F_RXCSUM | NETIF_F_IP_CSUM;
@@ -2234,7 +2232,7 @@ static int qeth_l3_setup_netdev(struct qeth_card *card, bool carrier_ok)
2234 headroom = sizeof(struct qeth_hdr_tso); 2232 headroom = sizeof(struct qeth_hdr_tso);
2235 else 2233 else
2236 headroom = sizeof(struct qeth_hdr) + VLAN_HLEN; 2234 headroom = sizeof(struct qeth_hdr) + VLAN_HLEN;
2237 } else if (card->info.type == QETH_CARD_TYPE_IQD) { 2235 } else if (IS_IQD(card)) {
2238 card->dev->flags |= IFF_NOARP; 2236 card->dev->flags |= IFF_NOARP;
2239 card->dev->netdev_ops = &qeth_l3_netdev_ops; 2237 card->dev->netdev_ops = &qeth_l3_netdev_ops;
2240 headroom = sizeof(struct qeth_hdr) - ETH_HLEN; 2238 headroom = sizeof(struct qeth_hdr) - ETH_HLEN;
diff --git a/drivers/s390/net/qeth_l3_sys.c b/drivers/s390/net/qeth_l3_sys.c
index 327b25f9ca4a..2f73b33c9347 100644
--- a/drivers/s390/net/qeth_l3_sys.c
+++ b/drivers/s390/net/qeth_l3_sys.c
@@ -206,7 +206,7 @@ static ssize_t qeth_l3_dev_sniffer_store(struct device *dev,
206 if (!card) 206 if (!card)
207 return -EINVAL; 207 return -EINVAL;
208 208
209 if (card->info.type != QETH_CARD_TYPE_IQD) 209 if (!IS_IQD(card))
210 return -EPERM; 210 return -EPERM;
211 if (card->options.cq == QETH_CQ_ENABLED) 211 if (card->options.cq == QETH_CQ_ENABLED)
212 return -EPERM; 212 return -EPERM;
@@ -258,7 +258,7 @@ static ssize_t qeth_l3_dev_hsuid_show(struct device *dev,
258 if (!card) 258 if (!card)
259 return -EINVAL; 259 return -EINVAL;
260 260
261 if (card->info.type != QETH_CARD_TYPE_IQD) 261 if (!IS_IQD(card))
262 return -EPERM; 262 return -EPERM;
263 263
264 memcpy(tmp_hsuid, card->options.hsuid, sizeof(tmp_hsuid)); 264 memcpy(tmp_hsuid, card->options.hsuid, sizeof(tmp_hsuid));
@@ -276,7 +276,7 @@ static ssize_t qeth_l3_dev_hsuid_store(struct device *dev,
276 if (!card) 276 if (!card)
277 return -EINVAL; 277 return -EINVAL;
278 278
279 if (card->info.type != QETH_CARD_TYPE_IQD) 279 if (!IS_IQD(card))
280 return -EPERM; 280 return -EPERM;
281 if (card->state != CARD_STATE_DOWN) 281 if (card->state != CARD_STATE_DOWN)
282 return -EPERM; 282 return -EPERM;