summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/scsi/isci/core/scic_sds_request.c1
-rw-r--r--drivers/scsi/isci/init.c4
-rw-r--r--drivers/scsi/isci/port.c1
-rw-r--r--drivers/scsi/isci/remote_device.c10
-rw-r--r--drivers/scsi/isci/request.c1
-rw-r--r--drivers/scsi/isci/request.h5
-rw-r--r--drivers/scsi/isci/task.c11
7 files changed, 15 insertions, 18 deletions
diff --git a/drivers/scsi/isci/core/scic_sds_request.c b/drivers/scsi/isci/core/scic_sds_request.c
index 64aa9c6..a6ee155 100644
--- a/drivers/scsi/isci/core/scic_sds_request.c
+++ b/drivers/scsi/isci/core/scic_sds_request.c
@@ -1635,7 +1635,6 @@ static void scic_sds_request_completed_state_enter(
struct isci_host *ihost = sci_object_get_association(scic);
struct isci_request *ireq = sci_object_get_association(sci_req);
-
SET_STATE_HANDLER(sci_req,
scic_sds_request_state_handler_table,
SCI_BASE_REQUEST_STATE_COMPLETED);
diff --git a/drivers/scsi/isci/init.c b/drivers/scsi/isci/init.c
index 5e63ae6..5da9a69 100644
--- a/drivers/scsi/isci/init.c
+++ b/drivers/scsi/isci/init.c
@@ -362,8 +362,6 @@ static int isci_setup_interrupts(struct pci_dev *pdev)
else
isr = isci_msix_isr;
- BUG_ON(!isci_host);
-
err = devm_request_irq(&pdev->dev, msix->vector, isr, 0,
DRV_NAME"-msix", isci_host);
if (!err)
@@ -379,13 +377,11 @@ static int isci_setup_interrupts(struct pci_dev *pdev)
pci_disable_msix(pdev);
goto intx;
}
-
return 0;
intx:
err = devm_request_irq(&pdev->dev, pdev->irq, isci_intx_isr,
IRQF_SHARED, DRV_NAME"-intx", pdev);
-
return err;
}
diff --git a/drivers/scsi/isci/port.c b/drivers/scsi/isci/port.c
index b675a94..cf78cf0 100644
--- a/drivers/scsi/isci/port.c
+++ b/drivers/scsi/isci/port.c
@@ -178,6 +178,7 @@ void isci_port_link_up(
unsigned long success = true;
BUG_ON(isci_phy->isci_port != NULL);
+
isci_phy->isci_port = isci_port;
dev_dbg(&isci_host->pdev->dev,
diff --git a/drivers/scsi/isci/remote_device.c b/drivers/scsi/isci/remote_device.c
index 320850c..9301e25 100644
--- a/drivers/scsi/isci/remote_device.c
+++ b/drivers/scsi/isci/remote_device.c
@@ -202,8 +202,6 @@ static enum sci_status isci_remote_device_construct(
sci_object_set_association(to_sci_dev(isci_device), isci_device);
- BUG_ON(port->isci_host == NULL);
-
/* start the device. */
status = scic_remote_device_start(to_sci_dev(isci_device),
ISCI_REMOTE_DEVICE_START_TIMEOUT);
@@ -257,8 +255,12 @@ isci_remote_device_alloc(struct isci_host *ihost, struct isci_port *iport)
return NULL;
}
- BUG_ON(!list_empty(&idev->reqs_in_process));
- BUG_ON(!list_empty(&idev->node));
+ if (WARN_ONCE(!list_empty(&idev->reqs_in_process), "found requests in process\n"))
+ return NULL;
+
+ if (WARN_ONCE(!list_empty(&idev->node), "found non-idle remote device\n"))
+ return NULL;
+
isci_remote_device_change_state(idev, isci_freed);
return idev;
diff --git a/drivers/scsi/isci/request.c b/drivers/scsi/isci/request.c
index 37ffedc..a90c299 100644
--- a/drivers/scsi/isci/request.c
+++ b/drivers/scsi/isci/request.c
@@ -472,7 +472,6 @@ int isci_request_execute(
out:
if (status != SCI_SUCCESS) {
-
/* release dma memory on failure. */
isci_request_free(isci_host, request);
request = NULL;
diff --git a/drivers/scsi/isci/request.h b/drivers/scsi/isci/request.h
index 0c08da6..642b211 100644
--- a/drivers/scsi/isci/request.h
+++ b/drivers/scsi/isci/request.h
@@ -193,8 +193,6 @@ static inline enum isci_request_status isci_request_change_started_to_newstate(
enum isci_request_status old_state;
unsigned long flags;
- BUG_ON(isci_request == NULL);
-
spin_lock_irqsave(&isci_request->state_lock, flags);
old_state = isci_request->status;
@@ -243,7 +241,8 @@ static inline void isci_request_free(
struct isci_host *isci_host,
struct isci_request *isci_request)
{
- BUG_ON(isci_request == NULL);
+ if (!isci_request)
+ return;
/* release the dma memory if we fail. */
dma_pool_free(isci_host->dma_pool, isci_request,
diff --git a/drivers/scsi/isci/task.c b/drivers/scsi/isci/task.c
index b88101e..c79968d 100644
--- a/drivers/scsi/isci/task.c
+++ b/drivers/scsi/isci/task.c
@@ -272,7 +272,7 @@ static enum sci_status isci_task_request_build(
{
struct scic_sds_remote_device *sci_device;
enum sci_status status = SCI_FAILURE;
- struct isci_request *request;
+ struct isci_request *request = NULL;
struct isci_remote_device *isci_device;
/* struct sci_sas_identify_address_frame_protocols dev_protocols; */
struct smp_discover_response_protocols dev_protocols;
@@ -372,8 +372,6 @@ static void isci_tmf_timeout_cb(void *tmf_request_arg)
struct isci_tmf *tmf = isci_request_access_tmf(request);
enum sci_status status;
- BUG_ON(request->ttype != tmf_task);
-
/* This task management request has timed-out. Terminate the request
* so that the request eventually completes to the requestor in the
* request completion callback path.
@@ -1121,8 +1119,11 @@ static void isci_abort_task_process_cb(
* request state was already set to "aborted" by the abort
* task function.
*/
- BUG_ON((old_request->status != aborted)
- && (old_request->status != completed));
+ if ((old_request->status != aborted)
+ && (old_request->status != completed))
+ dev_err(&old_request->isci_host->pdev->dev,
+ "%s: Bad request status (%d): tmf=%p, old_request=%p\n",
+ __func__, old_request->status, tmf, old_request);
break;
case isci_tmf_timed_out:
OpenPOWER on IntegriCloud