> +/* Simplified asprintf. */ > +char *kasprintf(const char *fmt, ...) > +{ > + va_list ap; > + unsigned int len; > + char *p, dummy[1]; > + > + va_start(ap, fmt); > + /* FIXME: vsnprintf has a bug, NULL should work */ > + len = vsnprintf(dummy, 0, fmt, ap); > + va_end(ap); > + > + p = kmalloc(len + 1, GFP_KERNEL); > + if (!p) > + return NULL; > + va_start(ap, fmt); > + vsprintf(p, fmt, ap); > + va_end(ap); > + return p; > +} This should go to lib/