int rc = 0;
 
        QETH_CARD_TEXT(card, 3, "setrtg6");
-#ifdef CONFIG_QETH_IPV6
 
        if (!qeth_is_supported(card, IPA_IPV6))
                return 0;
                        " on %s. Type set to 'no router'.\n", rc,
                        QETH_CARD_IFNAME(card));
        }
-#endif
        return rc;
 }
 
        return rc;
 }
 
-#ifdef CONFIG_QETH_IPV6
 static int qeth_l3_send_simple_setassparms_ipv6(struct qeth_card *card,
                enum qeth_ipa_funcs ipa_func, __u16 cmd_code)
 {
                                   qeth_setassparms_cb, NULL);
        return rc;
 }
-#endif
 
 static int qeth_l3_start_ipa_arp_processing(struct qeth_card *card)
 {
        return rc;
 }
 
-#ifdef CONFIG_QETH_IPV6
 static int qeth_l3_softsetup_ipv6(struct qeth_card *card)
 {
        int rc;
        dev_info(&card->gdev->dev, "IPV6 enabled\n");
        return 0;
 }
-#endif
 
 static int qeth_l3_start_ipa_ipv6(struct qeth_card *card)
 {
-       int rc = 0;
-
        QETH_CARD_TEXT(card, 3, "strtipv6");
 
        if (!qeth_is_supported(card, IPA_IPV6)) {
                        "IPv6 not supported on %s\n", QETH_CARD_IFNAME(card));
                return 0;
        }
-#ifdef CONFIG_QETH_IPV6
-       rc = qeth_l3_softsetup_ipv6(card);
-#endif
-       return rc ;
+       return qeth_l3_softsetup_ipv6(card);
 }
 
 static int qeth_l3_start_ipa_broadcast(struct qeth_card *card)
        rcu_read_unlock();
 }
 
-#ifdef CONFIG_QETH_IPV6
-static void
-qeth_l3_add_mc6_to_hash(struct qeth_card *card, struct inet6_dev *in6_dev)
+static void qeth_l3_add_mc6_to_hash(struct qeth_card *card,
+                                   struct inet6_dev *in6_dev)
 {
        struct qeth_ipaddr *ipm;
        struct ifmcaddr6 *im6;
        rcu_read_unlock();
        in6_dev_put(in6_dev);
 }
-#endif /* CONFIG_QETH_IPV6 */
 
 static void qeth_l3_free_vlan_addresses4(struct qeth_card *card,
                        unsigned short vid)
 }
 
 static void qeth_l3_free_vlan_addresses6(struct qeth_card *card,
-                       unsigned short vid)
+                                        unsigned short vid)
 {
-#ifdef CONFIG_QETH_IPV6
        struct inet6_dev *in6_dev;
        struct inet6_ifaddr *ifa;
        struct qeth_ipaddr *addr;
        kfree(addr);
 out:
        in6_dev_put(in6_dev);
-#endif /* CONFIG_QETH_IPV6 */
 }
 
 static void qeth_l3_free_vlan_addresses(struct qeth_card *card,
                skb_reset_network_header(skb);
                switch (hdr->hdr.l3.flags & QETH_HDR_CAST_MASK) {
                case QETH_CAST_MULTICAST:
-                       switch (prot) {
-#ifdef CONFIG_QETH_IPV6
-                       case ETH_P_IPV6:
-                               ipv6_eth_mc_map(&ipv6_hdr(skb)->daddr, tg_addr);
-                               break;
-#endif
-                       case ETH_P_IP:
+                       if (prot == ETH_P_IP)
                                ip_eth_mc_map(ip_hdr(skb)->daddr, tg_addr);
-                               break;
-                       default:
-                               memcpy(tg_addr, card->dev->broadcast,
-                                       card->dev->addr_len);
-                       }
+                       else
+                               ipv6_eth_mc_map(&ipv6_hdr(skb)->daddr, tg_addr);
+
                        card->stats.multicast++;
                        skb->pkt_type = PACKET_MULTICAST;
                        break;
                qeth_l3_mark_all_mc_to_be_deleted(card);
 
                qeth_l3_add_multicast_ipv4(card);
-#ifdef CONFIG_QETH_IPV6
                qeth_l3_add_multicast_ipv6(card);
-#endif
                qeth_l3_delete_nonused_mc(card);
                qeth_l3_add_all_new_mc(card);
 
                        rc = -EFAULT;
                goto free_and_out;
        }
-#ifdef CONFIG_QETH_IPV6
        if (qinfo.mask_bits & QETH_QARP_WITH_IPV6) {
                /* fails in case of GuestLAN QDIO mode */
                qeth_l3_query_arp_cache_info(card, QETH_PROT_IPV6, &qinfo);
        }
-#endif
        if (copy_to_user(udata, qinfo.udata, qinfo.udata_len)) {
                QETH_CARD_TEXT(card, 4, "qactf");
                rc = -EFAULT;
        NULL,
 };
 
-#ifdef CONFIG_QETH_IPV6
-/**
- * IPv6 event handler
- */
 static int qeth_l3_ip6_event(struct notifier_block *this,
                             unsigned long event, void *ptr)
 {
        qeth_l3_ip6_event,
        NULL,
 };
-#endif
 
 static int qeth_l3_register_notifiers(void)
 {
        rc = register_inetaddr_notifier(&qeth_l3_ip_notifier);
        if (rc)
                return rc;
-#ifdef CONFIG_QETH_IPV6
        rc = register_inet6addr_notifier(&qeth_l3_ip6_notifier);
        if (rc) {
                unregister_inetaddr_notifier(&qeth_l3_ip_notifier);
                return rc;
        }
-#else
-       pr_warn("There is no IPv6 support for the layer 3 discipline\n");
-#endif
        return 0;
 }
 
 static void qeth_l3_unregister_notifiers(void)
 {
-
        QETH_DBF_TEXT(SETUP, 5, "unregnot");
        WARN_ON(unregister_inetaddr_notifier(&qeth_l3_ip_notifier));
-#ifdef CONFIG_QETH_IPV6
        WARN_ON(unregister_inet6addr_notifier(&qeth_l3_ip6_notifier));
-#endif /* QETH_IPV6 */
 }
 
 static int __init qeth_l3_init(void)
 {
-       int rc = 0;
-
        pr_info("register layer 3 discipline\n");
-       rc = qeth_l3_register_notifiers();
-       return rc;
+       return qeth_l3_register_notifiers();
 }
 
 static void __exit qeth_l3_exit(void)