From: Niklas Cassel <cassel@kernel.org>
To: Christian Bruel <christian.bruel@foss.st.com>
Cc: "Manivannan Sadhasivam" <mani@kernel.org>,
"Krzysztof Wilczyński" <kwilczynski@kernel.org>,
"Kishon Vijay Abraham I" <kishon@kernel.org>,
"Shuah Khan" <shuah@kernel.org>,
"Bjorn Helgaas" <bhelgaas@google.com>,
"Arnd Bergmann" <arnd@arndb.de>,
"Greg Kroah-Hartman" <gregkh@linuxfoundation.org>,
"Koichiro Den" <den@valinux.co.jp>,
fabrice.gasnier@foss.st.com, linux-pci@vger.kernel.org,
linux-kselftest@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH 3/3] misc: pci_endpoint_test: Handle -ENOSPC in subrange mapping test case
Date: Fri, 20 Mar 2026 12:16:08 +0100 [thread overview]
Message-ID: <ab0seD_G4ER7R_9N@ryzen> (raw)
In-Reply-To: <28a71759-1095-4403-b356-d291a828daba@foss.st.com>
On Fri, Mar 20, 2026 at 10:35:20AM +0100, Christian Bruel wrote:
> Hello,
>
> > >
> > > diff --git a/drivers/misc/pci_endpoint_test.c b/drivers/misc/pci_endpoint_test.c
> > > index 55e128ed82f00ae13b6fe9768cdbe56adbe8f9da..34ba06fb53f04e48c1c05f4aae85e6ecd03ef447 100644
> > > --- a/drivers/misc/pci_endpoint_test.c
> > > +++ b/drivers/misc/pci_endpoint_test.c
> > > @@ -61,6 +61,7 @@
> > > #define STATUS_BAR_SUBRANGE_SETUP_FAIL BIT(15)
> > > #define STATUS_BAR_SUBRANGE_CLEAR_SUCCESS BIT(16)
> > > #define STATUS_BAR_SUBRANGE_CLEAR_FAIL BIT(17)
> > > +#define STATUS_BAR_SUBRANGE_SETUP_NOSPC BIT(18)
> > > #define PCI_ENDPOINT_TEST_LOWER_SRC_ADDR 0x0c
> > > #define PCI_ENDPOINT_TEST_UPPER_SRC_ADDR 0x10
> > > @@ -476,8 +477,11 @@ static int pci_endpoint_test_bar_subrange_cmd(struct pci_endpoint_test *test,
> > > return -ETIMEDOUT;
> > > status = pci_endpoint_test_readl(test, PCI_ENDPOINT_TEST_STATUS);
> > > - if (status & fail_bit)
> > > + if (status & fail_bit) {
> > > + if (status & STATUS_BAR_SUBRANGE_SETUP_NOSPC)
> > > + return -ENOSPC;
> >
> > Perhaps this should be something like:
> >
> > if (command == COMMAND_BAR_SUBRANGE_SETUP && status & STATUS_BAR_SUBRANGE_SETUP_SKIP)
>
> I'm not sure about replacing STATUS_BAR_SUBRANGE_SETUP_NOSPC by
> STATUS_BAR_SUBRANGE_SETUP_SKIP
>
> The selftest will use if (ret == -ENOSPC), so we need to return this
> information (bellow). and semantically SKIP does not imply ENOPSC (instead
> of the contrary)
>
> as you prefer,
FWIW, I think an even better solution is to introduce a new register,
named e.g. errno in struct pci_epf_test_reg;
That way, we don't need to take a new bit, e.g.:
+#define STATUS_BAR_SUBRANGE_SETUP_NOSPC BIT(18)
For every unique error code a command can return.
We would simply return STATUS_BAR_SUBRANGE_CLEAR_FAIL, and then the host
side driver looks at the errno register to see the specific error code.
This way, all other _FAIL commands could also return a more specific error
in case of failure.
>
> To minimize changes, what about something like:
>
> unsigned int fail_bit = status & fail_bits;
>
> if (fail_bit == STATUS_BAR_SUBRANGE_SETUP_NOSPC)
> return -ENOSPC;
>
> if (fail_bit == STATUS_BAR_SUBRANGE_SETUP_FAIL)
> return -EIO;
>
> called with
>
> pci_endpoint_test_bar_subrange_cmd(...,
> STATUS_BAR_SUBRANGE_SETUP_FAIL | STATUS_BAR_SUBRANGE_SETUP_NOSPC);
>
> replacing the fail_bit parameter with fail_bits.
Sounds okay to me, but I think the idea of adding an errno register is
more extensible.
Kind regards,
Niklas
next prev parent reply other threads:[~2026-03-20 11:16 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-03-18 14:46 [PATCH 0/3] Skip subrange map tests on DWC iATU allocation failure Christian Bruel
2026-03-18 14:46 ` [PATCH 1/3] selftests: pci_endpoint: Skip subrange map test if iATU allocation fails Christian Bruel
2026-03-18 15:32 ` Niklas Cassel
2026-03-19 1:28 ` Koichiro Den
2026-03-19 8:47 ` Niklas Cassel
2026-03-20 13:41 ` Koichiro Den
2026-03-20 10:04 ` Christian Bruel
2026-03-20 14:05 ` Koichiro Den
2026-03-20 14:19 ` Christian Bruel
2026-03-20 15:33 ` Koichiro Den
2026-03-18 14:46 ` [PATCH 2/3] PCI: endpoint: pci-epf-test: Handle -ENOSPC in subrange map test Christian Bruel
2026-03-18 15:50 ` Niklas Cassel
2026-03-18 14:46 ` [PATCH 3/3] misc: pci_endpoint_test: Handle -ENOSPC in subrange mapping test case Christian Bruel
2026-03-18 16:03 ` Niklas Cassel
2026-03-20 9:35 ` Christian Bruel
2026-03-20 11:16 ` Niklas Cassel [this message]
2026-03-20 13:25 ` Christian Bruel
2026-03-20 13:43 ` Niklas Cassel
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=ab0seD_G4ER7R_9N@ryzen \
--to=cassel@kernel.org \
--cc=arnd@arndb.de \
--cc=bhelgaas@google.com \
--cc=christian.bruel@foss.st.com \
--cc=den@valinux.co.jp \
--cc=fabrice.gasnier@foss.st.com \
--cc=gregkh@linuxfoundation.org \
--cc=kishon@kernel.org \
--cc=kwilczynski@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-kselftest@vger.kernel.org \
--cc=linux-pci@vger.kernel.org \
--cc=mani@kernel.org \
--cc=shuah@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.