Commit graph

33810 commits

Author SHA1 Message Date
Tom Cherry
152f4f4dad Merge "Revert "ueventd: remove PlatformDeviceList"" into oc-dev
am: fef83abd89  -s ours

Change-Id: I1450e83df62791e7acdb7dc46f07084f6232624a
2017-06-21 18:33:51 +00:00
Tom Cherry
a890341850 Revert "init: poll in first stage mount if required devices are not found"
am: 0e63e61eb5  -s ours

Change-Id: I113e5022d969da5d670f1a4767101f1fade85d7b
2017-06-21 18:31:20 +00:00
Tom Cherry
fef83abd89 Merge "Revert "ueventd: remove PlatformDeviceList"" into oc-dev 2017-06-21 18:18:24 +00:00
Tom Cherry
f520e44c4c Revert "ueventd: remove PlatformDeviceList"
Bug: 62864413

This reverts commit d43b615216.

Change-Id: If3d9060e723d6040d3f32f253b492131a56edb9f
2017-06-21 18:10:53 +00:00
Tom Cherry
0e63e61eb5 Revert "init: poll in first stage mount if required devices are not found"
Bug: 62864413

This reverts commit 5f4e8eac8a.

Change-Id: I6f35b920bb52875c8ef430d3e20b205fda5165e8
2017-06-21 18:10:47 +00:00
Elliott Hughes
428ebfa528 Merge "Shave a stack frame off asserts." am: 199c27734f
am: d10d64b244

Change-Id: I7b4d4f3497bdf95b651bfa8037a594c0faee50c4
2017-06-21 15:18:07 +00:00
Elliott Hughes
d10d64b244 Merge "Shave a stack frame off asserts."
am: 199c27734f

Change-Id: I4f67fa72d783c5fcdfa0c36291d06ba1edc8955c
2017-06-21 15:15:47 +00:00
Elliott Hughes
199c27734f Merge "Shave a stack frame off asserts." 2017-06-21 15:09:55 +00:00
Tom Cherry
eb877e3829 init: poll in first stage mount if required devices are not found
am: 5f4e8eac8a  -s ours

Change-Id: Ie794a45bdedf9d207231708606d0798b953b66b4
2017-06-21 04:22:44 +00:00
Tom Cherry
f615d49b6d ueventd: remove PlatformDeviceList
am: d43b615216  -s ours

Change-Id: I8b349dea6dd16583c8f6042ffe5d338b853db66f
2017-06-21 02:18:34 +00:00
Elliott Hughes
07db226264 Merge "Give a clear error message if we can't start the server." am: b6d3f28287
am: 1496863091

Change-Id: Ib069ba411e74e6d8c22799a37dc16642b728fb06
2017-06-21 01:02:52 +00:00
Elliott Hughes
1496863091 Merge "Give a clear error message if we can't start the server."
am: b6d3f28287

Change-Id: I47ffda6e9ee89aad714c53fb8647c3d8bf0eab20
2017-06-21 00:58:22 +00:00
Treehugger Robot
b6d3f28287 Merge "Give a clear error message if we can't start the server." 2017-06-21 00:48:30 +00:00
Elliott Hughes
56731b4e2f Shave a stack frame off asserts.
We can't implement MEM_LOG_ALWAYS_FATAL_IF any more, but it wasn't really
useful anyway.

Bug: N/A
Test: ran `crasher assert` and `crasher64 assert`
Change-Id: I4ae2d82fdfdd58cf8ef1dfb6c401cef4ba9d3e88
2017-06-20 17:31:29 -07:00
Martijn Coenen
f8280ffeac Merge "Remove libmemunreachable from the VNDK." am: e264c7bf4f
am: a8abd88010

Change-Id: I8d6afb9bcfdf46f4c046eb2441ba5ed747ec0e53
2017-06-21 00:14:50 +00:00
Martijn Coenen
a8abd88010 Merge "Remove libmemunreachable from the VNDK."
am: e264c7bf4f

Change-Id: Id7d372c52b5ada7e05b8ed1353c6dae0c97dfa1b
2017-06-21 00:10:22 +00:00
Martijn Coenen
e264c7bf4f Merge "Remove libmemunreachable from the VNDK." 2017-06-20 23:58:15 +00:00
Tom Cherry
e34a158b1a Merge "init: poll in first stage mount if required devices are not found" am: 20e9312344
am: 492a595091

Change-Id: I9123faa9377e8bb058d146e744106ea6e0522951
2017-06-20 21:36:31 +00:00
Tom Cherry
d989cf8f57 Merge "ueventd: remove PlatformDeviceList" am: 137ee511bd
am: 1632742602

Change-Id: I0e3ba605b26c525364371c984c6b3ebecb5f7f82
2017-06-20 21:36:04 +00:00
Tom Cherry
492a595091 Merge "init: poll in first stage mount if required devices are not found"
am: 20e9312344

Change-Id: I3055e999ff976662da18818756fc6ed07b09f360
2017-06-20 21:32:04 +00:00
Tom Cherry
1632742602 Merge "ueventd: remove PlatformDeviceList"
am: 137ee511bd

Change-Id: I3f49da6815cc0044e200565043b1ce0adbf39d26
2017-06-20 21:31:40 +00:00
Tom Cherry
5f4e8eac8a init: poll in first stage mount if required devices are not found
First stage mount in init currently attempts to regenerate uevents for
specific devices to create the corresponding dev nodes.  However, this
is racy as first stage mount happens early in the boot process and
it's possible that some of these devices have not yet been created by
the kernel.

To fix this issue, init will poll on the uevent socket for up to 10
seconds waiting for the kernel to create the required device.  It will
return false and panic if this 10 second timeout passes.

Note that the same uevent socket is used in the uevent regeneration
and the polling code, so there is no race if the device is created
after the uevent regeneration and before polling starts; the first
poll will pick up the device.

Bug: 62681642
Bug: 62682821
Test: Boot bullhead
Test: Boot sailfish
Test: Boot hikey + hotplug/unplug sdcard
Merged-In: I4a6ff043eb7115b729ca4954ebc6c9e000132993
Change-Id: I4a6ff043eb7115b729ca4954ebc6c9e000132993
2017-06-20 21:29:51 +00:00
Tom Cherry
20e9312344 Merge "init: poll in first stage mount if required devices are not found" 2017-06-20 21:24:23 +00:00
Tom Cherry
ccf0d39316 init: poll in first stage mount if required devices are not found
First stage mount in init currently attempts to regenerate uevents for
specific devices to create the corresponding dev nodes.  However, this
is racy as first stage mount happens early in the boot process and
it's possible that some of these devices have not yet been created by
the kernel.

To fix this issue, init will poll on the uevent socket for up to 10
seconds waiting for the kernel to create the required device.  It will
return false and panic if this 10 second timeout passes.

Note that the same uevent socket is used in the uevent regeneration
and the polling code, so there is no race if the device is created
after the uevent regeneration and before polling starts; the first
poll will pick up the device.

Bug: 62681642
Bug: 62682821
Test: Boot bullhead
Test: Boot sailfish
Test: Boot hikey + hotplug/unplug sdcard
Change-Id: I4a6ff043eb7115b729ca4954ebc6c9e000132993
2017-06-20 21:23:42 +00:00
Tom Cherry
137ee511bd Merge "ueventd: remove PlatformDeviceList" 2017-06-20 21:23:17 +00:00
Tom Cherry
d43b615216 ueventd: remove PlatformDeviceList
In order to create symlinks for USB and block devices, the path for
their parent platform device must be known.

Previously, ueventd would save each platform device that it encounters
to a list and query this list when creating the symlinks.  That,
however, is racy because the uevent socket does not differentiate
uevents from device_init() and uevents sent by the kernel when
probing a device first the first time.  The below scenario is the
faulty case:

1) Kernel probes parent platform device for a block device
2) ueventd calls device_init() and starts processing uevents
3) Kernel probes block device and sends its uevents
4) ueventd picks up the block device uevent during its uevent processing,
   without yet regenerating the platform device uevent, causing improper
   symlinks to be created.

