From: Bjorn Helgaas <helgaas@kernel.org>
To: Niklas Cassel <cassel@kernel.org>
Cc: "Jingoo Han" <jingoohan1@gmail.com>,
"Manivannan Sadhasivam" <manivannan.sadhasivam@linaro.org>,
"Lorenzo Pieralisi" <lpieralisi@kernel.org>,
"Krzysztof Wilczyński" <kw@linux.com>,
"Rob Herring" <robh@kernel.org>,
"Bjorn Helgaas" <bhelgaas@google.com>,
"Damien Le Moal" <dlemoal@kernel.org>,
linux-pci@vger.kernel.org
Subject: Re: [PATCH v2] PCI: dwc: Fix W=1 build warning in dw_pcie_edma_irq_verify()
Date: Fri, 3 Jan 2025 16:10:56 -0600 [thread overview]
Message-ID: <20250103221056.GA9766@bhelgaas> (raw)
In-Reply-To: <20250102111339.2233101-2-cassel@kernel.org>
Can you make the subject say something about the fix instead of the
warning? E.g., something about fixing a potential truncation?
On Thu, Jan 02, 2025 at 12:13:40PM +0100, Niklas Cassel wrote:
> Change dw_pcie_edma_irq_verify() to print the dma channel as %u.
>
> While a DWC glue driver could theoretically initialize nr_irqs to a
> negative value, doing so would obviously be incorrect, and the later
> dw_edma_probe(struct dw_edma_chip *chip) call would fail, since while
> the dw_edma_probe() call expects the caller to initialize chip->nr_irqs,
> dw_edma_probe() verifies nr_irqs and returns failure if nr_irqs is < 1.
>
> This fixes the following build warning when compiling with W=1:
>
> drivers/pci/controller/dwc/pcie-designware.c: In function ‘dw_pcie_edma_detect’:
> drivers/pci/controller/dwc/pcie-designware.c:989:50: warning: ‘%d’ directive output may be truncated writing between 1 and 11 bytes into a region of size 3 [-Wformat-truncation=]
> 989 | snprintf(name, sizeof(name), "dma%d", pci->edma.nr_irqs);
> | ^~
>
> Signed-off-by: Niklas Cassel <cassel@kernel.org>
> ---
> Changes since V1:
> -Do not reject negative nr_irqs value in dw_pcie_edma_irq_verify(),
> as this will already be done by dw_edma_probe().
>
> drivers/pci/controller/dwc/pcie-designware.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/pci/controller/dwc/pcie-designware.c b/drivers/pci/controller/dwc/pcie-designware.c
> index 3c683b6119c3..0a13fb4336f4 100644
> --- a/drivers/pci/controller/dwc/pcie-designware.c
> +++ b/drivers/pci/controller/dwc/pcie-designware.c
> @@ -986,7 +986,7 @@ static int dw_pcie_edma_irq_verify(struct dw_pcie *pci)
> }
>
> for (; pci->edma.nr_irqs < ch_cnt; pci->edma.nr_irqs++) {
> - snprintf(name, sizeof(name), "dma%d", pci->edma.nr_irqs);
> + snprintf(name, sizeof(name), "dma%u", pci->edma.nr_irqs);
I don't understand this fix. I guess the warning is complaining that
sizeof(name) == 6, and "dma" takes up three bytes, so the %d has to
fit in the remaining region of size 3?
But I don't see how printing nr_irqs as unsigned rather than signed is
a fix, since even an unsigned int can be longer than 3 digits.
And I don't like using "%u" for a signed value in order to "fix"
something. That's asking for a future cleanup to revert the change.
What's wrong with just making the name[] buffer big enough?
> ret = platform_get_irq_byname_optional(pdev, name);
> if (ret <= 0)
> --
> 2.47.1
>
next prev parent reply other threads:[~2025-01-03 22:10 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-01-02 11:13 [PATCH v2] PCI: dwc: Fix W=1 build warning in dw_pcie_edma_irq_verify() Niklas Cassel
2025-01-03 22:10 ` Bjorn Helgaas [this message]
2025-01-04 0:19 ` Niklas Cassel
2025-01-04 4:11 ` Manivannan Sadhasivam
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20250103221056.GA9766@bhelgaas \
--to=helgaas@kernel.org \
--cc=bhelgaas@google.com \
--cc=cassel@kernel.org \
--cc=dlemoal@kernel.org \
--cc=jingoohan1@gmail.com \
--cc=kw@linux.com \
--cc=linux-pci@vger.kernel.org \
--cc=lpieralisi@kernel.org \
--cc=manivannan.sadhasivam@linaro.org \
--cc=robh@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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.