Re: [PATCH] Re: export of sys_call_table

From: Petr Vandrovec (VANDROVE@vc.cvut.cz)
Date: Wed Oct 09 2002 - 07:20:19 EST


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/



This archive was generated by hypermail 2b29 : Tue Oct 15 2002 - 22:00:30 EST