linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] nommu: Enable the strict alignment (CR_A) bit only if ARCH < v6
@ 2012-11-29 11:04 Armando Visconti
  2012-12-03 16:44 ` Armando Visconti
  0 siblings, 1 reply; 9+ messages in thread
From: Armando Visconti @ 2012-11-29 11:04 UTC (permalink / raw)
  To: armando.visconti, linux
  Cc: hsweeten, swarren, nico, kgene.kim, linux-arm-kernel,
	linux-kernel, spear-devel

This patch keeps disabled the strict alignment CP15 bit for
all armv6 and armv7 processor without the mmu. This behaviour
is now same as in the mmu case.

Signed-off-by: Armando Visconti <armando.visconti@st.com>
---
 arch/arm/kernel/head-nommu.S |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/arch/arm/kernel/head-nommu.S b/arch/arm/kernel/head-nommu.S
index 278cfc1..2c228a0 100644
--- a/arch/arm/kernel/head-nommu.S
+++ b/arch/arm/kernel/head-nommu.S
@@ -68,7 +68,7 @@ __after_proc_init:
 	 * CP15 system control register value returned in r0 from
 	 * the CPU init function.
 	 */
-#ifdef CONFIG_ALIGNMENT_TRAP
+#if defined(CONFIG_ALIGNMENT_TRAP) && __LINUX_ARM_ARCH__ < 6
 	orr	r0, r0, #CR_A
 #else
 	bic	r0, r0, #CR_A
-- 
1.7.4.4


^ permalink raw reply related	[flat|nested] 9+ messages in thread

* Re: [PATCH] nommu: Enable the strict alignment (CR_A) bit only if ARCH < v6
  2012-11-29 11:04 [PATCH] nommu: Enable the strict alignment (CR_A) bit only if ARCH < v6 Armando Visconti
@ 2012-12-03 16:44 ` Armando Visconti
  2012-12-03 16:51   ` Nicolas Pitre
                     ` (2 more replies)
  0 siblings, 3 replies; 9+ messages in thread
From: Armando Visconti @ 2012-12-03 16:44 UTC (permalink / raw)
  To: linux
  Cc: hsweeten, swarren, nico, kgene.kim, linux-arm-kernel,
	linux-kernel, spear-devel

On 11/29/2012 12:04 PM, Armando VISCONTI wrote:
> This patch keeps disabled the strict alignment CP15 bit for
> all armv6 and armv7 processor without the mmu. This behaviour
> is now same as in the mmu case.
>
> Signed-off-by: Armando Visconti<armando.visconti@st.com>
> ---
>   arch/arm/kernel/head-nommu.S |    2 +-
>   1 files changed, 1 insertions(+), 1 deletions(-)
>
> diff --git a/arch/arm/kernel/head-nommu.S b/arch/arm/kernel/head-nommu.S
> index 278cfc1..2c228a0 100644
> --- a/arch/arm/kernel/head-nommu.S
> +++ b/arch/arm/kernel/head-nommu.S
> @@ -68,7 +68,7 @@ __after_proc_init:
>   	 * CP15 system control register value returned in r0 from
>   	 * the CPU init function.
>   	 */
> -#ifdef CONFIG_ALIGNMENT_TRAP
> +#if defined(CONFIG_ALIGNMENT_TRAP)&&  __LINUX_ARM_ARCH__<  6
>   	orr	r0, r0, #CR_A
>   #else
>   	bic	r0, r0, #CR_A

Any feedback on this simple patch?

Thx,
Armando



^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH] nommu: Enable the strict alignment (CR_A) bit only if ARCH < v6
  2012-12-03 16:44 ` Armando Visconti
@ 2012-12-03 16:51   ` Nicolas Pitre
  2012-12-03 16:54   ` Will Deacon
  2012-12-03 17:25   ` Russell King - ARM Linux
  2 siblings, 0 replies; 9+ messages in thread
From: Nicolas Pitre @ 2012-12-03 16:51 UTC (permalink / raw)
  To: Armando Visconti
  Cc: linux, hsweeten, swarren, kgene.kim, linux-arm-kernel,
	linux-kernel, spear-devel

On Mon, 3 Dec 2012, Armando Visconti wrote:

> On 11/29/2012 12:04 PM, Armando VISCONTI wrote:
> > This patch keeps disabled the strict alignment CP15 bit for
> > all armv6 and armv7 processor without the mmu. This behaviour
> > is now same as in the mmu case.
> > 
> > Signed-off-by: Armando Visconti<armando.visconti@st.com>
> > ---
> >   arch/arm/kernel/head-nommu.S |    2 +-
> >   1 files changed, 1 insertions(+), 1 deletions(-)
> > 
> > diff --git a/arch/arm/kernel/head-nommu.S b/arch/arm/kernel/head-nommu.S
> > index 278cfc1..2c228a0 100644
> > --- a/arch/arm/kernel/head-nommu.S
> > +++ b/arch/arm/kernel/head-nommu.S
> > @@ -68,7 +68,7 @@ __after_proc_init:
> >   	 * CP15 system control register value returned in r0 from
> >   	 * the CPU init function.
> >   	 */
> > -#ifdef CONFIG_ALIGNMENT_TRAP
> > +#if defined(CONFIG_ALIGNMENT_TRAP)&&  __LINUX_ARM_ARCH__<  6
> >   	orr	r0, r0, #CR_A
> >   #else
> >   	bic	r0, r0, #CR_A
> 
> Any feedback on this simple patch?

Acked-by: Nicolas Pitre <nico@linaro.org>


Nicolas

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH] nommu: Enable the strict alignment (CR_A) bit only if ARCH < v6
  2012-12-03 16:44 ` Armando Visconti
  2012-12-03 16:51   ` Nicolas Pitre
@ 2012-12-03 16:54   ` Will Deacon
  2012-12-03 17:25   ` Russell King - ARM Linux
  2 siblings, 0 replies; 9+ messages in thread
From: Will Deacon @ 2012-12-03 16:54 UTC (permalink / raw)
  To: Armando Visconti
  Cc: linux, kgene.kim, swarren, nico, spear-devel, linux-kernel,
	hsweeten, linux-arm-kernel

On Mon, Dec 03, 2012 at 04:44:11PM +0000, Armando Visconti wrote:
> On 11/29/2012 12:04 PM, Armando VISCONTI wrote:
> > This patch keeps disabled the strict alignment CP15 bit for
> > all armv6 and armv7 processor without the mmu. This behaviour
> > is now same as in the mmu case.
> >
> > Signed-off-by: Armando Visconti<armando.visconti@st.com>
> > ---
> >   arch/arm/kernel/head-nommu.S |    2 +-
> >   1 files changed, 1 insertions(+), 1 deletions(-)
> >
> > diff --git a/arch/arm/kernel/head-nommu.S b/arch/arm/kernel/head-nommu.S
> > index 278cfc1..2c228a0 100644
> > --- a/arch/arm/kernel/head-nommu.S
> > +++ b/arch/arm/kernel/head-nommu.S
> > @@ -68,7 +68,7 @@ __after_proc_init:
> >   	 * CP15 system control register value returned in r0 from
> >   	 * the CPU init function.
> >   	 */
> > -#ifdef CONFIG_ALIGNMENT_TRAP
> > +#if defined(CONFIG_ALIGNMENT_TRAP)&&  __LINUX_ARM_ARCH__<  6
> >   	orr	r0, r0, #CR_A
> >   #else
> >   	bic	r0, r0, #CR_A
> 
> Any feedback on this simple patch?

Although this is correct, you still need some extra patches to avoid
unaligned accesses to strongly-ordered memory (given that we don't
currently have mainline support for the MPU). Take a look at my nommu/fixes
branch:

  https://git.kernel.org/?p=linux/kernel/git/will/linux.git;a=shortlog;h=refs/heads/nommu/fixes

I'm happy to post some of that if it's useful to you.

