Re: [v5 4/8] rsi: add coex support
From: Amitkumar Karwar <hidden>
Date: 2018-02-13 10:40:47
Also in:
linux-bluetooth
On Thu, Feb 1, 2018 at 12:38 PM, Kalle Valo [off-list ref] wrote:
Amitkumar Karwar [off-list ref] writes:quoted
From: Prameela Rani Garnepudi <redacted> With BT support, driver has to handle two streams of data (i.e. wlan and BT). Actual coex implementation is in firmware. Coex module just schedule the packets to firmware by taking them from the corresponding paths. Structures for module and protocol operations are introduced for this purpose. Protocol operations structure is global structure which can be shared among different modules. Initialization of coex and operating mode values is moved to rsi_91x_init(). Signed-off-by: Prameela Rani Garnepudi <redacted> Signed-off-by: Siva Rebbagondla <redacted> Signed-off-by: Amitkumar Karwar <redacted>[...]quoted
+static void rsi_coex_sched_tx_pkts(struct rsi_coex_ctrl_block *coex_cb) +{ + enum rsi_coex_queues coex_q; + struct sk_buff *skb; + + while (1) { + coex_q = rsi_coex_determine_coex_q(coex_cb); + rsi_dbg(INFO_ZONE, "queue = %d\n", coex_q); + + if (coex_q == RSI_COEX_Q_INVALID) { + rsi_dbg(DATA_TX_ZONE, "No more pkt\n"); + break; + } + + if (coex_q == RSI_COEX_Q_BT) + skb = skb_dequeue(&coex_cb->coex_tx_qs[RSI_COEX_Q_BT]); + } +}Neverending loops are dangerous in kernel. Can you put a limit so that if there's a bug the loop will not run forever?
I will get rid of while(1) in v6 patch series. Regards, Amitkumar