This is the second version of this work. The first one can be found here: https://lore.kernel.org/r/20200313174701.148376-1-bigeasy@xxxxxxxxxxxxx Changes since V1: - Split the PCI/switchtec patch (picked up the fix from Logan) and reworked the change log. - Addressed Linus feedback vs. completions. Most of the places which had open coded completion variants have been analysed and fixed up to use the regular interfaces. The PS3 one got converted by Peter Zijlstra to rcu_wait(). Add explanation in the change log why swait actually fits the completion semantics. - Addressed Randys feedback on documentation Thanks, tglx