mptfusion: make adapter prod_name[] a pointer
authorJoe Lawrence <joe.lawrence@stratus.com>
Wed, 25 Jun 2014 21:06:28 +0000 (17:06 -0400)
committerChristoph Hellwig <hch@lst.de>
Fri, 25 Jul 2014 21:16:58 +0000 (17:16 -0400)
The struct _MPT_ADAPTER doesn't need a full copy of the product string,
so prod_name can point to the string literal storage that the driver
already provides.

Avoids the following smatch warning:

  drivers/message/fusion/mptbase.c:2858 MptDisplayIocCapabilities()
    warn: this array is probably non-NULL. 'ioc->prod_name'

Signed-off-by: Joe Lawrence <joe.lawrence@stratus.com>
Acked-by: Sreekanth Reddy <Sreekanth.Reddy@avagotech.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
drivers/message/fusion/mptbase.c
drivers/message/fusion/mptbase.h

index ea30033..9d4c782 100644 (file)
@@ -1408,8 +1408,8 @@ mpt_verify_adapter(int iocid, MPT_ADAPTER **iocpp)
  *     in /proc/mpt/summary and /sysfs/class/scsi_host/host<X>/version_product
  *
  **/
-static void
-mpt_get_product_name(u16 vendor, u16 device, u8 revision, char *prod_name)
+static const char*
+mpt_get_product_name(u16 vendor, u16 device, u8 revision)
 {
        char *product_str = NULL;
 
@@ -1635,8 +1635,7 @@ mpt_get_product_name(u16 vendor, u16 device, u8 revision, char *prod_name)
        }
 
  out:
-       if (product_str)
-               sprintf(prod_name, "%s", product_str);
+       return product_str;
 }
 
 /**
@@ -1887,8 +1886,8 @@ mpt_attach(struct pci_dev *pdev, const struct pci_device_id *id)
        dinitprintk(ioc, printk(MYIOC_s_INFO_FMT "facts @ %p, pfacts[0] @ %p\n",
            ioc->name, &ioc->facts, &ioc->pfacts[0]));
 
-       mpt_get_product_name(pdev->vendor, pdev->device, pdev->revision,
-                            ioc->prod_name);
+       ioc->prod_name = mpt_get_product_name(pdev->vendor, pdev->device,
+                                             pdev->revision);
 
        switch (pdev->device)
        {
index f37ea6f..8f14090 100644 (file)
@@ -605,7 +605,7 @@ typedef struct _MPT_ADAPTER
        int                      id;            /* Unique adapter id N {0,1,2,...} */
        int                      pci_irq;       /* This irq           */
        char                     name[MPT_NAME_LENGTH]; /* "iocN"             */
-       char                     prod_name[MPT_NAME_LENGTH];    /* "LSIFC9x9"         */
+       const char               *prod_name;    /* "LSIFC9x9"         */
 #ifdef CONFIG_FUSION_LOGGING
        /* used in mpt_display_event_info */
        char                     evStr[EVENT_DESCR_STR_SZ];