scsi: qla2xxx: fix MSI-X vector affinity
The first two or three vectors in qla2xxx adapter are global and not associated with a specific queue. They should not have IRQ affinity assigned. Signed-off-by: Christoph Hellwig <hch@lst.de> Acked-by: Himanshu Madhani <himanshu.madhani@cavium.com> Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
This commit is contained in:
parent
c3c4239465
commit
17e5fc5858
@ -2732,7 +2732,7 @@ struct isp_operations {
|
||||
#define QLA_MSIX_FW_MODE(m) (((m) & (BIT_7|BIT_8|BIT_9)) >> 7)
|
||||
#define QLA_MSIX_FW_MODE_1(m) (QLA_MSIX_FW_MODE(m) == 1)
|
||||
|
||||
#define QLA_MSIX_DEFAULT 0x00
|
||||
#define QLA_BASE_VECTORS 2 /* default + RSP */
|
||||
#define QLA_MSIX_RSP_Q 0x01
|
||||
#define QLA_ATIO_VECTOR 0x02
|
||||
#define QLA_MSIX_QPAIR_MULTIQ_RSP_Q 0x03
|
||||
|
@ -3017,13 +3017,20 @@ static struct qla_init_msix_entry qla82xx_msix_entries[] = {
|
||||
static int
|
||||
qla24xx_enable_msix(struct qla_hw_data *ha, struct rsp_que *rsp)
|
||||
{
|
||||
#define MIN_MSIX_COUNT 2
|
||||
int i, ret;
|
||||
struct qla_msix_entry *qentry;
|
||||
scsi_qla_host_t *vha = pci_get_drvdata(ha->pdev);
|
||||
struct irq_affinity desc = {
|
||||
.pre_vectors = QLA_BASE_VECTORS,
|
||||
};
|
||||
|
||||
if (QLA_TGT_MODE_ENABLED() && IS_ATIO_MSIX_CAPABLE(ha))
|
||||
desc.pre_vectors++;
|
||||
|
||||
ret = pci_alloc_irq_vectors_affinity(ha->pdev, QLA_BASE_VECTORS,
|
||||
ha->msix_count, PCI_IRQ_MSIX | PCI_IRQ_AFFINITY,
|
||||
&desc);
|
||||
|
||||
ret = pci_alloc_irq_vectors(ha->pdev, MIN_MSIX_COUNT, ha->msix_count,
|
||||
PCI_IRQ_MSIX | PCI_IRQ_AFFINITY);
|
||||
if (ret < 0) {
|
||||
ql_log(ql_log_fatal, vha, 0x00c7,
|
||||
"MSI-X: Failed to enable support, "
|
||||
@ -3074,7 +3081,7 @@ qla24xx_enable_msix(struct qla_hw_data *ha, struct rsp_que *rsp)
|
||||
}
|
||||
|
||||
/* Enable MSI-X vectors for the base queue */
|
||||
for (i = 0; i < (QLA_MSIX_RSP_Q + 1); i++) {
|
||||
for (i = 0; i < QLA_BASE_VECTORS; i++) {
|
||||
qentry = &ha->msix_entries[i];
|
||||
qentry->handle = rsp;
|
||||
rsp->msix = qentry;
|
||||
|
Loading…
Reference in New Issue
Block a user