All of lore.kernel.org
 help / color / mirror / Atom feed
From: Igor Stoppa <igor.stoppa@huawei.com>
To: <jglisse@redhat.com>, <keescook@chromium.org>,
	<mhocko@kernel.org>, <labbott@redhat.com>, <hch@infradead.org>,
	<willy@infradead.org>
Cc: <cl@linux.com>, <linux-security-module@vger.kernel.org>,
	<linux-mm@kvack.org>, <linux-kernel@vger.kernel.org>,
	<kernel-hardening@lists.openwall.com>,
	Igor Stoppa <igor.stoppa@huawei.com>
Subject: [PATCH 3/6] struct page: add field for vm_struct
Date: Sun, 4 Feb 2018 18:47:29 +0200	[thread overview]
Message-ID: <20180204164732.28241-4-igor.stoppa@huawei.com> (raw)
In-Reply-To: <20180204164732.28241-1-igor.stoppa@huawei.com>

When a page is used for virtual memory, it is often necessary to obtian
a handler to the corresponding vm_struct, which refers to the virtually
continuous area generated when invoking vmalloc.

The struct page has a "mapping" field, which can be re-used, to store a
pointer to the parent area. This will avoid more expensive searches.

As example, the function find_vm_area is reimplemented, to take advantage
of the newly introduced field.

Signed-off-by: Igor Stoppa <igor.stoppa@huawei.com>
---
 include/linux/mm_types.h |  1 +
 mm/vmalloc.c             | 18 +++++++++++++-----
 2 files changed, 14 insertions(+), 5 deletions(-)

diff --git a/include/linux/mm_types.h b/include/linux/mm_types.h
index cfd0ac4e5e0e..2abd540b969f 100644
--- a/include/linux/mm_types.h
+++ b/include/linux/mm_types.h
@@ -56,6 +56,7 @@ struct page {
 		void *s_mem;			/* slab first object */
 		atomic_t compound_mapcount;	/* first tail page */
 		/* page_deferred_list().next	 -- second tail page */
+		struct vm_struct *area;
 	};
 
 	/* Second double word */
diff --git a/mm/vmalloc.c b/mm/vmalloc.c
index 673942094328..44c5dfcb2fd7 100644
--- a/mm/vmalloc.c
+++ b/mm/vmalloc.c
@@ -1466,13 +1466,16 @@ struct vm_struct *get_vm_area_caller(unsigned long size, unsigned long flags,
  */
 struct vm_struct *find_vm_area(const void *addr)
 {
-	struct vmap_area *va;
+	struct page *page;
 
-	va = find_vmap_area((unsigned long)addr);
-	if (va && va->flags & VM_VM_AREA)
-		return va->vm;
+	if (unlikely(!is_vmalloc_addr(addr)))
+		return NULL;
 
-	return NULL;
+	page = vmalloc_to_page(addr);
+	if (unlikely(!page))
+		return NULL;
+
+	return page->area;
 }
 
 /**
@@ -1536,6 +1539,7 @@ static void __vunmap(const void *addr, int deallocate_pages)
 			struct page *page = area->pages[i];
 
 			BUG_ON(!page);
+			page->area = NULL;
 			__free_pages(page, 0);
 		}
 
@@ -1744,6 +1748,7 @@ void *__vmalloc_node_range(unsigned long size, unsigned long align,
 			const void *caller)
 {
 	struct vm_struct *area;
+	unsigned int page_counter;
 	void *addr;
 	unsigned long real_size = size;
 
@@ -1769,6 +1774,9 @@ void *__vmalloc_node_range(unsigned long size, unsigned long align,
 
 	kmemleak_vmalloc(area, size, gfp_mask);
 
+	for (page_counter = 0; page_counter < area->nr_pages; page_counter++)
+		area->pages[page_counter]->area = area;
+
 	return addr;
 
 fail:
-- 
2.16.0

WARNING: multiple messages have this Message-ID (diff)
From: igor.stoppa@huawei.com (Igor Stoppa)
To: linux-security-module@vger.kernel.org
Subject: [PATCH 3/6] struct page: add field for vm_struct
Date: Sun, 4 Feb 2018 18:47:29 +0200	[thread overview]
Message-ID: <20180204164732.28241-4-igor.stoppa@huawei.com> (raw)
In-Reply-To: <20180204164732.28241-1-igor.stoppa@huawei.com>

When a page is used for virtual memory, it is often necessary to obtian
a handler to the corresponding vm_struct, which refers to the virtually
continuous area generated when invoking vmalloc.

The struct page has a "mapping" field, which can be re-used, to store a
pointer to the parent area. This will avoid more expensive searches.

As example, the function find_vm_area is reimplemented, to take advantage
of the newly introduced field.

Signed-off-by: Igor Stoppa <igor.stoppa@huawei.com>
---
 include/linux/mm_types.h |  1 +
 mm/vmalloc.c             | 18 +++++++++++++-----
 2 files changed, 14 insertions(+), 5 deletions(-)

diff --git a/include/linux/mm_types.h b/include/linux/mm_types.h
index cfd0ac4e5e0e..2abd540b969f 100644
--- a/include/linux/mm_types.h
+++ b/include/linux/mm_types.h
@@ -56,6 +56,7 @@ struct page {
 		void *s_mem;			/* slab first object */
 		atomic_t compound_mapcount;	/* first tail page */
 		/* page_deferred_list().next	 -- second tail page */
+		struct vm_struct *area;
 	};
 
 	/* Second double word */
