Module: xenomai-3 Branch: next Commit: c604ca99ce4aee8f52a4d05984a5f8c6083212a7 URL: http://git.xenomai.org/?p=xenomai-3.git;a=commit;h=c604ca99ce4aee8f52a4d05984a5f8c6083212a7
Author: Philippe Gerum <r...@xenomai.org> Date: Fri Apr 28 12:14:41 2017 +0200 cobalt/rtdm: fix regression in memory mapping request e6ce133 should have only fixed a spurious __user annotation instead of introducing a wrong copy to user. Do the right thing now. --- include/cobalt/kernel/rtdm/fd.h | 2 +- kernel/cobalt/rtdm/fd.c | 8 ++------ 2 files changed, 3 insertions(+), 7 deletions(-) diff --git a/include/cobalt/kernel/rtdm/fd.h b/include/cobalt/kernel/rtdm/fd.h index dc653d6..086b04b 100644 --- a/include/cobalt/kernel/rtdm/fd.h +++ b/include/cobalt/kernel/rtdm/fd.h @@ -369,7 +369,7 @@ ssize_t rtdm_fd_sendmsg(int ufd, const struct user_msghdr *msg, int flags); int rtdm_fd_mmap(int ufd, struct _rtdm_mmap_request *rma, - void * __user *u_addrp); + void **u_addrp); int rtdm_fd_valid_p(int ufd); diff --git a/kernel/cobalt/rtdm/fd.c b/kernel/cobalt/rtdm/fd.c index 4b788c5..ffcd3aa 100644 --- a/kernel/cobalt/rtdm/fd.c +++ b/kernel/cobalt/rtdm/fd.c @@ -656,10 +656,9 @@ ebadf: EXPORT_SYMBOL_GPL(rtdm_fd_close); int rtdm_fd_mmap(int ufd, struct _rtdm_mmap_request *rma, - void * __user *u_addrp) + void **u_addrp) { struct rtdm_fd *fd; - void *addr; int ret; secondary_mode_only(); @@ -680,10 +679,7 @@ int rtdm_fd_mmap(int ufd, struct _rtdm_mmap_request *rma, } ret = __rtdm_mmap_from_fdop(fd, rma->length, rma->offset, - rma->prot, rma->flags, &addr); - if (ret == 0) - ret = rtdm_safe_copy_to_user(fd, u_addrp, - &addr, sizeof(addr)); + rma->prot, rma->flags, u_addrp); unlock: rtdm_fd_put(fd); out: _______________________________________________ Xenomai-git mailing list Xenomai-git@xenomai.org https://xenomai.org/mailman/listinfo/xenomai-git