struct hisi_sas_internal_abort_data internal_abort_data = { false };
        struct domain_device *device = task->dev;
        struct hisi_sas_device *sas_dev = device->lldd_dev;
+       struct hisi_sas_slot *slot = task->lldd_task;
        struct hisi_hba *hisi_hba;
        struct device *dev;
        int rc = TMF_RESP_FUNC_FAILED;
 
        spin_lock_irqsave(&task->task_state_lock, flags);
        if (task->task_state_flags & SAS_TASK_STATE_DONE) {
-               struct hisi_sas_slot *slot = task->lldd_task;
                struct hisi_sas_cq *cq;
 
                if (slot) {
        task->task_state_flags |= SAS_TASK_STATE_ABORTED;
        spin_unlock_irqrestore(&task->task_state_lock, flags);
 
-       if (task->lldd_task && task->task_proto & SAS_PROTOCOL_SSP) {
-               struct hisi_sas_slot *slot = task->lldd_task;
+       if (slot && task->task_proto & SAS_PROTOCOL_SSP) {
                u16 tag = slot->idx;
                int rc2;
 
                        hisi_sas_dereg_device(hisi_hba, device);
                        rc = hisi_sas_softreset_ata_disk(device);
                }
-       } else if (task->lldd_task && task->task_proto & SAS_PROTOCOL_SMP) {
+       } else if (slot && task->task_proto & SAS_PROTOCOL_SMP) {
                /* SMP */
-               struct hisi_sas_slot *slot = task->lldd_task;
                u32 tag = slot->idx;
                struct hisi_sas_cq *cq = &hisi_hba->cq[slot->dlvry_queue];