summaryrefslogtreecommitdiffstats
path: root/sys/ofed
diff options
context:
space:
mode:
authorhselasky <hselasky@FreeBSD.org>2015-07-03 11:16:20 +0000
committerhselasky <hselasky@FreeBSD.org>2015-07-03 11:16:20 +0000
commit81b3f9b45b03a7b4a7838eba3a7801adbcab16e9 (patch)
tree91f1b4fb0a3e7fde587caaa022c1bb768f8df17d /sys/ofed
parent277f7a37a2fb77322cbbc2a74b8c176b91e9a4cb (diff)
downloadFreeBSD-src-81b3f9b45b03a7b4a7838eba3a7801adbcab16e9.zip
FreeBSD-src-81b3f9b45b03a7b4a7838eba3a7801adbcab16e9.tar.gz
Fix broken implementation of "kvasprintf()" function by adding missing
kmalloc() call. Make function global instead of static inline to fix compiler warnings about passing variable argument lists to inline functions. MFC after: 1 week Sponsored by: Mellanox Technologies
Diffstat (limited to 'sys/ofed')
-rw-r--r--sys/ofed/include/linux/device.h16
-rw-r--r--sys/ofed/include/linux/linux_compat.c19
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
OpenPOWER on IntegriCloud