Skip to contentSkip to conversation

acpi_unlazy_tlb only on C3 entry

PATCH Applied Venki Pallipadi 2 participants 2 messages Mar 24, 2008 – Mar 26, 2008 ACPI

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 acpi_unlazy_tlb only on C3 entry

Earlier patch here
http://ussg.iu.edu/hypermail/linux/kernel/0712.2/1451.html
was intending to add acpi_unlazy_tlb() to acpi_idle_enter_bm() routine which is used for C3 entry. But, some where along the way the call got added to acpi_idle_enter_simple() (which is C2 entry routine), probably due to identical context in that function. Move it back to acpi_idle_enter_bm().

---
 drivers/acpi/processor_idle.c |    3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)
drivers/acpi/processor_idle.c +2 -1
Index: linux-2.6-x86.git/drivers/acpi/processor_idle.c
===================================================================
@@ -1487,7 +1487,6 @@ static int acpi_idle_enter_simple(struct
 		return 0;
 	}
 
-	acpi_unlazy_tlb(smp_processor_id());
 	/*
 	 * Must be done before busmaster disable as we might need to
 	 * access HPET !
@@ -1577,6 +1576,8 @@ static int acpi_idle_enter_bm(struct cpu
 		return 0;
 	}
 
+	acpi_unlazy_tlb(smp_processor_id());
+
 	/* Tell the scheduler that we are going deep-idle: */
 	sched_clock_idle_sleep_event();
 	/*
reviewer Applied
#1 lore raw

Yes, this was causeed by a merge error -- the checked-in patch did not match the e-mailed patch.

I found that I could reproduce the error if I used patch(1) and ignored this:

patching file drivers/acpi/processor_idle.c Hunk #1 succeeded at 534 with fuzz 2 (offset 4 lines). Hunk #2 succeeded at 1420 (offset -66 lines).

The 2nd hunk is what failed:

drivers/acpi/processor_idle.c +2 -0
Index: linux-2.6.24-rc/drivers/acpi/processor_idle.c
===================================================================
@@ -530,6 +530,7 @@ static void acpi_processor_idle(void)
                break;
 
        case ACPI_STATE_C3:
+               acpi_unlazy_tlb(smp_processor_id());
                /*
                 * disable bus master
                 * bm_check implies we need ARB_DIS
@@ -1485,6 +1486,7 @@ static int acpi_idle_enter_bm(struct cpu
                return 0;
        }
 
+       acpi_unlazy_tlb(smp_processor_id());
        /*
         * Must be done before busmaster disable as we might need to
         * access HPET !

As this touches just acpi/processor_idle.c, I'll send this with a batch of acpi patches I've got.

applied.

thanks,
-Len

Quoted 41 lines · Venki Pallipadi

Earlier patch here
http://ussg.iu.edu/hypermail/linux/kernel/0712.2/1451.html
was intending to add acpi_unlazy_tlb() to acpi_idle_enter_bm() routine which is used for C3 entry. But, some where along the way the call got added to acpi_idle_enter_simple() (which is C2 entry routine), probably due to identical context in that function. Move it back to acpi_idle_enter_bm().

---
 drivers/acpi/processor_idle.c |    3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

Index: linux-2.6-x86.git/drivers/acpi/processor_idle.c
===================================================================

drivers/acpi/processor_idle.c +2 -2
@@ -1487,7 +1487,6 @@ static int acpi_idle_enter_simple(struct
 		return 0;
 	}
 
-	acpi_unlazy_tlb(smp_processor_id());
 	/*
 	 * Must be done before busmaster disable as we might need to
 	 * access HPET !
@@ -1577,6 +1576,8 @@ static int acpi_idle_enter_bm(struct cpu
 		return 0;
 	}
 
+	acpi_unlazy_tlb(smp_processor_id());
+
 	/* Tell the scheduler that we are going deep-idle: */
 	sched_clock_idle_sleep_event();
 	/*
--

To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/