[PATCH RESEND 06/25] mpt3sas: Define 'hba_mpi_version_belonged' IOC variable

2015-11-11 Thread Sreekanth Reddy
From: Sreekanth Reddy 

1. Use 'hba_mpi_version_belonged' IOC varable to uniquely
identify each individual generation driver functionality at
runtime.

2. Declared global variable 'driver_name' and used
this variable while reserving PCI regions and while
allocating the IRQ's.

Signed-off-by: Sreekanth Reddy 
---
 drivers/scsi/mpt2sas/mpt2sas_module.c |  1 +
 drivers/scsi/mpt3sas/mpt3sas_base.c   |  8 +++
 drivers/scsi/mpt3sas/mpt3sas_base.h   |  3 +++
 drivers/scsi/mpt3sas/mpt3sas_ctl.c| 18 +---
 drivers/scsi/mpt3sas/mpt3sas_module.c |  1 +
 drivers/scsi/mpt3sas/mpt3sas_scsih.c  | 39 ++-
 6 files changed, 62 insertions(+), 8 deletions(-)

diff --git a/drivers/scsi/mpt2sas/mpt2sas_module.c 
b/drivers/scsi/mpt2sas/mpt2sas_module.c
index 2b70693..d407ed0 100644
--- a/drivers/scsi/mpt2sas/mpt2sas_module.c
+++ b/drivers/scsi/mpt2sas/mpt2sas_module.c
@@ -196,6 +196,7 @@ _mpt2sas_probe(struct pci_dev *pdev, const struct 
pci_device_id *id)
if (!shost)
return -ENODEV;
 
+   sprintf(driver_name, "%s", MPT2SAS_DRIVER_NAME);
rv = scsih_probe(pdev, shost);
return rv;
 }
diff --git a/drivers/scsi/mpt3sas/mpt3sas_base.c 
b/drivers/scsi/mpt3sas/mpt3sas_base.c
index 302f02a..8a7f93e 100644
--- a/drivers/scsi/mpt3sas/mpt3sas_base.c
+++ b/drivers/scsi/mpt3sas/mpt3sas_base.c
@@ -1643,10 +1643,10 @@ _base_request_irq(struct MPT3SAS_ADAPTER *ioc, u8 
index, u32 vector)
atomic_set(_q->busy, 0);
if (ioc->msix_enable)
snprintf(reply_q->name, MPT_NAME_LENGTH, "%s%d-msix%d",
-   MPT3SAS_DRIVER_NAME, ioc->id, index);
+   driver_name, ioc->id, index);
else
snprintf(reply_q->name, MPT_NAME_LENGTH, "%s%d",
-   MPT3SAS_DRIVER_NAME, ioc->id);
+   driver_name, ioc->id);
r = request_irq(vector, _base_interrupt, IRQF_SHARED, reply_q->name,
reply_q);
if (r) {
@@ -1872,7 +1872,7 @@ mpt3sas_base_map_resources(struct MPT3SAS_ADAPTER *ioc)
 
 
if (pci_request_selected_regions(pdev, ioc->bars,
-   MPT3SAS_DRIVER_NAME)) {
+   driver_name)) {
pr_warn(MPT3SAS_FMT "pci_request_selected_regions: failed\n",
ioc->name);
ioc->bars = 0;
@@ -4021,7 +4021,7 @@ _base_send_ioc_init(struct MPT3SAS_ADAPTER *ioc, int 
sleep_flag)
mpi_request.WhoInit = MPI2_WHOINIT_HOST_DRIVER;
mpi_request.VF_ID = 0; /* TODO */
mpi_request.VP_ID = 0;
-   mpi_request.MsgVersion = cpu_to_le16(MPI25_VERSION);
+   mpi_request.MsgVersion = cpu_to_le16(ioc->hba_mpi_version_belonged);
mpi_request.HeaderVersion = cpu_to_le16(MPI2_HEADER_VERSION);
 
if (_base_is_controller_msix_enabled(ioc))
diff --git a/drivers/scsi/mpt3sas/mpt3sas_base.h 
b/drivers/scsi/mpt3sas/mpt3sas_base.h
index 0f86729..4c9a154 100644
--- a/drivers/scsi/mpt3sas/mpt3sas_base.h
+++ b/drivers/scsi/mpt3sas/mpt3sas_base.h
@@ -870,6 +870,7 @@ struct MPT3SAS_ADAPTER {
MPT_BUILD_SGbuild_sg;
MPT_BUILD_ZERO_LEN_SGE build_zero_len_sge;
u16 sge_size_ieee;
+   u16 hba_mpi_version_belonged;
 
/* function ptr for MPI sg elements only */
MPT_BUILD_SGbuild_sg_mpi;
@@ -1023,6 +1024,8 @@ typedef u8 (*MPT_CALLBACK)(struct MPT3SAS_ADAPTER *ioc, 
u16 smid, u8 msix_index,
 
 /* base shared API */
 extern struct list_head mpt3sas_ioc_list;
+extern chardriver_name[MPT_NAME_LENGTH];
+
 void mpt3sas_base_start_watchdog(struct MPT3SAS_ADAPTER *ioc);
 void mpt3sas_base_stop_watchdog(struct MPT3SAS_ADAPTER *ioc);
 
diff --git a/drivers/scsi/mpt3sas/mpt3sas_ctl.c 
b/drivers/scsi/mpt3sas/mpt3sas_ctl.c
index ffe7982..8b46cbf 100644
--- a/drivers/scsi/mpt3sas/mpt3sas_ctl.c
+++ b/drivers/scsi/mpt3sas/mpt3sas_ctl.c
@@ -1023,7 +1023,6 @@ _ctl_getiocinfo(struct MPT3SAS_ADAPTER *ioc, void __user 
*arg)
__func__));
 
memset(, 0 , sizeof(karg));
-   karg.adapter_type = MPT3_IOCTL_INTERFACE_SAS3;
if (ioc->pfacts)
karg.port_number = ioc->pfacts[0].PortNumber;
karg.hw_rev = ioc->pdev->revision;
@@ -1035,9 +1034,22 @@ _ctl_getiocinfo(struct MPT3SAS_ADAPTER *ioc, void __user 
*arg)
karg.pci_information.u.bits.function = PCI_FUNC(ioc->pdev->devfn);
karg.pci_information.segment_id = pci_domain_nr(ioc->pdev->bus);
karg.firmware_version = ioc->facts.FWVersion.Word;
-   strcpy(karg.driver_version, MPT3SAS_DRIVER_NAME);
+   strcpy(karg.driver_version, driver_name);
strcat(karg.driver_version, "-");
-   strcat(karg.driver_version, MPT3SAS_DRIVER_VERSION);
+   switch  (ioc->hba_mpi_version_belonged) {
+   case MPI2_VERSION:
+   karg.adapter_type = MPT2_IOCTL_INTERFACE_SAS2;
+   strcat(karg.driver_version, MPT2SAS_DRIVER_VERSION);
+

Re: [PATCH RESEND 06/25] mpt3sas: Define 'hba_mpi_version_belonged' IOC variable

2015-11-11 Thread Hannes Reinecke
On 11/11/2015 01:00 PM, Sreekanth Reddy wrote:
> From: Sreekanth Reddy 
> 
> 1. Use 'hba_mpi_version_belonged' IOC varable to uniquely
> identify each individual generation driver functionality at
> runtime.
> 
> 2. Declared global variable 'driver_name' and used
> this variable while reserving PCI regions and while
> allocating the IRQ's.
> 
> Signed-off-by: Sreekanth Reddy 
> ---
>  drivers/scsi/mpt2sas/mpt2sas_module.c |  1 +
>  drivers/scsi/mpt3sas/mpt3sas_base.c   |  8 +++
>  drivers/scsi/mpt3sas/mpt3sas_base.h   |  3 +++
>  drivers/scsi/mpt3sas/mpt3sas_ctl.c| 18 +---
>  drivers/scsi/mpt3sas/mpt3sas_module.c |  1 +
>  drivers/scsi/mpt3sas/mpt3sas_scsih.c  | 39 
> ++-
>  6 files changed, 62 insertions(+), 8 deletions(-)
> 
I'd rather shorten that to 'hba_mpi_version'.

Other than that it's okay.

Cheers,

Hannes
-- 
Dr. Hannes ReineckezSeries & Storage
h...@suse.de   +49 911 74053 688
SUSE LINUX GmbH, Maxfeldstr. 5, 90409 Nürnberg
GF: F. Imendörffer, J. Smithard, J. Guild, D. Upmanyu, G. Norton
HRB 21284 (AG Nürnberg)
--
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html