Return-Path: MIME-Version: 1.0 In-Reply-To: <87inbhmblb.fsf@purkki.adurom.net> References: <1513168977-2121-1-git-send-email-amitkarwar@gmail.com> <1513168977-2121-5-git-send-email-amitkarwar@gmail.com> <87inbhmblb.fsf@purkki.adurom.net> From: Amitkumar Karwar Date: Tue, 13 Feb 2018 16:10:47 +0530 Message-ID: Subject: Re: [v5 4/8] rsi: add coex support To: Kalle Valo Cc: Marcel Holtmann , linux-wireless , Amitkumar Karwar , Prameela Rani Garnepudi , "open list:BLUETOOTH DRIVERS" , Siva Rebbagondla Content-Type: text/plain; charset="UTF-8" List-ID: On Thu, Feb 1, 2018 at 12:38 PM, Kalle Valo wrote: > Amitkumar Karwar writes: > >> From: Prameela Rani Garnepudi >> >> 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 >> Signed-off-by: Siva Rebbagondla >> Signed-off-by: Amitkumar Karwar > > [...] > >> +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