From mboxrd@z Thu Jan 1 00:00:00 1970 From: Christoffer Dall Subject: Re: [PATCH 12/14] KVM: arm/arm64: arch_timer: Assign the phys timer on VHE systems Date: Tue, 19 Feb 2019 13:43:49 +0100 Message-ID: <20190219124349.GD28113@e113682-lin.lund.arm.com> References: <20190124140032.8588-1-christoffer.dall@arm.com> <20190124140032.8588-13-christoffer.dall@arm.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Cc: Marc Zyngier , kvmarm@lists.cs.columbia.edu, linux-arm-kernel@lists.infradead.org, kvm@vger.kernel.org To: =?utf-8?B?QW5kcsOp?= Przywara Return-path: Content-Disposition: inline In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: kvmarm-bounces@lists.cs.columbia.edu Sender: kvmarm-bounces@lists.cs.columbia.edu List-Id: kvm.vger.kernel.org T24gTW9uLCBGZWIgMTgsIDIwMTkgYXQgMDM6MTA6NDlQTSArMDAwMCwgQW5kcsOpIFByenl3YXJh IHdyb3RlOgo+IE9uIFRodSwgMjQgSmFuIDIwMTkgMTU6MDA6MzAgKzAxMDAKPiBDaHJpc3RvZmZl ciBEYWxsIDxjaHJpc3RvZmZlci5kYWxsQGFybS5jb20+IHdyb3RlOgo+IAo+IEhpLAo+IAo+ID4g VkhFIHN5c3RlbXMgZG9uJ3QgaGF2ZSB0byBlbXVsYXRlIHRoZSBwaHlzaWNhbCB0aW1lciwgd2Ug Y2FuIHNpbXBseQo+ID4gYXNzaWduZSB0aGUgRUwxIHBoeXNpY2FsIHRpbWVyIGRpcmVjdGx5IHRv IHRoZSBWTSBhcyB0aGUgaG9zdCBhbHdheXMKPiA+IHVzZXMgdGhlIEVMMiB0aW1lcnMuCj4gPiAK PiA+IEluIG9yZGVyIHRvIG1pbmltaXplIHRoZSBhbW91bnQgb2YgY3J1ZnQsIEFBcmNoMzIgZ2V0 cyBkZWZpbml0aW9ucyBmb3IKPiA+IHRoZSBwaHlzaWNhbCB0aW1lciB0b28sIGJ1dCBpcyBzaG91 bGQgYmUgZ2VuZXJhbGx5IHVudXNlZCBvbiB0aGlzCj4gPiBhcmNoaXRlY3R1cmUuCj4gPiAKPiA+ IENvLXdyaXR0ZW4gd2l0aCBNYXJjIFp5bmdpZXIgPG1hcmMuenluZ2llckBhcm0uY29tPgo+ID4g Cj4gPiBTaWduZWQtb2ZmLWJ5OiBNYXJjIFp5bmdpZXIgPG1hcmMuenluZ2llckBhcm0uY29tPgo+ ID4gU2lnbmVkLW9mZi1ieTogQ2hyaXN0b2ZmZXIgRGFsbCA8Y2hyaXN0b2ZmZXIuZGFsbEBhcm0u Y29tPgo+ID4gLS0tCj4gPiAgYXJjaC9hcm0vaW5jbHVkZS9hc20va3ZtX2h5cC5oIHwgICA0ICsK PiA+ICBpbmNsdWRlL2t2bS9hcm1fYXJjaF90aW1lci5oICAgfCAgIDYgKwo+ID4gIHZpcnQva3Zt L2FybS9hcmNoX3RpbWVyLmMgICAgICB8IDIwNiArKysrKysrKysrKysrKysrKysrKysrKysrKy0t LS0tLS0KPiA+ICAzIGZpbGVzIGNoYW5nZWQsIDE3MSBpbnNlcnRpb25zKCspLCA0NSBkZWxldGlv bnMoLSkKPiA+IAo+ID4gZGlmZiAtLWdpdCBhL2FyY2gvYXJtL2luY2x1ZGUvYXNtL2t2bV9oeXAu aCBiL2FyY2gvYXJtL2luY2x1ZGUvYXNtL2t2bV9oeXAuaAo+ID4gaW5kZXggZTkzYTBjYWM5YWRk Li44N2JjZDE4ZGY4ZDUgMTAwNjQ0Cj4gPiAtLS0gYS9hcmNoL2FybS9pbmNsdWRlL2FzbS9rdm1f aHlwLmgKPiA+ICsrKyBiL2FyY2gvYXJtL2luY2x1ZGUvYXNtL2t2bV9oeXAuaAo+ID4gQEAgLTQw LDYgKzQwLDcgQEAKPiA+ICAjZGVmaW5lIFRUQlIxCQlfX0FDQ0VTU19DUDE1XzY0KDEsIGMyKQo+ ID4gICNkZWZpbmUgVlRUQlIJCV9fQUNDRVNTX0NQMTVfNjQoNiwgYzIpCj4gPiAgI2RlZmluZSBQ QVIJCV9fQUNDRVNTX0NQMTVfNjQoMCwgYzcpCj4gPiArI2RlZmluZSBDTlRQX0NWQUwJX19BQ0NF U1NfQ1AxNV82NCgyLCBjMTQpCj4gPiAgI2RlZmluZSBDTlRWX0NWQUwJX19BQ0NFU1NfQ1AxNV82 NCgzLCBjMTQpCj4gPiAgI2RlZmluZSBDTlRWT0ZGCQlfX0FDQ0VTU19DUDE1XzY0KDQsIGMxNCkK PiA+ICAKPiA+IEBAIC04NSw2ICs4Niw3IEBACj4gPiAgI2RlZmluZSBUSURfUFJJVglfX0FDQ0VT U19DUDE1KGMxMywgMCwgYzAsIDQpCj4gPiAgI2RlZmluZSBIVFBJRFIJCV9fQUNDRVNTX0NQMTUo YzEzLCA0LCBjMCwgMikKPiA+ICAjZGVmaW5lIENOVEtDVEwJCV9fQUNDRVNTX0NQMTUoYzE0LCAw LCBjMSwgMCkKPiA+ICsjZGVmaW5lIENOVFBfQ1RMCV9fQUNDRVNTX0NQMTUoYzE0LCAwLCBjMiwg MSkKPiA+ICAjZGVmaW5lIENOVFZfQ1RMCV9fQUNDRVNTX0NQMTUoYzE0LCAwLCBjMywgMSkKPiA+ ICAjZGVmaW5lIENOVEhDVEwJCV9fQUNDRVNTX0NQMTUoYzE0LCA0LCBjMSwgMCkKPiA+ICAKPiA+ IEBAIC05NCw2ICs5Niw4IEBACj4gPiAgI2RlZmluZSByZWFkX3N5c3JlZ19lbDAocikJCXJlYWRf c3lzcmVnKHIjI19lbDApCj4gPiAgI2RlZmluZSB3cml0ZV9zeXNyZWdfZWwwKHYsIHIpCQl3cml0 ZV9zeXNyZWcodiwgciMjX2VsMCkKPiA+ICAKPiA+ICsjZGVmaW5lIGNudHBfY3RsX2VsMAkJCUNO VFBfQ1RMCj4gPiArI2RlZmluZSBjbnRwX2N2YWxfZWwwCQkJQ05UUF9DVkFMCj4gPiAgI2RlZmlu ZSBjbnR2X2N0bF9lbDAJCQlDTlRWX0NUTAo+ID4gICNkZWZpbmUgY250dl9jdmFsX2VsMAkJCUNO VFZfQ1ZBTAo+ID4gICNkZWZpbmUgY250dm9mZl9lbDIJCQlDTlRWT0ZGCj4gPiBkaWZmIC0tZ2l0 IGEvaW5jbHVkZS9rdm0vYXJtX2FyY2hfdGltZXIuaCBiL2luY2x1ZGUva3ZtL2FybV9hcmNoX3Rp bWVyLmgKPiA+IGluZGV4IGQ0MGZlNTdhMmQwZC4uNzIyZTA0ODFmMzEwIDEwMDY0NAo+ID4gLS0t IGEvaW5jbHVkZS9rdm0vYXJtX2FyY2hfdGltZXIuaAo+ID4gKysrIGIvaW5jbHVkZS9rdm0vYXJt X2FyY2hfdGltZXIuaAo+ID4gQEAgLTUwLDYgKzUwLDEwIEBAIHN0cnVjdCBhcmNoX3RpbWVyX2Nv bnRleHQgewo+ID4gIAo+ID4gIAkvKiBFbXVsYXRlZCBUaW1lciAobWF5IGJlIHVudXNlZCkgKi8K PiA+ICAJc3RydWN0IGhydGltZXIJCQlocnRpbWVyOwo+ID4gKwo+ID4gKwkvKiBEdXBsaWNhdGVk IHN0YXRlIGZyb20gYXJjaF90aW1lci5jIGZvciBjb252ZW5pZW5jZSAqLwo+ID4gKwl1MzIJCQkJ aG9zdF90aW1lcl9pcnE7Cj4gPiArCXUzMgkJCQlob3N0X3RpbWVyX2lycV9mbGFnczsKPiA+ICB9 Owo+ID4gIAo+ID4gIGVudW0gbG9hZGVkX3RpbWVyX3N0YXRlIHsKPiA+IEBAIC0xMDcsNiArMTEx LDggQEAgYm9vbCBrdm1fYXJjaF90aW1lcl9nZXRfaW5wdXRfbGV2ZWwoaW50IHZpbnRpZCk7Cj4g PiAgI2RlZmluZSB2Y3B1X3Z0aW1lcih2KQkoJih2KS0+YXJjaC50aW1lcl9jcHUudGltZXJzW1RJ TUVSX1ZUSU1FUl0pCj4gPiAgI2RlZmluZSB2Y3B1X3B0aW1lcih2KQkoJih2KS0+YXJjaC50aW1l cl9jcHUudGltZXJzW1RJTUVSX1BUSU1FUl0pCj4gPiAgCj4gPiArI2RlZmluZSBhcmNoX3RpbWVy X2N0eF9pbmRleChjdHgpCSgoY3R4KSAtIHZjcHVfdGltZXIoKGN0eCktPnZjcHUpLT50aW1lcnMp Cj4gPiArCj4gPiAgdTY0IGt2bV9hcm1fdGltZXJfcmVhZF9zeXNyZWcoc3RydWN0IGt2bV92Y3B1 ICp2Y3B1LAo+ID4gIAkJCSAgICAgIGVudW0ga3ZtX2FyY2hfdGltZXJzIHRtciwKPiA+ICAJCQkg ICAgICBlbnVtIGt2bV9hcmNoX3RpbWVyX3JlZ3MgdHJlZyk7Cj4gPiBkaWZmIC0tZ2l0IGEvdmly dC9rdm0vYXJtL2FyY2hfdGltZXIuYyBiL3ZpcnQva3ZtL2FybS9hcmNoX3RpbWVyLmMKPiA+IGlu ZGV4IDhiMGVjYTVmYmFkMS4uZWVkOGY0OGZiZjliIDEwMDY0NAo+ID4gLS0tIGEvdmlydC9rdm0v YXJtL2FyY2hfdGltZXIuYwo+ID4gKysrIGIvdmlydC9rdm0vYXJtL2FyY2hfdGltZXIuYwo+ID4g QEAgLTM1LDcgKzM1LDkgQEAKPiA+ICAKPiA+ICBzdGF0aWMgc3RydWN0IHRpbWVjb3VudGVyICp0 aW1lY291bnRlcjsKPiA+ICBzdGF0aWMgdW5zaWduZWQgaW50IGhvc3RfdnRpbWVyX2lycTsKPiA+ ICtzdGF0aWMgdW5zaWduZWQgaW50IGhvc3RfcHRpbWVyX2lycTsKPiA+ICBzdGF0aWMgdTMyIGhv c3RfdnRpbWVyX2lycV9mbGFnczsKPiA+ICtzdGF0aWMgdTMyIGhvc3RfcHRpbWVyX2lycV9mbGFn czsKPiA+ICAKPiA+ICBzdGF0aWMgREVGSU5FX1NUQVRJQ19LRVlfRkFMU0UoaGFzX2dpY19hY3Rp dmVfc3RhdGUpOwo+ID4gIAo+ID4gQEAgLTg2LDIwICs4OCwyNCBAQCBzdGF0aWMgdm9pZCBzb2Z0 X3RpbWVyX2NhbmNlbChzdHJ1Y3QgaHJ0aW1lciAqaHJ0KQo+ID4gIHN0YXRpYyBpcnFyZXR1cm5f dCBrdm1fYXJjaF90aW1lcl9oYW5kbGVyKGludCBpcnEsIHZvaWQgKmRldl9pZCkKPiA+ICB7Cj4g PiAgCXN0cnVjdCBrdm1fdmNwdSAqdmNwdSA9ICooc3RydWN0IGt2bV92Y3B1ICoqKWRldl9pZDsK PiA+IC0Jc3RydWN0IGFyY2hfdGltZXJfY29udGV4dCAqdnRpbWVyOwo+ID4gKwlzdHJ1Y3QgYXJj aF90aW1lcl9jb250ZXh0ICpjdHg7Cj4gPiAgCj4gPiAgCS8qCj4gPiAgCSAqIFdlIG1heSBzZWUg YSB0aW1lciBpbnRlcnJ1cHQgYWZ0ZXIgdmNwdV9wdXQoKSBoYXMgYmVlbiBjYWxsZWQgd2hpY2gK PiA+ICAJICogc2V0cyB0aGUgQ1BVJ3MgdmNwdSBwb2ludGVyIHRvIE5VTEwsIGJlY2F1c2UgZXZl biB0aG91Z2ggdGhlIHRpbWVyCj4gPiAtCSAqIGhhcyBiZWVuIGRpc2FibGVkIGluIHZ0aW1lcl9z YXZlX3N0YXRlKCksIHRoZSBoYXJkd2FyZSBpbnRlcnJ1cHQKPiA+ICsJICogaGFzIGJlZW4gZGlz YWJsZWQgaW4gdGltZXJfc2F2ZV9zdGF0ZSgpLCB0aGUgaGFyZHdhcmUgaW50ZXJydXB0Cj4gPiAg CSAqIHNpZ25hbCBtYXkgbm90IGhhdmUgYmVlbiByZXRpcmVkIGZyb20gdGhlIGludGVycnVwdCBj b250cm9sbGVyIHlldC4KPiA+ICAJICovCj4gPiAgCWlmICghdmNwdSkKPiA+ICAJCXJldHVybiBJ UlFfSEFORExFRDsKPiA+ICAKPiA+IC0JdnRpbWVyID0gdmNwdV92dGltZXIodmNwdSk7Cj4gPiAt CWlmIChrdm1fdGltZXJfc2hvdWxkX2ZpcmUodnRpbWVyKSkKPiA+IC0JCWt2bV90aW1lcl91cGRh dGVfaXJxKHZjcHUsIHRydWUsIHZ0aW1lcik7Cj4gPiArCWlmIChpcnEgPT0gaG9zdF92dGltZXJf aXJxKQo+ID4gKwkJY3R4ID0gdmNwdV92dGltZXIodmNwdSk7Cj4gPiArCWVsc2UKPiA+ICsJCWN0 eCA9IHZjcHVfcHRpbWVyKHZjcHUpOwo+ID4gKwo+ID4gKwlpZiAoa3ZtX3RpbWVyX3Nob3VsZF9m aXJlKGN0eCkpCj4gPiArCQlrdm1fdGltZXJfdXBkYXRlX2lycSh2Y3B1LCB0cnVlLCBjdHgpOwo+ ID4gIAo+ID4gIAlpZiAodXNlcnNwYWNlX2lycWNoaXAodmNwdS0+a3ZtKSAmJgo+ID4gIAkgICAg IXN0YXRpY19icmFuY2hfdW5saWtlbHkoJmhhc19naWNfYWN0aXZlX3N0YXRlKSkKPiA+IEBAIC0y MDgsMTMgKzIxNCwyNSBAQCBzdGF0aWMgZW51bSBocnRpbWVyX3Jlc3RhcnQga3ZtX3BoeXNfdGlt ZXJfZXhwaXJlKHN0cnVjdCBocnRpbWVyICpocnQpCj4gPiAgc3RhdGljIGJvb2wga3ZtX3RpbWVy X3Nob3VsZF9maXJlKHN0cnVjdCBhcmNoX3RpbWVyX2NvbnRleHQgKnRpbWVyX2N0eCkKPiA+ICB7 Cj4gPiAgCXN0cnVjdCBhcmNoX3RpbWVyX2NwdSAqdGltZXIgPSB2Y3B1X3RpbWVyKHRpbWVyX2N0 eC0+dmNwdSk7Cj4gPiArCWVudW0ga3ZtX2FyY2hfdGltZXJzIGluZGV4ID0gYXJjaF90aW1lcl9j dHhfaW5kZXgodGltZXJfY3R4KTsKPiA+ICAJdTY0IGN2YWwsIG5vdzsKPiA+ICAKPiA+ICAJaWYg KHRpbWVyLT5sb2FkZWQgPT0gVElNRVJfRUwxX0xPQURFRCkgewo+ID4gLQkJdTMyIGNudF9jdGw7 Cj4gPiArCQl1MzIgY250X2N0bCA9IDA7Cj4gPiArCj4gPiArCQlzd2l0Y2ggKGluZGV4KSB7Cj4g PiArCQljYXNlIFRJTUVSX1ZUSU1FUjoKPiA+ICsJCQljbnRfY3RsID0gcmVhZF9zeXNyZWdfZWww KGNudHZfY3RsKTsKPiA+ICsJCQlicmVhazsKPiA+ICsJCWNhc2UgVElNRVJfUFRJTUVSOgo+ID4g KwkJCWNudF9jdGwgPSByZWFkX3N5c3JlZ19lbDAoY250cF9jdGwpOwo+ID4gKwkJCWJyZWFrOwo+ ID4gKwkJY2FzZSBOUl9LVk1fVElNRVJTOgo+ID4gKwkJCS8qIEdDQyBpcyBicmFpbmRlYWQgKi8K PiA+ICsJCQljbnRfY3RsID0gMDsKPiA+ICsJCQlicmVhazsKPiA+ICsJCX0KPiA+ICAKPiA+IC0J CS8qIE9ubHkgdGhlIHZpcnR1YWwgdGltZXIgY2FuIGJlIGxvYWRlZCBzbyBmYXIgKi8KPiA+IC0J CWNudF9jdGwgPSByZWFkX3N5c3JlZ19lbDAoY250dl9jdGwpOwo+ID4gIAkJcmV0dXJuICAoY250 X2N0bCAmIEFSQ0hfVElNRVJfQ1RSTF9FTkFCTEUpICYmCj4gPiAgCQkgICAgICAgIChjbnRfY3Rs ICYgQVJDSF9USU1FUl9DVFJMX0lUX1NUQVQpICYmCj4gPiAgCQkgICAgICAgIShjbnRfY3RsICYg QVJDSF9USU1FUl9DVFJMX0lUX01BU0spOwo+ID4gQEAgLTMxMCw3ICszMjgsNyBAQCBzdGF0aWMg dm9pZCBrdm1fdGltZXJfdXBkYXRlX3N0YXRlKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSkKPiA+ICAJ CXJldHVybjsKPiA+ICAKPiA+ICAJLyoKPiA+IC0JICogVGhlIHZ0aW1lciB2aXJ0dWFsIGludGVy cnVwdCBpcyBhICdtYXBwZWQnIGludGVycnVwdCwgbWVhbmluZyBwYXJ0Cj4gPiArCSAqIElmIHRo ZSB0aW1lciB2aXJ0dWFsIGludGVycnVwdCBpcyBhICdtYXBwZWQnIGludGVycnVwdCwgcGFydAo+ ID4gIAkgKiBvZiBpdHMgbGlmZWN5Y2xlIGlzIG9mZmxvYWRlZCB0byB0aGUgaGFyZHdhcmUsIGFu ZCB3ZSB0aGVyZWZvcmUgbWF5Cj4gPiAgCSAqIG5vdCBoYXZlIGxvd2VyZWQgdGhlIGlycS5sZXZl bCB2YWx1ZSBiZWZvcmUgaGF2aW5nIHRvIHNpZ25hbCBhIG5ldwo+ID4gIAkgKiBpbnRlcnJ1cHQs IGJ1dCBoYXZlIHRvIHNpZ25hbCBhbiBpbnRlcnJ1cHQgZXZlcnkgdGltZSB0aGUgbGV2ZWwgaXMK PiA+IEBAIC0zMTksMzEgKzMzNyw1NSBAQCBzdGF0aWMgdm9pZCBrdm1fdGltZXJfdXBkYXRlX3N0 YXRlKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSkKPiA+ICAJbGV2ZWwgPSBrdm1fdGltZXJfc2hvdWxk X2ZpcmUodnRpbWVyKTsKPiA+ICAJa3ZtX3RpbWVyX3VwZGF0ZV9pcnEodmNwdSwgbGV2ZWwsIHZ0 aW1lcik7Cj4gPiAgCj4gPiArCWlmIChoYXNfdmhlKCkpIHsKPiAKPiBOb3QgcmVhbGx5IGNyaXRp Y2FsLCBidXQgd291bGRuJ3QgaXQgYmUgY2xlYW5lciB0byB1c2UgImlmCj4gKGhvc3RfcHRpbWVy X2lycSA+IDApIiBoZXJlIHRvIGNoZWNrIGlmIHdlIG1hcCB0aGUgcGh5cyB0aW1lciBhcyB3ZWxs Pwo+IFRoaXMgaXMgYXQgbGVhc3QgaG93IHdlIG9yaWdpbmFsbHkgZGVyaXZlIHRoZSBkZWNpc2lv biB0byBpbml0aWFsaXNlCj4gZXZlcnl0aGluZyBpbiBrdm1fdGltZXJfaHlwX2luaXQoKSBiZWxv dy4gQXBwbGllcyB0byB0aGUgb3RoZXIgaW5zdGFuY2VzCj4gb2YgImlmIChoYXNfdmhlKCkpIiBh cyB3ZWxsLgo+IEJ1dCBJIGd1ZXNzIHdlIHVzZSBoYXNfdmhlKCkgYmVjYXVzZSBpdCdzIGEgc3Rh dGljIGtleT8gSW4gdGhpcyBjYXNlCj4gd291bGQgaXQgYmUgd29ydGggdG8gZGVmaW5lIHNvbWUg Y29zbWV0aWMgd3JhcHBlciwgdG8gaW1wcm92ZSByZWFkYWJpbGl0eT8KPiAKPiA+ICsJCWxldmVs ID0ga3ZtX3RpbWVyX3Nob3VsZF9maXJlKHB0aW1lcik7Cj4gPiArCQlrdm1fdGltZXJfdXBkYXRl X2lycSh2Y3B1LCBsZXZlbCwgcHRpbWVyKTsKPiA+ICsKPiA+ICsJCXJldHVybjsKPiA+ICsJfQo+ ID4gKwo+ID4gIAlwaHlzX3RpbWVyX2VtdWxhdGUodmNwdSk7Cj4gPiAgCj4gPiAgCWlmIChrdm1f dGltZXJfc2hvdWxkX2ZpcmUocHRpbWVyKSAhPSBwdGltZXItPmlycS5sZXZlbCkKPiA+ICAJCWt2 bV90aW1lcl91cGRhdGVfaXJxKHZjcHUsICFwdGltZXItPmlycS5sZXZlbCwgcHRpbWVyKTsKPiA+ ICB9Cj4gPiAgCj4gPiAtc3RhdGljIHZvaWQgdnRpbWVyX3NhdmVfc3RhdGUoc3RydWN0IGt2bV92 Y3B1ICp2Y3B1KQo+ID4gK3N0YXRpYyB2b2lkIHRpbWVyX3NhdmVfc3RhdGUoc3RydWN0IGFyY2hf dGltZXJfY29udGV4dCAqY3R4KQo+ID4gIHsKPiA+IC0Jc3RydWN0IGFyY2hfdGltZXJfY3B1ICp0 aW1lciA9IHZjcHVfdGltZXIodmNwdSk7Cj4gPiAtCXN0cnVjdCBhcmNoX3RpbWVyX2NvbnRleHQg KnZ0aW1lciA9IHZjcHVfdnRpbWVyKHZjcHUpOwo+ID4gKwlzdHJ1Y3QgYXJjaF90aW1lcl9jcHUg KnRpbWVyID0gdmNwdV90aW1lcihjdHgtPnZjcHUpOwo+ID4gKwllbnVtIGt2bV9hcmNoX3RpbWVy cyBpbmRleCA9IGFyY2hfdGltZXJfY3R4X2luZGV4KGN0eCk7Cj4gPiAgCXVuc2lnbmVkIGxvbmcg ZmxhZ3M7Cj4gPiAgCj4gPiArCWlmICghdGltZXItPmVuYWJsZWQpCj4gPiArCQlyZXR1cm47Cj4g PiArCj4gPiAgCWxvY2FsX2lycV9zYXZlKGZsYWdzKTsKPiA+ICAKPiA+ICAJaWYgKHRpbWVyLT5s b2FkZWQgPT0gVElNRVJfTk9UX0xPQURFRCkKPiA+ICAJCWdvdG8gb3V0Owo+ID4gIAo+ID4gLQlp ZiAodGltZXItPmVuYWJsZWQpIHsKPiA+IC0JCXZ0aW1lci0+Y250X2N0bCA9IHJlYWRfc3lzcmVn X2VsMChjbnR2X2N0bCk7Cj4gPiAtCQl2dGltZXItPmNudF9jdmFsID0gcmVhZF9zeXNyZWdfZWww KGNudHZfY3ZhbCk7Cj4gPiAtCX0KPiA+ICsJc3dpdGNoIChpbmRleCkgewo+ID4gKwljYXNlIFRJ TUVSX1ZUSU1FUjoKPiA+ICsJCWN0eC0+Y250X2N0bCA9IHJlYWRfc3lzcmVnX2VsMChjbnR2X2N0 bCk7Cj4gPiArCQljdHgtPmNudF9jdmFsID0gcmVhZF9zeXNyZWdfZWwwKGNudHZfY3ZhbCk7Cj4g PiAgCj4gPiAtCS8qIERpc2FibGUgdGhlIHZpcnR1YWwgdGltZXIgKi8KPiA+IC0Jd3JpdGVfc3lz cmVnX2VsMCgwLCBjbnR2X2N0bCk7Cj4gPiAtCWlzYigpOwo+ID4gKwkJLyogRGlzYWJsZSB0aGUg dGltZXIgKi8KPiA+ICsJCXdyaXRlX3N5c3JlZ19lbDAoMCwgY250dl9jdGwpOwo+ID4gKwkJaXNi KCk7Cj4gPiArCj4gPiArCQlicmVhazsKPiA+ICsJY2FzZSBUSU1FUl9QVElNRVI6Cj4gPiArCQlj dHgtPmNudF9jdGwgPSByZWFkX3N5c3JlZ19lbDAoY250cF9jdGwpOwo+ID4gKwkJY3R4LT5jbnRf Y3ZhbCA9IHJlYWRfc3lzcmVnX2VsMChjbnRwX2N2YWwpOwo+ID4gKwo+ID4gKwkJLyogRGlzYWJs ZSB0aGUgdGltZXIgKi8KPiA+ICsJCXdyaXRlX3N5c3JlZ19lbDAoMCwgY250cF9jdGwpOwo+ID4g KwkJaXNiKCk7Cj4gPiArCj4gPiArCQlicmVhazsKPiA+ICsJY2FzZSBOUl9LVk1fVElNRVJTOgo+ ID4gKwkJYnJlYWs7IC8qIEdDQyBpcyBicmFpbmRlYWQgKi8KPiA+ICsJfQo+ID4gIAo+ID4gIAl0 aW1lci0+bG9hZGVkID0gVElNRVJfTk9UX0xPQURFRDsKPiA+ICBvdXQ6Cj4gPiBAQCAtMzgyLDIx ICs0MjQsMzMgQEAgc3RhdGljIHZvaWQga3ZtX3RpbWVyX3VuYmxvY2tpbmcoc3RydWN0IGt2bV92 Y3B1ICp2Y3B1KQo+ID4gIAlzb2Z0X3RpbWVyX2NhbmNlbCgmdGltZXItPmJnX3RpbWVyKTsKPiA+ ICB9Cj4gPiAgCj4gPiAtc3RhdGljIHZvaWQgdnRpbWVyX3Jlc3RvcmVfc3RhdGUoc3RydWN0IGt2 bV92Y3B1ICp2Y3B1KQo+ID4gK3N0YXRpYyB2b2lkIHRpbWVyX3Jlc3RvcmVfc3RhdGUoc3RydWN0 IGFyY2hfdGltZXJfY29udGV4dCAqY3R4KQo+ID4gIHsKPiA+IC0Jc3RydWN0IGFyY2hfdGltZXJf Y3B1ICp0aW1lciA9IHZjcHVfdGltZXIodmNwdSk7Cj4gPiAtCXN0cnVjdCBhcmNoX3RpbWVyX2Nv bnRleHQgKnZ0aW1lciA9IHZjcHVfdnRpbWVyKHZjcHUpOwo+ID4gKwlzdHJ1Y3QgYXJjaF90aW1l cl9jcHUgKnRpbWVyID0gdmNwdV90aW1lcihjdHgtPnZjcHUpOwo+ID4gKwllbnVtIGt2bV9hcmNo X3RpbWVycyBpbmRleCA9IGFyY2hfdGltZXJfY3R4X2luZGV4KGN0eCk7Cj4gPiAgCXVuc2lnbmVk IGxvbmcgZmxhZ3M7Cj4gPiAgCj4gPiArCWlmICghdGltZXItPmVuYWJsZWQpCj4gPiArCQlyZXR1 cm47Cj4gPiArCj4gPiAgCWxvY2FsX2lycV9zYXZlKGZsYWdzKTsKPiA+ICAKPiA+ICAJaWYgKHRp bWVyLT5sb2FkZWQgPT0gVElNRVJfRUwxX0xPQURFRCkKPiA+ICAJCWdvdG8gb3V0Owo+ID4gIAo+ ID4gLQlpZiAodGltZXItPmVuYWJsZWQpIHsKPiA+IC0JCXdyaXRlX3N5c3JlZ19lbDAodnRpbWVy LT5jbnRfY3ZhbCwgY250dl9jdmFsKTsKPiA+ICsJc3dpdGNoIChpbmRleCkgewo+ID4gKwljYXNl IFRJTUVSX1ZUSU1FUjoKPiA+ICsJCXdyaXRlX3N5c3JlZ19lbDAoY3R4LT5jbnRfY3ZhbCwgY250 dl9jdmFsKTsKPiA+ICsJCWlzYigpOwo+ID4gKwkJd3JpdGVfc3lzcmVnX2VsMChjdHgtPmNudF9j dGwsIGNudHZfY3RsKTsKPiA+ICsJCWJyZWFrOwo+ID4gKwljYXNlIFRJTUVSX1BUSU1FUjoKPiA+ ICsJCXdyaXRlX3N5c3JlZ19lbDAoY3R4LT5jbnRfY3ZhbCwgY250cF9jdmFsKTsKPiA+ICAJCWlz YigpOwo+ID4gLQkJd3JpdGVfc3lzcmVnX2VsMCh2dGltZXItPmNudF9jdGwsIGNudHZfY3RsKTsK PiA+ICsJCXdyaXRlX3N5c3JlZ19lbDAoY3R4LT5jbnRfY3RsLCBjbnRwX2N0bCk7Cj4gPiArCQli cmVhazsKPiA+ICsJY2FzZSBOUl9LVk1fVElNRVJTOgo+ID4gKwkJYnJlYWs7IC8qIEdDQyBpcyBi cmFpbmRlYWQgKi8KPiA+ICAJfQo+ID4gIAo+ID4gIAl0aW1lci0+bG9hZGVkID0gVElNRVJfRUwx X0xPQURFRDsKPiA+IEBAIC00MTksMjMgKzQ3MywyMyBAQCBzdGF0aWMgdm9pZCBzZXRfY250dm9m Zih1NjQgY250dm9mZikKPiA+ICAJa3ZtX2NhbGxfaHlwKF9fa3ZtX3RpbWVyX3NldF9jbnR2b2Zm LCBsb3csIGhpZ2gpOwo+ID4gIH0KPiA+ICAKPiA+IC1zdGF0aWMgaW5saW5lIHZvaWQgc2V0X3Z0 aW1lcl9pcnFfcGh5c19hY3RpdmUoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCBib29sIGFjdGl2ZSkK PiA+ICtzdGF0aWMgaW5saW5lIHZvaWQgc2V0X3RpbWVyX2lycV9waHlzX2FjdGl2ZShzdHJ1Y3Qg YXJjaF90aW1lcl9jb250ZXh0ICpjdHgsIGJvb2wgYWN0aXZlKQo+ID4gIHsKPiA+ICAJaW50IHI7 Cj4gPiAtCXIgPSBpcnFfc2V0X2lycWNoaXBfc3RhdGUoaG9zdF92dGltZXJfaXJxLCBJUlFDSElQ X1NUQVRFX0FDVElWRSwgYWN0aXZlKTsKPiA+ICsJciA9IGlycV9zZXRfaXJxY2hpcF9zdGF0ZShj dHgtPmhvc3RfdGltZXJfaXJxLCBJUlFDSElQX1NUQVRFX0FDVElWRSwgYWN0aXZlKTsKPiA+ICAJ V0FSTl9PTihyKTsKPiA+ICB9Cj4gPiAgCj4gPiAtc3RhdGljIHZvaWQga3ZtX3RpbWVyX3ZjcHVf bG9hZF9naWMoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KQo+ID4gK3N0YXRpYyB2b2lkIGt2bV90aW1l cl92Y3B1X2xvYWRfZ2ljKHN0cnVjdCBhcmNoX3RpbWVyX2NvbnRleHQgKmN0eCkKPiA+ICB7Cj4g PiAtCXN0cnVjdCBhcmNoX3RpbWVyX2NvbnRleHQgKnZ0aW1lciA9IHZjcHVfdnRpbWVyKHZjcHUp Owo+ID4gKwlzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUgPSBjdHgtPnZjcHU7Cj4gPiAgCWJvb2wgcGh5 c19hY3RpdmU7Cj4gPiAgCj4gPiAgCWlmIChpcnFjaGlwX2luX2tlcm5lbCh2Y3B1LT5rdm0pKQo+ ID4gLQkJcGh5c19hY3RpdmUgPSBrdm1fdmdpY19tYXBfaXNfYWN0aXZlKHZjcHUsIHZ0aW1lci0+ aXJxLmlycSk7Cj4gPiArCQlwaHlzX2FjdGl2ZSA9IGt2bV92Z2ljX21hcF9pc19hY3RpdmUodmNw dSwgY3R4LT5pcnEuaXJxKTsKPiA+ICAJZWxzZQo+ID4gLQkJcGh5c19hY3RpdmUgPSB2dGltZXIt PmlycS5sZXZlbDsKPiA+IC0Jc2V0X3Z0aW1lcl9pcnFfcGh5c19hY3RpdmUodmNwdSwgcGh5c19h Y3RpdmUpOwo+ID4gKwkJcGh5c19hY3RpdmUgPSBjdHgtPmlycS5sZXZlbDsKPiA+ICsJc2V0X3Rp bWVyX2lycV9waHlzX2FjdGl2ZShjdHgsIHBoeXNfYWN0aXZlKTsKPiA+ICB9Cj4gPiAgCj4gPiAg c3RhdGljIHZvaWQga3ZtX3RpbWVyX3ZjcHVfbG9hZF9ub2dpYyhzdHJ1Y3Qga3ZtX3ZjcHUgKnZj cHUpCj4gPiBAQCAtNDY3LDE0ICs1MjEsMjIgQEAgdm9pZCBrdm1fdGltZXJfdmNwdV9sb2FkKHN0 cnVjdCBrdm1fdmNwdSAqdmNwdSkKPiA+ICAJaWYgKHVubGlrZWx5KCF0aW1lci0+ZW5hYmxlZCkp Cj4gPiAgCQlyZXR1cm47Cj4gPiAgCj4gPiAtCWlmIChzdGF0aWNfYnJhbmNoX2xpa2VseSgmaGFz X2dpY19hY3RpdmVfc3RhdGUpKQo+ID4gLQkJa3ZtX3RpbWVyX3ZjcHVfbG9hZF9naWModmNwdSk7 Cj4gPiAtCWVsc2UKPiA+ICsJaWYgKHN0YXRpY19icmFuY2hfbGlrZWx5KCZoYXNfZ2ljX2FjdGl2 ZV9zdGF0ZSkpIHsKPiA+ICsJCWt2bV90aW1lcl92Y3B1X2xvYWRfZ2ljKHZ0aW1lcik7Cj4gPiAr CQlpZiAoaGFzX3ZoZSgpKQo+ID4gKwkJCWt2bV90aW1lcl92Y3B1X2xvYWRfZ2ljKHB0aW1lcik7 Cj4gPiArCX0gZWxzZSB7Cj4gPiAgCQlrdm1fdGltZXJfdmNwdV9sb2FkX25vZ2ljKHZjcHUpOwo+ ID4gKwl9Cj4gPiAgCj4gPiAgCXNldF9jbnR2b2ZmKHZ0aW1lci0+Y250dm9mZik7Cj4gPiAgCj4g PiAtCXZ0aW1lcl9yZXN0b3JlX3N0YXRlKHZjcHUpOwo+ID4gKwl0aW1lcl9yZXN0b3JlX3N0YXRl KHZ0aW1lcik7Cj4gPiArCj4gPiArCWlmIChoYXNfdmhlKCkpIHsKPiA+ICsJCXRpbWVyX3Jlc3Rv cmVfc3RhdGUocHRpbWVyKTsKPiA+ICsJCXJldHVybjsKPiA+ICsJfQo+ID4gIAo+ID4gIAkvKiBT ZXQgdGhlIGJhY2tncm91bmQgdGltZXIgZm9yIHRoZSBwaHlzaWNhbCB0aW1lciBlbXVsYXRpb24u ICovCj4gPiAgCXBoeXNfdGltZXJfZW11bGF0ZSh2Y3B1KTsKPiA+IEBAIC01MDYsMTIgKzU2OCwx NyBAQCBib29sIGt2bV90aW1lcl9zaG91bGRfbm90aWZ5X3VzZXIoc3RydWN0IGt2bV92Y3B1ICp2 Y3B1KQo+ID4gIHZvaWQga3ZtX3RpbWVyX3ZjcHVfcHV0KHN0cnVjdCBrdm1fdmNwdSAqdmNwdSkK PiA+ICB7Cj4gPiAgCXN0cnVjdCBhcmNoX3RpbWVyX2NwdSAqdGltZXIgPSB2Y3B1X3RpbWVyKHZj cHUpOwo+ID4gKwlzdHJ1Y3QgYXJjaF90aW1lcl9jb250ZXh0ICp2dGltZXIgPSB2Y3B1X3Z0aW1l cih2Y3B1KTsKPiA+ICAJc3RydWN0IGFyY2hfdGltZXJfY29udGV4dCAqcHRpbWVyID0gdmNwdV9w dGltZXIodmNwdSk7Cj4gPiAgCj4gPiAgCWlmICh1bmxpa2VseSghdGltZXItPmVuYWJsZWQpKQo+ ID4gIAkJcmV0dXJuOwo+ID4gIAo+ID4gLQl2dGltZXJfc2F2ZV9zdGF0ZSh2Y3B1KTsKPiA+ICsJ dGltZXJfc2F2ZV9zdGF0ZSh2dGltZXIpOwo+ID4gKwlpZiAoaGFzX3ZoZSgpKSB7Cj4gPiArCQl0 aW1lcl9zYXZlX3N0YXRlKHB0aW1lcik7Cj4gPiArCQlyZXR1cm47Cj4gPiArCX0KPiA+ICAKPiA+ ICAJLyoKPiA+ICAJICogQ2FuY2VsIHRoZSBwaHlzaWNhbCB0aW1lciBlbXVsYXRpb24sIGJlY2F1 c2UgdGhlIG9ubHkgY2FzZSB3aGVyZSB3ZQo+ID4gQEAgLTUzNCw4ICs2MDEsNyBAQCB2b2lkIGt2 bV90aW1lcl92Y3B1X3B1dChzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpCj4gPiAgCSAqIGNvdW50ZXIg b2Ygbm9uLVZIRSBjYXNlLiBGb3IgVkhFLCB0aGUgdmlydHVhbCBjb3VudGVyIHVzZXMgYSBmaXhl ZAo+ID4gIAkgKiB2aXJ0dWFsIG9mZnNldCBvZiB6ZXJvLCBzbyBubyBuZWVkIHRvIHplcm8gQ05U Vk9GRl9FTDIgcmVnaXN0ZXIuCj4gPiAgCSAqLwo+ID4gLQlpZiAoIWhhc192aGUoKSkKPiA+IC0J CXNldF9jbnR2b2ZmKDApOwo+ID4gKwlzZXRfY250dm9mZigwKTsKPiA+ICB9Cj4gPiAgCj4gPiAg LyoKPiA+IEBAIC01NTAsNyArNjE2LDcgQEAgc3RhdGljIHZvaWQgdW5tYXNrX3Z0aW1lcl9pcnFf dXNlcihzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpCj4gPiAgCWlmICgha3ZtX3RpbWVyX3Nob3VsZF9m aXJlKHZ0aW1lcikpIHsKPiA+ICAJCWt2bV90aW1lcl91cGRhdGVfaXJxKHZjcHUsIGZhbHNlLCB2 dGltZXIpOwo+ID4gIAkJaWYgKHN0YXRpY19icmFuY2hfbGlrZWx5KCZoYXNfZ2ljX2FjdGl2ZV9z dGF0ZSkpCj4gPiAtCQkJc2V0X3Z0aW1lcl9pcnFfcGh5c19hY3RpdmUodmNwdSwgZmFsc2UpOwo+ ID4gKwkJCXNldF90aW1lcl9pcnFfcGh5c19hY3RpdmUodnRpbWVyLCBmYWxzZSk7Cj4gPiAgCQll bHNlCj4gPiAgCQkJZW5hYmxlX3BlcmNwdV9pcnEoaG9zdF92dGltZXJfaXJxLCBob3N0X3Z0aW1l cl9pcnFfZmxhZ3MpOwo+ID4gIAl9Cj4gPiBAQCAtNjI1LDcgKzY5MSwxMiBAQCB2b2lkIGt2bV90 aW1lcl92Y3B1X2luaXQoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KQo+ID4gIAlwdGltZXItPmhydGlt ZXIuZnVuY3Rpb24gPSBrdm1fcGh5c190aW1lcl9leHBpcmU7Cj4gPiAgCj4gPiAgCXZ0aW1lci0+ aXJxLmlycSA9IGRlZmF1bHRfdnRpbWVyX2lycS5pcnE7Cj4gPiArCXZ0aW1lci0+aG9zdF90aW1l cl9pcnEgPSBob3N0X3Z0aW1lcl9pcnE7Cj4gPiArCXZ0aW1lci0+aG9zdF90aW1lcl9pcnFfZmxh Z3MgPSBob3N0X3Z0aW1lcl9pcnFfZmxhZ3M7Cj4gPiArCj4gPiAgCXB0aW1lci0+aXJxLmlycSA9 IGRlZmF1bHRfcHRpbWVyX2lycS5pcnE7Cj4gPiArCXB0aW1lci0+aG9zdF90aW1lcl9pcnEgPSBo b3N0X3B0aW1lcl9pcnE7Cj4gPiArCXB0aW1lci0+aG9zdF90aW1lcl9pcnFfZmxhZ3MgPSBob3N0 X3B0aW1lcl9pcnFfZmxhZ3M7Cj4gPiAgCj4gPiAgCXZ0aW1lci0+dmNwdSA9IHZjcHU7Cj4gPiAg CXB0aW1lci0+dmNwdSA9IHZjcHU7Cj4gPiBAQCAtNjM0LDYgKzcwNSw3IEBAIHZvaWQga3ZtX3Rp bWVyX3ZjcHVfaW5pdChzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpCj4gPiAgc3RhdGljIHZvaWQga3Zt X3RpbWVyX2luaXRfaW50ZXJydXB0KHZvaWQgKmluZm8pCj4gPiAgewo+ID4gIAllbmFibGVfcGVy Y3B1X2lycShob3N0X3Z0aW1lcl9pcnEsIGhvc3RfdnRpbWVyX2lycV9mbGFncyk7Cj4gPiArCWVu YWJsZV9wZXJjcHVfaXJxKGhvc3RfcHRpbWVyX2lycSwgaG9zdF9wdGltZXJfaXJxX2ZsYWdzKTsK PiAKPiBTaG91bGRuJ3Qgd2Ugb25seSBlbmFibGUgaG9zdF9wdGltZXJfaXJxKCkgaWYgd2UgYWN0 dWFsbHkgcGFzcyB0aGlzIG9uCj4gaGVyZT8gU28gZWl0aGVyIGd1YXJkZWQgYnkgaGFzX3ZoZSgp IG9yIChob3N0X3B0aW1lcl9pcnEgPiAwKT8KPiBPdGhlcndpc2Ugd2Ugd291bGQgZW5hYmxlIElS USAwPwo+IAoKSSB0aGluayB0aGUgcmlnaHQgZml4IGlzIHRvIHJhaXNlIGFuIGVycm9yIGlmIGEg VkhFIHN5c3RlbSBkb2Vzbid0IGdpdmUKdXMgYSB2YWxpZCBwaHlzaWNhbCBpcnEgbnVtYmVyIGR1 cmluZyBpbml0LCBhbmQgdGhlbiBsZWF2ZSB0aGUgY2hlY2tzCmZvciBoYXNfdmhlKCkgaGVyZS4K ClRoYW5rcywKCiAgICBDaHJpc3RvZmZlcgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fXwprdm1hcm0gbWFpbGluZyBsaXN0Cmt2bWFybUBsaXN0cy5jcy5jb2x1 bWJpYS5lZHUKaHR0cHM6Ly9saXN0cy5jcy5jb2x1bWJpYS5lZHUvbWFpbG1hbi9saXN0aW5mby9r dm1hcm0K From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-8.6 required=3.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_PASS,USER_AGENT_MUTT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 0BED0C43381 for ; Tue, 19 Feb 2019 12:44:17 +0000 (UTC) Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id CD8B82146E for ; Tue, 19 Feb 2019 12:44:16 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="J8sNKJM6" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org CD8B82146E Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=arm.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+infradead-linux-arm-kernel=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:In-Reply-To:MIME-Version:References: Message-ID:Subject:To:From:Date:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=se3HBWwozS7zFUaUR7P31K7sAbZ8OZCj39SdT7MtFGA=; b=J8sNKJM6yMkYSx l5nmT/m0Tfx8AfuvkFW8jhfbGhTQqyYqjT95jqBNhgVLYukgWBT7CsH30p0PDBvV+Cx7nwQenFogV NIxuHScNspNs3hwuKF+z+zEuPygwLcQ8tRFJUopwFe06uumXgM9nC7JYD6QVhAAgH/7CA+y8+GRyO zjT9IhF6Md5humuSo9crpeeWWDawXljzv3Ptc+Xrf+aCf0tFkqyORVLyxKyX5/+g17W4/hvVgjgFX FLGE1VwQ/6G+PboW99i7YYpIoUGLbW+X8Fi2RouqWXo8lE+YD+HoVx9xBaNkAE3qOQi0FomPnnZWG 7Lmuwnlb3JyJ1IXMWdtw==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.90_1 #2 (Red Hat Linux)) id 1gw4ks-0004wJ-3i; Tue, 19 Feb 2019 12:44:10 +0000 Received: from foss.arm.com ([217.140.101.70]) by bombadil.infradead.org with esmtp (Exim 4.90_1 #2 (Red Hat Linux)) id 1gw4kn-0004vl-UR for linux-arm-kernel@lists.infradead.org; Tue, 19 Feb 2019 12:44:08 +0000 Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.72.51.249]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id EB5B3EBD; Tue, 19 Feb 2019 04:43:51 -0800 (PST) Received: from localhost (e113682-lin.copenhagen.arm.com [10.32.144.41]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 5C2613F720; Tue, 19 Feb 2019 04:43:51 -0800 (PST) Date: Tue, 19 Feb 2019 13:43:49 +0100 From: Christoffer Dall To: =?utf-8?B?QW5kcsOp?= Przywara Subject: Re: [PATCH 12/14] KVM: arm/arm64: arch_timer: Assign the phys timer on VHE systems Message-ID: <20190219124349.GD28113@e113682-lin.lund.arm.com> References: <20190124140032.8588-1-christoffer.dall@arm.com> <20190124140032.8588-13-christoffer.dall@arm.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.24 (2015-08-30) X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20190219_044405_997039_C384C9D7 X-CRM114-Status: GOOD ( 32.57 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Marc Zyngier , kvmarm@lists.cs.columbia.edu, linux-arm-kernel@lists.infradead.org, kvm@vger.kernel.org Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+infradead-linux-arm-kernel=archiver.kernel.org@lists.infradead.org T24gTW9uLCBGZWIgMTgsIDIwMTkgYXQgMDM6MTA6NDlQTSArMDAwMCwgQW5kcsOpIFByenl3YXJh IHdyb3RlOgo+IE9uIFRodSwgMjQgSmFuIDIwMTkgMTU6MDA6MzAgKzAxMDAKPiBDaHJpc3RvZmZl ciBEYWxsIDxjaHJpc3RvZmZlci5kYWxsQGFybS5jb20+IHdyb3RlOgo+IAo+IEhpLAo+IAo+ID4g VkhFIHN5c3RlbXMgZG9uJ3QgaGF2ZSB0byBlbXVsYXRlIHRoZSBwaHlzaWNhbCB0aW1lciwgd2Ug Y2FuIHNpbXBseQo+ID4gYXNzaWduZSB0aGUgRUwxIHBoeXNpY2FsIHRpbWVyIGRpcmVjdGx5IHRv IHRoZSBWTSBhcyB0aGUgaG9zdCBhbHdheXMKPiA+IHVzZXMgdGhlIEVMMiB0aW1lcnMuCj4gPiAK PiA+IEluIG9yZGVyIHRvIG1pbmltaXplIHRoZSBhbW91bnQgb2YgY3J1ZnQsIEFBcmNoMzIgZ2V0 cyBkZWZpbml0aW9ucyBmb3IKPiA+IHRoZSBwaHlzaWNhbCB0aW1lciB0b28sIGJ1dCBpcyBzaG91 bGQgYmUgZ2VuZXJhbGx5IHVudXNlZCBvbiB0aGlzCj4gPiBhcmNoaXRlY3R1cmUuCj4gPiAKPiA+ IENvLXdyaXR0ZW4gd2l0aCBNYXJjIFp5bmdpZXIgPG1hcmMuenluZ2llckBhcm0uY29tPgo+ID4g Cj4gPiBTaWduZWQtb2ZmLWJ5OiBNYXJjIFp5bmdpZXIgPG1hcmMuenluZ2llckBhcm0uY29tPgo+ ID4gU2lnbmVkLW9mZi1ieTogQ2hyaXN0b2ZmZXIgRGFsbCA8Y2hyaXN0b2ZmZXIuZGFsbEBhcm0u Y29tPgo+ID4gLS0tCj4gPiAgYXJjaC9hcm0vaW5jbHVkZS9hc20va3ZtX2h5cC5oIHwgICA0ICsK PiA+ICBpbmNsdWRlL2t2bS9hcm1fYXJjaF90aW1lci5oICAgfCAgIDYgKwo+ID4gIHZpcnQva3Zt L2FybS9hcmNoX3RpbWVyLmMgICAgICB8IDIwNiArKysrKysrKysrKysrKysrKysrKysrKysrKy0t LS0tLS0KPiA+ICAzIGZpbGVzIGNoYW5nZWQsIDE3MSBpbnNlcnRpb25zKCspLCA0NSBkZWxldGlv bnMoLSkKPiA+IAo+ID4gZGlmZiAtLWdpdCBhL2FyY2gvYXJtL2luY2x1ZGUvYXNtL2t2bV9oeXAu aCBiL2FyY2gvYXJtL2luY2x1ZGUvYXNtL2t2bV9oeXAuaAo+ID4gaW5kZXggZTkzYTBjYWM5YWRk Li44N2JjZDE4ZGY4ZDUgMTAwNjQ0Cj4gPiAtLS0gYS9hcmNoL2FybS9pbmNsdWRlL2FzbS9rdm1f aHlwLmgKPiA+ICsrKyBiL2FyY2gvYXJtL2luY2x1ZGUvYXNtL2t2bV9oeXAuaAo+ID4gQEAgLTQw LDYgKzQwLDcgQEAKPiA+ICAjZGVmaW5lIFRUQlIxCQlfX0FDQ0VTU19DUDE1XzY0KDEsIGMyKQo+ ID4gICNkZWZpbmUgVlRUQlIJCV9fQUNDRVNTX0NQMTVfNjQoNiwgYzIpCj4gPiAgI2RlZmluZSBQ QVIJCV9fQUNDRVNTX0NQMTVfNjQoMCwgYzcpCj4gPiArI2RlZmluZSBDTlRQX0NWQUwJX19BQ0NF U1NfQ1AxNV82NCgyLCBjMTQpCj4gPiAgI2RlZmluZSBDTlRWX0NWQUwJX19BQ0NFU1NfQ1AxNV82 NCgzLCBjMTQpCj4gPiAgI2RlZmluZSBDTlRWT0ZGCQlfX0FDQ0VTU19DUDE1XzY0KDQsIGMxNCkK PiA+ICAKPiA+IEBAIC04NSw2ICs4Niw3IEBACj4gPiAgI2RlZmluZSBUSURfUFJJVglfX0FDQ0VT U19DUDE1KGMxMywgMCwgYzAsIDQpCj4gPiAgI2RlZmluZSBIVFBJRFIJCV9fQUNDRVNTX0NQMTUo YzEzLCA0LCBjMCwgMikKPiA+ICAjZGVmaW5lIENOVEtDVEwJCV9fQUNDRVNTX0NQMTUoYzE0LCAw LCBjMSwgMCkKPiA+ICsjZGVmaW5lIENOVFBfQ1RMCV9fQUNDRVNTX0NQMTUoYzE0LCAwLCBjMiwg MSkKPiA+ICAjZGVmaW5lIENOVFZfQ1RMCV9fQUNDRVNTX0NQMTUoYzE0LCAwLCBjMywgMSkKPiA+ ICAjZGVmaW5lIENOVEhDVEwJCV9fQUNDRVNTX0NQMTUoYzE0LCA0LCBjMSwgMCkKPiA+ICAKPiA+ IEBAIC05NCw2ICs5Niw4IEBACj4gPiAgI2RlZmluZSByZWFkX3N5c3JlZ19lbDAocikJCXJlYWRf c3lzcmVnKHIjI19lbDApCj4gPiAgI2RlZmluZSB3cml0ZV9zeXNyZWdfZWwwKHYsIHIpCQl3cml0 ZV9zeXNyZWcodiwgciMjX2VsMCkKPiA+ICAKPiA+ICsjZGVmaW5lIGNudHBfY3RsX2VsMAkJCUNO VFBfQ1RMCj4gPiArI2RlZmluZSBjbnRwX2N2YWxfZWwwCQkJQ05UUF9DVkFMCj4gPiAgI2RlZmlu ZSBjbnR2X2N0bF9lbDAJCQlDTlRWX0NUTAo+ID4gICNkZWZpbmUgY250dl9jdmFsX2VsMAkJCUNO VFZfQ1ZBTAo+ID4gICNkZWZpbmUgY250dm9mZl9lbDIJCQlDTlRWT0ZGCj4gPiBkaWZmIC0tZ2l0 IGEvaW5jbHVkZS9rdm0vYXJtX2FyY2hfdGltZXIuaCBiL2luY2x1ZGUva3ZtL2FybV9hcmNoX3Rp bWVyLmgKPiA+IGluZGV4IGQ0MGZlNTdhMmQwZC4uNzIyZTA0ODFmMzEwIDEwMDY0NAo+ID4gLS0t IGEvaW5jbHVkZS9rdm0vYXJtX2FyY2hfdGltZXIuaAo+ID4gKysrIGIvaW5jbHVkZS9rdm0vYXJt X2FyY2hfdGltZXIuaAo+ID4gQEAgLTUwLDYgKzUwLDEwIEBAIHN0cnVjdCBhcmNoX3RpbWVyX2Nv bnRleHQgewo+ID4gIAo+ID4gIAkvKiBFbXVsYXRlZCBUaW1lciAobWF5IGJlIHVudXNlZCkgKi8K PiA+ICAJc3RydWN0IGhydGltZXIJCQlocnRpbWVyOwo+ID4gKwo+ID4gKwkvKiBEdXBsaWNhdGVk IHN0YXRlIGZyb20gYXJjaF90aW1lci5jIGZvciBjb252ZW5pZW5jZSAqLwo+ID4gKwl1MzIJCQkJ aG9zdF90aW1lcl9pcnE7Cj4gPiArCXUzMgkJCQlob3N0X3RpbWVyX2lycV9mbGFnczsKPiA+ICB9 Owo+ID4gIAo+ID4gIGVudW0gbG9hZGVkX3RpbWVyX3N0YXRlIHsKPiA+IEBAIC0xMDcsNiArMTEx LDggQEAgYm9vbCBrdm1fYXJjaF90aW1lcl9nZXRfaW5wdXRfbGV2ZWwoaW50IHZpbnRpZCk7Cj4g PiAgI2RlZmluZSB2Y3B1X3Z0aW1lcih2KQkoJih2KS0+YXJjaC50aW1lcl9jcHUudGltZXJzW1RJ TUVSX1ZUSU1FUl0pCj4gPiAgI2RlZmluZSB2Y3B1X3B0aW1lcih2KQkoJih2KS0+YXJjaC50aW1l cl9jcHUudGltZXJzW1RJTUVSX1BUSU1FUl0pCj4gPiAgCj4gPiArI2RlZmluZSBhcmNoX3RpbWVy X2N0eF9pbmRleChjdHgpCSgoY3R4KSAtIHZjcHVfdGltZXIoKGN0eCktPnZjcHUpLT50aW1lcnMp Cj4gPiArCj4gPiAgdTY0IGt2bV9hcm1fdGltZXJfcmVhZF9zeXNyZWcoc3RydWN0IGt2bV92Y3B1 ICp2Y3B1LAo+ID4gIAkJCSAgICAgIGVudW0ga3ZtX2FyY2hfdGltZXJzIHRtciwKPiA+ICAJCQkg ICAgICBlbnVtIGt2bV9hcmNoX3RpbWVyX3JlZ3MgdHJlZyk7Cj4gPiBkaWZmIC0tZ2l0IGEvdmly dC9rdm0vYXJtL2FyY2hfdGltZXIuYyBiL3ZpcnQva3ZtL2FybS9hcmNoX3RpbWVyLmMKPiA+IGlu ZGV4IDhiMGVjYTVmYmFkMS4uZWVkOGY0OGZiZjliIDEwMDY0NAo+ID4gLS0tIGEvdmlydC9rdm0v YXJtL2FyY2hfdGltZXIuYwo+ID4gKysrIGIvdmlydC9rdm0vYXJtL2FyY2hfdGltZXIuYwo+ID4g QEAgLTM1LDcgKzM1LDkgQEAKPiA+ICAKPiA+ICBzdGF0aWMgc3RydWN0IHRpbWVjb3VudGVyICp0 aW1lY291bnRlcjsKPiA+ICBzdGF0aWMgdW5zaWduZWQgaW50IGhvc3RfdnRpbWVyX2lycTsKPiA+ ICtzdGF0aWMgdW5zaWduZWQgaW50IGhvc3RfcHRpbWVyX2lycTsKPiA+ICBzdGF0aWMgdTMyIGhv c3RfdnRpbWVyX2lycV9mbGFnczsKPiA+ICtzdGF0aWMgdTMyIGhvc3RfcHRpbWVyX2lycV9mbGFn czsKPiA+ICAKPiA+ICBzdGF0aWMgREVGSU5FX1NUQVRJQ19LRVlfRkFMU0UoaGFzX2dpY19hY3Rp dmVfc3RhdGUpOwo+ID4gIAo+ID4gQEAgLTg2LDIwICs4OCwyNCBAQCBzdGF0aWMgdm9pZCBzb2Z0 X3RpbWVyX2NhbmNlbChzdHJ1Y3QgaHJ0aW1lciAqaHJ0KQo+ID4gIHN0YXRpYyBpcnFyZXR1cm5f dCBrdm1fYXJjaF90aW1lcl9oYW5kbGVyKGludCBpcnEsIHZvaWQgKmRldl9pZCkKPiA+ICB7Cj4g PiAgCXN0cnVjdCBrdm1fdmNwdSAqdmNwdSA9ICooc3RydWN0IGt2bV92Y3B1ICoqKWRldl9pZDsK PiA+IC0Jc3RydWN0IGFyY2hfdGltZXJfY29udGV4dCAqdnRpbWVyOwo+ID4gKwlzdHJ1Y3QgYXJj aF90aW1lcl9jb250ZXh0ICpjdHg7Cj4gPiAgCj4gPiAgCS8qCj4gPiAgCSAqIFdlIG1heSBzZWUg YSB0aW1lciBpbnRlcnJ1cHQgYWZ0ZXIgdmNwdV9wdXQoKSBoYXMgYmVlbiBjYWxsZWQgd2hpY2gK PiA+ICAJICogc2V0cyB0aGUgQ1BVJ3MgdmNwdSBwb2ludGVyIHRvIE5VTEwsIGJlY2F1c2UgZXZl biB0aG91Z2ggdGhlIHRpbWVyCj4gPiAtCSAqIGhhcyBiZWVuIGRpc2FibGVkIGluIHZ0aW1lcl9z YXZlX3N0YXRlKCksIHRoZSBoYXJkd2FyZSBpbnRlcnJ1cHQKPiA+ICsJICogaGFzIGJlZW4gZGlz YWJsZWQgaW4gdGltZXJfc2F2ZV9zdGF0ZSgpLCB0aGUgaGFyZHdhcmUgaW50ZXJydXB0Cj4gPiAg CSAqIHNpZ25hbCBtYXkgbm90IGhhdmUgYmVlbiByZXRpcmVkIGZyb20gdGhlIGludGVycnVwdCBj b250cm9sbGVyIHlldC4KPiA+ICAJICovCj4gPiAgCWlmICghdmNwdSkKPiA+ICAJCXJldHVybiBJ UlFfSEFORExFRDsKPiA+ICAKPiA+IC0JdnRpbWVyID0gdmNwdV92dGltZXIodmNwdSk7Cj4gPiAt CWlmIChrdm1fdGltZXJfc2hvdWxkX2ZpcmUodnRpbWVyKSkKPiA+IC0JCWt2bV90aW1lcl91cGRh dGVfaXJxKHZjcHUsIHRydWUsIHZ0aW1lcik7Cj4gPiArCWlmIChpcnEgPT0gaG9zdF92dGltZXJf aXJxKQo+ID4gKwkJY3R4ID0gdmNwdV92dGltZXIodmNwdSk7Cj4gPiArCWVsc2UKPiA+ICsJCWN0 eCA9IHZjcHVfcHRpbWVyKHZjcHUpOwo+ID4gKwo+ID4gKwlpZiAoa3ZtX3RpbWVyX3Nob3VsZF9m aXJlKGN0eCkpCj4gPiArCQlrdm1fdGltZXJfdXBkYXRlX2lycSh2Y3B1LCB0cnVlLCBjdHgpOwo+ ID4gIAo+ID4gIAlpZiAodXNlcnNwYWNlX2lycWNoaXAodmNwdS0+a3ZtKSAmJgo+ID4gIAkgICAg IXN0YXRpY19icmFuY2hfdW5saWtlbHkoJmhhc19naWNfYWN0aXZlX3N0YXRlKSkKPiA+IEBAIC0y MDgsMTMgKzIxNCwyNSBAQCBzdGF0aWMgZW51bSBocnRpbWVyX3Jlc3RhcnQga3ZtX3BoeXNfdGlt ZXJfZXhwaXJlKHN0cnVjdCBocnRpbWVyICpocnQpCj4gPiAgc3RhdGljIGJvb2wga3ZtX3RpbWVy X3Nob3VsZF9maXJlKHN0cnVjdCBhcmNoX3RpbWVyX2NvbnRleHQgKnRpbWVyX2N0eCkKPiA+ICB7 Cj4gPiAgCXN0cnVjdCBhcmNoX3RpbWVyX2NwdSAqdGltZXIgPSB2Y3B1X3RpbWVyKHRpbWVyX2N0 eC0+dmNwdSk7Cj4gPiArCWVudW0ga3ZtX2FyY2hfdGltZXJzIGluZGV4ID0gYXJjaF90aW1lcl9j dHhfaW5kZXgodGltZXJfY3R4KTsKPiA+ICAJdTY0IGN2YWwsIG5vdzsKPiA+ICAKPiA+ICAJaWYg KHRpbWVyLT5sb2FkZWQgPT0gVElNRVJfRUwxX0xPQURFRCkgewo+ID4gLQkJdTMyIGNudF9jdGw7 Cj4gPiArCQl1MzIgY250X2N0bCA9IDA7Cj4gPiArCj4gPiArCQlzd2l0Y2ggKGluZGV4KSB7Cj4g PiArCQljYXNlIFRJTUVSX1ZUSU1FUjoKPiA+ICsJCQljbnRfY3RsID0gcmVhZF9zeXNyZWdfZWww KGNudHZfY3RsKTsKPiA+ICsJCQlicmVhazsKPiA+ICsJCWNhc2UgVElNRVJfUFRJTUVSOgo+ID4g KwkJCWNudF9jdGwgPSByZWFkX3N5c3JlZ19lbDAoY250cF9jdGwpOwo+ID4gKwkJCWJyZWFrOwo+ ID4gKwkJY2FzZSBOUl9LVk1fVElNRVJTOgo+ID4gKwkJCS8qIEdDQyBpcyBicmFpbmRlYWQgKi8K PiA+ICsJCQljbnRfY3RsID0gMDsKPiA+ICsJCQlicmVhazsKPiA+ICsJCX0KPiA+ICAKPiA+IC0J CS8qIE9ubHkgdGhlIHZpcnR1YWwgdGltZXIgY2FuIGJlIGxvYWRlZCBzbyBmYXIgKi8KPiA+IC0J CWNudF9jdGwgPSByZWFkX3N5c3JlZ19lbDAoY250dl9jdGwpOwo+ID4gIAkJcmV0dXJuICAoY250 X2N0bCAmIEFSQ0hfVElNRVJfQ1RSTF9FTkFCTEUpICYmCj4gPiAgCQkgICAgICAgIChjbnRfY3Rs ICYgQVJDSF9USU1FUl9DVFJMX0lUX1NUQVQpICYmCj4gPiAgCQkgICAgICAgIShjbnRfY3RsICYg QVJDSF9USU1FUl9DVFJMX0lUX01BU0spOwo+ID4gQEAgLTMxMCw3ICszMjgsNyBAQCBzdGF0aWMg dm9pZCBrdm1fdGltZXJfdXBkYXRlX3N0YXRlKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSkKPiA+ICAJ CXJldHVybjsKPiA+ICAKPiA+ICAJLyoKPiA+IC0JICogVGhlIHZ0aW1lciB2aXJ0dWFsIGludGVy cnVwdCBpcyBhICdtYXBwZWQnIGludGVycnVwdCwgbWVhbmluZyBwYXJ0Cj4gPiArCSAqIElmIHRo ZSB0aW1lciB2aXJ0dWFsIGludGVycnVwdCBpcyBhICdtYXBwZWQnIGludGVycnVwdCwgcGFydAo+ ID4gIAkgKiBvZiBpdHMgbGlmZWN5Y2xlIGlzIG9mZmxvYWRlZCB0byB0aGUgaGFyZHdhcmUsIGFu ZCB3ZSB0aGVyZWZvcmUgbWF5Cj4gPiAgCSAqIG5vdCBoYXZlIGxvd2VyZWQgdGhlIGlycS5sZXZl bCB2YWx1ZSBiZWZvcmUgaGF2aW5nIHRvIHNpZ25hbCBhIG5ldwo+ID4gIAkgKiBpbnRlcnJ1cHQs IGJ1dCBoYXZlIHRvIHNpZ25hbCBhbiBpbnRlcnJ1cHQgZXZlcnkgdGltZSB0aGUgbGV2ZWwgaXMK PiA+IEBAIC0zMTksMzEgKzMzNyw1NSBAQCBzdGF0aWMgdm9pZCBrdm1fdGltZXJfdXBkYXRlX3N0 YXRlKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSkKPiA+ICAJbGV2ZWwgPSBrdm1fdGltZXJfc2hvdWxk X2ZpcmUodnRpbWVyKTsKPiA+ICAJa3ZtX3RpbWVyX3VwZGF0ZV9pcnEodmNwdSwgbGV2ZWwsIHZ0 aW1lcik7Cj4gPiAgCj4gPiArCWlmIChoYXNfdmhlKCkpIHsKPiAKPiBOb3QgcmVhbGx5IGNyaXRp Y2FsLCBidXQgd291bGRuJ3QgaXQgYmUgY2xlYW5lciB0byB1c2UgImlmCj4gKGhvc3RfcHRpbWVy X2lycSA+IDApIiBoZXJlIHRvIGNoZWNrIGlmIHdlIG1hcCB0aGUgcGh5cyB0aW1lciBhcyB3ZWxs Pwo+IFRoaXMgaXMgYXQgbGVhc3QgaG93IHdlIG9yaWdpbmFsbHkgZGVyaXZlIHRoZSBkZWNpc2lv biB0byBpbml0aWFsaXNlCj4gZXZlcnl0aGluZyBpbiBrdm1fdGltZXJfaHlwX2luaXQoKSBiZWxv dy4gQXBwbGllcyB0byB0aGUgb3RoZXIgaW5zdGFuY2VzCj4gb2YgImlmIChoYXNfdmhlKCkpIiBh cyB3ZWxsLgo+IEJ1dCBJIGd1ZXNzIHdlIHVzZSBoYXNfdmhlKCkgYmVjYXVzZSBpdCdzIGEgc3Rh dGljIGtleT8gSW4gdGhpcyBjYXNlCj4gd291bGQgaXQgYmUgd29ydGggdG8gZGVmaW5lIHNvbWUg Y29zbWV0aWMgd3JhcHBlciwgdG8gaW1wcm92ZSByZWFkYWJpbGl0eT8KPiAKPiA+ICsJCWxldmVs ID0ga3ZtX3RpbWVyX3Nob3VsZF9maXJlKHB0aW1lcik7Cj4gPiArCQlrdm1fdGltZXJfdXBkYXRl X2lycSh2Y3B1LCBsZXZlbCwgcHRpbWVyKTsKPiA+ICsKPiA+ICsJCXJldHVybjsKPiA+ICsJfQo+ ID4gKwo+ID4gIAlwaHlzX3RpbWVyX2VtdWxhdGUodmNwdSk7Cj4gPiAgCj4gPiAgCWlmIChrdm1f dGltZXJfc2hvdWxkX2ZpcmUocHRpbWVyKSAhPSBwdGltZXItPmlycS5sZXZlbCkKPiA+ICAJCWt2 bV90aW1lcl91cGRhdGVfaXJxKHZjcHUsICFwdGltZXItPmlycS5sZXZlbCwgcHRpbWVyKTsKPiA+ ICB9Cj4gPiAgCj4gPiAtc3RhdGljIHZvaWQgdnRpbWVyX3NhdmVfc3RhdGUoc3RydWN0IGt2bV92 Y3B1ICp2Y3B1KQo+ID4gK3N0YXRpYyB2b2lkIHRpbWVyX3NhdmVfc3RhdGUoc3RydWN0IGFyY2hf dGltZXJfY29udGV4dCAqY3R4KQo+ID4gIHsKPiA+IC0Jc3RydWN0IGFyY2hfdGltZXJfY3B1ICp0 aW1lciA9IHZjcHVfdGltZXIodmNwdSk7Cj4gPiAtCXN0cnVjdCBhcmNoX3RpbWVyX2NvbnRleHQg KnZ0aW1lciA9IHZjcHVfdnRpbWVyKHZjcHUpOwo+ID4gKwlzdHJ1Y3QgYXJjaF90aW1lcl9jcHUg KnRpbWVyID0gdmNwdV90aW1lcihjdHgtPnZjcHUpOwo+ID4gKwllbnVtIGt2bV9hcmNoX3RpbWVy cyBpbmRleCA9IGFyY2hfdGltZXJfY3R4X2luZGV4KGN0eCk7Cj4gPiAgCXVuc2lnbmVkIGxvbmcg ZmxhZ3M7Cj4gPiAgCj4gPiArCWlmICghdGltZXItPmVuYWJsZWQpCj4gPiArCQlyZXR1cm47Cj4g PiArCj4gPiAgCWxvY2FsX2lycV9zYXZlKGZsYWdzKTsKPiA+ICAKPiA+ICAJaWYgKHRpbWVyLT5s b2FkZWQgPT0gVElNRVJfTk9UX0xPQURFRCkKPiA+ICAJCWdvdG8gb3V0Owo+ID4gIAo+ID4gLQlp ZiAodGltZXItPmVuYWJsZWQpIHsKPiA+IC0JCXZ0aW1lci0+Y250X2N0bCA9IHJlYWRfc3lzcmVn X2VsMChjbnR2X2N0bCk7Cj4gPiAtCQl2dGltZXItPmNudF9jdmFsID0gcmVhZF9zeXNyZWdfZWww KGNudHZfY3ZhbCk7Cj4gPiAtCX0KPiA+ICsJc3dpdGNoIChpbmRleCkgewo+ID4gKwljYXNlIFRJ TUVSX1ZUSU1FUjoKPiA+ICsJCWN0eC0+Y250X2N0bCA9IHJlYWRfc3lzcmVnX2VsMChjbnR2X2N0 bCk7Cj4gPiArCQljdHgtPmNudF9jdmFsID0gcmVhZF9zeXNyZWdfZWwwKGNudHZfY3ZhbCk7Cj4g PiAgCj4gPiAtCS8qIERpc2FibGUgdGhlIHZpcnR1YWwgdGltZXIgKi8KPiA+IC0Jd3JpdGVfc3lz cmVnX2VsMCgwLCBjbnR2X2N0bCk7Cj4gPiAtCWlzYigpOwo+ID4gKwkJLyogRGlzYWJsZSB0aGUg dGltZXIgKi8KPiA+ICsJCXdyaXRlX3N5c3JlZ19lbDAoMCwgY250dl9jdGwpOwo+ID4gKwkJaXNi KCk7Cj4gPiArCj4gPiArCQlicmVhazsKPiA+ICsJY2FzZSBUSU1FUl9QVElNRVI6Cj4gPiArCQlj dHgtPmNudF9jdGwgPSByZWFkX3N5c3JlZ19lbDAoY250cF9jdGwpOwo+ID4gKwkJY3R4LT5jbnRf Y3ZhbCA9IHJlYWRfc3lzcmVnX2VsMChjbnRwX2N2YWwpOwo+ID4gKwo+ID4gKwkJLyogRGlzYWJs ZSB0aGUgdGltZXIgKi8KPiA+ICsJCXdyaXRlX3N5c3JlZ19lbDAoMCwgY250cF9jdGwpOwo+ID4g KwkJaXNiKCk7Cj4gPiArCj4gPiArCQlicmVhazsKPiA+ICsJY2FzZSBOUl9LVk1fVElNRVJTOgo+ ID4gKwkJYnJlYWs7IC8qIEdDQyBpcyBicmFpbmRlYWQgKi8KPiA+ICsJfQo+ID4gIAo+ID4gIAl0 aW1lci0+bG9hZGVkID0gVElNRVJfTk9UX0xPQURFRDsKPiA+ICBvdXQ6Cj4gPiBAQCAtMzgyLDIx ICs0MjQsMzMgQEAgc3RhdGljIHZvaWQga3ZtX3RpbWVyX3VuYmxvY2tpbmcoc3RydWN0IGt2bV92 Y3B1ICp2Y3B1KQo+ID4gIAlzb2Z0X3RpbWVyX2NhbmNlbCgmdGltZXItPmJnX3RpbWVyKTsKPiA+ ICB9Cj4gPiAgCj4gPiAtc3RhdGljIHZvaWQgdnRpbWVyX3Jlc3RvcmVfc3RhdGUoc3RydWN0IGt2 bV92Y3B1ICp2Y3B1KQo+ID4gK3N0YXRpYyB2b2lkIHRpbWVyX3Jlc3RvcmVfc3RhdGUoc3RydWN0 IGFyY2hfdGltZXJfY29udGV4dCAqY3R4KQo+ID4gIHsKPiA+IC0Jc3RydWN0IGFyY2hfdGltZXJf Y3B1ICp0aW1lciA9IHZjcHVfdGltZXIodmNwdSk7Cj4gPiAtCXN0cnVjdCBhcmNoX3RpbWVyX2Nv bnRleHQgKnZ0aW1lciA9IHZjcHVfdnRpbWVyKHZjcHUpOwo+ID4gKwlzdHJ1Y3QgYXJjaF90aW1l cl9jcHUgKnRpbWVyID0gdmNwdV90aW1lcihjdHgtPnZjcHUpOwo+ID4gKwllbnVtIGt2bV9hcmNo X3RpbWVycyBpbmRleCA9IGFyY2hfdGltZXJfY3R4X2luZGV4KGN0eCk7Cj4gPiAgCXVuc2lnbmVk IGxvbmcgZmxhZ3M7Cj4gPiAgCj4gPiArCWlmICghdGltZXItPmVuYWJsZWQpCj4gPiArCQlyZXR1 cm47Cj4gPiArCj4gPiAgCWxvY2FsX2lycV9zYXZlKGZsYWdzKTsKPiA+ICAKPiA+ICAJaWYgKHRp bWVyLT5sb2FkZWQgPT0gVElNRVJfRUwxX0xPQURFRCkKPiA+ICAJCWdvdG8gb3V0Owo+ID4gIAo+ ID4gLQlpZiAodGltZXItPmVuYWJsZWQpIHsKPiA+IC0JCXdyaXRlX3N5c3JlZ19lbDAodnRpbWVy LT5jbnRfY3ZhbCwgY250dl9jdmFsKTsKPiA+ICsJc3dpdGNoIChpbmRleCkgewo+ID4gKwljYXNl IFRJTUVSX1ZUSU1FUjoKPiA+ICsJCXdyaXRlX3N5c3JlZ19lbDAoY3R4LT5jbnRfY3ZhbCwgY250 dl9jdmFsKTsKPiA+ICsJCWlzYigpOwo+ID4gKwkJd3JpdGVfc3lzcmVnX2VsMChjdHgtPmNudF9j dGwsIGNudHZfY3RsKTsKPiA+ICsJCWJyZWFrOwo+ID4gKwljYXNlIFRJTUVSX1BUSU1FUjoKPiA+ ICsJCXdyaXRlX3N5c3JlZ19lbDAoY3R4LT5jbnRfY3ZhbCwgY250cF9jdmFsKTsKPiA+ICAJCWlz YigpOwo+ID4gLQkJd3JpdGVfc3lzcmVnX2VsMCh2dGltZXItPmNudF9jdGwsIGNudHZfY3RsKTsK PiA+ICsJCXdyaXRlX3N5c3JlZ19lbDAoY3R4LT5jbnRfY3RsLCBjbnRwX2N0bCk7Cj4gPiArCQli cmVhazsKPiA+ICsJY2FzZSBOUl9LVk1fVElNRVJTOgo+ID4gKwkJYnJlYWs7IC8qIEdDQyBpcyBi cmFpbmRlYWQgKi8KPiA+ICAJfQo+ID4gIAo+ID4gIAl0aW1lci0+bG9hZGVkID0gVElNRVJfRUwx X0xPQURFRDsKPiA+IEBAIC00MTksMjMgKzQ3MywyMyBAQCBzdGF0aWMgdm9pZCBzZXRfY250dm9m Zih1NjQgY250dm9mZikKPiA+ICAJa3ZtX2NhbGxfaHlwKF9fa3ZtX3RpbWVyX3NldF9jbnR2b2Zm LCBsb3csIGhpZ2gpOwo+ID4gIH0KPiA+ICAKPiA+IC1zdGF0aWMgaW5saW5lIHZvaWQgc2V0X3Z0 aW1lcl9pcnFfcGh5c19hY3RpdmUoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCBib29sIGFjdGl2ZSkK PiA+ICtzdGF0aWMgaW5saW5lIHZvaWQgc2V0X3RpbWVyX2lycV9waHlzX2FjdGl2ZShzdHJ1Y3Qg YXJjaF90aW1lcl9jb250ZXh0ICpjdHgsIGJvb2wgYWN0aXZlKQo+ID4gIHsKPiA+ICAJaW50IHI7 Cj4gPiAtCXIgPSBpcnFfc2V0X2lycWNoaXBfc3RhdGUoaG9zdF92dGltZXJfaXJxLCBJUlFDSElQ X1NUQVRFX0FDVElWRSwgYWN0aXZlKTsKPiA+ICsJciA9IGlycV9zZXRfaXJxY2hpcF9zdGF0ZShj dHgtPmhvc3RfdGltZXJfaXJxLCBJUlFDSElQX1NUQVRFX0FDVElWRSwgYWN0aXZlKTsKPiA+ICAJ V0FSTl9PTihyKTsKPiA+ICB9Cj4gPiAgCj4gPiAtc3RhdGljIHZvaWQga3ZtX3RpbWVyX3ZjcHVf bG9hZF9naWMoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KQo+ID4gK3N0YXRpYyB2b2lkIGt2bV90aW1l cl92Y3B1X2xvYWRfZ2ljKHN0cnVjdCBhcmNoX3RpbWVyX2NvbnRleHQgKmN0eCkKPiA+ICB7Cj4g PiAtCXN0cnVjdCBhcmNoX3RpbWVyX2NvbnRleHQgKnZ0aW1lciA9IHZjcHVfdnRpbWVyKHZjcHUp Owo+ID4gKwlzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUgPSBjdHgtPnZjcHU7Cj4gPiAgCWJvb2wgcGh5 c19hY3RpdmU7Cj4gPiAgCj4gPiAgCWlmIChpcnFjaGlwX2luX2tlcm5lbCh2Y3B1LT5rdm0pKQo+ ID4gLQkJcGh5c19hY3RpdmUgPSBrdm1fdmdpY19tYXBfaXNfYWN0aXZlKHZjcHUsIHZ0aW1lci0+ aXJxLmlycSk7Cj4gPiArCQlwaHlzX2FjdGl2ZSA9IGt2bV92Z2ljX21hcF9pc19hY3RpdmUodmNw dSwgY3R4LT5pcnEuaXJxKTsKPiA+ICAJZWxzZQo+ID4gLQkJcGh5c19hY3RpdmUgPSB2dGltZXIt PmlycS5sZXZlbDsKPiA+IC0Jc2V0X3Z0aW1lcl9pcnFfcGh5c19hY3RpdmUodmNwdSwgcGh5c19h Y3RpdmUpOwo+ID4gKwkJcGh5c19hY3RpdmUgPSBjdHgtPmlycS5sZXZlbDsKPiA+ICsJc2V0X3Rp bWVyX2lycV9waHlzX2FjdGl2ZShjdHgsIHBoeXNfYWN0aXZlKTsKPiA+ICB9Cj4gPiAgCj4gPiAg c3RhdGljIHZvaWQga3ZtX3RpbWVyX3ZjcHVfbG9hZF9ub2dpYyhzdHJ1Y3Qga3ZtX3ZjcHUgKnZj cHUpCj4gPiBAQCAtNDY3LDE0ICs1MjEsMjIgQEAgdm9pZCBrdm1fdGltZXJfdmNwdV9sb2FkKHN0 cnVjdCBrdm1fdmNwdSAqdmNwdSkKPiA+ICAJaWYgKHVubGlrZWx5KCF0aW1lci0+ZW5hYmxlZCkp Cj4gPiAgCQlyZXR1cm47Cj4gPiAgCj4gPiAtCWlmIChzdGF0aWNfYnJhbmNoX2xpa2VseSgmaGFz X2dpY19hY3RpdmVfc3RhdGUpKQo+ID4gLQkJa3ZtX3RpbWVyX3ZjcHVfbG9hZF9naWModmNwdSk7 Cj4gPiAtCWVsc2UKPiA+ICsJaWYgKHN0YXRpY19icmFuY2hfbGlrZWx5KCZoYXNfZ2ljX2FjdGl2 ZV9zdGF0ZSkpIHsKPiA+ICsJCWt2bV90aW1lcl92Y3B1X2xvYWRfZ2ljKHZ0aW1lcik7Cj4gPiAr CQlpZiAoaGFzX3ZoZSgpKQo+ID4gKwkJCWt2bV90aW1lcl92Y3B1X2xvYWRfZ2ljKHB0aW1lcik7 Cj4gPiArCX0gZWxzZSB7Cj4gPiAgCQlrdm1fdGltZXJfdmNwdV9sb2FkX25vZ2ljKHZjcHUpOwo+ ID4gKwl9Cj4gPiAgCj4gPiAgCXNldF9jbnR2b2ZmKHZ0aW1lci0+Y250dm9mZik7Cj4gPiAgCj4g PiAtCXZ0aW1lcl9yZXN0b3JlX3N0YXRlKHZjcHUpOwo+ID4gKwl0aW1lcl9yZXN0b3JlX3N0YXRl KHZ0aW1lcik7Cj4gPiArCj4gPiArCWlmIChoYXNfdmhlKCkpIHsKPiA+ICsJCXRpbWVyX3Jlc3Rv cmVfc3RhdGUocHRpbWVyKTsKPiA+ICsJCXJldHVybjsKPiA+ICsJfQo+ID4gIAo+ID4gIAkvKiBT ZXQgdGhlIGJhY2tncm91bmQgdGltZXIgZm9yIHRoZSBwaHlzaWNhbCB0aW1lciBlbXVsYXRpb24u ICovCj4gPiAgCXBoeXNfdGltZXJfZW11bGF0ZSh2Y3B1KTsKPiA+IEBAIC01MDYsMTIgKzU2OCwx NyBAQCBib29sIGt2bV90aW1lcl9zaG91bGRfbm90aWZ5X3VzZXIoc3RydWN0IGt2bV92Y3B1ICp2 Y3B1KQo+ID4gIHZvaWQga3ZtX3RpbWVyX3ZjcHVfcHV0KHN0cnVjdCBrdm1fdmNwdSAqdmNwdSkK PiA+ICB7Cj4gPiAgCXN0cnVjdCBhcmNoX3RpbWVyX2NwdSAqdGltZXIgPSB2Y3B1X3RpbWVyKHZj cHUpOwo+ID4gKwlzdHJ1Y3QgYXJjaF90aW1lcl9jb250ZXh0ICp2dGltZXIgPSB2Y3B1X3Z0aW1l cih2Y3B1KTsKPiA+ICAJc3RydWN0IGFyY2hfdGltZXJfY29udGV4dCAqcHRpbWVyID0gdmNwdV9w dGltZXIodmNwdSk7Cj4gPiAgCj4gPiAgCWlmICh1bmxpa2VseSghdGltZXItPmVuYWJsZWQpKQo+ ID4gIAkJcmV0dXJuOwo+ID4gIAo+ID4gLQl2dGltZXJfc2F2ZV9zdGF0ZSh2Y3B1KTsKPiA+ICsJ dGltZXJfc2F2ZV9zdGF0ZSh2dGltZXIpOwo+ID4gKwlpZiAoaGFzX3ZoZSgpKSB7Cj4gPiArCQl0 aW1lcl9zYXZlX3N0YXRlKHB0aW1lcik7Cj4gPiArCQlyZXR1cm47Cj4gPiArCX0KPiA+ICAKPiA+ ICAJLyoKPiA+ICAJICogQ2FuY2VsIHRoZSBwaHlzaWNhbCB0aW1lciBlbXVsYXRpb24sIGJlY2F1 c2UgdGhlIG9ubHkgY2FzZSB3aGVyZSB3ZQo+ID4gQEAgLTUzNCw4ICs2MDEsNyBAQCB2b2lkIGt2 bV90aW1lcl92Y3B1X3B1dChzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpCj4gPiAgCSAqIGNvdW50ZXIg b2Ygbm9uLVZIRSBjYXNlLiBGb3IgVkhFLCB0aGUgdmlydHVhbCBjb3VudGVyIHVzZXMgYSBmaXhl ZAo+ID4gIAkgKiB2aXJ0dWFsIG9mZnNldCBvZiB6ZXJvLCBzbyBubyBuZWVkIHRvIHplcm8gQ05U Vk9GRl9FTDIgcmVnaXN0ZXIuCj4gPiAgCSAqLwo+ID4gLQlpZiAoIWhhc192aGUoKSkKPiA+IC0J CXNldF9jbnR2b2ZmKDApOwo+ID4gKwlzZXRfY250dm9mZigwKTsKPiA+ICB9Cj4gPiAgCj4gPiAg LyoKPiA+IEBAIC01NTAsNyArNjE2LDcgQEAgc3RhdGljIHZvaWQgdW5tYXNrX3Z0aW1lcl9pcnFf dXNlcihzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpCj4gPiAgCWlmICgha3ZtX3RpbWVyX3Nob3VsZF9m aXJlKHZ0aW1lcikpIHsKPiA+ICAJCWt2bV90aW1lcl91cGRhdGVfaXJxKHZjcHUsIGZhbHNlLCB2 dGltZXIpOwo+ID4gIAkJaWYgKHN0YXRpY19icmFuY2hfbGlrZWx5KCZoYXNfZ2ljX2FjdGl2ZV9z dGF0ZSkpCj4gPiAtCQkJc2V0X3Z0aW1lcl9pcnFfcGh5c19hY3RpdmUodmNwdSwgZmFsc2UpOwo+ ID4gKwkJCXNldF90aW1lcl9pcnFfcGh5c19hY3RpdmUodnRpbWVyLCBmYWxzZSk7Cj4gPiAgCQll bHNlCj4gPiAgCQkJZW5hYmxlX3BlcmNwdV9pcnEoaG9zdF92dGltZXJfaXJxLCBob3N0X3Z0aW1l cl9pcnFfZmxhZ3MpOwo+ID4gIAl9Cj4gPiBAQCAtNjI1LDcgKzY5MSwxMiBAQCB2b2lkIGt2bV90 aW1lcl92Y3B1X2luaXQoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KQo+ID4gIAlwdGltZXItPmhydGlt ZXIuZnVuY3Rpb24gPSBrdm1fcGh5c190aW1lcl9leHBpcmU7Cj4gPiAgCj4gPiAgCXZ0aW1lci0+ aXJxLmlycSA9IGRlZmF1bHRfdnRpbWVyX2lycS5pcnE7Cj4gPiArCXZ0aW1lci0+aG9zdF90aW1l cl9pcnEgPSBob3N0X3Z0aW1lcl9pcnE7Cj4gPiArCXZ0aW1lci0+aG9zdF90aW1lcl9pcnFfZmxh Z3MgPSBob3N0X3Z0aW1lcl9pcnFfZmxhZ3M7Cj4gPiArCj4gPiAgCXB0aW1lci0+aXJxLmlycSA9 IGRlZmF1bHRfcHRpbWVyX2lycS5pcnE7Cj4gPiArCXB0aW1lci0+aG9zdF90aW1lcl9pcnEgPSBo b3N0X3B0aW1lcl9pcnE7Cj4gPiArCXB0aW1lci0+aG9zdF90aW1lcl9pcnFfZmxhZ3MgPSBob3N0 X3B0aW1lcl9pcnFfZmxhZ3M7Cj4gPiAgCj4gPiAgCXZ0aW1lci0+dmNwdSA9IHZjcHU7Cj4gPiAg CXB0aW1lci0+dmNwdSA9IHZjcHU7Cj4gPiBAQCAtNjM0LDYgKzcwNSw3IEBAIHZvaWQga3ZtX3Rp bWVyX3ZjcHVfaW5pdChzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpCj4gPiAgc3RhdGljIHZvaWQga3Zt X3RpbWVyX2luaXRfaW50ZXJydXB0KHZvaWQgKmluZm8pCj4gPiAgewo+ID4gIAllbmFibGVfcGVy Y3B1X2lycShob3N0X3Z0aW1lcl9pcnEsIGhvc3RfdnRpbWVyX2lycV9mbGFncyk7Cj4gPiArCWVu YWJsZV9wZXJjcHVfaXJxKGhvc3RfcHRpbWVyX2lycSwgaG9zdF9wdGltZXJfaXJxX2ZsYWdzKTsK PiAKPiBTaG91bGRuJ3Qgd2Ugb25seSBlbmFibGUgaG9zdF9wdGltZXJfaXJxKCkgaWYgd2UgYWN0 dWFsbHkgcGFzcyB0aGlzIG9uCj4gaGVyZT8gU28gZWl0aGVyIGd1YXJkZWQgYnkgaGFzX3ZoZSgp IG9yIChob3N0X3B0aW1lcl9pcnEgPiAwKT8KPiBPdGhlcndpc2Ugd2Ugd291bGQgZW5hYmxlIElS USAwPwo+IAoKSSB0aGluayB0aGUgcmlnaHQgZml4IGlzIHRvIHJhaXNlIGFuIGVycm9yIGlmIGEg VkhFIHN5c3RlbSBkb2Vzbid0IGdpdmUKdXMgYSB2YWxpZCBwaHlzaWNhbCBpcnEgbnVtYmVyIGR1 cmluZyBpbml0LCBhbmQgdGhlbiBsZWF2ZSB0aGUgY2hlY2tzCmZvciBoYXNfdmhlKCkgaGVyZS4K ClRoYW5rcywKCiAgICBDaHJpc3RvZmZlcgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX18KbGludXgtYXJtLWtlcm5lbCBtYWlsaW5nIGxpc3QKbGludXgtYXJt LWtlcm5lbEBsaXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21h aWxtYW4vbGlzdGluZm8vbGludXgtYXJtLWtlcm5lbAo=