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.
This commit is contained in:
jym 2012-05-07 12:12:03 +00:00
parent 686542c156
commit 7db24764fe
2 changed files with 6 additions and 6 deletions

View File

@ -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, const char *data)
/*
* Get the PTE for the page.
*/
ppte = kvtopte(addr);
ppte = kvtopte((vaddr_t)dst);
pte = *ppte;
if ((pte & PG_V) == 0) {

View File

@ -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, const char *data)
/*
* Get the PTE for the page.
*/
ppte = kvtopte(addr);
ppte = kvtopte((vaddr_t)dst);
pte = *ppte;
if ((pte & PG_V) == 0) {