• Mitch Williams's avatar
    i40e: KISS the client interface · 0ef2d5af
    Mitch Williams authored
    (KISS is Keep It Simple, Stupid. Or is it?)
    
    The client interface vastly overengineered for what it needs to do.
    It was originally designed to support multiple clients on multiple
    netdevs, possibly even with multiple drivers. None of this happened,
    and now we know that there will only ever be one client for i40e
    (i40iw) and one for i40evf (i40iwvf). So, time for some KISS. Since
    i40e and i40evf are a Dynasty, we'll simplify this one to match the
    VF interface.
    
    First, be a Destroyer and remove all of the lists and locks required
    to support multiple clients. Keep one static around to keep track of
    one client, and track the client instances for each netdev in the
    driver's pf (or adapter) struct. Now it's Almost Human.
    
    Since we already know the client type is iWarp, get rid of any checks
    for this. Same for VSI type - it's always going to be the same type,
    so it's just a Parasite.
    
    While we're at it, fix up some comments. This makes the function
    headers actually match the functions.
    
    These changes reduce code complexity, simplify maintenance,
    squash some lurking timing bugs, and allow us to Rock and Roll All
    Nite.
    
    Change-ID: I1ea79948ad73b8685272451440a34507f9a9012e
    Signed-off-by: default avatarMitch Williams <mitch.a.williams@intel.com>
    Signed-off-by: default avatarJacob Keller <jacob.e.keller@intel.com>
    Tested-by: default avatarAndrew Bowers <andrewx.bowers@intel.com>
    Signed-off-by: default avatarJeff Kirsher <jeffrey.t.kirsher@intel.com>
    0ef2d5af
i40e_main.c 330 KB