LKML Archive on lore.kernel.org
help / color / mirror / Atom feed
* [PATCH] char: fix sparse variable shadowing and int as NULL pointer in rocket.c
@ 2008-02-22 17:46 Harvey Harrison
  2008-02-27 23:29 ` Andrew Morton
  0 siblings, 1 reply; 4+ messages in thread
From: Harvey Harrison @ 2008-02-22 17:46 UTC (permalink / raw)
  To: Andrew Morton; +Cc: LKML

Nested min() macros shadow _x, separate into two lines.
drivers/char/rocket.c:451:7: warning: symbol '_x' shadows an earlier one
drivers/char/rocket.c:451:7: originally declared here
drivers/char/rocket.c:451:7: warning: symbol '_x' shadows an earlier one
drivers/char/rocket.c:451:7: originally declared here
drivers/char/rocket.c:451:7: warning: symbol '_y' shadows an earlier one
drivers/char/rocket.c:451:7: originally declared here
drivers/char/rocket.c:1754:7: warning: symbol '_x' shadows an earlier one
drivers/char/rocket.c:1754:7: originally declared here
drivers/char/rocket.c:1754:7: warning: symbol '_x' shadows an earlier one
drivers/char/rocket.c:1754:7: originally declared here
drivers/char/rocket.c:1754:7: warning: symbol '_y' shadows an earlier one
drivers/char/rocket.c:1754:7: originally declared here
drivers/char/rocket.c:1751:20: warning: Using plain integer as NULL pointer

Signed-off-by: Harvey Harrison <harvey.harrison@gmail.com>
---
 drivers/char/rocket.c |    9 +++++----
 1 files changed, 5 insertions(+), 4 deletions(-)

diff --git a/drivers/char/rocket.c b/drivers/char/rocket.c
index 72f2892..2778d64 100644
--- a/drivers/char/rocket.c
+++ b/drivers/char/rocket.c
@@ -448,7 +448,8 @@ static void rp_do_transmit(struct r_port *info)
 	while (1) {
 		if (tty->stopped || tty->hw_stopped)
 			break;
-		c = min(info->xmit_fifo_room, min(info->xmit_cnt, XMIT_BUF_SIZE - info->xmit_tail));
+		c = min(info->xmit_fifo_room, info->xmit_cnt);
+		c = min(c, XMIT_BUF_SIZE - info->xmit_tail);
 		if (c <= 0 || info->xmit_fifo_room <= 0)
 			break;
 		sOutStrW(sGetTxRxDataIO(cp), (unsigned short *) (info->xmit_buf + info->xmit_tail), c / 2);
@@ -1748,10 +1749,10 @@ static int rp_write(struct tty_struct *tty,
 
 	/*  Write remaining data into the port's xmit_buf */
 	while (1) {
-		if (info->tty == 0)	/*   Seemingly obligatory check... */
+		if (info->tty == NULL)	/*   Seemingly obligatory check... */
 			goto end;
-
-		c = min(count, min(XMIT_BUF_SIZE - info->xmit_cnt - 1, XMIT_BUF_SIZE - info->xmit_head));
+		c = min(count, XMIT_BUF_SIZE - info->xmit_cnt - 1);
+		c = min(c, XMIT_BUF_SIZE - info->xmit_head);
 		if (c <= 0)
 			break;
 
-- 
1.5.4.2.200.g99e75




^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH] char: fix sparse variable shadowing and int as NULL pointer in rocket.c
  2008-02-22 17:46 [PATCH] char: fix sparse variable shadowing and int as NULL pointer in rocket.c Harvey Harrison
@ 2008-02-27 23:29 ` Andrew Morton
  2008-02-27 23:38   ` Harvey Harrison
  0 siblings, 1 reply; 4+ messages in thread
From: Andrew Morton @ 2008-02-27 23:29 UTC (permalink / raw)
  To: Harvey Harrison; +Cc: linux-kernel

On Fri, 22 Feb 2008 09:46:59 -0800
Harvey Harrison <harvey.harrison@gmail.com> wrote:
>
> Subject: [PATCH] char: fix sparse variable shadowing and int as NULL pointer in rocket.c
>

Please try to make the patch titles big-endian.  This one could have been

char: rocket.c: fix sparse variable shadowing and int as NULL pointer

or even

rocket.c: fix sparse variable shadowing and int as NULL pointer

> Nested min() macros shadow _x, separate into two lines.
> drivers/char/rocket.c:451:7: warning: symbol '_x' shadows an earlier one
> drivers/char/rocket.c:451:7: originally declared here
> drivers/char/rocket.c:451:7: warning: symbol '_x' shadows an earlier one
> drivers/char/rocket.c:451:7: originally declared here
> drivers/char/rocket.c:451:7: warning: symbol '_y' shadows an earlier one
> drivers/char/rocket.c:451:7: originally declared here
> drivers/char/rocket.c:1754:7: warning: symbol '_x' shadows an earlier one
> drivers/char/rocket.c:1754:7: originally declared here
> drivers/char/rocket.c:1754:7: warning: symbol '_x' shadows an earlier one
> drivers/char/rocket.c:1754:7: originally declared here
> drivers/char/rocket.c:1754:7: warning: symbol '_y' shadows an earlier one
> drivers/char/rocket.c:1754:7: originally declared here
> drivers/char/rocket.c:1751:20: warning: Using plain integer as NULL pointer
> 

That's really a sparse glitch.  There's nothing we can sanely do about it.

> ---
>  drivers/char/rocket.c |    9 +++++----
>  1 files changed, 5 insertions(+), 4 deletions(-)
> 
> diff --git a/drivers/char/rocket.c b/drivers/char/rocket.c
> index 72f2892..2778d64 100644
> --- a/drivers/char/rocket.c
> +++ b/drivers/char/rocket.c
> @@ -448,7 +448,8 @@ static void rp_do_transmit(struct r_port *info)
>  	while (1) {
>  		if (tty->stopped || tty->hw_stopped)
>  			break;
> -		c = min(info->xmit_fifo_room, min(info->xmit_cnt, XMIT_BUF_SIZE - info->xmit_tail));
> +		c = min(info->xmit_fifo_room, info->xmit_cnt);
> +		c = min(c, XMIT_BUF_SIZE - info->xmit_tail);

Apart from things like that.

Probably this code is cleaner than the old version so let's do it, but it
seems that we need a general fix.


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH] char: fix sparse variable shadowing and int as NULL pointer in rocket.c
  2008-02-27 23:29 ` Andrew Morton
