Patchwork [U-Boot,V3] arm: Fix to mistake clean the memory space

login
register
mail settings
Submitter seedshope
Date July 7, 2012, 9:47 a.m.
Message ID <1341654436-24826-1-git-send-email-bocui107@gmail.com>
Download mbox | patch
Permalink /patch/169572/
State Accepted
Commit 448217d4b2e11b11ae5addd1d1f752ce194d6af0
Delegated to: Albert ARIBAUD
Headers show

Comments

seedshope - July 7, 2012, 9:47 a.m.
From: Zhong Hongbo <bocui107@gmail.com>

In currently, when __bss_start is equal to __bss_end__,
The bss loop will clear all the things in memory space.

But just only when __bss_end__ greater than __bss_start__,
we do the clear bss section operation.

Signed-off-by: Zhong Hongbo <bocui107@gmail.com>
---
Change for V2
	- Fixed bss clear operation, no just skip it.
	- Adjust the commit information
Change for V3
	- Modify all the bss clean operation for arm platform
	- Adjust the title
---
 arch/arm/cpu/arm1136/start.S   |    8 +++++---
 arch/arm/cpu/arm1176/start.S   |    9 +++++----
 arch/arm/cpu/arm720t/start.S   |    8 +++++---
 arch/arm/cpu/arm920t/start.S   |    8 +++++---
 arch/arm/cpu/arm925t/start.S   |    8 +++++---
 arch/arm/cpu/arm946es/start.S  |    8 +++++---
 arch/arm/cpu/arm_intcm/start.S |    8 +++++---
 arch/arm/cpu/armv7/start.S     |    8 +++++---
 arch/arm/cpu/ixp/start.S       |    8 +++++---
 arch/arm/cpu/lh7a40x/start.S   |    8 +++++---
 arch/arm/cpu/pxa/start.S       |    8 +++++---
 arch/arm/cpu/s3c44b0/start.S   |    8 +++++---
 arch/arm/cpu/sa1100/start.S    |    8 +++++---
 13 files changed, 65 insertions(+), 40 deletions(-)
Albert ARIBAUD - July 7, 2012, 9:58 a.m.
Hi Zhong Hongbo,

On Sat,  7 Jul 2012 17:47:16 +0800, Zhong Hongbo <bocui107@gmail.com> wrote:
> From: Zhong Hongbo <bocui107@gmail.com>
> 
> In currently, when __bss_start is equal to __bss_end__,
> The bss loop will clear all the things in memory space.
> 
> But just only when __bss_end__ greater than __bss_start__,
> we do the clear bss section operation.
> 
> Signed-off-by: Zhong Hongbo <bocui107@gmail.com>
> ---
> Change for V2
> 	- Fixed bss clear operation, no just skip it.
> 	- Adjust the commit information
> Change for V3
> 	- Modify all the bss clean operation for arm platform
> 	- Adjust the title
> ---

Almost there... The PATCH part is missing, i.e. you should not tag "[V3]"
but "[PATCH V3]".

Just to make sure patchwork gets it right, please repost a V4 of this
properly tagged with "[PATCH V4]".

Amicalement,
seedshope - July 7, 2012, 1:19 p.m.
On 07/07/2012 05:58 PM, Albert ARIBAUD wrote:
> Hi Zhong Hongbo,
> 
> On Sat,  7 Jul 2012 17:47:16 +0800, Zhong Hongbo <bocui107@gmail.com> wrote:
>> From: Zhong Hongbo <bocui107@gmail.com>
>>
>> In currently, when __bss_start is equal to __bss_end__,
>> The bss loop will clear all the things in memory space.
>>
>> But just only when __bss_end__ greater than __bss_start__,
>> we do the clear bss section operation.
>>
>> Signed-off-by: Zhong Hongbo <bocui107@gmail.com>
>> ---
>> Change for V2
>> 	- Fixed bss clear operation, no just skip it.
>> 	- Adjust the commit information
>> Change for V3
>> 	- Modify all the bss clean operation for arm platform
>> 	- Adjust the title
>> ---
> 
> Almost there... The PATCH part is missing, i.e. you should not tag "[V3]"
> but "[PATCH V3]".

Ok,
> 
> Just to make sure patchwork gets it right, please repost a V4 of this
> properly tagged with "[PATCH V4]".

