if (i2c_get_clientdata(client)==NULL) {
if (data) kfree(data);   else
w83781d_detach_client(struct i2c_client *client){	int err;	if (i2c_is_isa_client(client))		release_region(client->addr, W83781D_EXTENT);	if ((err = i2c_detach_client(client))) {		dev_err(&client->dev,		       "Client deregistration failed, client not detached.\n");		return err;	}	if (i2c_get_clientdata(client)==NULL) {		/* subclients */		kfree(client);	} else {		/* main client */		kfree(i2c_get_clientdata(client));	}	return 0;}