Module Name: src
Committed By: jym
Date: Mon May 7 12:12:04 UTC 2012
Modified Files:
src/sys/arch/amd64/amd64: db_memrw.c
src/sys/arch/i386/i386: db_memrw.c
Log Message:
Use the current destination address to compute PTE, not the address of
origin.
Harmless, except when db_write_text() passes a page boundary.
>From Bug Hunting.
XXX has to be pulled up to -5 and -6.
To generate a diff of this commit:
cvs rdiff -u -r1.9 -r1.10 src/sys/arch/amd64/amd64/db_memrw.c
cvs rdiff -u -r1.28 -r1.29 src/sys/arch/i386/i386/db_memrw.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/sys/arch/amd64/amd64/db_memrw.c
diff -u src/sys/arch/amd64/amd64/db_memrw.c:1.9 src/sys/arch/amd64/amd64/db_memrw.c:1.10
--- src/sys/arch/amd64/amd64/db_memrw.c:1.9 Wed Nov 23 01:15:02 2011
+++ src/sys/arch/amd64/amd64/db_memrw.c Mon May 7 12:12:04 2012
@@ -1,4 +1,4 @@
-/* $NetBSD: db_memrw.c,v 1.9 2011/11/23 01:15:02 jym Exp $ */
+/* $NetBSD: db_memrw.c,v 1.10 2012/05/07 12:12:04 jym Exp $ */
/*-
* Copyright (c) 1996, 2000 The NetBSD Foundation, Inc.
@@ -51,7 +51,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: db_memrw.c,v 1.9 2011/11/23 01:15:02 jym Exp $");
+__KERNEL_RCSID(0, "$NetBSD: db_memrw.c,v 1.10 2012/05/07 12:12:04 jym Exp $");
#include <sys/param.h>
#include <sys/proc.h>
@@ -111,7 +111,7 @@ db_write_text(vaddr_t addr, size_t size,
/*
* Get the PTE for the page.
*/
- ppte = kvtopte(addr);
+ ppte = kvtopte((vaddr_t)dst);
pte = *ppte;
if ((pte & PG_V) == 0) {
Index: src/sys/arch/i386/i386/db_memrw.c
diff -u src/sys/arch/i386/i386/db_memrw.c:1.28 src/sys/arch/i386/i386/db_memrw.c:1.29
--- src/sys/arch/i386/i386/db_memrw.c:1.28 Mon May 7 02:32:09 2012
+++ src/sys/arch/i386/i386/db_memrw.c Mon May 7 12:12:03 2012
@@ -1,4 +1,4 @@
-/* $NetBSD: db_memrw.c,v 1.28 2012/05/07 02:32:09 jym Exp $ */
+/* $NetBSD: db_memrw.c,v 1.29 2012/05/07 12:12:03 jym Exp $ */
/*-
* Copyright (c) 1996, 2000 The NetBSD Foundation, Inc.
@@ -49,7 +49,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: db_memrw.c,v 1.28 2012/05/07 02:32:09 jym Exp $");
+__KERNEL_RCSID(0, "$NetBSD: db_memrw.c,v 1.29 2012/05/07 12:12:03 jym Exp $");
#include "opt_xen.h"
@@ -111,7 +111,7 @@ db_write_text(vaddr_t addr, size_t size,
/*
* Get the PTE for the page.
*/
- ppte = kvtopte(addr);
+ ppte = kvtopte((vaddr_t)dst);
pte = *ppte;
if ((pte & PG_V) == 0) {