#include "nvmap_priv.h"
#include "nvmap_ioctl.h"
+#ifdef CONFIG_NVMAP_FORCE_ZEROED_USER_PAGES
+bool zero_memory = 1;
+#else
bool zero_memory;
+#endif
u32 nvmap_max_handle_count;
static int zero_memory_set(const char *arg, const struct kernel_param *kp)
{
+#ifdef CONFIG_NVMAP_FORCE_ZEROED_USER_PAGES
+ return -EPERM;
+#else
param_set_bool(arg, kp);
nvmap_page_pool_clear();
return 0;
+#endif
}
static struct kernel_param_ops zero_memory_ops = {
void _nvmap_handle_free(struct nvmap_handle *h)
{
unsigned int i, nr_page, page_index = 0;
-#ifdef CONFIG_NVMAP_PAGE_POOLS
+#if defined(CONFIG_NVMAP_PAGE_POOLS)
struct nvmap_page_pool *pool = NULL;
#endif
for (i = 0; i < nr_page; i++)
h->pgalloc.pages[i] = nvmap_to_page(h->pgalloc.pages[i]);
-#ifdef CONFIG_NVMAP_PAGE_POOLS
+#if defined(CONFIG_NVMAP_PAGE_POOLS)
if (!zero_memory) {
pool = &nvmap_dev->pool;
#define __GFP_NVMAP (GFP_KERNEL | __GFP_HIGHMEM)
#endif
-#ifdef CONFIG_NVMAP_FORCE_ZEROED_USER_PAGES
-#define NVMAP_ZEROED_PAGES __GFP_ZERO
-#else
-#define NVMAP_ZEROED_PAGES 0
-#endif
-
-#define GFP_NVMAP (__GFP_NVMAP | __GFP_NOWARN | NVMAP_ZEROED_PAGES)
+#define GFP_NVMAP (__GFP_NVMAP | __GFP_NOWARN)
#define NVMAP_NUM_PTES 64