diff --git a/mm/vmalloc.c b/mm/vmalloc.c
index 673942094328..44c5dfcb2fd7 100644
--- a/mm/vmalloc.c
+++ b/mm/vmalloc.c
@@ -1466,13 +1466,16 @@ struct vm_struct *get_vm_area_caller(unsigned long size, unsigned long flags,
  */
 struct vm_struct *find_vm_area(const void *addr)
 {
-	struct vmap_area *va;
+	struct page *page;
 
-	va = find_vmap_area((unsigned long)addr);
-	if (va && va->flags & VM_VM_AREA)
-		return va->vm;
+	if (unlikely(!is_vmalloc_addr(addr)))
+		return NULL;
 
-	return NULL;
+	page = vmalloc_to_page(addr);
+	if (unlikely(!page))
+		return NULL;
+
+	return page->area;
 }
 
 /**
@@ -1536,6 +1539,7 @@ static void __vunmap(const void *addr, int deallocate_pages)
 			struct page *page = area->pages[i];
 
 			BUG_ON(!page);
+			page->area = NULL;
 			__free_pages(page, 0);
 		}
 
@@ -1744,6 +1748,7 @@ void *__vmalloc_node_range(unsigned long size, unsigned long align,
 			const void *caller)
 {
 	struct vm_struct *area;
+	unsigned int page_counter;
 	void *addr;
 	unsigned long real_size = size;
 
@@ -1769,6 +1774,9 @@ void *__vmalloc_node_range(unsigned long size, unsigned long align,
 
 	kmemleak_vmalloc(area, size, gfp_mask);
 
+	for (page_counter = 0; page_counter < area->nr_pages; page_counter++)
+		area->pages[page_counter]->area = area;
+
 	return addr;
 
 fail:
-- 
2.16.0

--
To unsubscribe from this list: send the line "unsubscribe linux-security-module" in
the body of a message to majordomo at vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

WARNING: multiple messages have this Message-ID (diff)
From: Igor Stoppa <igor.stoppa@huawei.com>
To: jglisse@redhat.com, keescook@chromium.org, mhocko@kernel.org,
	labbott@redhat.com, hch@infradead.org, willy@infradead.org
Cc: cl@linux.com, linux-security-module@vger.kernel.org,
	linux-mm@kvack.org, linux-kernel@vger.kernel.org,
	kernel-hardening@lists.openwall.com,
	Igor Stoppa <igor.stoppa@huawei.com>
Subject: [PATCH 3/6] struct page: add field for vm_struct
Date: Sun, 4 Feb 2018 18:47:29 +0200	[thread overview]
Message-ID: <20180204164732.28241-4-igor.stoppa@huawei.com> (raw)
In-Reply-To: <20180204164732.28241-1-igor.stoppa@huawei.com>

When a page is used for virtual memory, it is often necessary to obtian
a handler to the corresponding vm_struct, which refers to the virtually
continuous area generated when invoking vmalloc.

The struct page has a "mapping" field, which can be re-used, to store a
pointer to the parent area. This will avoid more expensive searches.

As example, the function find_vm_area is reimplemented, to take advantage
of the newly introduced field.

Signed-off-by: Igor Stoppa <igor.stoppa@huawei.com>
---
 include/linux/mm_types.h |  1 +
 mm/vmalloc.c             | 18 +++++++++++++-----
 2 files changed, 14 insertions(+), 5 deletions(-)

diff --git a/include/linux/mm_types.h b/include/linux/mm_types.h
index cfd0ac4e5e0e..2abd540b969f 100644
--- a/include/linux/mm_types.h
+++ b/include/linux/mm_types.h
@@ -56,6 +56,7 @@ struct page {
 		void *s_mem;			/* slab first object */
 		atomic_t compound_mapcount;	/* first tail page */
 		/* page_deferred_list().next	 -- second tail page */
+		struct vm_struct *area;
 	};
 
 	/* Second double word */
diff --git a/mm/vmalloc.c b/mm/vmalloc.c
index 673942094328..44c5dfcb2fd7 100644
--- a/mm/vmalloc.c
+++ b/mm/vmalloc.c
@@ -1466,13 +1466,16 @@ struct vm_struct *get_vm_area_caller(unsigned long size, unsigned long flags,
  */
 struct vm_struct *find_vm_area(const void *addr)
 {
-	struct vmap_area *va;
+	struct page *page;
 
-	va = find_vmap_area((unsigned long)addr);
-	if (va && va->flags & VM_VM_AREA)
-		return va->vm;
+	if (unlikely(!is_vmalloc_addr(addr)))
+		return NULL;
 
-	return NULL;
+	page = vmalloc_to_page(addr);
+	if (unlikely(!page))
+		return NULL;
+
+	return page->area;
 }
 
 /**
@@ -1536,6 +1539,7 @@ static void __vunmap(const void *addr, int deallocate_pages)
 			struct page *page = area->pages[i];
 
 			BUG_ON(!page);
+			page->area = NULL;
 			__free_pages(page, 0);
 		}
 
@@ -1744,6 +1748,7 @@ void *__vmalloc_node_range(unsigned long size, unsigned long align,
 			const void *caller)
 {
 	struct vm_struct *area;
+	unsigned int page_counter;
 	void *addr;
 	unsigned long real_size = size;
 
@@ -1769,6 +1774,9 @@ void *__vmalloc_node_range(unsigned long size, unsigned long align,
 
 	kmemleak_vmalloc(area, size, gfp_mask);
 
+	for (page_counter = 0; page_counter < area->nr_pages; page_counter++)
+		area->pages[page_counter]->area = area;
+
 	return addr;
 
 fail:
-- 
2.16.0

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

WARNING: multiple messages have this Message-ID (diff)
From: Igor Stoppa <igor.stoppa@huawei.com>
To: jglisse@redhat.com, keescook@chromium.org, mhocko@kernel.org,
	labbott@redhat.com, hch@infradead.org, willy@infradead.org
Cc: cl@linux.com, linux-security-module@vger.kernel.org,
	linux-mm@kvack.org, linux-kernel@vger.kernel.org,
	kernel-hardening@lists.openwall.com,
	Igor Stoppa <igor.stoppa@huawei.com>
Subject: [PATCH 3/6] struct page: add field for vm_struct
Date: Sun, 4 Feb 2018 18:47:29 +0200	[thread overview]
Message-ID: <20180204164732.28241-4-igor.stoppa@huawei.com> (raw)
In-Reply-To: <20180204164732.28241-1-igor.stoppa@huawei.com>

When a page is used for virtual memory, it is often necessary to obtian
a handler to the corresponding vm_struct, which refers to the virtually
continuous area generated when invoking vmalloc.

The struct page has a "mapping" field, which can be re-used, to store a
pointer to the parent area. This will avoid more expensive searches.

As example, the function find_vm_area is reimplemented, to take advantage
of the newly introduced field.

Signed-off-by: Igor Stoppa <igor.stoppa@huawei.com>
---
 include/linux/mm_types.h |  1 +
 mm/vmalloc.c             | 18 +++++++++++++-----
 2 files changed, 14 insertions(+), 5 deletions(-)

diff --git a/include/linux/mm_types.h b/include/linux/mm_types.h
index cfd0ac4e5e0e..2abd540b969f 100644
--- a/include/linux/mm_types.h
+++ b/include/linux/mm_types.h
@@ -56,6 +56,7 @@ struct page {
 		void *s_mem;			/* slab first object */
 		atomic_t compound_mapcount;	/* first tail page */
 		/* page_deferred_list().next	 -- second tail page */
+		struct vm_struct *area;
 	};
 
 	/* Second double word */
