aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTilman Schmidt <tilman@imap.cc>2009-04-05 02:39:33 -0400
committerDavid S. Miller <davem@davemloft.net>2009-04-06 20:07:56 -0400
commit368fd81d2db26e3338c7f42778a695510aff31b3 (patch)
tree37e264f4248252bff99596105585182dd1ccc43a
parentd9677a45cfee59e2877e645762a4ddb2d1d35978 (diff)
bas_gigaset: use tasklet_hi_schedule for timing critical tasklets
The tasklets for isochronous data transfer need to run within 8 msec to avoid over/underruns, so schedule them with high priority to fix reported issues with occasional over/underruns. Signed-off-by: Tilman Schmidt <tilman@imap.cc> Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r--drivers/isdn/gigaset/bas-gigaset.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/isdn/gigaset/bas-gigaset.c b/drivers/isdn/gigaset/bas-gigaset.c
index 831ddce1467b..781c4041f7b0 100644
--- a/drivers/isdn/gigaset/bas-gigaset.c
+++ b/drivers/isdn/gigaset/bas-gigaset.c
@@ -821,7 +821,7 @@ static void read_iso_callback(struct urb *urb)
821 /* pass URB to tasklet */ 821 /* pass URB to tasklet */
822 ubc->isoindone = urb; 822 ubc->isoindone = urb;
823 ubc->isoinstatus = status; 823 ubc->isoinstatus = status;
824 tasklet_schedule(&ubc->rcvd_tasklet); 824 tasklet_hi_schedule(&ubc->rcvd_tasklet);
825 } else { 825 } else {
826 /* tasklet still busy, drop data and resubmit URB */ 826 /* tasklet still busy, drop data and resubmit URB */
827 ubc->loststatus = status; 827 ubc->loststatus = status;
@@ -888,7 +888,7 @@ static void write_iso_callback(struct urb *urb)
888 ubc->isooutovfl = ubc->isooutdone; 888 ubc->isooutovfl = ubc->isooutdone;
889 ubc->isooutdone = ucx; 889 ubc->isooutdone = ucx;
890 spin_unlock_irqrestore(&ubc->isooutlock, flags); 890 spin_unlock_irqrestore(&ubc->isooutlock, flags);
891 tasklet_schedule(&ubc->sent_tasklet); 891 tasklet_hi_schedule(&ubc->sent_tasklet);
892} 892}
893 893
894/* starturbs 894/* starturbs