History log of /openbmc/phosphor-logging/ (Results 1 – 25 of 1132)
Revision Date Author Comments
(<<< Hide modified files)
(Show modified files >>>)
acdea22a03-Dec-2025 Riya Sabu <riya.sabu461@gmail.com>

PEL: Added the new message registry for data-sync

These error messages are associated with data-sync.

- xyz.openbmc_project.RBMC_DataSync.Error.SyncFailure

This is for scenarios where the issued

PEL: Added the new message registry for data-sync

These error messages are associated with data-sync.

- xyz.openbmc_project.RBMC_DataSync.Error.SyncFailure

This is for scenarios where the issued sync fails,
e.g: Permanent error encountered by an issued rsync,
Failure after all retry attempts etc.

- xyz.openbmc_project.RBMC_DataSync.Error.SyncEventsFailure

This is for scenarios when an event associated with a path,
e.g: Setting a watcher for path, fails.

- xyz.openbmc_project.RBMC_DataSync.Error.ParserFailure

This is when there is a failure during parsing the data sync
JSON configurations.

The above errors are considered as predictive.

- xyz.openbmc_project.RBMC_DataSync.Error.NotifyFailure

This is used when any unexpected outcome occurs regarding
the notify request/service provided by data-sync.
Treated as a non-error log.

Tested
Creation of error log and contents tested in simics.

Change-Id: I27deb1e70444a81b2cddb5bdb892d82b5af5ea69
Signed-off-by: Riya Sabu <riya.sabu461@gmail.com>

show more ...

c36e64cd03-Dec-2025 Riya Sabu <riya.sabu461@gmail.com>

PEL: Add BMC datasync component ID

The datasync is used to synchronize the filesystem between BMC.
Adding the component to the list with ID "7000" to incorporate
DataSync specific error messages in

PEL: Add BMC datasync component ID

The datasync is used to synchronize the filesystem between BMC.
Adding the component to the list with ID "7000" to incorporate
DataSync specific error messages in the registry.

Change-Id: If6a3227fbfae9712e0f0dd501ab589b36d0beaa9
Signed-off-by: Riya Sabu <riya.sabu461@gmail.com>

show more ...

4bec95da17-Nov-2025 Matt Spinler <spinler@us.ibm.com>

PEL: Misc pel_manager_test improvements

Simplify 2 things in pel_manager_test.cpp:
1. Add a 'Using Level' statement for the error log severity so
the namespace doesn't have to be used in each ins

PEL: Misc pel_manager_test improvements

Simplify 2 things in pel_manager_test.cpp:
1. Add a 'Using Level' statement for the error log severity so
the namespace doesn't have to be used in each instance.
2. Use std::bind_front so std::placeholders doesn't need to be used
for the function args.

Change-Id: Id02a0d052f9c5e0979ad0199b01a82e2119c9b45
Signed-off-by: Matt Spinler <spinler@us.ibm.com>

show more ...

49d3035d17-Nov-2025 Matt Spinler <spinler@us.ibm.com>

PEL: Fix typo in function name

Change-Id: I8d6907344151c803e91afdf8c6c3deb904ec315e
Signed-off-by: Matt Spinler <spinler@us.ibm.com>

b05e07c804-Nov-2025 Patrick Williams <patrick@stwcx.xyz>

use sdbusplus unpack syntax

Rather than defining a variable and then reading it from a message,
sdbusplus also supports directly unpack-ing from the message. Use
this syntax instead as it is more e

use sdbusplus unpack syntax

Rather than defining a variable and then reading it from a message,
sdbusplus also supports directly unpack-ing from the message. Use
this syntax instead as it is more efficient and succinct.

Signed-off-by: Patrick Williams <patrick@stwcx.xyz>
Change-Id: I2516cfa21eaf0fc51902f2b23d4a54241e9d4978

show more ...

34c0c25804-Nov-2025 Patrick Williams <patrick@stwcx.xyz>

remove is_method_error call

An `is_method_error` is not appropriate after an sdbus `call` since
`call` will always throw an exception. Remove the pointless call
and instead catch the exception.

Si

remove is_method_error call

An `is_method_error` is not appropriate after an sdbus `call` since
`call` will always throw an exception. Remove the pointless call
and instead catch the exception.

