Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 25 Nov 1998 04:33:25 +0100 (CET)
From:      hohmuth@inf.tu-dresden.de
To:        FreeBSD-gnats-submit@FreeBSD.ORG
Subject:   i386/8855: can't mount CD in ATAPI drive after eject/reload
Message-ID:  <199811250333.EAA00689@olymp.sax.de>

index | next in thread | raw e-mail


>Number:         8855
>Category:       i386
>Synopsis:       can't mount CD in ATAPI drive after eject/reload
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    freebsd-bugs
>State:          open
>Quarter:
>Keywords:
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Tue Nov 24 19:50:01 PST 1998
>Last-Modified:
>Originator:     Michael Hohmuth
>Organization:
none
>Release:        FreeBSD 2.2.7-STABLE i386
>Environment:
	
"uname -a" says:

    FreeBSD olymp.sax.de 2.2.7-STABLE FreeBSD 2.2.7-STABLE #1: 
    Wed Nov 25 03:45:12 CET 1998     
    root@olymp.sax.de:/usr/src/sys/compile/OLYMPISDN  i386

I've updated the atapi.c driver with some changes from
FreeBSD-current.  This doesn't change the behaviour, though.

/var/log/dmesg.today contains:

    wdc0 at 0x1f0-0x1f7 irq 14 on isa
    wdc0: unit 0 (atapi): <IDE-1 REV.1.05  9-20-94/DOLPHIN>, removable
    atapi0.0: unknown phase

/etc/fstab contains:
    /dev/wcd0c              /cdrom          cd9660  ro,noauto       0       0


>Description:
	
I can't mount a CD-ROM inserted after the system has been booted:

    # mount /cdrom
    cd9660: /dev/cdrom: Input/output error

A CD-ROM which has been loaded before booting FreeBSD can be mounted
just fine.

Below I include some kernel output which shows a first "mount /cdrom"
which succeeds, an "umount", an eject/reload, and another "mount /cdrom"
which fails with an I/O error.  

The "error=20" messages at the end of the output or the "atapi0.0:
unknown phase" message which appears at boot time maybe are connected
to the problem in some way?


# cdcontrol -f /dev/cdrom debug on

atapi0.0: req w 1e-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0 len=0
atapi0.0: start
atapi0.0: send cmd PREVENT_ALLOW 1e-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0
atapi0.0: intr ireason=0x3, len=0, status=50<ready,opdone>, error=0

# mount /cdrom

atapi0.0: req w 0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0 len=0
atapi0.0: start
atapi0.0: send cmd TEST_UNIT_READY 0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0
atapi0.0: intr ireason=0x3, len=0, status=50<ready,opdone>, error=0
atapi0.0: req w 43-0-0-0-0-0-0-0-c-0-0-0-0-0-0-0 len=12
atapi0.0: start
atapi0.0: send cmd READ_TOC 43-0-0-0-0-0-0-0-c-0-0-0-0-0-0-0
atapi0.0: intr ireason=0x2, len=12, status=58<ready,opdone,drq>, error=0
atapi0.0: intr ireason=0x3, len=0, status=50<ready,opdone>, error=0
atapi0.0: req w 43-0-0-0-0-0-0-0-c-0-0-0-0-0-0-0 len=12
atapi0.0: start
atapi0.0: send cmd READ_TOC 43-0-0-0-0-0-0-0-c-0-0-0-0-0-0-0
atapi0.0: intr ireason=0x2, len=12, status=58<ready,opdone,drq>, error=0
atapi0.0: intr ireason=0x3, len=0, status=50<ready,opdone>, error=0
atapi0.0: req w 25-0-0-0-0-0-0-0-8-0-0-0-0-0-0-0 len=8
atapi0.0: start
atapi0.0: send cmd READ_CAPACITY 25-0-0-0-0-0-0-0-8-0-0-0-0-0-0-0
atapi0.0: intr ireason=0x2, len=8, status=58<ready,opdone,drq>, error=0
atapi0.0: intr ireason=0x3, len=0, status=50<ready,opdone>, error=0
atapi0.0: req w 1e-0-0-0-1-0-0-0-0-0-0-0-0-0-0-0 len=0
atapi0.0: start
atapi0.0: send cmd PREVENT_ALLOW 1e-0-0-0-1-0-0-0-0-0-0-0-0-0-0-0
atapi0.0: intr ireason=0x3, len=0, status=50<ready,opdone>, error=0
atapi0.0: req w 1e-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0 len=0
atapi0.0: start
atapi0.0: send cmd PREVENT_ALLOW 1e-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0
atapi0.0: intr ireason=0x3, len=0, status=50<ready,opdone>, error=0
atapi0.0: req w 0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0 len=0
atapi0.0: start
atapi0.0: send cmd TEST_UNIT_READY 0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0
atapi0.0: intr ireason=0x3, len=0, status=50<ready,opdone>, error=0
atapi0.0: req w 43-0-0-0-0-0-0-0-c-0-0-0-0-0-0-0 len=12
atapi0.0: start
atapi0.0: send cmd READ_TOC 43-0-0-0-0-0-0-0-c-0-0-0-0-0-0-0
atapi0.0: intr ireason=0x2, len=12, status=58<ready,opdone,drq>, error=0
atapi0.0: intr ireason=0x3, len=0, status=50<ready,opdone>, error=0
atapi0.0: req w 43-0-0-0-0-0-0-0-c-0-0-0-0-0-0-0 len=12
atapi0.0: start
atapi0.0: send cmd READ_TOC 43-0-0-0-0-0-0-0-c-0-0-0-0-0-0-0
atapi0.0: intr ireason=0x2, len=12, status=58<ready,opdone,drq>, error=0
atapi0.0: intr ireason=0x3, len=0, status=50<ready,opdone>, error=0
atapi0.0: req w 25-0-0-0-0-0-0-0-8-0-0-0-0-0-0-0 len=8
atapi0.0: start
atapi0.0: send cmd READ_CAPACITY 25-0-0-0-0-0-0-0-8-0-0-0-0-0-0-0
atapi0.0: intr ireason=0x2, len=8, status=58<ready,opdone,drq>, error=0
atapi0.0: intr ireason=0x3, len=0, status=50<ready,opdone>, error=0
atapi0.0: req w 1e-0-0-0-1-0-0-0-0-0-0-0-0-0-0-0 len=0
atapi0.0: start
atapi0.0: send cmd PREVENT_ALLOW 1e-0-0-0-1-0-0-0-0-0-0-0-0-0-0-0
atapi0.0: intr ireason=0x3, len=0, status=50<ready,opdone>, error=0
atapi0.0: req cb 28-0-0-0-0-10-0-0-1-0-0-0-0-0-0-0 len=2048
atapi0.0: start
atapi0.0: send cmd READ_BIG 28-0-0-0-0-10-0-0-1-0-0-0-0-0-0-0
atapi0.0: intr ireason=0x2, len=2048, status=58<ready,opdone,drq>, error=0
atapi0.0: intr ireason=0x3, len=0, status=50<ready,opdone>, error=0
atapi0.0: req cb 28-0-0-0-0-26-0-0-1-0-0-0-0-0-0-0 len=2048
atapi0.0: start
atapi0.0: send cmd READ_BIG 28-0-0-0-0-26-0-0-1-0-0-0-0-0-0-0
atapi0.0: intr ireason=0x2, len=2048, status=58<ready,opdone,drq>, error=0
atapi0.0: intr ireason=0x3, len=0, status=50<ready,opdone>, error=0

# umount /cdrom

atapi0.0: req cb 28-0-0-0-0-26-0-0-1-0-0-0-0-0-0-0 len=2048
atapi0.0: start
atapi0.0: send cmd READ_BIG 28-0-0-0-0-26-0-0-1-0-0-0-0-0-0-0
atapi0.0: intr ireason=0x2, len=2048, status=58<ready,opdone,drq>, error=0
atapi0.0: intr ireason=0x3, len=0, status=50<ready,opdone>, error=0
atapi0.0: req w 1e-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0 len=0
atapi0.0: start
atapi0.0: send cmd PREVENT_ALLOW 1e-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0
atapi0.0: intr ireason=0x3, len=0, status=50<ready,opdone>, error=0

# cdcontrol -f /dev/cdrom eject

atapi0.0: intr ireason=0x3, len=0, status=50<ready,opdone>, error=0
atapi0.0: req w 1e-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0 len=0
atapi0.0: start
atapi0.0: send cmd PREVENT_ALLOW 1e-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0
atapi0.0: intr ireason=0x3, len=0, status=50<ready,opdone>, error=0
atapi0.0: req w 0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0 len=0
atapi0.0: start
atapi0.0: send cmd TEST_UNIT_READY 0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0
atapi0.0: intr ireason=0x3, len=0, status=50<ready,opdone>, error=0
atapi0.0: req w 43-0-0-0-0-0-0-0-c-0-0-0-0-0-0-0 len=12
atapi0.0: start
atapi0.0: send cmd READ_TOC 43-0-0-0-0-0-0-0-c-0-0-0-0-0-0-0
atapi0.0: intr ireason=0x2, len=12, status=58<ready,opdone,drq>, error=0
atapi0.0: intr ireason=0x3, len=0, status=50<ready,opdone>, error=0
atapi0.0: req w 43-0-0-0-0-0-0-0-c-0-0-0-0-0-0-0 len=12
atapi0.0: start
atapi0.0: send cmd READ_TOC 43-0-0-0-0-0-0-0-c-0-0-0-0-0-0-0
atapi0.0: intr ireason=0x2, len=12, status=58<ready,opdone,drq>, error=0
atapi0.0: intr ireason=0x3, len=0, status=50<ready,opdone>, error=0
atapi0.0: req w 25-0-0-0-0-0-0-0-8-0-0-0-0-0-0-0 len=8
atapi0.0: start
atapi0.0: send cmd READ_CAPACITY 25-0-0-0-0-0-0-0-8-0-0-0-0-0-0-0
atapi0.0: intr ireason=0x2, len=8, status=58<ready,opdone,drq>, error=0
atapi0.0: intr ireason=0x3, len=0, status=50<ready,opdone>, error=0
atapi0.0: req w 1e-0-0-0-1-0-0-0-0-0-0-0-0-0-0-0 len=0
atapi0.0: start
atapi0.0: send cmd PREVENT_ALLOW 1e-0-0-0-1-0-0-0-0-0-0-0-0-0-0-0
atapi0.0: intr ireason=0x3, len=0, status=50<ready,opdone>, error=0
atapi0.0: req w 1e-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0 len=0
atapi0.0: start
atapi0.0: send cmd PREVENT_ALLOW 1e-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0
atapi0.0: intr ireason=0x3, len=0, status=50<ready,opdone>, error=0
atapi0.0: req w 1b-1-0-0-0-0-0-0-0-0-0-0-0-0-0-0 len=0
atapi0.0: start
atapi0.0: send cmd START_STOP 1b-1-0-0-0-0-0-0-0-0-0-0-0-0-0-0
atapi0.0: intr ireason=0x3, len=0, status=50<ready,opdone>, error=0
atapi0.0: req w 1e-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0 len=0
atapi0.0: start
atapi0.0: send cmd PREVENT_ALLOW 1e-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0
atapi0.0: intr ireason=0x3, len=0, status=50<ready,opdone>, error=0
atapi0.0: req w 1b-0-0-0-2-0-0-0-0-0-0-0-0-0-0-0 len=0
atapi0.0: start
atapi0.0: send cmd START_STOP 1b-0-0-0-2-0-0-0-0-0-0-0-0-0-0-0

# cdcontrol -f /dev/cdrom close

atapi0.0: intr ireason=0x3, len=0, status=50<ready,opdone>, error=0
atapi0.0: req w 1e-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0 len=0
atapi0.0: start
atapi0.0: send cmd PREVENT_ALLOW 1e-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0
atapi0.0: intr ireason=0x3, len=0, status=50<ready,opdone>, error=0
atapi0.0: req w 0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0 len=0
atapi0.0: start
atapi0.0: send cmd TEST_UNIT_READY 0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0
atapi0.0: intr ireason=0x3, len=0, status=51<ready,opdone,check>, error=20
atapi0.0: req w 1e-0-0-0-1-0-0-0-0-0-0-0-0-0-0-0 len=0
atapi0.0: start
atapi0.0: send cmd PREVENT_ALLOW 1e-0-0-0-1-0-0-0-0-0-0-0-0-0-0-0
atapi0.0: intr ireason=0x3, len=0, status=51<ready,opdone,check>, error=20
atapi0.0: req w 0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0 len=0
atapi0.0: start
atapi0.0: send cmd TEST_UNIT_READY 0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0
atapi0.0: intr ireason=0x3, len=0, status=51<ready,opdone,check>, error=20
atapi0.0: req w 1e-0-0-0-1-0-0-0-0-0-0-0-0-0-0-0 len=0
atapi0.0: start
atapi0.0: send cmd PREVENT_ALLOW 1e-0-0-0-1-0-0-0-0-0-0-0-0-0-0-0
atapi0.0: intr ireason=0x3, len=0, status=51<ready,opdone,check>, error=20
atapi0.0: req w 1e-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0 len=0
atapi0.0: start
atapi0.0: send cmd PREVENT_ALLOW 1e-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0
atapi0.0: intr ireason=0x3, len=0, status=51<ready,opdone,check>, error=20
atapi0.0: req w 0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0 len=0
atapi0.0: start
atapi0.0: send cmd TEST_UNIT_READY 0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0
atapi0.0: intr ireason=0x3, len=0, status=51<ready,opdone,check>, error=20
atapi0.0: req w 1e-0-0-0-1-0-0-0-0-0-0-0-0-0-0-0 len=0
atapi0.0: start
atapi0.0: send cmd PREVENT_ALLOW 1e-0-0-0-1-0-0-0-0-0-0-0-0-0-0-0
atapi0.0: intr ireason=0x3, len=0, status=51<ready,opdone,check>, error=20
atapi0.0: req w 1b-1-0-0-0-0-0-0-0-0-0-0-0-0-0-0 len=0
atapi0.0: start
atapi0.0: send cmd START_STOP 1b-1-0-0-0-0-0-0-0-0-0-0-0-0-0-0

