Opened 12 years ago

Closed 11 years ago

#3396 closed bug (fixed)

ahci_port.cpp: CDPlayer crashes on play

Reported by: zaunpfahl Owned by: stippi
Priority: normal Milestone: R1
Component: Drivers/Disk Version: R1/pre-alpha1
Keywords: Cc:
Blocked By: Blocking:
Platform: x86


AD-7590S Slim SATA Optical on Abit iL-90mv, 945GT

Insert audio cd, start CDPlayer -> CDPlayer reads title correctly
Press Play -> panic "CDB has invalid direction mask"

commit 2008-05-24 21:27:44 UTC (rev 25650), line 827:

  • isWrite = false;

+ panic("CDB has invalid direction mask");

Unless it is the boot device, is a panic really called for?

Change History (9)

comment:1 by zaunpfahl, 12 years ago

Version: R1 development

comment:2 by zaunpfahl, 12 years ago

Version: R1 development

comment:3 by axeld, 12 years ago

Currently, there are way more panics in the code as there need to be, like ASSERTs in debug builds; it helps finding bugs, and be annoying, so they are fixed at one point :-)

comment:4 by marcusoverhagen, 12 years ago

Congratulations, you found a bug. Some code is calling ahci with a CDB that has an invalid direction mask.

The panic should be changed later to abort the request in a non-debug build, to avoid DOS attacks. Right now it helps to identify bugs.

comment:5 by marcusoverhagen, 12 years ago

play_msf() in src/add-ons/kernel/drivers/disk/scsi/scsi_cd/scsi_cd.cpp doesn't set the direction mask in ccbFlags parameter of simple_exec. I can't fix this at this time.

comment:6 by stippi, 12 years ago

I can fix it for you, should it be IN or OUT? Sorry if this is a dumb question, but I didn't read more code.

comment:7 by marcusoverhagen, 12 years ago

Owner: changed from marcusoverhagen to stippi

SCSI_DIR_NONE for all calls of simple_exec() in play_msf(), stop_audio(), pause_resume() and scan() functions. Thanks!

comment:8 by marcusoverhagen, 12 years ago

Should be fixed in hrev29108. Does it work now?

comment:9 by marcusoverhagen, 11 years ago

Resolution: fixed
Status: newclosed
Note: See TracTickets for help on using tickets.