[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] [linux-2.6.18-xen] netback: Fixes for delayed copy of tx network packets.
# 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
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |