The CD-ROM READ DISC INFORMATION command now takes the allocated length field into account when determining the length of data to send, fixes Kurumin Linux on ATAPI DMA.

This commit is contained in:
OBattler
2017-11-20 05:53:08 +01:00
parent 1562c8bb99
commit 4484011767

View File

@@ -2563,7 +2563,7 @@ cdrom_readtoc_fallback:
alloc_length <<= 8;
alloc_length |= cdbufferb[1];
alloc_length += 2;
len = MIN(len, alloc_length);
len = alloc_length;
} else {
memset(cdbufferb, 0, 34);
memset(cdbufferb, 1, 9);
@@ -2575,6 +2575,9 @@ cdrom_readtoc_fallback:
len=34;
}
len = MIN(len, max_len);
pclog("READ_DISC_INFORMATION: len = %i\n", len);
cdrom_set_buf_len(id, BufLen, &len);
cdrom_data_command_finish(id, len, len, len, 0);