The core of this looks fine to me. Presumably this would be expressed in
userland as pthread_sigqueue.
You are missing compat_sys_rt_tgsigqueueinfo for e.g. the
arch/x86/ia32/ia32entry.S table.
The clean way to do that would be a do_rt_tgsigqueueinfo taking
the siginfo_t * (not __user). That is, just split out the copy_from_user,
so compat_sys_rt_tgsigqueueinfo does copy_siginfo_from_user32 instead.
Thanks,
Roland
On Tue, 30 Sep 2008, Roland McGrath wrote:
> The core of this looks fine to me. Presumably this would be expressed in
> userland as pthread_sigqueue.
Yes, that would match the pthread_kill then.
> You are missing compat_sys_rt_tgsigqueueinfo for e.g. the
> arch/x86/ia32/ia32entry.S table.
Duh, did not think about that.
> The clean way to do that would be a do_rt_tgsigqueueinfo taking
> the siginfo_t * (not __user). That is, just split out the copy_from_user,
> so compat_sys_rt_tgsigqueueinfo does copy_siginfo_from_user32 instead.
Will do.
Thanks,
tglx