• Dan Carpenter's avatar
    scsi: mpi3mr: Fix error handling in mpi3mr_setup_isr() · 2938bedd
    Dan Carpenter authored
    The pci_alloc_irq_vectors_affinity() function returns negative error codes
    or it returns a number between the minimum vectors (1 in this case) and
    max_vectors.  It won't return zero.  Because "i" is a u16 then the error
    handling won't work.  And also if it did work the error code was not set.
    
    Really "max_vectors" can be an int as well because we're doing a min_t() on
    int type.  The other change is that it's better to remove unnecessary
    initialization so that static checkers can warn us if there are ever
    uninitialized variable bugs introduced in the future.
    
    I changed the error code from -1 (-EPERM) if the kmalloc() failed to
    -ENOMEM.  And on success path I changed it from "return retval;" to "return
    0;" which shouldn't affect the compiled code but makes it more readable.
    
    Link: https://lore.kernel.org/r/YMCJcnmSI4kOIyv/@mwanda
    Fixes: 824a1566 ("scsi: mpi3mr: Base driver code")
    Signed-off-by: default avatarDan Carpenter <dan.carpenter@oracle.com>
    Signed-off-by: default avatarMartin K. Petersen <martin.petersen@oracle.com>
    2938bedd
mpi3mr_fw.c 113 KB