static ssize_t serio_rebind_driver(struct device *dev, const char *buf, size_t count) 
static ssize_t serio_rebind_driver(struct device *dev, struct device_attribute *attr, const char *buf, size_t count) 
static ssize_t serio_rebind_driver(struct device *dev, const char *buf, size_t count){	struct serio *serio = to_serio_port(dev);	struct device_driver *drv;	int retval;	retval = down_interruptible(&serio_sem);	if (retval)		return retval;	retval = count;	if (!strncmp(buf, "none", count)) {		serio_disconnect_port(serio);	} else if (!strncmp(buf, "reconnect", count)) {		serio_reconnect_port(serio);	} else if (!strncmp(buf, "rescan", count)) {		serio_disconnect_port(serio);		serio_find_driver(serio);	} else if ((drv = driver_find(buf, &serio_bus)) != NULL) {		serio_disconnect_port(serio);		serio_bind_driver(serio, to_serio_driver(drv));		put_driver(drv);	} else {		retval = -EINVAL;	}	up(&serio_sem);	return retval;}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/e404e274f62665f3333d6a539d0d3701f678a598/serio.c/clean/drivers/input/serio/serio.c