lkml.org 
[lkml]   [2018]   [Oct]   [25]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH AUTOSEL 4.9 54/98] staging: wilc1000: Fix problem with wrong vif index
    Date
    From: Aditya Shankar <aditya.shankar@microchip.com>

    [ Upstream commit 0e490657c7214cce33fbca3d88227298c5c968ae ]

    The vif->idx value is always 0 for two interfaces.

    wl->vif_num = 0;

    loop {
    ...

    vif->idx = wl->vif_num;
    ...
    wl->vif_num = i;
    ....
    i++;
    ...
    }

    At present, vif->idx is assigned the value of wl->vif_num
    at the beginning of this block and device is initialized
    based on this index value.
    In the next iteration, wl->vif_num is still 0 as it is only updated
    later but gets assigned to vif->idx in the beginning. This causes problems
    later when we try to reference a particular interface and also while
    configuring the firmware.

    This patch moves the assignment to vif->idx from the beginning
    of the block to after wl->vif_num is updated with latest value of i.

    Fixes: commit 735bb39ca3be ("staging: wilc1000: simplify vif[i]->ndev accesses")
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Aditya Shankar <aditya.shankar@microchip.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    drivers/staging/wilc1000/linux_wlan.c | 3 ++-
    1 file changed, 2 insertions(+), 1 deletion(-)

    diff --git a/drivers/staging/wilc1000/linux_wlan.c b/drivers/staging/wilc1000/linux_wlan.c
    index 07d6e4824a9d..2e5e3b368532 100644
    --- a/drivers/staging/wilc1000/linux_wlan.c
    +++ b/drivers/staging/wilc1000/linux_wlan.c
    @@ -1260,11 +1260,12 @@ int wilc_netdev_init(struct wilc **wilc, struct device *dev, int io_type,
    else
    strcpy(ndev->name, "p2p%d");

    - vif->idx = wl->vif_num;
    vif->wilc = *wilc;
    vif->ndev = ndev;
    wl->vif[i] = vif;
    wl->vif_num = i;
    + vif->idx = wl->vif_num;
    +
    ndev->netdev_ops = &wilc_netdev_ops;

    {
    --
    2.17.1
    \
     
     \ /
      Last update: 2018-10-25 16:40    [W:3.484 / U:0.004 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site