Re: [PATCH v6 19/20] cxlflash: Use new cxl_pci_read_adapter_vpd() API

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Fred:

Thanks for submitting this. Including linux-scsi.

Acked-by: Manoj N. Kumar <manoj@xxxxxxxxxxxxxxxxxx>

- Manoj


On 3/4/2016 5:26 AM, Frederic Barrat wrote:
To read the adapter VPD, drivers can't rely on pci config APIs, as it
wouldn't work on powerVM. cxl introduced a new kernel API especially
for this, so start using it.

Co-authored-by: Christophe Lombard <clombard@xxxxxxxxxxxxxxxxxx>
Signed-off-by: Frederic Barrat <fbarrat@xxxxxxxxxxxxxxxxxx>
Signed-off-by: Christophe Lombard <clombard@xxxxxxxxxxxxxxxxxx>
---
  drivers/scsi/cxlflash/common.h |  1 -
  drivers/scsi/cxlflash/main.c   | 18 ++----------------
  2 files changed, 2 insertions(+), 17 deletions(-)

diff --git a/drivers/scsi/cxlflash/common.h b/drivers/scsi/cxlflash/common.h
index 5ada926..580f370 100644
--- a/drivers/scsi/cxlflash/common.h
+++ b/drivers/scsi/cxlflash/common.h
@@ -106,7 +106,6 @@ struct cxlflash_cfg {
  	atomic_t scan_host_needed;

  	struct cxl_afu *cxl_afu;
-	struct pci_dev *parent_dev;

  	atomic_t recovery_threads;
  	struct mutex ctx_recovery_mutex;
diff --git a/drivers/scsi/cxlflash/main.c b/drivers/scsi/cxlflash/main.c
index f6d90ce..e04aae7 100644
--- a/drivers/scsi/cxlflash/main.c
+++ b/drivers/scsi/cxlflash/main.c
@@ -1407,7 +1407,7 @@ static int start_context(struct cxlflash_cfg *cfg)
   */
  static int read_vpd(struct cxlflash_cfg *cfg, u64 wwpn[])
  {
-	struct pci_dev *dev = cfg->parent_dev;
+	struct pci_dev *dev = cfg->dev;
  	int rc = 0;
  	int ro_start, ro_size, i, j, k;
  	ssize_t vpd_size;
@@ -1416,7 +1416,7 @@ static int read_vpd(struct cxlflash_cfg *cfg, u64 wwpn[])
  	char *wwpn_vpd_tags[NUM_FC_PORTS] = { "V5", "V6" };

  	/* Get the VPD data from the device */
-	vpd_size = pci_read_vpd(dev, 0, sizeof(vpd_data), vpd_data);
+	vpd_size = cxl_read_adapter_vpd(dev, vpd_data, sizeof(vpd_data));
  	if (unlikely(vpd_size <= 0)) {
  		dev_err(&dev->dev, "%s: Unable to read VPD (size = %ld)\n",
  		       __func__, vpd_size);
@@ -2392,7 +2392,6 @@ static int cxlflash_probe(struct pci_dev *pdev,
  {
  	struct Scsi_Host *host;
  	struct cxlflash_cfg *cfg = NULL;
-	struct device *phys_dev;
  	struct dev_dependent_vals *ddv;
  	int rc = 0;

@@ -2458,19 +2457,6 @@ static int cxlflash_probe(struct pci_dev *pdev,

  	pci_set_drvdata(pdev, cfg);

-	/*
-	 * Use the special service provided to look up the physical
-	 * PCI device, since we are called on the probe of the virtual
-	 * PCI host bus (vphb)
-	 */
-	phys_dev = cxl_get_phys_dev(pdev);
-	if (!dev_is_pci(phys_dev)) {
-		dev_err(&pdev->dev, "%s: not a pci dev\n", __func__);
-		rc = -ENODEV;
-		goto out_remove;
-	}
-	cfg->parent_dev = to_pci_dev(phys_dev);
-
  	cfg->cxl_afu = cxl_pci_to_afu(pdev);

  	rc = init_pci(cfg);


--
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [SCSI Target Devel]     [Linux SCSI Target Infrastructure]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Linux IIO]     [Samba]     [Device Mapper]
  Powered by Linux