Re: [v5 4/8] rsi: add coex support
From: Kalle Valo <hidden>
Date: 2018-02-01 07:08:00
Also in:
linux-wireless
Amitkumar Karwar [off-list ref] writes:
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>
[...]
+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? -- Kalle Valo