Signed-off-by: Patrick Williams <patrick@stwcx.xyz>
Change-Id: Iac59331eb31ef7b4c31f21ce4463c6bc7cf83e56

show more ...

9cdb955d28-Oct-2025 Matt Spinler <spinler@us.ibm.com>

Remove unused headers

Remove some headers that are very obviously unused.

Change-Id: I2c55b84b8ba678caad622f3c115e67d923c72a4a
Signed-off-by: Matt Spinler <spinler@us.ibm.com>

c747499928-Oct-2025 Matt Spinler <spinler@us.ibm.com>

PEL: Removed unused header

Change-Id: I9fdacd6a504595fc8a573ed623268f993823bb52
Signed-off-by: Matt Spinler <spinler@us.ibm.com>

40fb549328-Oct-2025 Alexander Hansen <alexander.hansen@9elements.com>

Copyright: Move to SPDX-License-Identifier

Original copyright holders have been preserved, this patch moves the
copyright notice to the compact SPDX notation.

Change-Id: I197e79ed3f9b09e293e02bda82

Copyright: Move to SPDX-License-Identifier

Original copyright holders have been preserved, this patch moves the
copyright notice to the compact SPDX notation.

Change-Id: I197e79ed3f9b09e293e02bda820fa4c52d9a88e8
Signed-off-by: Alexander Hansen <alexander.hansen@9elements.com>

show more ...


extensions/openpower-pels/ascii_string.cpp
extensions/openpower-pels/bcd_time.cpp
extensions/openpower-pels/callout.cpp
extensions/openpower-pels/callouts.cpp
extensions/openpower-pels/data_interface.cpp
extensions/openpower-pels/device_callouts.cpp
extensions/openpower-pels/entry_points.cpp
extensions/openpower-pels/extended_user_data.cpp
extensions/openpower-pels/extended_user_header.cpp
extensions/openpower-pels/failing_mtms.cpp
extensions/openpower-pels/fru_identity.cpp
extensions/openpower-pels/generic.cpp
extensions/openpower-pels/host_notifier.cpp
extensions/openpower-pels/journal.cpp
extensions/openpower-pels/json_utils.cpp
extensions/openpower-pels/log_id.cpp
extensions/openpower-pels/manager.cpp
extensions/openpower-pels/mru.cpp
extensions/openpower-pels/mtms.cpp
extensions/openpower-pels/pce_identity.cpp
extensions/openpower-pels/pel.cpp
extensions/openpower-pels/pel_paths.cpp
extensions/openpower-pels/pel_values.cpp
extensions/openpower-pels/pldm_interface.cpp
extensions/openpower-pels/private_header.cpp
extensions/openpower-pels/registry.cpp
extensions/openpower-pels/repository.cpp
extensions/openpower-pels/sbe_ffdc_handler.cpp
extensions/openpower-pels/section_factory.cpp
extensions/openpower-pels/service_indicators.cpp
extensions/openpower-pels/severity.cpp
extensions/openpower-pels/src.cpp
extensions/openpower-pels/tools/peltool.cpp
extensions/openpower-pels/user_data.cpp
extensions/openpower-pels/user_data_json.cpp
extensions/openpower-pels/user_header.cpp
lib/include/phosphor-logging/log.hpp
test/openpower-pels/additional_data_test.cpp
test/openpower-pels/ascii_string_test.cpp
test/openpower-pels/bcd_time_test.cpp
test/openpower-pels/device_callouts_test.cpp
test/openpower-pels/event_logger_test.cpp
test/openpower-pels/extended_user_data_test.cpp
test/openpower-pels/extended_user_header_test.cpp
test/openpower-pels/failing_mtms_test.cpp
test/openpower-pels/fru_identity_test.cpp
test/openpower-pels/generic_section_test.cpp
test/openpower-pels/host_notifier_test.cpp
test/openpower-pels/json_utils_test.cpp
test/openpower-pels/log_id_test.cpp
test/openpower-pels/mru_test.cpp
test/openpower-pels/mtms_test.cpp
test/openpower-pels/pce_identity_test.cpp
test/openpower-pels/pel_manager_test.cpp
test/openpower-pels/pel_paths.cpp
test/openpower-pels/pel_test.cpp
test/openpower-pels/pel_utils.cpp
test/openpower-pels/pel_values_test.cpp
test/openpower-pels/private_header_test.cpp
test/openpower-pels/real_pel_test.cpp
test/openpower-pels/registry_test.cpp
test/openpower-pels/repository_test.cpp
test/openpower-pels/section_header_test.cpp
test/openpower-pels/service_indicators_test.cpp
test/openpower-pels/severity_test.cpp
test/openpower-pels/src_callout_test.cpp
test/openpower-pels/src_callouts_test.cpp
test/openpower-pels/src_test.cpp
test/openpower-pels/stream_test.cpp
test/openpower-pels/temporary_file_test.cpp
test/openpower-pels/user_data_test.cpp
test/openpower-pels/user_header_test.cpp
util.cpp
d438c09624-Oct-2025 Matt Spinler <spinler@us.ibm.com>

PEL:test: Fix deprecated warnings with new gmock

The new version of gmock was complaining that the use of Invoke() for a
callable was deprecated, so remove it.

```
../subprojects/googletest/googlem

PEL:test: Fix deprecated warnings with new gmock

The new version of gmock was complaining that the use of Invoke() for a
callable was deprecated, so remove it.

```
../subprojects/googletest/googlemock/include/gmock/gmock-actions.h:2059:41: note: declared here
2059 | typename std::decay<FunctionImpl>::type Invoke(FunctionImpl&& function_impl) {
| ^~~~~~
../test/openpower-pels/host_notifier_test.cpp:489:31: error: ‘typename std::decay<_Tp>::type testing::Invoke(FunctionImpl&&) [with FunctionImpl = HostNotifierTest_TestCannotStartCmd_Test::TestBody()::<lambda(uint32_t, uint32_t)>&; typename std::decay<_Tp>::type = HostNotifierTest_TestCannotStartCmd_Test::TestBody()::<lambda(uint32_t, uint32_t)>]’ is deprecated: Actions can now be implicitly constructed from callables. No need to create wrapper objects using Invoke(). [-Werror=deprecated-declarations]
489 | .WillRepeatedly(Invoke(sendSuccess));
```

Change-Id: Id698baa8eefbe7e2b632bf8e5e750df69e088312
Signed-off-by: Matt Spinler <spinler@us.ibm.com>

show more ...

9e1e27c024-Oct-2025 Matt Spinler <spinler@us.ibm.com>

PEL:test: Workaround new compiler issue

For reasons I'm not sure of, the compiler is now failing on a
vector.resize() complaining about an array out of bounds with the
errors shown below.

Change th

PEL:test: Workaround new compiler issue

For reasons I'm not sure of, the compiler is now failing on a
vector.resize() complaining about an array out of bounds with the
errors shown below.

Change the testcase to just initially create the vector to be 71 bytes
instead of 72 and then resizing to 71.

This appears to only fail with a gcc 15.2 installed locally for
standalone builds, and not with the one in CI.

```
[120/184] Compiling C++ object test/openpower-pels/test-openpower-pels-src.p/src_test.cpp.o
FAILED: test/openpower-pels/test-openpower-pels-src.p/src_test.cpp.o
...
inlined from ‘virtual void SRCTest_TestGetProgressCode_Test::TestBody()’ at ../test/openpower-pels/src_test.cpp:1609:19:

/usr/include/c++/15/bits/stl_construct.h:133:7: error: array subscript 72 is outside array bounds of ‘unsigned char [72]’ [-Werror=array-bounds=]
133 | ::new(static_cast<void*>(__p)) _Tp(std::forward<_Args>(__args)...);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/x86_64-linux-gnu/c++/15/bits/c++allocator.h:33,
from /usr/include/c++/15/bits/allocator.h:46,
from /usr/include/c++/15/bits/alloc_traits.h:39,
from /usr/include/c++/15/ext/alloc_traits.h:36,
from /usr/include/c++/15/bits/hashtable_policy.h:39,
from /usr/include/c++/15/bits/hashtable.h:37,
from /usr/include/c++/15/bits/unordered_map.h:33,
from /usr/include/c++/15/unordered_map:43,
from /usr/include/c++/15/functional:65,
from ../subprojects/nlohmann_json/single_include/nlohmann/json.hpp:23:
In member function ‘_Tp* std::__new_allocator<_Tp>::allocate(size_type, const void*) [with _Tp = unsigned char]’,
inlined from ‘constexpr _Tp* std::allocator< <template-parameter-1-1> >::allocate(std::size_t) [with _Tp = unsigned char]’ at /usr/include/c++/15/bits/allocator.h:203:40,
inlined from ‘static constexpr _Tp* std::allocator_traits<std::allocator<_Up> >::allocate(allocator_type&, size_type) [with _Tp = unsigned char]’ at /usr/include/c++/15/bits/alloc_traits.h:614:28,
inlined from ‘constexpr std::_Vector_base<_Tp, _Alloc>::pointer std::_Vector_base<_Tp, _Alloc>::_M_allocate(std::size_t) [with _Tp = unsigned char; _Alloc = std::allocator<unsigned char>]’ at /usr/include/c++/15/bits/stl_vector.h:387:33,
inlined from ‘constexpr void std::vector<_Tp, _Alloc>::_M_range_initialize_n(_Iterator, _Sentinel, size_type) [with _Iterator = const unsigned char*; _Sentinel = const unsigned char*; _Tp = unsigned char; _Alloc = std::allocator<unsigned char>]’ at /usr/include/c++/15/bits/stl_vector.h:1985:23,
inlined from ‘constexpr std::vector<_Tp, _Alloc>::vector(std::initializer_list<_Tp>, const allocator_type&) [with _Tp = unsigned char; _Alloc = std::allocator<unsigned char>]’ at /usr/include/c++/15/bits/stl_vector.h:712:23,
inlined from ‘virtual void SRCTest_TestGetProgressCode_Test::TestBody()’ at ../test/openpower-pels/src_test.cpp:1608:62:
/usr/include/c++/15/bits/new_allocator.h:151:73: note: at offset 72 into object of size 72 allocated by ‘operator new’
151 | return static_cast<_Tp*>(_GLIBCXX_OPERATOR_NEW(__n * sizeof(_Tp)));
| ^
```

Change-Id: I5f6e4b2b1137138ad7954ce6ab709cf318b05a5b
Signed-off-by: Matt Spinler <spinler@us.ibm.com>

show more ...

897c8ec023-Oct-2025 James Athappilly <jamesatha@meta.com>

Fix compile-time race conditions

When building this, some small percentage of builds would fail and it
seemed like there was a race condition that was the culprit.

This creates a new static library

Fix compile-time race conditions

When building this, some small percentage of builds would fail and it
seemed like there was a race condition that was the culprit.

This creates a new static library for log manager so multiple things
don't rebuild it. Additionally, we explicitly depend on generated
headers to ensure things that rely on it build after those files
are created. I have run over 200 builds and there have been no errors.

Change-Id: I4a1fd7270d081a464d1f9ea2482d84e1331fb9a5
Signed-off-by: James Athappilly <jamesatha@gmail.com>

show more ...

9fd25af523-Sep-2025 Piotr Sulewski <piotrx.sulewski@intel.com>

Add configurable log level for cerr output

When directly running an executable which utilizes lg2, all logs are
shown by default. Currently, we can only disable them entirely without
any filtering o

Add configurable log level for cerr output

When directly running an executable which utilizes lg2, all logs are
shown by default. Currently, we can only disable them entirely without
any filtering options.

This commit adds the LG2_LOG_LEVEL environment variable for log
filtering. It allows runtime control of log verbosity by setting
LG2_LOG_LEVEL to desired maximum log level (0-7). Messages above this
level are filtered out. Defaults to 7 (all levels) if not set.

Tested:
Logs are properly filtered when the env variable is set

Change-Id: Ibe44d9971550d3b74ef818a00f7d6b364eb0212c
Signed-off-by: Piotr Sulewski <piotrx.sulewski@intel.com>

show more ...

215121e424-Sep-2025 Manish Tiwari <tmanish.in+openbmc@gmail.com>

PEL: FIX: Wait for obmc-recover-pnor before PHAL init

Problem:
- It is observed intermittent core dumps from phosphor-log-manager
during BMC graceful restart at OSRunning
- Journals show an abort(

PEL: FIX: Wait for obmc-recover-pnor before PHAL init

Problem:
- It is observed intermittent core dumps from phosphor-log-manager
during BMC graceful restart at OSRunning
- Journals show an abort() from dt_expand() in libpdbg immediately
after openpower-update-bios-attr-table.service completes

Root cause:
- phosphor-logging subscribed to JobRemoved for openpower-update-
bios-attr-table.service and kicked off PHAL init on that signal
to avoid loading the default devtree
- In this window, obmc-recover-pnor.service which runs after the
openpower-update-bios-attr-table.service may still accessing the
devtree, so PHAL attempts to parse a devtree that isn’t ready,
leading to libpdbg’s abort() in dt_expand() and a crash

Fix proposed:
- Switch Jobremoved watch from openpower-update-bios-attr-table.
service to obmc-recover-pnor.service

Tested:

Before fix, journal traces showed core dump in phosphor-logging:

```
systemd-coredump[916]: elfutils disabled, parsing ELF objects not
supported
systemd-coredump[916]: [��] Process 400 (phosphor-log-ma) of user
0 dumped core.
systemd[1]: xyz.openbmc_project.Logging.service: Main process
exited, code=dumped, status=6/ABRT
systemd[1]: xyz.openbmc_project.Logging.service: Failed with
result 'core-dump'
```

After fix, no core dump observed in traces, service exits cleanly:

```
systemd[1]: Stopped Phosphor LED Group Management Daemon
systemd[1]: xyz.openbmc_project.Logging.service:
Deactivated successfully.
systemd[1]: Stopped Phosphor Log Manager.
systemd[1]: xyz.openbmc_project.Logging.service:
Consumed 7.914s CPU time.
```

Change-Id: Ic907dcae2b20a81f485fe589703e8e84e5128608
Signed-off-by: Manish Tiwari <tmanish.in+openbmc@gmail.com>

show more ...

0ceb37da29-Jul-2025 Brad Bishop <bradbish@qti.qualcomm.com>

meson: subproject as system dependency

When phosphor-logging is a subproject, use -isystem for phosphor-logging
headers. This is a signal to, for example static analysis tools, that
the phosphor-log

meson: subproject as system dependency

When phosphor-logging is a subproject, use -isystem for phosphor-logging
headers. This is a signal to, for example static analysis tools, that
the phosphor-logging headers are to be treated as if they were installed
in the compilers default search path (e.g. /usr/include).

Change-Id: I428d507cbf303816b27eae63d1d90d3ff02c2e7d
Signed-off-by: Brad Bishop <bradbish@qti.qualcomm.com>

show more ...

3dcf730d20-Aug-2025 Eddie James <eajames@linux.ibm.com>

PEL: Update ECC error paths

The ECC error paths didn't match the code that creates these errors.

Change-Id: I9364eed0a2d24c29a75392cd091b1de6e1b372a5
Signed-off-by: Eddie James <eajames@linux.ibm.c

PEL: Update ECC error paths

The ECC error paths didn't match the code that creates these errors.

Change-Id: I9364eed0a2d24c29a75392cd091b1de6e1b372a5
Signed-off-by: Eddie James <eajames@linux.ibm.com>

show more ...

412ff86201-Aug-2025 Adriana Kobylak <anoo@us.ibm.com>

PEL: registry: Add message for integrity audit event

Add a new informational log message for when the kernel records an audit
event of type Integrity. These events are related to the Integrity
Measu

PEL: registry: Add message for integrity audit event

Add a new informational log message for when the kernel records an audit
event of type Integrity. These events are related to the Integrity
Measurement Architecture (IMA) functionality in the BMC, and would help
the user to be aware of any activity related to IMA, such as attempts to
execute unsigned binaries.

Change-Id: Idcc20cf46de6c5ecee85990fb21983afb14e7b48
Signed-off-by: Adriana Kobylak <anoo@us.ibm.com>

show more ...

5c4f0bae31-Jul-2025 Anupama B R <anupama.b.r1@ibm.com>

PEL: Add journal trace for VPD PELs

This commits adds JournalCapture in message_registry for VPD PELs to
capture journals at the time of PEL.

Change-Id: Ibdd2c9b02d715c6f20644330e6a4545bdec1d90f
Si

PEL: Add journal trace for VPD PELs

This commits adds JournalCapture in message_registry for VPD PELs to
capture journals at the time of PEL.

Change-Id: Ibdd2c9b02d715c6f20644330e6a4545bdec1d90f
Signed-off-by: Anupama B R <anupama.b.r1@ibm.com>

show more ...

085efbb118-Jul-2025 Matt Spinler <spinler@us.ibm.com>

PEL: Track PEL creation time for debug

Track how long it takes to create the PEL portion of an event by saving
it as journal metadata. It's only viewable with journalctl options like
'-o verbose'.

PEL: Track PEL creation time for debug

Track how long it takes to create the PEL portion of an event by saving
it as journal metadata. It's only viewable with journalctl options like
'-o verbose'. This can be used for debug and to help when trying to
improve PEL creation performance.

Also move down the trace where this is logged until after the PEL D-Bus
interfaces are updated.

Tested:

Can see the new field:

MESSAGE=Created PEL 0x50000048 (BMC ID 72) with SRC BD55400C
ID=0x50000048
BMCID=72
PEL_CREATE_DURATION=181

Change-Id: I165901f49a229eacf66be76d79972240a41aa155
Signed-off-by: Matt Spinler <spinler@us.ibm.com>

show more ...

9422867c09-Jul-2025 Patrick Williams <patrick@stwcx.xyz>

meson: use non-deprecated systemd packageconfig

Systemd's packageconfig file has both `systemdsystemunitdir` and
`systemd_system_unit_dir` defined. The non-underscore one appears
to be a deprecated

meson: use non-deprecated systemd packageconfig

Systemd's packageconfig file has both `systemdsystemunitdir` and
`systemd_system_unit_dir` defined. The non-underscore one appears
to be a deprecated alias[1]. Move to the non-deprecated /
underscore-separated variant.

[1]: https://github.com/systemd/systemd/commit/4908de44b0a0409f84a7cdc5641b114d6ce8ba03

Change-Id: I65298cdb7abbc3297f3494285482e1c4c87ae47a
Signed-off-by: Patrick Williams <patrick@stwcx.xyz>

show more ...

a282ca6107-Jul-2025 Patrick Williams <patrick@stwcx.xyz>

log-resolve: reduce unnecessary dependencies

Clean up the executable and meson to reduce unnecessary dependencies
on JSON and sdbusplus::async.

Signed-off-by: Patrick Williams <patrick@stwcx.xyz>
C

log-resolve: reduce unnecessary dependencies

Clean up the executable and meson to reduce unnecessary dependencies
on JSON and sdbusplus::async.

Signed-off-by: Patrick Williams <patrick@stwcx.xyz>
Change-Id: Ia3b1a27108b3e80c4dfac562e00d2d961a28994b

show more ...

6bc84bbd26-Jun-2025 Adriana Kobylak <anoo@us.ibm.com>

PEL: registry: Add message for factory reset requested

Add a new informational log message for when a BMC factory reset is
requested.

Change-Id: Id4d8ea96682f4e534a3c177daf2c3fda67ec5898
Signed-off

PEL: registry: Add message for factory reset requested

Add a new informational log message for when a BMC factory reset is
requested.

Change-Id: Id4d8ea96682f4e534a3c177daf2c3fda67ec5898
Signed-off-by: Adriana Kobylak <anoo@us.ibm.com>

show more ...

7bb45f4230-Jun-2025 Adriana Kobylak <anoo@us.ibm.com>

PEL: README: Fix linting

Change-Id: Id9656444a88b3b8a5339ecb9562ba4314ed45f73
Signed-off-by: Adriana Kobylak <anoo@us.ibm.com>

63bc167510-Jun-2025 Rekha Aparna <vrekhaaparna@ibm.com>

PEL: Add VPD parsing error

VPD parsing can be failed for both data and ECC errors for different
records for a single file. So new generic error is introduced for
exception occurred during VPD parsin

PEL: Add VPD parsing error

VPD parsing can be failed for both data and ECC errors for different
records for a single file. So new generic error is introduced for
exception occurred during VPD parsing.

Change-Id: I4e3bd3814856313d084035c735f37e14e290cd2d
Signed-off-by: Rekha Aparna <vrekhaaparna@ibm.com>

show more ...

9b01690910-Jun-2025 Patrick Williams <patrick@stwcx.xyz>

markdownlint: minor fixes

Make minor fixes suggested by markdownlint.

Signed-off-by: Patrick Williams <patrick@stwcx.xyz>
Change-Id: If0da7a57283aafc4d387a15ded83384302af8e90

12345678910>>...46