From: Dan Williams <dan.j.williams@intel.com>
Date: Fri, 4 Mar 2011 02:01:43 +0000 (-0800)
Subject: isci: replace remote_device_lock  with scic_lock
X-Git-Url: https://git.stricted.de/?a=commitdiff_plain;h=1a38045ba88ed3bee6c57444670fb639c8b61be7;p=GitHub%2Fexynos8895%2Fandroid_kernel_samsung_universal8895.git

isci: replace remote_device_lock  with scic_lock

The remote_device_lock is currently used to protect a controller global
resource (RNCs), but the remote_device_lock is per-port.

Signed-off-by: Dan Williams <dan.j.williams@intel.com>
---

diff --git a/drivers/scsi/isci/port.c b/drivers/scsi/isci/port.c
index 30da3ec703e3..a5b2565ac5af 100644
--- a/drivers/scsi/isci/port.c
+++ b/drivers/scsi/isci/port.c
@@ -94,7 +94,6 @@ void isci_port_init(
 
 	INIT_LIST_HEAD(&isci_port->remote_dev_list);
 	INIT_LIST_HEAD(&isci_port->domain_dev_list);
-	spin_lock_init(&isci_port->remote_device_lock);
 	spin_lock_init(&isci_port->state_lock);
 	init_completion(&isci_port->start_complete);
 	isci_port->isci_host = isci_host;
diff --git a/drivers/scsi/isci/port.h b/drivers/scsi/isci/port.h
index b864d70363e7..b7a7dd7dca69 100644
--- a/drivers/scsi/isci/port.h
+++ b/drivers/scsi/isci/port.h
@@ -90,7 +90,6 @@ struct isci_port {
 	struct isci_host *isci_host;
 	struct asd_sas_port sas_port;
 	struct list_head remote_dev_list;
-	spinlock_t remote_device_lock;
 	spinlock_t state_lock;
 	struct list_head domain_dev_list;
 	struct completion start_complete;
diff --git a/drivers/scsi/isci/remote_device.c b/drivers/scsi/isci/remote_device.c
index 48556e47bb9d..1dae2184b9e9 100644
--- a/drivers/scsi/isci/remote_device.c
+++ b/drivers/scsi/isci/remote_device.c
@@ -287,16 +287,13 @@ isci_remote_device_alloc(struct isci_host *ihost, struct isci_port *iport)
 void isci_remote_device_ready(struct isci_remote_device *idev)
 {
 	struct isci_host *ihost = idev->isci_port->isci_host;
-	unsigned long flags;
 
 	dev_dbg(&ihost->pdev->dev,
-		"%s: isci_device = %p\n", __func__, idev);
+		"%s: idev = %p\n", __func__, idev);
 
-	spin_lock_irqsave(&idev->isci_port->remote_device_lock, flags);
 	isci_remote_device_change_state(idev, isci_ready_for_io);
 	if (test_and_clear_bit(IDEV_START_PENDING, &idev->flags))
 		wake_up(&ihost->eventq);
-	spin_unlock_irqrestore(&idev->isci_port->remote_device_lock, flags);
 }
 
 /**
@@ -432,7 +429,6 @@ void isci_remote_device_gone(struct domain_device *dev)
  */
 int isci_remote_device_found(struct domain_device *domain_dev)
 {
-	unsigned long flags;
 	struct isci_host *isci_host;
 	struct isci_port *isci_port;
 	struct isci_phy *isci_phy;
@@ -474,12 +470,12 @@ int isci_remote_device_found(struct domain_device *domain_dev)
 	isci_remote_device_change_state(isci_device, isci_starting);
 
 
-	spin_lock_irqsave(&isci_port->remote_device_lock, flags);
+	spin_lock_irq(&isci_host->scic_lock);
 	list_add_tail(&isci_device->node, &isci_port->remote_dev_list);
 
 	set_bit(IDEV_START_PENDING, &isci_device->flags);
 	status = isci_remote_device_construct(isci_port, isci_device);
-	spin_unlock_irqrestore(&isci_port->remote_device_lock, flags);
+	spin_unlock_irq(&isci_host->scic_lock);
 
 	dev_dbg(&isci_host->pdev->dev,
 		"%s: isci_device = %p\n",
@@ -487,12 +483,12 @@ int isci_remote_device_found(struct domain_device *domain_dev)
 
 	if (status != SCI_SUCCESS) {
 
-		spin_lock_irqsave(&isci_port->remote_device_lock, flags);
+		spin_lock_irq(&isci_host->scic_lock);
 		isci_remote_device_deconstruct(
 			isci_host,
 			isci_device
 			);
-		spin_unlock_irqrestore(&isci_port->remote_device_lock, flags);
+		spin_unlock_irq(&isci_host->scic_lock);
 		return -ENODEV;
 	}