Messages in this thread | | | Date | Tue, 22 Feb 2011 17:38:29 +0200 | Subject | Re: [PATCH v2 1/1] headers: fix circular dependency between linux/sched.h and linux/wait.h | From | David Cohen <> |
| |
On Mon, Feb 21, 2011 at 7:27 PM, Oleg Nesterov <oleg@redhat.com> wrote: > On 02/21, Oleg Nesterov wrote: >> >> On 02/21, Peter Zijlstra wrote: >> > >> > afaict its needed because struct signal_struct and struct sighand_struct >> > include a wait_queue_head_t. The inclusion seems to come through >> > completion.h, but afaict we don't actually need to include completion.h >> > because all we have is a pointer to a completion, which is perfectly >> > fine with an incomplete type. >> > >> > This all would suggest we move the signal bits into their own header >> > (include/linux/signal.h already exists and seems inviting). >> >> Agreed, sched.h contatins a lot of garbage, including the signal bits. >> >> As for signal_struct in particular I am not really sure, it is just >> misnamed. It is in fact "struct process" or "struct thread_group". But >> dequeue_signal/etc should go into signal.h. >> >> The only problem, it is not clear how to test such a change. > > Ah. sched.h includes signal.h, the testing is not the problem.
If sched.h includes signal.h and we move wait_queue_head_t users to signal.h, it means signal.h should include wait.h and then it is a problem to include sched.h in wait.h.
> > So, we can (at least) safely move some declarations.
Safely, yes, but it won't solve the issue for TASK_* in wait.h.
Br,
David
> > Oleg. > >
| |