hrev45402 adds 1 changeset to branch 'master' old head: 53ec5d1f33912441da3ad5786dfd300282cdfcf0 new head: 066ca38aea3742d0054963b76fd1259125bb3e5b overview: http://cgit.haiku-os.org/haiku/log/?qt=range&q=066ca38+%5E53ec5d1 ---------------------------------------------------------------------------- 066ca38: Include the actual error message in usb_disk debug output. [ Michael Lotz <mmlr@xxxxxxxx> ] ---------------------------------------------------------------------------- Revision: hrev45402 Commit: 066ca38aea3742d0054963b76fd1259125bb3e5b URL: http://cgit.haiku-os.org/haiku/commit/?id=066ca38 Author: Michael Lotz <mmlr@xxxxxxxx> Date: Sat Mar 23 20:38:32 2013 UTC ---------------------------------------------------------------------------- 1 file changed, 31 insertions(+), 20 deletions(-) .../drivers/disk/usb/usb_disk/usb_disk.cpp | 51 ++++++++++++-------- ---------------------------------------------------------------------------- diff --git a/src/add-ons/kernel/drivers/disk/usb/usb_disk/usb_disk.cpp b/src/add-ons/kernel/drivers/disk/usb/usb_disk/usb_disk.cpp index 31cf38a..ddc02b4 100644 --- a/src/add-ons/kernel/drivers/disk/usb/usb_disk/usb_disk.cpp +++ b/src/add-ons/kernel/drivers/disk/usb/usb_disk/usb_disk.cpp @@ -216,7 +216,7 @@ usb_disk_transfer_data(disk_device *device, bool directionIn, void *data, status_t result = gUSBModule->queue_bulk(directionIn ? device->bulk_in : device->bulk_out, data, dataLength, usb_disk_callback, device); if (result != B_OK) { - TRACE_ALWAYS("failed to queue data transfer\n"); + TRACE_ALWAYS("failed to queue data transfer: %s\n", strerror(result)); return result; } @@ -235,7 +235,8 @@ usb_disk_transfer_data(disk_device *device, bool directionIn, void *data, } while (result == B_INTERRUPTED); if (result != B_OK) { - TRACE_ALWAYS("acquire_sem failed while waiting for data transfer\n"); + TRACE_ALWAYS("acquire_sem failed while waiting for data transfer: %s\n", + strerror(result)); return result; } @@ -322,7 +323,8 @@ usb_disk_operation(device_lun *lun, uint8 operation, uint8 opLength, if (device->status != B_OK || device->actual_length != sizeof(command_block_wrapper)) { // sending the command block wrapper failed - TRACE_ALWAYS("sending the command block wrapper failed\n"); + TRACE_ALWAYS("sending the command block wrapper failed: %s\n", + strerror(device->status)); usb_disk_reset_recovery(device); return B_ERROR; } @@ -343,7 +345,8 @@ usb_disk_operation(device_lun *lun, uint8 operation, uint8 opLength, gUSBModule->clear_feature(directionIn ? device->bulk_in : device->bulk_out, USB_FEATURE_ENDPOINT_HALT); } else { - TRACE_ALWAYS("sending or receiving of the data failed\n"); + TRACE_ALWAYS("sending or receiving of the data failed: %s\n", + strerror(device->status)); usb_disk_reset_recovery(device); return B_ERROR; } @@ -359,14 +362,16 @@ usb_disk_operation(device_lun *lun, uint8 operation, uint8 opLength, } if (result != B_OK) { - TRACE_ALWAYS("receiving the command status wrapper failed\n"); + TRACE_ALWAYS("receiving the command status wrapper failed: %s\n", + strerror(result)); usb_disk_reset_recovery(device); return result; } if (status.signature != CSW_SIGNATURE || status.tag != command.tag) { // the command status wrapper is not valid - TRACE_ALWAYS("command status wrapper is not valid\n"); + TRACE_ALWAYS("command status wrapper is not valid: %#" B_PRIx32 "\n", + status.signature); usb_disk_reset_recovery(device); return B_ERROR; } @@ -382,7 +387,9 @@ usb_disk_operation(device_lun *lun, uint8 operation, uint8 opLength, if (dataLength != NULL) { *dataLength -= residue; if (transferedData < *dataLength) { - TRACE_ALWAYS("less data transfered than indicated\n"); + TRACE_ALWAYS("less data transfered than indicated: %" + B_PRIuSIZE " vs. %" B_PRIuSIZE "\n", transferedData, + *dataLength); *dataLength = transferedData; } } @@ -396,8 +403,8 @@ usb_disk_operation(device_lun *lun, uint8 operation, uint8 opLength, // the operation is complete but has failed at the SCSI level if (operation != SCSI_TEST_UNIT_READY_6) { - TRACE_ALWAYS("operation 0x%02x failed at the SCSI level\n", - operation); + TRACE_ALWAYS("operation %#" B_PRIx8 + " failed at the SCSI level\n", operation); } result = usb_disk_request_sense(lun); @@ -408,7 +415,7 @@ usb_disk_operation(device_lun *lun, uint8 operation, uint8 opLength, case CSW_STATUS_PHASE_ERROR: { // a protocol or device error occured - TRACE_ALWAYS("phase error in operation 0x%02x\n", operation); + TRACE_ALWAYS("phase error in operation %#" B_PRIx8 "\n", operation); usb_disk_reset_recovery(device); return B_ERROR; } @@ -437,7 +444,8 @@ usb_disk_request_sense(device_lun *lun) status_t result = usb_disk_operation(lun, SCSI_REQUEST_SENSE_6, 6, 0, dataLength, ¶meter, &dataLength, true); if (result != B_OK) { - TRACE_ALWAYS("getting request sense data failed\n"); + TRACE_ALWAYS("getting request sense data failed: %s\n", + strerror(result)); return result; } @@ -503,7 +511,7 @@ usb_disk_mode_sense(device_lun *lun) SCSI_MODE_PAGE_DEVICE_CONFIGURATION, dataLength, ¶meter, &dataLength, true); if (result != B_OK) { - TRACE_ALWAYS("getting mode sense data failed\n"); + TRACE_ALWAYS("getting mode sense data failed: %s\n", strerror(result)); return result; } @@ -553,7 +561,7 @@ usb_disk_inquiry(device_lun *lun) break; } if (result != B_OK) { - TRACE_ALWAYS("getting inquiry data failed\n"); + TRACE_ALWAYS("getting inquiry data failed: %s\n", strerror(result)); lun->device_type = B_DISK; lun->removable = true; return result; @@ -618,7 +626,7 @@ usb_disk_update_capacity(device_lun *lun) } if (result != B_OK) { - TRACE_ALWAYS("failed to update capacity\n"); + TRACE_ALWAYS("failed to update capacity: %s\n", strerror(result)); lun->media_present = false; lun->media_changed = false; usb_disk_reset_capacity(lun); @@ -825,7 +833,8 @@ usb_disk_device_added(usb_device newDevice, void **cookie) } if (result != B_OK) { - TRACE_ALWAYS("failed to initialize logical units\n"); + TRACE_ALWAYS("failed to initialize logical units: %s\n", + strerror(result)); usb_disk_free_device_and_luns(device); return result; } @@ -948,7 +957,8 @@ usb_disk_prepare_partial_buffer(device_lun *lun, off_t position, size_t length, status_t result = usb_disk_block_read(lun, blockPosition, blockCount, blockBuffer, &blockLength); if (result != B_OK) { - TRACE_ALWAYS("block read failed when filling partial buffer\n"); + TRACE_ALWAYS("block read failed when filling partial buffer: %s\n", + strerror(result)); free(blockBuffer); return result; } @@ -1180,7 +1190,8 @@ usb_disk_ioctl(void *cookie, uint32 op, void *buffer, size_t length) if (result > 0) result = B_OK; - TRACE_ALWAYS("got device name: \"%s\" = %s\n", name, strerror(result)); + TRACE_ALWAYS("got device name \"%s\": %s\n", name, + strerror(result)); break; } #endif @@ -1237,7 +1248,7 @@ usb_disk_read(void *cookie, off_t position, void *buffer, size_t *length) } *length = 0; - TRACE_ALWAYS("read fails with 0x%08" B_PRIx32 "\n", result); + TRACE_ALWAYS("read failed: %s\n", strerror(result)); return result; } @@ -1288,7 +1299,7 @@ usb_disk_write(void *cookie, off_t position, const void *buffer, } *length = 0; - TRACE_ALWAYS("write fails with 0x%08" B_PRIx32 "\n", result); + TRACE_ALWAYS("write failed: %s\n", strerror(result)); return result; } @@ -1330,7 +1341,7 @@ init_driver() status_t result = get_module(B_USB_MODULE_NAME, (module_info **)&gUSBModule); if (result < B_OK) { - TRACE_ALWAYS("getting module failed 0x%08" B_PRIx32 "\n", result); + TRACE_ALWAYS("getting module failed: %s\n", strerror(result)); mutex_destroy(&gDeviceListLock); return result; }