return 0;
return -EINPROGRESS;
static int orinoco_ioctl_setessid(struct net_device *dev, struct iw_point *erq){	struct orinoco_private *priv = netdev_priv(dev);	char essidbuf[IW_ESSID_MAX_SIZE+1];	unsigned long flags;	/* Note : ESSID is ignored in Ad-Hoc demo mode, but we can set it	 * anyway... - Jean II */	memset(&essidbuf, 0, sizeof(essidbuf));	if (erq->flags) {		/* iwconfig includes the NUL in the specified length */		if (erq->length > IW_ESSID_MAX_SIZE+1)			return -E2BIG;				if (copy_from_user(&essidbuf, erq->pointer, erq->length))			return -EFAULT;		essidbuf[IW_ESSID_MAX_SIZE] = '\0';	}	if (orinoco_lock(priv, &flags) != 0)		return -EBUSY;	memcpy(priv->desired_essid, essidbuf, sizeof(priv->desired_essid));	orinoco_unlock(priv, &flags);	return 0;}