• Lennert Buytenhek's avatar
    mwl8k: fix mwl8k_configure_filter() parameter lifetime issue · e81cd2d6
    Lennert Buytenhek authored
    mwl8k_configure_filter() passes pointers to total_flags and the
    multicast address list to a workqueue function, while there is no
    guarantee that those pointers will still be valid by the time the
    workqueue function runs.
    
    Solve this by passing total_flags by value, and by passing an
    already built multicast address setup command packet to the workqueue
    function so that we don't have to look at the multicast address list
    itself outside of mwl8k_configure_filter().
    
    Also, since ->configure_filter() can sleep now, wait synchronously
    for the worker to finish.
    Signed-off-by: default avatarLennert Buytenhek <buytenh@marvell.com>
    Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
    e81cd2d6
mwl8k.c 86 KB