From: Hannes Reinecke Date: Wed, 24 Aug 2011 08:51:18 +0000 (+0200) Subject: [SCSI] scsi_dh_alua: Fix Erroneous TPG ID check X-Git-Tag: v3.2-rc1~125^2~109 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=cfde3fa166c7367258ab32c8a092ae787b2bc8af;p=profile%2Fivi%2Fkernel-x86-ivi.git [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 Signed-off-by: Hannes Reinecke Signed-off-by: James Bottomley --- diff --git a/drivers/scsi/device_handler/scsi_dh_alua.c b/drivers/scsi/device_handler/scsi_dh_alua.c index f44dbf6..34c6611 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;