All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] spi: spi-cadence-quadspi: Fix division by zero warning
@ 2021-07-13  7:23 Yoshitaka Ikeda
  2021-07-13 12:25 ` Mark Brown
  0 siblings, 1 reply; 5+ messages in thread
From: Yoshitaka Ikeda @ 2021-07-13  7:23 UTC (permalink / raw)
  To: Mark Brown, Philipp Zabel
  Cc: linux-spi, Masahiro Mizutani, Ken Kurematsu, Yoshitaka Ikeda

Fix below division by zero warning:
- Added an if statement because buswidth can be zero, resulting in division by zero.
- The modified code was based on another driver (atmel-quadspi).

[    0.795337] Division by zero in kernel.
[    0.797878] CPU: 1 PID: 1 Comm: swapper/0 Not tainted 5.12.0-xxx-xxxx+ #1
[    0.803782] Hardware name: Altera SOCFPGA
[    0.806481] Backtrace:
[    0.807628] [<807fd2b0>] (dump_backtrace) from [<807fd554>] (show_stack+0x20/0x24)
[    0.813899]  r7:00000000 r6:60000013 r5:00000000 r4:80de1db8
[    0.818239] [<807fd534>] (show_stack) from [<80800e84>] (dump_stack+0xa8/0xc8)
[    0.824147] [<80800ddc>] (dump_stack) from [<807fd430>] (__div0+0x24/0x28)
[    0.829712]  r7:00000000 r6:812edac0 r5:812edac0 r4:810ff9b0
[    0.834051] [<807fd40c>] (__div0) from [<804e1acc>] (Ldiv0+0x8/0x10)
[    0.839097] [<805f0710>] (cqspi_exec_mem_op) from [<805edb4c>] (spi_mem_exec_op+0x3b0/0x3f8)
[    0.846230]  r10:81d45c00 r9:812ed800 r8:812ed800 r7:810fe000 r6:81d47bc0 r5:810ff9b0
[    0.852731]  r4:00000000
[    0.853958] [<805ed79c>] (spi_mem_exec_op) from [<805df090>] (spi_nor_read_id+0x88/0x178)
[    0.860827]  r10:81d45c00 r9:0000000f r8:80946d4c r7:81c32040 r6:80946f38 r5:81d45d20
[    0.867328]  r4:81d47bc0
[    0.868556] [<805df008>] (spi_nor_read_id) from [<805e00cc>] (spi_nor_scan+0x920/0xa80)
[    0.875247]  r10:81d45c00 r9:0000000f r8:80946d4c r7:80946d78 r6:80946f38 r5:81d45d20
[    0.881748]  r4:81d41c40
[    0.882976] [<805df7ac>] (spi_nor_scan) from [<805e1388>] (spi_nor_probe+0xac/0x2d8)
[    0.889409]  r10:00000000 r9:80dee720 r8:00000000 r7:810fe000 r6:81d45c00 r5:81d45d20
[    0.895910]  r4:81d41c40
[    0.897138] [<805e12dc>] (spi_nor_probe) from [<805ed198>] (spi_mem_probe+0x94/0xa0)
[    0.903571]  r8:00000001 r7:812ed800 r6:80dee720 r5:81d47bc0 r4:81d45c00
[    0.908947] [<805ed104>] (spi_mem_probe) from [<805e6934>] (spi_probe+0x78/0x8c)
[    0.915030]  r7:80ea6844 r6:80dee710 r5:81d45c00 r4:00000000
[    0.919368] [<805e68bc>] (spi_probe) from [<805894c4>] (really_probe+0xf4/0x4b0)
[    0.925458]  r7:80ea6844 r6:00000000 r5:80ea683c r4:81d45c00
[    0.929796] [<805893d0>] (really_probe) from [<80589de8>] (__device_attach_driver+0x114/0x144)
[    0.937095]  r10:00000000 r9:80ea6814 r8:00000001 r7:81d45c00 r6:810ffbac r5:80dee720
[    0.943596]  r4:00000001
[    0.944824] [<80589cd4>] (__device_attach_driver) from [<805872e4>] (bus_for_each_drv+0x94/0xd8)
[    0.952294]  r7:80589cd4 r6:810fe000 r5:810ffbac r4:00000000
[    0.956633] [<80587250>] (bus_for_each_drv) from [<80589a74>] (__device_attach+0x104/0x15c)
[    0.963669]  r7:812ed800 r6:81d45c44 r5:810fe000 r4:81d45c00
[    0.968008] [<80589970>] (__device_attach) from [<80589e34>] (device_initial_probe+0x1c/0x20)
[    0.975219]  r8:00000000 r7:812ed800 r6:81d45c00 r5:80dee7cc r4:81d45c00
[    0.980595] [<80589e18>] (device_initial_probe) from [<8058855c>] (bus_probe_device+0x94/0x9c)
[    0.987888] [<805884c8>] (bus_probe_device) from [<80584fd4>] (device_add+0x318/0x7cc)
[    0.994491]  r7:812ed800 r6:810fe000 r5:00000000 r4:81d45c00
[    0.998830] [<80584cbc>] (device_add) from [<805eab2c>] (spi_add_device+0xc0/0x16c)
[    1.005175]  r10:0000010a r9:00000001 r8:00000000 r7:8122c210 r6:812ed800 r5:81d45c00
[    1.011675]  r4:00000000
[    1.012903] [<805eaa6c>] (spi_add_device) from [<805eaf34>] (of_register_spi_device+0x248/0x374)
[    1.020371]  r7:812ed800 r6:810fe000 r5:9fbf25e8 r4:81d45c00
[    1.024709] [<805eacec>] (of_register_spi_device) from [<805eb748>] (spi_register_controller+0x6e8/0x870)
[    1.032956]  r9:80dee8b0 r8:80a2f8f8 r7:9fbf264c r6:9fbf25e8 r5:00000000 r4:812ed800
[    1.039369] [<805eb060>] (spi_register_controller) from [<805eb914>] (devm_spi_register_controller+0x44/0x7c)
[    1.047963]  r10:80a237d8 r9:80a300ac r8:8122c210 r7:8122c210 r6:812ed800 r5:00000000
[    1.054463]  r4:81d47a40
[    1.055690] [<805eb8d0>] (devm_spi_register_controller) from [<805f044c>] (cqspi_probe+0x648/0x90c)
[    1.063418]  r7:00000000 r6:00000000 r5:00000000 r4:812edac0
[    1.067757] [<805efe04>] (cqspi_probe) from [<8058baec>] (platform_probe+0x58/0x9c)
[    1.074103]  r10:00000000 r9:80def484 r8:00000000 r7:80ea6844 r6:00000000 r5:80def484
[    1.080604]  r4:8122c210
[    1.081832] [<8058ba94>] (platform_probe) from [<805894c4>] (really_probe+0xf4/0x4b0)
[    1.088346]  r5:80ea683c r4:8122c210
[    1.090610] [<805893d0>] (really_probe) from [<80589f2c>] (device_driver_attach+0xf4/0x104)
[    1.097649]  r10:80e13000 r9:80b35854 r8:00000000 r7:8122c254 r6:80def484 r5:00000000
[    1.104150]  r4:8122c210
[    1.105377] [<80589e38>] (device_driver_attach) from [<80589fcc>] (__driver_attach+0x90/0x120)
[    1.112675]  r7:00000000 r6:8122c210 r5:80def484 r4:00000000
[    1.117014] [<80589f3c>] (__driver_attach) from [<80587210>] (bus_for_each_dev+0x88/0xc8)
[    1.123878]  r7:00000000 r6:810fe000 r5:80589f3c r4:80def484
[    1.128217] [<80587188>] (bus_for_each_dev) from [<80588d9c>] (driver_attach+0x2c/0x30)
[    1.134907]  r7:80de8b20 r6:00000000 r5:81d47580 r4:80def484
[    1.139246] [<80588d70>] (driver_attach) from [<80588774>] (bus_add_driver+0x108/0x1f0)
[    1.145934] [<8058866c>] (bus_add_driver) from [<8058a6ec>] (driver_register+0x9c/0x134)
[    1.152712]  r7:ffffe000 r6:80b22718 r5:00000000 r4:80def484
[    1.157050] [<8058a650>] (driver_register) from [<8058b810>] (__platform_driver_register+0x2c/0x34)
[    1.164776]  r5:80e07c60 r4:810fe000
[    1.167040] [<8058b7e4>] (__platform_driver_register) from [<80b2273c>] (cqspi_platform_driver_init+0x24/0x28)
[    1.175721] [<80b22718>] (cqspi_platform_driver_init) from [<80102414>] (do_one_initcall+0x60/0x2cc)
[    1.183535] [<801023b4>] (do_one_initcall) from [<80b01278>] (kernel_init_freeable+0x26c/0x2dc)
[    1.190924]  r8:80e07c60 r7:811d0240 r6:80b35834 r5:00000007 r4:80b59980
[    1.196300] [<80b0100c>] (kernel_init_freeable) from [<80806518>] (kernel_init+0x18/0x130)
[    1.203257]  r10:00000000 r9:00000000 r8:00000000 r7:00000000 r6:00000000 r5:80806500
[    1.209758]  r4:00000000
[    1.210986] [<80806500>] (kernel_init) from [<801000fc>] (ret_from_fork+0x14/0x38)
[    1.217239] Exception stack(0x810fffb0 to 0x810ffff8)
[    1.220979] ffa0:                                     00000000 00000000 00000000 00000000
[    1.227831] ffc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
[    1.234680] ffe0: 00000000 00000000 00000000 00000000 00000013 00000000
[    1.239973]  r5:80806500 r4:00000000

Signed-off-by: Yoshitaka Ikeda <ikeda@nskint.co.jp>
---
  drivers/spi/spi-cadence-quadspi.c | 10 ++++++----
  1 file changed, 6 insertions(+), 4 deletions(-)

diff --git a/drivers/spi/spi-cadence-quadspi.c b/drivers/spi/spi-cadence-quadspi.c
index 7a00346ff9b9..13d1f0ce618e 100644
--- a/drivers/spi/spi-cadence-quadspi.c
+++ b/drivers/spi/spi-cadence-quadspi.c
@@ -307,11 +307,13 @@ static unsigned int cqspi_calc_rdreg(struct cqspi_flash_pdata *f_pdata)
  
  static unsigned int cqspi_calc_dummy(const struct spi_mem_op *op, bool dtr)
  {
-	unsigned int dummy_clk;
+	unsigned int dummy_clk = 0;
  
-	dummy_clk = op->dummy.nbytes * (8 / op->dummy.buswidth);
-	if (dtr)
-		dummy_clk /= 2;
+	if (op->dummy.buswidth && op->dummy.nbytes) {
+		dummy_clk = op->dummy.nbytes * (8 / op->dummy.buswidth);
+		if (dtr)
+			dummy_clk /= 2;
+	}
  
  	return dummy_clk;
  }
-- 
2.32.0

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

* Re: [PATCH] spi: spi-cadence-quadspi: Fix division by zero warning
  2021-07-13  7:23 [PATCH] spi: spi-cadence-quadspi: Fix division by zero warning Yoshitaka Ikeda
@ 2021-07-13 12:25 ` Mark Brown
  2021-07-14  2:10   ` 池田 義隆
  0 siblings, 1 reply; 5+ messages in thread
From: Mark Brown @ 2021-07-13 12:25 UTC (permalink / raw)
  To: Yoshitaka Ikeda
  Cc: Philipp Zabel, linux-spi, Masahiro Mizutani, Ken Kurematsu

[-- Attachment #1: Type: text/plain, Size: 939 bytes --]

On Tue, Jul 13, 2021 at 07:23:12AM +0000, Yoshitaka Ikeda wrote:
> Fix below division by zero warning:
> - Added an if statement because buswidth can be zero, resulting in division by zero.
> - The modified code was based on another driver (atmel-quadspi).
> 
> [    0.795337] Division by zero in kernel.
> [    0.797878] CPU: 1 PID: 1 Comm: swapper/0 Not tainted 5.12.0-xxx-xxxx+ #1
> [    0.803782] Hardware name: Altera SOCFPGA
> [    0.806481] Backtrace:
> [    0.807628] [<807fd2b0>] (dump_backtrace) from [<807fd554>] (show_stack+0x20/0x24)

Please think hard before including complete backtraces in upstream
reports, they are very large and contain almost no useful information
relative to their size so often obscure the relevant content in your
message. If part of the backtrace is usefully illustrative (it often is
for search engines if nothing else) then it's usually better to pull out
the relevant sections.

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

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

* Re: [PATCH] spi: spi-cadence-quadspi: Fix division by zero warning
  2021-07-13 12:25 ` Mark Brown
