/*hp = list_entry(node, struct hvc_struct, * next); */ 
int khvcd(void *unused){	int poll_mask;	struct hvc_struct *hp;	__set_current_state(TASK_RUNNING);	do {		poll_mask = 0;		hvc_kicked = 0;		wmb();		if (cpus_empty(cpus_in_xmon)) {			spin_lock(&hvc_structs_lock);			list_for_each_entry(hp, &hvc_structs, next) {				/*hp = list_entry(node, struct hvc_struct, * next); */				poll_mask |= hvc_poll(hp);			}			spin_unlock(&hvc_structs_lock);		} else			poll_mask |= HVC_POLL_READ;		if (hvc_kicked)			continue;		if (poll_mask & HVC_POLL_QUICK) {			yield();			continue;		}		set_current_state(TASK_INTERRUPTIBLE);		if (!hvc_kicked) {			if (poll_mask == 0)				schedule();			else				msleep_interruptible(TIMEOUT);		}		__set_current_state(TASK_RUNNING);	} while (!kthread_should_stop());	return 0;}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/5f6d9c072df162a8601a09e6c63fd0e4f5aecd06/hvc_console.c/buggy/drivers/char/hvc_console.c