lkml.org 
[lkml]   [2019]   [Mar]   [27]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH AUTOSEL 4.19 014/192] enic: fix build warning without CONFIG_CPUMASK_OFFSTACK
    Date
    From: Arnd Bergmann <arnd@arndb.de>

    [ Upstream commit 43d281662fdb46750d49417559b71069f435298d ]

    The enic driver relies on the CONFIG_CPUMASK_OFFSTACK feature to
    dynamically allocate a struct member, but this is normally intended for
    local variables.

    Building with clang, I get a warning for a few locations that check the
    address of the cpumask_var_t:

    drivers/net/ethernet/cisco/enic/enic_main.c:122:22: error: address of array 'enic->msix[i].affinity_mask' will always evaluate to 'true' [-Werror,-Wpointer-bool-conversion]

    As far as I can tell, the code is still correct, as the truth value of
    the pointer is what we need in this configuration. To get rid of
    the warning, use cpumask_available() instead of checking the
    pointer directly.

    Fixes: 322cf7e3a4e8 ("enic: assign affinity hint to interrupts")
    Signed-off-by: Arnd Bergmann <arnd@arndb.de>
    Reviewed-by: Nathan Chancellor <natechancellor@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    drivers/net/ethernet/cisco/enic/enic_main.c | 6 +++---
    1 file changed, 3 insertions(+), 3 deletions(-)

    diff --git a/drivers/net/ethernet/cisco/enic/enic_main.c b/drivers/net/ethernet/cisco/enic/enic_main.c
    index 9a7f70db20c7..733d9172425b 100644
    --- a/drivers/net/ethernet/cisco/enic/enic_main.c
    +++ b/drivers/net/ethernet/cisco/enic/enic_main.c
    @@ -119,7 +119,7 @@ static void enic_init_affinity_hint(struct enic *enic)

    for (i = 0; i < enic->intr_count; i++) {
    if (enic_is_err_intr(enic, i) || enic_is_notify_intr(enic, i) ||
    - (enic->msix[i].affinity_mask &&
    + (cpumask_available(enic->msix[i].affinity_mask) &&
    !cpumask_empty(enic->msix[i].affinity_mask)))
    continue;
    if (zalloc_cpumask_var(&enic->msix[i].affinity_mask,
    @@ -148,7 +148,7 @@ static void enic_set_affinity_hint(struct enic *enic)
    for (i = 0; i < enic->intr_count; i++) {
    if (enic_is_err_intr(enic, i) ||
    enic_is_notify_intr(enic, i) ||
    - !enic->msix[i].affinity_mask ||
    + !cpumask_available(enic->msix[i].affinity_mask) ||
    cpumask_empty(enic->msix[i].affinity_mask))
    continue;
    err = irq_set_affinity_hint(enic->msix_entry[i].vector,
    @@ -161,7 +161,7 @@ static void enic_set_affinity_hint(struct enic *enic)
    for (i = 0; i < enic->wq_count; i++) {
    int wq_intr = enic_msix_wq_intr(enic, i);

    - if (enic->msix[wq_intr].affinity_mask &&
    + if (cpumask_available(enic->msix[wq_intr].affinity_mask) &&
    !cpumask_empty(enic->msix[wq_intr].affinity_mask))
    netif_set_xps_queue(enic->netdev,
    enic->msix[wq_intr].affinity_mask,
    --
    2.19.1
    \
     
     \ /
      Last update: 2019-03-27 20:12    [W:2.548 / U:0.400 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site