ssize = __le64_to_cpu(*((u64 *) &id[100<<1])); 
ssize = le64_to_cpup((__le64 *) &id[100<<1]); 
ataid_complete(struct aoedev *d, unsigned char *id){	u64 ssize;	u16 n;	/* word 83: command set supported */	n = __le16_to_cpu(*((u16 *) &id[83<<1]));	/* word 86: command set/feature enabled */	n |= __le16_to_cpu(*((u16 *) &id[86<<1]));	if (n & (1<<10)) {	/* bit 10: LBA 48 */		d->flags |= DEVFL_EXT;		/* word 100: number lba48 sectors */		ssize = __le64_to_cpu(*((u64 *) &id[100<<1]));		/* set as in ide-disk.c:init_idedisk_capacity */		d->geo.cylinders = ssize;		d->geo.cylinders /= (255 * 63);		d->geo.heads = 255;		d->geo.sectors = 63;	} else {		d->flags &= ~DEVFL_EXT;		/* number lba28 sectors */		ssize = __le32_to_cpu(*((u32 *) &id[60<<1]));		/* NOTE: obsolete in ATA 6 */		d->geo.cylinders = __le16_to_cpu(*((u16 *) &id[54<<1]));		d->geo.heads = __le16_to_cpu(*((u16 *) &id[55<<1]));		d->geo.sectors = __le16_to_cpu(*((u16 *) &id[56<<1]));	}	d->ssize = ssize;	d->geo.start = 0;	if (d->gd != NULL) {		d->gd->capacity = ssize;		d->flags |= DEVFL_UP;		return;	}	if (d->flags & DEVFL_WORKON) {		printk(KERN_INFO "aoe: ataid_complete: can't schedule work, it's already on!  "			"(This really shouldn't happen).\n");		return;	}	INIT_WORK(&d->work, aoeblk_gdalloc, d);	schedule_work(&d->work);	d->flags |= DEVFL_WORKON;}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/63e9cc5d6fbe8b58ea1ee96439d356cbf726fbc0/aoecmd.c/clean/drivers/block/aoe/aoecmd.c