This change stops storing the platform devices in a list, and instead
traverses up the directory structure for each USB or block device
until it reaches a platform device, defined as one whose subsystem is
the platform bus.  This fixes the race and simplifies the ueventd
code.

Bug: 62436493
Bug: 62681642
Test: Boot bullhead
Test: Boot sailfish
Test: Boot hikey + hotplug/unplug sdcard
Merged-In: I21636355d8e434f30e0cba568598a6cf139e67f9
Change-Id: I21636355d8e434f30e0cba568598a6cf139e67f9
2017-06-20 21:22:00 +00:00
Elliott Hughes
6eadee8607 Give a clear error message if we can't start the server.
Bug: http://b/35218713
Test: adb kill-server ; export HOME=/ ; adb devices
Change-Id: I53cc30213be0eab84e42b09c7b501362d6e44b05
2017-06-20 14:21:41 -07:00
Tom Cherry
c94ce7b130 ueventd: remove PlatformDeviceList
In order to create symlinks for USB and block devices, the path for
their parent platform device must be known.

Previously, ueventd would save each platform device that it encounters
to a list and query this list when creating the symlinks.  That,
however, is racy because the uevent socket does not differentiate
uevents from RegenerateUevents() and uevents sent by the kernel when
probing a device first the first time.  The below scenario is the
faulty  case:

1) Kernel probes parent platform device for a block device
2) ueventd calls RegenerateUevents() and starts processing uevents
3) Kernel probes block device and sends its uevents
4) ueventd picks up the block device uevent during its uevent processing,
   without yet regenerating the platform device uevent, causing improper
   symlinks to be created.

This change stops storing the platform devices in a list, and instead
traverses up the directory structure for each USB or block device
until it reaches a platform device, defined as one whose subsystem is
the platform bus.  This fixes the race and simplifies the ueventd
code.

Bug: 62436493
Bug: 62681642
Test: Boot bullhead
Test: Boot sailfish
Test: Init unit tests
Test: Boot hikey + hotplug/unplug sdcard
Change-Id: I21636355d8e434f30e0cba568598a6cf139e67f9
2017-06-20 21:21:14 +00:00
Christopher Ferris
0da25d6feb Merge "Fix some memory leaks, potential errors." am: 9d239ec6a5
am: 60d677147e

Change-Id: I184799dd198d6469326f0c07dfb15a5323e9af69
2017-06-20 18:44:22 +00:00
Christopher Ferris
60d677147e Merge "Fix some memory leaks, potential errors."
am: 9d239ec6a5

Change-Id: Iefc25a779c07a80457cc6ee6f6cb269655a05ccd
2017-06-20 18:39:12 +00:00
Christopher Ferris
9d239ec6a5 Merge "Fix some memory leaks, potential errors." 2017-06-20 18:29:24 +00:00
Alex Naidis
234fae2823 Merge "libcutils: Clarify schedboost_enabled()" am: 643b4776b5
am: 7ce1bdec47

Change-Id: Ia1b594ccd71a20d787cb70b2b8750c30158b7ffe
2017-06-20 18:22:26 +00:00
Alex Naidis
7ce1bdec47 Merge "libcutils: Clarify schedboost_enabled()"
am: 643b4776b5

Change-Id: Iea24290c320a99eae7a8c9174e60a0441b0378d8
2017-06-20 18:19:19 +00:00
Treehugger Robot
643b4776b5 Merge "libcutils: Clarify schedboost_enabled()" 2017-06-20 18:10:15 +00:00
Martijn Coenen
ce102dd74f Remove libmemunreachable from the VNDK.
It depends on functionality in the bionic
allocator, which may get updated independently
of the vendor partition (as libc is in the LL-NDK).

Bug: 33241851
Test: builds
Change-Id: I435679843229d0d4d2e2be7bfe8c27f558a016dd
2017-06-20 10:11:55 -07:00
Narayan Kamath
ecc0b6c605 Merge "zip_archive_test: compare error codes directly." am: d1e9e7bc06
am: 9be5dbed91

