eepro100: Drop nic_can_receive
nic_receive already checks the conditions and drop packets if false.
Due to the new semantics since 6e99c63
("net/socket: Drop
net_socket_can_send"), having .can_receive returning 0 requires us to
explicitly flush the queued packets when the conditions are becoming
true, but queuing the packets when guest driver is not ready doesn't
make much sense.
Signed-off-by: Fam Zheng <famz@redhat.com>
Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
Reviewed-by: Jason Wang <jasowang@redhat.com>
Message-id: 1436955553-22791-4-git-send-email-famz@redhat.com
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
This commit is contained in:
parent
b0ba0b9b6b
commit
363db4b249
|
@ -1617,16 +1617,6 @@ static const MemoryRegionOps eepro100_ops = {
|
||||||
.endianness = DEVICE_LITTLE_ENDIAN,
|
.endianness = DEVICE_LITTLE_ENDIAN,
|
||||||
};
|
};
|
||||||
|
|
||||||
static int nic_can_receive(NetClientState *nc)
|
|
||||||
{
|
|
||||||
EEPRO100State *s = qemu_get_nic_opaque(nc);
|
|
||||||
TRACE(RXTX, logout("%p\n", s));
|
|
||||||
return get_ru_state(s) == ru_ready;
|
|
||||||
#if 0
|
|
||||||
return !eepro100_buffer_full(s);
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
static ssize_t nic_receive(NetClientState *nc, const uint8_t * buf, size_t size)
|
static ssize_t nic_receive(NetClientState *nc, const uint8_t * buf, size_t size)
|
||||||
{
|
{
|
||||||
/* TODO:
|
/* TODO:
|
||||||
|
@ -1844,7 +1834,6 @@ static void pci_nic_uninit(PCIDevice *pci_dev)
|
||||||
static NetClientInfo net_eepro100_info = {
|
static NetClientInfo net_eepro100_info = {
|
||||||
.type = NET_CLIENT_OPTIONS_KIND_NIC,
|
.type = NET_CLIENT_OPTIONS_KIND_NIC,
|
||||||
.size = sizeof(NICState),
|
.size = sizeof(NICState),
|
||||||
.can_receive = nic_can_receive,
|
|
||||||
.receive = nic_receive,
|
.receive = nic_receive,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue