• Juergen Gross's avatar
    xen/netfront: disentangle tx_skb_freelist · 21631d2d
    Juergen Gross authored
    The tx_skb_freelist elements are in a single linked list with the
    request id used as link reference. The per element link field is in a
    union with the skb pointer of an in use request.
    
    Move the link reference out of the union in order to enable a later
    reuse of it for requests which need a populated skb pointer.
    
    Rename add_id_to_freelist() and get_id_from_freelist() to
    add_id_to_list() and get_id_from_list() in order to prepare using
    those for other lists as well. Define ~0 as value to indicate the end
    of a list and place that value into the link for a request not being
    on the list.
    
    When freeing a skb zero the skb pointer in the request. Use a NULL
    value of the skb pointer instead of skb_entry_is_link() for deciding
    whether a request has a skb linked to it.
    
    Remove skb_entry_set_link() and open code it instead as it is really
    trivial now.
    Signed-off-by: default avatarJuergen Gross <jgross@suse.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    21631d2d
xen-netfront.c 62.2 KB