On Tue, May 23, 2023 at 11:12:37AM +0200, David Hildenbrand wrote: > Also, how is passing "0"s to e.g., PR_GET_THP_DISABLE reliable? We need arg2 > -> arg5 to be 0. But wouldn't the following also just pass a 0 "int" ? > > prctl(PR_GET_THP_DISABLE, 0, 0, 0, 0) > > I'm easily confused by such (va_args) things, so sorry for the dummy > questions. Isn't the prctl() prototype in the user headers defined with the first argument as int while the rest as unsigned long? At least from the man page: int prctl(int option, unsigned long arg2, unsigned long arg3, unsigned long arg4, unsigned long arg5); So there are no va_args tricks (which confuse me as well). Any int passed to arg[2-5] would be converted by the compiler to an unsigned long before being passed to the kernel. So I think the change in this patch is harmless as the conversion is happening anyway. (well, unless I completely missed what the problem is) -- Catalin