瀏覽代碼

drivers/rtc/rtc-pcf8563.c: fix uninitialized use warning

gcc-4.9 found a potential condition under which the 'pending' variable
may be used uninitialized:

  drivers/rtc/rtc-pcf8563.c: In function 'pcf8563_irq':
  drivers/rtc/rtc-pcf8563.c:173:5: warning: 'pending' may be used uninitialized in this function [-Wmaybe-uninitialized]

This is because in the pcf8563_get_alarm_mode() function, we check any
nonzero return of pcf8563_read_block_data, but in the irq function we
only check for negative values, so a possible positive value does not
get detected if the compiler chooses not to inline the entire call
chain.

Checking for any non-zero value in the interrupt handler as well is just
as correct and lets the compiler know what we are doing, without needing
a bogus initialization.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Cc: Sergei Shtylyov <sergei.shtylyov@cogentembedded.com>
Cc: Alessandro Zummo <a.zummo@towertech.it>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Arnd Bergmann 10 年之前
父節點
當前提交
e698a51239
共有 1 個文件被更改,包括 1 次插入1 次删除
  1. 1 1
      drivers/rtc/rtc-pcf8563.c

+ 1 - 1
drivers/rtc/rtc-pcf8563.c

@@ -167,7 +167,7 @@ static irqreturn_t pcf8563_irq(int irq, void *dev_id)
 	char pending;
 
 	err = pcf8563_get_alarm_mode(pcf8563->client, NULL, &pending);
-	if (err < 0)
+	if (err)
 		return err;
 
 	if (pending) {