Change-Id: I42d449eba683e2f2b158992573cacbbde2b28e27
2017-06-20 10:58:30 +00:00
Narayan Kamath
9be5dbed91 Merge "zip_archive_test: compare error codes directly."
am: d1e9e7bc06

Change-Id: Ibff1f3b34993391cd62c9c9f1d90adb62b4e70a8
2017-06-20 10:55:19 +00:00
Narayan Kamath
d1e9e7bc06 Merge "zip_archive_test: compare error codes directly." 2017-06-20 10:50:27 +00:00
Tom Cherry
fcea7cae06 Merge "Move restorecon() of /sys from init to ueventd." am: 2787894768
am: 432326ecbb  -s ours

Change-Id: Id6e749dfe32eb6d8784e6c634211e3e0750d2904
2017-06-20 04:56:30 +00:00
Tom Cherry
432326ecbb Merge "Move restorecon() of /sys from init to ueventd."
am: 2787894768

Change-Id: I45baa3ee95a630517ef94e1bca3d74637655abd9
2017-06-20 01:20:10 +00:00
Tom Cherry
2787894768 Merge "Move restorecon() of /sys from init to ueventd." 2017-06-20 01:13:37 +00:00
Tom Cherry
d2fd54e0ff Move restorecon() of /sys from init to ueventd.
ueventd already does restorecon() for /sys/{block,class,devices}, so
instead of duplicating this effort with init, move the restorecon()
that init does for all of /sys to ueventd.

Bug: 62420036
Change-Id: I6125f8ff5316a0cf45872d1100d089d71802958f
Merged-In: I6125f8ff5316a0cf45872d1100d089d71802958f
Test: Boot sailfish, bullhead
2017-06-20 00:02:05 +00:00
Christopher Ferris
051792fed4 Fix some memory leaks, potential errors.
Fix a couple of memory leaks in tests.

Fix a potential case that length could be zero.

Bug: 23762183

Test: Ran unit tests, then ran valgrind on unit tests and verified no leaks.
Change-Id: I5f7602aa0204db0488a8e305250658cdb6e977d0
2017-06-19 16:20:33 -07:00
Christopher Ferris
9c3c75ef2f Merge "Add EH frame and debug frame support." am: 27fea2c295
am: b1dc155338

Change-Id: I050d1046fd7605dc23d18219b3f7439d362225b2
2017-06-19 21:54:35 +00:00
Christopher Ferris
b1dc155338 Merge "Add EH frame and debug frame support."
am: 27fea2c295

Change-Id: Id28a8f7c2fc235ec51f941c9db6260f74d5bd1ed
2017-06-19 21:48:04 +00:00
Christopher Ferris
27fea2c295 Merge "Add EH frame and debug frame support." 2017-06-19 21:37:26 +00:00
TreeHugger Robot
a3598113ad Merge "Move restorecon() of /sys from init to ueventd." into oc-dev-plus-aosp 2017-06-19 19:36:56 +00:00
Tom Marshall
ebd6a64694 Merge "init: Run restorecon_recursive asynchronously" am: ad4aa9e169
am: 0329b8d03e

Change-Id: I1cd56fc9521451742b04d7f56bc0b657a0672314
2017-06-19 18:06:14 +00:00
Tom Marshall
0329b8d03e Merge "init: Run restorecon_recursive asynchronously"
am: ad4aa9e169

Change-Id: I809f5d08fda61b25bbed2b01dac9ee7e4ab9bfc9
2017-06-19 18:00:17 +00:00
Tom Cherry
c3e955123c Move restorecon() of /sys from init to ueventd.
ueventd already does restorecon() for /sys/{block,class,devices}, so
instead of duplicating this effort with init, move the restorecon()
that init does for all of /sys to ueventd.

Bug: 62420036
Change-Id: I6125f8ff5316a0cf45872d1100d089d71802958f
Test: Boot sailfish, bullhead
2017-06-19 10:59:06 -07:00