Commit 58a2c43689f0247371577373e96db4eb6a3abe39
1 parent
ed6a9b30
Misc scsi disk/cdrom fixes/improvements 4/4
Implement Test Unit Ready command (return NOT READY as above if !bdrv_is_inserted(...)) Signed-off-by: Juergen Lock <nox@jelal.kn-bremen.de> git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6954 c046a42c-6fe2-441c-8c8c-71466251a162
Showing
1 changed file
with
3 additions
and
0 deletions
hw/scsi-disk.c
| @@ -417,6 +417,8 @@ static int32_t scsi_send_command(SCSIDevice *d, uint32_t tag, | @@ -417,6 +417,8 @@ static int32_t scsi_send_command(SCSIDevice *d, uint32_t tag, | ||
| 417 | switch (command) { | 417 | switch (command) { |
| 418 | case 0x0: | 418 | case 0x0: |
| 419 | DPRINTF("Test Unit Ready\n"); | 419 | DPRINTF("Test Unit Ready\n"); |
| 420 | + if (!bdrv_is_inserted(s->bdrv)) | ||
| 421 | + goto notready; | ||
| 420 | break; | 422 | break; |
| 421 | case 0x03: | 423 | case 0x03: |
| 422 | DPRINTF("Request Sense (len %d)\n", len); | 424 | DPRINTF("Request Sense (len %d)\n", len); |
| @@ -766,6 +768,7 @@ static int32_t scsi_send_command(SCSIDevice *d, uint32_t tag, | @@ -766,6 +768,7 @@ static int32_t scsi_send_command(SCSIDevice *d, uint32_t tag, | ||
| 766 | outbuf[7] = 0; | 768 | outbuf[7] = 0; |
| 767 | r->buf_len = 8; | 769 | r->buf_len = 8; |
| 768 | } else { | 770 | } else { |
| 771 | + notready: | ||
| 769 | scsi_command_complete(r, STATUS_CHECK_CONDITION, SENSE_NOT_READY); | 772 | scsi_command_complete(r, STATUS_CHECK_CONDITION, SENSE_NOT_READY); |
| 770 | return 0; | 773 | return 0; |
| 771 | } | 774 | } |