• Neil Horman's avatar
    sis900: Allocate rx replacement buffer before rx operation · b748d9e3
    Neil Horman authored
    	The sis900 driver appears to have a bug in which the receive routine
    passes the skbuff holding the received frame to the network stack before
    refilling the buffer in the rx ring.  If a new skbuff cannot be allocated, the
    driver simply leaves a hole in the rx ring, which causes the driver to stop
    receiving frames and become non-recoverable without an rmmod/insmod according to
    reporters.  This patch reverses that order, attempting to allocate a replacement
    buffer first, and receiving the new frame only if one can be allocated.  If no
    skbuff can be allocated, the current skbuf in the rx ring is recycled, dropping
    the current frame, but keeping the NIC operational.
    Signed-off-by: default avatarNeil Horman <nhorman@tuxdriver.com>
    Signed-off-by: default avatarJeff Garzik <jeff@garzik.org>
    b748d9e3
sis900.c 72.3 KB