This v2 split off the opmode handling sharing code into its own series, it however depends on the request_module_nowait() change. The sharing of the opmode handling makes it easier to share fixes when dealing with opmode handling on devices. It should also hopefully make the code easier to grok. Lastly, since we are moving things to a workqueue naturally the module_init() for iwlmvm is not offloaded, and so this should reduce the boot time by a bit. As per the average of systemd-analyze on 5 boots using next-20170221 as base: next-20170221: Startup finished in 2.6142s (kernel) + 5.1916s (initrd) + 10.8968s (userspace) = 18.7036s After these patches: Startup finished in 2.5468s (kernel) + 4.9536s (initrd) + 10.798s (userspace) = 18.2994s Luis R. Rodriguez (2): iwlwifi: share opmode start work code iwlwifi: convert final opmode work into a workqueue drivers/net/wireless/intel/iwlwifi/iwl-drv.c | 93 +++++++++++++++++++--------- 1 file changed, 64 insertions(+), 29 deletions(-) -- 2.11.0