ARPT_INV_TGTIP)) {
                dprintf("Source or target IP address mismatch.\n");
 
-               dprintf("SRC: %u.%u.%u.%u. Mask: %u.%u.%u.%u. Target: %u.%u.%u.%u.%s\n",
-                       NIPQUAD(src_ipaddr),
-                       NIPQUAD(arpinfo->smsk.s_addr),
-                       NIPQUAD(arpinfo->src.s_addr),
+               dprintf("SRC: %pI4. Mask: %pI4. Target: %pI4.%s\n",
+                       &src_ipaddr,
+                       &arpinfo->smsk.s_addr,
+                       &arpinfo->src.s_addr,
                        arpinfo->invflags & ARPT_INV_SRCIP ? " (INV)" : "");
-               dprintf("TGT: %u.%u.%u.%u Mask: %u.%u.%u.%u Target: %u.%u.%u.%u.%s\n",
-                       NIPQUAD(tgt_ipaddr),
-                       NIPQUAD(arpinfo->tmsk.s_addr),
-                       NIPQUAD(arpinfo->tgt.s_addr),
+               dprintf("TGT: %pI4 Mask: %pI4 Target: %pI4.%s\n",
+                       &tgt_ipaddr,
+                       &arpinfo->tmsk.s_addr,
+                       &arpinfo->tgt.s_addr,
                        arpinfo->invflags & ARPT_INV_TGTIP ? " (INV)" : "");
                return 0;
        }
 
                     IPT_INV_DSTIP)) {
                dprintf("Source or dest mismatch.\n");
 
-               dprintf("SRC: %u.%u.%u.%u. Mask: %u.%u.%u.%u. Target: %u.%u.%u.%u.%s\n",
-                       NIPQUAD(ip->saddr),
-                       NIPQUAD(ipinfo->smsk.s_addr),
-                       NIPQUAD(ipinfo->src.s_addr),
+               dprintf("SRC: %pI4. Mask: %pI4. Target: %pI4.%s\n",
+                       &ip->saddr, &ipinfo->smsk.s_addr, &ipinfo->src.s_addr,
                        ipinfo->invflags & IPT_INV_SRCIP ? " (INV)" : "");
-               dprintf("DST: %u.%u.%u.%u Mask: %u.%u.%u.%u Target: %u.%u.%u.%u.%s\n",
-                       NIPQUAD(ip->daddr),
-                       NIPQUAD(ipinfo->dmsk.s_addr),
-                       NIPQUAD(ipinfo->dst.s_addr),
+               dprintf("DST: %pI4 Mask: %pI4 Target: %pI4.%s\n",
+                       &ip->daddr, &ipinfo->dmsk.s_addr, &ipinfo->dst.s_addr,
                        ipinfo->invflags & IPT_INV_DSTIP ? " (INV)" : "");
                return false;
        }
 
                char buffer[16];
 
                /* create proc dir entry */
-               sprintf(buffer, "%u.%u.%u.%u", NIPQUAD(ip));
+               sprintf(buffer, "%pI4", &ip);
                c->pde = proc_create_data(buffer, S_IWUSR|S_IRUSR,
                                          clusterip_procdir,
                                          &clusterip_proc_fops, c);
        config = clusterip_config_find_get(e->ip.dst.s_addr, 1);
        if (!config) {
                if (!(cipinfo->flags & CLUSTERIP_FLAG_NEW)) {
-                       printk(KERN_WARNING "CLUSTERIP: no config found for %u.%u.%u.%u, need 'new'\n", NIPQUAD(e->ip.dst.s_addr));
+                       printk(KERN_WARNING "CLUSTERIP: no config found for %pI4, need 'new'\n", &e->ip.dst.s_addr);
                        return false;
                } else {
                        struct net_device *dev;
        }
        hbuffer[--k]='\0';
 
-       printk("src %u.%u.%u.%u@%s, dst %u.%u.%u.%u\n",
-               NIPQUAD(payload->src_ip), hbuffer,
-               NIPQUAD(payload->dst_ip));
+       printk("src %pI4@%s, dst %pI4\n",
+               &payload->src_ip, hbuffer, &payload->dst_ip);
 }
 #endif
 
 
        /* Important fields:
         * TOS, len, DF/MF, fragment offset, TTL, src, dst, options. */
        /* Max length: 40 "SRC=255.255.255.255 DST=255.255.255.255 " */
-       printk("SRC=%u.%u.%u.%u DST=%u.%u.%u.%u ",
-              NIPQUAD(ih->saddr), NIPQUAD(ih->daddr));
+       printk("SRC=%pI4 DST=%pI4 ",
+              &ih->saddr, &ih->daddr);
 
        /* Max length: 46 "LEN=65535 TOS=0xFF PREC=0xFF TTL=255 ID=65535 " */
        printk("LEN=%u TOS=0x%02X PREC=0x%02X TTL=%u ID=%u ",
                        break;
                case ICMP_REDIRECT:
                        /* Max length: 24 "GATEWAY=255.255.255.255 " */
-                       printk("GATEWAY=%u.%u.%u.%u ",
-                              NIPQUAD(ich->un.gateway));
+                       printk("GATEWAY=%pI4 ", &ich->un.gateway);
                        /* Fall through */
                case ICMP_DEST_UNREACH:
                case ICMP_SOURCE_QUENCH:
 
 static int ipv4_print_tuple(struct seq_file *s,
                            const struct nf_conntrack_tuple *tuple)
 {
-       return seq_printf(s, "src=%u.%u.%u.%u dst=%u.%u.%u.%u ",
-                         NIPQUAD(tuple->src.u3.ip),
-                         NIPQUAD(tuple->dst.u3.ip));
+       return seq_printf(s, "src=%pI4 dst=%pI4 ",
+                         &tuple->src.u3.ip, &tuple->dst.u3.ip);
 }
 
 static int ipv4_get_l4proto(const struct sk_buff *skb, unsigned int nhoff,
                        .tuple.dst.u3.ip;
                memset(sin.sin_zero, 0, sizeof(sin.sin_zero));
 
-               pr_debug("SO_ORIGINAL_DST: %u.%u.%u.%u %u\n",
-                        NIPQUAD(sin.sin_addr.s_addr), ntohs(sin.sin_port));
+               pr_debug("SO_ORIGINAL_DST: %pI4 %u\n",
+                        &sin.sin_addr.s_addr, ntohs(sin.sin_port));
                nf_ct_put(ct);
                if (copy_to_user(user, &sin, sizeof(sin)) != 0)
                        return -EFAULT;
                else
                        return 0;
        }
-       pr_debug("SO_ORIGINAL_DST: Can't find %u.%u.%u.%u/%u-%u.%u.%u.%u/%u.\n",
-                NIPQUAD(tuple.src.u3.ip), ntohs(tuple.src.u.tcp.port),
-                NIPQUAD(tuple.dst.u3.ip), ntohs(tuple.dst.u.tcp.port));
+       pr_debug("SO_ORIGINAL_DST: Can't find %pI4/%u-%pI4/%u.\n",
+                &tuple.src.u3.ip, ntohs(tuple.src.u.tcp.port),
+                &tuple.dst.u3.ip, ntohs(tuple.dst.u.tcp.port));
        return -ENOENT;
 }
 
 
                                    (ntohl(addr.ip) & 0xff000000) == 0x7f000000)
                                        i = 0;
 
-                               pr_debug("nf_nat_ras: set signal address "
-                                        "%u.%u.%u.%u:%hu->%u.%u.%u.%u:%hu\n",
-                                        NIPQUAD(addr.ip), port,
-                                        NIPQUAD(ct->tuplehash[!dir].tuple.dst.u3.ip),
+                               pr_debug("nf_nat_ras: set signal address %pI4:%hu->%pI4:%hu\n",
+                                        &addr.ip, port,
+                                        &ct->tuplehash[!dir].tuple.dst.u3.ip,
                                         info->sig_port[!dir]);
                                return set_h225_addr(skb, data, 0, &taddr[i],
                                                     &ct->tuplehash[!dir].
                        } else if (addr.ip == ct->tuplehash[dir].tuple.dst.u3.ip &&
                                   port == info->sig_port[dir]) {
                                /* GK->GW */
-                               pr_debug("nf_nat_ras: set signal address "
-                                        "%u.%u.%u.%u:%hu->%u.%u.%u.%u:%hu\n",
-                                        NIPQUAD(addr.ip), port,
-                                        NIPQUAD(ct->tuplehash[!dir].tuple.src.u3.ip),
+                               pr_debug("nf_nat_ras: set signal address %pI4:%hu->%pI4:%hu\n",
+                                        &addr.ip, port,
+                                        &ct->tuplehash[!dir].tuple.src.u3.ip,
                                         info->sig_port[!dir]);
                                return set_h225_addr(skb, data, 0, &taddr[i],
                                                     &ct->tuplehash[!dir].
                if (get_h225_addr(ct, *data, &taddr[i], &addr, &port) &&
                    addr.ip == ct->tuplehash[dir].tuple.src.u3.ip &&
                    port == ct->tuplehash[dir].tuple.src.u.udp.port) {
-                       pr_debug("nf_nat_ras: set rasAddress "
-                                "%u.%u.%u.%u:%hu->%u.%u.%u.%u:%hu\n",
-                                NIPQUAD(addr.ip), ntohs(port),
-                                NIPQUAD(ct->tuplehash[!dir].tuple.dst.u3.ip),
+                       pr_debug("nf_nat_ras: set rasAddress %pI4:%hu->%pI4:%hu\n",
+                                &addr.ip, ntohs(port),
+                                &ct->tuplehash[!dir].tuple.dst.u3.ip,
                                 ntohs(ct->tuplehash[!dir].tuple.dst.u.udp.port));
                        return set_h225_addr(skb, data, 0, &taddr[i],
                                             &ct->tuplehash[!dir].tuple.dst.u3,
        }
 
        /* Success */
-       pr_debug("nf_nat_h323: expect RTP %u.%u.%u.%u:%hu->%u.%u.%u.%u:%hu\n",
-                NIPQUAD(rtp_exp->tuple.src.u3.ip),
+       pr_debug("nf_nat_h323: expect RTP %pI4:%hu->%pI4:%hu\n",
+                &rtp_exp->tuple.src.u3.ip,
                 ntohs(rtp_exp->tuple.src.u.udp.port),
-                NIPQUAD(rtp_exp->tuple.dst.u3.ip),
+                &rtp_exp->tuple.dst.u3.ip,
                 ntohs(rtp_exp->tuple.dst.u.udp.port));
-       pr_debug("nf_nat_h323: expect RTCP %u.%u.%u.%u:%hu->%u.%u.%u.%u:%hu\n",
-                NIPQUAD(rtcp_exp->tuple.src.u3.ip),
+       pr_debug("nf_nat_h323: expect RTCP %pI4:%hu->%pI4:%hu\n",
+                &rtcp_exp->tuple.src.u3.ip,
                 ntohs(rtcp_exp->tuple.src.u.udp.port),
-                NIPQUAD(rtcp_exp->tuple.dst.u3.ip),
+                &rtcp_exp->tuple.dst.u3.ip,
                 ntohs(rtcp_exp->tuple.dst.u.udp.port));
 
        return 0;
                return -1;
        }
 
-       pr_debug("nf_nat_h323: expect T.120 %u.%u.%u.%u:%hu->%u.%u.%u.%u:%hu\n",
-                NIPQUAD(exp->tuple.src.u3.ip),
+       pr_debug("nf_nat_h323: expect T.120 %pI4:%hu->%pI4:%hu\n",
+                &exp->tuple.src.u3.ip,
                 ntohs(exp->tuple.src.u.tcp.port),
-                NIPQUAD(exp->tuple.dst.u3.ip),
+                &exp->tuple.dst.u3.ip,
                 ntohs(exp->tuple.dst.u.tcp.port));
 
        return 0;
                return -1;
        }
 
-       pr_debug("nf_nat_q931: expect H.245 %u.%u.%u.%u:%hu->%u.%u.%u.%u:%hu\n",
-                NIPQUAD(exp->tuple.src.u3.ip),
+       pr_debug("nf_nat_q931: expect H.245 %pI4:%hu->%pI4:%hu\n",
+                &exp->tuple.src.u3.ip,
                 ntohs(exp->tuple.src.u.tcp.port),
-                NIPQUAD(exp->tuple.dst.u3.ip),
+                &exp->tuple.dst.u3.ip,
                 ntohs(exp->tuple.dst.u.tcp.port));
 
        return 0;
        }
 
        /* Success */
-       pr_debug("nf_nat_ras: expect Q.931 %u.%u.%u.%u:%hu->%u.%u.%u.%u:%hu\n",
-                NIPQUAD(exp->tuple.src.u3.ip),
+       pr_debug("nf_nat_ras: expect Q.931 %pI4:%hu->%pI4:%hu\n",
+                &exp->tuple.src.u3.ip,
                 ntohs(exp->tuple.src.u.tcp.port),
-                NIPQUAD(exp->tuple.dst.u3.ip),
+                &exp->tuple.dst.u3.ip,
                 ntohs(exp->tuple.dst.u.tcp.port));
 
        return 0;
        }
 
        /* Success */
-       pr_debug("nf_nat_q931: expect Call Forwarding "
-                "%u.%u.%u.%u:%hu->%u.%u.%u.%u:%hu\n",
-                NIPQUAD(exp->tuple.src.u3.ip),
+       pr_debug("nf_nat_q931: expect Call Forwarding %pI4:%hu->%pI4:%hu\n",
+                &exp->tuple.src.u3.ip,
                 ntohs(exp->tuple.src.u.tcp.port),
-                NIPQUAD(exp->tuple.dst.u3.ip),
+                &exp->tuple.dst.u3.ip,
                 ntohs(exp->tuple.dst.u.tcp.port));
 
        return 0;
 
 
        ip = ntohl(exp->master->tuplehash[IP_CT_DIR_REPLY].tuple.dst.u3.ip);
        sprintf(buffer, "%u %u", ip, port);
-       pr_debug("nf_nat_irc: inserting '%s' == %u.%u.%u.%u, port %u\n",
-                buffer, NIPQUAD(ip), port);
+       pr_debug("nf_nat_irc: inserting '%s' == %pI4, port %u\n",
+                buffer, &ip, port);
 
        ret = nf_nat_mangle_tcp_packet(skb, exp->master, ctinfo,
                                       matchoff, matchlen, buffer,
 
 
        if (rt->rt_src != srcip && !warned) {
                printk("NAT: no longer support implicit source local NAT\n");
-               printk("NAT: packet src %u.%u.%u.%u -> dst %u.%u.%u.%u\n",
-                      NIPQUAD(srcip), NIPQUAD(dstip));
+               printk("NAT: packet src %pI4 -> dst %pI4\n", &srcip, &dstip);
                warned = 1;
        }
        ip_rt_put(rt);
        struct nf_nat_range range
                = { IP_NAT_RANGE_MAP_IPS, ip, ip, { 0 }, { 0 } };
 
-       pr_debug("Allocating NULL binding for %p (%u.%u.%u.%u)\n",
-                ct, NIPQUAD(ip));
+       pr_debug("Allocating NULL binding for %p (%pI4)\n", ct, &ip);
        return nf_nat_setup_info(ct, &range, HOOK2MANIP(hooknum));
 }
 
 
        if (newaddr == addr->ip && newport == port)
                return 1;
 
-       buflen = sprintf(buffer, "%u.%u.%u.%u:%u",
-                        NIPQUAD(newaddr), ntohs(newport));
+       buflen = sprintf(buffer, "%pI4:%u", &newaddr, ntohs(newport));
 
        return mangle_packet(skb, dptr, datalen, matchoff, matchlen,
                             buffer, buflen);
                                               &addr) > 0 &&
                    addr.ip == ct->tuplehash[dir].tuple.src.u3.ip &&
                    addr.ip != ct->tuplehash[!dir].tuple.dst.u3.ip) {
-                       __be32 ip = ct->tuplehash[!dir].tuple.dst.u3.ip;
-                       buflen = sprintf(buffer, "%u.%u.%u.%u", NIPQUAD(ip));
+                       buflen = sprintf(buffer, "%pI4",
+                                       &ct->tuplehash[!dir].tuple.dst.u3.ip);
                        if (!mangle_packet(skb, dptr, datalen, poff, plen,
                                           buffer, buflen))
                                return NF_DROP;
                                               &addr) > 0 &&
                    addr.ip == ct->tuplehash[dir].tuple.dst.u3.ip &&
                    addr.ip != ct->tuplehash[!dir].tuple.src.u3.ip) {
-                       __be32 ip = ct->tuplehash[!dir].tuple.src.u3.ip;
-                       buflen = sprintf(buffer, "%u.%u.%u.%u", NIPQUAD(ip));
+                       buflen = sprintf(buffer, "%pI4",
+                                       &ct->tuplehash[!dir].tuple.src.u3.ip);
                        if (!mangle_packet(skb, dptr, datalen, poff, plen,
                                           buffer, buflen))
                                return NF_DROP;
 
        if (exp->tuple.dst.u3.ip != exp->saved_ip ||
            exp->tuple.dst.u.udp.port != exp->saved_proto.udp.port) {
-               buflen = sprintf(buffer, "%u.%u.%u.%u:%u",
-                                NIPQUAD(newip), port);
+               buflen = sprintf(buffer, "%pI4:%u", &newip, port);
                if (!mangle_packet(skb, dptr, datalen, matchoff, matchlen,
                                   buffer, buflen))
                        goto err;
        char buffer[sizeof("nnn.nnn.nnn.nnn")];
        unsigned int buflen;
 
-       buflen = sprintf(buffer, NIPQUAD_FMT, NIPQUAD(addr->ip));
+       buflen = sprintf(buffer, "%pI4", &addr->ip);
        if (mangle_sdp_packet(skb, dptr, dataoff, datalen, type, term,
                              buffer, buflen))
                return 0;
        unsigned int buflen;
 
        /* Mangle session description owner and contact addresses */
-       buflen = sprintf(buffer, "%u.%u.%u.%u", NIPQUAD(addr->ip));
+       buflen = sprintf(buffer, "%pI4", &addr->ip);
        if (mangle_sdp_packet(skb, dptr, dataoff, datalen,
                               SDP_HDR_OWNER_IP4, SDP_HDR_MEDIA,
                               buffer, buflen))
 
                }
 
                if (debug)
-                       printk(KERN_DEBUG "bsalg: mapped %u.%u.%u.%u to "
-                              "%u.%u.%u.%u\n", NIPQUAD(old), NIPQUAD(*addr));
+                       printk(KERN_DEBUG "bsalg: mapped %pI4 to %pI4\n",
+                              &old, addr);
        }
 }
 
         */
        if (ntohs(udph->len) != skb->len - (iph->ihl << 2)) {
                 if (net_ratelimit())
-                        printk(KERN_WARNING "SNMP: dropping malformed packet "
-                               "src=%u.%u.%u.%u dst=%u.%u.%u.%u\n",
-                               NIPQUAD(iph->saddr), NIPQUAD(iph->daddr));
+                        printk(KERN_WARNING "SNMP: dropping malformed packet src=%pI4 dst=%pI4\n",
+                               &iph->saddr, &iph->daddr);
                 return NF_DROP;
        }