diff --git a/qla2x00t-32gbit/qla_init.c b/qla2x00t-32gbit/qla_init.c index 46d4d7529..6eeb0a157 100644 --- a/qla2x00t-32gbit/qla_init.c +++ b/qla2x00t-32gbit/qla_init.c @@ -9429,6 +9429,12 @@ struct qla_qpair *qla2xxx_create_qpair(struct scsi_qla_host *vha, int qos, qpair->req = ha->req_q_map[req_id]; qpair->rsp->req = qpair->req; qpair->rsp->qpair = qpair; +#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 9, 0) && \ + (!defined(RHEL_RELEASE_CODE) || \ + RHEL_RELEASE_CODE -0 < RHEL_RELEASE_VERSION(7, 5)) + /* init qpair to this cpu. Will adjust at run time. */ + qla_cpu_update(qpair, raw_smp_processor_id()); +#endif if (IS_T10_PI_CAPABLE(ha) && ql2xenabledif) { if (ha->fw_attributes & BIT_4) diff --git a/qla2x00t-32gbit/qla_inline.h b/qla2x00t-32gbit/qla_inline.h index 7dd8f05c3..c3f1b3b7f 100644 --- a/qla2x00t-32gbit/qla_inline.h +++ b/qla2x00t-32gbit/qla_inline.h @@ -541,6 +541,9 @@ qla_mapq_init_qp_cpu_map(struct qla_hw_data *ha, struct qla_msix_entry *msix, struct qla_qpair *qpair) { +#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 9, 0) || \ + (defined(RHEL_RELEASE_CODE) && \ + RHEL_RELEASE_CODE -0 >= RHEL_RELEASE_VERSION(7, 5)) const struct cpumask *mask; unsigned int cpu; @@ -552,6 +555,7 @@ qla_mapq_init_qp_cpu_map(struct qla_hw_data *ha, ha->qp_cpu_map[cpu] = qpair; } msix->cpuid = qpair->cpuid; +#endif } static inline void diff --git a/qla2x00t-32gbit/qla_isr.c b/qla2x00t-32gbit/qla_isr.c index e9df2ef3d..966c1b942 100644 --- a/qla2x00t-32gbit/qla_isr.c +++ b/qla2x00t-32gbit/qla_isr.c @@ -3793,6 +3793,11 @@ void qla24xx_process_response_queue(struct scsi_qla_host *vha, if (rsp->qpair->cpuid != raw_smp_processor_id() || !rsp->qpair->rcv_intr) { rsp->qpair->rcv_intr = 1; +#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 9, 0) && \ + (!defined(RHEL_RELEASE_CODE) || \ + RHEL_RELEASE_CODE -0 < RHEL_RELEASE_VERSION(7, 5)) + qla_cpu_update(rsp->qpair, raw_smp_processor_id()); +#endif } #define __update_rsp_in(_is_shadow_hba, _rsp, _rsp_in) \