• Santiago Leon's avatar
    ibmveth: fix bad UDP checksums · 45e15bb7
    Santiago Leon authored
    This patch fixes a ibmveth bug where bad UDP checksums are being transmitted
    when checksum offloading is enabled.
    The hypervisor does checksum offloading only on TCP packets, so ibmveth calls
    skb_checksum_help() for any other protocol.  The bug happens because
    the packet is being modified after the DMA map, so we would need a memory
    barrier before making the hypervisor call.  Reordering the code so that the
    DMA map happens after skb_checksum_help() has the additional advantage of
    fixing a DMA map leak if skb_checksum_help() where to fail.
    Signed-off-by: default avatarSantiago Leon <santil@us.ibm.com>
    Signed-off-by: default avatarJeff Garzik <jgarzik@redhat.com>
    45e15bb7
ibmveth.c 46.8 KB