-static int
-revalidate(const char __user *str, size_t size)
-{
- int major, minor, n;
- ulong flags;
- struct aoedev *d;
- char buf[16];
-
- if (size >= sizeof buf)
- return -EINVAL;
- buf[sizeof buf - 1] = '\0';
- if (copy_from_user(buf, str, size))
- return -EFAULT;
-
- /* should be e%d.%d format */
- n = sscanf(buf, "e%d.%d", &major, &minor);
- if (n != 2) {
- printk(KERN_ERR "aoe: %s: invalid device specification\n",
- __FUNCTION__);
- return -EINVAL;
- }
- d = aoedev_by_aoeaddr(major, minor);
- if (!d)
- return -EINVAL;
-
- spin_lock_irqsave(&d->lock, flags);
- d->flags |= DEVFL_PAUSE;
- spin_unlock_irqrestore(&d->lock, flags);
- aoecmd_cfg(major, minor);
-
- return 0;
-}
-