]> www.infradead.org Git - users/willy/linux.git/commitdiff
printf: Convert ip4_addr_string_sa to printf_state
authorMatthew Wilcox <willy@infradead.org>
Sun, 20 Jan 2019 15:53:38 +0000 (10:53 -0500)
committerMatthew Wilcox <willy@infradead.org>
Sun, 20 Jan 2019 15:53:38 +0000 (10:53 -0500)
Signed-off-by: Matthew Wilcox <willy@infradead.org>
lib/vsprintf.c

index c1dffcf6d1574f707315fdb0525f0eedcf753afc..90eb5732589704974d2aef0aa01080b8d87b7b7f 100644 (file)
@@ -1322,18 +1322,17 @@ char *ip6_addr_string_sa(struct printf_state *ps, const struct sockaddr_in6 *sa)
 }
 
 static noinline_for_stack
-char *ip4_addr_string_sa(char *buf, char *end, const struct sockaddr_in *sa,
-                        struct printf_spec spec, const char *fmt)
+char *ip4_addr_string_sa(struct printf_state *ps, const struct sockaddr_in *sa)
 {
        bool have_p = false;
        char *p, ip4_addr[sizeof("255.255.255.255") + sizeof(":12345")];
        char *pend = ip4_addr + sizeof(ip4_addr);
        const u8 *addr = (const u8 *) &sa->sin_addr.s_addr;
-       char fmt4[3] = { fmt[0], '4', 0 };
+       char fmt4[3] = { ps->fmt[0], '4', 0 };
 
-       fmt++;
-       while (isalpha(*++fmt)) {
-               switch (*fmt) {
+       ps->fmt++;
+       while (isalpha(*++ps->fmt)) {
+               switch (*ps->fmt) {
                case 'p':
                        have_p = true;
                        break;
@@ -1341,7 +1340,7 @@ char *ip4_addr_string_sa(char *buf, char *end, const struct sockaddr_in *sa,
                case 'l':
                case 'n':
                case 'b':
-                       fmt4[2] = *fmt;
+                       fmt4[2] = *ps->fmt;
                        break;
                }
        }
@@ -1349,11 +1348,12 @@ char *ip4_addr_string_sa(char *buf, char *end, const struct sockaddr_in *sa,
        p = ip4_string(ip4_addr, addr, fmt4);
        if (have_p) {
                *p++ = ':';
-               p = number(p, pend, ntohs(sa->sin_port), spec);
+               p = number(p, pend, ntohs(sa->sin_port), ps->spec);
        }
        *p = '\0';
 
-       return string(buf, end, ip4_addr, spec);
+       printf_string(ps, ip4_addr);
+       return ps->buf;
 }
 
 static noinline_for_stack
@@ -1924,7 +1924,7 @@ char *pointer(struct printf_state *ps, void *ptr)
 
                        switch (sa->raw.sa_family) {
                        case AF_INET:
-                               return ip4_addr_string_sa(buf, end, &sa->v4, spec, fmt);
+                               return ip4_addr_string_sa(ps, &sa->v4);
                        case AF_INET6:
                                return ip6_addr_string_sa(ps, &sa->v6);
                        default: