res->add_to_ml = 0;
        res->del_from_ml = 0;
        res->resetting_device = 0;
+       res->reset_occurred = 0;
        res->sdev = NULL;
        res->sata_port = NULL;
 
        } else
                rc = ipr_device_reset(ioa_cfg, res);
        res->resetting_device = 0;
+       res->reset_occurred = 1;
 
        LEAVE;
        return rc ? FAILED : SUCCESS;
                        ioarcb->cmd_pkt.flags_hi |= IPR_FLAGS_HI_NO_ULEN_CHK;
 
                ioarcb->cmd_pkt.flags_hi |= IPR_FLAGS_HI_NO_LINK_DESC;
-               if (ipr_is_gscsi(res))
+               if (ipr_is_gscsi(res) && res->reset_occurred) {
+                       res->reset_occurred = 0;
                        ioarcb->cmd_pkt.flags_lo |= IPR_FLAGS_LO_DELAY_AFTER_RST;
+               }
                ioarcb->cmd_pkt.flags_lo |= IPR_FLAGS_LO_ALIGNED_BFR;
                ioarcb->cmd_pkt.flags_lo |= ipr_get_task_attributes(scsi_cmd);
        }