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

Lidza Louina lidza.louina at gmail.com
Tue Oct 1 16:54:21 UTC 2013


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 at gmail.com>
---
 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--;
+
 
 	if (ch->ch_open_count && un->un_open_count) {
 		DPR_CLOSE(("dgap_tty_close: not last close ch: %d un:%d\n",
-- 
1.8.1.2



More information about the devel mailing list