Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 24 Oct 2003 21:31:57 +0200
From:      Thomas Moestl <t.moestl@tu-bs.de>
To:        Alex Deiter <tiamat@komi.mts.ru>
Cc:        Kris Kennaway <kris@obsecurity.org>
Subject:   Re: panic: trap: fast data access mmu miss
Message-ID:  <20031024193157.GA2834@timesink.dyndns.org>
In-Reply-To: <004d01c399ec$fefe5c00$b901320a@komi.mts.ru>
References:  <034001c39962$c8056f70$b901320a@komi.mts.ru> <20031023190138.GA84526@rot13.obsecurity.org> <004d01c399ec$fefe5c00$b901320a@komi.mts.ru>

next in thread | previous in thread | raw e-mail | index | archive | help

--DocE+STaALJfprDB
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline

On Fri, 2003/10/24 at 09:09:25 +0400, Alex Deiter wrote:
> panic: trap: fast data access mmu miss
> cpuid = 0;
> Debugger("panic")
> Stopped at      Debugger+0x1c:  ta              %xcc, 1
> db> tr
> panic() at panic+0x174
> trap() at trap+0x394
> -- fast data access mmu miss tar=0 %o7=0xc018b820 --
> quotactl() at quotactl+0x98
> syscall() at syscall+0x308
> -- syscall (148, FreeBSD ELF64, quotactl) %o7=0x1e3044 --
> userland() at 0x41187e88
> user trace: trap %o7=0x1e3044
> pc 0x41187e88, sp 0x7fdffffe221
> pc 0x15149c, sp 0x7fdffffe321
> pc 0x151818, sp 0x7fdffffe871
> pc 0x1c771c, sp 0x7fdffffe931
> pc 0x1a6938, sp 0x7fdffffea01
> pc 0x1b3904, sp 0x7fdffffec81
> pc 0x1d987c, sp 0x7fdffffedc1
> pc 0x1d99c0, sp 0x7fdffffeec1
> pc 0x1da06c, sp 0x7fdffffefa1
> pc 0x1db99c, sp 0x7fdfffff071
> pc 0x451ea8, sp 0x7fdfffff161
> pc 0x133560, sp 0x7fdfffff3f1
> pc 0x405d3f94, sp 0x7fdfffff4b1
> done

I believe that the attached patch should fix that; the panic is not
sparc64-specific, and should occur on all file systems that do not
define a vop_getwritemount method.

	- Thomas

-- 
Thomas Moestl <t.moestl@tu-bs.de>	http://www.tu-bs.de/~y0015675/
              <tmm@FreeBSD.org>		http://people.FreeBSD.org/~tmm/
PGP fingerprint: 1C97 A604 2BD0 E492 51D0  9C0F 1FE6 4F1D 419C 776C

--DocE+STaALJfprDB
Content-Type: text/plain; charset=us-ascii
Content-Disposition: attachment; filename="quotactl.diff"

Index: vfs_syscalls.c
===================================================================
RCS file: /vol/ncvs/src/sys/kern/vfs_syscalls.c,v
retrieving revision 1.331
diff -u -r1.331 vfs_syscalls.c
--- vfs_syscalls.c	21 Aug 2003 13:53:01 -0000	1.331
+++ vfs_syscalls.c	24 Oct 2003 19:08:29 -0000
@@ -189,7 +189,7 @@
 		caddr_t arg;
 	} */ *uap;
 {
-	struct mount *mp;
+	struct mount *mp, *wmp;
 	int error;
 	struct nameidata nd;
 
@@ -199,12 +199,13 @@
 	if ((error = namei(&nd)) != 0)
 		return (error);
 	NDFREE(&nd, NDF_ONLY_PNBUF);
-	error = vn_start_write(nd.ni_vp, &mp, V_WAIT | PCATCH);
+	error = vn_start_write(nd.ni_vp, &wmp, V_WAIT | PCATCH);
+	mp = nd.ni_vp->v_mount;
 	vrele(nd.ni_vp);
 	if (error)
 		return (error);
 	error = VFS_QUOTACTL(mp, uap->cmd, uap->uid, uap->arg, td);
-	vn_finished_write(mp);
+	vn_finished_write(wmp);
 	return (error);
 }
 

--DocE+STaALJfprDB--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20031024193157.GA2834>