* Re: [PATCH v2 2/2] dmaengine: pxa: Enable compile test
@ 2025-01-25 13:55 kernel test robot
0 siblings, 0 replies; 4+ messages in thread
From: kernel test robot @ 2025-01-25 13:55 UTC (permalink / raw)
To: oe-kbuild; +Cc: lkp, Dan Carpenter
BCC: lkp@intel.com
CC: oe-kbuild-all@lists.linux.dev
In-Reply-To: <20250114191316.857154-1-krzysztof.kozlowski@linaro.org>
References: <20250114191316.857154-1-krzysztof.kozlowski@linaro.org>
TO: Krzysztof Kozlowski <krzk@kernel.org>
Hi Krzysztof,
kernel test robot noticed the following build warnings:
[auto build test WARNING on vkoul-dmaengine/next]
[also build test WARNING on shawnguo/for-next sunxi/sunxi/for-next mani-mhi/mhi-next xilinx-xlnx/master linus/master v6.13 next-20250124]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]
url: https://github.com/intel-lab-lkp/linux/commits/Krzysztof-Kozlowski/dmaengine-pxa-Enable-compile-test/20250115-031547
base: https://git.kernel.org/pub/scm/linux/kernel/git/vkoul/dmaengine.git next
patch link: https://lore.kernel.org/r/20250114191316.857154-1-krzysztof.kozlowski%40linaro.org
patch subject: [PATCH v2 2/2] dmaengine: pxa: Enable compile test
:::::: branch date: 11 days ago
:::::: commit date: 11 days ago
config: parisc-randconfig-r072-20250124 (https://download.01.org/0day-ci/archive/20250125/202501252153.wCMpgWlF-lkp@intel.com/config)
compiler: hppa-linux-gcc (GCC) 14.2.0
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Reported-by: Dan Carpenter <error27@gmail.com>
| Closes: https://lore.kernel.org/r/202501252153.wCMpgWlF-lkp@intel.com/
New smatch warnings:
drivers/dma/pxa_dma.c:595 clear_chan_irq() warn: variable dereferenced before check 'phy->vchan' (see line 593)
Old smatch warnings:
drivers/dma/pxa_dma.c:1266 pxad_init_phys() error: uninitialized symbol 'ret'.
vim +595 drivers/dma/pxa_dma.c
a57e16cf03339c Robert Jarzmik 2015-05-25 583
a57e16cf03339c Robert Jarzmik 2015-05-25 584 static unsigned int clear_chan_irq(struct pxad_phy *phy)
a57e16cf03339c Robert Jarzmik 2015-05-25 585 {
a57e16cf03339c Robert Jarzmik 2015-05-25 586 u32 dcsr;
a57e16cf03339c Robert Jarzmik 2015-05-25 587 u32 dint = readl(phy->base + DINT);
a57e16cf03339c Robert Jarzmik 2015-05-25 588
a57e16cf03339c Robert Jarzmik 2015-05-25 589 if (!(dint & BIT(phy->idx)))
a57e16cf03339c Robert Jarzmik 2015-05-25 590 return PXA_DCSR_RUN;
a57e16cf03339c Robert Jarzmik 2015-05-25 591
a57e16cf03339c Robert Jarzmik 2015-05-25 592 /* clear irq */
a57e16cf03339c Robert Jarzmik 2015-05-25 @593 dcsr = phy_readl_relaxed(phy, DCSR);
a57e16cf03339c Robert Jarzmik 2015-05-25 594 phy_writel(phy, dcsr, DCSR);
a57e16cf03339c Robert Jarzmik 2015-05-25 @595 if ((dcsr & PXA_DCSR_BUSERR) && (phy->vchan))
a57e16cf03339c Robert Jarzmik 2015-05-25 596 dev_warn(&phy->vchan->vc.chan.dev->device,
a57e16cf03339c Robert Jarzmik 2015-05-25 597 "%s(chan=%p): PXA_DCSR_BUSERR\n",
a57e16cf03339c Robert Jarzmik 2015-05-25 598 __func__, &phy->vchan);
a57e16cf03339c Robert Jarzmik 2015-05-25 599
a57e16cf03339c Robert Jarzmik 2015-05-25 600 return dcsr & ~PXA_DCSR_RUN;
a57e16cf03339c Robert Jarzmik 2015-05-25 601 }
a57e16cf03339c Robert Jarzmik 2015-05-25 602
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
^ permalink raw reply [flat|nested] 4+ messages in thread* [PATCH v2 1/2] dmaengine: Use str_enable_disable-like helpers
@ 2025-01-14 19:10 Krzysztof Kozlowski
2025-01-14 19:13 ` [PATCH v2 2/2] dmaengine: pxa: Enable compile test Krzysztof Kozlowski
0 siblings, 1 reply; 4+ messages in thread
From: Krzysztof Kozlowski @ 2025-01-14 19:10 UTC (permalink / raw)
To: Vinod Koul, Manivannan Sadhasivam, Shawn Guo, Sascha Hauer,
Pengutronix Kernel Team, Fabio Estevam, Daniel Mack,
Haojian Zhuang, Robert Jarzmik, Chen-Yu Tsai, Jernej Skrabec,
Samuel Holland, Peter Ujfalusi, Michal Simek, dmaengine,
linux-kernel, imx, linux-arm-kernel, linux-sunxi
Cc: Krzysztof Kozlowski
Replace ternary (condition ? "enable" : "disable") syntax with helpers
from string_choices.h because:
1. Simple function call with one argument is easier to read. Ternary
operator has three arguments and with wrapping might lead to quite
long code.
2. Is slightly shorter thus also easier to read.
3. It brings uniformity in the text - same string.
4. Allows deduping by the linker, which results in a smaller binary
file.
Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
---
Changes in v2:
1. Also drivers/dma/dw-edma/dw-edma-core.c and drivers/dma/sun6i-dma.c
---
drivers/dma/dw-edma/dw-edma-core.c | 6 ++++--
drivers/dma/imx-dma.c | 3 ++-
drivers/dma/pxa_dma.c | 4 ++--
drivers/dma/sun6i-dma.c | 3 ++-
drivers/dma/ti/edma.c | 3 ++-
drivers/dma/xilinx/xilinx_dma.c | 3 ++-
6 files changed, 14 insertions(+), 8 deletions(-)
diff --git a/drivers/dma/dw-edma/dw-edma-core.c b/drivers/dma/dw-edma/dw-edma-core.c
index 68236247059d..c2b88cc99e5d 100644
--- a/drivers/dma/dw-edma/dw-edma-core.c
+++ b/drivers/dma/dw-edma/dw-edma-core.c
@@ -15,6 +15,7 @@
#include <linux/irq.h>
#include <linux/dma/edma.h>
#include <linux/dma-mapping.h>
+#include <linux/string_choices.h>
#include "dw-edma-core.h"
#include "dw-edma-v0-core.h"
@@ -746,7 +747,7 @@ static int dw_edma_channel_setup(struct dw_edma *dw, u32 wr_alloc, u32 rd_alloc)
chan->ll_max -= 1;
dev_vdbg(dev, "L. List:\tChannel %s[%u] max_cnt=%u\n",
- chan->dir == EDMA_DIR_WRITE ? "write" : "read",
+ str_write_read(chan->dir == EDMA_DIR_WRITE),
chan->id, chan->ll_max);
if (dw->nr_irqs == 1)
@@ -767,7 +768,8 @@ static int dw_edma_channel_setup(struct dw_edma *dw, u32 wr_alloc, u32 rd_alloc)
memcpy(&chan->msi, &irq->msi, sizeof(chan->msi));
dev_vdbg(dev, "MSI:\t\tChannel %s[%u] addr=0x%.8x%.8x, data=0x%.8x\n",
- chan->dir == EDMA_DIR_WRITE ? "write" : "read", chan->id,
+ str_write_read(chan->dir == EDMA_DIR_WRITE),
+ chan->id,
chan->msi.address_hi, chan->msi.address_lo,
chan->msi.data);
diff --git a/drivers/dma/imx-dma.c b/drivers/dma/imx-dma.c
index a651e0995ce8..de8d7070904e 100644
--- a/drivers/dma/imx-dma.c
+++ b/drivers/dma/imx-dma.c
@@ -17,6 +17,7 @@
#include <linux/device.h>
#include <linux/dma-mapping.h>
#include <linux/slab.h>
+#include <linux/string_choices.h>
#include <linux/platform_device.h>
#include <linux/clk.h>
#include <linux/dmaengine.h>
@@ -942,7 +943,7 @@ static struct dma_async_tx_descriptor *imxdma_prep_dma_interleaved(
" src_sgl=%s dst_sgl=%s numf=%zu frame_size=%zu\n", __func__,
imxdmac->channel, (unsigned long long)xt->src_start,
(unsigned long long) xt->dst_start,
- xt->src_sgl ? "true" : "false", xt->dst_sgl ? "true" : "false",
+ str_true_false(xt->src_sgl), str_true_false(xt->dst_sgl),
xt->numf, xt->frame_size);
if (list_empty(&imxdmac->ld_free) ||
diff --git a/drivers/dma/pxa_dma.c b/drivers/dma/pxa_dma.c
index e50cf3357e5e..249296389771 100644
--- a/drivers/dma/pxa_dma.c
+++ b/drivers/dma/pxa_dma.c
@@ -10,6 +10,7 @@
#include <linux/interrupt.h>
#include <linux/dma-mapping.h>
#include <linux/slab.h>
+#include <linux/string_choices.h>
#include <linux/dmaengine.h>
#include <linux/platform_device.h>
#include <linux/device.h>
@@ -277,8 +278,7 @@ static int chan_state_show(struct seq_file *s, void *p)
seq_printf(s, "\tPriority : %s\n",
str_prio[(phy->idx & 0xf) / 4]);
seq_printf(s, "\tUnaligned transfer bit: %s\n",
- _phy_readl_relaxed(phy, DALGN) & BIT(phy->idx) ?
- "yes" : "no");
+ str_yes_no(_phy_readl_relaxed(phy, DALGN) & BIT(phy->idx)));
seq_printf(s, "\tDCSR = %08x (%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s)\n",
dcsr, PXA_DCSR_STR(RUN), PXA_DCSR_STR(NODESC),
PXA_DCSR_STR(STOPIRQEN), PXA_DCSR_STR(EORIRQEN),
diff --git a/drivers/dma/sun6i-dma.c b/drivers/dma/sun6i-dma.c
index 95ecb12caaa5..2215ff877bf7 100644
--- a/drivers/dma/sun6i-dma.c
+++ b/drivers/dma/sun6i-dma.c
@@ -19,6 +19,7 @@
#include <linux/platform_device.h>
#include <linux/reset.h>
#include <linux/slab.h>
+#include <linux/string_choices.h>
#include <linux/types.h>
#include "virt-dma.h"
@@ -553,7 +554,7 @@ static irqreturn_t sun6i_dma_interrupt(int irq, void *dev_id)
continue;
dev_dbg(sdev->slave.dev, "DMA irq status %s: 0x%x\n",
- i ? "high" : "low", status);
+ str_high_low(i), status);
writel(status, sdev->base + DMA_IRQ_STAT(i));
diff --git a/drivers/dma/ti/edma.c b/drivers/dma/ti/edma.c
index 4ece125b2ae7..b1a54655e6ce 100644
--- a/drivers/dma/ti/edma.c
+++ b/drivers/dma/ti/edma.c
@@ -16,6 +16,7 @@
#include <linux/platform_device.h>
#include <linux/slab.h>
#include <linux/spinlock.h>
+#include <linux/string_choices.h>
#include <linux/of.h>
#include <linux/of_dma.h>
#include <linux/of_irq.h>
@@ -2047,7 +2048,7 @@ static int edma_setup_from_hw(struct device *dev, struct edma_soc_info *pdata,
dev_dbg(dev, "num_qchannels: %u\n", ecc->num_qchannels);
dev_dbg(dev, "num_slots: %u\n", ecc->num_slots);
dev_dbg(dev, "num_tc: %u\n", ecc->num_tc);
- dev_dbg(dev, "chmap_exist: %s\n", ecc->chmap_exist ? "yes" : "no");
+ dev_dbg(dev, "chmap_exist: %s\n", str_yes_no(ecc->chmap_exist));
/* Nothing need to be done if queue priority is provided */
if (pdata->queue_priority_mapping)
diff --git a/drivers/dma/xilinx/xilinx_dma.c b/drivers/dma/xilinx/xilinx_dma.c
index 108a7287f4cd..3ad44afd0e74 100644
--- a/drivers/dma/xilinx/xilinx_dma.c
+++ b/drivers/dma/xilinx/xilinx_dma.c
@@ -46,6 +46,7 @@
#include <linux/of_irq.h>
#include <linux/platform_device.h>
#include <linux/slab.h>
+#include <linux/string_choices.h>
#include <linux/clk.h>
#include <linux/io-64-nonatomic-lo-hi.h>
@@ -2940,7 +2941,7 @@ static int xilinx_dma_chan_probe(struct xilinx_dma_device *xdev,
XILINX_DMA_DMASR_SG_MASK)
chan->has_sg = true;
dev_dbg(chan->dev, "ch %d: SG %s\n", chan->id,
- chan->has_sg ? "enabled" : "disabled");
+ str_enabled_disabled(chan->has_sg));
}
/* Initialize the tasklet */
--
2.43.0
^ permalink raw reply related [flat|nested] 4+ messages in thread
* [PATCH v2 2/2] dmaengine: pxa: Enable compile test
2025-01-14 19:10 [PATCH v2 1/2] dmaengine: Use str_enable_disable-like helpers Krzysztof Kozlowski
@ 2025-01-14 19:13 ` Krzysztof Kozlowski
2025-03-21 14:57 ` Dan Carpenter
0 siblings, 1 reply; 4+ messages in thread
From: Krzysztof Kozlowski @ 2025-01-14 19:13 UTC (permalink / raw)
To: Vinod Koul, Manivannan Sadhasivam, Shawn Guo, Sascha Hauer,
Pengutronix Kernel Team, Fabio Estevam, Daniel Mack,
Haojian Zhuang, Robert Jarzmik, Chen-Yu Tsai, Jernej Skrabec,
Samuel Holland, Peter Ujfalusi, Michal Simek, dmaengine,
linux-kernel, imx, linux-arm-kernel, linux-sunxi
Cc: Krzysztof Kozlowski
The PXA_DMA driver does not include any asm/mach headers, so it can be
compile tested for build coverage.
Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
---
Changes in v2:
1. Fix subject typo
2. Drop () in Kconfig
---
drivers/dma/Kconfig | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/dma/Kconfig b/drivers/dma/Kconfig
index 8afea2e23360..df2d2dc00a05 100644
--- a/drivers/dma/Kconfig
+++ b/drivers/dma/Kconfig
@@ -546,7 +546,7 @@ config PL330_DMA
config PXA_DMA
bool "PXA DMA support"
- depends on (ARCH_MMP || ARCH_PXA)
+ depends on ARCH_MMP || ARCH_PXA || COMPILE_TEST
select DMA_ENGINE
select DMA_VIRTUAL_CHANNELS
help
--
2.43.0
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH v2 2/2] dmaengine: pxa: Enable compile test
2025-01-14 19:13 ` [PATCH v2 2/2] dmaengine: pxa: Enable compile test Krzysztof Kozlowski
@ 2025-03-21 14:57 ` Dan Carpenter
2025-03-30 16:24 ` Krzysztof Kozlowski
0 siblings, 1 reply; 4+ messages in thread
From: Dan Carpenter @ 2025-03-21 14:57 UTC (permalink / raw)
To: oe-kbuild, Krzysztof Kozlowski; +Cc: lkp, oe-kbuild-all
[ Ancient email got eaten by msmtp. Resending. -dan ]
Hi Krzysztof,
kernel test robot noticed the following build warnings:
https://git-scm.com/docs/git-format-patch#_base_tree_information]
url: https://github.com/intel-lab-lkp/linux/commits/Krzysztof-Kozlowski/dmaengine-pxa-Enable-compile-test/20250115-031547
base: https://git.kernel.org/pub/scm/linux/kernel/git/vkoul/dmaengine.git next
patch link: https://lore.kernel.org/r/20250114191316.857154-1-krzysztof.kozlowski%40linaro.org
patch subject: [PATCH v2 2/2] dmaengine: pxa: Enable compile test
config: parisc-randconfig-r072-20250124 (https://download.01.org/0day-ci/archive/20250125/202501252153.wCMpgWlF-lkp@intel.com/config)
compiler: hppa-linux-gcc (GCC) 14.2.0
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Reported-by: Dan Carpenter <dan.carpenter@linaro.org>
| Closes: https://lore.kernel.org/r/202501252153.wCMpgWlF-lkp@intel.com/
New smatch warnings:
drivers/dma/pxa_dma.c:595 clear_chan_irq() warn: variable dereferenced before check 'phy->vchan' (see line 593)
vim +595 drivers/dma/pxa_dma.c
a57e16cf03339c Robert Jarzmik 2015-05-25 584 static unsigned int clear_chan_irq(struct pxad_phy *phy)
a57e16cf03339c Robert Jarzmik 2015-05-25 585 {
a57e16cf03339c Robert Jarzmik 2015-05-25 586 u32 dcsr;
a57e16cf03339c Robert Jarzmik 2015-05-25 587 u32 dint = readl(phy->base + DINT);
a57e16cf03339c Robert Jarzmik 2015-05-25 588
a57e16cf03339c Robert Jarzmik 2015-05-25 589 if (!(dint & BIT(phy->idx)))
a57e16cf03339c Robert Jarzmik 2015-05-25 590 return PXA_DCSR_RUN;
a57e16cf03339c Robert Jarzmik 2015-05-25 591
a57e16cf03339c Robert Jarzmik 2015-05-25 592 /* clear irq */
a57e16cf03339c Robert Jarzmik 2015-05-25 @593 dcsr = phy_readl_relaxed(phy, DCSR);
^^^
if phy->vchan is NULL this will crash
a57e16cf03339c Robert Jarzmik 2015-05-25 594 phy_writel(phy, dcsr, DCSR);
a57e16cf03339c Robert Jarzmik 2015-05-25 @595 if ((dcsr & PXA_DCSR_BUSERR) && (phy->vchan))
^^^^^^^^^^
Checked too late.
a57e16cf03339c Robert Jarzmik 2015-05-25 596 dev_warn(&phy->vchan->vc.chan.dev->device,
a57e16cf03339c Robert Jarzmik 2015-05-25 597 "%s(chan=%p): PXA_DCSR_BUSERR\n",
a57e16cf03339c Robert Jarzmik 2015-05-25 598 __func__, &phy->vchan);
a57e16cf03339c Robert Jarzmik 2015-05-25 599
a57e16cf03339c Robert Jarzmik 2015-05-25 600 return dcsr & ~PXA_DCSR_RUN;
a57e16cf03339c Robert Jarzmik 2015-05-25 601 }
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
^ permalink raw reply [flat|nested] 4+ messages in thread* Re: [PATCH v2 2/2] dmaengine: pxa: Enable compile test
2025-03-21 14:57 ` Dan Carpenter
@ 2025-03-30 16:24 ` Krzysztof Kozlowski
0 siblings, 0 replies; 4+ messages in thread
From: Krzysztof Kozlowski @ 2025-03-30 16:24 UTC (permalink / raw)
To: Dan Carpenter, oe-kbuild; +Cc: lkp, oe-kbuild-all
On 21/03/2025 15:57, Dan Carpenter wrote:
> [ Ancient email got eaten by msmtp. Resending. -dan ]
>
> Hi Krzysztof,
>
> kernel test robot noticed the following build warnings:
>
> https://git-scm.com/docs/git-format-patch#_base_tree_information]
>
> url: https://github.com/intel-lab-lkp/linux/commits/Krzysztof-Kozlowski/dmaengine-pxa-Enable-compile-test/20250115-031547
> base: https://git.kernel.org/pub/scm/linux/kernel/git/vkoul/dmaengine.git next
> patch link: https://lore.kernel.org/r/20250114191316.857154-1-krzysztof.kozlowski%40linaro.org
> patch subject: [PATCH v2 2/2] dmaengine: pxa: Enable compile test
> config: parisc-randconfig-r072-20250124 (https://download.01.org/0day-ci/archive/20250125/202501252153.wCMpgWlF-lkp@intel.com/config)
> compiler: hppa-linux-gcc (GCC) 14.2.0
>
> If you fix the issue in a separate patch/commit (i.e. not just a new version of
> the same patch/commit), kindly add following tags
> | Reported-by: kernel test robot <lkp@intel.com>
> | Reported-by: Dan Carpenter <dan.carpenter@linaro.org>
> | Closes: https://lore.kernel.org/r/202501252153.wCMpgWlF-lkp@intel.com/
>
> New smatch warnings:
> drivers/dma/pxa_dma.c:595 clear_chan_irq() warn: variable dereferenced before check 'phy->vchan' (see line 593)
>
> vim +595 drivers/dma/pxa_dma.c
>
> a57e16cf03339c Robert Jarzmik 2015-05-25 584 static unsigned int clear_chan_irq(struct pxad_phy *phy)
> a57e16cf03339c Robert Jarzmik 2015-05-25 585 {
> a57e16cf03339c Robert Jarzmik 2015-05-25 586 u32 dcsr;
> a57e16cf03339c Robert Jarzmik 2015-05-25 587 u32 dint = readl(phy->base + DINT);
> a57e16cf03339c Robert Jarzmik 2015-05-25 588
> a57e16cf03339c Robert Jarzmik 2015-05-25 589 if (!(dint & BIT(phy->idx)))
> a57e16cf03339c Robert Jarzmik 2015-05-25 590 return PXA_DCSR_RUN;
> a57e16cf03339c Robert Jarzmik 2015-05-25 591
> a57e16cf03339c Robert Jarzmik 2015-05-25 592 /* clear irq */
> a57e16cf03339c Robert Jarzmik 2015-05-25 @593 dcsr = phy_readl_relaxed(phy, DCSR);
> ^^^
> if phy->vchan is NULL this will crash
Correct, but my commit only enabled compile testing thus allowed this to
be checked on some popular platforms. Issue was already there.
The code is called pxad_chan_handler(), which already has BUG_ON() on
this, so I expect that condition is not possible.
It would be nice to rewrite the code, but I am afraid it is way too old
platform and no one cares enough.
Best regards,
Krzysztof
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2025-03-30 16:24 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-01-25 13:55 [PATCH v2 2/2] dmaengine: pxa: Enable compile test kernel test robot
-- strict thread matches above, loose matches on Subject: below --
2025-01-14 19:10 [PATCH v2 1/2] dmaengine: Use str_enable_disable-like helpers Krzysztof Kozlowski
2025-01-14 19:13 ` [PATCH v2 2/2] dmaengine: pxa: Enable compile test Krzysztof Kozlowski
2025-03-21 14:57 ` Dan Carpenter
2025-03-30 16:24 ` Krzysztof Kozlowski
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.