On Tue, Mar 5, 2013 at 10:05 AM, Oleg Nesterov <oleg@xxxxxxxxxx> wrote: > On 03/05, Mandeep Singh Baines wrote: >> >> On Tue, Mar 5, 2013 at 9:48 AM, Oleg Nesterov <oleg@xxxxxxxxxx> wrote: >> > On 03/05, Mandeep Singh Baines wrote: >> >> >> >> @@ -2462,13 +2462,13 @@ static int hotkey_kthread(void *data) >> >> unsigned int poll_freq; >> >> bool was_frozen; >> >> >> >> + set_freezable(); >> >> + >> >> mutex_lock(&hotkey_thread_mutex); >> >> >> >> if (tpacpi_lifecycle == TPACPI_LIFE_EXITING) >> >> goto exit; >> >> >> >> - set_freezable(); >> >> - >> > >> > I don't understand this code... but don't we have the same problem >> > with kthread_freezable_should_stop() below? It can call __refrigerator() >> > too under the same lock. >> > >> >> I don't think the lock is held at that point. There is an unlock right >> before entering the while loop and at the bottom of the loop. > > Hmm... Afaics this is another lock, hotkey_thread_data_mutex. But > hotkey_thread_mutex is still held. > Ah. You're right. The two names were similar so that confused me. I'm also looking at this code for the first time:) This mutex seems wrong. Its held the entire time the kthread is running. I think its used to synchronize on the exit of the kthread. A completion would more appropriate in that case. Regards, Mandeep > Oleg. > ------------------------------------------------------------------------------ Symantec Endpoint Protection 12 positioned as A LEADER in The Forrester Wave(TM): Endpoint Security, Q1 2013 and "remains a good choice" in the endpoint security space. For insight on selecting the right partner to tackle endpoint security challenges, access the full report. http://p.sf.net/sfu/symantec-dev2dev _______________________________________________ ibm-acpi-devel mailing list ibm-acpi-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.sourceforge.net/lists/listinfo/ibm-acpi-devel