memset(drive->id, 0, SECTOR_WORDS * 4); 
static inline u8 probe_for_drive (ide_drive_t *drive){	/*	 *	In order to keep things simple we have an id	 *	block for all drives at all times. If the device	 *	is pre ATA or refuses ATA/ATAPI identify we	 *	will add faked data to this.	 *	 *	Also note that 0 everywhere means "can't do X"	 */ 	drive->id = kmalloc(SECTOR_WORDS *4, GFP_KERNEL);	drive->id_read = 0;	if(drive->id == NULL)	{		printk(KERN_ERR "ide: out of memory for id data.\n");		return 0;	}	memset(drive->id, 0, SECTOR_WORDS * 4);	strcpy(drive->id->model, "UNKNOWN");		/* skip probing? */	if (!drive->noprobe)	{		/* if !(success||timed-out) */		if (do_probe(drive, WIN_IDENTIFY) >= 2) {			/* look for ATAPI device */			(void) do_probe(drive, WIN_PIDENTIFY);		}		if (strstr(drive->id->model, "E X A B Y T E N E S T"))			enable_nest(drive);		if (!drive->present)			/* drive not found */			return 0;			/* identification failed? */		if (!drive->id_read) {			if (drive->media == ide_disk) {				printk(KERN_INFO "%s: non-IDE drive, CHS=%d/%d/%d\n",					drive->name, drive->cyl,					drive->head, drive->sect);			} else if (drive->media == ide_cdrom) {				printk(KERN_INFO "%s: ATAPI cdrom (?)\n", drive->name);			} else {				/* nuke it */				printk(KERN_WARNING "%s: Unknown device on bus refused identification. Ignoring.\n", drive->name);				drive->present = 0;			}		}		/* drive was found */	}	if(!drive->present)		return 0;	/* The drive wasn't being helpful. Add generic info only */	if (drive->id_read == 0) {		generic_id(drive);		return 1;	}	if (drive->media == ide_disk) {		ide_disk_init_chs(drive);		ide_disk_init_mult_count(drive);	}	return drive->present;}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/f5e3c2faa20615e900ab26bd957f898400435924/ide-probe.c/clean/drivers/ide/ide-probe.c