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:
parent
686542c156
commit
7db24764fe
@ -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) {
|
||||
|
@ -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) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user