Ok,

Thanks,
hongbo
> 
> Amicalement,
>
Andreas Bießmann - July 9, 2012, 11:21 a.m.
Dear Zhong Hongbo,

On 07.07.2012 15:19, Zhong Hongbo wrote:
> On 07/07/2012 05:58 PM, Albert ARIBAUD wrote:
>> Hi Zhong Hongbo,
>>
>> On Sat,  7 Jul 2012 17:47:16 +0800, Zhong Hongbo <bocui107@gmail.com> wrote:
>>> From: Zhong Hongbo <bocui107@gmail.com>

>> Almost there... The PATCH part is missing, i.e. you should not tag "[V3]"
>> but "[PATCH V3]".
> 
> Ok,

well, you sent v4 but didn't respect this comment. Please read
http://www.denx.de/wiki/view/U-Boot/Patches#Sending_updated_patch_versions
especially this part:

---8<---
Make an appropriate note that this is a re-submission in the subject
line, eg. "[PATCH v2] Add support for feature X". git format-patch
--subject-prefix="PATCH v2" can be used in this case.
--->8---

Another option is to use 'git send-email --annotate ...' and change the
subject line.

>> Just to make sure patchwork gets it right, please repost a V4 of this
>> properly tagged with "[PATCH V4]".

I think patchwork got it right http://patchwork.ozlabs.org/patch/169595/
and http://patchwork.ozlabs.org/patch/169572/. So I would say you do not
need to resend a v5 of the same patch cause of this formal 'fault'.
Albert, do you have the same opinion?

Albert, I think we should count this a fix and pull into this upcoming
release. How do you think about?

Best regards

Andreas Bießmann
Albert ARIBAUD - July 9, 2012, 2:20 p.m.
Hi Andreas,

On Mon, 09 Jul 2012 13:21:12 +0200, "Andreas Bießmann"
<andreas.devel@googlemail.com> wrote:
> Dear Zhong Hongbo,
> 
> On 07.07.2012 15:19, Zhong Hongbo wrote:
> > On 07/07/2012 05:58 PM, Albert ARIBAUD wrote:
> >> Hi Zhong Hongbo,
> >>
> >> On Sat,  7 Jul 2012 17:47:16 +0800, Zhong Hongbo
> >> <bocui107@gmail.com> wrote:
> >>> From: Zhong Hongbo <bocui107@gmail.com>
> 
> >> Almost there... The PATCH part is missing, i.e. you should not tag
> >> "[V3]" but "[PATCH V3]".
> > 
> > Ok,
> 
> well, you sent v4 but didn't respect this comment. Please read
> http://www.denx.de/wiki/view/U-Boot/Patches#Sending_updated_patch_versions
> especially this part:
> 
> ---8<---
> Make an appropriate note that this is a re-submission in the subject
> line, eg. "[PATCH v2] Add support for feature X". git format-patch
> --subject-prefix="PATCH v2" can be used in this case.
> --->8---
> 
> Another option is to use 'git send-email --annotate ...' and change
> the subject line.
> 
> >> Just to make sure patchwork gets it right, please repost a V4 of
> >> this properly tagged with "[PATCH V4]".
> 
> I think patchwork got it right
> http://patchwork.ozlabs.org/patch/169595/ and
> http://patchwork.ozlabs.org/patch/169572/. So I would say you do not
> need to resend a v5 of the same patch cause of this formal 'fault'.
> Albert, do you have the same opinion?

(sigh) No, I don't have the same opinion.

But I will accept... for this once.

> Albert, I think we should count this a fix and pull into this upcoming
> release. How do you think about?

This was my intent from the start. :)

> Best regards
> 
> Andreas Bießmann

Amicalement,
Andreas Bießmann - July 12, 2012, 9:35 a.m.
Dear Albert Aribaud,

