[svn-commits] sruffell: linux/trunk r6218 - /linux/trunk/drivers/dahdi/wctc4xxp/base.c

SVN commits to the Digium repositories svn-commits at lists.digium.com
Mon Mar 23 18:48:25 CDT 2009


Author: sruffell
Date: Mon Mar 23 18:48:22 2009
New Revision: 6218

URL: http://svn.digium.com/svn-view/dahdi?view=rev&rev=6218
Log:
Make sure that messages sitting in the outbound queue cause the timer to
reschedule.

Modified:
    linux/trunk/drivers/dahdi/wctc4xxp/base.c

Modified: linux/trunk/drivers/dahdi/wctc4xxp/base.c
URL: http://svn.digium.com/svn-view/dahdi/linux/trunk/drivers/dahdi/wctc4xxp/base.c?view=diff&rev=6218&r1=6217&r2=6218
==============================================================================
--- linux/trunk/drivers/dahdi/wctc4xxp/base.c (original)
+++ linux/trunk/drivers/dahdi/wctc4xxp/base.c Mon Mar 23 18:48:22 2009
@@ -3025,6 +3025,7 @@
 	struct tcb *cmd, *temp;
 	LIST_HEAD(cmds_to_retry);
 	const int MAX_RETRIES = 5;
+	int reschedule_timer = 0;
 
 	service_tx_ring(wc);
 
@@ -3067,12 +3068,16 @@
 				  "still on descriptor list.\n");
 				cmd->timeout = jiffies + HZ/4;
 				wctc4xxp_transmit_demand_poll(wc);
+				reschedule_timer = 1;
 			}
 		}
 	}
 	spin_unlock(&wc->cmd_list_lock);
 
-	wctc4xxp_send_commands(wc, &cmds_to_retry);
+	if (list_empty(&cmds_to_retry) && reschedule_timer)
+		mod_timer(&wc->watchdog, jiffies + HZ/2);
+	else if (!list_empty(&cmds_to_retry))
+		wctc4xxp_send_commands(wc, &cmds_to_retry);
 }
 
 /**




More information about the svn-commits mailing list