* [PATCH v2 0/3] mtd: lpddr: Fix bad logic bug in print_drs_error
@ 2020-04-27 19:48 Gustavo A. R. Silva
2020-04-27 19:50 ` [PATCH v2 1/3] mtd: lpddr: Fix bad logic " Gustavo A. R. Silva
` (2 more replies)
0 siblings, 3 replies; 11+ messages in thread
From: Gustavo A. R. Silva @ 2020-04-27 19:48 UTC (permalink / raw)
To: linux-kernel
Cc: Vignesh Raghavendra, Gustavo A. R. Silva, Richard Weinberger,
linux-mtd, Miquel Raynal, Joe Perches
Hi,
This series aims to fix a bad logic bug in print_drs_error, which is
tagged for -stable. The series also include some formatting fixups.
Thanks
Changes in v2:
- Coalesce formats in Patch 2.
- Remove inline from print_drs_error in Patch 3.
- Update changelog texts according to the last
changes.
Gustavo A. R. Silva (3):
mtd: lpddr: Fix bad logic in print_drs_error
mtd: lpddr: Replace printk with pr_notice
mtd: lpddr: Move function print_drs_error to lpddr_cmds.c
drivers/mtd/lpddr/lpddr_cmds.c | 28 ++++++++++++++++++++++++++++
include/linux/mtd/pfow.h | 33 ---------------------------------
2 files changed, 28 insertions(+), 33 deletions(-)
--
2.26.0
______________________________________________________
Linux MTD discussion mailing list
http://lists.infradead.org/mailman/listinfo/linux-mtd/
^ permalink raw reply [flat|nested] 11+ messages in thread
* [PATCH v2 1/3] mtd: lpddr: Fix bad logic in print_drs_error
2020-04-27 19:48 [PATCH v2 0/3] mtd: lpddr: Fix bad logic bug in print_drs_error Gustavo A. R. Silva
@ 2020-04-27 19:50 ` Gustavo A. R. Silva
2020-04-27 20:08 ` Miquel Raynal
2020-09-07 7:34 ` Miquel Raynal
2020-04-27 19:54 ` [PATCH v2 2/3] mtd: lpddr: Replace printk with pr_notice Gustavo A. R. Silva
2020-04-27 19:56 ` [PATCH v2 3/3] mtd: lpddr: Move function print_drs_error to lpddr_cmds.c Gustavo A. R. Silva
2 siblings, 2 replies; 11+ messages in thread
From: Gustavo A. R. Silva @ 2020-04-27 19:50 UTC (permalink / raw)
To: linux-kernel
Cc: Vignesh Raghavendra, Gustavo A. R. Silva, Richard Weinberger,
linux-mtd, Miquel Raynal, Joe Perches
Update logic for broken test. Use a more common logging style.
It appears the logic in this function is broken for the
consecutive tests of
if (prog_status & 0x3)
...
else if (prog_status & 0x2)
...
else (prog_status & 0x1)
...
Likely the first test should be
if ((prog_status & 0x3) == 0x3)
Found by inspection of include files using printk.
Fixes: eb3db27507f7 ("[MTD] LPDDR PFOW definition")
Cc: stable@vger.kernel.org
Reported-by: Joe Perches <joe@perches.com>
Signed-off-by: Gustavo A. R. Silva <gustavo@embeddedor.com>
---
Changes in v2:
- None.
include/linux/mtd/pfow.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/include/linux/mtd/pfow.h b/include/linux/mtd/pfow.h
index 122f3439e1af..c65d7a3be3c6 100644
--- a/include/linux/mtd/pfow.h
+++ b/include/linux/mtd/pfow.h
@@ -128,7 +128,7 @@ static inline void print_drs_error(unsigned dsr)
if (!(dsr & DSR_AVAILABLE))
printk(KERN_NOTICE"DSR.15: (0) Device not Available\n");
- if (prog_status & 0x03)
+ if ((prog_status & 0x03) == 0x03)
printk(KERN_NOTICE"DSR.9,8: (11) Attempt to program invalid "
"half with 41h command\n");
else if (prog_status & 0x02)
--
2.26.0
______________________________________________________
Linux MTD discussion mailing list
http://lists.infradead.org/mailman/listinfo/linux-mtd/
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [PATCH v2 2/3] mtd: lpddr: Replace printk with pr_notice
2020-04-27 19:48 [PATCH v2 0/3] mtd: lpddr: Fix bad logic bug in print_drs_error Gustavo A. R. Silva
2020-04-27 19:50 ` [PATCH v2 1/3] mtd: lpddr: Fix bad logic " Gustavo A. R. Silva
@ 2020-04-27 19:54 ` Gustavo A. R. Silva
2020-04-27 20:09 ` Miquel Raynal
2020-09-07 7:34 ` Miquel Raynal
2020-04-27 19:56 ` [PATCH v2 3/3] mtd: lpddr: Move function print_drs_error to lpddr_cmds.c Gustavo A. R. Silva
2 siblings, 2 replies; 11+ messages in thread
From: Gustavo A. R. Silva @ 2020-04-27 19:54 UTC (permalink / raw)
To: linux-kernel
Cc: Vignesh Raghavendra, Gustavo A. R. Silva, Richard Weinberger,
linux-mtd, Miquel Raynal, Joe Perches
pr_notice is preferred over printk.
Also, coalesce formats as coalescing is part of coding-style:
"never break user-visible strings such as printk messages"
Suggested-by: Joe Perches <joe@perches.com>
Signed-off-by: Gustavo A. R. Silva <gustavo@embeddedor.com>
---
Changes in v2:
- Coalesce formats and update changelog text, accordingly.
include/linux/mtd/pfow.h | 27 +++++++++++----------------
1 file changed, 11 insertions(+), 16 deletions(-)
diff --git a/include/linux/mtd/pfow.h b/include/linux/mtd/pfow.h
index c65d7a3be3c6..cd21c6768065 100644
--- a/include/linux/mtd/pfow.h
+++ b/include/linux/mtd/pfow.h
@@ -127,31 +127,26 @@ static inline void print_drs_error(unsigned dsr)
int prog_status = (dsr & DSR_RPS) >> 8;
if (!(dsr & DSR_AVAILABLE))
- printk(KERN_NOTICE"DSR.15: (0) Device not Available\n");
+ pr_notice("DSR.15: (0) Device not Available\n");
if ((prog_status & 0x03) == 0x03)
- printk(KERN_NOTICE"DSR.9,8: (11) Attempt to program invalid "
- "half with 41h command\n");
+ pr_notice("DSR.9,8: (11) Attempt to program invalid half with 41h command\n");
else if (prog_status & 0x02)
- printk(KERN_NOTICE"DSR.9,8: (10) Object Mode Program attempt "
- "in region with Control Mode data\n");
+ pr_notice("DSR.9,8: (10) Object Mode Program attempt in region with Control Mode data\n");
else if (prog_status & 0x01)
- printk(KERN_NOTICE"DSR.9,8: (01) Program attempt in region "
- "with Object Mode data\n");
+ pr_notice("DSR.9,8: (01) Program attempt in region with Object Mode data\n");
if (!(dsr & DSR_READY_STATUS))
- printk(KERN_NOTICE"DSR.7: (0) Device is Busy\n");
+ pr_notice("DSR.7: (0) Device is Busy\n");
if (dsr & DSR_ESS)
- printk(KERN_NOTICE"DSR.6: (1) Erase Suspended\n");
+ pr_notice("DSR.6: (1) Erase Suspended\n");
if (dsr & DSR_ERASE_STATUS)
- printk(KERN_NOTICE"DSR.5: (1) Erase/Blank check error\n");
+ pr_notice("DSR.5: (1) Erase/Blank check error\n");
if (dsr & DSR_PROGRAM_STATUS)
- printk(KERN_NOTICE"DSR.4: (1) Program Error\n");
+ pr_notice("DSR.4: (1) Program Error\n");
if (dsr & DSR_VPPS)
- printk(KERN_NOTICE"DSR.3: (1) Vpp low detect, operation "
- "aborted\n");
+ pr_notice("DSR.3: (1) Vpp low detect, operation aborted\n");
if (dsr & DSR_PSS)
- printk(KERN_NOTICE"DSR.2: (1) Program suspended\n");
+ pr_notice("DSR.2: (1) Program suspended\n");
if (dsr & DSR_DPS)
- printk(KERN_NOTICE"DSR.1: (1) Aborted Erase/Program attempt "
- "on locked block\n");
+ pr_notice("DSR.1: (1) Aborted Erase/Program attempt on locked block\n");
}
#endif /* __LINUX_MTD_PFOW_H */
--
2.26.0
______________________________________________________
Linux MTD discussion mailing list
http://lists.infradead.org/mailman/listinfo/linux-mtd/
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [PATCH v2 3/3] mtd: lpddr: Move function print_drs_error to lpddr_cmds.c
2020-04-27 19:48 [PATCH v2 0/3] mtd: lpddr: Fix bad logic bug in print_drs_error Gustavo A. R. Silva
2020-04-27 19:50 ` [PATCH v2 1/3] mtd: lpddr: Fix bad logic " Gustavo A. R. Silva
2020-04-27 19:54 ` [PATCH v2 2/3] mtd: lpddr: Replace printk with pr_notice Gustavo A. R. Silva
@ 2020-04-27 19:56 ` Gustavo A. R. Silva
2020-04-27 20:09 ` Miquel Raynal
2020-09-07 7:34 ` Miquel Raynal
2 siblings, 2 replies; 11+ messages in thread
From: Gustavo A. R. Silva @ 2020-04-27 19:56 UTC (permalink / raw)
To: linux-kernel
Cc: Vignesh Raghavendra, Gustavo A. R. Silva, Richard Weinberger,
linux-mtd, Miquel Raynal, Joe Perches
Function print_drs_error is only used in drivers/mtd/lpddr/lpddr_cmds.c
so, better to move it there.
Also, notice that there's no need for inline as the function is used
once. Lastly, fix the following checkpatch warning:
WARNING: Prefer 'unsigned int' to bare use of 'unsigned'
+static void print_drs_error(unsigned dsr)
Suggested-by: Joe Perches <joe@perches.com>
Signed-off-by: Gustavo A. R. Silva <gustavo@embeddedor.com>
---
Changes in v2:
- Remove inline from print_drs_error and update changelog text,
accordingly.
drivers/mtd/lpddr/lpddr_cmds.c | 28 ++++++++++++++++++++++++++++
include/linux/mtd/pfow.h | 28 ----------------------------
2 files changed, 28 insertions(+), 28 deletions(-)
diff --git a/drivers/mtd/lpddr/lpddr_cmds.c b/drivers/mtd/lpddr/lpddr_cmds.c
index fb1cbc9a2870..ee063baed136 100644
--- a/drivers/mtd/lpddr/lpddr_cmds.c
+++ b/drivers/mtd/lpddr/lpddr_cmds.c
@@ -94,6 +94,34 @@ struct mtd_info *lpddr_cmdset(struct map_info *map)
}
EXPORT_SYMBOL(lpddr_cmdset);
+static void print_drs_error(unsigned int dsr)
+{
+ int prog_status = (dsr & DSR_RPS) >> 8;
+
+ if (!(dsr & DSR_AVAILABLE))
+ pr_notice("DSR.15: (0) Device not Available\n");
+ if ((prog_status & 0x03) == 0x03)
+ pr_notice("DSR.9,8: (11) Attempt to program invalid half with 41h command\n");
+ else if (prog_status & 0x02)
+ pr_notice("DSR.9,8: (10) Object Mode Program attempt in region with Control Mode data\n");
+ else if (prog_status & 0x01)
+ pr_notice("DSR.9,8: (01) Program attempt in region with Object Mode data\n");
+ if (!(dsr & DSR_READY_STATUS))
+ pr_notice("DSR.7: (0) Device is Busy\n");
+ if (dsr & DSR_ESS)
+ pr_notice("DSR.6: (1) Erase Suspended\n");
+ if (dsr & DSR_ERASE_STATUS)
+ pr_notice("DSR.5: (1) Erase/Blank check error\n");
+ if (dsr & DSR_PROGRAM_STATUS)
+ pr_notice("DSR.4: (1) Program Error\n");
+ if (dsr & DSR_VPPS)
+ pr_notice("DSR.3: (1) Vpp low detect, operation aborted\n");
+ if (dsr & DSR_PSS)
+ pr_notice("DSR.2: (1) Program suspended\n");
+ if (dsr & DSR_DPS)
+ pr_notice("DSR.1: (1) Aborted Erase/Program attempt on locked block\n");
+}
+
static int wait_for_ready(struct map_info *map, struct flchip *chip,
unsigned int chip_op_time)
{
diff --git a/include/linux/mtd/pfow.h b/include/linux/mtd/pfow.h
index cd21c6768065..b3eae82eb03c 100644
--- a/include/linux/mtd/pfow.h
+++ b/include/linux/mtd/pfow.h
@@ -121,32 +121,4 @@ static inline void send_pfow_command(struct map_info *map,
map_write(map, CMD(LPDDR_START_EXECUTION),
map->pfow_base + PFOW_COMMAND_EXECUTE);
}
-
-static inline void print_drs_error(unsigned dsr)
-{
- int prog_status = (dsr & DSR_RPS) >> 8;
-
- if (!(dsr & DSR_AVAILABLE))
- pr_notice("DSR.15: (0) Device not Available\n");
- if ((prog_status & 0x03) == 0x03)
- pr_notice("DSR.9,8: (11) Attempt to program invalid half with 41h command\n");
- else if (prog_status & 0x02)
- pr_notice("DSR.9,8: (10) Object Mode Program attempt in region with Control Mode data\n");
- else if (prog_status & 0x01)
- pr_notice("DSR.9,8: (01) Program attempt in region with Object Mode data\n");
- if (!(dsr & DSR_READY_STATUS))
- pr_notice("DSR.7: (0) Device is Busy\n");
- if (dsr & DSR_ESS)
- pr_notice("DSR.6: (1) Erase Suspended\n");
- if (dsr & DSR_ERASE_STATUS)
- pr_notice("DSR.5: (1) Erase/Blank check error\n");
- if (dsr & DSR_PROGRAM_STATUS)
- pr_notice("DSR.4: (1) Program Error\n");
- if (dsr & DSR_VPPS)
- pr_notice("DSR.3: (1) Vpp low detect, operation aborted\n");
- if (dsr & DSR_PSS)
- pr_notice("DSR.2: (1) Program suspended\n");
- if (dsr & DSR_DPS)
- pr_notice("DSR.1: (1) Aborted Erase/Program attempt on locked block\n");
-}
#endif /* __LINUX_MTD_PFOW_H */
--
2.26.0
______________________________________________________
Linux MTD discussion mailing list
http://lists.infradead.org/mailman/listinfo/linux-mtd/
^ permalink raw reply related [flat|nested] 11+ messages in thread
* Re: [PATCH v2 1/3] mtd: lpddr: Fix bad logic in print_drs_error
2020-04-27 19:50 ` [PATCH v2 1/3] mtd: lpddr: Fix bad logic " Gustavo A. R. Silva
@ 2020-04-27 20:08 ` Miquel Raynal
2020-05-19 16:22 ` Gustavo A. R. Silva
2020-09-07 7:34 ` Miquel Raynal
1 sibling, 1 reply; 11+ messages in thread
From: Miquel Raynal @ 2020-04-27 20:08 UTC (permalink / raw)
To: Gustavo A. R. Silva
Cc: Joe Perches, Richard Weinberger, linux-mtd, linux-kernel,
Vignesh Raghavendra
Hi Gustavo,
"Gustavo A. R. Silva" <gustavo@embeddedor.com> wrote on Mon, 27 Apr
2020 14:50:37 -0500:
> Update logic for broken test. Use a more common logging style.
>
> It appears the logic in this function is broken for the
> consecutive tests of
>
> if (prog_status & 0x3)
> ...
> else if (prog_status & 0x2)
> ...
> else (prog_status & 0x1)
> ...
>
> Likely the first test should be
>
> if ((prog_status & 0x3) == 0x3)
>
> Found by inspection of include files using printk.
>
> Fixes: eb3db27507f7 ("[MTD] LPDDR PFOW definition")
> Cc: stable@vger.kernel.org
> Reported-by: Joe Perches <joe@perches.com>
> Signed-off-by: Gustavo A. R. Silva <gustavo@embeddedor.com>
> ---
> Changes in v2:
> - None.
>
> include/linux/mtd/pfow.h | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/include/linux/mtd/pfow.h b/include/linux/mtd/pfow.h
> index 122f3439e1af..c65d7a3be3c6 100644
> --- a/include/linux/mtd/pfow.h
> +++ b/include/linux/mtd/pfow.h
> @@ -128,7 +128,7 @@ static inline void print_drs_error(unsigned dsr)
>
> if (!(dsr & DSR_AVAILABLE))
> printk(KERN_NOTICE"DSR.15: (0) Device not Available\n");
> - if (prog_status & 0x03)
> + if ((prog_status & 0x03) == 0x03)
> printk(KERN_NOTICE"DSR.9,8: (11) Attempt to program invalid "
> "half with 41h command\n");
> else if (prog_status & 0x02)
Acked-by: Miquel Raynal <miquel.raynal@bootlin.com>
Thanks,
Miquèl
______________________________________________________
Linux MTD discussion mailing list
http://lists.infradead.org/mailman/listinfo/linux-mtd/
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH v2 2/3] mtd: lpddr: Replace printk with pr_notice
2020-04-27 19:54 ` [PATCH v2 2/3] mtd: lpddr: Replace printk with pr_notice Gustavo A. R. Silva
@ 2020-04-27 20:09 ` Miquel Raynal
2020-09-07 7:34 ` Miquel Raynal
1 sibling, 0 replies; 11+ messages in thread
From: Miquel Raynal @ 2020-04-27 20:09 UTC (permalink / raw)
To: Gustavo A. R. Silva
Cc: Joe Perches, Richard Weinberger, linux-mtd, linux-kernel,
Vignesh Raghavendra
Hi Gustavo,
"Gustavo A. R. Silva" <gustavo@embeddedor.com> wrote on Mon, 27 Apr
2020 14:54:13 -0500:
> pr_notice is preferred over printk.
>
> Also, coalesce formats as coalescing is part of coding-style:
> "never break user-visible strings such as printk messages"
>
> Suggested-by: Joe Perches <joe@perches.com>
> Signed-off-by: Gustavo A. R. Silva <gustavo@embeddedor.com>
> ---
> Changes in v2:
> - Coalesce formats and update changelog text, accordingly.
>
> include/linux/mtd/pfow.h | 27 +++++++++++----------------
> 1 file changed, 11 insertions(+), 16 deletions(-)
>
> diff --git a/include/linux/mtd/pfow.h b/include/linux/mtd/pfow.h
> index c65d7a3be3c6..cd21c6768065 100644
> --- a/include/linux/mtd/pfow.h
> +++ b/include/linux/mtd/pfow.h
> @@ -127,31 +127,26 @@ static inline void print_drs_error(unsigned dsr)
> int prog_status = (dsr & DSR_RPS) >> 8;
>
> if (!(dsr & DSR_AVAILABLE))
> - printk(KERN_NOTICE"DSR.15: (0) Device not Available\n");
> + pr_notice("DSR.15: (0) Device not Available\n");
> if ((prog_status & 0x03) == 0x03)
> - printk(KERN_NOTICE"DSR.9,8: (11) Attempt to program invalid "
> - "half with 41h command\n");
> + pr_notice("DSR.9,8: (11) Attempt to program invalid half with 41h command\n");
> else if (prog_status & 0x02)
> - printk(KERN_NOTICE"DSR.9,8: (10) Object Mode Program attempt "
> - "in region with Control Mode data\n");
> + pr_notice("DSR.9,8: (10) Object Mode Program attempt in region with Control Mode data\n");
> else if (prog_status & 0x01)
> - printk(KERN_NOTICE"DSR.9,8: (01) Program attempt in region "
> - "with Object Mode data\n");
> + pr_notice("DSR.9,8: (01) Program attempt in region with Object Mode data\n");
> if (!(dsr & DSR_READY_STATUS))
> - printk(KERN_NOTICE"DSR.7: (0) Device is Busy\n");
> + pr_notice("DSR.7: (0) Device is Busy\n");
> if (dsr & DSR_ESS)
> - printk(KERN_NOTICE"DSR.6: (1) Erase Suspended\n");
> + pr_notice("DSR.6: (1) Erase Suspended\n");
> if (dsr & DSR_ERASE_STATUS)
> - printk(KERN_NOTICE"DSR.5: (1) Erase/Blank check error\n");
> + pr_notice("DSR.5: (1) Erase/Blank check error\n");
> if (dsr & DSR_PROGRAM_STATUS)
> - printk(KERN_NOTICE"DSR.4: (1) Program Error\n");
> + pr_notice("DSR.4: (1) Program Error\n");
> if (dsr & DSR_VPPS)
> - printk(KERN_NOTICE"DSR.3: (1) Vpp low detect, operation "
> - "aborted\n");
> + pr_notice("DSR.3: (1) Vpp low detect, operation aborted\n");
> if (dsr & DSR_PSS)
> - printk(KERN_NOTICE"DSR.2: (1) Program suspended\n");
> + pr_notice("DSR.2: (1) Program suspended\n");
> if (dsr & DSR_DPS)
> - printk(KERN_NOTICE"DSR.1: (1) Aborted Erase/Program attempt "
> - "on locked block\n");
> + pr_notice("DSR.1: (1) Aborted Erase/Program attempt on locked block\n");
> }
> #endif /* __LINUX_MTD_PFOW_H */
Reviewed-by: Miquel Raynal <miquel.raynal@bootlin.com>
Thanks,
Miquèl
______________________________________________________
Linux MTD discussion mailing list
http://lists.infradead.org/mailman/listinfo/linux-mtd/
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH v2 3/3] mtd: lpddr: Move function print_drs_error to lpddr_cmds.c
2020-04-27 19:56 ` [PATCH v2 3/3] mtd: lpddr: Move function print_drs_error to lpddr_cmds.c Gustavo A. R. Silva
@ 2020-04-27 20:09 ` Miquel Raynal
2020-09-07 7:34 ` Miquel Raynal
1 sibling, 0 replies; 11+ messages in thread
From: Miquel Raynal @ 2020-04-27 20:09 UTC (permalink / raw)
To: Gustavo A. R. Silva
Cc: Joe Perches, Richard Weinberger, linux-mtd, linux-kernel,
Vignesh Raghavendra
Hi Gustavo,
"Gustavo A. R. Silva" <gustavo@embeddedor.com> wrote on Mon, 27 Apr
2020 14:56:08 -0500:
> Function print_drs_error is only used in drivers/mtd/lpddr/lpddr_cmds.c
> so, better to move it there.
>
> Also, notice that there's no need for inline as the function is used
> once. Lastly, fix the following checkpatch warning:
>
> WARNING: Prefer 'unsigned int' to bare use of 'unsigned'
> +static void print_drs_error(unsigned dsr)
>
> Suggested-by: Joe Perches <joe@perches.com>
> Signed-off-by: Gustavo A. R. Silva <gustavo@embeddedor.com>
> ---
> Changes in v2:
> - Remove inline from print_drs_error and update changelog text,
> accordingly.
>
Reviewed-by: Miquel Raynal <miquel.raynal@bootlin.com>
Thanks,
Miquèl
______________________________________________________
Linux MTD discussion mailing list
http://lists.infradead.org/mailman/listinfo/linux-mtd/
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH v2 1/3] mtd: lpddr: Fix bad logic in print_drs_error
2020-04-27 20:08 ` Miquel Raynal
@ 2020-05-19 16:22 ` Gustavo A. R. Silva
0 siblings, 0 replies; 11+ messages in thread
From: Gustavo A. R. Silva @ 2020-05-19 16:22 UTC (permalink / raw)
To: Miquel Raynal
Cc: Joe Perches, Richard Weinberger, linux-mtd, linux-kernel,
Vignesh Raghavendra
Hi all,
Friendly ping: who can take this?
Thanks
--
Gustavo
On 4/27/20 15:08, Miquel Raynal wrote:
> Hi Gustavo,
>
> "Gustavo A. R. Silva" <gustavo@embeddedor.com> wrote on Mon, 27 Apr
> 2020 14:50:37 -0500:
>
>> Update logic for broken test. Use a more common logging style.
>>
>> It appears the logic in this function is broken for the
>> consecutive tests of
>>
>> if (prog_status & 0x3)
>> ...
>> else if (prog_status & 0x2)
>> ...
>> else (prog_status & 0x1)
>> ...
>>
>> Likely the first test should be
>>
>> if ((prog_status & 0x3) == 0x3)
>>
>> Found by inspection of include files using printk.
>>
>> Fixes: eb3db27507f7 ("[MTD] LPDDR PFOW definition")
>> Cc: stable@vger.kernel.org
>> Reported-by: Joe Perches <joe@perches.com>
>> Signed-off-by: Gustavo A. R. Silva <gustavo@embeddedor.com>
>> ---
>> Changes in v2:
>> - None.
>>
>> include/linux/mtd/pfow.h | 2 +-
>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/include/linux/mtd/pfow.h b/include/linux/mtd/pfow.h
>> index 122f3439e1af..c65d7a3be3c6 100644
>> --- a/include/linux/mtd/pfow.h
>> +++ b/include/linux/mtd/pfow.h
>> @@ -128,7 +128,7 @@ static inline void print_drs_error(unsigned dsr)
>>
>> if (!(dsr & DSR_AVAILABLE))
>> printk(KERN_NOTICE"DSR.15: (0) Device not Available\n");
>> - if (prog_status & 0x03)
>> + if ((prog_status & 0x03) == 0x03)
>> printk(KERN_NOTICE"DSR.9,8: (11) Attempt to program invalid "
>> "half with 41h command\n");
>> else if (prog_status & 0x02)
>
>
> Acked-by: Miquel Raynal <miquel.raynal@bootlin.com>
>
>
> Thanks,
> Miquèl
>
______________________________________________________
Linux MTD discussion mailing list
http://lists.infradead.org/mailman/listinfo/linux-mtd/
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH v2 3/3] mtd: lpddr: Move function print_drs_error to lpddr_cmds.c
2020-04-27 19:56 ` [PATCH v2 3/3] mtd: lpddr: Move function print_drs_error to lpddr_cmds.c Gustavo A. R. Silva
2020-04-27 20:09 ` Miquel Raynal
@ 2020-09-07 7:34 ` Miquel Raynal
1 sibling, 0 replies; 11+ messages in thread
From: Miquel Raynal @ 2020-09-07 7:34 UTC (permalink / raw)
To: Gustavo A. R. Silva, linux-kernel
Cc: Joe Perches, Richard Weinberger, linux-mtd, Vignesh Raghavendra,
Miquel Raynal
On Mon, 2020-04-27 at 19:56:08 UTC, "Gustavo A. R. Silva" wrote:
> Function print_drs_error is only used in drivers/mtd/lpddr/lpddr_cmds.c
> so, better to move it there.
>
> Also, notice that there's no need for inline as the function is used
> once. Lastly, fix the following checkpatch warning:
>
> WARNING: Prefer 'unsigned int' to bare use of 'unsigned'
> +static void print_drs_error(unsigned dsr)
>
> Suggested-by: Joe Perches <joe@perches.com>
> Signed-off-by: Gustavo A. R. Silva <gustavo@embeddedor.com>
> Reviewed-by: Miquel Raynal <miquel.raynal@bootlin.com>
Applied to https://git.kernel.org/pub/scm/linux/kernel/git/mtd/linux.git mtd/next, thanks.
Miquel
______________________________________________________
Linux MTD discussion mailing list
http://lists.infradead.org/mailman/listinfo/linux-mtd/
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH v2 2/3] mtd: lpddr: Replace printk with pr_notice
2020-04-27 19:54 ` [PATCH v2 2/3] mtd: lpddr: Replace printk with pr_notice Gustavo A. R. Silva
2020-04-27 20:09 ` Miquel Raynal
@ 2020-09-07 7:34 ` Miquel Raynal
1 sibling, 0 replies; 11+ messages in thread
From: Miquel Raynal @ 2020-09-07 7:34 UTC (permalink / raw)
To: Gustavo A. R. Silva, linux-kernel
Cc: Joe Perches, Richard Weinberger, linux-mtd, Vignesh Raghavendra,
Miquel Raynal
On Mon, 2020-04-27 at 19:54:13 UTC, "Gustavo A. R. Silva" wrote:
> pr_notice is preferred over printk.
>
> Also, coalesce formats as coalescing is part of coding-style:
> "never break user-visible strings such as printk messages"
>
> Suggested-by: Joe Perches <joe@perches.com>
> Signed-off-by: Gustavo A. R. Silva <gustavo@embeddedor.com>
> Reviewed-by: Miquel Raynal <miquel.raynal@bootlin.com>
Applied to https://git.kernel.org/pub/scm/linux/kernel/git/mtd/linux.git mtd/next, thanks.
Miquel
______________________________________________________
Linux MTD discussion mailing list
http://lists.infradead.org/mailman/listinfo/linux-mtd/
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH v2 1/3] mtd: lpddr: Fix bad logic in print_drs_error
2020-04-27 19:50 ` [PATCH v2 1/3] mtd: lpddr: Fix bad logic " Gustavo A. R. Silva
2020-04-27 20:08 ` Miquel Raynal
@ 2020-09-07 7:34 ` Miquel Raynal
1 sibling, 0 replies; 11+ messages in thread
From: Miquel Raynal @ 2020-09-07 7:34 UTC (permalink / raw)
To: Gustavo A. R. Silva, linux-kernel
Cc: Joe Perches, Richard Weinberger, linux-mtd, Vignesh Raghavendra,
Miquel Raynal
On Mon, 2020-04-27 at 19:50:37 UTC, "Gustavo A. R. Silva" wrote:
> Update logic for broken test. Use a more common logging style.
>
> It appears the logic in this function is broken for the
> consecutive tests of
>
> if (prog_status & 0x3)
> ...
> else if (prog_status & 0x2)
> ...
> else (prog_status & 0x1)
> ...
>
> Likely the first test should be
>
> if ((prog_status & 0x3) == 0x3)
>
> Found by inspection of include files using printk.
>
> Fixes: eb3db27507f7 ("[MTD] LPDDR PFOW definition")
> Cc: stable@vger.kernel.org
> Reported-by: Joe Perches <joe@perches.com>
> Signed-off-by: Gustavo A. R. Silva <gustavo@embeddedor.com>
> Acked-by: Miquel Raynal <miquel.raynal@bootlin.com>
Applied to https://git.kernel.org/pub/scm/linux/kernel/git/mtd/linux.git mtd/next, thanks.
Miquel
______________________________________________________
Linux MTD discussion mailing list
http://lists.infradead.org/mailman/listinfo/linux-mtd/
^ permalink raw reply [flat|nested] 11+ messages in thread
end of thread, other threads:[~2020-09-07 7:37 UTC | newest]
Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-04-27 19:48 [PATCH v2 0/3] mtd: lpddr: Fix bad logic bug in print_drs_error Gustavo A. R. Silva
2020-04-27 19:50 ` [PATCH v2 1/3] mtd: lpddr: Fix bad logic " Gustavo A. R. Silva
2020-04-27 20:08 ` Miquel Raynal
2020-05-19 16:22 ` Gustavo A. R. Silva
2020-09-07 7:34 ` Miquel Raynal
2020-04-27 19:54 ` [PATCH v2 2/3] mtd: lpddr: Replace printk with pr_notice Gustavo A. R. Silva
2020-04-27 20:09 ` Miquel Raynal
2020-09-07 7:34 ` Miquel Raynal
2020-04-27 19:56 ` [PATCH v2 3/3] mtd: lpddr: Move function print_drs_error to lpddr_cmds.c Gustavo A. R. Silva
2020-04-27 20:09 ` Miquel Raynal
2020-09-07 7:34 ` Miquel Raynal
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).