[PATCH] kexec.h: stop exporting kexec_load() to userspace

Maximilian Attems max at stro.at
Wed Jan 15 08:38:38 EST 2014

On Wed, Jan 15, 2014 at 02:17:04PM +0100, Paul Bolle wrote:
> Since v3.5 kexec.h is exported to userspace. That includes its
> declaration of kexec_load():
>     extern int kexec_load(void *, size_t, struct kexec_segment *,
>                    unsigned long int);
> This declaration isn't very useful to userspace programs on itself. They
> still have to define a matching function (which basically wraps the
> kexec_load syscall). I'm not aware of programs or libraries that actually
> do that.
> It can be removed. The programs that actually use it, if there
> are any, should then provide their own declaration to keep compiling.
> Already compiled binaries will not be affected.

nack, klibc uses the header and there was some discussion that glibc
could/should use it too. I didn't follow kexec git, but there is/was
a version that just uses the kexec_load() if the c library provides it.
Until Santa Claus materialises in form of a direct kernel user-space API,
see follow ups on http://lwn.net/Articles/534682/ and proposal by hpa
> This gets rid of the headers_check warning that can be seen ever since
> this header was exported:
>     [...]/usr/include/linux/kexec.h:49: userspace cannot reference function or variable defined in the kernel

this is the wrong  way of fix.


More information about the kexec mailing list