Messages in this thread Patch in this message | | | Date | Sat, 10 Feb 2007 11:15:21 +0200 | From | Imre Deak <> | Subject | [PATCH] DEV: zero: use correct pgprot for zeromapping |
| |
Instead of PAGE_COPY use the pgprot bits established already at original mapping time of the VMA. This will also include any architecture specific bits setup through protection_map. zeromap_page_range will take care of COW'ing the passed pgprot.
This fixes at least one problem on ARM where reading /dev/zero in one process created global PTE mappings thus - practically - zeroing out memory ranges of all other processes.
Signed-off-by: Imre Deak <imre.deak@solidboot.com> --- drivers/char/mem.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/drivers/char/mem.c b/drivers/char/mem.c index f5c160c..9a7264f 100644 --- a/drivers/char/mem.c +++ b/drivers/char/mem.c @@ -646,7 +646,7 @@ static inline size_t read_zero_pagealigned(char __user * buf, size_t size) count = size; zap_page_range(vma, addr, count, NULL); - if (zeromap_page_range(vma, addr, count, PAGE_COPY)) + if (zeromap_page_range(vma, addr, count, vma->vm_page_prot)) break; size -= count; -- 1.4.4.3.GIT - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |