kern/60163: ATA failed to mount data track of CD-EXTRA multisession cd

Ariff Abdullah skywizard at MyBSD.org.my
Thu Dec 11 13:40:10 PST 2003


>Number:         60163
>Category:       kern
>Synopsis:       ATA failed to mount data track of CD-EXTRA multisession cd
>Confidential:   no
>Severity:       critical
>Priority:       high
>Responsible:    freebsd-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Thu Dec 11 13:40:06 PST 2003
>Closed-Date:
>Last-Modified:
>Originator:     Ariff Abdullah
>Release:        FreeBSD 4.6.2-RELEASE i386
>Organization:
MyBSD
>Environment:
System: FreeBSD 4.x / 5.1


>Description:
	Mounting multisession cd will fail with 'invalid argument'.
	This only occur if the very first track of the cd is NOT
	a data track, because the atapi-cd driver rely only on the
	first track to decide which block_size to use. However the cd
	can be mounted successfully through atapi-cam subsystem, or
	using older FreeBSD release (2.2.x).
>How-To-Repeat:
	Insert multisession cd (perhaps audio + data, where audio is
	in first session and at the beginning of the track)

	# mount_cd9660 /dev/acd0c /cdrom
	mount_cd9660: /dev/acd0c: Invalid argument
	# mount_cd9660 -s the_exact_sector /dev/acd0c /cdrom
	mount_cd9660: /dev/acd0c: Invalid argument
>Fix:
	1) enable atapicam support and mount the cd
	using /dev/cd0c (only a workaround).

	2) Apply this patch (perhaps fix)

--- sys/dev/ata/atapi-cd.c.orig Thu Dec 11 02:20:33 2003
+++ sys/dev/ata/atapi-cd.c      Thu Dec 11 02:26:14 2003
@@ -1277,7 +1277,13 @@
     }
     cdp->toc.hdr.len = ntohs(cdp->toc.hdr.len);
 
-    cdp->block_size = (cdp->toc.tab[0].control & 4) ? 2048 : 2352;
+    cdp->block_size = 2352;
+    for (track = 0; track < ntracks; track++) {
+       if (cdp->toc.tab[track].control & 4) {
+           cdp->block_size = 2048;
+           break;
+       }
+    }
     acd_set_ioparm(cdp);
     bzero(ccb, sizeof(ccb));
     ccb[0] = ATAPI_READ_CAPACITY;
>Release-Note:
>Audit-Trail:
>Unformatted:


More information about the freebsd-bugs mailing list