svn commit: r285410 - stable/10/sys/ofed/include/linux
Hans Petter Selasky
hselasky at FreeBSD.org
Sat Jul 11 21:59:17 UTC 2015
Author: hselasky
Date: Sat Jul 11 21:59:15 2015
New Revision: 285410
URL: https://svnweb.freebsd.org/changeset/base/285410
Log:
MFC r285088:
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.
Sponsored by: Mellanox Technologies
Approved by: re, gjb
Modified:
stable/10/sys/ofed/include/linux/device.h
stable/10/sys/ofed/include/linux/linux_compat.c
Directory Properties:
stable/10/ (props changed)
Modified: stable/10/sys/ofed/include/linux/device.h
==============================================================================
--- stable/10/sys/ofed/include/linux/device.h Sat Jul 11 21:12:28 2015 (r285409)
+++ stable/10/sys/ofed/include/linux/device.h Sat Jul 11 21:59:15 2015 (r285410)
@@ -416,21 +416,7 @@ static inline int dev_to_node(struct 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_ */
Modified: stable/10/sys/ofed/include/linux/linux_compat.c
==============================================================================
--- stable/10/sys/ofed/include/linux/linux_compat.c Sat Jul 11 21:12:28 2015 (r285409)
+++ stable/10/sys/ofed/include/linux/linux_compat.c Sat Jul 11 21:59:15 2015 (r285410)
@@ -691,6 +691,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, ...)
@@ -702,7 +719,7 @@ kasprintf(gfp_t gfp, const char *fmt, ..
p = kvasprintf(gfp, fmt, ap);
va_end(ap);
- return p;
+ return (p);
}
static int
More information about the svn-src-stable-10
mailing list