• Sawan Chandak's avatar
    scsi: qla2xxx: Fix crash due to mismatch mumber of Q-pair creation for Multi queue · 96e0d455
    Sawan Chandak authored
    commit b95b9452 upstream.
    
    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]
    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>
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    96e0d455
qla_init.c 198 KB