mirror of https://github.com/xemu-project/xemu.git
rtl8139: cleanup FCS calculation
clean out ifdef's around ethernet checksum calculation Signed-off-by: Benjamin Poirier <benjamin.poirier@gmail.com> Acked-by: Igor V. Kovalenko <igor.v.kovalenko@gmail.com> Cc: Jason Wang <jasowang@redhat.com> Cc: Michael S. Tsirkin <mst@redhat.com> Cc: Blue Swirl <blauwirbel@gmail.com> Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
This commit is contained in:
parent
d6e58090fe
commit
2c406b8fc8
20
hw/rtl8139.c
20
hw/rtl8139.c
|
@ -47,6 +47,9 @@
|
||||||
* Darwin)
|
* Darwin)
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
/* For crc32 */
|
||||||
|
#include <zlib.h>
|
||||||
|
|
||||||
#include "hw.h"
|
#include "hw.h"
|
||||||
#include "pci.h"
|
#include "pci.h"
|
||||||
#include "qemu-timer.h"
|
#include "qemu-timer.h"
|
||||||
|
@ -62,14 +65,6 @@
|
||||||
/* debug RTL8139 card C+ mode only */
|
/* debug RTL8139 card C+ mode only */
|
||||||
//#define DEBUG_RTL8139CP 1
|
//#define DEBUG_RTL8139CP 1
|
||||||
|
|
||||||
/* Calculate CRCs properly on Rx packets */
|
|
||||||
#define RTL8139_CALCULATE_RXCRC 1
|
|
||||||
|
|
||||||
#if defined(RTL8139_CALCULATE_RXCRC)
|
|
||||||
/* For crc32 */
|
|
||||||
#include <zlib.h>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#define SET_MASKED(input, mask, curr) \
|
#define SET_MASKED(input, mask, curr) \
|
||||||
( ( (input) & ~(mask) ) | ( (curr) & (mask) ) )
|
( ( (input) & ~(mask) ) | ( (curr) & (mask) ) )
|
||||||
|
|
||||||
|
@ -1030,11 +1025,7 @@ static ssize_t rtl8139_do_receive(VLANClientState *nc, const uint8_t *buf, size_
|
||||||
}
|
}
|
||||||
|
|
||||||
/* write checksum */
|
/* write checksum */
|
||||||
#if defined (RTL8139_CALCULATE_RXCRC)
|
|
||||||
val = cpu_to_le32(crc32(0, buf, size));
|
val = cpu_to_le32(crc32(0, buf, size));
|
||||||
#else
|
|
||||||
val = 0;
|
|
||||||
#endif
|
|
||||||
cpu_physical_memory_write( rx_addr+size, (uint8_t *)&val, 4);
|
cpu_physical_memory_write( rx_addr+size, (uint8_t *)&val, 4);
|
||||||
|
|
||||||
/* first segment of received packet flag */
|
/* first segment of received packet flag */
|
||||||
|
@ -1136,12 +1127,7 @@ static ssize_t rtl8139_do_receive(VLANClientState *nc, const uint8_t *buf, size_
|
||||||
rtl8139_write_buffer(s, buf, size);
|
rtl8139_write_buffer(s, buf, size);
|
||||||
|
|
||||||
/* write checksum */
|
/* write checksum */
|
||||||
#if defined (RTL8139_CALCULATE_RXCRC)
|
|
||||||
val = cpu_to_le32(crc32(0, buf, size));
|
val = cpu_to_le32(crc32(0, buf, size));
|
||||||
#else
|
|
||||||
val = 0;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
rtl8139_write_buffer(s, (uint8_t *)&val, 4);
|
rtl8139_write_buffer(s, (uint8_t *)&val, 4);
|
||||||
|
|
||||||
/* correct buffer write pointer */
|
/* correct buffer write pointer */
|
||||||
|
|
Loading…
Reference in New Issue