From: Li Zefan After 'while (retry--) {...}', retry will be -1 but not 0. Signed-off-by: Li Zefan Cc: Mauro Carvalho Chehab Signed-off-by: Andrew Morton --- drivers/media/video/gspca/conex.c | 4 ++-- drivers/media/video/gspca/spca561.c | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff -puN drivers/media/video/gspca/conex.c~v4l-dvb-gspca-fix-wrong-retry-counting drivers/media/video/gspca/conex.c --- a/drivers/media/video/gspca/conex.c~v4l-dvb-gspca-fix-wrong-retry-counting +++ a/drivers/media/video/gspca/conex.c @@ -731,13 +731,13 @@ static void cx11646_jpeg(struct gspca_de reg_w_val(gspca_dev, 0x0000, 0x00); /* wait for completion */ retry = 50; - while (retry--) { + do { reg_r(gspca_dev, 0x0002, 1); /* 0x07 until 0x00 */ if (gspca_dev->usb_buf[0] == 0x00) break; reg_w_val(gspca_dev, 0x0053, 0x00); - } + } while (--retry); if (retry == 0) PDEBUG(D_ERR, "Damned Errors sending jpeg Table"); /* send the qtable now */ diff -puN drivers/media/video/gspca/spca561.c~v4l-dvb-gspca-fix-wrong-retry-counting drivers/media/video/gspca/spca561.c --- a/drivers/media/video/gspca/spca561.c~v4l-dvb-gspca-fix-wrong-retry-counting +++ a/drivers/media/video/gspca/spca561.c @@ -200,11 +200,11 @@ static int i2c_read(struct gspca_dev *gs reg_w_val(gspca_dev->dev, 0x8804, 0x92); reg_w_val(gspca_dev->dev, 0x8801, reg); reg_w_val(gspca_dev->dev, 0x8802, (mode | 0x01)); - while (retry--) { + do { reg_r(gspca_dev, 0x8803, 1); if (!gspca_dev->usb_buf) break; - } + } while (--retry); if (retry == 0) return -1; reg_r(gspca_dev, 0x8800, 1); _