Messages in this thread | | | From | "Petr Vandrovec" <> | Date | Wed, 9 Oct 2002 14:20:19 +0200 | Subject | Re: [PATCH] Re: export of sys_call_table |
| |
On 8 Oct 02 at 18:21, Brian F. G. Bidulock wrote: > --- kernel/sys.c.orig 2002-08-02 19:39:46.000000000 -0500 > +++ kernel/sys.c 2002-10-08 16:46:55.000000000 -0500 ...
I believe that you should check that nobody else has registered its own streams module. You can also allow for multiple streams modules in parallel (and fall through when module returns on -ENOIOCTLCMD or -ENOTTY), but I believe that usually only one module will be registered.
And I believe that export symbols should NOT be _GPL_ONLY: before (non-GPL) export of syscall_table was available, non-GPL modules were able to hook syscalls, and when _GPL_ONLY was introduced into kernel it was promised that we'll never make currently provided functionality GPL-only (as far as I remember). Best regards, Petr Vandrovec
int register_streams_calls(...) > +void register_streams_calls(int (*putpmsg) (int, void *, void *, int, int), > + int (*getpmsg) (int, void *, void *, int, int)) > +{
int err; if (!putpmsg || !getpmsg) return -EINVAL;
> + down_write(&streams_call_sem);
err = -EBUSY; if (!do_putpmsg) { err = 0;
> + do_putpmsg = putpmsg; > + do_getpmsg = getpmsg;
}
> + up_write(&streams_call_sem);
return err;
> +} > + > +void unregister_streams_calls(void) > +{
down_write(&streams_call_sem); do_putpmsg = NULL; do_getpmsg = NULL; up_write(&streams_call_sem); } - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |