• stephen hemminger's avatar
    netvsc: fix race on sub channel creation · 732e4985
    stephen hemminger authored
    The existing sub channel code did not wait for all the sub-channels
    to completely initialize. This could lead to race causing crash
    in napi_netif_del() from bad list. The existing code would send
    an init message, then wait only for the initial response that
    the init message was received. It thought it was waiting for
    sub channels but really the init response did the wakeup.
    
    The new code keeps track of the number of open channels and
    waits until that many are open.
    
    Other issues here were:
      * host might return less sub-channels than was requested.
      * the new init status is not valid until after init was completed.
    
    Fixes: b3e6b82a ("hv_netvsc: Wait for sub-channels to be processed during probe")
    Signed-off-by: default avatarStephen Hemminger <sthemmin@microsoft.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    732e4985
hyperv_net.h 35.7 KB