aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJaroslav Kysela <perex@perex.cz>2011-03-08 10:52:26 +0100
committerJaroslav Kysela <perex@perex.cz>2011-03-08 10:52:26 +0100
commit168f7a54b1287c6c402ce18498c6bce2b75b3e0b (patch)
tree5dc758c12e0e2f3b1a464992fc2d53e8f0b59659
parent04a3b4d1d426200ba3fb8122a6350ce78ef0ec8a (diff)
downloadalsa-driver-build-unstable-168f7a54b1287c6c402ce18498c6bce2b75b3e0b.tar.gz
add check for vzalloc() to configure (Fedora 14 kernel issue)
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
-rw-r--r--configure.in35
-rw-r--r--include/adriver.h3
-rw-r--r--include/config.h.in1
3 files changed, 37 insertions, 2 deletions
diff --git a/configure.in b/configure.in
index d506d46cd..e586e494b 100644
--- a/configure.in
+++ b/configure.in
@@ -1930,6 +1930,41 @@ if test "$CONFIG_HAVE_VMALLOC_TO_PAGE" = "1"; then
AC_DEFINE(CONFIG_HAVE_VMALLOC_TO_PAGE)
fi
+dnl Check for vzalloc...
+AC_MSG_CHECKING(for vzalloc)
+vzalloc="0"
+ac_save_CFLAGS="$CFLAGS"
+ac_save_CC="$CC"
+CFLAGS="$KERNEL_CHECK_CFLAGS"
+CC=$KCC
+AC_TRY_COMPILE([
+#define __KERNEL__
+#ifdef CONFIG_HAVE_DEPRECATED_CONFIG_H
+#include <$INCLUDE_AUTOCONF_H>
+#else
+#include <linux/config.h>
+#endif
+#include <linux/time.h>
+#include <linux/sched.h>
+#include <linux/interrupt.h>
+#include <linux/mm.h>
+#include <linux/vmalloc.h>
+],[
+ void * (*func)(unsigned long);
+ func = vzalloc;
+],
+ AC_MSG_RESULT(yes);vzalloc="1",
+ AC_MSG_RESULT(no);vzalloc="0",
+ AC_MSG_RESULT(unknown);vzalloc="0"
+)
+CFLAGS=$ac_save_CFLAGS
+CC=$ac_save_CC
+CONFIG_HAVE_VZALLOC=$vzalloc
+dnl AC_SUBST(CONFIG_HAVE_VZALLOC)
+if test "$CONFIG_HAVE_VZALLOC" = "1"; then
+ AC_DEFINE(CONFIG_HAVE_VZALLOC)
+fi
+
dnl Check for old kmod...
AC_MSG_CHECKING(for old kmod)
old_kmod="0"
diff --git a/include/adriver.h b/include/adriver.h
index 3ce74f99b..57a129072 100644
--- a/include/adriver.h
+++ b/include/adriver.h
@@ -1922,8 +1922,7 @@ static inline int hex_to_bin(char c)
}
#endif
-/* vzalloc() wrapper */
-#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 37)
+#ifndef CONFIG_HAVE_VZALLOC
#include <linux/vmalloc.h>
static inline void *vzalloc(unsigned long size)
{
diff --git a/include/config.h.in b/include/config.h.in
index ca75ba55f..c9478ba97 100644
--- a/include/config.h.in
+++ b/include/config.h.in
@@ -90,3 +90,4 @@
#undef CONFIG_SND_HAVE_PM_QOS_REQUEST
#undef CONFIG_SND_HAVE_PM_QOS_REQUEST_STATIC
#undef CONFIG_SND_HAVE_USB_ALLOC_COHERENT
+#undef CONFIG_HAVE_VZALLOC