# mount /cdrom
cd9660: /dev/cdrom: Input/output error

atapi0.0: req w 0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0 len=0
atapi0.0: start
atapi0.0: send cmd TEST_UNIT_READY 0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0
atapi0.0: intr ireason=0x3, len=0, status=51<ready,opdone,check>, error=20
atapi0.0: req w 1e-0-0-0-1-0-0-0-0-0-0-0-0-0-0-0 len=0
atapi0.0: start
atapi0.0: send cmd PREVENT_ALLOW 1e-0-0-0-1-0-0-0-0-0-0-0-0-0-0-0
atapi0.0: intr ireason=0x3, len=0, status=51<ready,opdone,check>, error=20
atapi0.0: req w 0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0 len=0
atapi0.0: start
atapi0.0: send cmd TEST_UNIT_READY 0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0
atapi0.0: intr ireason=0x3, len=0, status=51<ready,opdone,check>, error=20
atapi0.0: req w 1e-0-0-0-1-0-0-0-0-0-0-0-0-0-0-0 len=0
atapi0.0: start
atapi0.0: send cmd PREVENT_ALLOW 1e-0-0-0-1-0-0-0-0-0-0-0-0-0-0-0
atapi0.0: intr ireason=0x3, len=0, status=51<ready,opdone,check>, error=20
atapi0.0: req w 1e-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0 len=0
atapi0.0: start
atapi0.0: send cmd PREVENT_ALLOW 1e-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0
atapi0.0: intr ireason=0x3, len=0, status=51<ready,opdone,check>, error=20
atapi0.0: req w 0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0 len=0
atapi0.0: start
atapi0.0: send cmd TEST_UNIT_READY 0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0
atapi0.0: intr ireason=0x3, len=0, status=51<ready,opdone,check>, error=20
atapi0.0: req w 1e-0-0-0-1-0-0-0-0-0-0-0-0-0-0-0 len=0
atapi0.0: start
atapi0.0: send cmd PREVENT_ALLOW 1e-0-0-0-1-0-0-0-0-0-0-0-0-0-0-0
atapi0.0: intr ireason=0x3, len=0, status=51<ready,opdone,check>, error=20
atapi0.0: req w 1e-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0 len=0
atapi0.0: start
atapi0.0: send cmd PREVENT_ALLOW 1e-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0
atapi0.0: intr ireason=0x3, len=0, status=51<ready,opdone,check>, error=20


>How-To-Repeat:
	
The "mount" commands shown below assume that /etc/fstab contains
something like: 

    /dev/wcd0c              /cdrom          cd9660  ro,noauto       0       0

# cdcontrol -f /dev/cdrom debug on
# mount /cdrom
# umount /cdrom
# cdcontrol -f /dev/cdrom eject
# cdcontrol -f /dev/cdrom close
# mount /cdrom
cd9660: /dev/cdrom: Input/output error

>Fix:
	
Fix not known

Workaround:  Reboot every time you want to mount a new CD-ROM :-(
>Audit-Trail:
>Unformatted:

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-bugs" in the body of the message


help

Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199811250333.EAA00689>