if (~pci_resource_flags(dev, 0) & IORESOURCE_IO)
                return -ENODEV;
 
-       smbus = kmalloc(sizeof(struct amd_smbus), GFP_KERNEL);
+       smbus = kzalloc(sizeof(struct amd_smbus), GFP_KERNEL);
        if (!smbus)
                return -ENOMEM;
-       memset(smbus, 0, sizeof(struct amd_smbus));
 
        smbus->dev = dev;
        smbus->base = pci_resource_start(dev, 0);
 
                printk(KERN_WARNING"ibm-iic%d: missing additional data!\n",
                        ocp->def->index);
 
-       if (!(dev = kmalloc(sizeof(*dev), GFP_KERNEL))){
+       if (!(dev = kzalloc(sizeof(*dev), GFP_KERNEL))) {
                printk(KERN_CRIT "ibm-iic%d: failed to allocate device data\n",
                        ocp->def->index);
                return -ENOMEM;
        }
 
-       memset(dev, 0, sizeof(*dev));
        dev->idx = ocp->def->index;
        ocp_set_drvdata(ocp, dev);
        
 
        struct i2c_adapter *new_adapter;
        struct i2c_algo_iop3xx_data *adapter_data;
 
-       new_adapter = kmalloc(sizeof(struct i2c_adapter), GFP_KERNEL);
+       new_adapter = kzalloc(sizeof(struct i2c_adapter), GFP_KERNEL);
        if (!new_adapter) {
                ret = -ENOMEM;
                goto out;
        }
-       memset((void*)new_adapter, 0, sizeof(*new_adapter));
 
-       adapter_data = kmalloc(sizeof(struct i2c_algo_iop3xx_data), GFP_KERNEL);
+       adapter_data = kzalloc(sizeof(struct i2c_algo_iop3xx_data), GFP_KERNEL);
        if (!adapter_data) {
                ret = -ENOMEM;
                goto free_adapter;
        }
-       memset((void*)adapter_data, 0, sizeof(*adapter_data));
 
        res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
        if (!res) {
 
 
        tsize = sizeof(struct keywest_iface) +
                (sizeof(struct keywest_chan) + 4) * nchan;
-       iface = (struct keywest_iface *) kmalloc(tsize, GFP_KERNEL);
+       iface = (struct keywest_iface *) kzalloc(tsize, GFP_KERNEL);
        if (iface == NULL) {
                printk(KERN_ERR "i2c-keywest: can't allocate inteface !\n");
                pmac_low_i2c_unlock(np);
                return -ENOMEM;
        }
-       memset(iface, 0, tsize);
        spin_lock_init(&iface->lock);
        init_completion(&iface->complete);
        iface->node = of_node_get(np);
 
 
        pdata = (struct fsl_i2c_platform_data *) pdev->dev.platform_data;
 
-       if (!(i2c = kmalloc(sizeof(*i2c), GFP_KERNEL))) {
+       if (!(i2c = kzalloc(sizeof(*i2c), GFP_KERNEL))) {
                return -ENOMEM;
        }
-       memset(i2c, 0, sizeof(*i2c));
 
        i2c->irq = platform_get_irq(pdev, 0);
        i2c->flags = pdata->device_flags;
 
        if ((pd->id != 0) || !pdata)
                return -ENODEV;
 
-       drv_data = kmalloc(sizeof(struct mv64xxx_i2c_data), GFP_KERNEL);
-
+       drv_data = kzalloc(sizeof(struct mv64xxx_i2c_data), GFP_KERNEL);
        if (!drv_data)
                return -ENOMEM;
 
-       memset(drv_data, 0, sizeof(struct mv64xxx_i2c_data));
-
        if (mv64xxx_i2c_map_regs(pd, drv_data)) {
                rc = -ENODEV;
                goto exit_kfree;
 
        int res1, res2;
 
        /* we support 2 SMBus adapters */
-       if (!(smbuses = (void *)kmalloc(2*sizeof(struct nforce2_smbus),
+       if (!(smbuses = (void *)kzalloc(2*sizeof(struct nforce2_smbus),
                                        GFP_KERNEL)))
                return -ENOMEM;
-       memset (smbuses, 0, 2*sizeof(struct nforce2_smbus));
        pci_set_drvdata(dev, smbuses);
 
        /* SMBus adapter 1 */
 
 {
        struct i2c_par *adapter;
        
-       adapter = kmalloc(sizeof(struct i2c_par), GFP_KERNEL);
+       adapter = kzalloc(sizeof(struct i2c_par), GFP_KERNEL);
        if (adapter == NULL) {
-               printk(KERN_ERR "i2c-parport: Failed to kmalloc\n");
+               printk(KERN_ERR "i2c-parport: Failed to kzalloc\n");
                return;
        }
-       memset(adapter, 0x00, sizeof(struct i2c_par));
 
        pr_debug("i2c-parport: attaching to %s\n", port->name);
        adapter->pdev = parport_register_device(port, "i2c-parport",
 
        }
        busid = *reg;
 
-       iface = kmalloc(sizeof(struct smu_iface), GFP_KERNEL);
+       iface = kzalloc(sizeof(struct smu_iface), GFP_KERNEL);
        if (iface == NULL) {
                printk(KERN_ERR "i2c-pmac-smu: can't allocate inteface !\n");
                return -ENOMEM;
        }
-       memset(iface, 0, sizeof(struct smu_iface));
        init_completion(&iface->complete);
        iface->busid = busid;
 
 
        struct s_i2c_chip *chip;
        struct s_i2c_bus  *bus;
 
-        pci_set_drvdata(dev, kmalloc(sizeof(struct s_i2c_chip), GFP_KERNEL)); 
+       pci_set_drvdata(dev, kzalloc(sizeof(struct s_i2c_chip), GFP_KERNEL));
        chip = (struct s_i2c_chip *)pci_get_drvdata(dev);
        if (chip == NULL) {
                return -ENOMEM;
        }
 
-       memset(chip, 0, sizeof(struct s_i2c_chip));
-
        base = dev->resource[0].start & PCI_BASE_ADDRESS_MEM_MASK;
        len  = dev->resource[0].end - base + 1;
        chip->mmio = ioremap_nocache(base, len);
 
        int rc = 0;
        char description[64];
 
-       iface = kmalloc(sizeof(*iface), GFP_KERNEL);
+       iface = kzalloc(sizeof(*iface), GFP_KERNEL);
        if (!iface) {
                printk(KERN_ERR NAME ": can't allocate memory\n");
                rc = -ENOMEM;
                goto errout;
        }
 
-       memset(iface, 0, sizeof(*iface));
        adapter = &iface->adapter;
        i2c_set_adapdata(adapter, iface);
        snprintf(adapter->name, I2C_NAME_SIZE, "SCx200 ACB%d", index);
 
                                     I2C_FUNC_I2C))
                goto exit;
 
-       if (!(data = kmalloc(sizeof(struct ds1337_data), GFP_KERNEL))) {
+       if (!(data = kzalloc(sizeof(struct ds1337_data), GFP_KERNEL))) {
                err = -ENOMEM;
                goto exit;
        }
-       memset(data, 0, sizeof(struct ds1337_data));
        INIT_LIST_HEAD(&data->list);
 
        /* The common I2C client data is placed right before the
 
        struct i2c_client *client;
        int rc;
 
-       client = kmalloc(sizeof(struct i2c_client), GFP_KERNEL);
+       client = kzalloc(sizeof(struct i2c_client), GFP_KERNEL);
        if (!client)
                return -ENOMEM;
 
-       memset(client, 0, sizeof(struct i2c_client));
        strncpy(client->name, DS1374_DRV_NAME, I2C_NAME_SIZE);
        client->addr = addr;
        client->adapter = adap;
 
                                            | I2C_FUNC_SMBUS_BYTE))
                goto exit;
 
-       if (!(data = kmalloc(sizeof(struct eeprom_data), GFP_KERNEL))) {
+       if (!(data = kzalloc(sizeof(struct eeprom_data), GFP_KERNEL))) {
                err = -ENOMEM;
                goto exit;
        }
-       memset(data, 0, sizeof(struct eeprom_data));
 
        new_client = &data->client;
        memset(data->data, 0xff, EEPROM_SIZE);
 
        struct i2c_client *client;
        int rc;
 
-       client = kmalloc(sizeof(struct i2c_client), GFP_KERNEL);
+       client = kzalloc(sizeof(struct i2c_client), GFP_KERNEL);
        if (!client)
                return -ENOMEM;
 
-       memset(client, 0, sizeof(struct i2c_client));
        strncpy(client->name, M41T00_DRV_NAME, I2C_NAME_SIZE);
        client->addr = addr;
        client->adapter = adap;
 
        if (address & 1)
                return 0;
 
-       if (!(data = kmalloc(sizeof(struct max6875_data), GFP_KERNEL)))
+       if (!(data = kzalloc(sizeof(struct max6875_data), GFP_KERNEL)))
                return -ENOMEM;
-       memset(data, 0, sizeof(struct max6875_data));
 
        /* A fake client is created on the odd address */
-       if (!(fake_client = kmalloc(sizeof(struct i2c_client), GFP_KERNEL))) {
+       if (!(fake_client = kzalloc(sizeof(struct i2c_client), GFP_KERNEL))) {
                err = -ENOMEM;
                goto exit_kfree1;
        }
-       memset(fake_client, 0, sizeof(struct i2c_client));
 
        /* Init real i2c_client */
        real_client = &data->client;
 
 
        /* OK. For now, we presume we have a valid client. We now create the
           client structure, even though we cannot fill it completely yet. */
-       if (!(data = kmalloc(sizeof(struct pca9539_data), GFP_KERNEL))) {
+       if (!(data = kzalloc(sizeof(struct pca9539_data), GFP_KERNEL))) {
                err = -ENOMEM;
                goto exit;
        }
-       memset(data, 0, sizeof(struct pca9539_data));
 
        new_client = &data->client;
        i2c_set_clientdata(new_client, data);
 
 
        /* OK. For now, we presume we have a valid client. We now create the
           client structure, even though we cannot fill it completely yet. */
-       if (!(data = kmalloc(sizeof(struct pcf8574_data), GFP_KERNEL))) {
+       if (!(data = kzalloc(sizeof(struct pcf8574_data), GFP_KERNEL))) {
                err = -ENOMEM;
                goto exit;
        }
-       memset(data, 0, sizeof(struct pcf8574_data));
 
        new_client = &data->client;
        i2c_set_clientdata(new_client, data);
 
 
        /* OK. For now, we presume we have a valid client. We now create the
           client structure, even though we cannot fill it completely yet. */
-       if (!(data = kmalloc(sizeof(struct pcf8591_data), GFP_KERNEL))) {
+       if (!(data = kzalloc(sizeof(struct pcf8591_data), GFP_KERNEL))) {
                err = -ENOMEM;
                goto exit;
        }
-       memset(data, 0, sizeof(struct pcf8591_data));
        
        new_client = &data->client;
        i2c_set_clientdata(new_client, data);
 
                {addr, I2C_M_RD, 2, data}
        };
 
-       d = kmalloc(sizeof(struct rtc8564_data), GFP_KERNEL);
+       d = kzalloc(sizeof(struct rtc8564_data), GFP_KERNEL);
        if (!d) {
                ret = -ENOMEM;
                goto done;
        }
-       memset(d, 0, sizeof(struct rtc8564_data));
        new_client = &d->client;
 
        strlcpy(new_client->name, "RTC8564", I2C_NAME_SIZE);
 
                return 0;
        }
 
-       tps = kmalloc(sizeof *tps, GFP_KERNEL);
+       tps = kzalloc(sizeof *tps, GFP_KERNEL);
        if (!tps)
                return 0;
 
-       memset(tps, 0, sizeof *tps);
        init_MUTEX(&tps->lock);
        INIT_WORK(&tps->work, tps65010_work, tps);
        tps->irq = -1;
 
 {
        struct i2c_dev *i2c_dev;
 
-       i2c_dev = kmalloc(sizeof(*i2c_dev), GFP_KERNEL);
+       i2c_dev = kzalloc(sizeof(*i2c_dev), GFP_KERNEL);
        if (!i2c_dev)
                return ERR_PTR(-ENOMEM);
-       memset(i2c_dev, 0x00, sizeof(*i2c_dev));
 
        spin_lock(&i2c_dev_array_lock);
        if (i2c_dev_array[adap->nr]) {