From mboxrd@z Thu Jan 1 00:00:00 1970 From: Peter Hurley Subject: Re: [PATCH] drm/vblank: Fixup and document timestamp update/read barriers Date: Wed, 15 Apr 2015 21:29:46 -0400 Message-ID: <552F108A.6060406@hurleysoftware.com> References: <1429093934-7535-1-git-send-email-daniel.vetter@ffwll.ch> <1429119283-11215-1-git-send-email-daniel.vetter@ffwll.ch> <552ED78D.7060004@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <552ED78D.7060004@gmail.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Mario Kleiner Cc: Daniel Vetter , =?UTF-8?B?TWljaGVsIETDpG56ZXI=?= , DRI Development , Daniel Vetter , Intel Graphics Development List-Id: dri-devel@lists.freedesktop.org T24gMDQvMTUvMjAxNSAwNToyNiBQTSwgTWFyaW8gS2xlaW5lciB3cm90ZToKPiBBIGNvdXBsZSBv ZiBxdWVzdGlvbnMgdG8gZWR1Y2F0ZSBtZSBhbmQgb25lIHJldmlldyBjb21tZW50Lgo+IAo+IE9u IDA0LzE1LzIwMTUgMDc6MzQgUE0sIERhbmllbCBWZXR0ZXIgd3JvdGU6Cj4+IFRoaXMgd2FzIGEg Yml0IHRvbyBtdWNoIGNhcmdvLWN1bHRlZCwgc28gbGV0cyBtYWtlIGl0IHNvbGlkOgo+PiAtIHZi bGFuay0+Y291bnQgZG9lc24ndCBuZWVkIHRvIGJlIGFuIGF0b21pYywgd3JpdGVzIGFyZSBhbHdh eXMgZG9uZQo+PiAgICB1bmRlciB0aGUgcHJvdGVjdGlvbiBvZiBkZXYtPnZibGFua190aW1lX2xv Y2suIFN3aXRjaCB0byBhbiB1bnNpZ25lZAo+PiAgICBsb25nIGluc3RlYWQgYW5kIHVwZGF0ZSBj b21tZW50cy4gTm90ZSB0aGF0IGF0b21pY19yZWFkIGlzIGp1c3QgYQo+PiAgICBub3JtYWwgcmVh ZCBvZiBhIHZvbGF0aWxlIHZhcmlhYmxlLCBzbyBubyBuZWVkIHRvIGF1ZGl0IGFsbCB0aGUKPj4g ICAgcmVhZC1zaWRlIGFjY2VzcyBzcGVjaWZpY2FsbHkuCj4+Cj4+IC0gVGhlIGJhcnJpZXJzIGZv ciB0aGUgdmJsYW5rIGNvdW50ZXIgc2VxbG9jayB3ZXJlbid0IGNvbXBsZXRlOiBUaGUKPj4gICAg cmVhZC1zaWRlIHdhcyBtaXNzaW5nIHRoZSBmaXJzdCBiYXJyaWVyIGJldHdlZW4gdGhlIGNvdW50 ZXIgcmVhZCBhbmQKPj4gICAgdGhlIHRpbWVzdGFtcCByZWFkLCBpdCBvbmx5IGhhZCBhIGJhcnJp ZXIgYmV0d2VlbiB0aGUgdHMgYW5kIHRoZQo+PiAgICBjb3VudGVyIHJlYWQuIFdlIG5lZWQgYm90 aC4KPj4KPj4gLSBCYXJyaWVycyB3ZXJlbid0IHByb3Blcmx5IGRvY3VtZW50ZWQuIFNpbmNlIGJh cnJpZXJzIG9ubHkgd29yayBpZgo+PiAgICB5b3UgaGF2ZSB0aGVtIG9uIGJvdGhzIHNpZGVzIG9m IHRoZSB0cmFuc2FjdGlvbiBpdCdzIHBydWRlbnQgdG8KPj4gICAgcmVmZXJlbmNlIHdoZXJlIHRo ZSBvdGhlciBzaWRlIGlzLiBUbyBhdm9pZCBkdXBsaWNhdGluZyB0aGUKPj4gICAgd3JpdGUtc2lk ZSBjb21tZW50IDMgdGltZXMgZXh0cmFjdCBhIGxpdHRsZSBzdG9yZV92YmxhbmsoKSBoZWxwZXIu Cj4+ICAgIEluIHRoYXQgaGVscGVyIGFsc28gYXNzZXJ0IHRoYXQgd2UgZG8gaW5kZWVkIGhvbGQK Pj4gICAgZGV2LT52YmxhbmtfdGltZV9sb2NrLCBzaW5jZSBpbiBzb21lIGNhc2VzIHRoZSBsb2Nr IGlzIGFjcXVpcmVkIGEKPj4gICAgZmV3IGZ1bmN0aW9ucyB1cCBpbiB0aGUgY2FsbGNoYWluLgo+ Pgo+PiBTcG90dGVkIHdoaWxlIHJldmlld2luZyBhIHBhdGNoIGZyb20gQ2hyaXMgV2lsc29uIHRv IGFkZCBhIGZhc3RwYXRoIHRvCj4+IHRoZSB2Ymxhbmtfd2FpdCBpb2N0bC4KPj4KPj4gdjI6IEFk ZCBjb21tZW50IHRvIGJldHRlciBleHBsYWluIGhvdyBzdG9yZV92Ymxhbmsgd29ya3MsIHN1Z2dl c3RlZCBieQo+PiBDaHJpcy4KPj4KPj4gdjM6IFBldGVyIG5vdGljZWQgdGhhdCBhcy1pcyB0aGUg Mm5kIHNtcF93bWIgaXMgcmVkdW5kYW50IHdpdGggdGhlCj4+IGltcGxpY2l0IGJhcnJpZXIgaW4g dGhlIHNwaW5fdW5sb2NrLiBCdXQgdGhhdCBjYW4gb25seSBiZSBwcm92ZW4gYnkKPj4gYXVkaXRp bmcgYWxsIGNhbGxlcnMgYW5kIG15IHBvaW50IGluIGV4dHJhY3RpbmcgdGhpcyBsaXR0bGUgaGVs cGVyIHdhcwo+PiB0byBsb2NhbGl6ZSBhbGwgdGhlIGxvY2tpbmcgaW50byBqdXN0IG9uZSBwbGFj ZS4gSGVuY2UgSSB0aGluayB0aGF0Cj4+IGFkZGl0aW9uYWwgb3B0aW1pemF0aW9uIGlzIHRvbyBy aXNreS4KPj4KPj4gQ2M6IENocmlzIFdpbHNvbiA8Y2hyaXNAY2hyaXMtd2lsc29uLmNvLnVrPgo+ PiBDYzogTWFyaW8gS2xlaW5lciA8bWFyaW8ua2xlaW5lci5kZUBnbWFpbC5jb20+Cj4+IENjOiBW aWxsZSBTeXJqw6Rsw6QgPHZpbGxlLnN5cmphbGFAbGludXguaW50ZWwuY29tPgo+PiBDYzogTWlj aGVsIETDpG56ZXIgPG1pY2hlbEBkYWVuemVyLm5ldD4KPj4gQ2M6IFBldGVyIEh1cmxleSA8cGV0 ZXJAaHVybGV5c29mdHdhcmUuY29tPgo+PiBTaWduZWQtb2ZmLWJ5OiBEYW5pZWwgVmV0dGVyIDxk YW5pZWwudmV0dGVyQGludGVsLmNvbT4KPj4gLS0tCj4+ICAgZHJpdmVycy9ncHUvZHJtL2RybV9p cnEuYyB8IDk1ICsrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0tLS0t Cj4+ICAgaW5jbHVkZS9kcm0vZHJtUC5oICAgICAgICB8ICA4ICsrKy0KPj4gICAyIGZpbGVzIGNo YW5nZWQsIDU3IGluc2VydGlvbnMoKyksIDQ2IGRlbGV0aW9ucygtKQo+Pgo+PiBkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2RybV9pcnEuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1faXJxLmMK Pj4gaW5kZXggYzhhMzQ0NzY1NzBhLi44Njk0Yjc3ZDAwMDIgMTAwNjQ0Cj4+IC0tLSBhL2RyaXZl cnMvZ3B1L2RybS9kcm1faXJxLmMKPj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9pcnEuYwo+ PiBAQCAtNzQsNiArNzQsMzYgQEAgbW9kdWxlX3BhcmFtX25hbWVkKHZibGFua29mZmRlbGF5LCBk cm1fdmJsYW5rX29mZmRlbGF5LCBpbnQsIDA2MDApOwo+PiAgIG1vZHVsZV9wYXJhbV9uYW1lZCh0 aW1lc3RhbXBfcHJlY2lzaW9uX3VzZWMsIGRybV90aW1lc3RhbXBfcHJlY2lzaW9uLCBpbnQsIDA2 MDApOwo+PiAgIG1vZHVsZV9wYXJhbV9uYW1lZCh0aW1lc3RhbXBfbW9ub3RvbmljLCBkcm1fdGlt ZXN0YW1wX21vbm90b25pYywgaW50LCAwNjAwKTsKPj4KPj4gK3N0YXRpYyB2b2lkIHN0b3JlX3Zi bGFuayhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBpbnQgY3J0YywKPj4gKyAgICAgICAgICAgICB1 bnNpZ25lZCB2YmxhbmtfY291bnRfaW5jLAo+PiArICAgICAgICAgICAgIHN0cnVjdCB0aW1ldmFs ICp0X3ZibGFuaykKPj4gK3sKPj4gKyAgICBzdHJ1Y3QgZHJtX3ZibGFua19jcnRjICp2Ymxhbmsg PSAmZGV2LT52YmxhbmtbY3J0Y107Cj4+ICsgICAgdTMyIHRzbG90Owo+PiArCj4+ICsgICAgYXNz ZXJ0X3NwaW5fbG9ja2VkKCZkZXYtPnZibGFua190aW1lX2xvY2spOwo+PiArCj4+ICsgICAgaWYg KHRfdmJsYW5rKSB7Cj4+ICsgICAgICAgIC8qIEFsbCB3cml0ZXJzIGhvbGQgdGhlIHNwaW5sb2Nr LCBidXQgcmVhZGVycyBhcmUgc2VyaWFsaXplZCBieQo+PiArICAgICAgICAgKiB0aGUgbGF0Y2hp bmcgb2YgdmJsYW5rLT5jb3VudCBiZWxvdy4KPj4gKyAgICAgICAgICovCj4+ICsgICAgICAgIHRz bG90ID0gdmJsYW5rLT5jb3VudCArIHZibGFua19jb3VudF9pbmM7Cj4+ICsgICAgICAgIHZibGFu a3RpbWVzdGFtcChkZXYsIGNydGMsIHRzbG90KSA9ICp0X3ZibGFuazsKPj4gKyAgICB9Cj4+ICsK Pj4gKyAgICAvKgo+PiArICAgICAqIHZibGFuayB0aW1lc3RhbXAgdXBkYXRlcyBhcmUgcHJvdGVj dGVkIG9uIHRoZSB3cml0ZSBzaWRlIHdpdGgKPj4gKyAgICAgKiB2YmxhbmtfdGltZV9sb2NrLCBi dXQgb24gdGhlIHJlYWQgc2lkZSBkb25lIGxvY2tsZXNzbHkgdXNpbmcgYQo+PiArICAgICAqIHNl cXVlbmNlLWxvY2sgb24gdGhlIHZibGFuayBjb3VudGVyLiBFbnN1cmUgY29ycmVjdCBvcmRlcmlu ZyB1c2luZwo+PiArICAgICAqIG1lbW9yeSBiYXJycmllcnMuIFdlIG5lZWQgdGhlIGJhcnJpZXIg Ym90aCBiZWZvcmUgYW5kIGFsc28gYWZ0ZXIgdGhlCj4+ICsgICAgICogY291bnRlciB1cGRhdGUg dG8gc3luY2hyb25pemUgd2l0aCB0aGUgbmV4dCB0aW1lc3RhbXAgd3JpdGUuCj4+ICsgICAgICog VGhlIHJlYWQtc2lkZSBiYXJyaWVycyBmb3IgdGhpcyBhcmUgaW4gZHJtX3ZibGFua19jb3VudF9h bmRfdGltZS4KPj4gKyAgICAgKi8KPj4gKyAgICBzbXBfd21iKCk7Cj4+ICsgICAgdmJsYW5rLT5j b3VudCArPSB2YmxhbmtfY291bnRfaW5jOwo+PiArICAgIHNtcF93bWIoKTsKPj4gK30KPj4gKwo+ PiAgIC8qKgo+PiAgICAqIGRybV91cGRhdGVfdmJsYW5rX2NvdW50IC0gdXBkYXRlIHRoZSBtYXN0 ZXIgdmJsYW5rIGNvdW50ZXIKPj4gICAgKiBAZGV2OiBEUk0gZGV2aWNlCj4+IEBAIC05Myw3ICsx MjMsNyBAQCBtb2R1bGVfcGFyYW1fbmFtZWQodGltZXN0YW1wX21vbm90b25pYywgZHJtX3RpbWVz dGFtcF9tb25vdG9uaWMsIGludCwgMDYwMCk7Cj4+ICAgc3RhdGljIHZvaWQgZHJtX3VwZGF0ZV92 YmxhbmtfY291bnQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgaW50IGNydGMpCj4+ICAgewo+PiAg ICAgICBzdHJ1Y3QgZHJtX3ZibGFua19jcnRjICp2YmxhbmsgPSAmZGV2LT52YmxhbmtbY3J0Y107 Cj4+IC0gICAgdTMyIGN1cl92YmxhbmssIGRpZmYsIHRzbG90Owo+PiArICAgIHUzMiBjdXJfdmJs YW5rLCBkaWZmOwo+PiAgICAgICBib29sIHJjOwo+PiAgICAgICBzdHJ1Y3QgdGltZXZhbCB0X3Zi bGFuazsKPj4KPj4gQEAgLTEyOSwxOCArMTU5LDEyIEBAIHN0YXRpYyB2b2lkIGRybV91cGRhdGVf dmJsYW5rX2NvdW50KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIGludCBjcnRjKQo+PiAgICAgICBp ZiAoZGlmZiA9PSAwKQo+PiAgICAgICAgICAgcmV0dXJuOwo+Pgo+PiAtICAgIC8qIFJlaW5pdGlh bGl6ZSBjb3JyZXNwb25kaW5nIHZibGFuayB0aW1lc3RhbXAgaWYgaGlnaC1wcmVjaXNpb24gcXVl cnkKPj4gLSAgICAgKiBhdmFpbGFibGUuIFNraXAgdGhpcyBzdGVwIGlmIHF1ZXJ5IHVuc3VwcG9y dGVkIG9yIGZhaWxlZC4gV2lsbAo+PiAtICAgICAqIHJlaW5pdGlhbGl6ZSBkZWxheWVkIGF0IG5l eHQgdmJsYW5rIGludGVycnVwdCBpbiB0aGF0IGNhc2UuCj4+ICsgICAgLyoKPj4gKyAgICAgKiBP bmx5IHJlaW5pdGlhbGl6ZSBjb3JyZXNwb25kaW5nIHZibGFuayB0aW1lc3RhbXAgaWYgaGlnaC1w cmVjaXNpb24gcXVlcnkKPj4gKyAgICAgKiBhdmFpbGFibGUgYW5kIGRpZG4ndCBmYWlsLiBXaWxs IHJlaW5pdGlhbGl6ZSBkZWxheWVkIGF0IG5leHQgdmJsYW5rCj4+ICsgICAgICogaW50ZXJydXB0 IGluIHRoYXQgY2FzZS4KPj4gICAgICAgICovCj4+IC0gICAgaWYgKHJjKSB7Cj4+IC0gICAgICAg IHRzbG90ID0gYXRvbWljX3JlYWQoJnZibGFuay0+Y291bnQpICsgZGlmZjsKPj4gLSAgICAgICAg dmJsYW5rdGltZXN0YW1wKGRldiwgY3J0YywgdHNsb3QpID0gdF92Ymxhbms7Cj4+IC0gICAgfQo+ PiAtCj4+IC0gICAgc21wX21iX19iZWZvcmVfYXRvbWljKCk7Cj4+IC0gICAgYXRvbWljX2FkZChk aWZmLCAmdmJsYW5rLT5jb3VudCk7Cj4+IC0gICAgc21wX21iX19hZnRlcl9hdG9taWMoKTsKPj4g KyAgICBzdG9yZV92YmxhbmsoZGV2LCBjcnRjLCBkaWZmLCByYyA/ICZ0X3ZibGFuayA6IE5VTEwp Owo+PiAgIH0KPj4KPj4gICAvKgo+PiBAQCAtMjE4LDcgKzI0Miw3IEBAIHN0YXRpYyB2b2lkIHZi bGFua19kaXNhYmxlX2FuZF9zYXZlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIGludCBjcnRjKQo+ PiAgICAgICAvKiBDb21wdXRlIHRpbWUgZGlmZmVyZW5jZSB0byBzdG9yZWQgdGltZXN0YW1wIG9m IGxhc3QgdmJsYW5rCj4+ICAgICAgICAqIGFzIHVwZGF0ZWQgYnkgbGFzdCBpbnZvY2F0aW9uIG9m IGRybV9oYW5kbGVfdmJsYW5rKCkgaW4gdmJsYW5rIGlycS4KPj4gICAgICAgICovCj4+IC0gICAg dmJsY291bnQgPSBhdG9taWNfcmVhZCgmdmJsYW5rLT5jb3VudCk7Cj4+ICsgICAgdmJsY291bnQg PSB2YmxhbmstPmNvdW50Owo+PiAgICAgICBkaWZmX25zID0gdGltZXZhbF90b19ucygmdHZibGFu aykgLQo+PiAgICAgICAgICAgICB0aW1ldmFsX3RvX25zKCZ2Ymxhbmt0aW1lc3RhbXAoZGV2LCBj cnRjLCB2Ymxjb3VudCkpOwo+Pgo+PiBAQCAtMjM0LDE3ICsyNTgsOCBAQCBzdGF0aWMgdm9pZCB2 YmxhbmtfZGlzYWJsZV9hbmRfc2F2ZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBpbnQgY3J0YykK Pj4gICAgICAgICogYXZhaWxhYmxlLiBJbiB0aGF0IGNhc2Ugd2UgY2FuJ3QgYWNjb3VudCBmb3Ig dGhpcyBhbmQganVzdAo+PiAgICAgICAgKiBob3BlIGZvciB0aGUgYmVzdC4KPj4gICAgICAgICov Cj4+IC0gICAgaWYgKHZibHJjICYmIChhYnM2NChkaWZmX25zKSA+IDEwMDAwMDApKSB7Cj4+IC0g ICAgICAgIC8qIFN0b3JlIG5ldyB0aW1lc3RhbXAgaW4gcmluZ2J1ZmZlci4gKi8KPj4gLSAgICAg ICAgdmJsYW5rdGltZXN0YW1wKGRldiwgY3J0YywgdmJsY291bnQgKyAxKSA9IHR2Ymxhbms7Cj4+ IC0KPj4gLSAgICAgICAgLyogSW5jcmVtZW50IGNvb2tlZCB2YmxhbmsgY291bnQuIFRoaXMgYWxz byBhdG9taWNhbGx5IGNvbW1pdHMKPj4gLSAgICAgICAgICogdGhlIHRpbWVzdGFtcCBjb21wdXRl ZCBhYm92ZS4KPj4gLSAgICAgICAgICovCj4+IC0gICAgICAgIHNtcF9tYl9fYmVmb3JlX2F0b21p YygpOwo+PiAtICAgICAgICBhdG9taWNfaW5jKCZ2YmxhbmstPmNvdW50KTsKPj4gLSAgICAgICAg c21wX21iX19hZnRlcl9hdG9taWMoKTsKPj4gLSAgICB9Cj4+ICsgICAgaWYgKHZibHJjICYmIChh YnM2NChkaWZmX25zKSA+IDEwMDAwMDApKQo+PiArICAgICAgICBzdG9yZV92YmxhbmsoZGV2LCBj cnRjLCAxLCAmdHZibGFuayk7Cj4+Cj4+ICAgICAgIHNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmRl di0+dmJsYW5rX3RpbWVfbG9jaywgaXJxZmxhZ3MpOwo+PiAgIH0KPj4gQEAgLTg1Miw3ICs4Njcs NyBAQCB1MzIgZHJtX3ZibGFua19jb3VudChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBpbnQgY3J0 YykKPj4KPj4gICAgICAgaWYgKFdBUk5fT04oY3J0YyA+PSBkZXYtPm51bV9jcnRjcykpCj4+ICAg ICAgICAgICByZXR1cm4gMDsKPj4gLSAgICByZXR1cm4gYXRvbWljX3JlYWQoJnZibGFuay0+Y291 bnQpOwo+PiArICAgIHJldHVybiB2YmxhbmstPmNvdW50Owo+IAo+IEkgd3JvbmdseSBhc3N1bWVk IGF0b21pY19yZWFkIHdvdWxkIGd1YXJhbnRlZSBtb3JlIHRoYW4gaXQgYWN0dWFsbHkgZG9lcywg c28gcGxlYXNlIGhlbHAgbWUgdG8gbGVhcm4gc29tZXRoaW5nLiBXaHkgZG9uJ3Qgd2UgbmVlZCBz b21lIHNtcF9ybWIoKSBoZXJlIGJlZm9yZSByZXR1cm5pbmcgdmJsYW5rLT5jb3VudD8gV2hhdCBn dWFyYW50ZWVzIHRoYXQgZHJtX3ZibGFua19jb3VudCgpIGRvZXMgcmV0dXJuIHRoZSBsYXRlc3Qg dmFsdWUgYXNzaWduZWQgdG8gdmJsYW5rLT5jb3VudCBpbiBzdG9yZV92YmxhbmsoKT8gSW4gc3Rv cmVfdmJsYW5rKCkgdGhlcmUgaXMgYSBzbXBfd21iKCksIGJ1dCB3aHkgZG9uJ3Qgd2UgbmVlZCBh IG1hdGNoaW5nIHNtcF9ybWIoKSBoZXJlIHRvIGJlbmVmaXQgZnJvbSBpdD8KCldlbGwsIHlvdSBj b3VsZCBidXQgdGhlIHZibGFuayBjb3VudGVyIHJlc29sdXRpb24gaXMgdmVyeSBsb3cgKDYwSFop LApzbyBwcmFjdGljYWxseSBzcGVha2luZywgd2hhdCB3b3VsZCBiZSB0aGUgcG9pbnQ/CgpUaGUg dHJhaWxpbmcgd3JpdGUgYmFycmllciBpbiBzdG9yZV92YmxhbmsoKSBpcyBvbmx5IG5lY2Vzc2Fy eSB0bwpmb3JjZSB0aGUgb3JkZXJpbmcgb2YgdGhlIHRpbWVzdGFtcCB3cnQgdG8gdmJsYW5rIGNv dW50ICppbiBjYXNlIHRoZXJlCndhcyBubyB3cml0ZSBiYXJyaWVyIGV4ZWN1dGVkIGJldHdlZW4g dG8gY2FsbHMgdG8gc3RvcmVfdmJsYW5rKCkqLApub3QgdG8gZW5zdXJlIHRoZSBjcHUgZm9yY2Vz IHRoZSB3cml0ZSB0byBtYWluIG1lbW9yeSBpbW1lZGlhdGVseS4KCkJlY2F1c2UgdGhlIHRpbWUg c2NhbGVzIGZvciB0aGVzZSBldmVudHMgZG9uJ3QgcmVxdWlyZSB0aGF0IGxldmVsIG9mCnJlc29s dXRpb247IGNvbnNpZGVyIGhvdyBtdWNoIGNvZGUgaGFzIHRvIGdldCBleGVjdXRlZCBiZXR3ZWVu IGEKaGFyZHdhcmUgdmJsYW5rIGlycSB0cmlnZ2VyaW5nIGFuZCB0aGUgdmJsYW5rIGNvdW50ZXIg YmVpbmcgdXBkYXRlZC4KClJlYWxpc3RpY2FsbHksIHRoZSBvbmx5IHJlbGV2YW50IHJlcXVpcmVt ZW50IGlzIHRoYXQgdGhlIHRpbWVzdGFtcAptYXRjaCB0aGUgY291bnRlci4KCj4gCj4+ICAgfQo+ PiAgIEVYUE9SVF9TWU1CT0woZHJtX3ZibGFua19jb3VudCk7Cj4+Cj4+IEBAIC04OTcsMTYgKzkx MiwxNyBAQCB1MzIgZHJtX3ZibGFua19jb3VudF9hbmRfdGltZShzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2LCBpbnQgY3J0YywKPj4gICAgICAgaWYgKFdBUk5fT04oY3J0YyA+PSBkZXYtPm51bV9jcnRj cykpCj4+ICAgICAgICAgICByZXR1cm4gMDsKPj4KPj4gLSAgICAvKiBSZWFkIHRpbWVzdGFtcCBm cm9tIHNsb3Qgb2YgX3ZibGFua190aW1lIHJpbmdidWZmZXIKPj4gLSAgICAgKiB0aGF0IGNvcnJl c3BvbmRzIHRvIGN1cnJlbnQgdmJsYW5rIGNvdW50LiBSZXRyeSBpZgo+PiAtICAgICAqIGNvdW50 IGhhcyBpbmNyZW1lbnRlZCBkdXJpbmcgcmVhZG91dC4gVGhpcyB3b3JrcyBsaWtlCj4+IC0gICAg ICogYSBzZXFsb2NrLgo+PiArICAgIC8qCj4+ICsgICAgICogVmJsYW5rIHRpbWVzdGFtcHMgYXJl IHJlYWQgbG9ja2xlc3MuIFRvIGVuc3VyZSBjb25zaXN0ZW5jeSB0aGUgdmJsYW5rCj4+ICsgICAg ICogY291bnRlciBpcyByZWNoZWNrZWQgYW5kIG9yZGVyaW5nIGlzIGVuc3VyZWQgdXNpbmcgbWVt b3J5IGJhcnJpZXJzLgo+PiArICAgICAqIFRoaXMgd29ya3MgbGlrZSBhIHNlcWxvY2suIFRoZSB3 cml0ZS1zaWRlIGJhcnJpZXJzIGFyZSBpbiBzdG9yZV92YmxhbmsuCj4+ICAgICAgICAqLwo+PiAg ICAgICBkbyB7Cj4+IC0gICAgICAgIGN1cl92YmxhbmsgPSBhdG9taWNfcmVhZCgmdmJsYW5rLT5j b3VudCk7Cj4+ICsgICAgICAgIGN1cl92YmxhbmsgPSB2YmxhbmstPmNvdW50Owo+PiArICAgICAg ICBzbXBfcm1iKCk7Cj4+ICAgICAgICAgICAqdmJsYW5rdGltZSA9IHZibGFua3RpbWVzdGFtcChk ZXYsIGNydGMsIGN1cl92YmxhbmspOwo+PiAgICAgICAgICAgc21wX3JtYigpOwo+PiAtICAgIH0g d2hpbGUgKGN1cl92YmxhbmsgIT0gYXRvbWljX3JlYWQoJnZibGFuay0+Y291bnQpKTsKPj4gKyAg ICB9IHdoaWxlIChjdXJfdmJsYW5rICE9IHZibGFuay0+Y291bnQpOwo+Pgo+IAo+IFNpbWlsYXIg cXVlc3Rpb24gYXMgYWJvdmUuIFdlIGhhdmUgYSBuZXcgc21wX3JtYigpIGFmdGVyIHRoZSBjdXJf dmJsYW5rIGFzc2lnbm1lbnQgYW5kIHRoZW4gYWZ0ZXIgKnZibGFua3RpbWUgYXNzaWdubWVudC4g TXkgb3JpZ2luYWwgd3JvbmcgYXNzdW1wdGlvbiB3YXMgdGhhdCB0aGUgZmlyc3Qgc21wX3JtYigp IHdvdWxkbid0IGJlIG5lZWRlZCBiZWNhdXNlIGF0b21pY19yZWFkKCkgd291bGQgaW1wbHkgdGhh dCwgYW5kIHRoYXQgdGhlIGNvbXBpbGVyL2NwdSBjb3VsZG4ndCByZW9yZGVyIGFueXRoaW5nIGhl cmUgYmVjYXVzZSB0aGUgKnZibGFua3RpbWUgYXNzaWdubWVudCBkZXBlbmRzIG9uIGN1cl92Ymxh bmsgZnJvbSB0aGUgcHJlY2VlZGluZyBhdG9taWNfcmVhZC4KPiAKPiBCdXQgd2h5IGNhbiB3ZSBu b3cgZG8gdGhlIGNvbXBhcmlzb24gd2hpbGUoY3VyX3ZibGFuayAhPSB2YmxhbmstPmNvdW50KSB3 aXRob3V0IG5lZWRpbmcgc29tZXRoaW5nIGxpa2UKPiAKPiAgICAgbmV3X3ZibGFuayA9IHZibGFu ay0+Y291bnQ7Cj4gICAgIHNtcF9ybWIoKTsKPiAgICB9IHdoaWxlIChjdXJfdmJsYW5rICE9IG5l d192YmxhbmspOwo+IAo+IHRvIG1ha2Ugc3VyZSB0aGUgdmFsdWUgZnJvbSB0aGUgMm5kIHZibGFu ay0+Y291bnQgcmVhZCBpc24ndCBzdGFsZSB3cnQuIHRvIHBvdGVudGlhbCB1cGRhdGVzIGZyb20g c3RvcmVfdmJsYW5rKCk/CgpTaW1pbGFyIHJlc3BvbnNlIGhlcmUuCgpXaGF0IG1hdHRlcnMgaXMg dGhhdCB0aGUgdGltZXN0YW1wIHJlYWQgaXMgY29uc2lzdGVudCB3aXRoIHRoZQp2YmxhbmsgY291 bnQ7IG5vdCB0aGF0IHlvdSAianVzdCBtaXNzZWQiIG5ldyB2YWx1ZXMuCgo+IEFub3RoZXIgcXVl c3Rpb24gaXMgd2h5IHRoZSBkcm1fdmJsYW5rX2NvdW50X2FuZF90aW1lKCkgY29kZSBldmVyIHdv cmtlZCB3aXRob3V0IHRyaWdnZXJpbmcgYW55IG9mIG15IG93biB0ZXN0cyBhbmQgY29uc2lzdGVu Y3kgY2hlY2tzIGluIG15IHNvZnR3YXJlLCBvciBhbnkgb2YgeW91ciBpZ3QgdGVzdHM/IEkgcnVu IG15IHRlc3RzIHZlcnkgb2Z0ZW4sIGJ1dCBvbmx5IG9uIEludGVsIGFyY2hpdGVjdHVyZSBjcHVz LiBJIGFzc3VtZSB0aGUgc2FtZSBpcyB0cnVlIGZvciB0aGUgaWd0IHRlc3RzPyBJcyB0aGVyZSBh bnl0aGluZyBzcGVjaWZpYyBhYm91dCBJbnRlbCBjcHUncyB0aGF0IG1ha2VzIHRoaXMgc3RpbGwg d29yayBvciB2ZXJ5IHVubGlrZWx5IHRvIGJyZWFrPyBPciBhcmUgdGhlIHRlc3RzIGluc3VmZmlj aWVudCB0byBjYXRjaCB0aGlzPyBPciBqdXN0IGx1Y2s/CgpJbnRlbCB4ODYgY3B1cyBhcmUgc3Ry b25nbHktb3JkZXJlZCwgc28gc21wX3JtYigpIGFuZCBzbXBfd21iKCkgYXJlIG9ubHkKY29tcGls ZXIgYmFycmllcnMgb24geDg2IGFyY2guCgpUaGUgY29tcGlsZXIgY291bGQgaGF2ZSBob2lzdGVk IHRoZSB2Ymxhbmt0aW1lc3RhbXAgcmVhZCBpbiBmcm9udCBvZgp0aGUgdmJsYW5rIGNvdW50IHJl YWQsIGJ1dCBjaG9zZSBub3QgdG8uCgo+IEkgbG9va2VkIHRocm91Z2gga2VybmVscyBiYWNrIHRv IDMuMTYgYW5kIG1vc3QgdXNlcyBvZiB0aGUgZnVuY3Rpb24gd291bGQgYmUgc2FmZSBmcm9tIHJh Y2VzIGR1ZSB0byB0aGUgbG9ja2luZyBhcm91bmQgaXQsIGhvbGRpbmcgb2YgdmJsYW5rIHJlZmNv dW50cywgb3IgdGhlIHBsYWNlIGFuZCBvcmRlciBvZiBleGVjdXRpb24sIGUuZy4sIGZyb20gd2l0 aGluIGRybV9oYW5kbGVfdmJsYW5rKCkuIEJ1dCBpbiBzb21lIHRpZ2h0IHRlc3QgbG9vcCBqdXN0 IGNhbGxpbmcgdGhlIGRybVdhaXRWYmxhbmsgaW9jdGwgdG8gcXVlcnkgY3VycmVudCB2YWx1ZXMg aSdkIGV4cGVjdCBpdCB0byBhdCBsZWFzdCBvY2Nhc3Npb25hbGx5IHJldHVybiBjb3JydXB0ZWQg dGltZXN0YW1wcywgZS5nLiwgdGltZSBqdW1waW5nIGZvcndhcmQgb3IgYmFja3dhcmQsIGV0Yy4/ CgpBcyBhIHRlc3QsIHJldmVyc2UgdGhlIGxvYWQgb3JkZXIgb2YgdmJsYW5rdGltZXN0YW1wIHdy dCB2YmxhbmsgY291bnQKYW5kIHNlZSBpZiB5b3VyIHRlc3RzIHRyaXA7IGlmIG5vdCwgeW91IGtu b3cgdGhlIHRlc3RzIGFyZSBpbnN1ZmZpY2llbnQuCgpSZWdhcmRzLApQZXRlciBIdXJsZXkKCj4g Cj4+ICAgICAgIHJldHVybiBjdXJfdmJsYW5rOwo+PiAgIH0KPj4gQEAgLTE3MTUsNyArMTczMSw3 IEBAIGJvb2wgZHJtX2hhbmRsZV92Ymxhbmsoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgaW50IGNy dGMpCj4+ICAgICAgICAqLwo+Pgo+PiAgICAgICAvKiBHZXQgY3VycmVudCB0aW1lc3RhbXAgYW5k IGNvdW50LiAqLwo+PiAtICAgIHZibGNvdW50ID0gYXRvbWljX3JlYWQoJnZibGFuay0+Y291bnQp Owo+PiArICAgIHZibGNvdW50ID0gdmJsYW5rLT5jb3VudDsKPj4gICAgICAgZHJtX2dldF9sYXN0 X3ZibHRpbWVzdGFtcChkZXYsIGNydGMsICZ0dmJsYW5rLCBEUk1fQ0FMTEVEX0ZST01fVkJMSVJR KTsKPj4KPj4gICAgICAgLyogQ29tcHV0ZSB0aW1lIGRpZmZlcmVuY2UgdG8gdGltZXN0YW1wIG9m IGxhc3QgdmJsYW5rICovCj4+IEBAIC0xNzMxLDIwICsxNzQ3LDExIEBAIGJvb2wgZHJtX2hhbmRs ZV92Ymxhbmsoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgaW50IGNydGMpCj4+ICAgICAgICAqIGUu Zy4sIGR1ZSB0byBzcHVyaW91cyB2YmxhbmsgaW50ZXJydXB0cy4gV2UgbmVlZCB0bwo+PiAgICAg ICAgKiBpZ25vcmUgdGhvc2UgZm9yIGFjY291bnRpbmcuCj4+ICAgICAgICAqLwo+PiAtICAgIGlm IChhYnM2NChkaWZmX25zKSA+IERSTV9SRURVTkRBTlRfVkJMSVJRX1RIUkVTSF9OUykgewo+PiAt ICAgICAgICAvKiBTdG9yZSBuZXcgdGltZXN0YW1wIGluIHJpbmdidWZmZXIuICovCj4+IC0gICAg ICAgIHZibGFua3RpbWVzdGFtcChkZXYsIGNydGMsIHZibGNvdW50ICsgMSkgPSB0dmJsYW5rOwo+ PiAtCj4+IC0gICAgICAgIC8qIEluY3JlbWVudCBjb29rZWQgdmJsYW5rIGNvdW50LiBUaGlzIGFs c28gYXRvbWljYWxseSBjb21taXRzCj4+IC0gICAgICAgICAqIHRoZSB0aW1lc3RhbXAgY29tcHV0 ZWQgYWJvdmUuCj4+IC0gICAgICAgICAqLwo+PiAtICAgICAgICBzbXBfbWJfX2JlZm9yZV9hdG9t aWMoKTsKPj4gLSAgICAgICAgYXRvbWljX2luYygmdmJsYW5rLT5jb3VudCk7Cj4+IC0gICAgICAg IHNtcF9tYl9fYWZ0ZXJfYXRvbWljKCk7Cj4+IC0gICAgfSBlbHNlIHsKPj4gKyAgICBpZiAoYWJz NjQoZGlmZl9ucykgPiBEUk1fUkVEVU5EQU5UX1ZCTElSUV9USFJFU0hfTlMpCj4+ICsgICAgICAg IHN0b3JlX3ZibGFuayhkZXYsIGNydGMsIDEsICZ0dmJsYW5rKTsKPj4gKyAgICBlbHNlCj4+ICAg ICAgICAgICBEUk1fREVCVUcoImNydGMgJWQ6IFJlZHVuZGFudCB2YmxpcnEgaWdub3JlZC4gZGlm Zl9ucyA9ICVkXG4iLAo+PiAgICAgICAgICAgICAgICAgY3J0YywgKGludCkgZGlmZl9ucyk7Cj4+ IC0gICAgfQo+Pgo+PiAgICAgICBzcGluX3VubG9jaygmZGV2LT52YmxhbmtfdGltZV9sb2NrKTsK Pj4KPj4gZGlmZiAtLWdpdCBhL2luY2x1ZGUvZHJtL2RybVAuaCBiL2luY2x1ZGUvZHJtL2RybVAu aAo+PiBpbmRleCA2MmM0MDc3N2MwMDkuLjRjMzFhMmNjNWEzMyAxMDA2NDQKPj4gLS0tIGEvaW5j bHVkZS9kcm0vZHJtUC5oCj4+ICsrKyBiL2luY2x1ZGUvZHJtL2RybVAuaAo+PiBAQCAtNjg2LDkg KzY4NiwxMyBAQCBzdHJ1Y3QgZHJtX3BlbmRpbmdfdmJsYW5rX2V2ZW50IHsKPj4gICBzdHJ1Y3Qg ZHJtX3ZibGFua19jcnRjIHsKPj4gICAgICAgc3RydWN0IGRybV9kZXZpY2UgKmRldjsgICAgICAg IC8qIHBvaW50ZXIgdG8gdGhlIGRybV9kZXZpY2UgKi8KPj4gICAgICAgd2FpdF9xdWV1ZV9oZWFk X3QgcXVldWU7ICAgIC8qKjwgVkJMQU5LIHdhaXQgcXVldWUgKi8KPj4gLSAgICBzdHJ1Y3QgdGlt ZXZhbCB0aW1lW0RSTV9WQkxBTktUSU1FX1JCU0laRV07ICAgIC8qKjwgdGltZXN0YW1wIG9mIGN1 cnJlbnQgY291bnQgKi8KPj4gICAgICAgc3RydWN0IHRpbWVyX2xpc3QgZGlzYWJsZV90aW1lcjsg ICAgICAgIC8qIGRlbGF5ZWQgZGlzYWJsZSB0aW1lciAqLwo+PiAtICAgIGF0b21pY190IGNvdW50 OyAgICAgICAgICAgIC8qKjwgbnVtYmVyIG9mIFZCTEFOSyBpbnRlcnJ1cHRzICovCj4+ICsKPj4g KyAgICAvKiB2YmxhbmsgY291bnRlciwgcHJvdGVjdGVkIGJ5IGRldi0+dmJsYW5rX3RpbWVfbG9j ayBmb3Igd3JpdGVzICovCj4+ICsgICAgdW5zaWduZWQgbG9uZyBjb3VudDsKPiAKPiBXaHkgaXMg Y291bnQgYW4gdW5zaWduZWQgbG9uZyAoPSA2NCBiaXQgb24gNjQtYml0IGtlcm5lbHMpIGluc3Rl YWQgb2YgdTMyIHdoZW4gYWxsIHVzZXJzIG9mIGNvdW50IGFyZSB1MzI/IElzIHRoaXMgaW50ZW50 aW9uYWw/Cj4gCj4gCj4+ICsgICAgLyogdmJsYW5rIHRpbWVzdGFtcHMsIHByb3RlY3RlZCBieSBk ZXYtPnZibGFua190aW1lX2xvY2sgZm9yIHdyaXRlcyAqLwo+PiArICAgIHN0cnVjdCB0aW1ldmFs IHRpbWVbRFJNX1ZCTEFOS1RJTUVfUkJTSVpFXTsKPj4gKwo+PiAgICAgICBhdG9taWNfdCByZWZj b3VudDsgICAgICAgIC8qIG51bWJlciBvZiB1c2VycyBvZiB2YmxhbmsgaW50ZXJydXB0c3BlciBj cnRjICovCj4+ICAgICAgIHUzMiBsYXN0OyAgICAgICAgICAgIC8qIHByb3RlY3RlZCBieSBkZXYt PnZibF9sb2NrLCB1c2VkICovCj4+ICAgICAgICAgICAgICAgICAgICAgICAvKiBmb3Igd3JhcGFy b3VuZCBoYW5kbGluZyAqLwo+Pgo+IAo+IFRoYW5rcywKPiAtbWFyaW8KCl9fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QK SW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Au b3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==