Thread (29 messages) 29 messages, 3 authors, 2018-02-16

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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help