From: Aishwarya Pant Date: Wed, 1 Mar 2017 12:36:30 +0000 (+0530) Subject: staging: dgnc: replace usleep_range with udelay X-Git-Url: http://git.cdn.openwrt.org/?a=commitdiff_plain;h=105d3b970b74d422b3af312f6f8edc7208cc8702;p=openwrt%2Fstaging%2Fblogic.git staging: dgnc: replace usleep_range with udelay udelay is impelmented using a busy-wait loop and consumes CPU cycles while usleep_range is implemented using interrupts.cls_flush_uart_write() is called after a channel lock is acquired i.e. an atomic context. Hence delay in this method should use udelay instead of usleep_range. Signed-off-by: Aishwarya Pant Signed-off-by: Greg Kroah-Hartman --- diff --git a/drivers/staging/dgnc/dgnc_cls.c b/drivers/staging/dgnc/dgnc_cls.c index 28a3e1676f07..3112c25282a7 100644 --- a/drivers/staging/dgnc/dgnc_cls.c +++ b/drivers/staging/dgnc/dgnc_cls.c @@ -609,7 +609,9 @@ static void cls_flush_uart_write(struct channel_t *ch) writeb((UART_FCR_ENABLE_FIFO | UART_FCR_CLEAR_XMIT), &ch->ch_cls_uart->isr_fcr); - usleep_range(10, 20); + + /* Must use *delay family functions in atomic context */ + udelay(10); ch->ch_flags |= (CH_TX_FIFO_EMPTY | CH_TX_FIFO_LWM); }