From: Dan Carpenter Date: Fri, 23 Aug 2013 08:41:47 +0000 (-0300) Subject: [media] s3c-camif: forever loop in camif_hw_set_source_format() X-Git-Tag: next-20130912~159^2~37 X-Git-Url: https://git.karo-electronics.de/?a=commitdiff_plain;h=d345a5e59b0af5919f4d7f2a0d4c8dcae657e9d1;hp=5c47776a2d6e36f09c6162196155bd59e70edbfb;p=karo-tx-linux.git [media] s3c-camif: forever loop in camif_hw_set_source_format() Because "i" is unsigned then "i-- >= 0" is always true. If we don't find what we are looking for then we loop forever. Signed-off-by: Dan Carpenter Signed-off-by: Sylwester Nawrocki Signed-off-by: Mauro Carvalho Chehab --- diff --git a/drivers/media/platform/s3c-camif/camif-regs.c b/drivers/media/platform/s3c-camif/camif-regs.c index a9e3b16460b8..ebf5b184cce4 100644 --- a/drivers/media/platform/s3c-camif/camif-regs.c +++ b/drivers/media/platform/s3c-camif/camif-regs.c @@ -106,15 +106,15 @@ static const u32 src_pixfmt_map[8][2] = { void camif_hw_set_source_format(struct camif_dev *camif) { struct v4l2_mbus_framefmt *mf = &camif->mbus_fmt; - unsigned int i = ARRAY_SIZE(src_pixfmt_map); + int i; u32 cfg; - while (i-- >= 0) { + for (i = ARRAY_SIZE(src_pixfmt_map) - 1; i >= 0; i--) { if (src_pixfmt_map[i][0] == mf->code) break; } - - if (i == 0 && src_pixfmt_map[i][0] != mf->code) { + if (i < 0) { + i = 0; dev_err(camif->dev, "Unsupported pixel code, falling back to %#08x\n", src_pixfmt_map[i][0]);