Separate out the calculations for setting max_sectors into a separate function. Signed-off-by: Hannes Reinecke <hare@xxxxxxx> --- drivers/scsi/megaraid/megaraid_sas_base.c | 55 +++++++++++++++++-------------- 1 file changed, 31 insertions(+), 24 deletions(-) diff --git a/drivers/scsi/megaraid/megaraid_sas_base.c b/drivers/scsi/megaraid/megaraid_sas_base.c index 43a179fc91f2..00a1d5caf7d5 100644 --- a/drivers/scsi/megaraid/megaraid_sas_base.c +++ b/drivers/scsi/megaraid/megaraid_sas_base.c @@ -5829,6 +5829,36 @@ megasas_alloc_irq_vectors(struct megasas_instance *instance) megasas_set_high_iops_queue_affinity_hint(instance); } +static void megasas_set_max_sectors(struct megasas_instance *instance) +{ + if (instance->fw_support_ieee) + instance->max_sectors_per_req = MEGASAS_MAX_SECTORS_IEEE; + + /* + * Check if the module parameter value for max_sectors can be used + */ + if (max_sectors && max_sectors < instance->max_sectors_per_req) + instance->max_sectors_per_req = max_sectors; + else { + if (max_sectors) { + if (((instance->pdev->device == + PCI_DEVICE_ID_LSI_SAS1078GEN2) || + (instance->pdev->device == + PCI_DEVICE_ID_LSI_SAS0079GEN2)) && + (max_sectors <= MEGASAS_MAX_SECTORS)) { + instance->max_sectors_per_req = max_sectors; + } else { + dev_info(&instance->pdev->dev, + "max_sectors should be > 0 and <= %d" + "(or < 1MB for GEN2 controller)\n", + instance->max_sectors_per_req); + } + } + } + + instance->host->max_sectors = instance->max_sectors_per_req; +} + /** * megasas_init_fw - Initializes the FW * @instance: Adapter soft state @@ -6737,31 +6767,8 @@ static int megasas_io_attach(struct megasas_instance *instance) host->can_queue = instance->max_scsi_cmds; host->sg_tablesize = instance->max_num_sge; - if (instance->fw_support_ieee) - instance->max_sectors_per_req = MEGASAS_MAX_SECTORS_IEEE; - - /* - * Check if the module parameter value for max_sectors can be used - */ - if (max_sectors && max_sectors < instance->max_sectors_per_req) - instance->max_sectors_per_req = max_sectors; - else { - if (max_sectors) { - if (((instance->pdev->device == - PCI_DEVICE_ID_LSI_SAS1078GEN2) || - (instance->pdev->device == - PCI_DEVICE_ID_LSI_SAS0079GEN2)) && - (max_sectors <= MEGASAS_MAX_SECTORS)) { - instance->max_sectors_per_req = max_sectors; - } else { - dev_info(&instance->pdev->dev, "max_sectors should be > 0" - "and <= %d (or < 1MB for GEN2 controller)\n", - instance->max_sectors_per_req); - } - } - } + megasas_set_max_sectors(instance); - host->max_sectors = instance->max_sectors_per_req; host->cmd_per_lun = MEGASAS_DEFAULT_CMD_PER_LUN; host->max_channel = MEGASAS_MAX_CHANNELS - 1; host->max_id = MEGASAS_MAX_DEV_PER_CHANNEL; -- 2.16.4