Commit 0edecc02 authored by Al Viro's avatar Al Viro
Browse files

atm: switch do_atmif_sioc() to direct use of atm_dev_ioctl()



Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
parent 8cacb416
Loading
Loading
Loading
Loading
+4 −21
Original line number Diff line number Diff line
@@ -286,30 +286,13 @@ static int do_atm_iobuf(struct socket *sock, unsigned int cmd,
static int do_atmif_sioc(struct socket *sock, unsigned int cmd,
			 unsigned long arg)
{
	struct atmif_sioc __user *sioc;
	struct compat_atmif_sioc __user *sioc32;
	struct compat_atmif_sioc __user *sioc32 = compat_ptr(arg);
	int number;
	u32 data;
	void __user *datap;
	int err;

	sioc = compat_alloc_user_space(sizeof(*sioc));
	sioc32 = compat_ptr(arg);

	if (copy_in_user(&sioc->number, &sioc32->number, 2 * sizeof(int)) ||
	    get_user(data, &sioc32->arg))
		return -EFAULT;
	datap = compat_ptr(data);
	if (put_user(datap, &sioc->arg))
	if (get_user(data, &sioc32->arg) || get_user(number, &sioc32->number))
		return -EFAULT;

	err = do_vcc_ioctl(sock, cmd, (unsigned long) sioc, 0);

	if (!err) {
		if (copy_in_user(&sioc32->length, &sioc->length,
				 sizeof(int)))
			err = -EFAULT;
	}
	return err;
	return atm_dev_ioctl(cmd, compat_ptr(data), &sioc32->length, number, 0);
}

static int do_atm_ioctl(struct socket *sock, unsigned int cmd32,