public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* libsas: pci_iommu_ops undefined on !PCI
@ 2007-07-26  8:31 Meelis Roos
  2007-07-26  9:21 ` [PATCH] Remove libsas PCI dependencies Jeff Garzik
  0 siblings, 1 reply; 10+ messages in thread
From: Meelis Roos @ 2007-07-26  8:31 UTC (permalink / raw)
  To: Linux Kernel list

Tried to compile everythin SCSI on my SBus-only sparc64, including SAS 
supoort. Seems that libsas seems to depend on PCI - does it need to?

  MODPOST 446 modules
ERROR: "pci_iommu_ops" [drivers/scsi/libsas/libsas.ko] undefined!

-- 
Meelis Roos (mroos@linux.ee)

^ permalink raw reply	[flat|nested] 10+ messages in thread

* [PATCH] Remove libsas PCI dependencies
  2007-07-26  8:31 libsas: pci_iommu_ops undefined on !PCI Meelis Roos
@ 2007-07-26  9:21 ` Jeff Garzik
  2007-07-26 12:46   ` James Bottomley
  0 siblings, 1 reply; 10+ messages in thread
From: Jeff Garzik @ 2007-07-26  9:21 UTC (permalink / raw)
  To: Meelis Roos, linux-scsi
  Cc: Linux Kernel list, Darrick J. Wong, James Bottomley,
	Andrew Morton

[-- Attachment #1: Type: text/plain, Size: 436 bytes --]

Meelis Roos wrote:
> Tried to compile everythin SCSI on my SBus-only sparc64, including SAS 
> supoort. Seems that libsas seems to depend on PCI - does it need to?
> 
>   MODPOST 446 modules
> ERROR: "pci_iommu_ops" [drivers/scsi/libsas/libsas.ko] undefined!


Does the attached patch fix things?  2.6.23-rc1 material, methinks.

libsas should -not- require PCI, even though aic94xx does.

Signed-off-by: Jeff Garzik <jeff@garzik.org>


[-- Attachment #2: patch --]
[-- Type: text/plain, Size: 5914 bytes --]

diff --git a/drivers/scsi/aic94xx/aic94xx_init.c b/drivers/scsi/aic94xx/aic94xx_init.c
index ab00aec..63bcde2 100644
--- a/drivers/scsi/aic94xx/aic94xx_init.c
+++ b/drivers/scsi/aic94xx/aic94xx_init.c
@@ -586,7 +586,7 @@ static int __devinit asd_pci_probe(struct pci_dev *dev,
 		goto Err;
 	}
 	asd_ha->pcidev = dev;
-	asd_ha->sas_ha.pcidev = asd_ha->pcidev;
+	asd_ha->sas_ha.dev = &asd_ha->pcidev->dev;
 	asd_ha->sas_ha.lldd_ha = asd_ha;
 
 	asd_ha->name = asd_dev->name;
@@ -605,8 +605,6 @@ static int __devinit asd_pci_probe(struct pci_dev *dev,
 		goto Err_free;
 	}
 
-
-
 	err = asd_dev->setup(asd_ha);
 	if (err)
 		goto Err_free;
diff --git a/drivers/scsi/libsas/sas_ata.c b/drivers/scsi/libsas/sas_ata.c
index ced2de3..77c4668 100644
--- a/drivers/scsi/libsas/sas_ata.c
+++ b/drivers/scsi/libsas/sas_ata.c
@@ -382,7 +382,7 @@ int sas_ata_init_host_and_port(struct domain_device *found_dev,
 	struct ata_port *ap;
 
 	ata_host_init(&found_dev->sata_dev.ata_host,
-		      &ha->pcidev->dev,
+		      ha->dev,
 		      sata_port_info.flags,
 		      &sas_sata_ops);
 	ap = ata_sas_port_alloc(&found_dev->sata_dev.ata_host,
@@ -448,10 +448,10 @@ static void sas_disc_task_done(struct sas_task *task)
  * @task: the task to be executed
  * @buffer: pointer to buffer to do I/O
  * @size: size of @buffer
- * @pci_dma_dir: PCI_DMA_...
+ * @dma_dir: DMA direction.  DMA_xxx
  */
 static int sas_execute_task(struct sas_task *task, void *buffer, int size,
-			    int pci_dma_dir)
+			    int dma_dir)
 {
 	int res = 0;
 	struct scatterlist *scatter = NULL;
@@ -461,7 +461,7 @@ static int sas_execute_task(struct sas_task *task, void *buffer, int size,
 	struct sas_internal *i =
 		to_sas_internal(task->dev->port->ha->core.shost->transportt);
 
-	if (pci_dma_dir != PCI_DMA_NONE) {
+	if (dma_dir != DMA_NONE) {
 		scatter = kzalloc(sizeof(*scatter), GFP_KERNEL);
 		if (!scatter)
 			goto out;
@@ -474,11 +474,11 @@ static int sas_execute_task(struct sas_task *task, void *buffer, int size,
 	task->scatter = scatter;
 	task->num_scatter = num_scatter;
 	task->total_xfer_len = size;
-	task->data_dir = pci_dma_dir;
+	task->data_dir = dma_dir;
 	task->task_done = sas_disc_task_done;
-	if (pci_dma_dir != PCI_DMA_NONE &&
+	if (dma_dir != DMA_NONE &&
 	    sas_protocol_ata(task->task_proto)) {
-		task->num_scatter = pci_map_sg(task->dev->port->ha->pcidev,
+		task->num_scatter = dma_map_sg(task->dev->port->ha->dev,
 					       task->scatter,
 					       task->num_scatter,
 					       task->data_dir);
@@ -565,9 +565,9 @@ static int sas_execute_task(struct sas_task *task, void *buffer, int size,
 		}
 	}
 ex_err:
-	if (pci_dma_dir != PCI_DMA_NONE) {
+	if (dma_dir != DMA_NONE) {
 		if (sas_protocol_ata(task->task_proto))
-			pci_unmap_sg(task->dev->port->ha->pcidev,
+			dma_unmap_sg(task->dev->port->ha->dev,
 				     task->scatter, task->num_scatter,
 				     task->data_dir);
 		kfree(scatter);
@@ -628,11 +628,11 @@ static void sas_get_ata_command_set(struct domain_device *dev)
  * @features: the features register
  * @buffer: pointer to buffer to do I/O
  * @size: size of @buffer
- * @pci_dma_dir: PCI_DMA_...
+ * @dma_dir: DMA direction.  DMA_xxx
  */
 static int sas_issue_ata_cmd(struct domain_device *dev, u8 command,
 			     u8 features, void *buffer, int size,
-			     int pci_dma_dir)
+			     int dma_dir)
 {
 	int res = 0;
 	struct sas_task *task;
@@ -652,7 +652,7 @@ static int sas_issue_ata_cmd(struct domain_device *dev, u8 command,
 	task->ata_task.fis.device = d2h_fis->device;
 	task->ata_task.retry_count = 1;
 
-	res = sas_execute_task(task, buffer, size, pci_dma_dir);
+	res = sas_execute_task(task, buffer, size, dma_dir);
 
 	sas_free_task(task);
 out:
@@ -707,7 +707,7 @@ static int sas_discover_sata_dev(struct domain_device *dev)
 	}
 
 	res = sas_issue_ata_cmd(dev, command, 0, identify_x, 512,
-				PCI_DMA_FROMDEVICE);
+				DMA_FROM_DEVICE);
 	if (res)
 		goto out_err;
 
@@ -720,13 +720,13 @@ static int sas_discover_sata_dev(struct domain_device *dev)
 			goto cont1;
 		res = sas_issue_ata_cmd(dev, ATA_SET_FEATURES,
 					ATA_FEATURE_PUP_STBY_SPIN_UP,
-					NULL, 0, PCI_DMA_NONE);
+					NULL, 0, DMA_NONE);
 		if (res)
 			goto cont1;
 
 		schedule_timeout_interruptible(5*HZ); /* More time? */
 		res = sas_issue_ata_cmd(dev, command, 0, identify_x, 512,
-					PCI_DMA_FROMDEVICE);
+					DMA_FROM_DEVICE);
 		if (res)
 			goto out_err;
 	}
diff --git a/drivers/scsi/libsas/sas_discover.c b/drivers/scsi/libsas/sas_discover.c
index 6ac9f61..7ef0afc 100644
--- a/drivers/scsi/libsas/sas_discover.c
+++ b/drivers/scsi/libsas/sas_discover.c
@@ -22,7 +22,6 @@
  *
  */
 
-#include <linux/pci.h>
 #include <linux/scatterlist.h>
 #include <scsi/scsi_host.h>
 #include <scsi/scsi_eh.h>
@@ -170,7 +169,7 @@ int sas_notify_lldd_dev_found(struct domain_device *dev)
 		if (res) {
 			printk("sas: driver on pcidev %s cannot handle "
 			       "device %llx, error:%d\n",
-			       pci_name(sas_ha->pcidev),
+			       sas_ha->dev->bus_id,
 			       SAS_ADDR(dev->sas_addr), res);
 		}
 	}
diff --git a/drivers/scsi/libsas/sas_dump.c b/drivers/scsi/libsas/sas_dump.c
index f1246d2..bf34a23 100644
--- a/drivers/scsi/libsas/sas_dump.c
+++ b/drivers/scsi/libsas/sas_dump.c
@@ -56,7 +56,7 @@ void sas_dprint_phye(int phyid, enum phy_event pe)
 
 void sas_dprint_hae(struct sas_ha_struct *sas_ha, enum ha_event he)
 {
-	SAS_DPRINTK("ha %s: %s event\n", pci_name(sas_ha->pcidev),
+	SAS_DPRINTK("ha %s: %s event\n", sas_ha->dev->bus_id,
 		    sas_hae_str[he]);
 }
 
diff --git a/include/scsi/libsas.h b/include/scsi/libsas.h
index df36461..8dda2d6 100644
--- a/include/scsi/libsas.h
+++ b/include/scsi/libsas.h
@@ -348,7 +348,7 @@ struct sas_ha_struct {
 
 /* public: */
 	char *sas_ha_name;
-	struct pci_dev *pcidev;	  /* should be set */
+	struct device *dev;	  /* should be set */
 	struct module *lldd_module; /* should be set */
 
 	u8 *sas_addr;		  /* must be set */

^ permalink raw reply related	[flat|nested] 10+ messages in thread

* Re: [PATCH] Remove libsas PCI dependencies
  2007-07-26  9:21 ` [PATCH] Remove libsas PCI dependencies Jeff Garzik
@ 2007-07-26 12:46   ` James Bottomley
  2007-07-26 13:06     ` Matthew Wilcox
                       ` (2 more replies)
  0 siblings, 3 replies; 10+ messages in thread
From: James Bottomley @ 2007-07-26 12:46 UTC (permalink / raw)
  To: Jeff Garzik
  Cc: Meelis Roos, linux-scsi, Linux Kernel list, Darrick J. Wong,
	Andrew Morton

On Thu, 2007-07-26 at 05:21 -0400, Jeff Garzik wrote:
> Meelis Roos wrote:
> > Tried to compile everythin SCSI on my SBus-only sparc64, including SAS 
> > supoort. Seems that libsas seems to depend on PCI - does it need to?
> > 
> >   MODPOST 446 modules
> > ERROR: "pci_iommu_ops" [drivers/scsi/libsas/libsas.ko] undefined!
> 
> 
> Does the attached patch fix things?  2.6.23-rc1 material, methinks.
> 
> libsas should -not- require PCI, even though aic94xx does.

Realistically, even for parisc, I can't see anyone producing a non-PCI
SAS device (even though I'd like one).

> Signed-off-by: Jeff Garzik <jeff@garzik.org>
> 
> plain text document attachment (patch)
> diff --git a/drivers/scsi/aic94xx/aic94xx_init.c b/drivers/scsi/aic94xx/aic94xx_init.c
> index ab00aec..63bcde2 100644
> --- a/drivers/scsi/aic94xx/aic94xx_init.c
> +++ b/drivers/scsi/aic94xx/aic94xx_init.c
> @@ -586,7 +586,7 @@ static int __devinit asd_pci_probe(struct pci_dev *dev,
>  		goto Err;
>  	}
>  	asd_ha->pcidev = dev;
> -	asd_ha->sas_ha.pcidev = asd_ha->pcidev;
> +	asd_ha->sas_ha.dev = &asd_ha->pcidev->dev;
>  	asd_ha->sas_ha.lldd_ha = asd_ha;
>  
>  	asd_ha->name = asd_dev->name;
> @@ -605,8 +605,6 @@ static int __devinit asd_pci_probe(struct pci_dev *dev,
>  		goto Err_free;
>  	}
>  
> -
> -
>  	err = asd_dev->setup(asd_ha);
>  	if (err)
>  		goto Err_free;
> diff --git a/drivers/scsi/libsas/sas_ata.c b/drivers/scsi/libsas/sas_ata.c
> index ced2de3..77c4668 100644
> --- a/drivers/scsi/libsas/sas_ata.c
> +++ b/drivers/scsi/libsas/sas_ata.c
> @@ -382,7 +382,7 @@ int sas_ata_init_host_and_port(struct domain_device *found_dev,
>  	struct ata_port *ap;
>  
>  	ata_host_init(&found_dev->sata_dev.ata_host,
> -		      &ha->pcidev->dev,
> +		      ha->dev,
>  		      sata_port_info.flags,
>  		      &sas_sata_ops);
>  	ap = ata_sas_port_alloc(&found_dev->sata_dev.ata_host,
> @@ -448,10 +448,10 @@ static void sas_disc_task_done(struct sas_task *task)
>   * @task: the task to be executed
>   * @buffer: pointer to buffer to do I/O
>   * @size: size of @buffer
> - * @pci_dma_dir: PCI_DMA_...
> + * @dma_dir: DMA direction.  DMA_xxx
>   */
>  static int sas_execute_task(struct sas_task *task, void *buffer, int size,
> -			    int pci_dma_dir)
> +			    int dma_dir)
>  {
>  	int res = 0;
>  	struct scatterlist *scatter = NULL;
> @@ -461,7 +461,7 @@ static int sas_execute_task(struct sas_task *task, void *buffer, int size,
>  	struct sas_internal *i =
>  		to_sas_internal(task->dev->port->ha->core.shost->transportt);
>  
> -	if (pci_dma_dir != PCI_DMA_NONE) {
> +	if (dma_dir != DMA_NONE) {
>  		scatter = kzalloc(sizeof(*scatter), GFP_KERNEL);
>  		if (!scatter)
>  			goto out;
> @@ -474,11 +474,11 @@ static int sas_execute_task(struct sas_task *task, void *buffer, int size,
>  	task->scatter = scatter;
>  	task->num_scatter = num_scatter;
>  	task->total_xfer_len = size;
> -	task->data_dir = pci_dma_dir;
> +	task->data_dir = dma_dir;
>  	task->task_done = sas_disc_task_done;
> -	if (pci_dma_dir != PCI_DMA_NONE &&
> +	if (dma_dir != DMA_NONE &&
>  	    sas_protocol_ata(task->task_proto)) {
> -		task->num_scatter = pci_map_sg(task->dev->port->ha->pcidev,
> +		task->num_scatter = dma_map_sg(task->dev->port->ha->dev,
>  					       task->scatter,
>  					       task->num_scatter,
>  					       task->data_dir);
> @@ -565,9 +565,9 @@ static int sas_execute_task(struct sas_task *task, void *buffer, int size,
>  		}
>  	}
>  ex_err:
> -	if (pci_dma_dir != PCI_DMA_NONE) {
> +	if (dma_dir != DMA_NONE) {
>  		if (sas_protocol_ata(task->task_proto))
> -			pci_unmap_sg(task->dev->port->ha->pcidev,
> +			dma_unmap_sg(task->dev->port->ha->dev,
>  				     task->scatter, task->num_scatter,
>  				     task->data_dir);
>  		kfree(scatter);
> @@ -628,11 +628,11 @@ static void sas_get_ata_command_set(struct domain_device *dev)
>   * @features: the features register
>   * @buffer: pointer to buffer to do I/O
>   * @size: size of @buffer
> - * @pci_dma_dir: PCI_DMA_...
> + * @dma_dir: DMA direction.  DMA_xxx
>   */
>  static int sas_issue_ata_cmd(struct domain_device *dev, u8 command,
>  			     u8 features, void *buffer, int size,
> -			     int pci_dma_dir)
> +			     int dma_dir)

This should become enum dma_data_direction if we're going to go the
generic route.

Otherwise, everything else looks fine.

James



^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH] Remove libsas PCI dependencies
  2007-07-26 12:46   ` James Bottomley
@ 2007-07-26 13:06     ` Matthew Wilcox
  2007-07-26 13:28     ` [PATCH v2] " Jeff Garzik
  2007-07-26 13:30     ` [PATCH] " Jeff Garzik
  2 siblings, 0 replies; 10+ messages in thread
From: Matthew Wilcox @ 2007-07-26 13:06 UTC (permalink / raw)
  To: James Bottomley
  Cc: Jeff Garzik, Meelis Roos, linux-scsi, Linux Kernel list,
	Darrick J. Wong, Andrew Morton

On Thu, Jul 26, 2007 at 08:46:47AM -0400, James Bottomley wrote:
> On Thu, 2007-07-26 at 05:21 -0400, Jeff Garzik wrote:
> > libsas should -not- require PCI, even though aic94xx does.
> 
> Realistically, even for parisc, I can't see anyone producing a non-PCI
> SAS device (even though I'd like one).

While SBUS, GSC, VME, ISA, EISA, MCA, VL, PCMCIA, TurboChannel and Zorro
all seem pretty unlikely, I could see someone producing a RapidIO device.

-- 
"Bill, look, we understand that you're interested in selling us this
operating system, but compare it to ours.  We can't possibly take such
a retrograde step."

^ permalink raw reply	[flat|nested] 10+ messages in thread

* [PATCH v2] Remove libsas PCI dependencies
  2007-07-26 12:46   ` James Bottomley
  2007-07-26 13:06     ` Matthew Wilcox
@ 2007-07-26 13:28     ` Jeff Garzik
  2007-07-26 17:31       ` Meelis Roos
  2007-07-26 13:30     ` [PATCH] " Jeff Garzik
  2 siblings, 1 reply; 10+ messages in thread
