diff options
author | Hannes Reinecke <hare@suse.de> | 2011-08-24 12:51:18 +0400 |
---|---|---|
committer | James Bottomley <JBottomley@Parallels.com> | 2011-08-30 23:32:41 +0400 |
commit | cfde3fa166c7367258ab32c8a092ae787b2bc8af (patch) | |
tree | f1ef1f44c5f0fc890de4a233d5d2eec6fd2578dc /drivers/scsi/device_handler | |
parent | 6bc8d2a0c6bb3e52f0c66e6cde6799d1b90b42ba (diff) | |
download | linux-cfde3fa166c7367258ab32c8a092ae787b2bc8af.tar.xz |
[SCSI] scsi_dh_alua: Fix Erroneous TPG ID check
For Target Portal Group IDs occupying the full 2 bytes in the
RTPG response, the following group_id check in the alua_rtpg
routine always fails in scsi_dh_alua.c:
if (h->group_id == (ucp[2] << 8) + ucp[3]) {
This causes the ALUA handler to wrongly identify the AAS of
a specified device as well as incorrectly interpreting the
supported AAS of the target as seen by the following entries
in the /var/log/messages:
"alua: port group 3ea state A supports tousna"
"alua: port group 3e9 state A supports tousna"
This is because 'ucp' is wrongly declared in alua_rtpg as
a character pointer instead of an unsigned character pointer.
Signed-off-by: Martin George <marting@netapp.com>
Signed-off-by: Hannes Reinecke <hare@suse.de>
Signed-off-by: James Bottomley <JBottomley@Parallels.com>
Diffstat (limited to 'drivers/scsi/device_handler')
-rw-r--r-- | drivers/scsi/device_handler/scsi_dh_alua.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/scsi/device_handler/scsi_dh_alua.c b/drivers/scsi/device_handler/scsi_dh_alua.c index f44dbf69843a..34c66118dfc4 100644 --- a/drivers/scsi/device_handler/scsi_dh_alua.c +++ b/drivers/scsi/device_handler/scsi_dh_alua.c @@ -504,7 +504,7 @@ static int alua_rtpg(struct scsi_device *sdev, struct alua_dh_data *h) { struct scsi_sense_hdr sense_hdr; int len, k, off, valid_states = 0; - char *ucp; + unsigned char *ucp; unsigned err; unsigned long expiry, interval = 10; |