• Alex Williamson's avatar
    virtio_net: Add a virtqueue for outbound control commands · 2a41f71d
    Alex Williamson authored
    This will be used for RX mode, MAC filter table, VLAN filtering, etc...
    
    The control transaction consists of one or more "out" sg entries and
    one or more "in" sg entries.  The first out entry contains a header
    defining the class and command.  Additional out entries may provide
    data for the command.  The last in entry provides a status response
    back from the command.
    
    Virtqueues typically run asynchronous, running a callback function
    when there's data in the channel.  We can't readily make use of this
    in the command paths where we need to use this.  Instead, we kick
    the virtqueue and spin.  The kick causes an I/O write, triggering an
    immediate trap into the hypervisor.
    Signed-off-by: default avatarAlex Williamson <alex.williamson@hp.com>
    Acked-by: default avatarRusty Russell <rusty@rustcorp.com.au>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    2a41f71d
virtio_net.c 22.8 KB