Re: "panic: mutex Giant not owned" in do_execve()

From: Jeff Roberson <jroberson_at_chesapeake.net>
Date: Mon, 20 Jun 2005 16:47:59 -0400 (EDT)
On Fri, 17 Jun 2005, Kris Kennaway wrote:

> quad e450 running up-to-date -current:
>
> panic: mutex Giant not owned at ../../../kern/kern_mutex.c:299
> cpuid = 0
> KDB: enter: panic
> [thread pid 52851 tid 100456 ]
> Stopped at      kdb_enter+0x3c: ta              %xcc, 1
> db> wh
> Tracing pid 52851 tid 100456 td 0xfffff80077c61560
> panic() at panic+0x16c
> _mtx_assert() at _mtx_assert+0x6c
> _mtx_unlock_flags() at _mtx_unlock_flags+0x68
> do_execve() at do_execve+0xa0c

Can you tell me what code is at do_execve+0xa0c?

> kern_execve() at kern_execve+0x7c
> execve() at execve+0x38
> syscall() at syscall+0x2d4
> -- reserved %o7=0 --
> userland() at 0x40223400
> user trace: trap %o7=0
> pc 0x40223400, sp 0x7fdffffd021
> done
>
> #12 0x00000000c01525cc in do_execve (td=0xfffff80077c61560, args=0xc, mac_p=0x0) at ../../../kern/kern_exec.c:789
> #13 0x00000000c0151b3c in kern_execve (td=0xfffff80077c61560, args=0xeea6f670, mac_p=0x0) at ../../../kern/kern_exec.c:250
> #14 0x00000000c0151a78 in execve (td=0xfffff80077c61560, uap=0xeea6f8c0) at ../../../kern/kern_exec.c:185
> #15 0x00000000c02f3cd4 in syscall (tf=0xeea6f880) at ../../../sparc64/sparc64/trap.c:592
> (kgdb) frame 12
> #12 0x00000000c01525cc in do_execve (td=0xfffff80077c61560, args=0xc, mac_p=0x0) at ../../../kern/kern_exec.c:789
> 789             VFS_UNLOCK_GIANT(vfslocked);
> (kgdb) list
> 784     #ifdef MAC
> 785             mac_execve_exit(imgp);
> 786             if (interplabel != NULL)
> 787                     mac_vnode_label_free(interplabel);
> 788     #endif
> 789             VFS_UNLOCK_GIANT(vfslocked);
> 790             return (error);
> 791     }
> 792
> 793     int
> (kgdb) frame 13
> #13 0x00000000c0151b3c in kern_execve (td=0xfffff80077c61560, args=0xeea6f670, mac_p=0x0) at ../../../kern/kern_exec.c:250
> 250             error = do_execve(td, args, mac_p);
> (kgdb) list
> 245                             return (ERESTART);      /* Try again later. */
> 246                     }
> 247                     PROC_UNLOCK(p);
> 248             }
> 249
> 250             error = do_execve(td, args, mac_p);
> 251
> 252             if (p->p_flag & P_HADTHREADS) {
> 253                     PROC_LOCK(p);
> 254                     /*
> (kgdb) frame 14
> #14 0x00000000c0151a78 in execve (td=0xfffff80077c61560, uap=0xeea6f8c0) at ../../../kern/kern_exec.c:185
> 185                     error = kern_execve(td, &args, NULL);
>
> Kris
>
Received on Mon Jun 20 2005 - 18:48:15 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:38:37 UTC