isci: audit usage of BUG_ON macro in isci driver

Removes unnecessary usage of BUG_ON macro, excluding core directory.
In some cases macro is unnecesary, check is done in caller function.
In other cases macro is replaced by if construction with
appropriate warning.

Signed-off-by: Maciej Patelczyk <maciej.patelczyk@intel.com>
[changed some survivable bug conditions to WARN_ONCE]
Signed-off-by: Dan Williams <dan.j.williams@intel.com>
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 @@
 
 	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 @@
 		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;