[PATCH] Implement kasprintf
[firefly-linux-kernel-4.4.55.git] / lib / vsprintf.c
index f5959476e53d8e814efda819f684373c85d305af..797428afd1114f3dc1ad3c239917b9f04ceccd55 100644 (file)
@@ -849,3 +849,26 @@ int sscanf(const char * buf, const char * fmt, ...)
 }
 
 EXPORT_SYMBOL(sscanf);
+
+
+/* Simplified asprintf. */
+char *kasprintf(gfp_t gfp, const char *fmt, ...)
+{
+       va_list ap;
+       unsigned int len;
+       char *p;
+
+       va_start(ap, fmt);
+       len = vsnprintf(NULL, 0, fmt, ap);
+       va_end(ap);
+
+       p = kmalloc(len+1, gfp);
+       if (!p)
+               return NULL;
+       va_start(ap, fmt);
+       vsnprintf(p, len+1, fmt, ap);
+       va_end(ap);
+       return p;
+}
+
+EXPORT_SYMBOL(kasprintf);