Merge "Use new AndroidUnwinder object."
diff --git a/init/init_test.cpp b/init/init_test.cpp
index 8550ec8..8c19d5f 100644
--- a/init/init_test.cpp
+++ b/init/init_test.cpp
@@ -156,6 +156,7 @@
 
     ServiceList service_list;
     TestInitText(init_script, test_function_map, commands, &service_list);
+    EXPECT_EQ(3, num_executed);
 }
 
 TEST(init, OverrideService) {
diff --git a/libutils/include/utils/Thread.h b/libutils/include/utils/Thread.h
index fc67656..5cf6b47 100644
--- a/libutils/include/utils/Thread.h
+++ b/libutils/include/utils/Thread.h
@@ -42,7 +42,9 @@
 {
 public:
     // Create a Thread object, but doesn't create or start the associated
-    // thread. See the run() method.
+    // thread. See the run() method. This object must be used with RefBase/sp,
+    // like any other RefBase object, because they are conventionally promoted
+    // from bare pointers (Thread::run is particularly problematic here).
     explicit            Thread(bool canCallJava = true);
     virtual             ~Thread();
 
diff --git a/rootdir/init.rc b/rootdir/init.rc
index 69e06d0..8d8da5e 100644
--- a/rootdir/init.rc
+++ b/rootdir/init.rc
@@ -1135,12 +1135,6 @@
     chown system system /sys/devices/system/cpu/cpufreq/interactive/io_is_busy
     chmod 0660 /sys/devices/system/cpu/cpufreq/interactive/io_is_busy
 
-    # Assume SMP uses shared cpufreq policy for all CPUs in the same cluster.
-    # Here is for initial cluster (cpu0...) which is not hot-plugged in most cases.
-    # The rest of hot-plugged clusters are covered by ueventd.rc.
-    chown system system /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
-    chmod 0664 /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
-
     chown system system /sys/class/leds/vibrator/trigger
     chown system system /sys/class/leds/vibrator/activate
     chown system system /sys/class/leds/vibrator/brightness