• Zoltan Kiss's avatar
    xen-netback: Handle guests with too many frags · e3377f36
    Zoltan Kiss authored
    Xen network protocol had implicit dependency on MAX_SKB_FRAGS. Netback has to
    handle guests sending up to XEN_NETBK_LEGACY_SLOTS_MAX slots. To achieve that:
    - create a new skb
    - map the leftover slots to its frags (no linear buffer here!)
    - chain it to the previous through skb_shinfo(skb)->frag_list
    - map them
    - copy and coalesce the frags into a brand new one and send it to the stack
    - unmap the 2 old skb's pages
    
    It's also introduces new stat counters, which help determine how often the guest
    sends a packet with more than MAX_SKB_FRAGS frags.
    
    NOTE: if bisect brought you here, you should apply the series up until
    "xen-netback: Timeout packets in RX path", otherwise malicious guests can block
    other guests by not releasing their sent packets.
    Signed-off-by: default avatarZoltan Kiss <zoltan.kiss@citrix.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    e3377f36
netback.c 47.5 KB