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

Commit 81daa406 authored by Hamish Martin's avatar Hamish Martin Committed by Greg Kroah-Hartman
Browse files

uio: Reduce return paths from uio_write()



Drive all return paths for uio_write() through a single block at the
end of the function.

Signed-off-by: default avatarHamish Martin <hamish.martin@alliedtelesis.co.nz>
Reviewed-by: default avatarChris Packham <chris.packham@alliedtelesis.co.nz>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent f59acbc5
Loading
Loading
Loading
Loading
+17 −8
Original line number Original line Diff line number Diff line
@@ -568,20 +568,29 @@ static ssize_t uio_write(struct file *filep, const char __user *buf,
	ssize_t retval;
	ssize_t retval;
	s32 irq_on;
	s32 irq_on;


	if (!idev->info->irq)
	if (!idev->info->irq) {
		return -EIO;
		retval = -EIO;
		goto out;
	}


	if (count != sizeof(s32))
	if (count != sizeof(s32)) {
		return -EINVAL;
		retval = -EINVAL;
		goto out;
	}


	if (!idev->info->irqcontrol)
	if (!idev->info->irqcontrol) {
		return -ENOSYS;
		retval = -ENOSYS;
		goto out;
	}


	if (copy_from_user(&irq_on, buf, count))
	if (copy_from_user(&irq_on, buf, count)) {
		return -EFAULT;
		retval = -EFAULT;
		goto out;
	}


	retval = idev->info->irqcontrol(idev->info, irq_on);
	retval = idev->info->irqcontrol(idev->info, irq_on);


out:
	return retval ? retval : sizeof(s32);
	return retval ? retval : sizeof(s32);
}
}