mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-08-27 03:10:12 +00:00
scsi: megaraid_sas: Refactor MEGASAS_IS_LOGICAL macro using sdev
Signed-off-by: Shivasharan S <shivasharan.srikanteshwara@broadcom.com> Signed-off-by: Kashyap Desai <kashyap.desai@broadcom.com> Reviewed-by: Hannes Reinecke <hare@suse.com> Reviewed-by: Tomas Henzl <thenzl@redhat.com> Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
This commit is contained in:
parent
45b8a35eed
commit
3cabd16256
3 changed files with 18 additions and 18 deletions
|
@ -2301,8 +2301,8 @@ struct megasas_instance_template {
|
||||||
struct megasas_cmd *cmd);
|
struct megasas_cmd *cmd);
|
||||||
};
|
};
|
||||||
|
|
||||||
#define MEGASAS_IS_LOGICAL(scp) \
|
#define MEGASAS_IS_LOGICAL(sdev) \
|
||||||
((scp->device->channel < MEGASAS_MAX_PD_CHANNELS) ? 0 : 1)
|
((sdev->channel < MEGASAS_MAX_PD_CHANNELS) ? 0 : 1)
|
||||||
|
|
||||||
#define MEGASAS_DEV_INDEX(scp) \
|
#define MEGASAS_DEV_INDEX(scp) \
|
||||||
(((scp->device->channel % 2) * MEGASAS_MAX_DEV_PER_CHANNEL) + \
|
(((scp->device->channel % 2) * MEGASAS_MAX_DEV_PER_CHANNEL) + \
|
||||||
|
|
|
@ -1279,7 +1279,7 @@ megasas_build_dcdb(struct megasas_instance *instance, struct scsi_cmnd *scp,
|
||||||
u16 flags = 0;
|
u16 flags = 0;
|
||||||
struct megasas_pthru_frame *pthru;
|
struct megasas_pthru_frame *pthru;
|
||||||
|
|
||||||
is_logical = MEGASAS_IS_LOGICAL(scp);
|
is_logical = MEGASAS_IS_LOGICAL(scp->device);
|
||||||
device_id = MEGASAS_DEV_INDEX(scp);
|
device_id = MEGASAS_DEV_INDEX(scp);
|
||||||
pthru = (struct megasas_pthru_frame *)cmd->frame;
|
pthru = (struct megasas_pthru_frame *)cmd->frame;
|
||||||
|
|
||||||
|
@ -1519,11 +1519,11 @@ inline int megasas_cmd_type(struct scsi_cmnd *cmd)
|
||||||
case WRITE_6:
|
case WRITE_6:
|
||||||
case READ_16:
|
case READ_16:
|
||||||
case WRITE_16:
|
case WRITE_16:
|
||||||
ret = (MEGASAS_IS_LOGICAL(cmd)) ?
|
ret = (MEGASAS_IS_LOGICAL(cmd->device)) ?
|
||||||
READ_WRITE_LDIO : READ_WRITE_SYSPDIO;
|
READ_WRITE_LDIO : READ_WRITE_SYSPDIO;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
ret = (MEGASAS_IS_LOGICAL(cmd)) ?
|
ret = (MEGASAS_IS_LOGICAL(cmd->device)) ?
|
||||||
NON_READ_WRITE_LDIO : NON_READ_WRITE_SYSPDIO;
|
NON_READ_WRITE_LDIO : NON_READ_WRITE_SYSPDIO;
|
||||||
}
|
}
|
||||||
return ret;
|
return ret;
|
||||||
|
@ -1699,15 +1699,16 @@ megasas_queue_command(struct Scsi_Host *shost, struct scsi_cmnd *scmd)
|
||||||
|
|
||||||
scmd->result = 0;
|
scmd->result = 0;
|
||||||
|
|
||||||
if (MEGASAS_IS_LOGICAL(scmd) &&
|
if (MEGASAS_IS_LOGICAL(scmd->device) &&
|
||||||
(scmd->device->id >= instance->fw_supported_vd_count ||
|
(scmd->device->id >= instance->fw_supported_vd_count ||
|
||||||
scmd->device->lun)) {
|
scmd->device->lun)) {
|
||||||
scmd->result = DID_BAD_TARGET << 16;
|
scmd->result = DID_BAD_TARGET << 16;
|
||||||
goto out_done;
|
goto out_done;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((scmd->cmnd[0] == SYNCHRONIZE_CACHE) && MEGASAS_IS_LOGICAL(scmd) &&
|
if ((scmd->cmnd[0] == SYNCHRONIZE_CACHE) &&
|
||||||
(!instance->fw_sync_cache_support)) {
|
MEGASAS_IS_LOGICAL(scmd->device) &&
|
||||||
|
(!instance->fw_sync_cache_support)) {
|
||||||
scmd->result = DID_OK << 16;
|
scmd->result = DID_OK << 16;
|
||||||
goto out_done;
|
goto out_done;
|
||||||
}
|
}
|
||||||
|
@ -1758,7 +1759,7 @@ void megasas_update_sdev_properties(struct scsi_device *sdev)
|
||||||
if (!fusion)
|
if (!fusion)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (sdev->channel < MEGASAS_MAX_PD_CHANNELS &&
|
if (!MEGASAS_IS_LOGICAL(sdev) &&
|
||||||
instance->use_seqnum_jbod_fp) {
|
instance->use_seqnum_jbod_fp) {
|
||||||
pd_index = (sdev->channel * MEGASAS_MAX_DEV_PER_CHANNEL) +
|
pd_index = (sdev->channel * MEGASAS_MAX_DEV_PER_CHANNEL) +
|
||||||
sdev->id;
|
sdev->id;
|
||||||
|
@ -1826,8 +1827,7 @@ static int megasas_slave_configure(struct scsi_device *sdev)
|
||||||
|
|
||||||
instance = megasas_lookup_instance(sdev->host->host_no);
|
instance = megasas_lookup_instance(sdev->host->host_no);
|
||||||
if (instance->pd_list_not_supported) {
|
if (instance->pd_list_not_supported) {
|
||||||
if (sdev->channel < MEGASAS_MAX_PD_CHANNELS &&
|
if (!MEGASAS_IS_LOGICAL(sdev) && sdev->type == TYPE_DISK) {
|
||||||
sdev->type == TYPE_DISK) {
|
|
||||||
pd_index = (sdev->channel * MEGASAS_MAX_DEV_PER_CHANNEL) +
|
pd_index = (sdev->channel * MEGASAS_MAX_DEV_PER_CHANNEL) +
|
||||||
sdev->id;
|
sdev->id;
|
||||||
if (instance->pd_list[pd_index].driveState !=
|
if (instance->pd_list[pd_index].driveState !=
|
||||||
|
@ -1854,7 +1854,7 @@ static int megasas_slave_alloc(struct scsi_device *sdev)
|
||||||
struct MR_PRIV_DEVICE *mr_device_priv_data;
|
struct MR_PRIV_DEVICE *mr_device_priv_data;
|
||||||
|
|
||||||
instance = megasas_lookup_instance(sdev->host->host_no);
|
instance = megasas_lookup_instance(sdev->host->host_no);
|
||||||
if (sdev->channel < MEGASAS_MAX_PD_CHANNELS) {
|
if (!MEGASAS_IS_LOGICAL(sdev)) {
|
||||||
/*
|
/*
|
||||||
* Open the OS scan to the SYSTEM PD
|
* Open the OS scan to the SYSTEM PD
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -3581,13 +3581,13 @@ static u16 megasas_get_tm_devhandle(struct scsi_device *sdev)
|
||||||
instance = (struct megasas_instance *)sdev->host->hostdata;
|
instance = (struct megasas_instance *)sdev->host->hostdata;
|
||||||
fusion = instance->ctrl_context;
|
fusion = instance->ctrl_context;
|
||||||
|
|
||||||
if (sdev->channel < MEGASAS_MAX_PD_CHANNELS) {
|
if (!MEGASAS_IS_LOGICAL(sdev)) {
|
||||||
if (instance->use_seqnum_jbod_fp) {
|
if (instance->use_seqnum_jbod_fp) {
|
||||||
pd_index = (sdev->channel * MEGASAS_MAX_DEV_PER_CHANNEL) +
|
pd_index = (sdev->channel * MEGASAS_MAX_DEV_PER_CHANNEL)
|
||||||
sdev->id;
|
+ sdev->id;
|
||||||
pd_sync = (void *)fusion->pd_seq_sync
|
pd_sync = (void *)fusion->pd_seq_sync
|
||||||
[(instance->pd_seq_map_id - 1) & 1];
|
[(instance->pd_seq_map_id - 1) & 1];
|
||||||
devhandle = pd_sync->seq[pd_index].devHandle;
|
devhandle = pd_sync->seq[pd_index].devHandle;
|
||||||
} else
|
} else
|
||||||
sdev_printk(KERN_ERR, sdev, "Firmware expose tmCapable"
|
sdev_printk(KERN_ERR, sdev, "Firmware expose tmCapable"
|
||||||
" without JBOD MAP support from %s %d\n", __func__, __LINE__);
|
" without JBOD MAP support from %s %d\n", __func__, __LINE__);
|
||||||
|
|
Loading…
Reference in a new issue