printk("Invalidating cache before entering C3\n"); 
static void acpi_processor_power_verify_c3(	struct acpi_processor *pr,	struct acpi_processor_cx *cx){	static int bm_check_flag;	ACPI_FUNCTION_TRACE("acpi_processor_get_power_verify_c3");	if (!cx->address)		return_VOID;	/*	 * C3 latency must be less than or equal to 1000	 * microseconds.	 */	else if (cx->latency > ACPI_PROCESSOR_MAX_C3_LATENCY) {		ACPI_DEBUG_PRINT((ACPI_DB_INFO,				  "latency too large [%d]\n",				  cx->latency));		return_VOID;	}	/*	 * PIIX4 Erratum #18: We don't support C3 when Type-F (fast)	 * DMA transfers are used by any ISA device to avoid livelock.	 * Note that we could disable Type-F DMA (as recommended by	 * the erratum), but this is known to disrupt certain ISA	 * devices thus we take the conservative approach.	 */	else if (errata.piix4.fdma) {		ACPI_DEBUG_PRINT((ACPI_DB_INFO,			"C3 not supported on PIIX4 with Type-F DMA\n"));		return_VOID;	}	/* All the logic here assumes flags.bm_check is same across all CPUs */	if (!bm_check_flag) {		/* Determine whether bm_check is needed based on CPU  */		acpi_processor_power_init_bm_check(&(pr->flags), pr->id);		bm_check_flag = pr->flags.bm_check;	} else {		pr->flags.bm_check = bm_check_flag;	}	if (pr->flags.bm_check) {		printk("Disabling BM access before entering C3\n");		/* bus mastering control is necessary */		if (!pr->flags.bm_control) {			ACPI_DEBUG_PRINT((ACPI_DB_INFO,			  "C3 support requires bus mastering control\n"));			return_VOID;		}	} else {		printk("Invalidating cache before entering C3\n");		/*		 * WBINVD should be set in fadt, for C3 state to be		 * supported on when bm_check is not required.		 */		if (acpi_fadt.wb_invd != 1) {			ACPI_DEBUG_PRINT((ACPI_DB_INFO,			  "Cache invalidation should work properly"			  " for C3 to be enabled on SMP systems\n"));			return_VOID;		}		acpi_set_register(ACPI_BITREG_BUS_MASTER_RLD,				0, ACPI_MTX_DO_NOT_LOCK);	}	/*	 * Otherwise we've met all of our C3 requirements.	 * Normalize the C3 latency to expidite policy.  Enable	 * checking of bus mastering status (bm_check) so we can	 * use this in our C3 policy	 */	cx->valid = 1;	cx->latency_ticks = US_TO_PM_TIMER_TICKS(cx->latency);	return_VOID;}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/68ac767686fd72f37a25bb4895fb4ab0080ba755/processor_idle.c/clean/drivers/acpi/processor_idle.c