@ 2008-02-27 23:38   ` Harvey Harrison
  2008-02-27 23:58     ` Andrew Morton
  0 siblings, 1 reply; 4+ messages in thread
From: Harvey Harrison @ 2008-02-27 23:38 UTC (permalink / raw)
  To: Andrew Morton; +Cc: linux-kernel

On Wed, 2008-02-27 at 15:29 -0800, Andrew Morton wrote:
> On Fri, 22 Feb 2008 09:46:59 -0800
> Harvey Harrison <harvey.harrison@gmail.com> wrote:
> >
> > Subject: [PATCH] char: fix sparse variable shadowing and int as NULL pointer in rocket.c
> >
> 
> Please try to make the patch titles big-endian.  This one could have been
> 
> char: rocket.c: fix sparse variable shadowing and int as NULL pointer
> 

OK.

> or even
> 
> rocket.c: fix sparse variable shadowing and int as NULL pointer
> 
> > Nested min() macros shadow _x, separate into two lines.
> > drivers/char/rocket.c:451:7: warning: symbol '_x' shadows an earlier one
> > drivers/char/rocket.c:451:7: originally declared here
> > drivers/char/rocket.c:451:7: warning: symbol '_x' shadows an earlier one
> > drivers/char/rocket.c:451:7: originally declared here
> > drivers/char/rocket.c:451:7: warning: symbol '_y' shadows an earlier one
> > drivers/char/rocket.c:451:7: originally declared here
> > drivers/char/rocket.c:1754:7: warning: symbol '_x' shadows an earlier one
> > drivers/char/rocket.c:1754:7: originally declared here
> > drivers/char/rocket.c:1754:7: warning: symbol '_x' shadows an earlier one
> > drivers/char/rocket.c:1754:7: originally declared here
> > drivers/char/rocket.c:1754:7: warning: symbol '_y' shadows an earlier one
> > drivers/char/rocket.c:1754:7: originally declared here
> > drivers/char/rocket.c:1751:20: warning: Using plain integer as NULL pointer
> > 
> 
> That's really a sparse glitch.  There's nothing we can sanely do about it.
> 

Well, we can at least get rid of the warnings when min/max are nested.
I sent you a patch earlier today that uses different temp variables in
min/max/min_t/max_t to avoid this.  min/min and max/max nesting will
always see this.  I also introduced clamp()/clamp_t() in that patch
for use in libata and drivers/media.

> > ---
> >  drivers/char/rocket.c |    9 +++++----
> >  1 files changed, 5 insertions(+), 4 deletions(-)
> > 
> > diff --git a/drivers/char/rocket.c b/drivers/char/rocket.c
> > index 72f2892..2778d64 100644
> > --- a/drivers/char/rocket.c
> > +++ b/drivers/char/rocket.c
> > @@ -448,7 +448,8 @@ static void rp_do_transmit(struct r_port *info)
> >  	while (1) {
> >  		if (tty->stopped || tty->hw_stopped)
> >  			break;
> > -		c = min(info->xmit_fifo_room, min(info->xmit_cnt, XMIT_BUF_SIZE - info->xmit_tail));
> > +		c = min(info->xmit_fifo_room, info->xmit_cnt);
> > +		c = min(c, XMIT_BUF_SIZE - info->xmit_tail);
> 
> Apart from things like that.
> 
> Probably this code is cleaner than the old version so let's do it, but it
> seems that we need a general fix.

min3()?  No _good_ ideas I'm afraid.

Cheers,

Harvey


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH] char: fix sparse variable shadowing and int as NULL pointer in rocket.c
  2008-02-27 23:38   ` Harvey Harrison
@ 2008-02-27 23:58     ` Andrew Morton
  0 siblings, 0 replies; 4+ messages in thread
From: Andrew Morton @ 2008-02-27 23:58 UTC (permalink / raw)
  To: Harvey Harrison; +Cc: linux-kernel

On Wed, 27 Feb 2008 15:38:07 -0800
Harvey Harrison <harvey.harrison@gmail.com> wrote:

> > Probably this code is cleaner than the old version so let's do it, but it
> > seems that we need a general fix.
> 
> min3()?  No _good_ ideas I'm afraid.

Fix sparse, I'd say.  Probably hard to do, but that warning really
isn't useful.

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2008-02-27 23:59 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2008-02-22 17:46 [PATCH] char: fix sparse variable shadowing and int as NULL pointer in rocket.c Harvey Harrison
2008-02-27 23:29 ` Andrew Morton
2008-02-27 23:38   ` Harvey Harrison
2008-02-27 23:58     ` Andrew Morton

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).