From: Lukas Wunner <lukas@wunner.de>
To: "Ilpo Järvinen" <ilpo.jarvinen@linux.intel.com>
Cc: Mariusz Tkaczyk <mariusz.tkaczyk@linux.intel.com>,
linux-pci@vger.kernel.org, Arnd Bergmann <arnd@arndb.de>,
Bjorn Helgaas <bhelgaas@google.com>,
Dan Williams <dan.j.williams@intel.com>,
Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
Keith Busch <kbusch@kernel.org>, Marek Behun <marek.behun@nic.cz>,
Pavel Machek <pavel@ucw.cz>, Randy Dunlap <rdunlap@infradead.org>,
Andy Shevchenko <andriy.shevchenko@linux.intel.com>,
Stuart Hayes <stuart.w.hayes@gmail.com>
Subject: Re: [PATCH v3 2/3] PCI/NPEM: Add Native PCIe Enclosure Management support
Date: Mon, 8 Jul 2024 16:27:24 +0200 [thread overview]
Message-ID: <Zov3TNUKMrBsTBY8@wunner.de> (raw)
In-Reply-To: <f318f400-88ef-fe56-dcd5-27434e305d9f@linux.intel.com>
On Mon, Jul 08, 2024 at 02:33:34PM +0300, Ilpo Järvinen wrote:
> > +static int npem_set_active_indications(struct npem *npem, u32 inds)
> > +{
> > + int ctrl, ret, ret_val;
> > + u32 cc_status;
> > +
> > + lockdep_assert_held(&npem->lock);
> > +
> > + /* This bit is always required */
> > + ctrl = inds | PCI_NPEM_CTRL_ENABLE;
> > +
> > + ret = npem_write_ctrl(npem, ctrl);
> > + if (ret)
> > + return ret;
> > +
> > + /*
> > + * For the case where a NPEM command has not completed immediately,
> > + * it is recommended that software not continuously ???spin??? on polling
> > + * the status register, but rather poll under interrupt at a reduced
> > + * rate; for example at 10 ms intervals.
> > + *
> > + * PCIe r6.1 sec 6.28 "Implementation Note: Software Polling of NPEM
> > + * Command Completed"
> > + */
> > + ret = read_poll_timeout(npem_read_reg, ret_val,
> > + ret_val || (cc_status & PCI_NPEM_STATUS_CC),
> > + 10 * USEC_PER_MSEC, USEC_PER_SEC, false, npem,
> > + PCI_NPEM_STATUS, &cc_status);
> > + if (ret)
> > + return ret_val;
>
> Will this work as intended?
>
> If ret_val gets set, cond in read_poll_timeout() is true and it returns 0
> so the return branch is not taken.
>
> Also, when read_poll_timeout() times out, ret_val might not be non-zero.
Hm, it seems to me that just having two if-clauses should fix that.
+ ret = read_poll_timeout(npem_read_reg, ret_val,
+ ret_val || (cc_status & PCI_NPEM_STATUS_CC),
+ 10 * USEC_PER_MSEC, USEC_PER_SEC, false, npem,
+ PCI_NPEM_STATUS, &cc_status);
+ if (ret)
+ return ret;
+ if (ret_val)
+ return ret_val;
Does this look correct to you?
Thanks,
Lukas
next prev parent reply other threads:[~2024-07-08 14:27 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-07-05 12:54 [PATCH v3 0/3] PCIe Enclosure LED Management Mariusz Tkaczyk
2024-07-05 12:54 ` [PATCH v3 1/3] leds: Init leds class earlier Mariusz Tkaczyk
2024-07-05 12:58 ` Christoph Hellwig
2024-07-05 12:54 ` [PATCH v3 2/3] PCI/NPEM: Add Native PCIe Enclosure Management support Mariusz Tkaczyk
2024-07-05 13:02 ` Christoph Hellwig
2024-07-05 13:22 ` Mariusz Tkaczyk
2024-07-05 13:29 ` Christoph Hellwig
2024-07-08 11:33 ` Ilpo Järvinen
2024-07-08 14:24 ` Mariusz Tkaczyk
2024-07-08 16:13 ` Ilpo Järvinen
2024-07-08 14:27 ` Lukas Wunner [this message]
2024-07-05 12:54 ` [PATCH v3 3/3] PCI/NPEM: Add _DSM PCIe SSD status LED management Mariusz Tkaczyk
2024-07-05 13:04 ` Christoph Hellwig
2024-07-05 14:07 ` Lukas Wunner
2024-07-08 10:14 ` Christoph Hellwig
2024-07-08 11:39 ` Ilpo Järvinen
2024-07-05 19:11 ` [PATCH v3 0/3] PCIe Enclosure LED Management stuart hayes
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=Zov3TNUKMrBsTBY8@wunner.de \
--to=lukas@wunner.de \
--cc=andriy.shevchenko@linux.intel.com \
--cc=arnd@arndb.de \
--cc=bhelgaas@google.com \
--cc=dan.j.williams@intel.com \
--cc=gregkh@linuxfoundation.org \
--cc=ilpo.jarvinen@linux.intel.com \
--cc=kbusch@kernel.org \
--cc=linux-pci@vger.kernel.org \
--cc=marek.behun@nic.cz \
--cc=mariusz.tkaczyk@linux.intel.com \
--cc=pavel@ucw.cz \
--cc=rdunlap@infradead.org \
--cc=stuart.w.hayes@gmail.com \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox