public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* cdrom: a dirty CD can freeze your system
@ 2006-05-04 12:32 Herbert Rosmanith
  2006-05-04 12:45 ` Michael Tokarev
  2006-05-04 13:48 ` Alan Cox
  0 siblings, 2 replies; 15+ messages in thread
From: Herbert Rosmanith @ 2006-05-04 12:32 UTC (permalink / raw)
  To: linux-kernel; +Cc: Herbert Rosmanith


good day,

kernel-version: 2.6.16.13 preemptible

I've been experimenting with damaged CDs this day. I observed that
a dirty or (partly) unreadable CD will (1) block the process which is
trying to read from the CD - it will be in state "D" - uninterruptible
sleep and (2) sometimes(?) probably freeze your system such that even
a manual reboot wont work (e.g., because it's not possible to log in, or
keystrokes are no longer accepted) and a power-cycle is required.

the uninterruptible process will force a reboot - it wont go away.

one can observe that freeze in that icmp echo requests will be sent
back with several seconds delay (depending on how much buffering is
done).

the kernel log shows:
hdb: DMA timeout retry
hdb: timeout waiting for DMA
hdb: status timeout: status=0xd0 { Busy }
ide: failed opcode was: unknown
hdb: drive not ready for command
hdb: ATAPI reset complete
hdb: irq timeout: status=0xd0 { Busy }
ide: failed opcode was: unknown
hdb: ATAPI reset complete
hdb: DMA timeout retry
hdb: timeout waiting for DMA
hdb: status timeout: status=0xd0 { Busy }
ide: failed opcode was: unknown
hdb: drive not ready for command
hdb: ATAPI reset complete

... and so on (so the drive is (BUSY | READY | SEEK )

even sending an "hdparm -w" to the drive wont work, in contrast, it will
make it worse because it eventuelly will trigger a kernel panic.

just for sake of completeness, data is read from the device via "SG_IO"
ioctl and "READ CD" command accorinding to the MMC specs. the program
works well for undamaged CDs.

please tell me a way to savely
(1) reset the IDE interface, e.g via IDE-TASKFILE (or, for testing,
    a sequence of outb() to the chip)
(2) reset the CD-drive - sending a WIN_DEVICE_RESET (linux/hdreg.h line 196)
    doesnt seem to be enough.

kind regards,
herbert rosmanith


^ permalink raw reply	[flat|nested] 15+ messages in thread

end of thread, other threads:[~2006-05-05  0:13 UTC | newest]

Thread overview: 15+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2006-05-04 12:32 cdrom: a dirty CD can freeze your system Herbert Rosmanith
2006-05-04 12:45 ` Michael Tokarev
2006-05-04 12:56   ` Herbert Rosmanith
2006-05-04 14:41   ` Joseph Cheek
2006-05-04 13:48 ` Alan Cox
2006-05-04 14:14   ` Christian Trefzer
2006-05-04 15:28     ` Alan Cox
2006-05-04 17:54       ` Christian Trefzer
2006-05-04 16:50   ` Wakko Warner
2006-05-04 17:10     ` Alan Cox
2006-05-04 17:27       ` Joshua Hudson
2006-05-04 20:47         ` Wakko Warner
2006-05-05  0:10           ` Joshua Hudson
2006-05-05  0:20             ` Wakko Warner
2006-05-04 20:56   ` kernel keeps empty CDROM(DVD)-drive "busy"; (was Re: cdrom: a dirty CD can freeze your system) Linda Walsh

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox