From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752463AbdBJMy1 (ORCPT ); Fri, 10 Feb 2017 07:54:27 -0500 Received: from shadbolt.e.decadent.org.uk ([88.96.1.126]:38963 "EHLO shadbolt.e.decadent.org.uk" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751477AbdBJMy0 (ORCPT ); Fri, 10 Feb 2017 07:54:26 -0500 Message-ID: <1486731108.2900.68.camel@decadent.org.uk> Subject: Re: [PATCH 4.4 12/23] ARC: [arcompact] handle unaligned access delay slot corner case From: Ben Hutchings To: Vineet Gupta Cc: stable@vger.kernel.org, Greg Kroah-Hartman , linux-kernel@vger.kernel.org Date: Fri, 10 Feb 2017 12:51:48 +0000 In-Reply-To: <20170131053625.463159338@linuxfoundation.org> References: <20170131053624.926643555@linuxfoundation.org> <20170131053625.463159338@linuxfoundation.org> Content-Type: multipart/signed; micalg="pgp-sha512"; protocol="application/pgp-signature"; boundary="=-6pCMuhKPjDYHTVevGwdE" X-Mailer: Evolution 3.22.4-1 Mime-Version: 1.0 X-SA-Exim-Connect-IP: 82.70.136.246 X-SA-Exim-Mail-From: ben@decadent.org.uk X-SA-Exim-Scanned: No (on shadbolt.decadent.org.uk); SAEximRunCond expanded to false Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org --=-6pCMuhKPjDYHTVevGwdE Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Tue, 2017-01-31 at 06:37 +0100, Greg Kroah-Hartman wrote: > 4.4-stable review patch.=C2=A0=C2=A0If anyone has any objections, please = let me know. >=20 > ------------------ >=20 > From: Vineet Gupta >=20 > commit 9aed02feae57bf7a40cb04ea0e3017cb7a998db4 upstream. >=20 > After emulating an unaligned access in delay slot of a branch, we > pretend as the delay slot never happened - so return back to actual > branch target (or next PC if branch was not taken). >=20 > Curently we did this by handling STATUS32.DE, we also need to clear the > BTA.T bit, which is disregarded when returning from original misaligned > exception, but could cause weirdness if it took the interrupt return > path (in case interrupt was acive too) >=20 > One ARC700 customer ran into this when enabling unaligned access fixup > for kernel mode accesses as well >=20 > Signed-off-by: Vineet Gupta > Signed-off-by: Greg Kroah-Hartman >=20 > --- > =C2=A0arch/arc/kernel/unaligned.c |=C2=A0=C2=A0=C2=A0=C2=A03 ++- > =C2=A01 file changed, 2 insertions(+), 1 deletion(-) >=20 > --- a/arch/arc/kernel/unaligned.c > +++ b/arch/arc/kernel/unaligned.c > @@ -241,8 +241,9 @@ int misaligned_fixup(unsigned long addre > =C2=A0 if (state.fault) > =C2=A0 goto fault; > =C2=A0 > + /* clear any remanants of delay slot */ > =C2=A0 if (delay_mode(regs)) { > - regs->ret =3D regs->bta; > + regs->ret =3D regs->bta ~1U; Unless you're doing something terrible with macros, this is missing an & operator. I doubt this even compiled (looks like it's only used in some ARC configurations). Ben. > =C2=A0 regs->status32 &=3D ~STATUS_DE_MASK; > =C2=A0 } else { > =C2=A0 regs->ret +=3D state.instr_len; --=20 Ben Hutchings It's easier to fight for one's principles than to live up to them. --=-6pCMuhKPjDYHTVevGwdE Content-Type: application/pgp-signature; name="signature.asc" Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- iQIzBAABCgAdFiEErCspvTSmr92z9o8157/I7JWGEQkFAlidt2QACgkQ57/I7JWG EQl4bw/9HcqLWzzdxRWqYgXQMDt4IAcwtw26CVnvnZRpio7wJA0YaPD/+2QIBVEX jsyYZvfdbKXr+JJGAn4yUVXeNEL6NNg+vPTFMGYXzWjqpze/vJeP5QrrUxOYZAkM JRt3EEM+jR1X2vj1erY3sY97ZoDtuOrtdGzMwpjoQwv790BTDn5zks/fSMOmKwKs MegY9JWyXay5+nMHLdMTI1Bk8tx5xsa7SBsKDZUg1X9HHeYyK/5srM8XUIb7YKxm Svh4SoSIEgWQQvvhWTZCXBoy0XKZvpWwatjUeIekA4YDYuvv382wwhgRLNGqt2Gj PfTntPOw4F35JOL3zLjfnH6vk0W7hbjYYSA6CV0exO3J5lvqMTrgSvmpzpkUc2nG JdyhrVZywpSLb3sUeJGaLwA3ZY4GhcM+FWjp9srxhX6bg+2c/0PA/x67OllPtrHF u6HPXaqg/KNENuHDGX975iUEd+uwT1Uj5GvwzL7cSyZ01HpOaIoiuBjB/S8dZcnO QeRpm6kuwfI2CxcNy1QMhKvNH4bcqJwt+dFZkje2n0yvVfwI9aiASWmC0NNE71tT vhPo11SIi7JvIBT7PIrtLgfCrx6br47TZJ794BKYbEEvsGm9cGcqvPUC2nQZdc7f abGKaNdb+w5t0NSRaxCgcYfX48pWYG+cpoHJBrRHZ+QhZCahN1k= =294t -----END PGP SIGNATURE----- --=-6pCMuhKPjDYHTVevGwdE--