All of lore.kernel.org
 help / color / mirror / Atom feed
From: Niklas Cassel <cassel@kernel.org>
To: Bjorn Helgaas <helgaas@kernel.org>
Cc: "Manivannan Sadhasivam" <manivannan.sadhasivam@linaro.org>,
	"Krzysztof Wilczyński" <kw@linux.com>,
	"Kishon Vijay Abraham I" <kishon@kernel.org>,
	"Damien Le Moal" <dlemoal@kernel.org>,
	linux-pci@vger.kernel.org, "Frank Li" <Frank.Li@nxp.com>
Subject: Re: [PATCH v3 1/2] PCI: endpoint: pci-epf-test: Add support for capabilities
Date: Mon, 20 Jan 2025 13:00:15 +0100	[thread overview]
Message-ID: <Z446zwlcPt8dv5lx@ryzen> (raw)
In-Reply-To: <20250118203421.GA790917@bhelgaas>

Hello Bjorn,

On Sat, Jan 18, 2025 at 02:34:21PM -0600, Bjorn Helgaas wrote:
> On Tue, Dec 03, 2024 at 07:38:53AM +0100, Niklas Cassel wrote:
> > The test BAR is on the EP side is allocated using pci_epf_alloc_space(),
> > which allocates the backing memory using dma_alloc_coherent(), which will
> > return zeroed memory regardless of __GFP_ZERO was set or not.
> 
> > +static void pci_epf_test_set_capabilities(struct pci_epf *epf)
> > +{
> > +	struct pci_epf_test *epf_test = epf_get_drvdata(epf);
> > +	enum pci_barno test_reg_bar = epf_test->test_reg_bar;
> > +	struct pci_epf_test_reg *reg = epf_test->reg[test_reg_bar];
> > +	struct pci_epc *epc = epf->epc;
> > +	u32 caps = 0;
> > +
> > +	if (epc->ops->align_addr)
> > +		caps |= CAP_UNALIGNED_ACCESS;
> > +
> > +	reg->caps = cpu_to_le32(caps);
> 
> "make C=2 drivers/pci/" complains about this:
> 
>   drivers/pci/endpoint/functions/pci-epf-test.c:756:19: warning: incorrect type in assignment (different base types)
>   drivers/pci/endpoint/functions/pci-epf-test.c:756:19:    expected unsigned int [usertype] caps
>   drivers/pci/endpoint/functions/pci-epf-test.c:756:19:    got restricted __le32 [usertype]

Yes, pci-epf-test is broken when it comes to endianness, as reported here:
https://lore.kernel.org/linux-pci/ZxYHoi4mv-4eg0TK@ryzen.lan/


Nice to see that sparse is complaining about it! :)

Mani said that he was going to work on it, but I guess that it fell through
the cracks.

I sent patch for it here:
https://lore.kernel.org/linux-pci/20250120115009.2748899-2-cassel@kernel.org/T/#u

FWIW, I tested it on rk3588 which is little-endian, and that still worked.

However, if you feel that it is a bit too late to queue it now, you could
also take only the following change from the patch above:

diff --git a/drivers/pci/endpoint/functions/pci-epf-test.c b/drivers/pci/endpoint/functions/pci-epf-test.c
index ffb534a8e50a..cb7e57377214 100644
--- a/drivers/pci/endpoint/functions/pci-epf-test.c
+++ b/drivers/pci/endpoint/functions/pci-epf-test.c
@@ -76,7 +76,7 @@ struct pci_epf_test_reg {
        u32     irq_type;
        u32     irq_number;
        u32     flags;
-       u32     caps;
+       __le32  caps;
 } __packed;
 
 static struct pci_epf_header test_header = {


Kind regards,
Niklas

  reply	other threads:[~2025-01-20 12:00 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-12-03  6:38 [PATCH v3 0/2] PCI endpoint test: Add support for capabilities Niklas Cassel
2024-12-03  6:38 ` [PATCH v3 1/2] PCI: endpoint: pci-epf-test: " Niklas Cassel
2025-01-18 20:34   ` Bjorn Helgaas
2025-01-20 12:00     ` Niklas Cassel [this message]
2025-01-20 15:44       ` Manivannan Sadhasivam
2025-01-20 16:07         ` Niklas Cassel
2024-12-03  6:38 ` [PATCH v3 2/2] misc: pci_endpoint_test: " Niklas Cassel
2024-12-12  8:52 ` [PATCH v3 0/2] PCI endpoint test: " Niklas Cassel
2024-12-19 14:20   ` Niklas Cassel
2024-12-22 20:58 ` Krzysztof Wilczyński

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=Z446zwlcPt8dv5lx@ryzen \
    --to=cassel@kernel.org \
    --cc=Frank.Li@nxp.com \
    --cc=dlemoal@kernel.org \
    --cc=helgaas@kernel.org \
    --cc=kishon@kernel.org \
    --cc=kw@linux.com \
    --cc=linux-pci@vger.kernel.org \
    --cc=manivannan.sadhasivam@linaro.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.