/* Set / reset given feature. Flag indicates wether to set (!=0) or the reset (=0) the feature.  */
int dasd_set_feature(struct ccw_device *cdev, int feature, int flag)
/* Set / reset given feature. Flag indicates wether to set (!=0) or the reset (=0) the feature.  */
int dasd_set_feature(struct ccw_device *cdev, int feature, int flag)
{
	struct dasd_devmap *devmap;
	devmap = dasd_find_busid(dev_name(&cdev->dev));
	if (IS_ERR(devmap))
		return PTR_ERR(devmap);
	spin_lock(&dasd_devmap_lock);
	if (flag)
		devmap->features |= feature;
	else
		devmap->features &= ~feature;
	if (devmap->device)
		devmap->device->features = devmap->features;
	spin_unlock(&dasd_devmap_lock);
	return 0;
}