All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Yang, Wenyou" <Wenyou.Yang-AIFe0yeh4nAAvxtiuMwx3w@public.gmane.org>
To: Axel Lin <axel.lin-8E1dMatC8ynQT0dZR+AlfA@public.gmane.org>,
	Mark Brown <broonie-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
Cc: linux-spi <linux-spi-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>
Subject: RE: [PATCH] spi: atmel: Fix test unsigned var < 0
Date: Thu, 27 Mar 2014 01:13:32 +0000	[thread overview]
Message-ID: <B256D81BAE5131468A838E5D7A2436417301AE8C@penmbx01> (raw)
In-Reply-To: <CAFRkauBh+4-NmneTh=io7grG4MpSZ98riybAOOpEff+KiPZUjg-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>


> -----Original Message-----
> From: Axel Lin [mailto:axel.lin-8E1dMatC8ynQT0dZR+AlfA@public.gmane.org]
> Sent: Thursday, March 27, 2014 8:46 AM
> To: Mark Brown
> Cc: Yang, Wenyou; linux-spi
> Subject: Re: [PATCH] spi: atmel: Fix test unsigned var < 0
> 
> 2014-03-27 0:51 GMT+08:00 Mark Brown <broonie-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>:
> > On Sat, Mar 22, 2014 at 10:33:29PM +0800, Axel Lin wrote:
> >> current_remaining_bytes is an unsigned long and cannot be below 0.
> >
> >> -     if (xfer->bits_per_word > 8) {
> >> +
> >> +     if (xfer->bits_per_word > 8)
> >>               as->current_remaining_bytes -= 2;
> >> -             if (as->current_remaining_bytes < 0)
> >> -                     as->current_remaining_bytes = 0;
> >> -     } else {
> >> +     else
> >>               as->current_remaining_bytes--;
> >> -     }
> >
> > This removes an error check in the case that we set the remaining
> > bytes to -1.  The length validation the core does should ensure that
> > never happens but it seems wrong to just ignore that - we should at
> > least note in the changelog that the analysis has been done.
> I thought it never happen and there is no bug report for this so it's
> safe with this patch.
> 
> >
> > Are you sure that the best fix isn't to just use an int here?
> Wenyou,
>   Any comments for this?

Like Mark said, It seems it is more reasonable using a signed int, instead of unsigned int.

-->8 ---
diff --git a/drivers/spi/spi-atmel.c b/drivers/spi/spi-atmel.c
index 8005f98..485e6cc 100644
--- a/drivers/spi/spi-atmel.c
+++ b/drivers/spi/spi-atmel.c
@@ -224,7 +224,7 @@ struct atmel_spi {
 	struct platform_device	*pdev;
 
 	struct spi_transfer	*current_transfer;
-	unsigned long		current_remaining_bytes;
+	int			current_remaining_bytes;
 	int			done_status;
 
 	struct completion	xfer_completion;
@@ -1110,6 +1110,8 @@ static int atmel_spi_one_transfer(struct spi_master *master,
 				atmel_spi_next_xfer_pio(master, xfer);
 			} else {
 				as->current_remaining_bytes -= len;
+				if (as->current_remaining_bytes < 0)
+					as->current_remaining_bytes = 0;
 			}
 		} else {
 			atmel_spi_next_xfer_pio(master, xfer);
--<8 ---

Best Regards,
Wenyou Yang
--
To unsubscribe from this list: send the line "unsubscribe linux-spi" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

  parent reply	other threads:[~2014-03-27  1:13 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-03-22 14:33 [PATCH] spi: atmel: Fix test unsigned var < 0 Axel Lin
2014-03-26 16:51 ` Mark Brown
     [not found]   ` <20140326165145.GD14287-GFdadSzt00ze9xe1eoZjHA@public.gmane.org>
2014-03-27  0:46     ` Axel Lin
     [not found]       ` <CAFRkauBh+4-NmneTh=io7grG4MpSZ98riybAOOpEff+KiPZUjg-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2014-03-27  1:13         ` Yang, Wenyou [this message]
2014-03-27  1:23           ` Axel Lin

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=B256D81BAE5131468A838E5D7A2436417301AE8C@penmbx01 \
    --to=wenyou.yang-aife0yeh4naavxtiumwx3w@public.gmane.org \
    --cc=axel.lin-8E1dMatC8ynQT0dZR+AlfA@public.gmane.org \
    --cc=broonie-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org \
    --cc=linux-spi-u79uwXL29TY76Z2rM5mHXA@public.gmane.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.