On 09.07.2012 16:20, Albert ARIBAUD wrote:
> Hi Andreas,
> 
> On Mon, 09 Jul 2012 13:21:12 +0200, "Andreas Bießmann"
> <andreas.devel@googlemail.com> wrote:
>> Dear Zhong Hongbo,
>>
>> On 07.07.2012 15:19, Zhong Hongbo wrote:
>>> On 07/07/2012 05:58 PM, Albert ARIBAUD wrote:
>>>> Hi Zhong Hongbo,
>>>>
>>>> On Sat,  7 Jul 2012 17:47:16 +0800, Zhong Hongbo
>>>> <bocui107@gmail.com> wrote:
>>>>> From: Zhong Hongbo <bocui107@gmail.com>
>>
>>>> Almost there... The PATCH part is missing, i.e. you should not tag
>>>> "[V3]" but "[PATCH V3]".
>>>
>>> Ok,
>>
>> well, you sent v4 but didn't respect this comment. Please read
>> http://www.denx.de/wiki/view/U-Boot/Patches#Sending_updated_patch_versions
>> especially this part:
>>
>> ---8<---
>> Make an appropriate note that this is a re-submission in the subject
>> line, eg. "[PATCH v2] Add support for feature X". git format-patch
>> --subject-prefix="PATCH v2" can be used in this case.
>> --->8---
>>
>> Another option is to use 'git send-email --annotate ...' and change
>> the subject line.
>>
>>>> Just to make sure patchwork gets it right, please repost a V4 of
>>>> this properly tagged with "[PATCH V4]".
>>
>> I think patchwork got it right
>> http://patchwork.ozlabs.org/patch/169595/ and
>> http://patchwork.ozlabs.org/patch/169572/. So I would say you do not
>> need to resend a v5 of the same patch cause of this formal 'fault'.
>> Albert, do you have the same opinion?
> 
> (sigh) No, I don't have the same opinion.

Ouch, sorry for that. I will notice this and do not force your opinion.
I should have asked before.

Best regards

Andreas Bießmann

Patch

diff --git a/arch/arm/cpu/arm1136/start.S b/arch/arm/cpu/arm1136/start.S
index c0db96c..2483c63 100644
--- a/arch/arm/cpu/arm1136/start.S
+++ b/arch/arm/cpu/arm1136/start.S
@@ -251,10 +251,12 @@  clear_bss:
 	add	r1, r1, r4
 	mov	r2, #0x00000000		/* clear			    */
 
-clbss_l:str	r2, [r0]		/* clear loop...		    */
+clbss_l:cmp	r0, r1			/* clear loop... */
+	bhs	clbss_e			/* if reached end of bss, exit */
+	str	r2, [r0]
 	add	r0, r0, #4
-	cmp	r0, r1
-	bne	clbss_l
+	b	clbss_l
+clbss_e:
 #endif	/* #ifndef CONFIG_SPL_BUILD */
 
 /*
diff --git a/arch/arm/cpu/arm1176/start.S b/arch/arm/cpu/arm1176/start.S
index 848144a..d613641 100644
--- a/arch/arm/cpu/arm1176/start.S
+++ b/arch/arm/cpu/arm1176/start.S
@@ -351,11 +351,12 @@  clear_bss:
 	add	r1, r1, r4
 	mov	r2, #0x00000000		/* clear			    */
 
-clbss_l:str	r2, [r0]		/* clear loop...		    */
+clbss_l:cmp	r0, r1			/* clear loop... */
+	bhs	clbss_e			/* if reached end of bss, exit */
+	str	r2, [r0]
 	add	r0, r0, #4
-	cmp	r0, r1
-	bne	clbss_l
-
+	b	clbss_l
+clbss_e:
 #ifndef CONFIG_NAND_SPL
 	bl coloured_LED_init
 	bl red_led_on
diff --git a/arch/arm/cpu/arm720t/start.S b/arch/arm/cpu/arm720t/start.S
index 540e3c2..3b97e80 100644
--- a/arch/arm/cpu/arm720t/start.S
+++ b/arch/arm/cpu/arm720t/start.S
@@ -228,10 +228,12 @@  clear_bss:
 	add	r1, r1, r4
 	mov	r2, #0x00000000		/* clear			    */
 
-clbss_l:str	r2, [r0]		/* clear loop...		    */
+clbss_l:cmp	r0, r1			/* clear loop... */
+	bhs	clbss_e			/* if reached end of bss, exit */
+	str	r2, [r0]
 	add	r0, r0, #4
-	cmp	r0, r1
-	bne	clbss_l
+	b	clbss_l
+clbss_e:
 
 	bl coloured_LED_init
 	bl red_led_on
