• Home
  • Raw
  • Download

Lines Matching refs:task

214 static int asd_clear_nexus_tag(struct sas_task *task)  in asd_clear_nexus_tag()  argument
216 struct asd_ha_struct *asd_ha = task->dev->port->ha->lldd_ha; in asd_clear_nexus_tag()
217 struct asd_ascb *tascb = task->lldd_task; in asd_clear_nexus_tag()
221 memcpy(scb->clear_nexus.ssp_task.lun, task->ssp_task.LUN, 8); in asd_clear_nexus_tag()
223 if (task->dev->tproto) in asd_clear_nexus_tag()
225 task->dev->lldd_dev); in asd_clear_nexus_tag()
229 static int asd_clear_nexus_index(struct sas_task *task) in asd_clear_nexus_index() argument
231 struct asd_ha_struct *asd_ha = task->dev->port->ha->lldd_ha; in asd_clear_nexus_index()
232 struct asd_ascb *tascb = task->lldd_task; in asd_clear_nexus_index()
236 if (task->dev->tproto) in asd_clear_nexus_index()
238 task->dev->lldd_dev); in asd_clear_nexus_index()
324 static int asd_clear_nexus(struct sas_task *task) in asd_clear_nexus() argument
328 struct asd_ascb *tascb = task->lldd_task; in asd_clear_nexus()
336 res = asd_clear_nexus_tag(task); in asd_clear_nexus()
338 res = asd_clear_nexus_index(task); in asd_clear_nexus()
343 spin_lock_irqsave(&task->task_state_lock, flags); in asd_clear_nexus()
346 if (task->task_state_flags & SAS_TASK_STATE_DONE) in asd_clear_nexus()
348 spin_unlock_irqrestore(&task->task_state_lock, flags); in asd_clear_nexus()
386 int asd_abort_task(struct sas_task *task) in asd_abort_task() argument
388 struct asd_ascb *tascb = task->lldd_task; in asd_abort_task()
401 spin_lock_irqsave(&task->task_state_lock, flags); in asd_abort_task()
402 if (task->task_state_flags & SAS_TASK_STATE_DONE) { in asd_abort_task()
403 spin_unlock_irqrestore(&task->task_state_lock, flags); in asd_abort_task()
405 ASD_DPRINTK("%s: task 0x%p done\n", __func__, task); in asd_abort_task()
408 spin_unlock_irqrestore(&task->task_state_lock, flags); in asd_abort_task()
419 switch (task->task_proto) { in asd_abort_task()
426 scb->abort_task.proto_conn_rate |= task->dev->linkrate; in asd_abort_task()
434 if (task->task_proto == SAS_PROTOCOL_SSP) { in asd_abort_task()
437 task->dev->hashed_sas_addr, HASHED_SAS_ADDR_SIZE); in asd_abort_task()
439 task->dev->port->ha->hashed_sas_addr, in asd_abort_task()
443 memcpy(scb->abort_task.ssp_task.lun, task->ssp_task.LUN, 8); in asd_abort_task()
450 (u16)(unsigned long)task->dev->lldd_dev); in asd_abort_task()
465 spin_lock_irqsave(&task->task_state_lock, flags); in asd_abort_task()
466 if (task->task_state_flags & SAS_TASK_STATE_DONE) { in asd_abort_task()
467 spin_unlock_irqrestore(&task->task_state_lock, flags); in asd_abort_task()
469 ASD_DPRINTK("%s: task 0x%p done\n", __func__, task); in asd_abort_task()
472 spin_unlock_irqrestore(&task->task_state_lock, flags); in asd_abort_task()
478 res = asd_clear_nexus(task); in asd_abort_task()
492 res = asd_clear_nexus(task); in asd_abort_task()
508 spin_lock_irqsave(&task->task_state_lock, flags); in asd_abort_task()
511 if (task->task_state_flags & SAS_TASK_STATE_DONE) in asd_abort_task()
513 spin_unlock_irqrestore(&task->task_state_lock, flags); in asd_abort_task()
528 task->lldd_task = NULL; in asd_abort_task()
532 ASD_DPRINTK("task 0x%p aborted, res: 0x%x\n", task, res); in asd_abort_task()
537 ASD_DPRINTK("task 0x%p aborted, res: 0x%x\n", task, res); in asd_abort_task()
675 int asd_query_task(struct sas_task *task) in asd_query_task() argument
677 struct asd_ascb *ascb = task->lldd_task; in asd_query_task()
682 return asd_initiate_ssp_tmf(task->dev, task->ssp_task.LUN, in asd_query_task()