• Sawan Chandak's avatar
    scsi: qla2xxx: Fix crash due to mismatch mumber of Q-pair creation for Multi queue · b95b9452
    Sawan Chandak authored
    
    
    when driver is loaded with Multi Queue enabled, it was noticed that
    there was one less queue pair created.
    
    Following message would indicate this:
    
    "No resources to create additional q pair."
    
    The result of one less queue pair means that system can crash, if the
    block mq layer thinks there is an extra hardware queue available, and
    the driver will use a NULL ptr qpair in that instance.
    
    Following stack trace is seen in one of the crash:
    
    irq_create_affinity_masks+0x98/0x530
    irq_create_affinity_masks+0x98/0x530
    __pci_enable_msix+0x321/0x4e0
    mutex_lock+0x12/0x40
    pci_alloc_irq_vectors_affinity+0xb5/0x140
    qla24xx_enable_msix+0x79/0x530 [qla2xxx]
    qla2x00_request_irqs+0x61/0x2d0 [qla2xxx]
    qla2x00_probe_one+0xc73/0x2390 [qla2xxx]
    ida_simple_get+0x98/0x100
    kernfs_next_descendant_post+0x40/0x50
    local_pci_probe+0x45/0xa0
    pci_device_probe+0xfc/0x140
    driver_probe_device+0x2c5/0x470
    __driver_attach+0xdd/0xe0
    driver_probe_device+0x470/0x470
    bus_for_each_dev+0x6c/0xc0
    driver_attach+0x1e/0x20
    bus_add_driver+0x45/0x270
    driver_register+0x60/0xe0
    __pci_register_driver+0x4c/0x50
    qla2x00_module_init+0x1ce/0x21e [qla2xxx]
    
    Cc: <stable@vger.kernel.org> # v4.10+
    Signed-off-by: default avatarSawan Chandak <sawan.chandak@cavium.com>
    Signed-off-by: default avatarHimanshu Madhani <himanshu.madhani@cavium.com>
    Signed-off-by: default avatarMartin K. Petersen <martin.petersen@oracle.com>
    b95b9452
qla_def.h 115 KB