} 
static int hpsbpkt_thread(void *__hi){	struct sk_buff *skb;	struct hpsb_packet *packet;	void (*complete_routine)(void*);	void *complete_data;	daemonize("khpsbpkt");	while (1) {		if (down_interruptible(&khpsbpkt_sig)) {			if (current->flags & PF_FREEZE) {				refrigerator(0);				continue;			}			printk("khpsbpkt: received unexpected signal?!\n" );			break;		}		if (khpsbpkt_kill)			break;		while ((skb = skb_dequeue(&hpsbpkt_queue)) != NULL) {			packet = (struct hpsb_packet *)skb->data;			complete_routine = packet->complete_routine;			complete_data = packet->complete_data;			packet->complete_routine = packet->complete_data = NULL;			complete_routine(complete_data);		}	}	complete_and_exit(&khpsbpkt_complete, 0);}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/3e1d1d28d99dabe63c64f7f40f1ca1d646de1f73/ieee1394_core.c/buggy/drivers/ieee1394/ieee1394_core.c