Will

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH] nommu: Enable the strict alignment (CR_A) bit only if ARCH < v6
  2012-12-03 16:44 ` Armando Visconti
  2012-12-03 16:51   ` Nicolas Pitre
  2012-12-03 16:54   ` Will Deacon
@ 2012-12-03 17:25   ` Russell King - ARM Linux
  2012-12-03 17:46     ` Will Deacon
  2 siblings, 1 reply; 9+ messages in thread
From: Russell King - ARM Linux @ 2012-12-03 17:25 UTC (permalink / raw)
  To: Armando Visconti
  Cc: hsweeten, swarren, nico, kgene.kim, linux-arm-kernel,
	linux-kernel, spear-devel

On Mon, Dec 03, 2012 at 05:44:11PM +0100, Armando Visconti wrote:
> On 11/29/2012 12:04 PM, Armando VISCONTI wrote:
>> This patch keeps disabled the strict alignment CP15 bit for
>> all armv6 and armv7 processor without the mmu. This behaviour
>> is now same as in the mmu case.
>>
>> Signed-off-by: Armando Visconti<armando.visconti@st.com>
>> ---
>>   arch/arm/kernel/head-nommu.S |    2 +-
>>   1 files changed, 1 insertions(+), 1 deletions(-)
>>
>> diff --git a/arch/arm/kernel/head-nommu.S b/arch/arm/kernel/head-nommu.S
>> index 278cfc1..2c228a0 100644
>> --- a/arch/arm/kernel/head-nommu.S
>> +++ b/arch/arm/kernel/head-nommu.S
>> @@ -68,7 +68,7 @@ __after_proc_init:
>>   	 * CP15 system control register value returned in r0 from
>>   	 * the CPU init function.
>>   	 */
>> -#ifdef CONFIG_ALIGNMENT_TRAP
>> +#if defined(CONFIG_ALIGNMENT_TRAP)&&  __LINUX_ARM_ARCH__<  6
>>   	orr	r0, r0, #CR_A
>>   #else
>>   	bic	r0, r0, #CR_A
>
> Any feedback on this simple patch?

Well, it brings the nommu version into line with the mmu version, so
it's sensible.  Please put it in the patch system, thanks.

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH] nommu: Enable the strict alignment (CR_A) bit only if ARCH < v6
  2012-12-03 17:25   ` Russell King - ARM Linux
@ 2012-12-03 17:46     ` Will Deacon
  2012-12-04  9:36       ` Armando Visconti
  2012-12-05 19:51       ` Uwe Kleine-König
  0 siblings, 2 replies; 9+ messages in thread
From: Will Deacon @ 2012-12-03 17:46 UTC (permalink / raw)
  To: Russell King - ARM Linux
  Cc: Armando Visconti, kgene.kim, swarren, nico, spear-devel,
	linux-kernel, hsweeten, linux-arm-kernel

On Mon, Dec 03, 2012 at 05:25:53PM +0000, Russell King - ARM Linux wrote:
> On Mon, Dec 03, 2012 at 05:44:11PM +0100, Armando Visconti wrote:
> > On 11/29/2012 12:04 PM, Armando VISCONTI wrote:
> >> This patch keeps disabled the strict alignment CP15 bit for
> >> all armv6 and armv7 processor without the mmu. This behaviour
> >> is now same as in the mmu case.
> >>
> >> Signed-off-by: Armando Visconti<armando.visconti@st.com>
> >> ---
> >>   arch/arm/kernel/head-nommu.S |    2 +-
> >>   1 files changed, 1 insertions(+), 1 deletions(-)
> >>
> >> diff --git a/arch/arm/kernel/head-nommu.S b/arch/arm/kernel/head-nommu.S
> >> index 278cfc1..2c228a0 100644
> >> --- a/arch/arm/kernel/head-nommu.S
> >> +++ b/arch/arm/kernel/head-nommu.S
> >> @@ -68,7 +68,7 @@ __after_proc_init:
> >>   	 * CP15 system control register value returned in r0 from
> >>   	 * the CPU init function.
> >>   	 */
> >> -#ifdef CONFIG_ALIGNMENT_TRAP
> >> +#if defined(CONFIG_ALIGNMENT_TRAP)&&  __LINUX_ARM_ARCH__<  6
> >>   	orr	r0, r0, #CR_A
> >>   #else
> >>   	bic	r0, r0, #CR_A
> >
> > Any feedback on this simple patch?
> 
> Well, it brings the nommu version into line with the mmu version, so
> it's sensible.  Please put it in the patch system, thanks.

In which case, I'll definitely dust-off the patches to prevent unaligned
accesses to strongly-ordered memory because that results in good ol'
UNPREDICTABLE behaviour.

I think Uwe also requires some of the stuff there for his M3 port.

Will

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH] nommu: Enable the strict alignment (CR_A) bit only if ARCH < v6
  2012-12-03 17:46     ` Will Deacon
