summaryrefslogtreecommitdiffstats
path: root/lib/gen_crc64table.c
diff options
context:
space:
mode:
authorBrian Norris <briannorris@chromium.org>2019-06-25 10:40:45 -0700
committerKalle Valo <kvalo@codeaurora.org>2019-06-27 19:50:58 +0300
commit8a7f9fd8a3e09c829c9fc2a86fe2d370ebcafd95 (patch)
tree7cfce9205e8212d1ab509e7c39342c418511e67c /lib/gen_crc64table.c
parentce2e942e32e851acdae05f9772f3b7a99f6a47cb (diff)
downloadblackbird-op-linux-8a7f9fd8a3e09c829c9fc2a86fe2d370ebcafd95.tar.gz
blackbird-op-linux-8a7f9fd8a3e09c829c9fc2a86fe2d370ebcafd95.zip
mwifiex: don't disable hardirqs; just softirqs
main_proc_lock and int_lock (in mwifiex_adapter) are the only spinlocks used in hardirq contexts. The rest are only in task or softirq contexts. Convert every other lock from *_irq{save,restore}() variants to _bh() variants. This is a mechanical transformation of all spinlock usage in mwifiex using the following: Step 1: I ran this nasty sed script: sed -i -E '/spin_lock_irqsave|spin_unlock_irqrestore/ { /main_proc_lock|int_lock/! { s:(spin_(un|)lock)_irq(save|restore):\1_bh: ; # Join broken lines. :a /;$/! { N; s/\s*\n\s*//; ba } /,.*\);$/ s:,.*\):\): } }' drivers/net/wireless/marvell/mwifiex/* Step 2: Manually delete the flags / ra_list_flags args from: mwifiex_send_single_packet() mwifiex_11n_aggregate_pkt() mwifiex_send_processed_packet() which are now unused. Step 3: Apply this semantic patch (coccinelle) to remove the unused 'flags' variables: // <smpl> @@ type T; identifier i; @@ ( extern T i; | - T i; ... when != i ) // </smpl> (Usage is something like this: make coccicheck COCCI=./patch.cocci MODE=patch M=drivers/net/wireless/marvell/mwifiex/ although this skips *.h files for some reasons, so I had to massage stuff.) Testing: I've played with a variety of stress tests, including download stress tests on the same APs which caught regressions with commit 5188d5453bc9 ("mwifiex: restructure rx_reorder_tbl_lock usage"). I've primarily tested on Marvell 8997 / PCIe, although I've given 8897 / SDIO a quick spin as well. Signed-off-by: Brian Norris <briannorris@chromium.org> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
Diffstat (limited to 'lib/gen_crc64table.c')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud