From ce37b383a0979576b35c725f601e89e4ac5b3e0e Mon Sep 17 00:00:00 2001 From: Ben Pfaff Date: Fri, 17 Apr 2009 14:59:03 -0700 Subject: [PATCH] datapath: Define ERR_CAST on kernels that don't already have it. ERR_CAST was introduced in Linux 2.6.25 but it is also backported into the Red Hat 2.6.18, so we need a configure-time check. --- acinclude.m4 | 2 ++ .../linux-2.6/compat-2.6/include/linux/err.h | 21 +++++++++++++++++++ 2 files changed, 23 insertions(+) create mode 100644 datapath/linux-2.6/compat-2.6/include/linux/err.h diff --git a/acinclude.m4 b/acinclude.m4 index 1fc71f4b..a31c7283 100644 --- a/acinclude.m4 +++ b/acinclude.m4 @@ -135,6 +135,8 @@ AC_DEFUN([OFP_CHECK_LINUX26_COMPAT], [ [OFP_DEFINE([HAVE_SKB_COPY_FROM_LINEAR_DATA_OFFSET])]) OFP_GREP_IFELSE([$KSRC26/include/net/netlink.h], [NLA_NUL_STRING], [OFP_DEFINE([HAVE_NLA_NUL_STRING])]) + OFP_GREP_IFELSE([$KSRC26/include/linux/err.h], [ERR_CAST], + [OFP_DEFINE([HAVE_ERR_CAST])]) OFP_CHECK_LOG2_H OFP_CHECK_VETH if cmp -s datapath/linux-2.6/kcompat.h.new \ diff --git a/datapath/linux-2.6/compat-2.6/include/linux/err.h b/datapath/linux-2.6/compat-2.6/include/linux/err.h new file mode 100644 index 00000000..50faf2a1 --- /dev/null +++ b/datapath/linux-2.6/compat-2.6/include/linux/err.h @@ -0,0 +1,21 @@ +#ifndef __LINUX_ERR_WRAPPER_H +#define __LINUX_ERR_WRAPPER_H 1 + +#include_next + +#ifndef HAVE_ERR_CAST +/** + * ERR_CAST - Explicitly cast an error-valued pointer to another pointer type + * @ptr: The pointer to cast. + * + * Explicitly cast an error-valued pointer to another pointer type in such a + * way as to make it clear that's what's going on. + */ +static inline void *ERR_CAST(const void *ptr) +{ + /* cast away the const */ + return (void *) ptr; +} +#endif /* HAVE_ERR_CAST */ + +#endif -- 2.30.2