Messages in this thread | | | From | Brian Norris <> | Date | Tue, 4 Jun 2019 13:57:27 -0700 | Subject | Re: [EXT] Re: [4.20 PATCH] Revert "mwifiex: restructure rx_reorder_tbl_lock usage" |
| |
Hi Ganapathi,
On Mon, Jun 3, 2019 at 8:04 PM Ganapathi Bhat <gbhat@marvell.com> wrote: > > There are a few possible ways to handle this: > > (a) prevent processing softirqs in that context; e.g., with > > local_bh_disable(). This seems somewhat of a hack. > > (Side note: I think most of the locks in this driver really could be > > spin_lock_bh(), not spin_lock_irqsave() -- we don't really care > > about hardirq context for 99% of these locks.) > > (b) restructure so that packet processing (e.g., netif_rx_ni()) is done > > outside of the spinlock. > > > > It's actually not that hard to do (b). You can just queue your skb's up in a > > temporary sk_buff_head list and process them all at once after you've > > finished processing the reorder table. I have a local patch to do this, and I > > might send it your way if I can give it a bit more testing. > > OK; That will be good; We will run a complete test after the patch; (OR we can work on this, share for review);
I gave my work another round of testing and submitted it here:
https://patchwork.kernel.org/cover/10976089/ [PATCH 0/2] mwifiex: spinlock usage improvements
Feel free to give it a spin. It doesn't completely resolve everything you were trying to fix, but I believe it helps nudge things in the right direction.
Brian
| |