diff options
Diffstat (limited to 'sys/ofed/include/linux')
-rw-r--r-- | sys/ofed/include/linux/device.h | 16 | ||||
-rw-r--r-- | sys/ofed/include/linux/linux_compat.c | 19 |
2 files changed, 19 insertions, 16 deletions
diff --git a/sys/ofed/include/linux/device.h b/sys/ofed/include/linux/device.h index 87cf0e8..b7795fc 100644 --- a/sys/ofed/include/linux/device.h +++ b/sys/ofed/include/linux/device.h @@ -416,21 +416,7 @@ static inline int dev_to_node(struct device *dev) return -1; } -static inline char *kvasprintf(gfp_t gfp, const char *fmt, va_list ap) -{ - unsigned int len; - char *p = NULL; - va_list aq; - - va_copy(aq, ap); - len = vsnprintf(NULL, 0, fmt, aq); - va_end(aq); - - vsnprintf(p, len+1, fmt, ap); - - return p; -} - +char *kvasprintf(gfp_t, const char *, va_list); char *kasprintf(gfp_t, const char *, ...); #endif /* _LINUX_DEVICE_H_ */ diff --git a/sys/ofed/include/linux/linux_compat.c b/sys/ofed/include/linux/linux_compat.c index cc7be3d..1acf08e 100644 --- a/sys/ofed/include/linux/linux_compat.c +++ b/sys/ofed/include/linux/linux_compat.c @@ -715,6 +715,23 @@ vunmap(void *addr) kfree(vmmap); } +char * +kvasprintf(gfp_t gfp, const char *fmt, va_list ap) +{ + unsigned int len; + char *p; + va_list aq; + + va_copy(aq, ap); + len = vsnprintf(NULL, 0, fmt, aq); + va_end(aq); + + p = kmalloc(len + 1, gfp); + if (p != NULL) + vsnprintf(p, len + 1, fmt, ap); + + return (p); +} char * kasprintf(gfp_t gfp, const char *fmt, ...) @@ -726,7 +743,7 @@ kasprintf(gfp_t gfp, const char *fmt, ...) p = kvasprintf(gfp, fmt, ap); va_end(ap); - return p; + return (p); } static int |