diff options
author | H. Peter Anvin <hpa@zytor.com> | 2008-12-12 14:36:02 -0800 |
---|---|---|
committer | H. Peter Anvin <hpa@zytor.com> | 2008-12-14 13:56:44 -0800 |
commit | e2ab9215d792d07cfb725de290f416e331b87627 (patch) | |
tree | 7fbf2b3f921ef78b277f5d89c1a9a14960a49edc /gpxe/src/drivers/net/virtio-net.c | |
parent | 36390f9712ac56be1dce7a635322bd96e15620c1 (diff) | |
download | syslinux-kkpxe.tar.gz |
gPXE: update to the "kkpxe" branchkkpxe
Update gPXE to the "kkpxe" branch, an experimental branch of the gPXE
tree which should let us eliminate the gpxelinux-specific hacks.
Specifically, this corresponds to checkin
0963c883a9402bd5846e687a100e196f7e8a2ef7 of
git://git.etherboot.org/scm/people/mcb30/gpxe.git.
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
Diffstat (limited to 'gpxe/src/drivers/net/virtio-net.c')
-rw-r--r-- | gpxe/src/drivers/net/virtio-net.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/gpxe/src/drivers/net/virtio-net.c b/gpxe/src/drivers/net/virtio-net.c index 4ec154df..68c84d79 100644 --- a/gpxe/src/drivers/net/virtio-net.c +++ b/gpxe/src/drivers/net/virtio-net.c @@ -187,6 +187,8 @@ static int vring_get_buf(int queue_index, unsigned int *len) u32 id; int ret; + BUG_ON(!vring_more_used(queue_index)); + elem = &vr->used->ring[last_used_idx[queue_index] % vr->num]; wmb(); id = elem->id; @@ -365,6 +367,8 @@ static void virtnet_transmit(struct nic *nic, const char *destaddr, vring_add_buf(TX_INDEX, 0, 0); + vring_kick(nic, TX_INDEX, 1); + /* * http://www.etherboot.org/wiki/dev/devmanual * @@ -372,13 +376,11 @@ static void virtnet_transmit(struct nic *nic, const char *destaddr, * before returning from this routine" */ - while (vring_more_used(TX_INDEX)) { + while (!vring_more_used(TX_INDEX)) { mb(); udelay(10); } - vring_kick(nic, TX_INDEX, 1); - /* free desc */ (void)vring_get_buf(TX_INDEX, NULL); |