aboutsummaryrefslogtreecommitdiff
path: root/arch
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2013-04-08 16:10:43 -0700
committerLinus Torvalds <torvalds@linux-foundation.org>2013-04-08 16:10:43 -0700
commitf011a08c804d50eeff4abf2d308cdce492f015aa (patch)
tree6be5b5c702e042b4fbdaf3a85d3ab1f9c18d9ce9 /arch
parent79e5f05edcbf85825d19eb8a425cd6c36c6c66f1 (diff)
parent9fb2640159f9d4f5a2a9d60e490482d4cbecafdb (diff)
Merge tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/sfr/next-fixes
Pull powerpc bugfix from Stephen Rothwell: "A single BUG_ON fix for a condition that could happen for machines with certain hardware installed." * tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/sfr/next-fixes: powerpc: pSeries_lpar_hpte_remove fails from Adjunct partition being performed before the ANDCOND test
Diffstat (limited to 'arch')
-rw-r--r--arch/powerpc/platforms/pseries/lpar.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/arch/powerpc/platforms/pseries/lpar.c b/arch/powerpc/platforms/pseries/lpar.c
index 0da39fed355..299731e9036 100644
--- a/arch/powerpc/platforms/pseries/lpar.c
+++ b/arch/powerpc/platforms/pseries/lpar.c
@@ -186,7 +186,13 @@ static long pSeries_lpar_hpte_remove(unsigned long hpte_group)
(0x1UL << 4), &dummy1, &dummy2);
if (lpar_rc == H_SUCCESS)
return i;
- BUG_ON(lpar_rc != H_NOT_FOUND);
+
+ /*
+ * The test for adjunct partition is performed before the
+ * ANDCOND test. H_RESOURCE may be returned, so we need to
+ * check for that as well.
+ */
+ BUG_ON(lpar_rc != H_NOT_FOUND && lpar_rc != H_RESOURCE);
slot_offset++;
slot_offset &= 0x7;