diff mbox

[v2] mtd: fix the wrong timeo for panic_nand_wait()

Message ID 1358818230-27037-1-git-send-email-b32955@freescale.com
State Accepted
Commit 6d2559f8bc297597f8058ee75bdb8060edd5214d
Headers show

Commit Message

Huang Shijie Jan. 22, 2013, 1:30 a.m. UTC
In nand_wait(), the timeo for panic_nand_wait() is assigned with
wrong value(jiffies + some delay). The timeo should be set like the
panic_nand_write() does.

This patch fixes it, and also uses the msecs_to_jiffies() to make the
code more readable.

Signed-off-by: Huang Shijie <b32955@freescale.com>
---
fix the compiler error in version 1, and add some commits.

---
 drivers/mtd/nand/nand_base.c |    8 ++------
 1 files changed, 2 insertions(+), 6 deletions(-)

Comments

Florian Fainelli Jan. 29, 2013, 9 p.m. UTC | #1
Hello Huang,

Le mardi 22 janvier 2013 02:30:30, Huang Shijie a écrit :
> In nand_wait(), the timeo for panic_nand_wait() is assigned with
> wrong value(jiffies + some delay). The timeo should be set like the
> panic_nand_write() does.
> 
> This patch fixes it, and also uses the msecs_to_jiffies() to make the
> code more readable.

You are not exactly explaining what is the issue with the current code, and 
how you are fixing it. If someone needs to backport this patch for whatever 
reason, it must be clear as to what it fixes.

> 
> Signed-off-by: Huang Shijie <b32955@freescale.com>
> ---
> fix the compiler error in version 1, and add some commits.
> 
> ---
>  drivers/mtd/nand/nand_base.c |    8 ++------
>  1 files changed, 2 insertions(+), 6 deletions(-)
> 
> diff --git a/drivers/mtd/nand/nand_base.c b/drivers/mtd/nand/nand_base.c
> index 8323ac9..a8c1fb4 100644
> --- a/drivers/mtd/nand/nand_base.c
> +++ b/drivers/mtd/nand/nand_base.c
> @@ -825,13 +825,8 @@ static void panic_nand_wait(struct mtd_info *mtd,
> struct nand_chip *chip, static int nand_wait(struct mtd_info *mtd, struct
> nand_chip *chip) {
> 
> -	unsigned long timeo = jiffies;
>  	int status, state = chip->state;
> -
> -	if (state == FL_ERASING)
> -		timeo += (HZ * 400) / 1000;
> -	else
> -		timeo += (HZ * 20) / 1000;
> +	unsigned long timeo = (state == FL_ERASING ? 400 : 20);
> 
>  	led_trigger_event(nand_led_trigger, LED_FULL);
> 
> @@ -849,6 +844,7 @@ static int nand_wait(struct mtd_info *mtd, struct
> nand_chip *chip) if (in_interrupt() || oops_in_progress)
>  		panic_nand_wait(mtd, chip, timeo);
>  	else {
> +		timeo = jiffies + msecs_to_jiffies(timeo);
>  		while (time_before(jiffies, timeo)) {
>  			if (chip->dev_ready) {
>  				if (chip->dev_ready(mtd))
Huang Shijie Jan. 30, 2013, 2:31 a.m. UTC | #2
于 2013年01月30日 05:00, Florian Fainelli 写道:
> Hello Huang,
>
> Le mardi 22 janvier 2013 02:30:30, Huang Shijie a écrit :
>> In nand_wait(), the timeo for panic_nand_wait() is assigned with
>> wrong value(jiffies + some delay). The timeo should be set like the
>> panic_nand_write() does.
>>
>> This patch fixes it, and also uses the msecs_to_jiffies() to make the
>> code more readable.
> You are not exactly explaining what is the issue with the current code, and
> how you are fixing it. If someone needs to backport this patch for whatever
> reason, it must be clear as to what it fixes.
ok, i can add more comments.
thanks for your review.

Best Regards
Huang Shijie

>> Signed-off-by: Huang Shijie<b32955@freescale.com>
>> ---
>> fix the compiler error in version 1, and add some commits.
>>
>> ---
>>   drivers/mtd/nand/nand_base.c |    8 ++------
>>   1 files changed, 2 insertions(+), 6 deletions(-)
>>
>> diff --git a/drivers/mtd/nand/nand_base.c b/drivers/mtd/nand/nand_base.c
>> index 8323ac9..a8c1fb4 100644
>> --- a/drivers/mtd/nand/nand_base.c
>> +++ b/drivers/mtd/nand/nand_base.c
>> @@ -825,13 +825,8 @@ static void panic_nand_wait(struct mtd_info *mtd,
>> struct nand_chip *chip, static int nand_wait(struct mtd_info *mtd, struct
>> nand_chip *chip) {
>>
>> -	unsigned long timeo = jiffies;
>>   	int status, state = chip->state;
>> -
>> -	if (state == FL_ERASING)
>> -		timeo += (HZ * 400) / 1000;
>> -	else
>> -		timeo += (HZ * 20) / 1000;
>> +	unsigned long timeo = (state == FL_ERASING ? 400 : 20);
>>
>>   	led_trigger_event(nand_led_trigger, LED_FULL);
>>
>> @@ -849,6 +844,7 @@ static int nand_wait(struct mtd_info *mtd, struct
>> nand_chip *chip) if (in_interrupt() || oops_in_progress)
>>   		panic_nand_wait(mtd, chip, timeo);
>>   	else {
>> +		timeo = jiffies + msecs_to_jiffies(timeo);
>>   		while (time_before(jiffies, timeo)) {
>>   			if (chip->dev_ready) {
>>   				if (chip->dev_ready(mtd))
diff mbox

Patch

diff --git a/drivers/mtd/nand/nand_base.c b/drivers/mtd/nand/nand_base.c
index 8323ac9..a8c1fb4 100644
--- a/drivers/mtd/nand/nand_base.c
+++ b/drivers/mtd/nand/nand_base.c
@@ -825,13 +825,8 @@  static void panic_nand_wait(struct mtd_info *mtd, struct nand_chip *chip,
 static int nand_wait(struct mtd_info *mtd, struct nand_chip *chip)
 {
 
-	unsigned long timeo = jiffies;
 	int status, state = chip->state;
-
-	if (state == FL_ERASING)
-		timeo += (HZ * 400) / 1000;
-	else
-		timeo += (HZ * 20) / 1000;
+	unsigned long timeo = (state == FL_ERASING ? 400 : 20);
 
 	led_trigger_event(nand_led_trigger, LED_FULL);
 
@@ -849,6 +844,7 @@  static int nand_wait(struct mtd_info *mtd, struct nand_chip *chip)
 	if (in_interrupt() || oops_in_progress)
 		panic_nand_wait(mtd, chip, timeo);
 	else {
+		timeo = jiffies + msecs_to_jiffies(timeo);
 		while (time_before(jiffies, timeo)) {
 			if (chip->dev_ready) {
 				if (chip->dev_ready(mtd))