exit_detach: i2c_detach_client(new_client); 
static int atxp1_detect(struct i2c_adapter *adapter, int address, int kind){	struct i2c_client * new_client;	struct atxp1_data * data;	int err = 0;	u8 temp;	if (!i2c_check_functionality(adapter, I2C_FUNC_SMBUS_BYTE_DATA))		goto exit;	if (!(data = kmalloc(sizeof(struct atxp1_data), GFP_KERNEL))) {		err = -ENOMEM;		goto exit;	}	memset(data, 0, sizeof(struct atxp1_data));	new_client = &data->client;	i2c_set_clientdata(new_client, data);	new_client->addr = address;	new_client->adapter = adapter;	new_client->driver = &atxp1_driver;	new_client->flags = 0;	/* Detect ATXP1, checking if vendor ID registers are all zero */	if (!((i2c_smbus_read_byte_data(new_client, 0x3e) == 0) &&	     (i2c_smbus_read_byte_data(new_client, 0x3f) == 0) &&	     (i2c_smbus_read_byte_data(new_client, 0xfe) == 0) &&	     (i2c_smbus_read_byte_data(new_client, 0xff) == 0) )) {		/* No vendor ID, now checking if registers 0x10,0x11 (non-existent)		 * showing the same as register 0x00 */		temp = i2c_smbus_read_byte_data(new_client, 0x00);		if (!((i2c_smbus_read_byte_data(new_client, 0x10) == temp) &&			 (i2c_smbus_read_byte_data(new_client, 0x11) == temp) ))			goto exit_free;	}	/* Get VRM */	data->vrm = i2c_which_vrm();	if ((data->vrm != 90) && (data->vrm != 91)) {		dev_err(&new_client->dev, "Not supporting VRM %d.%d\n",				data->vrm / 10, data->vrm % 10);		goto exit_free;	}	strncpy(new_client->name, "atxp1", I2C_NAME_SIZE);	data->valid = 0;	init_MUTEX(&data->update_lock);	err = i2c_attach_client(new_client);	if (err)	{		dev_err(&new_client->dev, "Attach client error.\n");		goto exit_free;	}	device_create_file(&new_client->dev, &dev_attr_gpio1);	device_create_file(&new_client->dev, &dev_attr_gpio2);	device_create_file(&new_client->dev, &dev_attr_cpu0_vid);	dev_info(&new_client->dev, "Using VRM: %d.%d\n",			 data->vrm / 10, data->vrm % 10);	return 0;exit_free:	kfree(data);exit:	return err;};
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/943b0830cebe4711354945ed3cb44e84152aaca0/atxp1.c/clean/drivers/hwmon/atxp1.c