libata-eh.c (c3fa32b9764dc45dcf8a2231b1c110abc4a63e0b) libata-eh.c (3915c3b5b10cd127198c1f9e2aefff7808500d92)
1/*
2 * libata-eh.c - libata error handling
3 *
4 * Maintained by: Tejun Heo <tj@kernel.org>
5 * Please ALWAYS copy linux-ide@vger.kernel.org
6 * on emails.
7 *
8 * Copyright 2006 Tejun Heo <htejun@gmail.com>

--- 1308 unchanged lines hidden (view full) ---

1317/**
1318 * ata_eh_qc_retry - Tell midlayer to retry an ATA command after EH
1319 * @qc: Command to retry
1320 *
1321 * Indicate to the mid and upper layers that an ATA command
1322 * should be retried. To be used from EH.
1323 *
1324 * SCSI midlayer limits the number of retries to scmd->allowed.
1/*
2 * libata-eh.c - libata error handling
3 *
4 * Maintained by: Tejun Heo <tj@kernel.org>
5 * Please ALWAYS copy linux-ide@vger.kernel.org
6 * on emails.
7 *
8 * Copyright 2006 Tejun Heo <htejun@gmail.com>

--- 1308 unchanged lines hidden (view full) ---

1317/**
1318 * ata_eh_qc_retry - Tell midlayer to retry an ATA command after EH
1319 * @qc: Command to retry
1320 *
1321 * Indicate to the mid and upper layers that an ATA command
1322 * should be retried. To be used from EH.
1323 *
1324 * SCSI midlayer limits the number of retries to scmd->allowed.
1325 * scmd->allowed is incremented for commands which get retried
1325 * scmd->retries is decremented for commands which get retried
1326 * due to unrelated failures (qc->err_mask is zero).
1327 */
1328void ata_eh_qc_retry(struct ata_queued_cmd *qc)
1329{
1330 struct scsi_cmnd *scmd = qc->scsicmd;
1326 * due to unrelated failures (qc->err_mask is zero).
1327 */
1328void ata_eh_qc_retry(struct ata_queued_cmd *qc)
1329{
1330 struct scsi_cmnd *scmd = qc->scsicmd;
1331 if (!qc->err_mask)
1332 scmd->allowed++;
1331 if (!qc->err_mask && scmd->retries)
1332 scmd->retries--;
1333 __ata_eh_qc_complete(qc);
1334}
1335
1336/**
1337 * ata_dev_disable - disable ATA device
1338 * @dev: ATA device to disable
1339 *
1340 * Disable @dev.

--- 947 unchanged lines hidden (view full) ---

2288 const char *text;
2289 } cmd_descr[] = {
2290 { ATA_CMD_DEV_RESET, "DEVICE RESET" },
2291 { ATA_CMD_CHK_POWER, "CHECK POWER MODE" },
2292 { ATA_CMD_STANDBY, "STANDBY" },
2293 { ATA_CMD_IDLE, "IDLE" },
2294 { ATA_CMD_EDD, "EXECUTE DEVICE DIAGNOSTIC" },
2295 { ATA_CMD_DOWNLOAD_MICRO, "DOWNLOAD MICROCODE" },
1333 __ata_eh_qc_complete(qc);
1334}
1335
1336/**
1337 * ata_dev_disable - disable ATA device
1338 * @dev: ATA device to disable
1339 *
1340 * Disable @dev.

--- 947 unchanged lines hidden (view full) ---

2288 const char *text;
2289 } cmd_descr[] = {
2290 { ATA_CMD_DEV_RESET, "DEVICE RESET" },
2291 { ATA_CMD_CHK_POWER, "CHECK POWER MODE" },
2292 { ATA_CMD_STANDBY, "STANDBY" },
2293 { ATA_CMD_IDLE, "IDLE" },
2294 { ATA_CMD_EDD, "EXECUTE DEVICE DIAGNOSTIC" },
2295 { ATA_CMD_DOWNLOAD_MICRO, "DOWNLOAD MICROCODE" },
2296 { ATA_CMD_DOWNLOAD_MICRO_DMA, "DOWNLOAD MICROCODE DMA" },
2296 { ATA_CMD_NOP, "NOP" },
2297 { ATA_CMD_FLUSH, "FLUSH CACHE" },
2298 { ATA_CMD_FLUSH_EXT, "FLUSH CACHE EXT" },
2299 { ATA_CMD_ID_ATA, "IDENTIFY DEVICE" },
2300 { ATA_CMD_ID_ATAPI, "IDENTIFY PACKET DEVICE" },
2301 { ATA_CMD_SERVICE, "SERVICE" },
2302 { ATA_CMD_READ, "READ DMA" },
2303 { ATA_CMD_READ_EXT, "READ DMA EXT" },

--- 4 unchanged lines hidden (view full) ---

2308 { ATA_CMD_WRITE_EXT, "WRITE DMA EXT" },
2309 { ATA_CMD_WRITE_QUEUED, "WRITE DMA QUEUED EXT" },
2310 { ATA_CMD_WRITE_STREAM_EXT, "WRITE STREAM EXT" },
2311 { ATA_CMD_WRITE_STREAM_DMA_EXT, "WRITE STREAM DMA EXT" },
2312 { ATA_CMD_WRITE_FUA_EXT, "WRITE DMA FUA EXT" },
2313 { ATA_CMD_WRITE_QUEUED_FUA_EXT, "WRITE DMA QUEUED FUA EXT" },
2314 { ATA_CMD_FPDMA_READ, "READ FPDMA QUEUED" },
2315 { ATA_CMD_FPDMA_WRITE, "WRITE FPDMA QUEUED" },
2297 { ATA_CMD_NOP, "NOP" },
2298 { ATA_CMD_FLUSH, "FLUSH CACHE" },
2299 { ATA_CMD_FLUSH_EXT, "FLUSH CACHE EXT" },
2300 { ATA_CMD_ID_ATA, "IDENTIFY DEVICE" },
2301 { ATA_CMD_ID_ATAPI, "IDENTIFY PACKET DEVICE" },
2302 { ATA_CMD_SERVICE, "SERVICE" },
2303 { ATA_CMD_READ, "READ DMA" },
2304 { ATA_CMD_READ_EXT, "READ DMA EXT" },

--- 4 unchanged lines hidden (view full) ---

2309 { ATA_CMD_WRITE_EXT, "WRITE DMA EXT" },
2310 { ATA_CMD_WRITE_QUEUED, "WRITE DMA QUEUED EXT" },
2311 { ATA_CMD_WRITE_STREAM_EXT, "WRITE STREAM EXT" },
2312 { ATA_CMD_WRITE_STREAM_DMA_EXT, "WRITE STREAM DMA EXT" },
2313 { ATA_CMD_WRITE_FUA_EXT, "WRITE DMA FUA EXT" },
2314 { ATA_CMD_WRITE_QUEUED_FUA_EXT, "WRITE DMA QUEUED FUA EXT" },
2315 { ATA_CMD_FPDMA_READ, "READ FPDMA QUEUED" },
2316 { ATA_CMD_FPDMA_WRITE, "WRITE FPDMA QUEUED" },
2317 { ATA_CMD_FPDMA_SEND, "SEND FPDMA QUEUED" },
2318 { ATA_CMD_FPDMA_RECV, "RECEIVE FPDMA QUEUED" },
2316 { ATA_CMD_PIO_READ, "READ SECTOR(S)" },
2317 { ATA_CMD_PIO_READ_EXT, "READ SECTOR(S) EXT" },
2318 { ATA_CMD_PIO_WRITE, "WRITE SECTOR(S)" },
2319 { ATA_CMD_PIO_WRITE_EXT, "WRITE SECTOR(S) EXT" },
2320 { ATA_CMD_READ_MULTI, "READ MULTIPLE" },
2321 { ATA_CMD_READ_MULTI_EXT, "READ MULTIPLE EXT" },
2322 { ATA_CMD_WRITE_MULTI, "WRITE MULTIPLE" },
2323 { ATA_CMD_WRITE_MULTI_EXT, "WRITE MULTIPLE EXT" },

--- 10 unchanged lines hidden (view full) ---

2334 { ATA_CMD_READ_NATIVE_MAX, "READ NATIVE MAX ADDRESS" },
2335 { ATA_CMD_READ_NATIVE_MAX_EXT, "READ NATIVE MAX ADDRESS EXT" },
2336 { ATA_CMD_SET_MAX, "SET MAX ADDRESS" },
2337 { ATA_CMD_SET_MAX_EXT, "SET MAX ADDRESS EXT" },
2338 { ATA_CMD_READ_LOG_EXT, "READ LOG EXT" },
2339 { ATA_CMD_WRITE_LOG_EXT, "WRITE LOG EXT" },
2340 { ATA_CMD_READ_LOG_DMA_EXT, "READ LOG DMA EXT" },
2341 { ATA_CMD_WRITE_LOG_DMA_EXT, "WRITE LOG DMA EXT" },
2319 { ATA_CMD_PIO_READ, "READ SECTOR(S)" },
2320 { ATA_CMD_PIO_READ_EXT, "READ SECTOR(S) EXT" },
2321 { ATA_CMD_PIO_WRITE, "WRITE SECTOR(S)" },
2322 { ATA_CMD_PIO_WRITE_EXT, "WRITE SECTOR(S) EXT" },
2323 { ATA_CMD_READ_MULTI, "READ MULTIPLE" },
2324 { ATA_CMD_READ_MULTI_EXT, "READ MULTIPLE EXT" },
2325 { ATA_CMD_WRITE_MULTI, "WRITE MULTIPLE" },
2326 { ATA_CMD_WRITE_MULTI_EXT, "WRITE MULTIPLE EXT" },

--- 10 unchanged lines hidden (view full) ---

2337 { ATA_CMD_READ_NATIVE_MAX, "READ NATIVE MAX ADDRESS" },
2338 { ATA_CMD_READ_NATIVE_MAX_EXT, "READ NATIVE MAX ADDRESS EXT" },
2339 { ATA_CMD_SET_MAX, "SET MAX ADDRESS" },
2340 { ATA_CMD_SET_MAX_EXT, "SET MAX ADDRESS EXT" },
2341 { ATA_CMD_READ_LOG_EXT, "READ LOG EXT" },
2342 { ATA_CMD_WRITE_LOG_EXT, "WRITE LOG EXT" },
2343 { ATA_CMD_READ_LOG_DMA_EXT, "READ LOG DMA EXT" },
2344 { ATA_CMD_WRITE_LOG_DMA_EXT, "WRITE LOG DMA EXT" },
2345 { ATA_CMD_TRUSTED_NONDATA, "TRUSTED NON-DATA" },
2342 { ATA_CMD_TRUSTED_RCV, "TRUSTED RECEIVE" },
2343 { ATA_CMD_TRUSTED_RCV_DMA, "TRUSTED RECEIVE DMA" },
2344 { ATA_CMD_TRUSTED_SND, "TRUSTED SEND" },
2345 { ATA_CMD_TRUSTED_SND_DMA, "TRUSTED SEND DMA" },
2346 { ATA_CMD_PMP_READ, "READ BUFFER" },
2346 { ATA_CMD_TRUSTED_RCV, "TRUSTED RECEIVE" },
2347 { ATA_CMD_TRUSTED_RCV_DMA, "TRUSTED RECEIVE DMA" },
2348 { ATA_CMD_TRUSTED_SND, "TRUSTED SEND" },
2349 { ATA_CMD_TRUSTED_SND_DMA, "TRUSTED SEND DMA" },
2350 { ATA_CMD_PMP_READ, "READ BUFFER" },
2351 { ATA_CMD_PMP_READ_DMA, "READ BUFFER DMA" },
2347 { ATA_CMD_PMP_WRITE, "WRITE BUFFER" },
2352 { ATA_CMD_PMP_WRITE, "WRITE BUFFER" },
2353 { ATA_CMD_PMP_WRITE_DMA, "WRITE BUFFER DMA" },
2348 { ATA_CMD_CONF_OVERLAY, "DEVICE CONFIGURATION OVERLAY" },
2349 { ATA_CMD_SEC_SET_PASS, "SECURITY SET PASSWORD" },
2350 { ATA_CMD_SEC_UNLOCK, "SECURITY UNLOCK" },
2351 { ATA_CMD_SEC_ERASE_PREP, "SECURITY ERASE PREPARE" },
2352 { ATA_CMD_SEC_ERASE_UNIT, "SECURITY ERASE UNIT" },
2353 { ATA_CMD_SEC_FREEZE_LOCK, "SECURITY FREEZE LOCK" },
2354 { ATA_CMD_SEC_DISABLE_PASS, "SECURITY DISABLE PASSWORD" },
2355 { ATA_CMD_CONFIG_STREAM, "CONFIGURE STREAM" },
2356 { ATA_CMD_SMART, "SMART" },
2357 { ATA_CMD_MEDIA_LOCK, "DOOR LOCK" },
2358 { ATA_CMD_MEDIA_UNLOCK, "DOOR UNLOCK" },
2359 { ATA_CMD_DSM, "DATA SET MANAGEMENT" },
2360 { ATA_CMD_CHK_MED_CRD_TYP, "CHECK MEDIA CARD TYPE" },
2361 { ATA_CMD_CFA_REQ_EXT_ERR, "CFA REQUEST EXTENDED ERROR" },
2362 { ATA_CMD_CFA_WRITE_NE, "CFA WRITE SECTORS WITHOUT ERASE" },
2363 { ATA_CMD_CFA_TRANS_SECT, "CFA TRANSLATE SECTOR" },
2364 { ATA_CMD_CFA_ERASE, "CFA ERASE SECTORS" },
2365 { ATA_CMD_CFA_WRITE_MULT_NE, "CFA WRITE MULTIPLE WITHOUT ERASE" },
2354 { ATA_CMD_CONF_OVERLAY, "DEVICE CONFIGURATION OVERLAY" },
2355 { ATA_CMD_SEC_SET_PASS, "SECURITY SET PASSWORD" },
2356 { ATA_CMD_SEC_UNLOCK, "SECURITY UNLOCK" },
2357 { ATA_CMD_SEC_ERASE_PREP, "SECURITY ERASE PREPARE" },
2358 { ATA_CMD_SEC_ERASE_UNIT, "SECURITY ERASE UNIT" },
2359 { ATA_CMD_SEC_FREEZE_LOCK, "SECURITY FREEZE LOCK" },
2360 { ATA_CMD_SEC_DISABLE_PASS, "SECURITY DISABLE PASSWORD" },
2361 { ATA_CMD_CONFIG_STREAM, "CONFIGURE STREAM" },
2362 { ATA_CMD_SMART, "SMART" },
2363 { ATA_CMD_MEDIA_LOCK, "DOOR LOCK" },
2364 { ATA_CMD_MEDIA_UNLOCK, "DOOR UNLOCK" },
2365 { ATA_CMD_DSM, "DATA SET MANAGEMENT" },
2366 { ATA_CMD_CHK_MED_CRD_TYP, "CHECK MEDIA CARD TYPE" },
2367 { ATA_CMD_CFA_REQ_EXT_ERR, "CFA REQUEST EXTENDED ERROR" },
2368 { ATA_CMD_CFA_WRITE_NE, "CFA WRITE SECTORS WITHOUT ERASE" },
2369 { ATA_CMD_CFA_TRANS_SECT, "CFA TRANSLATE SECTOR" },
2370 { ATA_CMD_CFA_ERASE, "CFA ERASE SECTORS" },
2371 { ATA_CMD_CFA_WRITE_MULT_NE, "CFA WRITE MULTIPLE WITHOUT ERASE" },
2372 { ATA_CMD_REQ_SENSE_DATA, "REQUEST SENSE DATA EXT" },
2373 { ATA_CMD_SANITIZE_DEVICE, "SANITIZE DEVICE" },
2366 { ATA_CMD_READ_LONG, "READ LONG (with retries)" },
2367 { ATA_CMD_READ_LONG_ONCE, "READ LONG (without retries)" },
2368 { ATA_CMD_WRITE_LONG, "WRITE LONG (with retries)" },
2369 { ATA_CMD_WRITE_LONG_ONCE, "WRITE LONG (without retries)" },
2370 { ATA_CMD_RESTORE, "RECALIBRATE" },
2371 { 0, NULL } /* terminate list */
2372 };
2373

--- 1766 unchanged lines hidden ---
2374 { ATA_CMD_READ_LONG, "READ LONG (with retries)" },
2375 { ATA_CMD_READ_LONG_ONCE, "READ LONG (without retries)" },
2376 { ATA_CMD_WRITE_LONG, "WRITE LONG (with retries)" },
2377 { ATA_CMD_WRITE_LONG_ONCE, "WRITE LONG (without retries)" },
2378 { ATA_CMD_RESTORE, "RECALIBRATE" },
2379 { 0, NULL } /* terminate list */
2380 };
2381

--- 1766 unchanged lines hidden ---