Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 30138384 authored by Al Viro's avatar Al Viro
Browse files

compat_hdio_ioctl: get rid of set_fs()



Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
parent 229b53c9
Loading
Loading
Loading
Loading
+6 −9
Original line number Diff line number Diff line
@@ -79,19 +79,16 @@ static int compat_hdio_getgeo(struct gendisk *disk, struct block_device *bdev,
static int compat_hdio_ioctl(struct block_device *bdev, fmode_t mode,
		unsigned int cmd, unsigned long arg)
{
	mm_segment_t old_fs = get_fs();
	unsigned long kval;
	unsigned int __user *uvp;
	unsigned long *__user p;
	int error;

	set_fs(KERNEL_DS);
	p = compat_alloc_user_space(sizeof(unsigned long));
	error = __blkdev_driver_ioctl(bdev, mode,
				cmd, (unsigned long)(&kval));
	set_fs(old_fs);

				cmd, (unsigned long)p);
	if (error == 0) {
		uvp = compat_ptr(arg);
		if (put_user(kval, uvp))
		unsigned int __user *uvp = compat_ptr(arg);
		unsigned long v;
		if (get_user(v, p) || put_user(v, uvp))
			error = -EFAULT;
	}
	return error;