static const char *qeth_get_cardname(struct qeth_card *card)
 {
-       if (card->info.guestlan) {
+       if (IS_VM_NIC(card)) {
                switch (card->info.type) {
                case QETH_CARD_TYPE_OSD:
                        return " Virtual NIC QDIO";
 /* max length to be returned: 14 */
 const char *qeth_get_cardname_short(struct qeth_card *card)
 {
-       if (card->info.guestlan) {
+       if (IS_VM_NIC(card)) {
                switch (card->info.type) {
                case QETH_CARD_TYPE_OSD:
                        return "Virt.NIC QDIO";
        /* inbound */
        card->qdio.no_in_queues = 1;
        card->qdio.in_buf_size = QETH_IN_BUF_SIZE_DEFAULT;
-       if (card->info.type == QETH_CARD_TYPE_IQD)
+       if (IS_IQD(card))
                card->qdio.init_pool.buf_count = QETH_IN_BUF_COUNT_HSDEFAULT;
        else
                card->qdio.init_pool.buf_count = QETH_IN_BUF_COUNT_DEFAULT;
        switch (atomic_cmpxchg(&card->qdio.state, QETH_QDIO_ESTABLISHED,
                QETH_QDIO_CLEANING)) {
        case QETH_QDIO_ESTABLISHED:
-               if (card->info.type == QETH_CARD_TYPE_IQD)
+               if (IS_IQD(card))
                        rc = qdio_shutdown(CARD_DDEV(card),
                                QDIO_FLAG_CLEANUP_USING_HALT);
                else
        card->info.chpid = prcd[30];
        card->info.unit_addr2 = prcd[31];
        card->info.cula = prcd[63];
-       card->info.guestlan = ((prcd[0x10] == _ascebc['V']) &&
-                              (prcd[0x11] == _ascebc['M']));
+       card->info.is_vm_nic = ((prcd[0x10] == _ascebc['V']) &&
+                               (prcd[0x11] == _ascebc['M']));
 }
 
 static enum qeth_discipline_id qeth_vm_detect_layer(struct qeth_card *card)
 {
        enum qeth_discipline_id disc = QETH_DISCIPLINE_UNDETERMINED;
 
-       if (card->info.type == QETH_CARD_TYPE_OSM ||
-           card->info.type == QETH_CARD_TYPE_OSN)
+       if (IS_OSM(card) || IS_OSN(card))
                disc = QETH_DISCIPLINE_LAYER2;
-       else if (card->info.guestlan)
-               disc = (card->info.type == QETH_CARD_TYPE_IQD) ?
-                               QETH_DISCIPLINE_LAYER3 :
-                               qeth_vm_detect_layer(card);
+       else if (IS_VM_NIC(card))
+               disc = IS_IQD(card) ? QETH_DISCIPLINE_LAYER3 :
+                                     qeth_vm_detect_layer(card);
 
        switch (disc) {
        case QETH_DISCIPLINE_LAYER2:
        memcpy(&card->token.ulp_filter_r,
               QETH_ULP_ENABLE_RESP_FILTER_TOKEN(iob->data),
               QETH_MPC_TOKEN_LENGTH);
-       if (card->info.type == QETH_CARD_TYPE_IQD) {
+       if (IS_IQD(card)) {
                memcpy(&framesize, QETH_ULP_ENABLE_RESP_MAX_MTU(iob->data), 2);
                mtu = qeth_get_mtu_outof_framesize(framesize);
        } else {
 
        return 0;
 out_qdio:
-       qeth_qdio_clear_card(card, card->info.type != QETH_CARD_TYPE_IQD);
+       qeth_qdio_clear_card(card, !IS_IQD(card));
        qdio_free(CARD_DDEV(card));
        return rc;
 }
                }
                /* fallthrough */
        case QETH_CARD_TYPE_IQD:
-               if ((card->info.guestlan) ||
-                   (card->info.mcl_level[0] & 0x80)) {
+               if (IS_VM_NIC(card) || (card->info.mcl_level[0] & 0x80)) {
                        card->info.mcl_level[0] = (char) _ebcasc[(__u8)
                                card->info.mcl_level[0]];
                        card->info.mcl_level[1] = (char) _ebcasc[(__u8)
        int sbalf15 = buffer->buffer->element[15].sflags;
 
        QETH_CARD_TEXT(card, 6, "hdsnderr");
-       if (card->info.type == QETH_CARD_TYPE_IQD) {
+       if (IS_IQD(card)) {
                if (sbalf15 == 0) {
                        qdio_err = 0;
                } else {
                if (queue->bufstates)
                        queue->bufstates[bidx].user = buf;
 
-               if (queue->card->info.type == QETH_CARD_TYPE_IQD)
+               if (IS_IQD(queue->card))
                        continue;
 
                if (!queue->do_pack) {
        }
        atomic_sub(count, &queue->used_buffers);
        /* check if we need to do something on this outbound queue */
-       if (card->info.type != QETH_CARD_TYPE_IQD)
+       if (!IS_IQD(card))
                qeth_check_outbound_queue(queue);
 
        if (IS_IQD(card))
 
        QETH_CARD_TEXT(card, 4, "setactlo");
 
-       if ((card->info.type == QETH_CARD_TYPE_OSD ||
-            card->info.type == QETH_CARD_TYPE_OSX) &&
-            qeth_adp_supported(card, IPA_SETADP_SET_ACCESS_CONTROL)) {
+       if ((IS_OSD(card) || IS_OSX(card)) &&
+           qeth_adp_supported(card, IPA_SETADP_SET_ACCESS_CONTROL)) {
                rc = qeth_setadpparms_set_access_ctrl(card,
                        card->options.isolation, fallback);
                if (rc) {
 
        QETH_CARD_TEXT(card, 3, "snmpcmd");
 
-       if (card->info.guestlan)
+       if (IS_VM_NIC(card))
                return -EOPNOTSUPP;
 
        if ((!qeth_adp_supported(card, IPA_SETADP_SET_SNMP_CONTROL)) &&
 }
 EXPORT_SYMBOL_GPL(qeth_vm_request_mac);
 
-static int qeth_get_qdio_q_format(struct qeth_card *card)
-{
-       if (card->info.type == QETH_CARD_TYPE_IQD)
-               return QDIO_IQDIO_QFMT;
-       else
-               return QDIO_QETH_QFMT;
-}
-
 static void qeth_determine_capabilities(struct qeth_card *card)
 {
        int rc;
 
        memset(&init_data, 0, sizeof(struct qdio_initialize));
        init_data.cdev                   = CARD_DDEV(card);
-       init_data.q_format               = qeth_get_qdio_q_format(card);
+       init_data.q_format               = IS_IQD(card) ? QDIO_IQDIO_QFMT :
+                                                         QDIO_QETH_QFMT;
        init_data.qib_param_field_format = 0;
        init_data.qib_param_field        = qib_param_field;
        init_data.no_input_qs            = card->qdio.no_in_queues;
        init_data.input_sbal_addr_array  = in_sbal_ptrs;
        init_data.output_sbal_addr_array = out_sbal_ptrs;
        init_data.output_sbal_state_array = card->qdio.out_bufstates;
-       init_data.scan_threshold =
-               (card->info.type == QETH_CARD_TYPE_IQD) ? 1 : 32;
+       init_data.scan_threshold         = IS_IQD(card) ? 1 : 32;
 
        if (atomic_cmpxchg(&card->qdio.state, QETH_QDIO_ALLOCATED,
                QETH_QDIO_ESTABLISHED) == QETH_QDIO_ALLOCATED) {
        if (retries < 3)
                QETH_DBF_MESSAGE(2, "Retrying to do IDX activates on device %x.\n",
                                 CARD_DEVID(card));
-       rc = qeth_qdio_clear_card(card, card->info.type != QETH_CARD_TYPE_IQD);
+       rc = qeth_qdio_clear_card(card, !IS_IQD(card));
        ccw_device_set_offline(CARD_DDEV(card));
        ccw_device_set_offline(CARD_WDEV(card));
        ccw_device_set_offline(CARD_RDEV(card));
                return NULL;
 
        if (((skb_len >= card->options.rx_sg_cb) &&
-            (!(card->info.type == QETH_CARD_TYPE_OSN)) &&
+            !IS_OSN(card) &&
             (!atomic_read(&card->force_alloc_skb))) ||
            (card->options.cq == QETH_CQ_ENABLED))
                use_rx_sg = 1;
                if (rc)
                        goto err_load;
 
-               gdev->dev.type = (card->info.type != QETH_CARD_TYPE_OSN)
-                                       ? card->discipline->devtype
-                                       : &qeth_osn_devtype;
+               gdev->dev.type = IS_OSN(card) ? &qeth_osn_devtype :
+                                               card->discipline->devtype;
                rc = card->discipline->setup(card->gdev);
                if (rc)
                        goto err_disc;
        enum qeth_discipline_id def_discipline;
 
        if (!card->discipline) {
-               if (card->info.type == QETH_CARD_TYPE_IQD)
-                       def_discipline = QETH_DISCIPLINE_LAYER3;
-               else
-                       def_discipline = QETH_DISCIPLINE_LAYER2;
+               def_discipline = IS_IQD(card) ? QETH_DISCIPLINE_LAYER3 :
+                                               QETH_DISCIPLINE_LAYER2;
                rc = qeth_core_load_discipline(card, def_discipline);
                if (rc)
                        goto err;
                rc = qeth_snmp_command(card, rq->ifr_ifru.ifru_data);
                break;
        case SIOC_QETH_GET_CARD_TYPE:
-               if ((card->info.type == QETH_CARD_TYPE_OSD ||
-                    card->info.type == QETH_CARD_TYPE_OSM ||
-                    card->info.type == QETH_CARD_TYPE_OSX) &&
-                   !card->info.guestlan)
+               if ((IS_OSD(card) || IS_OSM(card) || IS_OSX(card)) &&
+                   !IS_VM_NIC(card))
                        return 1;
-               else
-                       return 0;
+               return 0;
        case SIOCGMIIPHY:
                mii_data = if_mii(rq);
                mii_data->phy_id = 0;
 
                        napi_gro_receive(&card->napi, skb);
                        break;
                case QETH_HEADER_TYPE_OSN:
-                       if (card->info.type == QETH_CARD_TYPE_OSN) {
+                       if (IS_OSN(card)) {
                                skb_push(skb, sizeof(struct qeth_hdr));
                                skb_copy_to_linear_data(skb, hdr,
                                                sizeof(struct qeth_hdr));
        }
 
        /* some devices don't support a custom MAC address: */
-       if (card->info.type == QETH_CARD_TYPE_OSM ||
-           card->info.type == QETH_CARD_TYPE_OSX)
+       if (IS_OSM(card) || IS_OSX(card))
                return (rc) ? rc : -EADDRNOTAVAIL;
        eth_hw_addr_random(card->dev);
 
                card->dev->features |= NETIF_F_HW_VLAN_CTAG_FILTER;
        }
 
-       if (card->info.type == QETH_CARD_TYPE_OSD && !card->info.guestlan) {
+       if (IS_OSD(card) && !IS_VM_NIC(card)) {
                card->dev->features |= NETIF_F_SG;
                /* OSA 3S and earlier has no RX/TX support */
                if (qeth_is_supported(card, IPA_OUTBOUND_CHECKSUM)) {
        /* softsetup */
        QETH_DBF_TEXT(SETUP, 2, "softsetp");
 
-       if ((card->info.type == QETH_CARD_TYPE_OSD) ||
-           (card->info.type == QETH_CARD_TYPE_OSX)) {
+       if (IS_OSD(card) || IS_OSX(card)) {
                rc = qeth_l2_start_ipassists(card);
                if (rc)
                        goto out_remove;
                                                  enum qeth_ipa_sbp_cmd sbp_cmd,
                                                  unsigned int cmd_length)
 {
-       enum qeth_ipa_cmds ipa_cmd = (card->info.type == QETH_CARD_TYPE_IQD) ?
-                                       IPA_CMD_SETBRIDGEPORT_IQD :
-                                       IPA_CMD_SETBRIDGEPORT_OSA;
+       enum qeth_ipa_cmds ipa_cmd = IS_IQD(card) ? IPA_CMD_SETBRIDGEPORT_IQD :
+                                                   IPA_CMD_SETBRIDGEPORT_OSA;
        struct qeth_cmd_buffer *iob;
        struct qeth_ipa_cmd *cmd;
 
 
 static int qeth_l3_correct_routing_type(struct qeth_card *card,
                enum qeth_routing_types *type, enum qeth_prot_versions prot)
 {
-       if (card->info.type == QETH_CARD_TYPE_IQD) {
+       if (IS_IQD(card)) {
                switch (*type) {
                case NO_ROUTER:
                case PRIMARY_CONNECTOR:
 
        QETH_CARD_TEXT(card, 3, "softipv6");
 
-       if (card->info.type == QETH_CARD_TYPE_IQD)
+       if (IS_IQD(card))
                goto out;
 
        rc = qeth_send_simple_setassparms(card, IPA_IPV6,
                switch (hdr->hdr.l3.id) {
                case QETH_HEADER_TYPE_LAYER3:
                        magic = *(__u16 *)skb->data;
-                       if ((card->info.type == QETH_CARD_TYPE_IQD) &&
-                           (magic == ETH_P_AF_IUCV)) {
+                       if (IS_IQD(card) && magic == ETH_P_AF_IUCV) {
                                len = skb->len;
                                dev_hard_header(skb, dev, ETH_P_AF_IUCV,
                                                dev->dev_addr, "FAKELL", len);
             (card->info.promisc_mode == SET_PROMISC_MODE_OFF)))
                return;
 
-       if (card->info.guestlan) {              /* Guestlan trace */
+       if (IS_VM_NIC(card)) {          /* Guestlan trace */
                if (qeth_adp_supported(card, IPA_SETADP_SET_PROMISC_MODE))
                        qeth_setadp_promisc_mode(card);
        } else if (card->options.sniffer &&     /* HiperSockets trace */
         * IPA_CMD_ASS_ARP_QUERY_INFO, but not IPA_CMD_ASS_ARP_SET_NO_ENTRIES;
         * thus we say EOPNOTSUPP for this ARP function
         */
-       if (card->info.guestlan)
+       if (IS_VM_NIC(card))
                return -EOPNOTSUPP;
        if (!qeth_is_supported(card, IPA_ARP_PROCESSING)) {
                return -EOPNOTSUPP;
         * IPA_CMD_ASS_ARP_QUERY_INFO, but not IPA_CMD_ASS_ARP_ADD_ENTRY;
         * thus we say EOPNOTSUPP for this ARP function
         */
-       if (card->info.guestlan)
+       if (IS_VM_NIC(card))
                return -EOPNOTSUPP;
        if (!qeth_is_supported(card, IPA_ARP_PROCESSING)) {
                return -EOPNOTSUPP;
         * IPA_CMD_ASS_ARP_QUERY_INFO, but not IPA_CMD_ASS_ARP_FLUSH_CACHE;
         * thus we say EOPNOTSUPP for this ARP function
        */
-       if (card->info.guestlan || (card->info.type == QETH_CARD_TYPE_IQD))
+       if (IS_VM_NIC(card) || IS_IQD(card))
                return -EOPNOTSUPP;
        if (!qeth_is_supported(card, IPA_ARP_PROCESSING)) {
                return -EOPNOTSUPP;
                        l3_hdr->next_hop.ipv6_addr = ipv6_hdr(skb)->daddr;
 
                hdr->hdr.l3.flags |= QETH_HDR_IPV6;
-               if (card->info.type != QETH_CARD_TYPE_IQD)
+               if (!IS_IQD(card))
                        hdr->hdr.l3.flags |= QETH_HDR_PASSTHRU;
        }
        rcu_read_unlock();
        unsigned int headroom;
        int rc;
 
-       if (card->info.type == QETH_CARD_TYPE_OSD ||
-           card->info.type == QETH_CARD_TYPE_OSX) {
+       if (IS_OSD(card) || IS_OSX(card)) {
                if ((card->info.link_type == QETH_LINK_TYPE_LANE_TR) ||
                    (card->info.link_type == QETH_LINK_TYPE_HSTR)) {
                        pr_info("qeth_l3: ignoring TR device\n");
                if (!(card->info.unique_id & UNIQUE_ID_NOT_BY_CARD))
                        card->dev->dev_id = card->info.unique_id & 0xffff;
 
-               if (!card->info.guestlan) {
+               if (!IS_VM_NIC(card)) {
                        card->dev->features |= NETIF_F_SG;
                        card->dev->hw_features |= NETIF_F_TSO |
                                NETIF_F_RXCSUM | NETIF_F_IP_CSUM;
                        headroom = sizeof(struct qeth_hdr_tso);
                else
                        headroom = sizeof(struct qeth_hdr) + VLAN_HLEN;
-       } else if (card->info.type == QETH_CARD_TYPE_IQD) {
+       } else if (IS_IQD(card)) {
                card->dev->flags |= IFF_NOARP;
                card->dev->netdev_ops = &qeth_l3_netdev_ops;
                headroom = sizeof(struct qeth_hdr) - ETH_HLEN;