RE: [PATCH v3] printk: fix zero-valued printk timestamps in early boot

"Bird, Tim" <[email protected]> Fri, 13 Mar 2026 04:52:40 +0000
Newsgroups org.kernel.vger.linux-embedded,org.kernel.vger.linux-kernel
Message-ID <MW5PR13MB563216F6D786D4DCDFEBED2BFD45A@MW5PR13MB5632.namprd13.prod.outlook.com>
SGV5IE1pY2hlYWwsDQoNClRoaXMgcmVwb3J0IGlzIHZlcnkgaW50ZXJlc3RpbmcuIA0KDQpUaGFu
a3MgdmVyeSBtdWNoIGZvciB0cnlpbmcgaXQgb3V0IQ0KIA0KDQo+IC0tLS0tT3JpZ2luYWwgTWVz
c2FnZS0tLS0tDQo+IEZyb206IE1pY2hhZWwgS2VsbGV5IDxtaGtsaW51eEBvdXRsb29rLmNvbT4N
Cj4gU2VudDogV2VkbmVzZGF5LCBNYXJjaCAxMSwgMjAyNiA5OjQ3IEFNDQo+IEZyb206IFRpbSBC
aXJkIDx0aW0uYmlyZEBzb255LmNvbT4gU2VudDogVHVlc2RheSwgRmVicnVhcnkgMTAsIDIwMjYg
Mzo0OCBQTQ0KPiA+DQo+ID4gRHVyaW5nIGVhcmx5IGJvb3QsIHByaW50ayB0aW1lc3RhbXBzIGFy
ZSByZXBvcnRlZCBhcyB6ZXJvIGJlZm9yZQ0KPiA+IGtlcm5lbCB0aW1la2VlcGluZyBzdGFydHMg
KGUuZy4gYmVmb3JlIHRpbWVfaW5pdCgpKS4gIFRoaXMNCj4gPiBoaW5kZXJzIGJvb3QtdGltZSBv
cHRpbWl6YXRpb24gZWZmb3J0cy4gIFRoaXMgcGVyaW9kIGlzIGFib3V0IDQwMA0KPiA+IG1pbGxp
c2Vjb25kcyBmb3IgbWFueSBjdXJyZW50IGRlc2t0b3AgYW5kIGVtYmVkZGVkIG1hY2hpbmVzDQo+
ID4gcnVubmluZyBMaW51eC4NCj4gPg0KPiA+IEFkZCBzdXBwb3J0IHRvIHNhdmUgY3ljbGVzIGR1
cmluZyBlYXJseSBib290LCBhbmQgb3V0cHV0IGNvcnJlY3QNCj4gPiB0aW1lc3RhbXAgdmFsdWVz
IGFmdGVyIHRpbWVrZWVwaW5nIGlzIGluaXRpYWxpemVkLiAgZ2V0X2N5Y2xlcygpDQo+ID4gaXMg
b3BlcmF0aW9uYWwgb24gYXJtNjQgYW5kIHg4Nl82NCBmcm9tIGtlcm5lbCBzdGFydC4gIEFkZCBj
b2RlDQo+ID4gYW5kIHZhcmlhYmxlcyB0byBzYXZlIGNhbGlicmF0aW9uIHZhbHVlcyB1c2VkIHRv
IGxhdGVyIGNvbnZlcnQNCj4gPiBjeWNsZSBjb3VudHMgdG8gdGltZSB2YWx1ZXMgaW4gdGhlIGVh
cmx5IHByaW50a3MuICBBZGQgYSBjb25maWcNCj4gPiB0byBjb250cm9sIHRoZSBmZWF0dXJlLg0K
PiA+DQo+ID4gVGhpcyB5aWVsZHMgbm9uLXplcm8gdGltZXN0YW1wcyBmb3IgcHJpbnRrcyBmcm9t
IHRoZSB2ZXJ5IHN0YXJ0DQo+ID4gb2Yga2VybmVsIGV4ZWN1dGlvbi4gIFRoZSB0aW1lc3RhbXBz
IGFyZSByZWxhdGl2ZSB0byB0aGUgc3RhcnQgb2YNCj4gPiB0aGUgYXJjaGl0ZWN0dXJlLXNwZWNp
ZmllZCBjb3VudGVyIHVzZWQgaW4gZ2V0X2N5Y2xlcw0KPiA+IChlLmcuIHRoZSBUU0Mgb24geDg2
XzY0IGFuZCBjbnR2Y3RfZWwwIG9uIGFybTY0KS4NCj4gPg0KPiA+IEFsbCB0aW1lc3RhbXBzIHJl
ZmxlY3QgdGltZSBmcm9tIHByb2Nlc3NvciBwb3dlci1vbiBpbnN0ZWFkIG9mDQo+ID4gdGltZSBm
cm9tIHRoZSBrZXJuZWwncyB0aW1la2VlcGluZyBpbml0aWFsaXphdGlvbi4NCj4gDQo+IEkgdHJp
ZWQgdGhpcyBwYXRjaCBpbiBsaW51eC1uZXh0MjAyNjAzMDIga2VybmVsIHJ1bm5pbmcgYXMgYSBn
dWVzdCBWTQ0KPiBvbiBhIEh5cGVyLVYgaG9zdC4gVHdvIHRoaW5nczoNCj4gDQo+IDEpIEluIHRo
ZSBkbWVzZyBvdXRwdXQsIEknbSBzZWVpbmcgYSBwbGFjZSB3aGVyZSB0aGUgdGltZXN0YW1wcyBi
cmllZmx5IGdvDQo+IGJhY2t3YXJkcyAtLSBpLmUuLCB0aGV5IGFyZSBub3QgbW9ub3RvbmljYWxs
eSBpbmNyZWFzaW5nLiBIZXJlJ3MgYSBzbmlwcGV0LA0KPiB3aGVyZSB0aGVyZSdzIGEgc21hbGxl
ciB0aW1lc3RhbXAgaW1tZWRpYXRlbHkgYWZ0ZXIgdGhlIHRzYyBpcyBkZXRlY3RlZDoNCj4gDQo+
IFsgICAyNy45OTQ4OTFdIFNNQklPUyAzLjEuMCBwcmVzZW50Lg0KPiBbICAgMjcuOTk0ODkzXSBE
TUk6IE1pY3Jvc29mdCBDb3Jwb3JhdGlvbiBWaXJ0dWFsIE1hY2hpbmUvVmlydHVhbCBNYWNoaW5l
LCBCSU9TIEh5cGVyLVYgVUVGSSBSZWxlYXNlIHY0LjEgMDkvMjUvMjAyNQ0KPiBbICAgMjcuOTk0
ODk4XSBETUk6IE1lbW9yeSBzbG90cyBwb3B1bGF0ZWQ6IDIvMg0KPiBbICAgMjcuOTk1MjAyXSBI
eXBlcnZpc29yIGRldGVjdGVkOiBNaWNyb3NvZnQgSHlwZXItVg0KPiBbICAgMjcuOTk1MjA1XSBI
eXBlci1WOiBwcml2aWxlZ2UgZmxhZ3MgbG93IDB4YWU3ZiwgaGlnaCAweDNiODAzMCwgZXh0IDB4
NjIsIGhpbnRzIDB4YTBlMjQsIG1pc2MgMHhlMGJlZDdiMg0KPiBbICAgMjcuOTk1MjA4XSBIeXBl
ci1WOiBOZXN0ZWQgZmVhdHVyZXM6IDB4MA0KPiBbICAgMjcuOTk1MjA5XSBIeXBlci1WOiBMQVBJ
QyBUaW1lciBGcmVxdWVuY3k6IDB4YzM1MDANCj4gWyAgIDI3Ljk5NTIxMF0gSHlwZXItVjogVXNp
bmcgaHlwZXJjYWxsIGZvciByZW1vdGUgVExCIGZsdXNoDQo+IFsgICAyNy45OTUyMTZdIGNsb2Nr
c291cmNlOiBoeXBlcnZfY2xvY2tzb3VyY2VfdHNjX3BhZ2U6IG1hc2s6IDB4ZmZmZmZmZmZmZmZm
ZmZmZiBtYXhfY3ljbGVzOiAweDI0ZTZhMTcxMCwgbWF4X2lkbGVfbnM6IDQ0MDc5NTIwMjEyMCBu
cw0KPiBbICAgMjcuOTk1MjE4XSBjbG9ja3NvdXJjZTogaHlwZXJ2X2Nsb2Nrc291cmNlX21zcjog
bWFzazogMHhmZmZmZmZmZmZmZmZmZmZmIG1heF9jeWNsZXM6IDB4MjRlNmExNzEwLCBtYXhfaWRs
ZV9uczogNDQwNzk1MjAyMTIwIG5zDQo+IFsgICAyNy45OTUyMjBdIHRzYzogRGV0ZWN0ZWQgMjkx
OC40MDEgTUh6IHByb2Nlc3Nvcg0KDQpJIHdvbmRlciBpZiB0aGUgdHNjIGlzIGdldHRpbmcgZmlk
ZGxlZCB3aXRoIG9yIHZpcnR1YWxpemVkIHNvbWV3aGVyZSBpbiBoZXJlLCBhcyBwYXJ0IG9mIGNs
b2Nrc291cmNlIGluaXRpYWxpemF0aW9uLg0KSSBiZWxpZXZlIGVhY2ggY2xvY2tzb3VyY2UgaW4g
dGhlIGtlcm5lbCBtYWludGFpbnMgaXQncyBvd24gaW50ZXJuYWwgb2Zmc2V0LCBhbmQgbWF5YmUg
dGhlIG9mZnNldCB0aGF0IGlzDQpiZWluZyB1c2VkIGVuZHMgdXAgYmVpbmcgc2xpZ2h0bHkgZGlm
ZmVyZW50IGZyb20gdGhlIGN5Y2xlLWNvdW50ZXIgb2Zmc2V0IHRoYXQgdGhlIGVhcmx5X3RpbWVz
IGZlYXR1cmUgdXNlcy4NCkknbSBqdXN0IHRocm93aW5nIG91dCBndWVzc2VzLiAgSXQncyBhYm91
dCBhIDRtcyBkZWx0YSwgd2hpY2ggaXMgcHJldHR5IGJpZy4NCg0KPiBbICAgMjcuOTkxMDYwXSBl
ODIwOiB1cGRhdGUgW21lbSAweDAwMDAwMDAwLTB4MDAwMDBmZmZdIFN5c3RlbSBSQU0gPT0+IGRl
dmljZSByZXNlcnZlZA0KPiBbICAgMjcuOTkxMDYyXSBlODIwOiByZW1vdmUgW21lbSAweDAwMGEw
MDAwLTB4MDAwZmZmZmZdIFN5c3RlbSBSQU0NCj4gWyAgIDI3Ljk5MTA2NF0gbGFzdF9wZm4gPSAw
eDIxMDAwMCBtYXhfYXJjaF9wZm4gPSAweDQwMDAwMDAwMA0KPiBbICAgMjcuOTkxMDY1XSB4ODYv
UEFUOiBQQVQgc3VwcG9ydCBkaXNhYmxlZCBiZWNhdXNlIENPTkZJR19YODZfUEFUIGlzIGRpc2Fi
bGVkIGluIHRoZSBrZXJuZWwuDQo+IFsgICAyNy45OTEwNjZdIHg4Ni9QQVQ6IENvbmZpZ3VyYXRp
b24gWzAtN106IFdCICBXVCAgVUMtIFVDICBXQiAgV1QgIFVDLSBVQw0KPiANCj4gSHlwZXItViBw
cm92aWRlcyBhIHN5bnRoZXRpYyBjbG9ja3NvdXJjZSAodHdvIGFjdHVhbGx5KSwgYW5kIHBlcmhh
cHMgdGhleQ0KPiBhcmUgdGhlIGNhdXNlIG9mIHRoZSBwcm9ibGVtLCB0aG91Z2ggSSBoYXZlbid0
IHNwZW50IGFueSB0aW1lIGRlYnVnZ2luZy4NCj4gDQo+IDIpIEEgTGludXggVk0gcnVubmluZyBp
biB0aGUgQXp1cmUgY2xvdWQgaXMgYWxzbyBydW5uaW5nIG9uIEh5cGVyLVYuIFN1Y2ggYQ0KPiBW
TSB0eXBpY2FsbHkgdXNlcyBjbG91ZC1pbml0IHRvIHNldCBldmVyeXRoaW5nIHVwIGF0IGJvb3Qg
dGltZSwgYW5kIGNsb3VkLWluaXQNCj4gaXMgb3V0cHV0dGluZyBsaW5lcyB0byB0aGUgc2VyaWFs
IGNvbnNvbGUgd2l0aCBhIHRpbWVzdGFtcCB0aGF0IGxvb2tzIGxpa2UgdGhlDQo+IHByaW50aygp
IHRpbWVzdGFtcCwgYnV0IGFwcGFyZW50bHkgaXMgbm90IGFkanVzdGVkIGZvciB0aGUgZWFybHkg
dGltZXN0YW1waW5nDQo+IHRoYXQgdGhpcyBwYXRjaCBhZGRzLiBBZ2FpbiwgSSBoYXZlbid0IGRl
YnVnZ2VkIHdoYXQncyBnb2luZyBvbiAtLSBJJ20gbm90DQo+IGltbWVkaWF0ZWx5IHN1cmUgb2Yg
dGhlIG1lY2hhbmlzbSB0aGF0IGNsb3VkLWluaXQgdXNlcyB0byBkbyBvdXRwdXQgdG8gdGhlDQo+
IHNlcmlhbCBjb25zb2xlLiBUaGUgdXNlIG9mIHRoZSBIeXBlci1WIHN5bnRoZXRpYyBjbG9jayBz
b3VyY2UgbWlnaHQgdGhlIGNhdXNlDQo+IG9mIHRoZSBwcm9ibGVtIGhlcmUgYXMgd2VsbC4gSGVy
ZSdzIGFuIG91dHB1dCBzbmlwcGV0IGZyb20gdGhlIHNlcmlhbCBjb25zb2xlOg0KPiANCj4gWyAg
IDIwLjMzMDQxNF0gc3lzdGVtZFsxXTogQ29uZGl0aW9uIGNoZWNrIHJlc3VsdGVkIGluIE9wZW5W
U3dpdGNoIGNvbmZpZ3VyYXRpb24gZm9yIGNsZWFudXAgYmVpbmcgc2tpcHBlZC4NCj4gWyAgIDIw
LjMzMjkxMV0gc3lzdGVtZFsxXTogQ29uZGl0aW9uIGNoZWNrIHJlc3VsdGVkIGluIFNldCBVcCBB
ZGRpdGlvbmFsIEJpbmFyeSBGb3JtYXRzIGJlaW5nIHNraXBwZWQuDQo+IFsgICAyMC4zMzMyNTdd
IHBzdG9yZTogUmVnaXN0ZXJlZCBlZmlfcHN0b3JlIGFzIHBlcnNpc3RlbnQgc3RvcmUgYmFja2Vu
ZA0KPiBbICAgMjAuMzM0MzYwXSBzeXN0ZW1kWzFdOiBDb25kaXRpb24gY2hlY2sgcmVzdWx0ZWQg
aW4gRmlsZSBTeXN0ZW0gQ2hlY2sgb24gUm9vdCBEZXZpY2UgYmVpbmcgc2tpcHBlZC4NCj4gWyAg
IDIwLjMzODMxOV0gc3lzdGVtZFsxXTogU3RhcnRpbmcgTG9hZCBLZXJuZWwgTW9kdWxlcy4uLg0K
PiBbICAgMjAuMzQxMDk0XSBzeXN0ZW1kWzFdOiBTdGFydGluZyBSZW1vdW50IFJvb3QgYW5kIEtl
cm5lbCBGaWxlIFN5c3RlbXMuLi4NCj4gWyAgIDIwLjM1MDk5M10gc3lzdGVtZFsxXTogU3RhcnRp
bmcgdWRldiBDb2xkcGx1ZyBhbGwgRGV2aWNlcy4uLg0KPiBbICAgMjAuMzU2MjU1XSBzeXN0ZW1k
WzFdOiBTdGFydGluZyBVbmNvbXBsaWNhdGVkIGZpcmV3YWxsLi4uDQo+IFsgICAyMC4zNjE1MzZd
IHN5c3RlbWRbMV06IFN0YXJ0ZWQgSm91cm5hbCBTZXJ2aWNlLg0KPiBbICAgMjAuMzg2OTAyXSBF
WFQ0LWZzIChzZGExKTogcmUtbW91bnRlZCBjMDJkY2UwYy0wYzQwLTRlNmUtODhhZi1jNWEwOTg3
YjBhZGIgci93Lg0KPiBbICAgMjIuNTMyMDMzXSAvZGV2L3NyMDogQ2FuJ3QgbG9va3VwIGJsb2Nr
ZGV2DQo+IFsgICAgNy45NTU5NzNdIGNsb3VkLWluaXRbNzgzXTogQ2xvdWQtaW5pdCB2LiAyNC4z
LjEtMHVidW50dTB+MjAuMDQuMSBydW5uaW5nICdpbml0LWxvY2FsJyBhdCBXZWQsIDExIE1hciAy
MDI2IDE1OjI3OjA2ICswMDAwLiBVcCA3LjQ4DQo+IHNlY29uZHMuDQo+IFsgICAgOS45MzMxMjBd
IGNsb3VkLWluaXRbODIyXTogQ2xvdWQtaW5pdCB2LiAyNC4zLjEtMHVidW50dTB+MjAuMDQuMSBy
dW5uaW5nICdpbml0JyBhdCBXZWQsIDExIE1hciAyMDI2IDE1OjI3OjA4ICswMDAwLiBVcCA5Ljgy
IHNlY29uZHMuDQo+IFsgICAgOS45MzU0ODNdIGNsb3VkLWluaXRbODIyXTogY2ktaW5mbzogKysr
KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKytOZXQgZGV2aWNlDQo+IGluZm8rKysr
KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysNCj4gWyAgICA5LjkzNzcyNl0gY2xv
dWQtaW5pdFs4MjJdOiBjaS1pbmZvOiArLS0tLS0tLS0rLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t
Kw0KPiBbICAgIDkuOTM5OTA1XSBjbG91ZC1pbml0WzgyMl06IGNpLWluZm86IHwgRGV2aWNlIHwg
IFVwICB8ICAgICAgICAgICBBZGRyZXNzICAgICAgICAgICB8ICAgICAgTWFzayAgICAgfCBTY29w
ZSAgfCAgICAgSHctQWRkcmVzcyAgICB8DQo+IFsgICAgOS45NDIwNTldIGNsb3VkLWluaXRbODIy
XTogY2ktaW5mbzogKy0tLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSsNCj4gDQo+IFRo
ZSBjbG91ZC1pbml0IGxpbmVzIGRvbid0IHNob3cgdXAgaW4gZG1lc2csIHNvIHRoZXJlJ3Mgbm8g
cHJvYmxlbSB0aGVyZS4NCg0KQXJlIHRoZSB0aW1lc3RhbXAgdmFsdWVzIGZvciBjbG91ZC1pbml0
IHVzdWFsbHkgY29uc2lzdGVudCB3aXRoIHRoZSBvbmVzIGZyb20gdGhlIGtlcm5lbD8NClRoYXQg
aXMsIHdpdGhvdXQgdGhlIGVhcmx5X3RpbWVzIHBhdGNoLCBkbyB0aGV5IHVzdWFsbHkgbWF0Y2gg
a2VybmVsJ3MgcHJpbnRrIHRpbWVzdGFtcHM/DQoNCkl0IHNvdW5kcyBsaWtlIHRoZXNlIGNsb3Vk
LWluaXQgbWVzc2FnZXMgYXJlIGVtaXR0ZWQgZGlyZWN0bHkgdG8gdGhlIHNlcmlhbCBjb25zb2xl
LCBhbmQgZG8NCm5vdCBnbyB0aHJvdWdoIHRoZSBwcmludGsgc3lzdGVtLiAgSXMgdGhhdCByaWdo
dD8gIEhvdyBkbyB0aGV5IGF2b2lkIGhhdmluZyB0aGUgcHJpbnRrDQptZXNzYWdlcyBhbmQgY2xv
dWQtaW5pdCBtZXNzYWdlcyBpbnRlcm1pbmdsZT8gIEkgYXNzdW1lIGNsb3VkLWluaXQgaXMgYSBz
eXN0ZW1kIHNlcnZpY2U/DQoNCkNhbiB5b3Ugc2hhcmUgdGhlIGNhbGlicmF0aW9uIGxpbmVzIGZy
b20gdGhpcyBib290PyAgSSdtIGN1cmlvdXMgaWYgdGhlIHRpbWVzdGFtcHMNCmp1c3QgcmVsYXRp
dmUgdG8gbG9jYWxfY2xvY2soKS4NCg0KPiBJIHdpbGwgbG9vayBpbnRvIGJvdGggaXNzdWVzIGZ1
cnRoZXIsIGJ1dCBwcm9iYWJseSBub3QgdG9kYXkuDQoNClRoYW5rcyBmb3IgdHJ5aW5nIHRoZSBj
b2RlIG91dC4gIExldCBtZSBrbm93IGlmIHlvdSBmaW5kIG91dCBhbnl0aGluZy4NCiAtLSBUaW0N
Cg0KPiBNaWNoYWVsDQo+IA0KPiA+DQo+ID4gU2lnbmVkLW9mZi1ieTogVGltIEJpcmQgPHRpbS5i
aXJkQHNvbnkuY29tPg0KPiA+IC0tLQ0KPiA+IFYyLT5WMw0KPiA+ICBEZWZhdWx0IENPTkZJRyBv
cHRpb24gdG8gJ24nDQo+ID4gIE1vdmUgbW9yZSBjb2RlIGZyb20gaW50byBlYXJseV90aW1lcy5o
DQo+ID4gICAocmVkdWNpbmcgaWZkZWZzIGluIGluaXQvbWFpbi5jKQ0KPiA+ICBVc2UgbWF0aDY0
IGhlbHBlciByb3V0aW5lcw0KPiA+ICBVc2UgY3ljbGVzX3QgaW5zdGVhZCBvZiB1NjQgdHlwZQ0K
PiA+ICBBZGQgI2RlZmluZXMgZm9yIEVBUkxZX0NZQ0xFU19CSVQgYW5kIE1BU0sNCj4gPiAgSW52
ZXJ0IGlmIGxvZ2ljIGluIGFkanVzdF9lYXJseV90cygpDQo+ID4gIChub3RlOiBubyBjaGFuZ2Ug
dG8gJ2RlcGVuZHMgb24nIGluIEtjb25maWcgZW50cnkpDQo+ID4NCj4gPiBWMS0+VjINCj4gPiAg
UmVtb3ZlIGNhbGlicmF0aW9uIENPTkZJRyB2YXJzDQo+ID4gIEFkZCAnZGVwZW5kcyBvbicgdG8g
cmVzdHJpY3QgYXJjaGVzICh0byBoYW5kbGUgcHBjIGJ1ZykNCj4gPiAgQWRkIGVhcmx5X3RzX29m
ZnNldCB0byBhdm9pZCBkaXNjb250aW51aXR5DQo+ID4gIFNhdmUgY3ljbGVzIGluIHRzX25zZWMs
IGFuZCBjb252ZXJ0IG9uIG91dHB1dA0KPiA+ICBNb3ZlIGNvbmRpdGlvbmFsIGNvZGUgdG8gaW5j
bHVkZSBmaWxlIChlYXJseV90aW1lcy5oKQ0KPiA+DQo+ID4gIGluY2x1ZGUvbGludXgvZWFybHlf
dGltZXMuaCB8IDg1ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysNCj4gPiAg
aW5pdC9LY29uZmlnICAgICAgICAgICAgICAgIHwgMTQgKysrKysrDQo+ID4gIGluaXQvbWFpbi5j
ICAgICAgICAgICAgICAgICB8ICA2ICsrKw0KPiA+ICBrZXJuZWwvcHJpbnRrL3ByaW50ay5jICAg
ICAgfCAxOCArKysrKysrLQ0KPiA+ICA0IGZpbGVzIGNoYW5nZWQsIDEyMSBpbnNlcnRpb25zKCsp
LCAyIGRlbGV0aW9ucygtKQ0KPiA+ICBjcmVhdGUgbW9kZSAxMDA2NDQgaW5jbHVkZS9saW51eC9l
YXJseV90aW1lcy5oDQo+ID4NCj4gPiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9lYXJseV90
aW1lcy5oIGIvaW5jbHVkZS9saW51eC9lYXJseV90aW1lcy5oDQo+ID4gbmV3IGZpbGUgbW9kZSAx
MDA2NDQNCj4gPiBpbmRleCAwMDAwMDAwMDAwMDAuLjA1Mzg4ZGNiODU3Mw0KPiA+IC0tLSAvZGV2
L251bGwNCj4gPiArKysgYi9pbmNsdWRlL2xpbnV4L2Vhcmx5X3RpbWVzLmgNCj4gPiBAQCAtMCww
ICsxLDg1IEBADQo+ID4gKy8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wICovDQo+
ID4gKw0KPiA+ICsjaWZuZGVmIF9LRVJORUxfUFJJTlRLX0VBUkxZX1RJTUVTX0gNCj4gPiArI2Rl
ZmluZSBfS0VSTkVMX1BSSU5US19FQVJMWV9USU1FU19IDQo+ID4gKw0KPiA+ICsjaW5jbHVkZSA8
bGludXgvdGltZXguaD4NCj4gPiArI2luY2x1ZGUgPGxpbnV4L2Nsb2Nrc291cmNlLmg+DQo+ID4g
Kw0KPiA+ICsvKiB1c2UgaGlnaCBiaXQgb2YgYSB1NjQgdG8gaW5kaWNhdGUgY3ljbGVzIGluc3Rl
YWQgb2YgYSB0aW1lc3RhbXAgKi8NCj4gPiArI2RlZmluZSBFQVJMWV9DWUNMRVNfQklUCUJJVF9V
TEwoNjMpDQo+ID4gKyNkZWZpbmUgRUFSTFlfQ1lDTEVTX01BU0sJfihCSVRfVUxMKDYzKSkNCj4g
PiArDQo+ID4gKyNpZiBkZWZpbmVkKENPTkZJR19FQVJMWV9QUklOVEtfVElNRVMpDQo+ID4gK2V4
dGVybiBjeWNsZXNfdCBzdGFydF9jeWNsZXM7DQo+ID4gK2V4dGVybiB1NjQgc3RhcnRfbnM7DQo+
ID4gK2V4dGVybiB1MzIgZWFybHlfbXVsdCwgZWFybHlfc2hpZnQ7DQo+ID4gK2V4dGVybiB1NjQg
ZWFybHlfdHNfb2Zmc2V0Ow0KPiA+ICsNCj4gPiArc3RhdGljIGlubGluZSB2b2lkIGVhcmx5X3Rp
bWVzX3N0YXJ0X2NhbGlicmF0aW9uKHZvaWQpDQo+ID4gK3sNCj4gPiArCXN0YXJ0X2N5Y2xlcyA9
IGdldF9jeWNsZXMoKTsNCj4gPiArCXN0YXJ0X25zID0gbG9jYWxfY2xvY2soKTsNCj4gPiArfQ0K
PiA+ICsNCj4gPiArc3RhdGljIGlubGluZSB2b2lkIGVhcmx5X3RpbWVzX2ZpbmlzaF9jYWxpYnJh
dGlvbih2b2lkKQ0KPiA+ICt7DQo+ID4gKwljeWNsZXNfdCBlbmRfY3ljbGVzOw0KPiA+ICsJdTY0
IGVuZF9uczsNCj4gPiArDQo+ID4gKwkvKiBzZXQgY2FsaWJyYXRpb24gZGF0YSBmb3IgZWFybHlf
cHJpbnRrX3RpbWVzICovDQo+ID4gKwllbmRfY3ljbGVzID0gZ2V0X2N5Y2xlcygpOw0KPiA+ICsJ
ZW5kX25zID0gbG9jYWxfY2xvY2soKTsNCj4gPiArCWNsb2Nrc19jYWxjX211bHRfc2hpZnQoJmVh
cmx5X211bHQsICZlYXJseV9zaGlmdCwNCj4gPiArCQltdWxfdTY0X3U2NF9kaXZfdTY0KGVuZF9j
eWNsZXMgLSBzdGFydF9jeWNsZXMsDQo+ID4gKwkJCU5TRUNfUEVSX1NFQywgZW5kX25zIC0gc3Rh
cnRfbnMpLA0KPiA+ICsJCU5TRUNfUEVSX1NFQywgMTAwKTsNCj4gPiArCWVhcmx5X3RzX29mZnNl
dCA9IG11bF91NjRfdTMyX3NocihzdGFydF9jeWNsZXMsIGVhcmx5X211bHQsIGVhcmx5X3NoaWZ0
KSAtDQo+ID4gc3RhcnRfbnM7DQo+ID4gKw0KPiA+ICsJcHJfZGVidWcoIkVhcmx5IHByaW50ayB0
aW1lczogbXVsdD0ldSwgc2hpZnQ9JXUsIG9mZnNldD0lbGx1IG5zXG4iLA0KPiA+ICsJCWVhcmx5
X211bHQsIGVhcmx5X3NoaWZ0LCBlYXJseV90c19vZmZzZXQpOw0KPiA+ICt9DQo+ID4gKw0KPiA+
ICtzdGF0aWMgaW5saW5lIHU2NCBlYXJseV9jeWNsZXModm9pZCkNCj4gPiArew0KPiA+ICsJcmV0
dXJuIChnZXRfY3ljbGVzKCkgfCBFQVJMWV9DWUNMRVNfQklUKTsNCj4gPiArfQ0KPiA+ICsNCj4g
PiArLyoNCj4gPiArICogYWRqdXN0X2Vhcmx5X3RzIGRldGVjdHMgd2hldGhlciB0cyBpbiBpcyBj
eWNsZXMgb3IgbmFub3NlY29uZHMNCj4gPiArICogYW5kIGNvbnZlcnRzIGl0IG9yIGFkanVzdHMg
aXQsIHRha2luZyBpbnRvIGFjY291bnQgdGhlIG9mZnNldA0KPiA+ICsgKiBmcm9tIGN5Y2xlLWNv
dW50ZXIgc3RhcnQuDQo+ID4gKyAqDQo+ID4gKyAqIE5vdGUgdGhhdCBlYXJseV9tdWx0IG1heSBi
ZSAwLCBidXQgdGhhdCdzIE9LIGJlY2F1c2UNCj4gPiArICogd2UnbGwganVzdCBtdWx0aXBseSBi
eSAwIGFuZCByZXR1cm4gMC4gVGhpcyB3aWxsDQo+ID4gKyAqIG9ubHkgb2NjdXIgaWYgd2UncmUg
b3V0cHV0dGluZyBhIHByaW50ayBtZXNzYWdlDQo+ID4gKyAqIGJlZm9yZSB0aGUgY2FsaWJyYXRp
b24gb2YgdGhlIGVhcmx5IHRpbWVzdGFtcC4NCj4gPiArICogQW55IG91dHB1dCBhZnRlciB1c2Vy
IHNwYWNlIHN0YXJ0IChlZy4gZnJvbSBkbWVzZyBvcg0KPiA+ICsgKiBqb3VybmFsY3RsKSB3aWxs
IHNob3cgY29ycmVjdCB2YWx1ZXMuDQo+ID4gKyAqLw0KPiA+ICtzdGF0aWMgaW5saW5lIHU2NCBh
ZGp1c3RfZWFybHlfdHModTY0IHRzKQ0KPiA+ICt7DQo+ID4gKwlpZiAobGlrZWx5KCEodHMgJiBF
QVJMWV9DWUNMRVNfQklUKSkpDQo+ID4gKwkJLyogaWYgdGltZXN0YW1wIGlzIG5vdCBpbiBjeWNs
ZXMsIGp1c3QgYWRkIG9mZnNldCAqLw0KPiA+ICsJCXJldHVybiB0cyArIGVhcmx5X3RzX29mZnNl
dDsNCj4gPiArDQo+ID4gKwkvKiBtYXNrIGhpZ2ggYml0IGFuZCBjb252ZXJ0IHRvIG5hbm9zZWNv
bmRzICovDQo+ID4gKwlyZXR1cm4gbXVsX3U2NF91MzJfc2hyKHRzICYgRUFSTFlfQ1lDTEVTX01B
U0ssIGVhcmx5X211bHQsIGVhcmx5X3NoaWZ0KTsNCj4gPiArfQ0KPiA+ICsNCj4gPiArI2Vsc2UN
Cj4gPiArIyBkZWZpbmUgZWFybHlfdGltZXNfc3RhcnRfY2FsaWJyYXRpb24oKSBkbyB7IH0gd2hp
bGUgKDApDQo+ID4gKyMgZGVmaW5lIGVhcmx5X3RpbWVzX2ZpbmlzaF9jYWxpYnJhdGlvbigpIGRv
IHsgfSB3aGlsZSAoMCkNCj4gPiArDQo+ID4gK3N0YXRpYyBpbmxpbmUgdTY0IGVhcmx5X2N5Y2xl
cyh2b2lkKQ0KPiA+ICt7DQo+ID4gKwlyZXR1cm4gMDsNCj4gPiArfQ0KPiA+ICsNCj4gPiArc3Rh
dGljIGlubGluZSB1NjQgYWRqdXN0X2Vhcmx5X3RzKHU2NCB0cykNCj4gPiArew0KPiA+ICsJcmV0
dXJuIHRzOw0KPiA+ICt9DQo+ID4gKyNlbmRpZiAvKiBDT05GSUdfRUFSTFlfUFJJTlRLX1RJTUVT
ICovDQo+ID4gKw0KPiA+ICsjZW5kaWYgLyogX0tFUk5FTF9QUklOVEtfRUFSTFlfVElNRVNfSCAq
Lw0KPiA+IGRpZmYgLS1naXQgYS9pbml0L0tjb25maWcgYi9pbml0L0tjb25maWcNCj4gPiBpbmRl
eCBmYTc5ZmViOGZlNTcuLmE5MjhjMWVmYjA5ZCAxMDA2NDQNCj4gPiAtLS0gYS9pbml0L0tjb25m
aWcNCj4gPiArKysgYi9pbml0L0tjb25maWcNCj4gPiBAQCAtNzc3LDYgKzc3NywyMCBAQCBjb25m
aWcgSUtIRUFERVJTDQo+ID4gIAkgIG9yIHNpbWlsYXIgcHJvZ3JhbXMuICBJZiB5b3UgYnVpbGQg
dGhlIGhlYWRlcnMgYXMgYSBtb2R1bGUsIGEgbW9kdWxlIGNhbGxlZA0KPiA+ICAJICBraGVhZGVy
cy5rbyBpcyBidWlsdCB3aGljaCBjYW4gYmUgbG9hZGVkIG9uLWRlbWFuZCB0byBnZXQgYWNjZXNz
IHRvIGhlYWRlcnMuDQo+ID4NCj4gPiArY29uZmlnIEVBUkxZX1BSSU5US19USU1FUw0KPiA+ICsJ
Ym9vbCAiU2hvdyBub24temVybyBwcmludGsgdGltZXN0YW1wcyBlYXJseSBpbiBib290Ig0KPiA+
ICsJZGVmYXVsdCBuDQo+ID4gKwlkZXBlbmRzIG9uIFBSSU5USw0KPiA+ICsJZGVwZW5kcyBvbiBB
Uk02NCB8fCBYODZfNjQNCj4gPiArCWhlbHANCj4gPiArCSAgVXNlIGEgY3ljbGUtY291bnRlciB0
byBwcm92aWRlIHByaW50ayB0aW1lc3RhbXBzIGR1cmluZw0KPiA+ICsJICBlYXJseSBib290LiAg
VGhpcyBhbGxvd3Mgc2VlaW5nIHRpbWVzdGFtcHMgZm9yIHByaW50a3MgdGhhdA0KPiA+ICsJICB3
b3VsZCBvdGhlcndpc2Ugc2hvdyBhcyAwLiAgTm90ZSB0aGF0IHRoaXMgd2lsbCBzaGlmdCB0aGUN
Cj4gPiArCSAgcHJpbnRrIHRpbWVzdGFtcHMgdG8gYmUgcmVsYXRpdmUgdG8gcHJvY2Vzc29yIHBv
d2VyIG9uLCBpbnN0ZWFkDQo+ID4gKwkgIG9mIHJlbGF0aXZlIHRvIHRoZSBzdGFydCBvZiBrZXJu
ZWwgdGltZWtlZXBpbmcuICBUaGlzIHNob3VsZCBiZQ0KPiA+ICsJICBjbG9zZXIgdG8gbWFjaGlu
ZSBwb3dlciBvbiwgZ2l2aW5nIGEgYmV0dGVyIGluZGljYXRpb24gb2YNCj4gPiArCSAgb3ZlcmFs
bCBib290IHRpbWUuDQo+ID4gKw0KPiA+ICBjb25maWcgTE9HX0JVRl9TSElGVA0KPiA+ICAJaW50
ICJLZXJuZWwgbG9nIGJ1ZmZlciBzaXplICgxNiA9PiA2NEtCLCAxNyA9PiAxMjhLQikiDQo+ID4g
IAlyYW5nZSAxMiAyNQ0KPiA+IGRpZmYgLS1naXQgYS9pbml0L21haW4uYyBiL2luaXQvbWFpbi5j
DQo+ID4gaW5kZXggYjg0ODE4YWQ5Njg1Li5kNTc3NGFlYzFhZmYgMTAwNjQ0DQo+ID4gLS0tIGEv
aW5pdC9tYWluLmMNCj4gPiArKysgYi9pbml0L21haW4uYw0KPiA+IEBAIC0xMDQsNiArMTA0LDcg
QEANCj4gPiAgI2luY2x1ZGUgPGxpbnV4L3BpZGZzLmg+DQo+ID4gICNpbmNsdWRlIDxsaW51eC9w
dGR1bXAuaD4NCj4gPiAgI2luY2x1ZGUgPGxpbnV4L3RpbWVfbmFtZXNwYWNlLmg+DQo+ID4gKyNp
bmNsdWRlIDxsaW51eC9lYXJseV90aW1lcy5oPg0KPiA+ICAjaW5jbHVkZSA8bmV0L25ldF9uYW1l
c3BhY2UuaD4NCj4gPg0KPiA+ICAjaW5jbHVkZSA8YXNtL2lvLmg+DQo+ID4gQEAgLTExMTgsNiAr
MTExOSw5IEBAIHZvaWQgc3RhcnRfa2VybmVsKHZvaWQpDQo+ID4gIAl0aW1la2VlcGluZ19pbml0
KCk7DQo+ID4gIAl0aW1lX2luaXQoKTsNCj4gPg0KPiA+ICsJLyogVGhpcyBtdXN0IGJlIGFmdGVy
IHRpbWVrZWVwaW5nIGlzIGluaXRpYWxpemVkICovDQo+ID4gKwllYXJseV90aW1lc19zdGFydF9j
YWxpYnJhdGlvbigpOw0KPiA+ICsNCj4gPiAgCS8qIFRoaXMgbXVzdCBiZSBhZnRlciB0aW1la2Vl
cGluZyBpcyBpbml0aWFsaXplZCAqLw0KPiA+ICAJcmFuZG9tX2luaXQoKTsNCj4gPg0KPiA+IEBA
IC0xNjAwLDYgKzE2MDQsOCBAQCBzdGF0aWMgaW50IF9fcmVmIGtlcm5lbF9pbml0KHZvaWQgKnVu
dXNlZCkNCj4gPg0KPiA+ICAJZG9fc3lzY3RsX2FyZ3MoKTsNCj4gPg0KPiA+ICsJZWFybHlfdGlt
ZXNfZmluaXNoX2NhbGlicmF0aW9uKCk7DQo+ID4gKw0KPiA+ICAJaWYgKHJhbWRpc2tfZXhlY3V0
ZV9jb21tYW5kKSB7DQo+ID4gIAkJcmV0ID0gcnVuX2luaXRfcHJvY2VzcyhyYW1kaXNrX2V4ZWN1
dGVfY29tbWFuZCk7DQo+ID4gIAkJaWYgKCFyZXQpDQo+ID4gZGlmZiAtLWdpdCBhL2tlcm5lbC9w
cmludGsvcHJpbnRrLmMgYi9rZXJuZWwvcHJpbnRrL3ByaW50ay5jDQo+ID4gaW5kZXggMWQ3NjVh
ZDI0MmI4Li41YWZkMzFjMzM0NWMgMTAwNjQ0DQo+ID4gLS0tIGEva2VybmVsL3ByaW50ay9wcmlu
dGsuYw0KPiA+ICsrKyBiL2tlcm5lbC9wcmludGsvcHJpbnRrLmMNCj4gPiBAQCAtNDYsNiArNDYs
NyBAQA0KPiA+ICAjaW5jbHVkZSA8bGludXgvY3R5cGUuaD4NCj4gPiAgI2luY2x1ZGUgPGxpbnV4
L3Vpby5oPg0KPiA+ICAjaW5jbHVkZSA8bGludXgvc2NoZWQvY2xvY2suaD4NCj4gPiArI2luY2x1
ZGUgPGxpbnV4L2Vhcmx5X3RpbWVzLmg+DQo+ID4gICNpbmNsdWRlIDxsaW51eC9zY2hlZC9kZWJ1
Zy5oPg0KPiA+ICAjaW5jbHVkZSA8bGludXgvc2NoZWQvdGFza19zdGFjay5oPg0KPiA+ICAjaW5j
bHVkZSA8bGludXgvcGFuaWMuaD4NCj4gPiBAQCAtNzUsNiArNzYsMTMgQEAgRVhQT1JUX1NZTUJP
TChpZ25vcmVfY29uc29sZV9sb2NrX3dhcm5pbmcpOw0KPiA+DQo+ID4gIEVYUE9SVF9UUkFDRVBP
SU5UX1NZTUJPTF9HUEwoY29uc29sZSk7DQo+ID4NCj4gPiArI2lmZGVmIENPTkZJR19FQVJMWV9Q
UklOVEtfVElNRVMNCj4gPiArY3ljbGVzX3Qgc3RhcnRfY3ljbGVzOw0KPiA+ICt1NjQgc3RhcnRf
bnM7DQo+ID4gK3UzMiBlYXJseV9tdWx0LCBlYXJseV9zaGlmdDsNCj4gPiArdTY0IGVhcmx5X3Rz
X29mZnNldDsNCj4gPiArI2VuZGlmDQo+ID4gKw0KPiA+ICAvKg0KPiA+ICAgKiBMb3cgbGV2ZWwg
ZHJpdmVycyBtYXkgbmVlZCB0aGF0IHRvIGtub3cgaWYgdGhleSBjYW4gc2NoZWR1bGUgaW4NCj4g
PiAgICogdGhlaXIgdW5ibGFuaygpIGNhbGxiYWNrIG9yIG5vdC4gU28gbGV0J3MgZXhwb3J0IGl0
Lg0KPiA+IEBAIC02MzksNyArNjQ3LDcgQEAgc3RhdGljIHZvaWQgYXBwZW5kX2NoYXIoY2hhciAq
KnBwLCBjaGFyICplLCBjaGFyIGMpDQo+ID4gIHN0YXRpYyBzc2l6ZV90IGluZm9fcHJpbnRfZXh0
X2hlYWRlcihjaGFyICpidWYsIHNpemVfdCBzaXplLA0KPiA+ICAJCQkJICAgICBzdHJ1Y3QgcHJp
bnRrX2luZm8gKmluZm8pDQo+ID4gIHsNCj4gPiAtCXU2NCB0c191c2VjID0gaW5mby0+dHNfbnNl
YzsNCj4gPiArCXU2NCB0c191c2VjID0gYWRqdXN0X2Vhcmx5X3RzKGluZm8tPnRzX25zZWMpOw0K
PiA+ICAJY2hhciBjYWxsZXJbMjBdOw0KPiA+ICAjaWZkZWYgQ09ORklHX1BSSU5US19DQUxMRVIN
Cj4gPiAgCXUzMiBpZCA9IGluZm8tPmNhbGxlcl9pZDsNCj4gPiBAQCAtMTM1Miw3ICsxMzYwLDEx
IEBAIHN0YXRpYyBzaXplX3QgcHJpbnRfc3lzbG9nKHVuc2lnbmVkIGludCBsZXZlbCwgY2hhciAq
YnVmKQ0KPiA+DQo+ID4gIHN0YXRpYyBzaXplX3QgcHJpbnRfdGltZSh1NjQgdHMsIGNoYXIgKmJ1
ZikNCj4gPiAgew0KPiA+IC0JdW5zaWduZWQgbG9uZyByZW1fbnNlYyA9IGRvX2Rpdih0cywgMTAw
MDAwMDAwMCk7DQo+ID4gKwl1bnNpZ25lZCBsb25nIHJlbV9uc2VjOw0KPiA+ICsNCj4gPiArCXRz
ID0gYWRqdXN0X2Vhcmx5X3RzKHRzKTsNCj4gPiArDQo+ID4gKwlyZW1fbnNlYyA9IGRvX2Rpdih0
cywgMTAwMDAwMDAwMCk7DQo+ID4NCj4gPiAgCXJldHVybiBzcHJpbnRmKGJ1ZiwgIlslNWx1LiUw
Nmx1XSIsDQo+ID4gIAkJICAgICAgICh1bnNpZ25lZCBsb25nKXRzLCByZW1fbnNlYyAvIDEwMDAp
Ow0KPiA+IEBAIC0yMjQyLDYgKzIyNTQsOCBAQCBpbnQgdnByaW50a19zdG9yZShpbnQgZmFjaWxp
dHksIGludCBsZXZlbCwNCj4gPiAgCSAqIHRpbWVzdGFtcCB3aXRoIHJlc3BlY3QgdG8gdGhlIGNh
bGxlci4NCj4gPiAgCSAqLw0KPiA+ICAJdHNfbnNlYyA9IGxvY2FsX2Nsb2NrKCk7DQo+ID4gKwlp
ZiAoIXRzX25zZWMpDQo+ID4gKwkJdHNfbnNlYyA9IGVhcmx5X2N5Y2xlcygpOw0KPiA+DQo+ID4g
IAljYWxsZXJfaWQgPSBwcmludGtfY2FsbGVyX2lkKCk7DQo+ID4NCj4gPiAtLQ0KPiA+IDIuNDMu
MA0KPiA+DQoNCg==