• Paolo \'Blaisorblade\' Giarrusso's avatar
    [PATCH] uml: fix critical IP checksum corruption · bc8b70fc
    Paolo \'Blaisorblade\' Giarrusso authored
    From: Lars Ellenberg <Lars.Ellenberg@linbit.com>
    
    Add a memory barrier to the assembly checksum code - the code was copied
    straight from the i386 one, and the patch resyncs the code with the
    original.  I'll check if the original code can be included directly (i.e.
    "#include") after 2.6.9.
    
    Without this patch, every 2.6 UML release corrupts the checksum of every
    UDP fragmented packet with size >= MTU (verified by various people, we all
    agree on this issue; nobody reported "Works fine here").  The corrupted
    packets are not accepted, thus blocking any kind of communication with
    large-sized UDP packets.
    
    In fact, I've even dissected the UML -> host traffic before and after this
    patch with Ethereal - and it always reported an incorrect checksum for
    fragmented UDP packets before and always correct after applying the patch.
    Signed-off-by: default avatarPaolo 'Blaisorblade' Giarrusso <blaisorblade_spam@yahoo.it>
    Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
    bc8b70fc
checksum.h 5.44 KB