#define LIBCFS_CPT_ALLOC(ptr, cptab, cpt, size) \
LIBCFS_CPT_ALLOC_GFP(ptr, cptab, cpt, size, GFP_NOFS)
+void init_libcfs_vfree_atomic(void);
+void exit_libcfs_vfree_atomic(void);
+
#define LIBCFS_FREE(ptr, size) \
do { \
int s = (size); \
CDEBUG(D_MALLOC, "kfreed '" #ptr "': %d at %p (tot %lld).\n", \
s, (ptr), libcfs_kmem_read()); \
if (unlikely(s > LIBCFS_VMALLOC_SIZE)) \
- vfree(ptr); \
+ libcfs_vfree_atomic(ptr); \
else \
kfree(ptr); \
} while (0)