 if (ItLpQueueInProcess == 0) ItLpQueueInProcess = 1; else BUG(); 
void process_hvlpevents(struct pt_regs *regs){	struct HvLpEvent * event;	/* If we have recursed, just return */	if ( !set_inUse() )		return;	if (ItLpQueueInProcess == 0)		ItLpQueueInProcess = 1;	else		BUG();	for (;;) {		event = get_next_hvlpevent();		if (event) {			/* Call appropriate handler here, passing			 * a pointer to the LpEvent.  The handler			 * must make a copy of the LpEvent if it			 * needs it in a bottom half. (perhaps for			 * an ACK)			 *			 *  Handlers are responsible for ACK processing			 *			 * The Hypervisor guarantees that LpEvents will			 * only be delivered with types that we have			 * registered for, so no type check is necessary			 * here!			 */			if (event->xType < HvLpEvent_Type_NumTypes)				__get_cpu_var(hvlpevent_counts)[event->xType]++;			if (event->xType < HvLpEvent_Type_NumTypes &&					lpEventHandler[event->xType])				lpEventHandler[event->xType](event, regs);			else				printk(KERN_INFO "Unexpected Lp Event type=%d\n", event->xType );			hvlpevent_clear_valid(event);		} else if (hvlpevent_queue.xPlicOverflowIntPending)			/*			 * No more valid events. If overflow events are			 * pending process them			 */			HvCallEvent_getOverflowLpEvents(hvlpevent_queue.xIndex);		else			break;	}	ItLpQueueInProcess = 0;	mb();	clear_inUse();}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/719d1cd86780c156f954fc34f34481adac197aec/ItLpQueue.c/buggy/arch/ppc64/kernel/ItLpQueue.c