• Alex Elder's avatar
    net: ipa: avoid going past end of resource group array · 4a0d7579
    Alex Elder authored
    The minimum and maximum limits for resources assigned to a given
    resource group are programmed in pairs, with the limits for two
    groups set in a single register.
    
    If the number of supported resource groups is odd, only half of the
    register that defines these limits is valid for the last group; that
    group has no second group in the pair.
    
    Currently we ignore this constraint, and it turns out to be harmless,
    but it is not guaranteed to be.  This patch addresses that, and adds
    support for programming the 5th resource group's limits.
    
    Rework how the resource group limit registers are programmed by
    having a single function program all group pairs rather than having
    one function program each pair.  Add the programming of the 4-5
    resource group pair limits to this function.  If a resource group is
    not supported, pass a null pointer to ipa_resource_config_common()
    for that group and have that function write zeroes in that case.
    Tested-by: default avatarSujit Kautkar <sujitka@chromium.org>
    Signed-off-by: default avatarAlex Elder <elder@linaro.org>
    Acked-by: default avatarWillem de Bruijn <willemb@google.com>
    Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
    4a0d7579
ipa_main.c 26 KB