const u32 scan_flags = BLIST_NOREPORTLUN | BLIST_SPARSELUN;
        struct bfad_itnim_s *itnim;
        struct scsi_device *sdev;
+       unsigned long flags;
 
+       spin_lock_irqsave(im_port->shost->host_lock, flags);
        list_for_each_entry(itnim, &im_port->itnim_mapped_list, list_entry) {
-               sdev = scsi_device_lookup(im_port->shost, itnim->channel,
-                                         itnim->scsi_tgt_id, 0);
+               sdev = __scsi_device_lookup(im_port->shost, itnim->channel,
+                                           itnim->scsi_tgt_id, 0);
                if (sdev) {
                        if (lunmask_cfg == BFA_TRUE)
                                sdev->sdev_bflags |= scan_flags;
                        else
                                sdev->sdev_bflags &= ~scan_flags;
-                       scsi_device_put(sdev);
                }
        }
+       spin_unlock_irqrestore(im_port->shost->host_lock, flags);
 }
 
 /* Function to reset the LUN SCAN mode */