svn commit: r200237 - stable/7/sys/dev/hwpmc
Fabien Thomas
fabient at FreeBSD.org
Mon Dec 7 20:51:19 UTC 2009
Author: fabient
Date: Mon Dec 7 20:51:19 2009
New Revision: 200237
URL: http://svn.freebsd.org/changeset/base/200237
Log:
MFC 200060:
Use a better check for a valid kernel stack address when capturing
kernel call chains.
Modified:
stable/7/sys/dev/hwpmc/hwpmc_x86.c
Directory Properties:
stable/7/sys/ (props changed)
stable/7/sys/contrib/pf/ (props changed)
Modified: stable/7/sys/dev/hwpmc/hwpmc_x86.c
==============================================================================
--- stable/7/sys/dev/hwpmc/hwpmc_x86.c Mon Dec 7 20:49:49 2009 (r200236)
+++ stable/7/sys/dev/hwpmc/hwpmc_x86.c Mon Dec 7 20:51:19 2009 (r200237)
@@ -176,7 +176,8 @@ pmc_save_kernel_callchain(uintptr_t *cc,
stackend = (uintptr_t) td->td_kstack + td->td_kstack_pages * PAGE_SIZE;
if (PMC_IN_TRAP_HANDLER(pc) ||
- !PMC_IN_KERNEL(pc) || !PMC_IN_KERNEL(r) ||
+ !PMC_IN_KERNEL(pc) ||
+ !PMC_IN_KERNEL_STACK(r, stackstart, stackend) ||
!PMC_IN_KERNEL_STACK(sp, stackstart, stackend) ||
!PMC_IN_KERNEL_STACK(fp, stackstart, stackend))
return (1);
@@ -221,7 +222,7 @@ pmc_save_kernel_callchain(uintptr_t *cc,
r = fp + sizeof(uintptr_t);
if (!PMC_IN_KERNEL_STACK(fp, stackstart, stackend) ||
- !PMC_IN_KERNEL(r))
+ !PMC_IN_KERNEL_STACK(r, stackstart, stackend))
break;
pc = *(uintptr_t *) r;
fp = *(uintptr_t *) fp;
More information about the svn-src-stable-7
mailing list