Re: [PATCH v4 2/2] staging: dgap: tty.c: removes smatch warning "unsigned '--un->un_open_count' is never less than zero"

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, Oct 01, 2013 at 12:54:21PM -0400, Lidza Louina wrote:
> This patch removes this smatch warning:
> unsigned '--un->un_open_count' is never less than zero
> 
> The code decremented the un_open_count variable
> and tested to see if it was less than zero. Because
> un_open_count is unsigned and can't be below zero,
> this test didn't work.
> 
> Signed-off-by: Lidza Louina <lidza.louina@xxxxxxxxx>
> ---
>  drivers/staging/dgap/dgap_tty.c | 6 ++++--
>  1 file changed, 4 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/staging/dgap/dgap_tty.c b/drivers/staging/dgap/dgap_tty.c
> index 015bccf..58cdcf9 100644
> --- a/drivers/staging/dgap/dgap_tty.c
> +++ b/drivers/staging/dgap/dgap_tty.c
> @@ -1458,12 +1458,14 @@ static void dgap_tty_close(struct tty_struct *tty, struct file *file)
>  		un->un_open_count = 1;
>  	}  
>  
> -	if (--un->un_open_count < 0) {
> +	if (--un->un_open_count == 0) {
>  		APR(("bad serial port open count of %d\n", un->un_open_count));
> -		un->un_open_count = 0;
> +		un->un_open_count = 1;
>  	}
>  
>  	ch->ch_open_count--;
> +	un->un_open_count--;

This isn't correct.  Now we're decrementing it twice.  It should just
be:

	if (un->un_open_count == 0) {
		APR(("bad serial port open count of %d\n", un->un_open_count));
		un->un_open_count = 1;
	}

	un->un_open_count--;
	ch->ch_open_count--;

regards,
dan carpenter

_______________________________________________
devel mailing list
devel@xxxxxxxxxxxxxxxxxxxxxx
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel




[Index of Archives]     [Linux Driver Backports]     [DMA Engine]     [Linux GPIO]     [Linux SPI]     [Video for Linux]     [Linux USB Devel]     [Linux Coverity]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]
  Powered by Linux