From 6a585c61de0f3fa369ed7a011e27f94226232562 Mon Sep 17 00:00:00 2001 From: behlendo Date: Tue, 1 Apr 2008 16:09:18 +0000 Subject: [PATCH] Double large kmalloc warning size to 4 pages. It was 2 pages, and ideally it should be dropped to one page but in the short term we should be able to easily live with 4 page allocations. Fix the nvlist bug, it turns out the user space side of things were packing the nvlists correctly as little endian, and the kernel space side of things due to a missing #define were unpacking them as big endian. git-svn-id: https://outreach.scidac.gov/svn/spl/trunk@62 7e1ea52c-4ff2-0310-8f11-9dd32ca42a1c --- include/sys/isa_defs.h | 64 ++++++++++++++++++++++++++++++++++++++++++ include/sys/kmem.h | 2 +- 2 files changed, 65 insertions(+), 1 deletion(-) diff --git a/include/sys/isa_defs.h b/include/sys/isa_defs.h index 3730561da5..57a6d366e9 100644 --- a/include/sys/isa_defs.h +++ b/include/sys/isa_defs.h @@ -1,4 +1,68 @@ #ifndef _SPL_ISA_DEFS_H #define _SPL_ISA_DEFS_H +#ifdef __cplusplus +extern "C" { +#endif + +/* x86_64 arch specific defines */ +#if defined(__x86_64) || defined(__x86_64__) + +#if !defined(__x86_64) +#define __x86_64 +#endif + +#if !defined(__amd64) +#define __amd64 +#endif + +#if !defined(__x86) +#define __x86 +#endif + +#if !defined(_LP64) +#define _LP64 +#endif + +/* i386 arch specific defines */ +#elif defined(__i386) || defined(__i386__) + +#if !defined(__i386) +#define __i386 +#endif + +#if !defined(__x86) +#define __x86 +#endif + +#if !defined(_ILP32) +#define _ILP32 +#endif + +#else /* Currently only x86_64 and i386 arches supported */ +#error "Unsupported ISA type" +#endif + +#if defined(_ILP32) && defined(_LP64) +#error "Both _ILP32 and _LP64 are defined" +#endif + +#include + +#if defined(__LITTLE_ENDIAN) && !defined(_LITTLE_ENDIAN) +#define _LITTLE_ENDIAN __LITTLE_ENDIAN +#endif + +#if defined(__BIG_ENDIAN) && !defined(_BIG_ENDIAN) +#define _BIG_ENDIAN __BIG_ENDIAN +#endif + +#if defined(_LITTLE_ENDIAN) && defined(_BIG_ENDIAN) +#error "Both _LITTLE_ENDIAN and __BIG_ENDIAN are defined" +#endif + +#ifdef __cplusplus +} +#endif + #endif /* _SPL_ISA_DEFS_H */ diff --git a/include/sys/kmem.h b/include/sys/kmem.h index 393775fab9..a33643f158 100644 --- a/include/sys/kmem.h +++ b/include/sys/kmem.h @@ -34,7 +34,7 @@ extern int kmem_warning_flag; ({ void *_ptr_; \ \ /* Marked unlikely because we should never be doing this */ \ - if (unlikely((size) > (PAGE_SIZE * 2)) && kmem_warning_flag) \ + if (unlikely((size) > (PAGE_SIZE * 4)) && kmem_warning_flag) \ printk("spl: Warning kmem_alloc(%d, 0x%x) large alloc at %s:%d "\ "(%ld/%ld)\n", (int)(size), (int)(flags), \ __FILE__, __LINE__, \