diff --git a/arch/arm/cpu/arm920t/start.S b/arch/arm/cpu/arm920t/start.S
index 8c5612c..9b8604e 100644
--- a/arch/arm/cpu/arm920t/start.S
+++ b/arch/arm/cpu/arm920t/start.S
@@ -271,10 +271,12 @@  clear_bss:
 	add	r1, r1, r4
 	mov	r2, #0x00000000		/* clear			    */
 
-clbss_l:str	r2, [r0]		/* clear loop...		    */
+clbss_l:cmp	r0, r1			/* clear loop... */
+	bhs	clbss_e			/* if reached end of bss, exit */
+	str	r2, [r0]
 	add	r0, r0, #4
-	cmp	r0, r1
-	bne	clbss_l
+	b	clbss_l
+clbss_e:
 
 	bl coloured_LED_init
 	bl red_led_on
diff --git a/arch/arm/cpu/arm925t/start.S b/arch/arm/cpu/arm925t/start.S
index dbb93ef..1a54416 100644
--- a/arch/arm/cpu/arm925t/start.S
+++ b/arch/arm/cpu/arm925t/start.S
@@ -265,10 +265,12 @@  clear_bss:
 	add	r1, r1, r4
 	mov	r2, #0x00000000		/* clear			    */
 
-clbss_l:str	r2, [r0]		/* clear loop...		    */
+clbss_l:cmp	r0, r1			/* clear loop... */
+	bhs	clbss_e			/* if reached end of bss, exit */
+	str	r2, [r0]
 	add	r0, r0, #4
-	cmp	r0, r1
-	bne	clbss_l
+	b	clbss_l
+clbss_e:
 
 	bl coloured_LED_init
 	bl red_led_on
diff --git a/arch/arm/cpu/arm946es/start.S b/arch/arm/cpu/arm946es/start.S
index 89ba558..b4d1d2d 100644
--- a/arch/arm/cpu/arm946es/start.S
+++ b/arch/arm/cpu/arm946es/start.S
@@ -236,10 +236,12 @@  clear_bss:
 	add	r1, r1, r4
 	mov	r2, #0x00000000		/* clear			    */
 
-clbss_l:str	r2, [r0]		/* clear loop...		    */
+clbss_l:cmp	r0, r1			/* clear loop... */
+	bhs	clbss_e			/* if reached end of bss, exit */
+	str	r2, [r0]
 	add	r0, r0, #4
-	cmp	r0, r1
-	blo	clbss_l
+	b	clbss_l
+clbss_e:
 #endif
 
 /*
diff --git a/arch/arm/cpu/arm_intcm/start.S b/arch/arm/cpu/arm_intcm/start.S
index 2033b36..b85e7d4 100644
--- a/arch/arm/cpu/arm_intcm/start.S
+++ b/arch/arm/cpu/arm_intcm/start.S
@@ -232,10 +232,12 @@  clear_bss:
 	add	r1, r1, r4
 	mov	r2, #0x00000000		/* clear			    */
 
-clbss_l:str	r2, [r0]		/* clear loop...		    */
+clbss_l:cmp	r0, r1			/* clear loop... */
+	bhs	clbss_e			/* if reached end of bss, exit */
+	str	r2, [r0]
 	add	r0, r0, #4
-	cmp	r0, r1
-	bne	clbss_l
+	b	clbss_l
+clbss_e:
 
 	bl coloured_LED_init
 	bl red_led_on
diff --git a/arch/arm/cpu/armv7/start.S b/arch/arm/cpu/armv7/start.S
index 22a3ced..aee27fd 100644
--- a/arch/arm/cpu/armv7/start.S
+++ b/arch/arm/cpu/armv7/start.S
@@ -259,10 +259,12 @@  clear_bss:
 #endif
 	mov	r2, #0x00000000		/* clear			    */
 
-clbss_l:str	r2, [r0]		/* clear loop...		    */
+clbss_l:cmp	r0, r1			/* clear loop... */
+	bhs	clbss_e			/* if reached end of bss, exit */
+	str	r2, [r0]
 	add	r0, r0, #4