@ 2021-07-14  2:10   ` 池田 義隆
  2021-07-14 12:30     ` Mark Brown
  0 siblings, 1 reply; 5+ messages in thread
From: 池田 義隆 @ 2021-07-14  2:10 UTC (permalink / raw)
  To: Mark Brown
  Cc: 池田 義隆,
	Philipp Zabel, linux-spi, 水谷 雅裕,
	榑松 研

On 2021/07/13 21:25, Mark Brown wrote:
> On Tue, Jul 13, 2021 at 07:23:12AM +0000, Yoshitaka Ikeda wrote:
>> Fix below division by zero warning:
>> - Added an if statement because buswidth can be zero, resulting in division by zero.
>> - The modified code was based on another driver (atmel-quadspi).
>>
>> [    0.795337] Division by zero in kernel.
>> [    0.797878] CPU: 1 PID: 1 Comm: swapper/0 Not tainted 5.12.0-xxx-xxxx+ #1
>> [    0.803782] Hardware name: Altera SOCFPGA
>> [    0.806481] Backtrace:
>> [    0.807628] [<807fd2b0>] (dump_backtrace) from [<807fd554>] (show_stack+0x20/0x24)
> 
> Please think hard before including complete backtraces in upstream
> reports, they are very large and contain almost no useful information
> relative to their size so often obscure the relevant content in your
> message. If part of the backtrace is usefully illustrative (it often is
> for search engines if nothing else) then it's usually better to pull out
> the relevant sections.

