From: Jon Hunter <jon-hunter@ti.com>
To: Tony Lindgren <tony@atomide.com>
Cc: Paul Walmsley <paul@pwsan.com>,
Dave Martin <dave.martin@linaro.org>,
Russell King - ARM Linux <linux@arm.linux.org.uk>,
Catalin Marinas <catalin.marinas@arm.com>,
linux-omap@vger.kernel.org,
Mans Rullgard <mans.rullgard@linaro.org>,
linux-arm-kernel@lists.infradead.org
Subject: Re: [PATCH v3] ARM: vfp: fix save and restore when running on pre-VFPv3 and CONFIG_VFPv3 set
Date: Tue, 16 Oct 2012 12:13:22 -0500 [thread overview]
Message-ID: <507D95B2.3020506@ti.com> (raw)
In-Reply-To: <20121015175317.GE15569@atomide.com>
On 10/15/2012 12:53 PM, Tony Lindgren wrote:
> * Paul Walmsley <paul@pwsan.com> [121014 22:26]:
>>
>> After commit 846a136881b8f73c1f74250bf6acfaa309cab1f2 ("ARM: vfp: fix
>> saving d16-d31 vfp registers on v6+ kernels"), the OMAP 2430SDP board
>> started crashing during boot with omap2plus_defconfig:
>>
>> [ 3.875122] mmcblk0: mmc0:e624 SD04G 3.69 GiB
>> [ 3.915954] mmcblk0: p1
>> [ 4.086639] Internal error: Oops - undefined instruction: 0 [#1] SMP ARM
>> [ 4.093719] Modules linked in:
>> [ 4.096954] CPU: 0 Not tainted (3.6.0-02232-g759e00b #570)
>> [ 4.103149] PC is at vfp_reload_hw+0x1c/0x44
>> [ 4.107666] LR is at __und_usr_fault_32+0x0/0x8
>>
>> It turns out that the context save/restore fix unmasked a latent bug
>> in commit 5aaf254409f8d58229107b59507a8235b715a960 ("ARM: 6203/1: Make
>> VFPv3 usable on ARMv6"). When CONFIG_VFPv3 is set, but the kernel is
>> booted on a pre-VFPv3 core, the code attempts to save and restore the
>> d16-d31 VFP registers. These are only present on non-D16 VFPv3+, so
>> this results in an undefined instruction exception. The code didn't
>> crash before commit 846a136 because the save and restore code was
>> only touching d0-d15, present on all VFP.
>>
>> Fix by implementing a request from Russell King to add a new HWCAP
>> flag that affirmatively indicates the presence of the d16-d31
>> registers:
>>
>> http://marc.info/?l=linux-arm-kernel&m=135013547905283&w=2
>>
>> and some feedback from Måns to clarify the name of the HWCAP flag.
>>
>> Signed-off-by: Paul Walmsley <paul@pwsan.com>
>> Cc: Tony Lindgren <tony@atomide.com>
>> Cc: Russell King <rmk+kernel@arm.linux.org.uk>
>> Cc: Catalin Marinas <catalin.marinas@arm.com>
>> Cc: Dave Martin <dave.martin@linaro.org>
>> Cc: Måns Rullgård <mans.rullgard@linaro.org>
>
> This fixes the error above on my 2430sdp:
>
> Tested-by: Tony Lindgren <tony@atomide.com>
Fixes same error on 2420 H4.
Tested-by: Jon Hunter <jon-hunter@ti.com>
Cheers
Jon
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
WARNING: multiple messages have this Message-ID (diff)
From: jon-hunter@ti.com (Jon Hunter)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v3] ARM: vfp: fix save and restore when running on pre-VFPv3 and CONFIG_VFPv3 set
Date: Tue, 16 Oct 2012 12:13:22 -0500 [thread overview]
Message-ID: <507D95B2.3020506@ti.com> (raw)
In-Reply-To: <20121015175317.GE15569@atomide.com>
On 10/15/2012 12:53 PM, Tony Lindgren wrote:
> * Paul Walmsley <paul@pwsan.com> [121014 22:26]:
>>
>> After commit 846a136881b8f73c1f74250bf6acfaa309cab1f2 ("ARM: vfp: fix
>> saving d16-d31 vfp registers on v6+ kernels"), the OMAP 2430SDP board
>> started crashing during boot with omap2plus_defconfig:
>>
>> [ 3.875122] mmcblk0: mmc0:e624 SD04G 3.69 GiB
>> [ 3.915954] mmcblk0: p1
>> [ 4.086639] Internal error: Oops - undefined instruction: 0 [#1] SMP ARM
>> [ 4.093719] Modules linked in:
>> [ 4.096954] CPU: 0 Not tainted (3.6.0-02232-g759e00b #570)
>> [ 4.103149] PC is at vfp_reload_hw+0x1c/0x44
>> [ 4.107666] LR is at __und_usr_fault_32+0x0/0x8
>>
>> It turns out that the context save/restore fix unmasked a latent bug
>> in commit 5aaf254409f8d58229107b59507a8235b715a960 ("ARM: 6203/1: Make
>> VFPv3 usable on ARMv6"). When CONFIG_VFPv3 is set, but the kernel is
>> booted on a pre-VFPv3 core, the code attempts to save and restore the
>> d16-d31 VFP registers. These are only present on non-D16 VFPv3+, so
>> this results in an undefined instruction exception. The code didn't
>> crash before commit 846a136 because the save and restore code was
>> only touching d0-d15, present on all VFP.
>>
>> Fix by implementing a request from Russell King to add a new HWCAP
>> flag that affirmatively indicates the presence of the d16-d31
>> registers:
>>
>> http://marc.info/?l=linux-arm-kernel&m=135013547905283&w=2
>>
>> and some feedback from M?ns to clarify the name of the HWCAP flag.
>>
>> Signed-off-by: Paul Walmsley <paul@pwsan.com>
>> Cc: Tony Lindgren <tony@atomide.com>
>> Cc: Russell King <rmk+kernel@arm.linux.org.uk>
>> Cc: Catalin Marinas <catalin.marinas@arm.com>
>> Cc: Dave Martin <dave.martin@linaro.org>
>> Cc: M?ns Rullg?rd <mans.rullgard@linaro.org>
>
> This fixes the error above on my 2430sdp:
>
> Tested-by: Tony Lindgren <tony@atomide.com>
Fixes same error on 2420 H4.
Tested-by: Jon Hunter <jon-hunter@ti.com>
Cheers
Jon
next prev parent reply other threads:[~2012-10-16 17:13 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-10-13 4:46 [PATCH] ARM: vfp: fix save and restore when running on pre-VFPv3 and CONFIG_VFPv3 set Paul Walmsley
2012-10-13 4:46 ` Paul Walmsley
2012-10-13 9:02 ` Russell King - ARM Linux
2012-10-13 9:02 ` Russell King - ARM Linux
2012-10-13 10:50 ` Måns Rullgård
2012-10-13 10:50 ` Måns Rullgård
2012-10-13 13:36 ` Russell King - ARM Linux
2012-10-13 13:36 ` Russell King - ARM Linux
2012-10-15 1:58 ` Paul Walmsley
2012-10-15 1:58 ` Paul Walmsley
2012-10-15 2:39 ` Mans Rullgard
2012-10-15 2:39 ` Mans Rullgard
2012-10-15 5:24 ` [PATCH v3] " Paul Walmsley
2012-10-15 5:24 ` Paul Walmsley
2012-10-15 17:53 ` Tony Lindgren
2012-10-15 17:53 ` Tony Lindgren
2012-10-16 17:13 ` Jon Hunter [this message]
2012-10-16 17:13 ` Jon Hunter
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=507D95B2.3020506@ti.com \
--to=jon-hunter@ti.com \
--cc=catalin.marinas@arm.com \
--cc=dave.martin@linaro.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-omap@vger.kernel.org \
--cc=linux@arm.linux.org.uk \
--cc=mans.rullgard@linaro.org \
--cc=paul@pwsan.com \
--cc=tony@atomide.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.