From: Jeff Garzik @ 2007-07-26 13:28 UTC (permalink / raw)
  To: James Bottomley
  Cc: Meelis Roos, linux-scsi, Linux Kernel list, Darrick J. Wong,
	Andrew Morton

[-- Attachment #1: Type: text/plain, Size: 167 bytes --]

Eliminate unnecessary PCI dependencies in libsas.  It should use generic 
DMA and struct device like other subsystems.

Signed-off-by: Jeff Garzik <jeff@garzik.org>



[-- Attachment #2: patch --]
[-- Type: text/plain, Size: 5954 bytes --]

diff --git a/drivers/scsi/aic94xx/aic94xx_init.c b/drivers/scsi/aic94xx/aic94xx_init.c
index ab00aec..63bcde2 100644
--- a/drivers/scsi/aic94xx/aic94xx_init.c
+++ b/drivers/scsi/aic94xx/aic94xx_init.c
@@ -586,7 +586,7 @@ static int __devinit asd_pci_probe(struct pci_dev *dev,
 		goto Err;
 	}
 	asd_ha->pcidev = dev;
-	asd_ha->sas_ha.pcidev = asd_ha->pcidev;
+	asd_ha->sas_ha.dev = &asd_ha->pcidev->dev;
 	asd_ha->sas_ha.lldd_ha = asd_ha;
 
 	asd_ha->name = asd_dev->name;
@@ -605,8 +605,6 @@ static int __devinit asd_pci_probe(struct pci_dev *dev,
 		goto Err_free;
 	}
 
-
-
 	err = asd_dev->setup(asd_ha);
 	if (err)
 		goto Err_free;
diff --git a/drivers/scsi/libsas/sas_ata.c b/drivers/scsi/libsas/sas_ata.c
index ced2de3..5e573ef 100644
--- a/drivers/scsi/libsas/sas_ata.c
+++ b/drivers/scsi/libsas/sas_ata.c
@@ -382,7 +382,7 @@ int sas_ata_init_host_and_port(struct domain_device *found_dev,
 	struct ata_port *ap;
 
 	ata_host_init(&found_dev->sata_dev.ata_host,
-		      &ha->pcidev->dev,
+		      ha->dev,
 		      sata_port_info.flags,
 		      &sas_sata_ops);
 	ap = ata_sas_port_alloc(&found_dev->sata_dev.ata_host,
@@ -448,10 +448,10 @@ static void sas_disc_task_done(struct sas_task *task)
  * @task: the task to be executed
  * @buffer: pointer to buffer to do I/O
  * @size: size of @buffer
- * @pci_dma_dir: PCI_DMA_...
+ * @dma_dir: DMA direction.  DMA_xxx
  */
 static int sas_execute_task(struct sas_task *task, void *buffer, int size,
-			    int pci_dma_dir)
+			    enum dma_data_direction dma_dir)
 {
 	int res = 0;
 	struct scatterlist *scatter = NULL;
@@ -461,7 +461,7 @@ static int sas_execute_task(struct sas_task *task, void *buffer, int size,
 	struct sas_internal *i =
 		to_sas_internal(task->dev->port->ha->core.shost->transportt);
 
-	if (pci_dma_dir != PCI_DMA_NONE) {
+	if (dma_dir != DMA_NONE) {
 		scatter = kzalloc(sizeof(*scatter), GFP_KERNEL);
 		if (!scatter)
 			goto out;
@@ -474,11 +474,11 @@ static int sas_execute_task(struct sas_task *task, void *buffer, int size,
 	task->scatter = scatter;
 	task->num_scatter = num_scatter;
 	task->total_xfer_len = size;
-	task->data_dir = pci_dma_dir;
+	task->data_dir = dma_dir;
 	task->task_done = sas_disc_task_done;
-	if (pci_dma_dir != PCI_DMA_NONE &&
+	if (dma_dir != DMA_NONE &&
 	    sas_protocol_ata(task->task_proto)) {
-		task->num_scatter = pci_map_sg(task->dev->port->ha->pcidev,
+		task->num_scatter = dma_map_sg(task->dev->port->ha->dev,
 					       task->scatter,
 					       task->num_scatter,
 					       task->data_dir);
@@ -565,9 +565,9 @@ static int sas_execute_task(struct sas_task *task, void *buffer, int size,
 		}
 	}
 ex_err:
-	if (pci_dma_dir != PCI_DMA_NONE) {
+	if (dma_dir != DMA_NONE) {
 		if (sas_protocol_ata(task->task_proto))
-			pci_unmap_sg(task->dev->port->ha->pcidev,
+			dma_unmap_sg(task->dev->port->ha->dev,
 				     task->scatter, task->num_scatter,
 				     task->data_dir);
 		kfree(scatter);
@@ -628,11 +628,11 @@ static void sas_get_ata_command_set(struct domain_device *dev)
  * @features: the features register
  * @buffer: pointer to buffer to do I/O
  * @size: size of @buffer
- * @pci_dma_dir: PCI_DMA_...
+ * @dma_dir: DMA direction.  DMA_xxx
  */
 static int sas_issue_ata_cmd(struct domain_device *dev, u8 command,
 			     u8 features, void *buffer, int size,
-			     int pci_dma_dir)
+			     enum dma_data_direction dma_dir)
 {
 	int res = 0;
 	struct sas_task *task;
@@ -652,7 +652,7 @@ static int sas_issue_ata_cmd(struct domain_device *dev, u8 command,
 	task->ata_task.fis.device = d2h_fis->device;
 	task->ata_task.retry_count = 1;
 
-	res = sas_execute_task(task, buffer, size, pci_dma_dir);
+	res = sas_execute_task(task, buffer, size, dma_dir);
 
 	sas_free_task(task);
 out:
@@ -707,7 +707,7 @@ static int sas_discover_sata_dev(struct domain_device *dev)
 	}
 
 	res = sas_issue_ata_cmd(dev, command, 0, identify_x, 512,
-				PCI_DMA_FROMDEVICE);
+				DMA_FROM_DEVICE);
 	if (res)
 		goto out_err;
 
@@ -720,13 +720,13 @@ static int sas_discover_sata_dev(struct domain_device *dev)
 			goto cont1;
 		res = sas_issue_ata_cmd(dev, ATA_SET_FEATURES,
 					ATA_FEATURE_PUP_STBY_SPIN_UP,
-					NULL, 0, PCI_DMA_NONE);
+					NULL, 0, DMA_NONE);
 		if (res)
 			goto cont1;
 
 		schedule_timeout_interruptible(5*HZ); /* More time? */
 		res = sas_issue_ata_cmd(dev, command, 0, identify_x, 512,
-					PCI_DMA_FROMDEVICE);
+					DMA_FROM_DEVICE);
 		if (res)
 			goto out_err;
 	}
diff --git a/drivers/scsi/libsas/sas_discover.c b/drivers/scsi/libsas/sas_discover.c
index 6ac9f61..7ef0afc 100644
--- a/drivers/scsi/libsas/sas_discover.c
+++ b/drivers/scsi/libsas/sas_discover.c
@@ -22,7 +22,6 @@
  *
  */
 
-#include <linux/pci.h>
 #include <linux/scatterlist.h>
 #include <scsi/scsi_host.h>
 #include <scsi/scsi_eh.h>
@@ -170,7 +169,7 @@ int sas_notify_lldd_dev_found(struct domain_device *dev)
 		if (res) {
 			printk("sas: driver on pcidev %s cannot handle "
 			       "device %llx, error:%d\n",
-			       pci_name(sas_ha->pcidev),
+			       sas_ha->dev->bus_id,
 			       SAS_ADDR(dev->sas_addr), res);
 		}
 	}
diff --git a/drivers/scsi/libsas/sas_dump.c b/drivers/scsi/libsas/sas_dump.c
index f1246d2..bf34a23 100644
--- a/drivers/scsi/libsas/sas_dump.c
+++ b/drivers/scsi/libsas/sas_dump.c
@@ -56,7 +56,7 @@ void sas_dprint_phye(int phyid, enum phy_event pe)
 
 void sas_dprint_hae(struct sas_ha_struct *sas_ha, enum ha_event he)
 {
-	SAS_DPRINTK("ha %s: %s event\n", pci_name(sas_ha->pcidev),
+	SAS_DPRINTK("ha %s: %s event\n", sas_ha->dev->bus_id,
 		    sas_hae_str[he]);
 }
 
diff --git a/include/scsi/libsas.h b/include/scsi/libsas.h
index df36461..8dda2d6 100644
--- a/include/scsi/libsas.h
+++ b/include/scsi/libsas.h
@@ -348,7 +348,7 @@ struct sas_ha_struct {
 
 /* public: */
 	char *sas_ha_name;
-	struct pci_dev *pcidev;	  /* should be set */
+	struct device *dev;	  /* should be set */
 	struct module *lldd_module; /* should be set */
 
 	u8 *sas_addr;		  /* must be set */

^ permalink raw reply related	[flat|nested] 10+ messages in thread

* Re: [PATCH] Remove libsas PCI dependencies
  2007-07-26 12:46   ` James Bottomley
  2007-07-26 13:06     ` Matthew Wilcox
  2007-07-26 13:28     ` [PATCH v2] " Jeff Garzik
@ 2007-07-26 13:30     ` Jeff Garzik
  2 siblings, 0 replies; 10+ messages in thread
From: Jeff Garzik @ 2007-07-26 13:30 UTC (permalink / raw)
  To: James Bottomley
  Cc: Meelis Roos, linux-scsi, Linux Kernel list, Darrick J. Wong,
	Andrew Morton

James Bottomley wrote:
> Realistically, even for parisc, I can't see anyone producing a non-PCI
> SAS device (even though I'd like one).

A non-PCI device embedded on an SoC or system bus is highly -likely-, IMO.

SAS+SATA silicon (w/out firmware assist as with aic94xx) is the 
direction that Marvell and Broadcom have gone.  I would say it's 
practically inevitable that someone will embed a SAS+SATA chip eventually.


> This should become enum dma_data_direction if we're going to go the
> generic route.

Updated.

	Jeff



^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH v2] Remove libsas PCI dependencies
  2007-07-26 13:28     ` [PATCH v2] " Jeff Garzik
@ 2007-07-26 17:31       ` Meelis Roos
  2007-07-26 17:46         ` Jeff Garzik
  0 siblings, 1 reply; 10+ messages in thread
From: Meelis Roos @ 2007-07-26 17:31 UTC (permalink / raw)
  To: Jeff Garzik
  Cc: James Bottomley, linux-scsi, Linux Kernel list, Darrick J. Wong,
	Andrew Morton

> Eliminate unnecessary PCI dependencies in libsas.  It should use generic DMA
> and struct device like other subsystems.

Compiles fine, unfortunately I can not test kernels on this machine 
since I have yet to dig out the reason my kernels do not boot.

-- 
Meelis Roos (mroos@linux.ee)

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH v2] Remove libsas PCI dependencies
  2007-07-26 17:31       ` Meelis Roos
@ 2007-07-26 17:46         ` Jeff Garzik
  2007-07-26 17:51           ` Meelis Roos
  2007-07-26 18:05           ` James Bottomley
  0 siblings, 2 replies; 10+ messages in thread
From: Jeff Garzik @ 2007-07-26 17:46 UTC (permalink / raw)
  To: Meelis Roos
  Cc: James Bottomley, linux-scsi, Linux Kernel list, Darrick J. Wong,
	Andrew Morton

Meelis Roos wrote:
>> Eliminate unnecessary PCI dependencies in libsas.  It should use generic DMA
>> and struct device like other subsystems.
> 
> Compiles fine, unfortunately I can not test kernels on this machine 
> since I have yet to dig out the reason my kernels do not boot.

That's about the best we can ask for :)  Thanks.  I'm pretty sure you do 
not have any SAS hardware in your sparc32...

	Jeff




^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH v2] Remove libsas PCI dependencies
  2007-07-26 17:46         ` Jeff Garzik
@ 2007-07-26 17:51           ` Meelis Roos
  2007-07-26 18:05           ` James Bottomley
  1 sibling, 0 replies; 10+ messages in thread
From: Meelis Roos @ 2007-07-26 17:51 UTC (permalink / raw)
  To: Jeff Garzik
  Cc: James Bottomley, linux-scsi, Linux Kernel list, Darrick J. Wong,
	Andrew Morton

> > Compiles fine, unfortunately I can not test kernels on this machine since I
> > have yet to dig out the reason my kernels do not boot.
> 
> That's about the best we can ask for :)  Thanks.  I'm pretty sure you do not
> have any SAS hardware in your sparc32...

Nope, this is a differnet computer - SBus-only Ultra 1 with sparc64 
architecture. The test I meant to do but could't was to load the libsas 
module.

-- 
Meelis Roos (mroos@linux.ee)

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH v2] Remove libsas PCI dependencies
  2007-07-26 17:46         ` Jeff Garzik
  2007-07-26 17:51           ` Meelis Roos
@ 2007-07-26 18:05           ` James Bottomley
  1 sibling, 0 replies; 10+ messages in thread
From: James Bottomley @ 2007-07-26 18:05 UTC (permalink / raw)
  To: Jeff Garzik
  Cc: Meelis Roos, linux-scsi, Linux Kernel list, Darrick J. Wong,
	Andrew Morton

On Thu, 2007-07-26 at 13:46 -0400, Jeff Garzik wrote:
> Meelis Roos wrote:
> >> Eliminate unnecessary PCI dependencies in libsas.  It should use generic DMA
> >> and struct device like other subsystems.
> > 
> > Compiles fine, unfortunately I can not test kernels on this machine 
> > since I have yet to dig out the reason my kernels do not boot.
> 
> That's about the best we can ask for :)  Thanks.  I'm pretty sure you do 
> not have any SAS hardware in your sparc32...

I've tested it on aic94xx.

James



^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2007-07-26 18:06 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-07-26  8:31 libsas: pci_iommu_ops undefined on !PCI Meelis Roos
2007-07-26  9:21 ` [PATCH] Remove libsas PCI dependencies Jeff Garzik
2007-07-26 12:46   ` James Bottomley
2007-07-26 13:06     ` Matthew Wilcox
2007-07-26 13:28     ` [PATCH v2] " Jeff Garzik
2007-07-26 17:31       ` Meelis Roos
2007-07-26 17:46         ` Jeff Garzik
2007-07-26 17:51           ` Meelis Roos
2007-07-26 18:05           ` James Bottomley
2007-07-26 13:30     ` [PATCH] " Jeff Garzik

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox