Linux Kernel
3.7.1
Main Page
Related Pages
Modules
Namespaces
Data Structures
Files
File List
Globals
All
Data Structures
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Groups
Pages
drivers
scsi
libsas
sas_task.c
Go to the documentation of this file.
1
#include <linux/kernel.h>
2
#include <linux/export.h>
3
#include <
scsi/sas.h
>
4
#include <
scsi/libsas.h
>
5
6
/* fill task_status_struct based on SSP response frame */
7
void
sas_ssp_task_response
(
struct
device
*
dev
,
struct
sas_task
*
task
,
8
struct
ssp_response_iu *
iu
)
9
{
10
struct
task_status_struct
*tstat = &task->
task_status
;
11
12
tstat->
resp
=
SAS_TASK_COMPLETE
;
13
14
if
(iu->datapres == 0)
15
tstat->
stat
= iu->status;
16
else
if
(iu->datapres == 1)
17
tstat->
stat
= iu->resp_data[3];
18
else
if
(iu->datapres == 2) {
19
tstat->
stat
=
SAM_STAT_CHECK_CONDITION
;
20
tstat->
buf_valid_size
=
21
min_t
(
int
,
SAS_STATUS_BUF_SIZE
,
22
be32_to_cpu
(iu->sense_data_len));
23
memcpy
(tstat->
buf
, iu->sense_data, tstat->
buf_valid_size
);
24
25
if
(iu->status !=
SAM_STAT_CHECK_CONDITION
)
26
dev_printk(
KERN_WARNING
, dev,
27
"dev %llx sent sense data, but "
28
"stat(%x) is not CHECK CONDITION\n"
,
29
SAS_ADDR
(task->
dev
->sas_addr),
30
iu->status);
31
}
32
else
33
/* when datapres contains corrupt/unknown value... */
34
tstat->
stat
=
SAM_STAT_CHECK_CONDITION
;
35
}
36
EXPORT_SYMBOL_GPL
(
sas_ssp_task_response
);
37
Generated on Thu Jan 10 2013 14:21:37 for Linux Kernel by
1.8.2