Thanks for the reply.

Indeed, I too think that the tracing part should be limited to the useful range.
I would like to modify the tracing part as follows and repost it.
Do you think I should narrow it down further or do you think it is too narrow? Or unnecessary?

[    0.795337] Division by zero in kernel.
  :
[    0.834051] [<807fd40c>] (__div0) from [<804e1acc>] (Ldiv0+0x8/0x10)
[    0.839097] [<805f0710>] (cqspi_exec_mem_op) from [<805edb4c>] (spi_mem_exec_op+0x3b0/0x3f8)

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

* Re: [PATCH] spi: spi-cadence-quadspi: Fix division by zero warning
  2021-07-14  2:10   ` 池田 義隆
@ 2021-07-14 12:30     ` Mark Brown
  2021-07-15  0:29       ` Yoshitaka Ikeda
  0 siblings, 1 reply; 5+ messages in thread
From: Mark Brown @ 2021-07-14 12:30 UTC (permalink / raw)
  To: 池田 義隆
  Cc: Philipp Zabel, linux-spi, 水谷 雅裕,
	榑松 研

[-- Attachment #1: Type: text/plain, Size: 343 bytes --]

On Wed, Jul 14, 2021 at 02:10:51AM +0000, 池田 義隆 wrote:

> Indeed, I too think that the tracing part should be limited to the useful range.
> I would like to modify the tracing part as follows and repost it.
> Do you think I should narrow it down further or do you think it is too narrow? Or unnecessary?

That looks good to me.

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

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

* Re: [PATCH] spi: spi-cadence-quadspi: Fix division by zero warning
  2021-07-14 12:30     ` Mark Brown
@ 2021-07-15  0:29       ` Yoshitaka Ikeda
  0 siblings, 0 replies; 5+ messages in thread
From: Yoshitaka Ikeda @ 2021-07-15  0:29 UTC (permalink / raw)
  To: Mark Brown
  Cc: Philipp Zabel, linux-spi, Masahiro Mizutani, Ken Kurematsu,
	Yoshitaka Ikeda

On 2021/07/14 21:30, Mark Brown wrote:

> That looks good to me.

Thanks for your review.
I will repost it later.

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

end of thread, other threads:[~2021-07-15  0:29 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-07-13  7:23 [PATCH] spi: spi-cadence-quadspi: Fix division by zero warning Yoshitaka Ikeda
2021-07-13 12:25 ` Mark Brown
2021-07-14  2:10   ` 池田 義隆
2021-07-14 12:30     ` Mark Brown
2021-07-15  0:29       ` Yoshitaka Ikeda

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.