[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CANXvt5qjx6gXhBZD3ndBPCxx++i2oxd5X7=MRgUGrXUj4kRgfw@mail.gmail.com>
Date: Wed, 6 Jul 2022 11:37:29 +0900
From: Shunsuke Mie <mie@...l.co.jp>
To: Bjorn Helgaas <helgaas@...nel.org>
Cc: Kishon Vijay Abraham I <kishon@...com>,
Lorenzo Pieralisi <lpieralisi@...nel.org>,
Krzysztof Wilczyński <kw@...ux.com>,
Bjorn Helgaas <bhelgaas@...gle.com>,
Hou Zhiqiang <Zhiqiang.Hou@....com>,
Li Chen <lchen@...arella.com>, linux-pci@...r.kernel.org,
Linux Kernel Mailing List <linux-kernel@...r.kernel.org>
Subject: Re: [PATCH] PCI: endpoint: Don't stop EP controller by EP function
2022年7月6日(水) 7:40 Bjorn Helgaas <helgaas@...nel.org>:
>
> On Wed, Jun 22, 2022 at 01:09:24PM +0900, Shunsuke Mie wrote:
> > For multi-function endpoint device, an ep function shouldn't stop EP
> > controller. Nomally the controller is stopped via configfs.
>
> Can you please clarify this for me?
>
> An endpoint function by itself wouldn't stop an endpoint controller.
> I assume that some *operation* on an endpoint function currently stops
> the endpoint controller, but that operation should not stop the
> controller?
>
> I guess the operation is an "unbind" that detaches an EPF device from
> an EPC device?
It is likely that after all of the endpoint functions are unbound, the
controller can be stopped safely, but I'm not sure if it is desired behavior
for endpoint framework.
Kishon, could you please comment?
> > Fixes: 349e7a85b25f ("PCI: endpoint: functions: Add an EP function to test PCI")
> > Signed-off-by: Shunsuke Mie <mie@...l.co.jp>
> > ---
> > drivers/pci/endpoint/functions/pci-epf-test.c | 1 -
> > 1 file changed, 1 deletion(-)
> >
> > diff --git a/drivers/pci/endpoint/functions/pci-epf-test.c b/drivers/pci/endpoint/functions/pci-epf-test.c
> > index 5b833f00e980..a5ed779b0a51 100644
> > --- a/drivers/pci/endpoint/functions/pci-epf-test.c
> > +++ b/drivers/pci/endpoint/functions/pci-epf-test.c
> > @@ -627,7 +627,6 @@ static void pci_epf_test_unbind(struct pci_epf *epf)
> >
> > cancel_delayed_work(&epf_test->cmd_handler);
> > pci_epf_test_clean_dma_chan(epf_test);
> > - pci_epc_stop(epc);
> > for (bar = 0; bar < PCI_STD_NUM_BARS; bar++) {
> > epf_bar = &epf->bar[bar];
> >
> > --
> > 2.17.1
> >
Thanks,
Shunsuke
Powered by blists - more mailing lists