From: Matthew Wilcox Date: Sun, 20 Jan 2019 15:53:38 +0000 (-0500) Subject: printf: Convert ip4_addr_string_sa to printf_state X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=299409d73ed3372a6b92a7d1cb1c4d2ba06abb02;p=users%2Fwilly%2Flinux.git printf: Convert ip4_addr_string_sa to printf_state Signed-off-by: Matthew Wilcox --- diff --git a/lib/vsprintf.c b/lib/vsprintf.c index c1dffcf6d157..90eb57325897 100644 --- a/lib/vsprintf.c +++ b/lib/vsprintf.c @@ -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: