From: Frank Schaefer Date: Sun, 3 Mar 2013 18:37:37 +0000 (-0300) Subject: [media] em28xx: do not interpret eeprom content if eeprom key is invalid X-Git-Tag: firefly_0821_release~3680^2~618^2~655 X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=f55eacbe744f696fa5ff48fe4fdc0f00edc08619;p=firefly-linux-kernel-4.4.55.git [media] em28xx: do not interpret eeprom content if eeprom key is invalid If the eeprom key isn't valid, either a different (currently unknown) format is used or the eeprom is corrupted. In both cases it doesn't make sense to interpret the data. Also print an error message. Signed-off-by: Frank Schäfer Signed-off-by: Mauro Carvalho Chehab --- diff --git a/drivers/media/usb/em28xx/em28xx-i2c.c b/drivers/media/usb/em28xx/em28xx-i2c.c index b8e9946f8452..b8a9bee836fa 100644 --- a/drivers/media/usb/em28xx/em28xx-i2c.c +++ b/drivers/media/usb/em28xx/em28xx-i2c.c @@ -434,8 +434,12 @@ static int em28xx_i2c_eeprom(struct em28xx *dev, unsigned char *eedata, int len) printk("\n"); } - if (em_eeprom->id == 0x9567eb1a) - dev->hash = em28xx_hash_mem(eedata, len, 32); + if (em_eeprom->id != 0x9567eb1a) { + em28xx_errdev("Unknown eeprom type or eeprom corrupted !"); + return -ENODEV; + } + + dev->hash = em28xx_hash_mem(eedata, len, 32); em28xx_info("EEPROM ID = 0x%08x, EEPROM hash = 0x%08lx\n", em_eeprom->id, dev->hash);