svn commit: r285757 - stable/9/sys/ofed/include/linux

Hans Petter Selasky hselasky at FreeBSD.org
Tue Jul 21 16:53:47 UTC 2015


Author: hselasky
Date: Tue Jul 21 16:53:45 2015
New Revision: 285757
URL: https://svnweb.freebsd.org/changeset/base/285757

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
  Requested by:	markj @

Modified:
  stable/9/sys/ofed/include/linux/device.h
  stable/9/sys/ofed/include/linux/linux_compat.c
Directory Properties:
  stable/9/sys/   (props changed)

Modified: stable/9/sys/ofed/include/linux/device.h
==============================================================================
--- stable/9/sys/ofed/include/linux/device.h	Tue Jul 21 15:50:14 2015	(r285756)
+++ stable/9/sys/ofed/include/linux/device.h	Tue Jul 21 16:53:45 2015	(r285757)
@@ -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/9/sys/ofed/include/linux/linux_compat.c
==============================================================================
--- stable/9/sys/ofed/include/linux/linux_compat.c	Tue Jul 21 15:50:14 2015	(r285756)
+++ stable/9/sys/ofed/include/linux/linux_compat.c	Tue Jul 21 16:53:45 2015	(r285757)
@@ -689,6 +689,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, ...)
@@ -700,7 +717,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-all mailing list