-	cmp	r0, r1
-	bne	clbss_l
+	b	clbss_l
+clbss_e:
 
 /*
  * We are done. Do not return, instead branch to second part of board
diff --git a/arch/arm/cpu/ixp/start.S b/arch/arm/cpu/ixp/start.S
index cb32121..59c359a 100644
--- a/arch/arm/cpu/ixp/start.S
+++ b/arch/arm/cpu/ixp/start.S
@@ -334,10 +334,12 @@  clear_bss:
 	add	r1, r1, r4
 	mov	r2, #0x00000000		/* clear			    */
 
-clbss_l:str	r2, [r0]		/* clear loop...		    */
+clbss_l:cmp	r0, r1			/* clear loop... */
+	bhs	clbss_e			/* if reached end of bss, exit */
+	str	r2, [r0]
 	add	r0, r0, #4
-	cmp	r0, r1
-	bne	clbss_l
+	b	clbss_l
+clbss_e:
 
 	bl coloured_LED_init
 	bl red_led_on
diff --git a/arch/arm/cpu/lh7a40x/start.S b/arch/arm/cpu/lh7a40x/start.S
index 62de8b8..bd68cd4 100644
--- a/arch/arm/cpu/lh7a40x/start.S
+++ b/arch/arm/cpu/lh7a40x/start.S
@@ -245,10 +245,12 @@  clear_bss:
 	add	r1, r1, r4
 	mov	r2, #0x00000000		/* clear			    */
 
-clbss_l:str	r2, [r0]		/* clear loop...		    */
+clbss_l:cmp	r0, r1			/* clear loop... */
+	bhs	clbss_e			/* if reached end of bss, exit */
+	str	r2, [r0]
 	add	r0, r0, #4
-	cmp	r0, r1
-	bne	clbss_l
+	b	clbss_l
+clbss_e:
 #endif
 
 /*
diff --git a/arch/arm/cpu/pxa/start.S b/arch/arm/cpu/pxa/start.S
index ba0de8f..33c73f6 100644
--- a/arch/arm/cpu/pxa/start.S
+++ b/arch/arm/cpu/pxa/start.S
@@ -258,10 +258,12 @@  clear_bss:
 	add	r1, r1, r4
 	mov	r2, #0x00000000		/* clear			    */
 
-clbss_l:str	r2, [r0]		/* clear loop...		    */
+clbss_l:cmp	r0, r1			/* clear loop... */
+	bhs	clbss_e			/* if reached end of bss, exit */
+	str	r2, [r0]
 	add	r0, r0, #4
-	cmp	r0, r1
-	bne	clbss_l
+	b	clbss_l
+clbss_e:
 #endif	/* #ifndef CONFIG_SPL_BUILD */
 
 /*
diff --git a/arch/arm/cpu/s3c44b0/start.S b/arch/arm/cpu/s3c44b0/start.S
index a29d5b4..8daf26c 100644
--- a/arch/arm/cpu/s3c44b0/start.S
+++ b/arch/arm/cpu/s3c44b0/start.S
@@ -217,10 +217,12 @@  clear_bss:
 	add	r1, r1, r4
 	mov	r2, #0x00000000		/* clear			    */
 
-clbss_l:str	r2, [r0]		/* clear loop...		    */
+clbss_l:cmp	r0, r1			/* clear loop... */
+	bhs	clbss_e			/* if reached end of bss, exit */
+	str	r2, [r0]
 	add	r0, r0, #4
-	cmp	r0, r1
-	bne	clbss_l
+	b	clbss_l
+clbss_e:
 
 	bl coloured_LED_init
 	bl red_led_on
diff --git a/arch/arm/cpu/sa1100/start.S b/arch/arm/cpu/sa1100/start.S
index 92546d8..bcea2a8 100644
--- a/arch/arm/cpu/sa1100/start.S
+++ b/arch/arm/cpu/sa1100/start.S
@@ -221,10 +221,12 @@  clear_bss:
 	add	r1, r1, r4
 	mov	r2, #0x00000000		/* clear			    */
 
-clbss_l:str	r2, [r0]		/* clear loop...		    */
+clbss_l:cmp	r0, r1			/* clear loop... */
+	bhs	clbss_e			/* if reached end of bss, exit */
+	str	r2, [r0]
 	add	r0, r0, #4
-	cmp	r0, r1
-	bne	clbss_l
+	b	clbss_l
+clbss_e:
 #endif
 
 /*