[SCSI] megaraid_sas: fixes for few endianess issues
Fixed two issues in this patch- 1) In function megasas_get_pd_list(), data read(pd_addr->deviceId) from DMAed memory is converted to CPU's endianess. 2) While register AEN, removed some endianness conversion on some fields, since their endianess is already converted. Signed-off-by: Sumit Saxena <sumit.saxena@lsi.com> Signed-off-by: James Bottomley <JBottomley@Parallels.com>
This commit is contained in:
parent
eeceec9040
commit
3993a86241
|
@ -3199,11 +3199,11 @@ megasas_get_pd_list(struct megasas_instance *instance)
|
||||||
|
|
||||||
for (pd_index = 0; pd_index < le32_to_cpu(ci->count); pd_index++) {
|
for (pd_index = 0; pd_index < le32_to_cpu(ci->count); pd_index++) {
|
||||||
|
|
||||||
instance->pd_list[pd_addr->deviceId].tid =
|
instance->pd_list[le16_to_cpu(pd_addr->deviceId)].tid =
|
||||||
le16_to_cpu(pd_addr->deviceId);
|
le16_to_cpu(pd_addr->deviceId);
|
||||||
instance->pd_list[pd_addr->deviceId].driveType =
|
instance->pd_list[le16_to_cpu(pd_addr->deviceId)].driveType =
|
||||||
pd_addr->scsiDevType;
|
pd_addr->scsiDevType;
|
||||||
instance->pd_list[pd_addr->deviceId].driveState =
|
instance->pd_list[le16_to_cpu(pd_addr->deviceId)].driveState =
|
||||||
MR_PD_STATE_SYSTEM;
|
MR_PD_STATE_SYSTEM;
|
||||||
pd_addr++;
|
pd_addr++;
|
||||||
}
|
}
|
||||||
|
@ -3998,7 +3998,7 @@ megasas_register_aen(struct megasas_instance *instance, u32 seq_num,
|
||||||
* values
|
* values
|
||||||
*/
|
*/
|
||||||
if ((prev_aen.members.class <= curr_aen.members.class) &&
|
if ((prev_aen.members.class <= curr_aen.members.class) &&
|
||||||
!((le16_to_cpu(prev_aen.members.locale) & curr_aen.members.locale) ^
|
!((prev_aen.members.locale & curr_aen.members.locale) ^
|
||||||
curr_aen.members.locale)) {
|
curr_aen.members.locale)) {
|
||||||
/*
|
/*
|
||||||
* Previously issued event registration includes
|
* Previously issued event registration includes
|
||||||
|
@ -4006,7 +4006,7 @@ megasas_register_aen(struct megasas_instance *instance, u32 seq_num,
|
||||||
*/
|
*/
|
||||||
return 0;
|
return 0;
|
||||||
} else {
|
} else {
|
||||||
curr_aen.members.locale |= le16_to_cpu(prev_aen.members.locale);
|
curr_aen.members.locale |= prev_aen.members.locale;
|
||||||
|
|
||||||
if (prev_aen.members.class < curr_aen.members.class)
|
if (prev_aen.members.class < curr_aen.members.class)
|
||||||
curr_aen.members.class = prev_aen.members.class;
|
curr_aen.members.class = prev_aen.members.class;
|
||||||
|
@ -4097,7 +4097,7 @@ static int megasas_start_aen(struct megasas_instance *instance)
|
||||||
class_locale.members.class = MR_EVT_CLASS_DEBUG;
|
class_locale.members.class = MR_EVT_CLASS_DEBUG;
|
||||||
|
|
||||||
return megasas_register_aen(instance,
|
return megasas_register_aen(instance,
|
||||||
le32_to_cpu(eli.newest_seq_num) + 1,
|
eli.newest_seq_num + 1,
|
||||||
class_locale.word);
|
class_locale.word);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue