|
|
|
|
|
|
|
|
|
|
xen-changelog
[Xen-changelog] [linux-2.6.18-xen] netback: Fixes for delayed copy of tx
# HG changeset patch
# User Keir Fraser <keir.fraser@xxxxxxxxxx>
# Date 1260195268 0
# Node ID 1a97bd686258aabf7f57844dc77a00e0040ddab9
# Parent 2641f0d17eaa22811883aee22f399db46cbff06f
netback: Fixes for delayed copy of tx network packets.
- Should call net_tx_action_dealloc() even when dealloc ring is
empty, as there may in any case be work to do on the
pending_inuse list.
- Should not exit directly from the middle of the tx_action tasklet,
as the tx_pending_timer should always be checked and updated at the
end of the tasklet.
Signed-off-by: Keir Fraser <keir.fraser@xxxxxxxxxx>
---
drivers/xen/netback/netback.c | 6 +++---
1 files changed, 3 insertions(+), 3 deletions(-)
diff -r 2641f0d17eaa -r 1a97bd686258 drivers/xen/netback/netback.c
--- a/drivers/xen/netback/netback.c Thu Dec 03 13:53:06 2009 +0000
+++ b/drivers/xen/netback/netback.c Mon Dec 07 14:14:28 2009 +0000
@@ -1233,8 +1233,7 @@ static void net_tx_action(unsigned long
unsigned int data_len;
int ret, work_to_do;
- if (dealloc_cons != dealloc_prod)
- net_tx_action_dealloc();
+ net_tx_action_dealloc();
mop = tx_map_ops;
while (((NR_PENDING_REQS + MAX_SKB_FRAGS) < MAX_PENDING_REQS) &&
@@ -1388,7 +1387,7 @@ static void net_tx_action(unsigned long
}
if (mop == tx_map_ops)
- return;
+ goto out;
ret = HYPERVISOR_grant_table_op(
GNTTABOP_map_grant_ref, tx_map_ops, mop - tx_map_ops);
@@ -1455,6 +1454,7 @@ static void net_tx_action(unsigned long
netif->dev->last_rx = jiffies;
}
+ out:
if (netbk_copy_skb_mode == NETBK_DELAYED_COPY_SKB &&
!list_empty(&pending_inuse_head)) {
struct netbk_tx_pending_inuse *oldest;
_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog
|
<Prev in Thread] |
Current Thread |
[Next in Thread> |
- [Xen-changelog] [linux-2.6.18-xen] netback: Fixes for delayed copy of tx network packets.,
Xen patchbot-linux-2.6.18-xen <=
|
|
|
|
|