dahdi: Introduce dahdi_kasprintf for pre 2.6.12 kernels.
kasprintf will be used in upcoming changes and it's not supported on RHEL4 kernels. This change essentially backports it. Signed-off-by: Shaun Ruffell <sruffell@digium.com> Acked-by: Kinsey Moore <kmoore@digium.com> git-svn-id: http://svn.asterisk.org/svn/dahdi/linux/trunk@9593 a0bf4364-ded3-4de4-8d8a-66a801d63aff
This commit is contained in:
parent
0dc5fd0ffb
commit
215d530887
@ -9058,5 +9058,34 @@ static void __exit dahdi_cleanup(void)
|
|||||||
#endif
|
#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_init(dahdi_init);
|
||||||
module_exit(dahdi_cleanup);
|
module_exit(dahdi_cleanup);
|
||||||
|
@ -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)
|
#define kzalloc(a, b) kcalloc(1, a, b)
|
||||||
#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 12)
|
#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 12)
|
||||||
#define synchronize_rcu() synchronize_kernel()
|
#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 LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 11)
|
||||||
#if !defined(HAVE_WAIT_FOR_COMPLETION_TIMEOUT)
|
#if !defined(HAVE_WAIT_FOR_COMPLETION_TIMEOUT)
|
||||||
static inline unsigned long
|
static inline unsigned long
|
||||||
@ -1301,6 +1303,7 @@ wait_for_completion_interruptible_timeout(struct completion *x,
|
|||||||
return timeout;
|
return timeout;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#endif /* 2.6.11 */
|
#endif /* 2.6.11 */
|
||||||
#endif /* 2.6.12 */
|
#endif /* 2.6.12 */
|
||||||
#endif /* 2.6.14 */
|
#endif /* 2.6.14 */
|
||||||
|
Loading…
Reference in New Issue
Block a user