qemu/hw/net
Roy Franz c444dfabfc Fix lan9118 buffer length handling
The 9118 ethernet controller supports transmission of multi-buffer packets
with arbitrary byte alignment of the start and end bytes.  All writes to
the packet fifo are 32 bits, so the controller discards bytes at the beginning
and end of each buffer based on the 'Data start offset' and 'Buffer size'
of the TX command 'A' format.

This patch uses the provided buffer length to limit the bytes transmitted.
Previously all the bytes of the last 32-bit word written to the TX fifo
were added to the internal transmit buffer structure resulting in more bytes
being transmitted than were submitted to the hardware in the command.  This
resulted in extra bytes being inserted into the middle of multi-buffer
packets when the non-final buffers had non-32bit aligned ending addresses.

Signed-off-by: Roy Franz <roy.franz@linaro.org>
Reviewed-by: Peter Crosthwaite <peter.crosthwaite@xilinx.com>
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
2014-01-27 15:44:06 +01:00
..
cadence_gem.c net/cadence_gem: Don't rx packets when no rx buffer available 2013-12-10 13:28:50 +00:00
dp8393x.c aio / timers: Switch entire codebase to the new timer API 2013-08-22 19:14:24 +02:00
e1000.c Revert "e1000/rtl8139: update HMP NIC when every bit is written" 2013-11-21 16:28:27 +02:00
e1000_regs.h hw: move private headers to hw/ subdirectories. 2013-04-08 18:13:16 +02:00
eepro100.c hw: set interrupts using pci irq wrappers 2013-10-14 17:11:45 +03:00
etraxfs_eth.c hw: cannot_instantiate_with_device_add_yet due to pointer props 2013-12-24 17:27:17 +01:00
lan9118.c Fix lan9118 buffer length handling 2014-01-27 15:44:06 +01:00
lance.c hw: cannot_instantiate_with_device_add_yet due to pointer props 2013-12-24 17:27:17 +01:00
Makefile.objs hw: move NICs to hw/net/, configure via default-configs/ 2013-04-08 18:13:13 +02:00
mcf_fec.c memory: add owner argument to initialization functions 2013-07-04 17:42:44 +02:00
milkymist-minimac2.c milkymist-minimac2: QOM cast cleanup 2013-07-29 21:06:59 +02:00
mipsnet.c mipsnet: QOM cast cleanup 2013-07-29 21:07:02 +02:00
ne2000-isa.c devices: Associate devices to their logical category 2013-07-29 10:37:09 -05:00
ne2000.c bswap.h: Remove le32_to_cpupu() 2013-11-05 19:57:46 -08:00
ne2000.h ne2000: pass device to ne2000_setup_io, use it as owner 2013-07-04 17:42:46 +02:00
opencores_eth.c opencores_eth: QOM cast cleanup 2013-07-29 21:07:02 +02:00
pcnet-pci.c pci, pc, acpi fixes, enhancements 2013-10-31 16:58:32 +01:00
pcnet.c aio / timers: Switch entire codebase to the new timer API 2013-08-22 19:14:24 +02:00
pcnet.h hw: move private headers to hw/ subdirectories. 2013-04-08 18:13:16 +02:00
rtl8139.c Revert "e1000/rtl8139: update HMP NIC when every bit is written" 2013-11-21 16:28:27 +02:00
smc91c111.c smc91c111: Fix receive starvation 2013-11-15 13:25:39 +01:00
spapr_llan.c spapr: add vio-bus devices to categories 2013-11-08 04:33:18 +01:00
stellaris_enet.c stellaris_enet: Fix NetClientInfo::cleanup 2013-07-29 21:06:59 +02:00
vhost_net.c virtio: remove virtiobindings. 2013-04-24 11:50:20 -05:00
virtio-net.c Merge remote-tracking branch 'bonzini/virtio' into staging 2013-12-13 11:10:33 -08:00
vmware_utils.h
vmxnet3.c hw/vmxnet3: set interrupts using pci irq wrappers 2013-10-14 17:11:45 +03:00
vmxnet3.h vmxnet3: Eliminate __packed redefined warning 2013-09-06 17:25:55 +02:00
vmxnet_debug.h
vmxnet_rx_pkt.c
vmxnet_rx_pkt.h
vmxnet_tx_pkt.c misc: Use g_assert_not_reached for code which is expected to be unreachable 2013-07-27 11:22:54 +04:00
vmxnet_tx_pkt.h
xen_nic.c
xgmac.c xgmac: QOM cast cleanup 2013-07-29 21:07:00 +02:00
xilinx_axienet.c hw: Remove assert_no_error usages 2014-01-06 15:02:30 -05:00
xilinx_ethlite.c xilinx_ethlite: QOM cast cleanup 2013-07-29 21:07:00 +02:00