Merge aac_get_containers to setup target function, so that information
about all the present devices can be retrieved in one shot.

Signed-off-by: Raghava Aditya Renukunta <raghavaaditya.renuku...@microsemi.com>
---
 drivers/scsi/aacraid/aachba.c  |  4 ++++
 drivers/scsi/aacraid/commsup.c | 34 +++++++++++++++-------------------
 2 files changed, 19 insertions(+), 19 deletions(-)

diff --git a/drivers/scsi/aacraid/aachba.c b/drivers/scsi/aacraid/aachba.c
index 01cb825..7f6036c 100644
--- a/drivers/scsi/aacraid/aachba.c
+++ b/drivers/scsi/aacraid/aachba.c
@@ -2032,6 +2032,10 @@ static int aac_setup_safw_targets(struct aac_dev *dev, 
int rescan)
 {
        int rcode = 0;
 
+       rcode = aac_get_containers(dev);
+       if (unlikely(rcode < 0))
+               goto out;
+
        rcode = aac_get_safw_ciss_luns(dev, rescan);
        if (unlikely(rcode < 0))
                goto out;
diff --git a/drivers/scsi/aacraid/commsup.c b/drivers/scsi/aacraid/commsup.c
index f3077b3..9625eb0 100644
--- a/drivers/scsi/aacraid/commsup.c
+++ b/drivers/scsi/aacraid/commsup.c
@@ -1949,26 +1949,22 @@ static void aac_handle_sa_aif(struct aac_dev *dev, 
struct fib *fibptr)
 
                aac_resolve_luns(dev);
 
-               if (events == SA_AIF_LDEV_CHANGE ||
-                   events == SA_AIF_BPCFG_CHANGE) {
-                       aac_get_containers(dev);
-                       for (container = 0; container <
+               for (container = 0; container <
                        dev->maximum_num_containers; ++container) {
-                               sdev = scsi_device_lookup(dev->scsi_host_ptr,
-                                               CONTAINER_CHANNEL,
-                                               container, 0);
-                               if (dev->fsa_dev[container].valid && !sdev) {
-                                       scsi_add_device(dev->scsi_host_ptr,
-                                               CONTAINER_CHANNEL,
-                                               container, 0);
-                               } else if (!dev->fsa_dev[container].valid &&
-                                       sdev) {
-                                       scsi_remove_device(sdev);
-                                       scsi_device_put(sdev);
-                               } else if (sdev) {
-                                       scsi_rescan_device(&sdev->sdev_gendev);
-                                       scsi_device_put(sdev);
-                               }
+                       sdev = scsi_device_lookup(dev->scsi_host_ptr,
+                                       CONTAINER_CHANNEL,
+                                       container, 0);
+                       if (dev->fsa_dev[container].valid && !sdev) {
+                               scsi_add_device(dev->scsi_host_ptr,
+                                       CONTAINER_CHANNEL,
+                                       container, 0);
+                       } else if (!dev->fsa_dev[container].valid &&
+                               sdev) {
+                               scsi_remove_device(sdev);
+                               scsi_device_put(sdev);
+                       } else if (sdev) {
+                               scsi_rescan_device(&sdev->sdev_gendev);
+                               scsi_device_put(sdev);
                        }
                }
                break;
-- 
2.9.4

Reply via email to