if (acpi_ec_query(ec, &value)) goto end;  
acpi_ec_gpe_query (	void			*ec_cxt){	struct acpi_ec		*ec = (struct acpi_ec *) ec_cxt;	u32			value = 0;	unsigned long		flags = 0;	static char		object_name[5] = {'_','Q','0','0','\0'};	const char		hex[] = {'0','1','2','3','4','5','6','7',				         '8','9','A','B','C','D','E','F'};	ACPI_FUNCTION_TRACE("acpi_ec_gpe_query");	if (!ec_cxt)		goto end;		spin_lock_irqsave(&ec->lock, flags);	acpi_hw_low_level_read(8, &value, &ec->command_addr);	spin_unlock_irqrestore(&ec->lock, flags);	/* TBD: Implement asynch events!	 * NOTE: All we care about are EC-SCI's.  Other EC events are	 * handled via polling (yuck!).  This is because some systems	 * treat EC-SCIs as level (versus EDGE!) triggered, preventing	 *  a purely interrupt-driven approach (grumble, grumble).	 */	if (!(value & ACPI_EC_FLAG_SCI))		goto end;	if (acpi_ec_query(ec, &value))		goto end;		object_name[2] = hex[((value >> 4) & 0x0F)];	object_name[3] = hex[(value & 0x0F)];	ACPI_DEBUG_PRINT((ACPI_DB_INFO, "Evaluating %s\n", object_name));	acpi_evaluate_object(ec->handle, object_name, NULL, NULL);end:	acpi_enable_gpe(NULL, ec->gpe_bit, ACPI_NOT_ISR);}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/451566f45a2e6cd10ba56e7220a9dd84ba3ef550/ec.c/buggy/drivers/acpi/ec.c