@ 2012-12-04  9:36       ` Armando Visconti
  2012-12-05 19:51       ` Uwe Kleine-König
  1 sibling, 0 replies; 9+ messages in thread
From: Armando Visconti @ 2012-12-04  9:36 UTC (permalink / raw)
  To: Will Deacon, Russell King - ARM Linux
  Cc: kgene.kim, swarren, nico, spear-devel, linux-kernel, hsweeten,
	linux-arm-kernel

On 12/03/2012 06:46 PM, Will Deacon wrote:
> On Mon, Dec 03, 2012 at 05:25:53PM +0000, Russell King - ARM Linux wrote:
>> On Mon, Dec 03, 2012 at 05:44:11PM +0100, Armando Visconti wrote:
>>> On 11/29/2012 12:04 PM, Armando VISCONTI wrote:
>>>> This patch keeps disabled the strict alignment CP15 bit for
>>>> all armv6 and armv7 processor without the mmu. This behaviour
>>>> is now same as in the mmu case.
>>>>
>>>> Signed-off-by: Armando Visconti<armando.visconti@st.com>
>>>> ---
>>>>    arch/arm/kernel/head-nommu.S |    2 +-
>>>>    1 files changed, 1 insertions(+), 1 deletions(-)
>>>>
>>>> diff --git a/arch/arm/kernel/head-nommu.S b/arch/arm/kernel/head-nommu.S
>>>> index 278cfc1..2c228a0 100644
>>>> --- a/arch/arm/kernel/head-nommu.S
>>>> +++ b/arch/arm/kernel/head-nommu.S
>>>> @@ -68,7 +68,7 @@ __after_proc_init:
>>>>    	 * CP15 system control register value returned in r0 from
>>>>    	 * the CPU init function.
>>>>    	 */
>>>> -#ifdef CONFIG_ALIGNMENT_TRAP
>>>> +#if defined(CONFIG_ALIGNMENT_TRAP)&&   __LINUX_ARM_ARCH__<   6
>>>>    	orr	r0, r0, #CR_A
>>>>    #else
>>>>    	bic	r0, r0, #CR_A
>>>
>>> Any feedback on this simple patch?
>>
>> Well, it brings the nommu version into line with the mmu version, so
>> it's sensible.  Please put it in the patch system, thanks.
>

Done!

> In which case, I'll definitely dust-off the patches to prevent unaligned
> accesses to strongly-ordered memory because that results in good ol'
> UNPREDICTABLE behaviour.
>

Yes, we definetely need them.

Thx,
Arm



^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH] nommu: Enable the strict alignment (CR_A) bit only if ARCH < v6
  2012-12-03 17:46     ` Will Deacon
  2012-12-04  9:36       ` Armando Visconti
@ 2012-12-05 19:51       ` Uwe Kleine-König
  2012-12-06 10:47         ` Will Deacon
  1 sibling, 1 reply; 9+ messages in thread
From: Uwe Kleine-König @ 2012-12-05 19:51 UTC (permalink / raw)
  To: Will Deacon
  Cc: Russell King - ARM Linux, kgene.kim, swarren, nico,
	Armando Visconti, spear-devel, linux-kernel, hsweeten,
	linux-arm-kernel

Hello,

