summaryrefslogtreecommitdiffstats
path: root/drivers/parisc
diff options
context:
space:
mode:
authorSven Schnelle <svens@stackframe.org>2020-08-11 18:19:19 +0200
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2020-08-19 08:15:07 +0200
commit2310f713e110b66e8ee61636e7d40b4fa9068c97 (patch)
tree61e1be0a5cce7cabe737799066c4762f175ec460 /drivers/parisc
parentc46716b16d6db3d51b745c18ea3fb1ff01be108e (diff)
downloadlinux-stable-2310f713e110b66e8ee61636e7d40b4fa9068c97.tar.gz
linux-stable-2310f713e110b66e8ee61636e7d40b4fa9068c97.tar.bz2
linux-stable-2310f713e110b66e8ee61636e7d40b4fa9068c97.zip
parisc: mask out enable and reserved bits from sba imask
commit 5b24993c21cbf2de11aff077a48c5cb0505a0450 upstream. When using kexec the SBA IOMMU IBASE might still have the RE bit set. This triggers a WARN_ON when trying to write back the IBASE register later, and it also makes some mask calculations fail. Cc: <stable@vger.kernel.org> Signed-off-by: Sven Schnelle <svens@stackframe.org> Signed-off-by: Helge Deller <deller@gmx.de> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/parisc')
-rw-r--r--drivers/parisc/sba_iommu.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/parisc/sba_iommu.c b/drivers/parisc/sba_iommu.c
index 6dd1780a5885..0f19cc75cc0c 100644
--- a/drivers/parisc/sba_iommu.c
+++ b/drivers/parisc/sba_iommu.c
@@ -1291,7 +1291,7 @@ sba_ioc_init_pluto(struct parisc_device *sba, struct ioc *ioc, int ioc_num)
** (one that doesn't overlap memory or LMMIO space) in the
** IBASE and IMASK registers.
*/
- ioc->ibase = READ_REG(ioc->ioc_hpa + IOC_IBASE);
+ ioc->ibase = READ_REG(ioc->ioc_hpa + IOC_IBASE) & ~0x1fffffULL;
iova_space_size = ~(READ_REG(ioc->ioc_hpa + IOC_IMASK) & 0xFFFFFFFFUL) + 1;
if ((ioc->ibase < 0xfed00000UL) && ((ioc->ibase + iova_space_size) > 0xfee00000UL)) {