All of lore.kernel.org
 help / color / mirror / Atom feed
From: Wakko Warner <wakko@animx.eu.org>
To: Alan Cox <alan@lxorguk.ukuu.org.uk>
Cc: linux-kernel@vger.kernel.org
Subject: Re: cdrom: a dirty CD can freeze your system
Date: Thu, 4 May 2006 12:50:55 -0400	[thread overview]
Message-ID: <20060504165055.GA22880@animx.eu.org> (raw)
In-Reply-To: <1146750532.20677.38.camel@localhost.localdomain>

Alan Cox wrote:
> On Iau, 2006-05-04 at 14:32 +0200, Herbert Rosmanith wrote:
> > 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.
> 
> This is a known problem with the old IDE layer. There are several
> problems involved
> 
> 1. The old IDE layer reset confuses some drives fatally
> 2. The DMA recovery tricks it does break the state machine of some
> controllers and hang them for good
> 3. The error recovery and timer code races and can hang
> 4. The speed change paths used on DMA fail change down race everything
> 
> > 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.
> 
> Please try the libata PATA patches instead of the old IDE layer.

I have noticed a problem which I believe is in sr_mod.  Doesn't matter if
the physical connection is ide, scsi, usb, etc.

If I access a drive that is not ready (ie, no disc, or in the process of
loading in a disc), the drive will no longer function properly.

I'm not sure if I can explain it fully, and I'm not sure if it's already
been reported.

I place a CD on the tray and do a mount.  Mount will fail (lets just assume
that under 2.4.x this worked).  I eject the cd and reinsert and wait for it
to become ready.  Mount will still fail.  Last I recall getblks ioctl
returns 2 or 4 in this case.  The only way to fix is to rmmod sr_mod and
reinsert sr_mod.

another example would be that I insert a disc, say with 159000 sectors and
I'm able to read from it just fine.  I make the above mistake but I insert a
disc with 200,000 sectors.  The disc will be reported with 159000 instead of
the correct 200,000 sectors and some files will not be readable.  Again,
rmmod and modprobe sr_mod fixes the problem.

I've been able to reproduce this on every linux system running 2.6 that I've
used with a CDRom.

-- 
 Lab tests show that use of micro$oft causes cancer in lab animals
 Got Gas???

  parent reply	other threads:[~2006-05-04 16:44 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
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 [this message]
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

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20060504165055.GA22880@animx.eu.org \
    --to=wakko@animx.eu.org \
    --cc=alan@lxorguk.ukuu.org.uk \
    --cc=linux-kernel@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.