Don't walk mutexed collections outside the mutex

In particular, don't call rescheduleKernelAlarmsLocked() without
the lock held, or Bad Things will happen.

Bug 29931253

Change-Id: I93a7f16d543b5af2adff27f949a68f3d54169285
diff --git a/services/core/java/com/android/server/AlarmManagerService.java b/services/core/java/com/android/server/AlarmManagerService.java
index 312553a..4dd88b2 100644
--- a/services/core/java/com/android/server/AlarmManagerService.java
+++ b/services/core/java/com/android/server/AlarmManagerService.java
@@ -2547,7 +2547,9 @@
                 } else {
                     // Just in case -- even though no wakeup flag was set, make sure
                     // we have updated the kernel to the next alarm time.
-                    rescheduleKernelAlarmsLocked();
+                    synchronized (mLock) {
+                        rescheduleKernelAlarmsLocked();
+                    }
                 }
             }
         }