diff options
author | Julian Wiedmann <jwi@linux.ibm.com> | 2019-04-25 12:25:57 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2019-04-26 11:14:06 -0400 |
commit | 379ac99e5192f98c560b22ae2a3dbaa97c043cc8 (patch) | |
tree | 9fb377b3255290cd0f86a2ba53604067ff630326 /drivers/s390 | |
parent | 5c0bfba780ba96a2e656abfa677155c935153aaa (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.h | 2 | ||||
-rw-r--r-- | drivers/s390/net/qeth_core_main.c | 80 | ||||
-rw-r--r-- | drivers/s390/net/qeth_core_mpc.h | 2 | ||||
-rw-r--r-- | drivers/s390/net/qeth_core_sys.c | 3 | ||||
-rw-r--r-- | drivers/s390/net/qeth_l2_main.c | 15 | ||||
-rw-r--r-- | drivers/s390/net/qeth_l3_main.c | 24 | ||||
-rw-r--r-- | drivers/s390/net/qeth_l3_sys.c | 6 |
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 | ||
86 | static const char *qeth_get_cardname(struct qeth_card *card) | 86 | static 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 */ |
121 | const char *qeth_get_cardname_short(struct qeth_card *card) | 121 | const 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 | ||
1634 | static enum qeth_discipline_id qeth_vm_detect_layer(struct qeth_card *card) | 1634 | static 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; |
2557 | out_qdio: | 2555 | out_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 | } |
4747 | EXPORT_SYMBOL_GPL(qeth_vm_request_mac); | 4743 | EXPORT_SYMBOL_GPL(qeth_vm_request_mac); |
4748 | 4744 | ||
4749 | static 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 | |||
4757 | static void qeth_determine_capabilities(struct qeth_card *card) | 4745 | static 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, | |||
474 | static int qeth_l3_correct_routing_type(struct qeth_card *card, | 474 | static 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; |