/* Notes: There is no timeout for this operation. if this operation is unreliable for a given host, then the host itself needs to put a timer on it, and set the host back to a consistent state prior to returning.  */
static int scsi_try_bus_device_reset(struct scsi_cmnd *scmd)
/* Notes: There is no timeout for this operation. if this operation is unreliable for a given host, then the host itself needs to put a timer on it, and set the host back to a consistent state prior to returning.  */
static int scsi_try_bus_device_reset(struct scsi_cmnd *scmd)
{
	int rtn;
	if (!scmd->device->host->hostt->eh_device_reset_handler)
		return FAILED;
	rtn = scmd->device->host->hostt->eh_device_reset_handler(scmd);
	if (rtn == SUCCESS)
		__scsi_report_device_reset(scmd->device, NULL);
	return rtn;
}