Message ID | 20150914121248.GD21098@n2100.arm.linux.org.uk |
---|---|
State | New |
Headers | show |
* Russell King - ARM Linux <linux@arm.linux.org.uk> [150914 05:16]: > On Fri, Sep 11, 2015 at 03:03:07PM +0100, Russell King - ARM Linux wrote: > > > > Merely changing __LINUX_ARM_ARCH__ >= 7 to >= 6 should fix the problem, > > and I doubt there's any ARMv6 non-T2 systems out there that would be > > affected by clearing the IT state bits. > > Please test the following patch: While we're waiting for Grazvydas to test.. Looks good to me: Acked-by: Tony Lindgren <tony@atomide.com>
Am 14.09.2015 um 21:02 schrieb Tony Lindgren <tony@atomide.com>: > * Russell King - ARM Linux <linux@arm.linux.org.uk> [150914 05:16]: >> On Fri, Sep 11, 2015 at 03:03:07PM +0100, Russell King - ARM Linux wrote: >>> >>> Merely changing __LINUX_ARM_ARCH__ >= 7 to >= 6 should fix the problem, >>> and I doubt there's any ARMv6 non-T2 systems out there that would be >>> affected by clearing the IT state bits. >> >> Please test the following patch: > > While we're waiting for Grazvydas to test.. Looks good to me: > > Acked-by: Tony Lindgren <tony@atomide.com> I have tested on: * GTA04 with DM3730 (OMAP3) * Pyra prototype with OMAP5432 No X server crashes seen any more. Tested-by: H. Nikolaus Schaller <hns@goldelico.com>
On Mon, Sep 14, 2015 at 10:35 PM, Dr. H. Nikolaus Schaller <hns@goldelico.com> wrote: > > Am 14.09.2015 um 21:02 schrieb Tony Lindgren <tony@atomide.com>: > >> * Russell King - ARM Linux <linux@arm.linux.org.uk> [150914 05:16]: >>> On Fri, Sep 11, 2015 at 03:03:07PM +0100, Russell King - ARM Linux wrote: >>>> >>>> Merely changing __LINUX_ARM_ARCH__ >= 7 to >= 6 should fix the problem, >>>> and I doubt there's any ARMv6 non-T2 systems out there that would be >>>> affected by clearing the IT state bits. >>> >>> Please test the following patch: >> >> While we're waiting for Grazvydas to test.. Looks good to me: >> >> Acked-by: Tony Lindgren <tony@atomide.com> > > I have tested on: > * GTA04 with DM3730 (OMAP3) > * Pyra prototype with OMAP5432 > No X server crashes seen any more. > > Tested-by: H. Nikolaus Schaller <hns@goldelico.com> Tested-by: Grazvydas Ignotas <notasas@gmail.com> on OMAP5 uevm running v4.2 built with omap2plus_defconfig. On v4.3-rc1 hsmmc controller probe is deferred for whatever reason and never reprobes, so my rootfs is never mounted and I could not test, but that looks unrelated. I guess it's worth marking this one for stable. Gražvydas
On Tue, Sep 15, 2015 at 08:31:44PM +0300, Grazvydas Ignotas wrote: > On Mon, Sep 14, 2015 at 10:35 PM, Dr. H. Nikolaus Schaller > <hns@goldelico.com> wrote: > > > > Am 14.09.2015 um 21:02 schrieb Tony Lindgren <tony@atomide.com>: > > > >> * Russell King - ARM Linux <linux@arm.linux.org.uk> [150914 05:16]: > >>> On Fri, Sep 11, 2015 at 03:03:07PM +0100, Russell King - ARM Linux wrote: > >>>> > >>>> Merely changing __LINUX_ARM_ARCH__ >= 7 to >= 6 should fix the problem, > >>>> and I doubt there's any ARMv6 non-T2 systems out there that would be > >>>> affected by clearing the IT state bits. > >>> > >>> Please test the following patch: > >> > >> While we're waiting for Grazvydas to test.. Looks good to me: > >> > >> Acked-by: Tony Lindgren <tony@atomide.com> > > > > I have tested on: > > * GTA04 with DM3730 (OMAP3) > > * Pyra prototype with OMAP5432 > > No X server crashes seen any more. > > > > Tested-by: H. Nikolaus Schaller <hns@goldelico.com> > > Tested-by: Grazvydas Ignotas <notasas@gmail.com> > on OMAP5 uevm running v4.2 built with omap2plus_defconfig. > On v4.3-rc1 hsmmc controller probe is deferred for whatever reason and > never reprobes, so my rootfs is never mounted and I could not test, > but that looks unrelated. Thanks. > I guess it's worth marking this one for stable. Indeed. Having looked closer at the ARM ARM, these bits on older CPUs are marked as UNK/SBZP (unknown, should be zero or preserved). So it's safe to get rid of that #if entirely. Removing that #if won't affect the validity of your testing as you've only tested on ARMv7 platforms with ARMv6 included in the kernel.
diff --git a/arch/arm/kernel/signal.c b/arch/arm/kernel/signal.c index b6cda06b455f..b43b4d360bab 100644 --- a/arch/arm/kernel/signal.c +++ b/arch/arm/kernel/signal.c @@ -343,12 +343,17 @@ setup_return(struct pt_regs *regs, struct ksignal *ksig, */ thumb = handler & 1; -#if __LINUX_ARM_ARCH__ >= 7 +#if __LINUX_ARM_ARCH__ >= 6 /* - * Clear the If-Then Thumb-2 execution state - * ARM spec requires this to be all 000s in ARM mode - * Snapdragon S4/Krait misbehaves on a Thumb=>ARM - * signal transition without this. + * Clear the If-Then Thumb-2 execution state. ARM spec + * requires this to be all 000s in ARM mode. Snapdragon + * S4/Krait misbehaves on a Thumb=>ARM signal transition + * without this. + * + * We must do this whenever we are running on a Thumb-2 + * capable CPU, which includes ARMv6T2. However, we elect + * to do this whenever we're on an ARMv6 or later CPU for + * simplicity. */ cpsr &= ~PSR_IT_MASK; #endif