svn commit: r312378 - head/sys/cddl/dev/fbt/arm

Andrew Turner andrew at FreeBSD.org
Wed Jan 18 13:27:25 UTC 2017


Author: andrew
Date: Wed Jan 18 13:27:24 2017
New Revision: 312378
URL: https://svnweb.freebsd.org/changeset/base/312378

Log:
  Use the kernel stack in the ARM FBT DTrace provider. This is used to find
  the fifth argument to functions being traced, however there was an error
  where the userspace stack was being used. This may be invalid leading to
  a kernel panic if this address is unmapped.
  
  Submitted by:	Graeme Jenkinson <graeme.jenkinson at cl.cam.ac.uk>
  MFC after:	1 week
  Differential Revision:	https://reviews.freebsd.org/D9229

Modified:
  head/sys/cddl/dev/fbt/arm/fbt_isa.c

Modified: head/sys/cddl/dev/fbt/arm/fbt_isa.c
==============================================================================
--- head/sys/cddl/dev/fbt/arm/fbt_isa.c	Wed Jan 18 10:21:06 2017	(r312377)
+++ head/sys/cddl/dev/fbt/arm/fbt_isa.c	Wed Jan 18 13:27:24 2017	(r312378)
@@ -61,7 +61,7 @@ fbt_invop(uintptr_t addr, struct trapfra
 
 			/* Get 5th parameter from stack */
 			DTRACE_CPUFLAG_SET(CPU_DTRACE_NOFAULT);
-			fifthparam = *(register_t *)frame->tf_usr_sp;
+			fifthparam = *(register_t *)frame->tf_svc_sp;
 			DTRACE_CPUFLAG_CLEAR(CPU_DTRACE_NOFAULT | CPU_DTRACE_BADADDR);
 
 			dtrace_probe(fbt->fbtp_id, frame->tf_r0,


More information about the svn-src-head mailing list