linux-fsdevel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* Return value of __mm_populate
@ 2013-04-13 12:14 Marco Stornelli
  2013-04-14  0:18 ` KOSAKI Motohiro
  0 siblings, 1 reply; 2+ messages in thread
From: Marco Stornelli @ 2013-04-13 12:14 UTC (permalink / raw)
  To: linux-mm; +Cc: Linux FS Devel

Hi,

I was seeing the code of __mm_populate (in -next) and I've got a doubt 
about the return value. The function __mlock_posix_error_return should 
return a proper error for mlock, converting the return value from 
__get_user_pages. It checks for EFAULT and ENOMEM. Actually 
__get_user_pages could return, in addition, ERESTARTSYS and EHWPOISON. 
So it seems to me that we could return to user space not expected value. 
I can't see them on the man page. In addition we shouldn't ever return 
ERESTARTSYS to the user space but EINTR. According to the man pages 
maybe we should return EAGAIN in these cases. Am I missing something?

Thanks,

Marco

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: Return value of __mm_populate
  2013-04-13 12:14 Return value of __mm_populate Marco Stornelli
@ 2013-04-14  0:18 ` KOSAKI Motohiro
  0 siblings, 0 replies; 2+ messages in thread
From: KOSAKI Motohiro @ 2013-04-14  0:18 UTC (permalink / raw)
  To: Marco Stornelli; +Cc: linux-mm, Linux FS Devel, kosaki.motohiro, lkml

(4/13/13 5:14 AM), Marco Stornelli wrote:
> Hi,
> 
> I was seeing the code of __mm_populate (in -next) and I've got a doubt 
> about the return value. The function __mlock_posix_error_return should 
> return a proper error for mlock, converting the return value from 
> __get_user_pages. It checks for EFAULT and ENOMEM. Actually 
> __get_user_pages could return, in addition, ERESTARTSYS and EHWPOISON. 

__get_user_pages doesn't return EHWPOISON if FOLL_HWPOISON is not specified.
I'm not expert ERESTARTSYS. I understand correctly, ERESTARTSYS is only returned
when signal received, and signal handling routine (e.g. do_signal) modify EIP and
hidden ERESTARTSYS from userland generically.


> So it seems to me that we could return to user space not expected value. 
> I can't see them on the man page. In addition we shouldn't ever return 
> ERESTARTSYS to the user space but EINTR. According to the man pages 
> maybe we should return EAGAIN in these cases. Am I missing something?



^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2013-04-14  0:18 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-04-13 12:14 Return value of __mm_populate Marco Stornelli
2013-04-14  0:18 ` KOSAKI Motohiro

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).