• Jens Axboe's avatar
    nvme: fix boot hang with only being able to get one IRQ vector · 30e06628
    Jens Axboe authored
    NVMe always asks for io_queues + 1 worth of IRQ vectors, which
    means that even when we scale all the way down, we still ask
    for 2 vectors and get -ENOSPC in return if the system can't
    support more than 1.
    
    Getting just 1 vector is fine, it just means that we'll have
    1 IO queue and 1 admin queue, with a shared vector between them.
    Check for this case and don't add our + 1 if it happens.
    
    Fixes: 3b6592f7 ("nvme: utilize two queue maps, one for reads and one for writes")
    Reported-by: default avatarGuenter Roeck <linux@roeck-us.net>
    Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
    30e06628
pci.c 75.1 KB