Commit 31950890 authored by Julien Thierry's avatar Julien Thierry Committed by Russell King
Browse files

ARM: 8792/1: oabi-compat: copy oabi events using __copy_to_user()



Copy events to user using __copy_to_user() rather than copy members of
individually with __put_user_error().
This has the benefit of disabling/enabling PAN once per event intead of
once per event member.

Signed-off-by: default avatarJulien Thierry <julien.thierry@arm.com>
Signed-off-by: default avatarRussell King <rmk+kernel@armlinux.org.uk>
parent 3aa2df6e
Loading
Loading
Loading
Loading
+6 −2
Original line number Diff line number Diff line
@@ -277,6 +277,7 @@ asmlinkage long sys_oabi_epoll_wait(int epfd,
				    int maxevents, int timeout)
{
	struct epoll_event *kbuf;
	struct oabi_epoll_event e;
	mm_segment_t fs;
	long ret, err, i;

@@ -295,8 +296,11 @@ asmlinkage long sys_oabi_epoll_wait(int epfd,
	set_fs(fs);
	err = 0;
	for (i = 0; i < ret; i++) {
		__put_user_error(kbuf[i].events, &events->events, err);
		__put_user_error(kbuf[i].data,   &events->data,   err);
		e.events = kbuf[i].events;
		e.data = kbuf[i].data;
		err = __copy_to_user(events, &e, sizeof(e));
		if (err)
			break;
		events++;
	}
	kfree(kbuf);