aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/i2c/busses/i2c-amd756.c5
-rw-r--r--drivers/i2c/busses/i2c-viapro.c5
2 files changed, 10 insertions, 0 deletions
diff --git a/drivers/i2c/busses/i2c-amd756.c b/drivers/i2c/busses/i2c-amd756.c
index 7490dc1771ae..573abe440842 100644
--- a/drivers/i2c/busses/i2c-amd756.c
+++ b/drivers/i2c/busses/i2c-amd756.c
@@ -334,6 +334,10 @@ static int __devinit amd756_probe(struct pci_dev *pdev,
334 int error; 334 int error;
335 u8 temp; 335 u8 temp;
336 336
337 /* driver_data might come from user-space, so check it */
338 if (id->driver_data > ARRAY_SIZE(chipname))
339 return -EINVAL;
340
337 if (amd756_ioport) { 341 if (amd756_ioport) {
338 dev_err(&pdev->dev, "Only one device supported " 342 dev_err(&pdev->dev, "Only one device supported "
339 "(you have a strange motherboard, btw)\n"); 343 "(you have a strange motherboard, btw)\n");
@@ -405,6 +409,7 @@ static struct pci_driver amd756_driver = {
405 .id_table = amd756_ids, 409 .id_table = amd756_ids,
406 .probe = amd756_probe, 410 .probe = amd756_probe,
407 .remove = __devexit_p(amd756_remove), 411 .remove = __devexit_p(amd756_remove),
412 .dynids.use_driver_data = 1,
408}; 413};
409 414
410static int __init amd756_init(void) 415static int __init amd756_init(void)
diff --git a/drivers/i2c/busses/i2c-viapro.c b/drivers/i2c/busses/i2c-viapro.c
index c9ce77f13c0e..661ebc7a711e 100644
--- a/drivers/i2c/busses/i2c-viapro.c
+++ b/drivers/i2c/busses/i2c-viapro.c
@@ -318,6 +318,10 @@ static int __devinit vt596_probe(struct pci_dev *pdev,
318 unsigned char temp; 318 unsigned char temp;
319 int error = -ENODEV; 319 int error = -ENODEV;
320 320
321 /* driver_data might come from user-space, so check it */
322 if (id->driver_data & 1 || id->driver_data > 0xff)
323 return -EINVAL;
324
321 /* Determine the address of the SMBus areas */ 325 /* Determine the address of the SMBus areas */
322 if (force_addr) { 326 if (force_addr) {
323 vt596_smba = force_addr & 0xfff0; 327 vt596_smba = force_addr & 0xfff0;
@@ -455,6 +459,7 @@ static struct pci_driver vt596_driver = {
455 .name = "vt596_smbus", 459 .name = "vt596_smbus",
456 .id_table = vt596_ids, 460 .id_table = vt596_ids,
457 .probe = vt596_probe, 461 .probe = vt596_probe,
462 .dynids.use_driver_data = 1,
458}; 463};
459 464
460static int __init i2c_vt596_init(void) 465static int __init i2c_vt596_init(void)