u32 id; u64 lun; 
u32 id = -1; u64 lun = -1; 
static int i2o_scsi_probe(struct device *dev){	struct i2o_device *i2o_dev = to_i2o_device(dev);	struct i2o_controller *c = i2o_dev->iop;	struct i2o_scsi_host *i2o_shost;	struct Scsi_Host *scsi_host;	struct i2o_device *parent;	struct scsi_device *scsi_dev;	u32 id;	u64 lun;	int channel = -1;	int i;	i2o_shost = i2o_scsi_get_host(c);	if (!i2o_shost)		return -EFAULT;	scsi_host = i2o_shost->scsi_host;	if (i2o_parm_field_get(i2o_dev, 0, 3, &id, 4) < 0)		return -EFAULT;	if (id >= scsi_host->max_id) {		osm_warn("SCSI device id (%d) >= max_id of I2O host (%d)", id,			 scsi_host->max_id);		return -EFAULT;	}	if (i2o_parm_field_get(i2o_dev, 0, 4, &lun, 8) < 0)		return -EFAULT;	if (lun >= scsi_host->max_lun) {		osm_warn("SCSI device id (%d) >= max_lun of I2O host (%d)",			 (unsigned int)lun, scsi_host->max_lun);		return -EFAULT;	}	parent = i2o_iop_find_device(c, i2o_dev->lct_data.parent_tid);	if (!parent) {		osm_warn("can not find parent of device %03x\n",			 i2o_dev->lct_data.tid);		return -EFAULT;	}	for (i = 0; i <= i2o_shost->scsi_host->max_channel; i++)		if (i2o_shost->channel[i] == parent)			channel = i;	if (channel == -1) {		osm_warn("can not find channel of device %03x\n",			 i2o_dev->lct_data.tid);		return -EFAULT;	}	scsi_dev =	    __scsi_add_device(i2o_shost->scsi_host, channel, id, lun, i2o_dev);	if (IS_ERR(scsi_dev)) {		osm_warn("can not add SCSI device %03x\n",			 i2o_dev->lct_data.tid);		return PTR_ERR(scsi_dev);	}	sysfs_create_link(&i2o_dev->device.kobj, &scsi_dev->sdev_gendev.kobj, "scsi");	osm_info("device added (TID: %03x) channel: %d, id: %d, lun: %d\n",		 i2o_dev->lct_data.tid, channel, id, (unsigned int)lun);	return 0;};
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/b2aaee33fbb354a2f08121aa1c1be55841102761/i2o_scsi.c/clean/drivers/message/i2o/i2o_scsi.c