growisofs: patch - Device Busy status handling
Hi,
We have found that growisofs hangs with new TEAC DVD drive (DV-W28SS-R).
Problem is with handling Device Busy/Timeout occurred event where
event[5]=0 (which is NoEvent). growisofs doesn't handle this particular
case and instead it requests device for the event again and will get the
same response (and thus it loops forever).
Please see attached patch for this issue.
Any comment is welcomed!
Thanks,
Petr
--- dvd+rw-tools-7.1/transport.hxx.orig st Å?Ãj 6 04:28:06 2010
+++ dvd+rw-tools-7.1/transport.hxx st Å?Ãj 6 04:58:25 2010
@@ -1794,9 +1794,12 @@
break;
case 5: ret |= 1<<5; break; // Multiple Initiators
case 6: // Device Busy
- if ((event[4]&0xF)==1 && // Timeout occured
- (event[5]&0x3)!=0)
- { poll(NULL,0,(descr&0xFFFF)*100+100);
+ if ((event[4]&0xF)==1) // Timeout occured
+ {
+ if ((event[5]&0x3)==0) // No Event
+ return 0; // Ready to accept any command
+
+ poll(NULL,0,(descr&0xFFFF)*100+100);
cmd[0] = 0; // TEST UNIT READY
cmd[5] = 0;
if ((err=cmd.transport()))
Reply to: