printk(KERN_ERR "i2o: unable to allocate memory for System " "Table\n"); 
osm_err("unable to allocate memory for System Table\n"); 
static int i2o_systab_build(void){	struct i2o_controller *c, *tmp;	int num_controllers = 0;	u32 change_ind = 0;	int count = 0;	struct i2o_sys_tbl *systab = i2o_systab.virt;	list_for_each_entry_safe(c, tmp, &i2o_controllers, list)	    num_controllers++;	if (systab) {		change_ind = systab->change_ind;		kfree(i2o_systab.virt);	}	/* Header + IOPs */	i2o_systab.len = sizeof(struct i2o_sys_tbl) + num_controllers *	    sizeof(struct i2o_sys_tbl_entry);	systab = i2o_systab.virt = kmalloc(i2o_systab.len, GFP_KERNEL);	if (!systab) {		printk(KERN_ERR "i2o: unable to allocate memory for System "		       "Table\n");		return -ENOMEM;	}	memset(systab, 0, i2o_systab.len);	systab->version = I2OVERSION;	systab->change_ind = change_ind + 1;	list_for_each_entry_safe(c, tmp, &i2o_controllers, list) {		i2o_status_block *sb;		if (count >= num_controllers) {			printk(KERN_ERR "i2o: controller added while building "			       "system table\n");			break;		}		sb = c->status_block.virt;		/*		 * Get updated IOP state so we have the latest information		 *		 * We should delete the controller at this point if it		 * doesn't respond since if it's not on the system table		 * it is techninically not part of the I2O subsystem...		 */		if (unlikely(i2o_status_get(c))) {			printk(KERN_ERR "%s: Deleting b/c could not get status"			       " while attempting to build system table\n",			       c->name);			i2o_iop_remove(c);			continue;	// try the next one		}		systab->iops[count].org_id = sb->org_id;		systab->iops[count].iop_id = c->unit + 2;		systab->iops[count].seg_num = 0;		systab->iops[count].i2o_version = sb->i2o_version;		systab->iops[count].iop_state = sb->iop_state;		systab->iops[count].msg_type = sb->msg_type;		systab->iops[count].frame_size = sb->inbound_frame_size;		systab->iops[count].last_changed = change_ind;		systab->iops[count].iop_capabilities = sb->iop_capabilities;		systab->iops[count].inbound_low =		    i2o_dma_low(c->base.phys + I2O_IN_PORT);		systab->iops[count].inbound_high =		    i2o_dma_high(c->base.phys + I2O_IN_PORT);		count++;	}	systab->num_entries = count;	return 0;};
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/f33213ecf49c98da4e85121b592c3bea8057c2e6/iop.c/clean/drivers/message/i2o/iop.c