iommu/vt-d: Clear PPR bit to ensure we get more page request interrupts
authorDavid Woodhouse <David.Woodhouse@intel.com>
Mon, 15 Feb 2016 12:42:38 +0000 (12:42 +0000)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 25 Feb 2016 20:01:22 +0000 (12:01 -0800)
commit2231e5748746cd57df389521397e1c7f91882077
tree98cb71a2a16ffa36dc248da0928f124ce44862df
parentdb3ac35cbd310b3ce2e668f82eb6d0c77cc10b15
iommu/vt-d: Clear PPR bit to ensure we get more page request interrupts

commit 46924008273ed03bd11dbb32136e3da4cfe056e1 upstream.

According to the VT-d specification we need to clear the PPR bit in
the Page Request Status register when handling page requests, or the
hardware won't generate any more interrupts.

This wasn't actually necessary on SKL/KBL (which may well be the
subject of a hardware erratum, although it's harmless enough). But
other implementations do appear to get it right, and we only ever get
one interrupt unless we clear the PPR bit.

Reported-by: CQ Tang <cq.tang@intel.com>
Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/iommu/intel-svm.c
include/linux/intel-iommu.h