media: rainshadow-cec: avoid -Wmaybe-uninitialized warning again
Back in April I created a patch to address a false-positive warning: drivers/media/usb/rainshadow-cec/rainshadow-cec.c: In function 'rain_irq_work_handler': drivers/media/usb/rainshadow-cec/rainshadow-cec.c:171:31: error: 'data' may be used uninitialized in this function [-Werror=maybe-uninitialized] My patch was totally wrong and introduced a real bug, and Colin Ian King thankfully noticed it now and fixed my mistake. Unfortunately, fixing the actual uninitialized data in this case brought back the original bogus warning. This is a new version of the patch, which simplifies the code to the point where gcc notices the behavior is correct. Fixes:ca33784ba4
("[media] rainshadow-cec: ensure exit_loop is intialized") Fixes:ea6a69defd
("[media] rainshadow-cec: avoid -Wmaybe-uninitialized warning") Cc: Colin Ian King <colin.king@canonical.com> Signed-off-by: Arnd Bergmann <arnd@arndb.de> Signed-off-by: Hans Verkuil <hansverk@cisco.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
This commit is contained in:
Родитель
7ee88f8c6b
Коммит
0a0c1b823c
|
@ -116,21 +116,19 @@ static void rain_irq_work_handler(struct work_struct *work)
|
|||
|
||||
while (true) {
|
||||
unsigned long flags;
|
||||
bool exit_loop = false;
|
||||
char data;
|
||||
|
||||
spin_lock_irqsave(&rain->buf_lock, flags);
|
||||
if (rain->buf_len) {
|
||||
data = rain->buf[rain->buf_rd_idx];
|
||||
rain->buf_len--;
|
||||
rain->buf_rd_idx = (rain->buf_rd_idx + 1) & 0xff;
|
||||
} else {
|
||||
exit_loop = true;
|
||||
}
|
||||
spin_unlock_irqrestore(&rain->buf_lock, flags);
|
||||
|
||||
if (exit_loop)
|
||||
if (!rain->buf_len) {
|
||||
spin_unlock_irqrestore(&rain->buf_lock, flags);
|
||||
break;
|
||||
}
|
||||
|
||||
data = rain->buf[rain->buf_rd_idx];
|
||||
rain->buf_len--;
|
||||
rain->buf_rd_idx = (rain->buf_rd_idx + 1) & 0xff;
|
||||
|
||||
spin_unlock_irqrestore(&rain->buf_lock, flags);
|
||||
|
||||
if (!rain->cmd_started && data != '?')
|
||||
continue;
|
||||
|
|
Загрузка…
Ссылка в новой задаче