diff --git a/mm/vmalloc.c b/mm/vmalloc.c
index 673942094328..44c5dfcb2fd7 100644
--- a/mm/vmalloc.c
+++ b/mm/vmalloc.c
@@ -1466,13 +1466,16 @@ struct vm_struct *get_vm_area_caller(unsigned long size, unsigned long flags,
  */
 struct vm_struct *find_vm_area(const void *addr)
 {
-	struct vmap_area *va;
+	struct page *page;
 
-	va = find_vmap_area((unsigned long)addr);
-	if (va && va->flags & VM_VM_AREA)
-		return va->vm;
+	if (unlikely(!is_vmalloc_addr(addr)))
+		return NULL;
 
-	return NULL;
+	page = vmalloc_to_page(addr);
+	if (unlikely(!page))
+		return NULL;
+
+	return page->area;
 }
 
 /**
@@ -1536,6 +1539,7 @@ static void __vunmap(const void *addr, int deallocate_pages)
 			struct page *page = area->pages[i];
 
 			BUG_ON(!page);
+			page->area = NULL;
 			__free_pages(page, 0);
 		}
 
@@ -1744,6 +1748,7 @@ void *__vmalloc_node_range(unsigned long size, unsigned long align,
 			const void *caller)
 {
 	struct vm_struct *area;
+	unsigned int page_counter;
 	void *addr;
 	unsigned long real_size = size;
 
@@ -1769,6 +1774,9 @@ void *__vmalloc_node_range(unsigned long size, unsigned long align,
 
 	kmemleak_vmalloc(area, size, gfp_mask);
 
+	for (page_counter = 0; page_counter < area->nr_pages; page_counter++)
+		area->pages[page_counter]->area = area;
+
 	return addr;
 
 fail:
-- 
2.16.0

  parent reply	other threads:[~2018-02-04 16:47 UTC|newest]

Thread overview: 171+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-02-04 16:47 [RFC PATCH v14 0/6] mm: security: ro protection for dynamic data Igor Stoppa
2018-02-04 16:47 ` Igor Stoppa
2018-02-04 16:47 ` Igor Stoppa
2018-02-04 16:47 ` Igor Stoppa
2018-02-04 16:47 ` [PATCH 1/6] genalloc: track beginning of allocations Igor Stoppa
2018-02-04 16:47   ` Igor Stoppa
2018-02-04 16:47   ` Igor Stoppa
2018-02-04 16:47   ` Igor Stoppa
2018-02-04 22:34   ` Randy Dunlap
2018-02-04 22:34     ` Randy Dunlap
2018-02-04 22:34     ` Randy Dunlap
2018-02-05  3:45     ` Matthew Wilcox
2018-02-05  3:45       ` Matthew Wilcox
2018-02-05  3:45       ` Matthew Wilcox
2018-02-09 14:28       ` Igor Stoppa
2018-02-09 14:28         ` Igor Stoppa
2018-02-09 14:28         ` Igor Stoppa
2018-02-09 14:28         ` Igor Stoppa
2018-02-09 16:18     ` Igor Stoppa
2018-02-09 16:18       ` Igor Stoppa
2018-02-09 16:18       ` Igor Stoppa
2018-02-09 16:18       ` Igor Stoppa
2018-02-09 17:15       ` Randy Dunlap
2018-02-09 17:15         ` Randy Dunlap
2018-02-09 17:15         ` Randy Dunlap
2018-02-04 16:47 ` [PATCH 2/6] genalloc: selftest Igor Stoppa
2018-02-04 16:47   ` Igor Stoppa
2018-02-04 16:47   ` Igor Stoppa
2018-02-04 16:47   ` Igor Stoppa
2018-02-04 22:19   ` Randy Dunlap
2018-02-04 22:19     ` Randy Dunlap
2018-02-04 22:19     ` Randy Dunlap
2018-02-04 23:03     ` Matthew Wilcox
2018-02-04 23:03       ` Matthew Wilcox
2018-02-04 23:03       ` Matthew Wilcox
2018-02-05  0:14       ` Randy Dunlap
2018-02-05  0:14         ` Randy Dunlap
2018-02-05  0:14         ` Randy Dunlap
2018-02-09 14:30         ` Igor Stoppa
2018-02-09 14:30           ` Igor Stoppa
2018-02-09 14:30           ` Igor Stoppa
2018-02-09 14:30           ` Igor Stoppa
2018-02-10 22:59     ` Igor Stoppa
2018-02-10 22:59       ` Igor Stoppa
2018-02-10 22:59       ` Igor Stoppa
2018-02-10 22:59       ` Igor Stoppa
2018-02-07 20:25   ` kbuild test robot
2018-02-07 20:25     ` kbuild test robot
2018-02-07 20:25     ` kbuild test robot
2018-02-11  2:01     ` Igor Stoppa
2018-02-11  2:01       ` Igor Stoppa
2018-02-11  2:01       ` Igor Stoppa
2018-02-11  2:01       ` Igor Stoppa
2018-02-04 16:47 ` Igor Stoppa [this message]
2018-02-04 16:47   ` [PATCH 3/6] struct page: add field for vm_struct Igor Stoppa
2018-02-04 16:47   ` Igor Stoppa
2018-02-04 16:47   ` Igor Stoppa
2018-02-04 16:47 ` [PATCH 4/6] Protectable Memory Igor Stoppa
2018-02-04 16:47   ` Igor Stoppa
2018-02-04 16:47   ` Igor Stoppa
2018-02-04 16:47   ` Igor Stoppa
2018-02-04 22:06   ` Randy Dunlap
2018-02-04 22:06     ` Randy Dunlap
2018-02-04 22:06     ` Randy Dunlap
2018-02-11  1:04     ` Igor Stoppa
2018-02-11  1:04       ` Igor Stoppa
2018-02-11  1:04       ` Igor Stoppa
2018-02-11  1:04       ` Igor Stoppa
2018-02-07 10:03   ` kbuild test robot
2018-02-07 10:03     ` kbuild test robot
2018-02-07 10:03     ` kbuild test robot
2018-02-07 22:21   ` kbuild test robot
2018-02-07 22:21     ` kbuild test robot
2018-02-07 22:21     ` kbuild test robot
2018-02-04 17:00 ` [PATCH 5/6] Pmalloc: self-test Igor Stoppa
2018-02-04 17:00   ` Igor Stoppa
2018-02-04 17:00   ` Igor Stoppa
2018-02-04 17:00   ` Igor Stoppa
2018-02-04 17:00   ` [PATCH 6/6] Documentation for Pmalloc Igor Stoppa
2018-02-04 17:00     ` Igor Stoppa
2018-02-04 17:00     ` Igor Stoppa
2018-02-04 17:00     ` Igor Stoppa
2018-02-04 21:37     ` Randy Dunlap
2018-02-04 21:37       ` Randy Dunlap
2018-02-04 21:37       ` Randy Dunlap
2018-02-09 16:41       ` Igor Stoppa
2018-02-09 16:41         ` Igor Stoppa
2018-02-09 16:41         ` Igor Stoppa
2018-02-09 16:41         ` Igor Stoppa
2018-02-07 17:18   ` [PATCH 5/6] Pmalloc: self-test kbuild test robot
2018-02-07 17:18     ` kbuild test robot
2018-02-07 17:18     ` kbuild test robot
2018-02-11  1:28     ` Igor Stoppa
2018-02-11  1:28       ` Igor Stoppa
2018-02-11  1:28       ` Igor Stoppa
2018-02-11  1:28       ` Igor Stoppa
  -- strict thread matches above, loose matches on Subject: below --
2018-02-12 16:52 [RFC PATCH v16 0/6] mm: security: ro protection for dynamic data Igor Stoppa
2018-02-12 16:52 ` [PATCH 3/6] struct page: add field for vm_struct Igor Stoppa
2018-02-12 16:52   ` Igor Stoppa
2018-02-12 16:52   ` Igor Stoppa
2018-02-12 16:52   ` Igor Stoppa
2018-02-11  3:19 [RFC PATCH v15 0/6] mm: security: ro protection for dynamic data Igor Stoppa
2018-02-11  3:19 ` [PATCH 3/6] struct page: add field for vm_struct Igor Stoppa
2018-02-11  3:19   ` Igor Stoppa
2018-02-11  3:19   ` Igor Stoppa
2018-02-11  3:19   ` Igor Stoppa
2018-02-11 21:16   ` Matthew Wilcox
2018-02-11 21:16     ` Matthew Wilcox
2018-02-11 21:16     ` Matthew Wilcox
2018-02-12 16:24     ` Igor Stoppa
2018-02-12 16:24       ` Igor Stoppa
2018-02-12 16:24       ` Igor Stoppa
2018-02-12 16:24       ` Igor Stoppa
2018-02-20 19:53       ` Igor Stoppa
2018-02-20 19:53         ` Igor Stoppa
2018-02-20 19:53         ` Igor Stoppa
2018-02-20 19:53         ` Igor Stoppa
2018-02-20 20:54         ` Matthew Wilcox
2018-02-20 20:54           ` Matthew Wilcox
2018-02-20 20:54           ` Matthew Wilcox
2018-02-21 12:01           ` Igor Stoppa
2018-02-21 12:01             ` Igor Stoppa
2018-02-21 12:01             ` Igor Stoppa
2018-02-21 12:01             ` Igor Stoppa
2018-02-22 14:20             ` Igor Stoppa
2018-02-22 14:20               ` Igor Stoppa
2018-02-22 14:20               ` Igor Stoppa
2018-02-22 14:20               ` Igor Stoppa
2018-02-03 19:42 [RFC PATCH v13 0/6] mm: security: ro protection for dynamic data Igor Stoppa
2018-02-03 19:42 ` [PATCH 3/6] struct page: add field for vm_struct Igor Stoppa
2018-02-03 19:42   ` Igor Stoppa
2018-02-03 19:42   ` Igor Stoppa
2018-02-03 19:42   ` Igor Stoppa
2018-01-30 15:14 [RFC PATCH v12 0/6] mm: security: ro protection for dynamic data Igor Stoppa
2018-01-30 15:14 ` [PATCH 3/6] struct page: add field for vm_struct Igor Stoppa
2018-01-30 15:14   ` Igor Stoppa
2018-01-30 15:14   ` Igor Stoppa
2018-01-30 15:14   ` Igor Stoppa
2018-02-01  0:00   ` Christopher Lameter
2018-02-01  0:00     ` Christopher Lameter
2018-02-01  0:00     ` Christopher Lameter
2018-02-01 12:42     ` Igor Stoppa
2018-02-01 12:42       ` Igor Stoppa
2018-02-01 12:42       ` Igor Stoppa
2018-02-01 12:42       ` Igor Stoppa
2018-02-01 21:11       ` Kees Cook
2018-02-01 21:11         ` Kees Cook
2018-02-01 21:11         ` Kees Cook
2018-02-02 16:01         ` Igor Stoppa
2018-02-02 16:01           ` Igor Stoppa
2018-02-02 16:01           ` Igor Stoppa
2018-02-02 16:01           ` Igor Stoppa
2018-02-02 18:43       ` Christopher Lameter
2018-02-02 18:43         ` Christopher Lameter
2018-02-02 18:43         ` Christopher Lameter
2018-02-03 16:13         ` Igor Stoppa
2018-02-03 16:13           ` Igor Stoppa
2018-02-03 16:13           ` Igor Stoppa
2018-02-03 16:13           ` Igor Stoppa
2018-02-05 15:33           ` Christopher Lameter
2018-02-05 15:33             ` Christopher Lameter
2018-02-05 15:33             ` Christopher Lameter
2018-02-09 11:34             ` Igor Stoppa
2018-02-09 11:34               ` Igor Stoppa
2018-02-09 11:34               ` Igor Stoppa
2018-02-09 11:34               ` Igor Stoppa
2018-02-06 12:37   ` Matthew Wilcox
2018-02-06 12:37     ` Matthew Wilcox
2018-02-06 12:37     ` Matthew Wilcox
2018-02-09 13:45     ` Igor Stoppa
2018-02-09 13:45       ` Igor Stoppa
2018-02-09 13:45       ` Igor Stoppa
2018-02-09 13:45       ` Igor Stoppa
2018-01-24 17:56 [kernel-hardening] [RFC PATCH v11 0/6] mm: security: ro protection for dynamic data Igor Stoppa
2018-01-24 17:56 ` [PATCH 3/6] struct page: add field for vm_struct Igor Stoppa
2018-01-24 17:56   ` Igor Stoppa

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20180204164732.28241-4-igor.stoppa@huawei.com \
    --to=igor.stoppa@huawei.com \
    --cc=cl@linux.com \
    --cc=hch@infradead.org \
    --cc=jglisse@redhat.com \
    --cc=keescook@chromium.org \
    --cc=kernel-hardening@lists.openwall.com \
    --cc=labbott@redhat.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=linux-security-module@vger.kernel.org \
    --cc=mhocko@kernel.org \
    --cc=willy@infradead.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.