Re: [PATCH] ioat: fail self-test if wait_for_completion times out
From: Nicholas Mc Guire
Date: Mon Jan 05 2015 - 19:42:56 EST
On Mon, 05 Jan 2015, Jiang, Dave wrote:
>
>
>
> On Sun, 2014-12-28 at 10:37 +0000, Nicholas Mc Guire wrote:
> > wait_for_completion_timeout reaching timeout was being ignored,
> > fail the self-test if timeout condition occurs.
> >
> > Not sure about the indentations used (CodingStyle:Chapter 2)
> >
> > this was only compile tested with
> > x86_64_defconfig + CONFIG_DMA_ENGINE=y + CONFIG_INTEL_IOATDMA=y
> >
> > patch is against linux-next 3.19.0-rc1 -next-20141226
> >
> > Signed-off-by: Nicholas Mc Guire <der.herr@xxxxxxx>
> > ---
> > drivers/dma/ioat/dma_v3.c | 9 ++++++---
> > 1 file changed, 6 insertions(+), 3 deletions(-)
> >
> > diff --git a/drivers/dma/ioat/dma_v3.c b/drivers/dma/ioat/dma_v3.c
> > index be307182..0659215 100644
> > --- a/drivers/dma/ioat/dma_v3.c
> > +++ b/drivers/dma/ioat/dma_v3.c
> > @@ -1311,7 +1311,8 @@ static int ioat_xor_val_self_test(struct ioatdma_device *device)
> >
> > tmo = wait_for_completion_timeout(&cmp, msecs_to_jiffies(3000));
> >
> > - if (dma->device_tx_status(dma_chan, cookie, NULL) != DMA_COMPLETE) {
> > + if (tmo == 0 || dma->device_tx_status(dma_chan, cookie, NULL)
> > + != DMA_COMPLETE) {
> > dev_err(dev, "Self-test xor timed out\n");
> > err = -ENODEV;
> > goto dma_unmap;
> > @@ -1377,7 +1378,8 @@ static int ioat_xor_val_self_test(struct ioatdma_device *device)
> >
> > tmo = wait_for_completion_timeout(&cmp, msecs_to_jiffies(3000));
> >
> > - if (dma->device_tx_status(dma_chan, cookie, NULL) != DMA_COMPLETE) {
> > + if (tmo == 0 || dma->device_tx_status(dma_chan, cookie, NULL)
> > + != DMA_COMPLETE) {
>
> Can you please do:
> + if (tmo == 0 ||
> + dma->device_tx_status(dma_chan, cookie, NULL) != DMA_COMPLETE) {
Documentation/CodingStyle:Chapter 2
"Statements longer than 80 columns will be broken into sensible chunks, unless
exceeding 80 columns significantly increases readability and does not hide
information. Descendants are always substantially shorter than the parent and
are placed substantially to the right. The same applies to function headers..."
am I misreading the CodingStyle here ?
>
> Otherwise it looks good. Although I've never hit that error condition either.
>
> > dev_err(dev, "Self-test validate timed out\n");
> > err = -ENODEV;
> > goto dma_unmap;
> > @@ -1429,7 +1431,8 @@ static int ioat_xor_val_self_test(struct ioatdma_device *device)
> >
> > tmo = wait_for_completion_timeout(&cmp, msecs_to_jiffies(3000));
> >
> > - if (dma->device_tx_status(dma_chan, cookie, NULL) != DMA_COMPLETE) {
> > + if (tmo == 0 || dma->device_tx_status(dma_chan, cookie, NULL)
> > + != DMA_COMPLETE) {
> > dev_err(dev, "Self-test 2nd validate timed out\n");
> > err = -ENODEV;
> > goto dma_unmap;
> > --
> > 1.7.10.4
> >
thx!
hofrat
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/