• David Brownell's avatar
    [PATCH] USB: usbnet (1/9) clean up framing · f29fc259
    David Brownell authored
    This starts to prepare the core of "usbnet" to know less about various
    framing protocols that map Ethernet packets onto USB, so "minidrivers"
    can be modules that just plug into the core.
    
      - Remove some framing-specific code that cluttered the core:
    
          * net->hard_header_len records how much space to preallocate;
            now drivers that add their own framing (Net1080, GeneLink,
    	Zaurus, and RNDIS) will have smoother TX paths.  Even for
    	the drivers (Zaurus, Net1080) that need trailers.
    
          * defines new dev->hard_mtu, using this "hardware" limit to
            check changes to the link's settable "software" mtu.
    
          * now net->hard_header_len and dev->hard_mtu are set up in the
            driver bind() routines, if needed.
    
      - Transaction ID is no longer specific to the Net1080 framing;
        RNDIS needs one too.
    
      - Creates a new "usbnet.h" header with declarations that are shared
        between the core and what will be separate modules.
    
      - Plus a couple other minor tweaks, like recognizing -ESHUTDOWN
        means the keventd work should just shut itself down asap.
    
    The core code is only about 1/3 of this large file.  Splitting out the
    minidrivers into separate modules (e.g. ones for ASIX adapters,
    Zaurii and similar, CDC Ethernet, etc), in later patches, will
    improve maintainability and shrink typical runtime footprints.
    Signed-off-by: default avatarDavid Brownell <dbrownell@users.sourceforge.net>
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
    f29fc259
usbnet.c 110 KB