Subject: kern/1256: panic lockholder (156) != 0
To: None <gnats-bugs@gnats.netbsd.org>
From: enami tsugutomo <enami@sys.ptg.sony.co.jp>
List: netbsd-bugs
Date: 07/22/1995 14:36:48
>Number:         1256
>Category:       kern
>Synopsis:       3 or more simultaneous access to CD-ROM causes panic.
>Confidential:   no
>Severity:       serious
>Priority:       low
>Responsible:    kern-bug-people (Kernel Bug People)
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Sat Jul 22 19:20:01 1995
>Last-Modified:
>Originator:     enami tsugutomo
>Organization:
	Sony Corporation
>Release:        arround jul 7
>Environment:
System: NetBSD king-show 1.0A NetBSD 1.0A (KINGSHOW) #10: Sat Jul 22 14:11:11 JST 1995 root@king-show:/usr/src/sys/arch/i386/compile/KINGSHOW i386
	SCSI Adaptor: Buslogic BT-445C
	CD-ROM drive: ICM CD-620S or Nakamichi MBR-7.4

>Description:
	If 3 or more processes access save cdrom drive simltaneously,
	kernel panics with message "lockholder (XXX) != 0" at cd9660_lock.
>How-To-Repeat:
	# assume that cdrom is mounted on /cd/0
	find /cd/0 -print & find /cd/0 -print & find /cd/0 -print &
>Fix:
	In the function cd9660_lock, it seems that we should go back
	to check if someone has lock after wakeup from sleep.  Otherwise,
	two or more slept processes work without locking each other.

	So, I tried to put `goto start;' just after the sleep,
	but it seems the panic is gone, but some processes are
	deadlocked now.
>Audit-Trail:
>Unformatted: