Date: Thu, 15 Aug 2002 11:17:00 -0700 (PDT) From: Matthew Jacob <mjacob@feral.com> To: hackers@freebsd.org Subject: question about Giant && Rebooting Message-ID: <Pine.BSF.4.21.0208151114490.27617-100000@beppo>
next in thread | raw e-mail | index | archive | help
I'm getting:
syncing disks... 6
done
Uptime: 1d1h5m30s
lock order reversal
1st 0xc0edd008 shutdown_post_sync (shutdown_post_sync) @
/usr/src/sys/kern/kern_shutdown.c:341
2nd 0xc04759e0 Giant (Giant) @ /usr/src/sys/dev/isp/isp_freebsd.c:2067
but the code in question is:
CAMLOCK_2_ISPLOCK(isp);
error = isp_start((XS_T *) ccb);
switch (error) {
case CMD_QUEUED:
ccb->ccb_h.status |= CAM_SIM_QUEUED;
if (ccb->ccb_h.timeout != CAM_TIME_INFINITY) {
u_int64_t ticks = (u_int64_t) hz;
if (ccb->ccb_h.timeout == CAM_TIME_DEFAULT)
ticks = 60 * 1000 * ticks;
else
ticks = ccb->ccb_h.timeout * hz;
ticks = ((ticks + 999) / 1000) + hz + hz;
if (ticks >= 0x80000000) {
isp_prt(isp, ISP_LOGERR,
"timeout overflow");
ticks = 0x7fffffff;
}
ccb->ccb_h.timeout_ch = timeout(isp_watchdog,
(caddr_t)ccb, (int)ticks);
} else {
callout_handle_init(&ccb->ccb_h.timeout_ch);
}
ISPLOCK_2_CAMLOCK(isp); <<<<<<<<<<<<<<<<<<<<<<<<<<<<<----
Where CAMLOCK_2_ISPLOCK supposedly drops Giant so it can pick up the
ISP mutex and ISPLOCK_2_CAMLOCK drops the isp lock so it can reacquire
Giant- this is because CAM is covered by Giant.
So- why the whine?
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-hackers" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.BSF.4.21.0208151114490.27617-100000>
