``` /* check if the thread owning the queue is hung (not checking for messages) */ static int is_queue_hung( struct msg_queue *queue ) { - struct wait_queue_entry *entry; - if (current_time - queue->last_get_msg <= 5 * TICKS_PER_SEC) return 0; /* less than 5 seconds since last get message -> not hung */ + return !queue->waiting; +} ```
That changes the definition in a rather non-obvious way, meaning this commit changes behaviour and refactors at the same time. That should be split, and this should be justified. It looks to me like it's going to cause a lot more spurious "hung" treatment.
What's the purpose of patches 1-3?