Re: [PATCH] sigqueue_free: fix the race with collect_signal()

2007-08-26 Thread Oleg Nesterov
On 08/27, taoyue wrote: > > Oleg Nesterov wrote: > >On 08/24, Sukadev Bhattiprolu wrote: > > > I know, using current->sighand->siglock to prevent one sigqueue > is free twice. I want to know whether it is possible that the two > function is called in different thread. If

Re: [PATCH] sigqueue_free: fix the race with collect_signal()

2007-08-26 Thread taoyue
Oleg Nesterov wrote: On 08/24, Sukadev Bhattiprolu wrote: Oleg Nesterov wrote: On 08/24, taoyue wrote: Oleg Nesterov wrote: collect_signal: sigqueue_free: list_del_init(>list);

Re: [PATCH] sigqueue_free: fix the race with collect_signal()

2007-08-26 Thread taoyue
Oleg Nesterov wrote: On 08/24, Sukadev Bhattiprolu wrote: Oleg Nesterov wrote: On 08/24, taoyue wrote: Oleg Nesterov wrote: collect_signal: sigqueue_free: list_del_init(first-list);

Re: [PATCH] sigqueue_free: fix the race with collect_signal()

2007-08-26 Thread Oleg Nesterov
On 08/27, taoyue wrote: Oleg Nesterov wrote: On 08/24, Sukadev Bhattiprolu wrote: I know, using current-sighand-siglock to prevent one sigqueue is free twice. I want to know whether it is possible that the two function is called in different thread. If that, the spin_lock is

Re: [PATCH] sigqueue_free: fix the race with collect_signal()

2007-08-25 Thread Oleg Nesterov
On 08/25, Sukadev Bhattiprolu wrote: > > Yes. I see it now. I had missed the SIGQUEUE_PREALLOC in __sigqueue_free(). Thanks for looking at this. This code looks simple, but it is not obvious, at least for me. Oleg. - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in

Re: [PATCH] sigqueue_free: fix the race with collect_signal()

2007-08-25 Thread Sukadev Bhattiprolu
Oleg Nesterov wrote: On 08/24, Sukadev Bhattiprolu wrote: Oleg Nesterov wrote: On 08/24, taoyue wrote: Oleg Nesterov wrote: collect_signal: sigqueue_free: list_del_init(>list);

Re: [PATCH] sigqueue_free: fix the race with collect_signal()

2007-08-25 Thread Sukadev Bhattiprolu
Oleg Nesterov wrote: On 08/24, Sukadev Bhattiprolu wrote: Oleg Nesterov wrote: On 08/24, taoyue wrote: Oleg Nesterov wrote: collect_signal: sigqueue_free: list_del_init(first-list);

Re: [PATCH] sigqueue_free: fix the race with collect_signal()

2007-08-25 Thread Oleg Nesterov
On 08/25, Sukadev Bhattiprolu wrote: Yes. I see it now. I had missed the SIGQUEUE_PREALLOC in __sigqueue_free(). Thanks for looking at this. This code looks simple, but it is not obvious, at least for me. Oleg. - To unsubscribe from this list: send the line unsubscribe linux-kernel in the

Re: [PATCH] sigqueue_free: fix the race with collect_signal()

2007-08-24 Thread Oleg Nesterov
On 08/24, Sukadev Bhattiprolu wrote: > > Oleg Nesterov wrote: > >On 08/24, taoyue wrote: > > > >>Oleg Nesterov wrote: > >> > collect_signal: sigqueue_free: > > list_del_init(>list); > spin_lock_irqsave(lock,

Re: [PATCH] sigqueue_free: fix the race with collect_signal()

2007-08-24 Thread Sukadev Bhattiprolu
Oleg Nesterov wrote: On 08/24, taoyue wrote: Oleg Nesterov wrote: collect_signal: sigqueue_free: list_del_init(>list); spin_lock_irqsave(lock, flags);

Re: [PATCH] sigqueue_free: fix the race with collect_signal()

2007-08-24 Thread Oleg Nesterov
On 08/24, taoyue wrote: > > Oleg Nesterov wrote: > >> > >>collect_signal: sigqueue_free: > >> > >>list_del_init(>list); > >> spin_lock_irqsave(lock, flags); > >> > >

Re: [PATCH] sigqueue_free: fix the race with collect_signal()

2007-08-24 Thread taoyue
Oleg Nesterov wrote: On 08/24, taoyue wrote: Oleg Nesterov wrote: --- t/kernel/signal.c~SQFREE2007-08-22 20:06:31.0 +0400 +++ t/kernel/signal.c 2007-08-23 16:02:57.0 +0400 @@ -1297,20 +1297,19 @@ struct sigqueue *sigqueue_alloc(void) void sigqueue_free(struct

Re: [PATCH] sigqueue_free: fix the race with collect_signal()

2007-08-24 Thread Oleg Nesterov
On 08/24, taoyue wrote: > > Oleg Nesterov wrote: > > > >--- t/kernel/signal.c~SQFREE 2007-08-22 20:06:31.0 +0400 > >+++ t/kernel/signal.c2007-08-23 16:02:57.0 +0400 > >@@ -1297,20 +1297,19 @@ struct sigqueue *sigqueue_alloc(void) > > void sigqueue_free(struct sigqueue *q) >

Re: [PATCH] sigqueue_free: fix the race with collect_signal()

2007-08-24 Thread Oleg Nesterov
On 08/24, taoyue wrote: Oleg Nesterov wrote: --- t/kernel/signal.c~SQFREE 2007-08-22 20:06:31.0 +0400 +++ t/kernel/signal.c2007-08-23 16:02:57.0 +0400 @@ -1297,20 +1297,19 @@ struct sigqueue *sigqueue_alloc(void) void sigqueue_free(struct sigqueue *q) {

Re: [PATCH] sigqueue_free: fix the race with collect_signal()

2007-08-24 Thread taoyue
Oleg Nesterov wrote: On 08/24, taoyue wrote: Oleg Nesterov wrote: --- t/kernel/signal.c~SQFREE2007-08-22 20:06:31.0 +0400 +++ t/kernel/signal.c 2007-08-23 16:02:57.0 +0400 @@ -1297,20 +1297,19 @@ struct sigqueue *sigqueue_alloc(void) void sigqueue_free(struct

Re: [PATCH] sigqueue_free: fix the race with collect_signal()

2007-08-24 Thread Oleg Nesterov
On 08/24, taoyue wrote: Oleg Nesterov wrote: collect_signal: sigqueue_free: list_del_init(first-list); spin_lock_irqsave(lock, flags); ^^

Re: [PATCH] sigqueue_free: fix the race with collect_signal()

2007-08-24 Thread Sukadev Bhattiprolu
Oleg Nesterov wrote: On 08/24, taoyue wrote: Oleg Nesterov wrote: collect_signal: sigqueue_free: list_del_init(first-list); spin_lock_irqsave(lock, flags);

Re: [PATCH] sigqueue_free: fix the race with collect_signal()

2007-08-24 Thread Oleg Nesterov
On 08/24, Sukadev Bhattiprolu wrote: Oleg Nesterov wrote: On 08/24, taoyue wrote: Oleg Nesterov wrote: collect_signal: sigqueue_free: list_del_init(first-list); spin_lock_irqsave(lock, flags);

Re: [PATCH] sigqueue_free: fix the race with collect_signal()

2007-08-23 Thread taoyue
Oleg Nesterov wrote: Spotted by taoyue <[EMAIL PROTECTED]> and Jeremy Katz <[EMAIL PROTECTED]>. collect_signal: sigqueue_free: list_del_init(>list); if (!list_empty(>list)) {

Re: [PATCH] sigqueue_free: fix the race with collect_signal()

2007-08-23 Thread Oleg Nesterov
On 08/23, Sukadev Bhattiprolu wrote: > > Oleg Nesterov wrote: > >Spotted by taoyue <[EMAIL PROTECTED]> and Jeremy Katz > ><[EMAIL PROTECTED]>. > > > >collect_signal: sigqueue_free: > > > > list_del_init(>list); > > if

Re: [PATCH] sigqueue_free: fix the race with collect_signal()

2007-08-23 Thread Sukadev Bhattiprolu
Oleg Nesterov wrote: Spotted by taoyue <[EMAIL PROTECTED]> and Jeremy Katz <[EMAIL PROTECTED]>. collect_signal: sigqueue_free: list_del_init(>list); if (!list_empty(>list)) {

Re: [PATCH] sigqueue_free: fix the race with collect_signal()

2007-08-23 Thread Sukadev Bhattiprolu
Oleg Nesterov wrote: Spotted by taoyue [EMAIL PROTECTED] and Jeremy Katz [EMAIL PROTECTED]. collect_signal: sigqueue_free: list_del_init(first-list); if (!list_empty(q-list)) {

Re: [PATCH] sigqueue_free: fix the race with collect_signal()

2007-08-23 Thread Oleg Nesterov
On 08/23, Sukadev Bhattiprolu wrote: Oleg Nesterov wrote: Spotted by taoyue [EMAIL PROTECTED] and Jeremy Katz [EMAIL PROTECTED]. collect_signal: sigqueue_free: list_del_init(first-list); if

Re: [PATCH] sigqueue_free: fix the race with collect_signal()

2007-08-23 Thread taoyue
Oleg Nesterov wrote: Spotted by taoyue [EMAIL PROTECTED] and Jeremy Katz [EMAIL PROTECTED]. collect_signal: sigqueue_free: list_del_init(first-list); if (!list_empty(q-list)) {