On Mon, Dec 03, 2012 at 05:46:17PM +0000, Will Deacon wrote:
> On Mon, Dec 03, 2012 at 05:25:53PM +0000, Russell King - ARM Linux wrote:
> > On Mon, Dec 03, 2012 at 05:44:11PM +0100, Armando Visconti wrote:
> > > On 11/29/2012 12:04 PM, Armando VISCONTI wrote:
> > >> This patch keeps disabled the strict alignment CP15 bit for
> > >> all armv6 and armv7 processor without the mmu. This behaviour
> > >> is now same as in the mmu case.
> > >>
> > >> Signed-off-by: Armando Visconti<armando.visconti@st.com>
> > >> ---
> > >>   arch/arm/kernel/head-nommu.S |    2 +-
> > >>   1 files changed, 1 insertions(+), 1 deletions(-)
> > >>
> > >> diff --git a/arch/arm/kernel/head-nommu.S b/arch/arm/kernel/head-nommu.S
> > >> index 278cfc1..2c228a0 100644
> > >> --- a/arch/arm/kernel/head-nommu.S
> > >> +++ b/arch/arm/kernel/head-nommu.S
> > >> @@ -68,7 +68,7 @@ __after_proc_init:
> > >>   	 * CP15 system control register value returned in r0 from
> > >>   	 * the CPU init function.
> > >>   	 */
> > >> -#ifdef CONFIG_ALIGNMENT_TRAP
> > >> +#if defined(CONFIG_ALIGNMENT_TRAP)&&  __LINUX_ARM_ARCH__<  6
> > >>   	orr	r0, r0, #CR_A
> > >>   #else
> > >>   	bic	r0, r0, #CR_A
> > >
> > > Any feedback on this simple patch?
> > 
> > Well, it brings the nommu version into line with the mmu version, so
> > it's sensible.  Please put it in the patch system, thanks.
> 
> In which case, I'll definitely dust-off the patches to prevent unaligned
> accesses to strongly-ordered memory because that results in good ol'
> UNPREDICTABLE behaviour.
> 
> I think Uwe also requires some of the stuff there for his M3 port.
I didn't check more context than available in the patch and I also
didn't double-check the M3-docs, but AFAIK the M3 doesn't have a cp15
and I noopt this code out.

Best regards
Uwe

-- 
Pengutronix e.K.                           | Uwe Kleine-König            |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH] nommu: Enable the strict alignment (CR_A) bit only if ARCH < v6
  2012-12-05 19:51       ` Uwe Kleine-König
@ 2012-12-06 10:47         ` Will Deacon
  0 siblings, 0 replies; 9+ messages in thread
From: Will Deacon @ 2012-12-06 10:47 UTC (permalink / raw)
  To: Uwe Kleine-König
  Cc: kgene.kim, swarren, nico, Armando Visconti, spear-devel,
	linux-kernel, hsweeten, Russell King - ARM Linux,
	linux-arm-kernel

On Wed, Dec 05, 2012 at 07:51:34PM +0000, Uwe Kleine-König wrote:
> Hello,

Hi Uwe,

> On Mon, Dec 03, 2012 at 05:46:17PM +0000, Will Deacon wrote:
> > I think Uwe also requires some of the stuff there for his M3 port.
> I didn't check more context than available in the patch and I also
> didn't double-check the M3-docs, but AFAIK the M3 doesn't have a cp15
> and I noopt this code out.

I was thinking more about the word-at-a-time stuff, which relies on
efficient unaligned access for the dcache accesses.

Will

^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2012-12-06 10:47 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-11-29 11:04 [PATCH] nommu: Enable the strict alignment (CR_A) bit only if ARCH < v6 Armando Visconti
2012-12-03 16:44 ` Armando Visconti
2012-12-03 16:51   ` Nicolas Pitre
2012-12-03 16:54   ` Will Deacon
2012-12-03 17:25   ` Russell King - ARM Linux
2012-12-03 17:46     ` Will Deacon
2012-12-04  9:36       ` Armando Visconti
2012-12-05 19:51       ` Uwe Kleine-König
2012-12-06 10:47         ` Will Deacon

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).