aboutsummaryrefslogtreecommitdiff
path: root/sys/compat/linuxkpi/common/src/linux_compat.c
diff options
context:
space:
mode:
Diffstat (limited to 'sys/compat/linuxkpi/common/src/linux_compat.c')
-rw-r--r--sys/compat/linuxkpi/common/src/linux_compat.c29
1 files changed, 26 insertions, 3 deletions
diff --git a/sys/compat/linuxkpi/common/src/linux_compat.c b/sys/compat/linuxkpi/common/src/linux_compat.c
index b73f6fed03af..2ad936311204 100644
--- a/sys/compat/linuxkpi/common/src/linux_compat.c
+++ b/sys/compat/linuxkpi/common/src/linux_compat.c
@@ -1854,8 +1854,8 @@ vunmap(void *addr)
kfree(vmmap);
}
-char *
-kvasprintf(gfp_t gfp, const char *fmt, va_list ap)
+static char *
+devm_kvasprintf(struct device *dev, gfp_t gfp, const char *fmt, va_list ap)
{
unsigned int len;
char *p;
@@ -1865,7 +1865,10 @@ kvasprintf(gfp_t gfp, const char *fmt, va_list ap)
len = vsnprintf(NULL, 0, fmt, aq);
va_end(aq);
- p = kmalloc(len + 1, gfp);
+ if (dev != NULL)
+ p = devm_kmalloc(dev, len + 1, gfp);
+ else
+ p = kmalloc(len + 1, gfp);
if (p != NULL)
vsnprintf(p, len + 1, fmt, ap);
@@ -1873,6 +1876,26 @@ kvasprintf(gfp_t gfp, const char *fmt, va_list ap)
}
char *
+kvasprintf(gfp_t gfp, const char *fmt, va_list ap)
+{
+
+ return (devm_kvasprintf(NULL, gfp, fmt, ap));
+}
+
+char *
+lkpi_devm_kasprintf(struct device *dev, gfp_t gfp, const char *fmt, ...)
+{
+ va_list ap;
+ char *p;
+
+ va_start(ap, fmt);
+ p = devm_kvasprintf(dev, gfp, fmt, ap);
+ va_end(ap);
+
+ return (p);
+}
+
+char *
kasprintf(gfp_t gfp, const char *fmt, ...)
{
va_list ap;