idkp = kmalloc(sizeof(*idkp), GFP_KERNEL); 
idkp = kzalloc(sizeof(*idkp), GFP_KERNEL); 
static int ide_disk_probe(struct device *dev){	ide_drive_t *drive = to_ide_device(dev);	struct ide_disk_obj *idkp;	struct gendisk *g;	/* strstr("foo", "") is non-NULL */	if (!strstr("ide-disk", drive->driver_req))		goto failed;	if (!drive->present)		goto failed;	if (drive->media != ide_disk)		goto failed;	idkp = kmalloc(sizeof(*idkp), GFP_KERNEL);	if (!idkp)		goto failed;	g = alloc_disk_node(1 << PARTN_BITS,			hwif_to_node(drive->hwif));	if (!g)		goto out_free_idkp;	ide_init_disk(g, drive);	ide_register_subdriver(drive, &idedisk_driver);	memset(idkp, 0, sizeof(*idkp));	kref_init(&idkp->kref);	idkp->drive = drive;	idkp->driver = &idedisk_driver;	idkp->disk = g;	g->private_data = &idkp->driver;	drive->driver_data = idkp;	idedisk_setup(drive);	if ((!drive->head || drive->head > 16) && !drive->select.b.lba) {		printk(KERN_ERR "%s: INVALID GEOMETRY: %d PHYSICAL HEADS?\n",			drive->name, drive->head);		drive->attach = 0;	} else		drive->attach = 1;	g->minors = 1 << PARTN_BITS;	strcpy(g->devfs_name, drive->devfs_name);	g->driverfs_dev = &drive->gendev;	g->flags = drive->removable ? GENHD_FL_REMOVABLE : 0;	set_capacity(g, idedisk_capacity(drive));	g->fops = &idedisk_ops;	add_disk(g);	return 0;out_free_idkp:	kfree(idkp);failed:	return -ENODEV;}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/f5e3c2faa20615e900ab26bd957f898400435924/ide-disk.c/buggy/drivers/ide/ide-disk.c