diff options
author | Michael Brown <mcb30@ipxe.org> | 2014-06-02 02:17:28 +0100 |
---|---|---|
committer | Michael Brown <mcb30@ipxe.org> | 2014-06-03 02:04:46 +0100 |
commit | e047811c859bd11777c9a01d7ca89ca948567199 (patch) | |
tree | c84557d88a049527dfc80631dcc3d9cb3bed2380 /src/net/fcp.c | |
parent | d630052e6f44ce215503fb7f20819a1382ebfa9b (diff) | |
download | ipxe-e047811c859bd11777c9a01d7ca89ca948567199.tar.gz |
[scsi] Improve sense code parsing
Parse the sense data to extract the reponse code, the sense key, the
additional sense code, and the additional sense code qualifier.
Originally-implemented-by: Hannes Reinecke <hare@suse.de>
Signed-off-by: Michael Brown <mcb30@ipxe.org>
Diffstat (limited to 'src/net/fcp.c')
-rw-r--r-- | src/net/fcp.c | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/src/net/fcp.c b/src/net/fcp.c index 241b54638..9c36a4c72 100644 --- a/src/net/fcp.c +++ b/src/net/fcp.c @@ -551,7 +551,6 @@ static int fcpcmd_recv_rsp ( struct fcp_command *fcpcmd, struct fcp_device *fcpdev = fcpcmd->fcpdev; struct scsi_cmd *command = &fcpcmd->command; struct fcp_rsp *rsp = iobuf->data; - struct scsi_sense *sense; struct scsi_rsp response; int rc; @@ -607,8 +606,8 @@ static int fcpcmd_recv_rsp ( struct fcp_command *fcpcmd, if ( rsp->flags & FCP_RSP_RESIDUAL_UNDERRUN ) response.overrun = -response.overrun; } - if ( ( sense = fcp_rsp_sense_data ( rsp ) ) != NULL ) - memcpy ( &response.sense, sense, sizeof ( response.sense ) ); + scsi_parse_sense ( fcp_rsp_sense_data ( rsp ), + fcp_rsp_sense_data_len ( rsp ), &response.sense ); /* Free buffer before sending response, to minimise * out-of-memory errors. |