Comment 1 for bug 1805088

AceLan Kao (acelankao) wrote :

commit ab1068d6866e28bf6427ceaea681a381e5870a4a
Author: Hao Wei Tee <email address hidden>
Date: Tue May 29 10:25:17 2018 +0300

    iwlwifi: pcie: compare with number of IRQs requested for, not number of CPUs

    When there are 16 or more logical CPUs, we request for
    `IWL_MAX_RX_HW_QUEUES` (16) IRQs only as we limit to that number of
    IRQs, but later on we compare the number of IRQs returned to
    nr_online_cpus+2 instead of max_irqs, the latter being what we
    actually asked for. This ends up setting num_rx_queues to 17 which
    causes lots of out-of-bounds array accesses later on.

    Compare to max_irqs instead, and also add an assertion in case
    num_rx_queues > IWM_MAX_RX_HW_QUEUES.

    This fixes https://bugzilla.kernel.org/show_bug.cgi?id=199551

    Fixes: 2e5d4a8f61dc ("iwlwifi: pcie: Add new configuration to enable MSIX")
    Signed-off-by: Hao Wei Tee <email address hidden>
    Tested-by: Sara Sharon <email address hidden>
    Signed-off-by: Luca Coelho <email address hidden>
    Signed-off-by: Kalle Valo <email address hidden>