summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--drivers/dahdi/dahdi-base.c29
-rw-r--r--include/dahdi/kernel.h3
2 files changed, 32 insertions, 0 deletions
diff --git a/drivers/dahdi/dahdi-base.c b/drivers/dahdi/dahdi-base.c
index e6f2136..a03cbc8 100644
--- a/drivers/dahdi/dahdi-base.c
+++ b/drivers/dahdi/dahdi-base.c
@@ -9058,5 +9058,34 @@ static void __exit dahdi_cleanup(void)
#endif
}
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 12)
+char *dahdi_kasprintf(gfp_t gfp, const char *fmt, ...)
+{
+ va_list ap;
+ char *p;
+ char *temp;
+ unsigned int len;
+
+ temp = kmalloc(PAGE_SIZE, GFP_KERNEL);
+ if (!temp)
+ return NULL;
+
+ va_start(ap, fmt);
+ len = vsnprintf(temp, PAGE_SIZE, fmt, ap);
+ va_end(ap);
+
+ p = kzalloc(len + 1, gfp);
+ if (!p) {
+ kfree(temp);
+ return NULL;
+ }
+
+ memcpy(p, temp, len + 1);
+ kfree(temp);
+ return p;
+}
+EXPORT_SYMBOL(dahdi_kasprintf);
+#endif
+
module_init(dahdi_init);
module_exit(dahdi_cleanup);
diff --git a/include/dahdi/kernel.h b/include/dahdi/kernel.h
index b6864ee..5bcf10d 100644
--- a/include/dahdi/kernel.h
+++ b/include/dahdi/kernel.h
@@ -1285,6 +1285,8 @@ static inline void list_replace(struct list_head *old, struct list_head *new)
#define kzalloc(a, b) kcalloc(1, a, b)
#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 12)
#define synchronize_rcu() synchronize_kernel()
+#define kasprintf dahdi_kasprintf
+char *dahdi_kasprintf(gfp_t gfp, const char *fmt, ...);
#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 11)
#if !defined(HAVE_WAIT_FOR_COMPLETION_TIMEOUT)
static inline unsigned long
@@ -1301,6 +1303,7 @@ wait_for_completion_interruptible_timeout(struct completion *x,
return timeout;
}
#endif
+
#endif /* 2.6.11 */
#endif /* 2.6.12 */
#endif /* 2.6.14 */