The logic at vivid_radio_rx_g_tuner() is producint an overflow
warning:
drivers/media/platform/vivid/vivid-radio-rx.c:250
vivid_radio_rx_g_tuner() warn: potential negative subtraction from max '65535 -
(__builtin_choose_expr( == || == , , __builtin_choose_expr( == || == , ,
__builtin_choose_expr( == || == , , __builtin_choose_expr( == || == , ,
__builtin_choose_expr( == || == , , __builtin_choose_expr( == , , (0))))))) *
65535) / delta'
Add a cast to prevent that.
Signed-off-by: Mauro Carvalho Chehab <[email protected]>
---
drivers/media/platform/vivid/vivid-radio-rx.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/media/platform/vivid/vivid-radio-rx.c
b/drivers/media/platform/vivid/vivid-radio-rx.c
index acbfea2cce76..1f86d7d4f72f 100644
--- a/drivers/media/platform/vivid/vivid-radio-rx.c
+++ b/drivers/media/platform/vivid/vivid-radio-rx.c
@@ -247,7 +247,7 @@ int vivid_radio_rx_g_tuner(struct file *file, void *fh,
struct v4l2_tuner *vt)
vt->rangehigh = FM_FREQ_RANGE_HIGH;
sig_qual = dev->radio_rx_sig_qual;
vt->signal = abs(sig_qual) > delta ? 0 :
- 0xffff - (abs(sig_qual) * 0xffff) / delta;
+ 0xffff - ((unsigned)abs(sig_qual) * 0xffff) / delta;
vt->afc = sig_qual > delta ? 0 : sig_qual;
if (abs(sig_qual) > delta)
vt->rxsubchans = 0;
--
2.14.3