From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: [PATCH 10/37] drm/doc: vblank cleanup Date: Wed, 24 May 2017 16:51:45 +0200 Message-ID: <20170524145212.27837-11-daniel.vetter@ffwll.ch> References: <20170524145212.27837-1-daniel.vetter@ffwll.ch> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20170524145212.27837-1-daniel.vetter@ffwll.ch> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: DRI Development Cc: Daniel Vetter , Intel Graphics Development , Daniel Vetter List-Id: dri-devel@lists.freedesktop.org VW5pZnkgYW5kIHJldmlldyBldmVyeXRoaW5nLCBwbHVzIG1ha2Ugc3VyZSBpdCdzIGFsbCBjb3Jy ZWN0IG1hcmt1cC4KRHJvcCB0aGUga2VybmVsLWRvYyBmb3IgaW50ZXJuYWwgZnVuY3Rpb25zLiBB bHNvIHJld29yayB0aGUgb3ZlcnZpZXcKc2VjdGlvbiwgaXQncyBiZWNvbWUgcmF0aGVyIG91dGRh dGVkLgoKVW5mb3J0dWFudGVseSB0aGUga2VybmVsLWRvYyBpbiBkcm1fZHJpdmVyIGlzbid0IHJl bmRlcmVkIHlldCwgYnV0CnRoYXQgd2lsbCBjaGFuZ2UgYXMgc29vbiBhcyBkcm1fZHJpdmVyIGlz IGtlcm5lbC1kb2NpZmllZCBwcm9wZXJseS4KCkFsc28gZG9jdW1lbnQgcHJvcGVybHkgdGhhdCBk cm1fdmJsYW5rX2NsZWFudXAgaXMgb3B0aW9uYWwsIHRoZSBjb3JlCmNhbGxzIHRoaXMgYWxyZWFk eS4KClNpZ25lZC1vZmYtYnk6IERhbmllbCBWZXR0ZXIgPGRhbmllbC52ZXR0ZXJAaW50ZWwuY29t PgotLS0KIERvY3VtZW50YXRpb24vZ3B1L2RybS1rbXMucnN0IHwgIDU2ICstLS0tLS0tLS0tLS0t LQogZHJpdmVycy9ncHUvZHJtL2RybV92YmxhbmsuYyAgfCAxNTcgKysrKysrKysrKysrKysrKysr KystLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiBpbmNsdWRlL2RybS9kcm1QLmggICAgICAgICAgICB8 ICAzNyArKysrKysrKy0tCiBpbmNsdWRlL2RybS9kcm1fY3J0Yy5oICAgICAgICB8ICAgMyArCiA0 IGZpbGVzIGNoYW5nZWQsIDExMiBpbnNlcnRpb25zKCspLCAxNDEgZGVsZXRpb25zKC0pCgpkaWZm IC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9ncHUvZHJtLWttcy5yc3QgYi9Eb2N1bWVudGF0aW9uL2dw dS9kcm0ta21zLnJzdAppbmRleCAwNzQ5MDAwYWIzZDcuLjMwNzI4NDEyNWQ3YSAxMDA2NDQKLS0t IGEvRG9jdW1lbnRhdGlvbi9ncHUvZHJtLWttcy5yc3QKKysrIGIvRG9jdW1lbnRhdGlvbi9ncHUv ZHJtLWttcy5yc3QKQEAgLTU1MSw2MCArNTUxLDggQEAgdmFyaW91cyBtb2R1bGVzL2RyaXZlcnMu CiBWZXJ0aWNhbCBCbGFua2luZwogPT09PT09PT09PT09PT09PT0KIAotVmVydGljYWwgYmxhbmtp bmcgcGxheXMgYSBtYWpvciByb2xlIGluIGdyYXBoaWNzIHJlbmRlcmluZy4gVG8gYWNoaWV2ZQot dGVhci1mcmVlIGRpc3BsYXksIHVzZXJzIG11c3Qgc3luY2hyb25pemUgcGFnZSBmbGlwcyBhbmQv b3IgcmVuZGVyaW5nIHRvCi12ZXJ0aWNhbCBibGFua2luZy4gVGhlIERSTSBBUEkgb2ZmZXJzIGlv Y3RscyB0byBwZXJmb3JtIHBhZ2UgZmxpcHMKLXN5bmNocm9uaXplZCB0byB2ZXJ0aWNhbCBibGFu a2luZyBhbmQgd2FpdCBmb3IgdmVydGljYWwgYmxhbmtpbmcuCi0KLVRoZSBEUk0gY29yZSBoYW5k bGVzIG1vc3Qgb2YgdGhlIHZlcnRpY2FsIGJsYW5raW5nIG1hbmFnZW1lbnQgbG9naWMsCi13aGlj aCBpbnZvbHZlcyBmaWx0ZXJpbmcgb3V0IHNwdXJpb3VzIGludGVycnVwdHMsIGtlZXBpbmcgcmFj ZS1mcmVlCi1ibGFua2luZyBjb3VudGVycywgY29waW5nIHdpdGggY291bnRlciB3cmFwLWFyb3Vu ZCBhbmQgcmVzZXRzIGFuZAota2VlcGluZyB1c2UgY291bnRzLiBJdCByZWxpZXMgb24gdGhlIGRy aXZlciB0byBnZW5lcmF0ZSB2ZXJ0aWNhbAotYmxhbmtpbmcgaW50ZXJydXB0cyBhbmQgb3B0aW9u YWxseSBwcm92aWRlIGEgaGFyZHdhcmUgdmVydGljYWwgYmxhbmtpbmcKLWNvdW50ZXIuIERyaXZl cnMgbXVzdCBpbXBsZW1lbnQgdGhlIGZvbGxvd2luZyBvcGVyYXRpb25zLgotCi0tICBpbnQgKFwq ZW5hYmxlX3ZibGFuaykgKHN0cnVjdCBkcm1fZGV2aWNlIFwqZGV2LCBpbnQgY3J0Yyk7IHZvaWQK LSAgIChcKmRpc2FibGVfdmJsYW5rKSAoc3RydWN0IGRybV9kZXZpY2UgXCpkZXYsIGludCBjcnRj KTsKLSAgIEVuYWJsZSBvciBkaXNhYmxlIHZlcnRpY2FsIGJsYW5raW5nIGludGVycnVwdHMgZm9y IHRoZSBnaXZlbiBDUlRDLgotCi0tICB1MzIgKFwqZ2V0X3ZibGFua19jb3VudGVyKSAoc3RydWN0 IGRybV9kZXZpY2UgXCpkZXYsIGludCBjcnRjKTsKLSAgIFJldHJpZXZlIHRoZSB2YWx1ZSBvZiB0 aGUgdmVydGljYWwgYmxhbmtpbmcgY291bnRlciBmb3IgdGhlIGdpdmVuCi0gICBDUlRDLiBJZiB0 aGUgaGFyZHdhcmUgbWFpbnRhaW5zIGEgdmVydGljYWwgYmxhbmtpbmcgY291bnRlciBpdHMgdmFs dWUKLSAgIHNob3VsZCBiZSByZXR1cm5lZC4gT3RoZXJ3aXNlIGRyaXZlcnMgY2FuIHVzZSB0aGUK LSAgIDpjOmZ1bmM6YGRybV92YmxhbmtfY291bnQoKWAgaGVscGVyIGZ1bmN0aW9uIHRvIGhhbmRs ZSB0aGlzCi0gICBvcGVyYXRpb24uCi0KLURyaXZlcnMgbXVzdCBpbml0aWFsaXplIHRoZSB2ZXJ0 aWNhbCBibGFua2luZyBoYW5kbGluZyBjb3JlIHdpdGggYSBjYWxsCi10byA6YzpmdW5jOmBkcm1f dmJsYW5rX2luaXQoKWAgaW4gdGhlaXIgbG9hZCBvcGVyYXRpb24uCi0KLVZlcnRpY2FsIGJsYW5r aW5nIGludGVycnVwdHMgY2FuIGJlIGVuYWJsZWQgYnkgdGhlIERSTSBjb3JlIG9yIGJ5Ci1kcml2 ZXJzIHRoZW1zZWx2ZXMgKGZvciBpbnN0YW5jZSB0byBoYW5kbGUgcGFnZSBmbGlwcGluZyBvcGVy YXRpb25zKS4KLVRoZSBEUk0gY29yZSBtYWludGFpbnMgYSB2ZXJ0aWNhbCBibGFua2luZyB1c2Ug Y291bnQgdG8gZW5zdXJlIHRoYXQgdGhlCi1pbnRlcnJ1cHRzIGFyZSBub3QgZGlzYWJsZWQgd2hp bGUgYSB1c2VyIHN0aWxsIG5lZWRzIHRoZW0uIFRvIGluY3JlbWVudAotdGhlIHVzZSBjb3VudCwg ZHJpdmVycyBjYWxsIDpjOmZ1bmM6YGRybV92YmxhbmtfZ2V0KClgLiBVcG9uCi1yZXR1cm4gdmVy dGljYWwgYmxhbmtpbmcgaW50ZXJydXB0cyBhcmUgZ3VhcmFudGVlZCB0byBiZSBlbmFibGVkLgot Ci1UbyBkZWNyZW1lbnQgdGhlIHVzZSBjb3VudCBkcml2ZXJzIGNhbGwKLTpjOmZ1bmM6YGRybV92 YmxhbmtfcHV0KClgLiBPbmx5IHdoZW4gdGhlIHVzZSBjb3VudCBkcm9wcyB0byB6ZXJvCi13aWxs IHRoZSBEUk0gY29yZSBkaXNhYmxlIHRoZSB2ZXJ0aWNhbCBibGFua2luZyBpbnRlcnJ1cHRzIGFm dGVyIGEgZGVsYXkKLWJ5IHNjaGVkdWxpbmcgYSB0aW1lci4gVGhlIGRlbGF5IGlzIGFjY2Vzc2li bGUgdGhyb3VnaCB0aGUKLXZibGFua29mZmRlbGF5IG1vZHVsZSBwYXJhbWV0ZXIgb3IgdGhlIGBg ZHJtX3ZibGFua19vZmZkZWxheWBgIGdsb2JhbAotdmFyaWFibGUgYW5kIGV4cHJlc3NlZCBpbiBt aWxsaXNlY29uZHMuIEl0cyBkZWZhdWx0IHZhbHVlIGlzIDUwMDAgbXMuCi1aZXJvIG1lYW5zIG5l dmVyIGRpc2FibGUsIGFuZCBhIG5lZ2F0aXZlIHZhbHVlIG1lYW5zIGRpc2FibGUKLWltbWVkaWF0 ZWx5LiBEcml2ZXJzIG1heSBvdmVycmlkZSB0aGUgYmVoYXZpb3VyIGJ5IHNldHRpbmcgdGhlCi06 Yzp0eXBlOmBzdHJ1Y3QgZHJtX2RldmljZSA8ZHJtX2RldmljZT5gCi12YmxhbmtfZGlzYWJsZV9p bW1lZGlhdGUgZmxhZywgd2hpY2ggd2hlbiBzZXQgY2F1c2VzIHZibGFuayBpbnRlcnJ1cHRzCi10 byBiZSBkaXNhYmxlZCBpbW1lZGlhdGVseSByZWdhcmRsZXNzIG9mIHRoZSBkcm1fdmJsYW5rX29m ZmRlbGF5Ci12YWx1ZS4gVGhlIGZsYWcgc2hvdWxkIG9ubHkgYmUgc2V0IGlmIHRoZXJlJ3MgYSBw cm9wZXJseSB3b3JraW5nCi1oYXJkd2FyZSB2YmxhbmsgY291bnRlciBwcmVzZW50LgotCi1XaGVu IGEgdmVydGljYWwgYmxhbmtpbmcgaW50ZXJydXB0IG9jY3VycyBkcml2ZXJzIG9ubHkgbmVlZCB0 byBjYWxsIHRoZQotOmM6ZnVuYzpgZHJtX2hhbmRsZV92YmxhbmsoKWAgZnVuY3Rpb24gdG8gYWNj b3VudCBmb3IgdGhlCi1pbnRlcnJ1cHQuCi0KLVJlc291cmNlcyBhbGxvY2F0ZWQgYnkgOmM6ZnVu YzpgZHJtX3ZibGFua19pbml0KClgIG11c3QgYmUgZnJlZWQKLXdpdGggYSBjYWxsIHRvIDpjOmZ1 bmM6YGRybV92YmxhbmtfY2xlYW51cCgpYCBpbiB0aGUgZHJpdmVyIHVubG9hZAotb3BlcmF0aW9u IGhhbmRsZXIuCisuLiBrZXJuZWwtZG9jOjogZHJpdmVycy9ncHUvZHJtL2RybV92YmxhbmsuYwor ICAgOmRvYzogdmJsYW5rIGhhbmRsaW5nCiAKIFZlcnRpY2FsIEJsYW5raW5nIGFuZCBJbnRlcnJ1 cHQgSGFuZGxpbmcgRnVuY3Rpb25zIFJlZmVyZW5jZQogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCmRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vZHJtX3ZibGFuay5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV92YmxhbmsuYwppbmRl eCA0NjNlNGQ4MWZiMGQuLjczMDIzZDQ2M2RjNyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJt L2RybV92YmxhbmsuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX3ZibGFuay5jCkBAIC0zMSw2 ICszMSw0MSBAQAogI2luY2x1ZGUgImRybV90cmFjZS5oIgogI2luY2x1ZGUgImRybV9pbnRlcm5h bC5oIgogCisvKioKKyAqIERPQzogdmJsYW5rIGhhbmRsaW5nCisgKgorICogVmVydGljYWwgYmxh bmtpbmcgcGxheXMgYSBtYWpvciByb2xlIGluIGdyYXBoaWNzIHJlbmRlcmluZy4gVG8gYWNoaWV2 ZQorICogdGVhci1mcmVlIGRpc3BsYXksIHVzZXJzIG11c3Qgc3luY2hyb25pemUgcGFnZSBmbGlw cyBhbmQvb3IgcmVuZGVyaW5nIHRvCisgKiB2ZXJ0aWNhbCBibGFua2luZy4gVGhlIERSTSBBUEkg b2ZmZXJzIGlvY3RscyB0byBwZXJmb3JtIHBhZ2UgZmxpcHMKKyAqIHN5bmNocm9uaXplZCB0byB2 ZXJ0aWNhbCBibGFua2luZyBhbmQgd2FpdCBmb3IgdmVydGljYWwgYmxhbmtpbmcuCisgKgorICog VGhlIERSTSBjb3JlIGhhbmRsZXMgbW9zdCBvZiB0aGUgdmVydGljYWwgYmxhbmtpbmcgbWFuYWdl bWVudCBsb2dpYywgd2hpY2gKKyAqIGludm9sdmVzIGZpbHRlcmluZyBvdXQgc3B1cmlvdXMgaW50 ZXJydXB0cywga2VlcGluZyByYWNlLWZyZWUgYmxhbmtpbmcKKyAqIGNvdW50ZXJzLCBjb3Bpbmcg d2l0aCBjb3VudGVyIHdyYXAtYXJvdW5kIGFuZCByZXNldHMgYW5kIGtlZXBpbmcgdXNlIGNvdW50 cy4KKyAqIEl0IHJlbGllcyBvbiB0aGUgZHJpdmVyIHRvIGdlbmVyYXRlIHZlcnRpY2FsIGJsYW5r aW5nIGludGVycnVwdHMgYW5kCisgKiBvcHRpb25hbGx5IHByb3ZpZGUgYSBoYXJkd2FyZSB2ZXJ0 aWNhbCBibGFua2luZyBjb3VudGVyLgorICoKKyAqIERyaXZlcnMgbXVzdCBpbml0aWFsaXplIHRo ZSB2ZXJ0aWNhbCBibGFua2luZyBoYW5kbGluZyBjb3JlIHdpdGggYSBjYWxsIHRvCisgKiBkcm1f dmJsYW5rX2luaXQoKS4gTWluaW1hbGx5LCBhIGRyaXZlciBuZWVkcyB0byBpbXBsZW1lbnQKKyAq ICZkcm1fY3J0Y19mdW5jcy5lbmFibGVfdmJsYW5rIGFuZCAmZHJtX2NydGNfZnVuY3MuZGlzYWJs ZV92YmxhbmsgcGx1cyBjYWxsCisgKiBkcm1fY3J0Y19oYW5kbGVfdmJsYW5rKCkgaW4gaXQncyB2 YmxhbmsgaW50ZXJydXB0IGhhbmRsZXIgZm9yIHdvcmtpbmcgdmJsYW5rCisgKiBzdXBwb3J0Lgor ICoKKyAqIFZlcnRpY2FsIGJsYW5raW5nIGludGVycnVwdHMgY2FuIGJlIGVuYWJsZWQgYnkgdGhl IERSTSBjb3JlIG9yIGJ5IGRyaXZlcnMKKyAqIHRoZW1zZWx2ZXMgKGZvciBpbnN0YW5jZSB0byBo YW5kbGUgcGFnZSBmbGlwcGluZyBvcGVyYXRpb25zKS4gIFRoZSBEUk0gY29yZQorICogbWFpbnRh aW5zIGEgdmVydGljYWwgYmxhbmtpbmcgdXNlIGNvdW50IHRvIGVuc3VyZSB0aGF0IHRoZSBpbnRl cnJ1cHRzIGFyZSBub3QKKyAqIGRpc2FibGVkIHdoaWxlIGEgdXNlciBzdGlsbCBuZWVkcyB0aGVt LiBUbyBpbmNyZW1lbnQgdGhlIHVzZSBjb3VudCwgZHJpdmVycworICogY2FsbCBkcm1fY3J0Y192 YmxhbmtfZ2V0KCkgYW5kIHJlbGVhc2UgdGhlIHZibGFuayByZWZlcmVuY2UgYWdhaW4gd2l0aAor ICogZHJtX2NydGNfdmJsYW5rX3B1dCgpLiBJbiBiZXR3ZWVuIHRoZXNlIHR3byBjYWxscyB2Ymxh bmsgaW50ZXJydXB0cyBhcmUKKyAqIGd1YXJhbnRlZWQgdG8gYmUgZW5hYmxlZC4KKyAqCisgKiBP biBtYW55IGhhcmR3YXJlIGRpc2FibGluZyB0aGUgdmJsYW5rIGludGVycnVwdCBjYW5ub3QgYmUg ZG9uZSBpbiBhIHJhY2UtZnJlZQorICogbWFubmVyLCBzZWUgJmRybV9kcml2ZXIudmJsYW5rX2Rp c2FibGVfaW1tZWRpYXRlIGFuZAorICogJmRybV9kcml2ZXIubWF4X3ZibGFua19jb3VudC4gSW4g dGhhdCBjYXNlIHRoZSB2YmxhbmsgY29yZSBvbmx5IGRpc2FibGVzIHRoZQorICogdmJsYW5rcyBh ZnRlciBhIHRpbWVyIGhhcyBleHBpcmVkLCB3aGljaCBjYW4gYmUgY29uZmlndXJlZCB0aHJvdWdo IHRoZQorICogYGB2YmxhbmtvZmZkZWxheWBgIG1vZHVsZSBwYXJhbWV0ZXIuCisgKi8KKwogLyog UmV0cnkgdGltZXN0YW1wIGNhbGN1bGF0aW9uIHVwIHRvIDMgdGltZXMgdG8gc2F0aXNmeQogICog ZHJtX3RpbWVzdGFtcF9wcmVjaXNpb24gYmVmb3JlIGdpdmluZyB1cC4KICAqLwpAQCAtMjYyLDEx ICsyOTcsMTIgQEAgc3RhdGljIHUzMiBkcm1fdmJsYW5rX2NvdW50KHN0cnVjdCBkcm1fZGV2aWNl ICpkZXYsIHVuc2lnbmVkIGludCBwaXBlKQogICogZHJtX2FjY3VyYXRlX3ZibGFua19jb3VudCAt IHJldHJpZXZlIHRoZSBtYXN0ZXIgdmJsYW5rIGNvdW50ZXIKICAqIEBjcnRjOiB3aGljaCBjb3Vu dGVyIHRvIHJldHJpZXZlCiAgKgotICogVGhpcyBmdW5jdGlvbiBpcyBzaW1pbGFyIHRvIEBkcm1f Y3J0Y192YmxhbmtfY291bnQgYnV0IHRoaXMKLSAqIGZ1bmN0aW9uIGludGVycG9sYXRlcyB0byBo YW5kbGUgYSByYWNlIHdpdGggdmJsYW5rIGlycSdzLgorICogVGhpcyBmdW5jdGlvbiBpcyBzaW1p bGFyIHRvIGRybV9jcnRjX3ZibGFua19jb3VudCgpIGJ1dCB0aGlzIGZ1bmN0aW9uCisgKiBpbnRl cnBvbGF0ZXMgdG8gaGFuZGxlIGEgcmFjZSB3aXRoIHZibGFuayBpbnRlcnJ1cHRzIHVzaW5nIHRo ZSBoaWdoIHByZWNpc2lvbgorICogdGltZXN0YW1waW5nIHN1cHBvcnQuCiAgKgotICogVGhpcyBp cyBtb3N0bHkgdXNlZnVsIGZvciBoYXJkd2FyZSB0aGF0IGNhbiBvYnRhaW4gdGhlIHNjYW5vdXQK LSAqIHBvc2l0aW9uLCBidXQgZG9lc24ndCBoYXZlIGEgZnJhbWUgY291bnRlci4KKyAqIFRoaXMg aXMgbW9zdGx5IHVzZWZ1bCBmb3IgaGFyZHdhcmUgdGhhdCBjYW4gb2J0YWluIHRoZSBzY2Fub3V0 IHBvc2l0aW9uLCBidXQKKyAqIGRvZXNuJ3QgaGF2ZSBhIGhhcmR3YXJlIGZyYW1lIGNvdW50ZXIu CiAgKi8KIHUzMiBkcm1fYWNjdXJhdGVfdmJsYW5rX2NvdW50KHN0cnVjdCBkcm1fY3J0YyAqY3J0 YykKIHsKQEAgLTM2MiwxMCArMzk4LDE0IEBAIHN0YXRpYyB2b2lkIHZibGFua19kaXNhYmxlX2Zu KHVuc2lnbmVkIGxvbmcgYXJnKQogICogZHJtX3ZibGFua19jbGVhbnVwIC0gY2xlYW51cCB2Ymxh bmsgc3VwcG9ydAogICogQGRldjogRFJNIGRldmljZQogICoKLSAqIFRoaXMgZnVuY3Rpb24gY2xl YW5zIHVwIGFueSByZXNvdXJjZXMgYWxsb2NhdGVkIGluIGRybV92YmxhbmtfaW5pdC4KKyAqIFRo aXMgZnVuY3Rpb24gY2xlYW5zIHVwIGFueSByZXNvdXJjZXMgYWxsb2NhdGVkIGluIGRybV92Ymxh bmtfaW5pdCgpLiBJdCBpcworICogY2FsbGVkIGJ5IHRoZSBEUk0gY29yZSB3aGVuIEBkZXYgaXMg ZmluYWxpemVkLgorICoKKyAqIERyaXZlcnMgY2FuIGNhbGwgZHJtX3ZibGFua19jbGVhbnVwKCkg aWYgdGhleSBuZWVkIHRvIHF1aWVzY2VudCB0aGUgdmJsYW5rCisgKiBpbnRlcnJ1cHQgaW4gdGhl aXIgdW5sb2FkIGNvZGUuIEJ1dCBpbiBnZW5lcmFsIHRoaXMgc2hvdWxkIGJlIGhhbmRsZWQgYnkK KyAqIGRpc2FibGluZyBhbGwgYWN0aXZlICZkcm1fY3J0YyB0aHJvdWdoIGUuZy4gZHJtX2F0b21p Y19oZWxwZXJfc2h1dGRvd24sIHdoaWNoCisgKiBzaG91bGQgZW5kIHVwIGNhbGxpbmcgZHJtX2Ny dGNfdmJsYW5rX29mZigpLgogICoKLSAqIERyaXZlcnMgd2hpY2ggZG9uJ3QgdXNlIGRybV9pcnFf aW5zdGFsbCgpIG5lZWQgdG8gc2V0ICZkcm1fZGV2aWNlLmlycV9lbmFibGVkCi0gKiB0aGVtc2Vs dmVzLCB0byBzaWduYWwgdG8gdGhlIERSTSBjb3JlIHRoYXQgdmJsYW5rIGludGVycnVwdHMgYXJl IGVuYWJsZWQuCiAgKi8KIHZvaWQgZHJtX3ZibGFua19jbGVhbnVwKHN0cnVjdCBkcm1fZGV2aWNl ICpkZXYpCiB7CkBAIC0zOTYsNiArNDM2LDggQEAgRVhQT1JUX1NZTUJPTChkcm1fdmJsYW5rX2Ns ZWFudXApOwogICogQG51bV9jcnRjczogbnVtYmVyIG9mIENSVENzIHN1cHBvcnRlZCBieSBAZGV2 CiAgKgogICogVGhpcyBmdW5jdGlvbiBpbml0aWFsaXplcyB2Ymxhbmsgc3VwcG9ydCBmb3IgQG51 bV9jcnRjcyBkaXNwbGF5IHBpcGVsaW5lcy4KKyAqIERyaXZlcnMgZG8gbm90IG5lZWQgdG8gY2Fs bCBkcm1fdmJsYW5rX2NsZWFudXAoKSwgY2xlYW51cCBpcyBhbHJlYWR5IGhhbmRsZWQKKyAqIGJ5 IHRoZSBEUk0gY29yZS4KICAqCiAgKiBSZXR1cm5zOgogICogWmVybyBvbiBzdWNjZXNzIG9yIGEg bmVnYXRpdmUgZXJyb3IgY29kZSBvbiBmYWlsdXJlLgpAQCAtNDY4LDExICs1MTAsMTEgQEAgRVhQ T1JUX1NZTUJPTChkcm1fY3J0Y192Ymxhbmtfd2FpdHF1ZXVlKTsKICAqIEBjcnRjOiBkcm1fY3J0 YyB3aG9zZSB0aW1lc3RhbXAgY29uc3RhbnRzIHNob3VsZCBiZSB1cGRhdGVkLgogICogQG1vZGU6 IGRpc3BsYXkgbW9kZSBjb250YWluaW5nIHRoZSBzY2Fub3V0IHRpbWluZ3MKICAqCi0gKiBDYWxj dWxhdGUgYW5kIHN0b3JlIHZhcmlvdXMgY29uc3RhbnRzIHdoaWNoIGFyZSBsYXRlcgotICogbmVl ZGVkIGJ5IHZibGFuayBhbmQgc3dhcC1jb21wbGV0aW9uIHRpbWVzdGFtcGluZywgZS5nLAotICog YnkgZHJtX2NhbGNfdmJsdGltZXN0YW1wX2Zyb21fc2Nhbm91dHBvcygpLiBUaGV5IGFyZQotICog ZGVyaXZlZCBmcm9tIENSVEMncyB0cnVlIHNjYW5vdXQgdGltaW5nLCBzbyB0aGV5IHRha2UKLSAq IHRoaW5ncyBsaWtlIHBhbmVsIHNjYWxpbmcgb3Igb3RoZXIgYWRqdXN0bWVudHMgaW50byBhY2Nv dW50LgorICogQ2FsY3VsYXRlIGFuZCBzdG9yZSB2YXJpb3VzIGNvbnN0YW50cyB3aGljaCBhcmUg bGF0ZXIgbmVlZGVkIGJ5IHZibGFuayBhbmQKKyAqIHN3YXAtY29tcGxldGlvbiB0aW1lc3RhbXBp bmcsIGUuZywgYnkKKyAqIGRybV9jYWxjX3ZibHRpbWVzdGFtcF9mcm9tX3NjYW5vdXRwb3MoKS4g VGhleSBhcmUgZGVyaXZlZCBmcm9tIENSVEMncyB0cnVlCisgKiBzY2Fub3V0IHRpbWluZywgc28g dGhleSB0YWtlIHRoaW5ncyBsaWtlIHBhbmVsIHNjYWxpbmcgb3Igb3RoZXIgYWRqdXN0bWVudHMK KyAqIGludG8gYWNjb3VudC4KICAqLwogdm9pZCBkcm1fY2FsY190aW1lc3RhbXBpbmdfY29uc3Rh bnRzKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKIAkJCQkgICAgIGNvbnN0IHN0cnVjdCBkcm1fZGlz cGxheV9tb2RlICptb2RlKQpAQCAtNTM1LDI1ICs1NzcsMTQgQEAgRVhQT1JUX1NZTUJPTChkcm1f Y2FsY190aW1lc3RhbXBpbmdfY29uc3RhbnRzKTsKICAqICAgICBpZiBmbGFnIGlzIHNldC4KICAq CiAgKiBJbXBsZW1lbnRzIGNhbGN1bGF0aW9uIG9mIGV4YWN0IHZibGFuayB0aW1lc3RhbXBzIGZy b20gZ2l2ZW4gZHJtX2Rpc3BsYXlfbW9kZQotICogdGltaW5ncyBhbmQgY3VycmVudCB2aWRlbyBz Y2Fub3V0IHBvc2l0aW9uIG9mIGEgQ1JUQy4gVGhpcyBjYW4gYmUgY2FsbGVkIGZyb20KLSAqIHdp dGhpbiBnZXRfdmJsYW5rX3RpbWVzdGFtcCgpIGltcGxlbWVudGF0aW9uIG9mIGEga21zIGRyaXZl ciB0byBpbXBsZW1lbnQgdGhlCi0gKiBhY3R1YWwgdGltZXN0YW1waW5nLgotICoKLSAqIFNob3Vs ZCByZXR1cm4gdGltZXN0YW1wcyBjb25mb3JtaW5nIHRvIHRoZSBPTUxfc3luY19jb250cm9sIE9w ZW5NTAotICogZXh0ZW5zaW9uIHNwZWNpZmljYXRpb24uIFRoZSB0aW1lc3RhbXAgY29ycmVzcG9u ZHMgdG8gdGhlIGVuZCBvZgotICogdGhlIHZibGFuayBpbnRlcnZhbCwgYWthIHN0YXJ0IG9mIHNj YW5vdXQgb2YgdG9wbW9zdC1sZWZ0bW9zdCBkaXNwbGF5Ci0gKiBwaXhlbCBpbiB0aGUgZm9sbG93 aW5nIHZpZGVvIGZyYW1lLgotICoKLSAqIFJlcXVpcmVzIHN1cHBvcnQgZm9yIG9wdGlvbmFsIGRl di0+ZHJpdmVyLT5nZXRfc2Nhbm91dF9wb3NpdGlvbigpCi0gKiBpbiBrbXMgZHJpdmVyLCBwbHVz IGEgYml0IG9mIHNldHVwIGNvZGUgdG8gcHJvdmlkZSBhIGRybV9kaXNwbGF5X21vZGUKLSAqIHRo YXQgY29ycmVzcG9uZHMgdG8gdGhlIHRydWUgc2Nhbm91dCB0aW1pbmcuCi0gKgotICogVGhlIGN1 cnJlbnQgaW1wbGVtZW50YXRpb24gb25seSBoYW5kbGVzIHN0YW5kYXJkIHZpZGVvIG1vZGVzLiBJ dAotICogcmV0dXJucyBhcyBubyBvcGVyYXRpb24gaWYgYSBkb3VibGVzY2FuIG9yIGludGVybGFj ZWQgdmlkZW8gbW9kZSBpcwotICogYWN0aXZlLiBIaWdoZXIgbGV2ZWwgY29kZSBpcyBleHBlY3Rl ZCB0byBoYW5kbGUgdGhpcy4KKyAqIHRpbWluZ3MgYW5kIGN1cnJlbnQgdmlkZW8gc2Nhbm91dCBw b3NpdGlvbiBvZiBhIENSVEMuIFRoaXMgY2FuIGJlIGRpcmVjdGx5CisgKiB1c2VkIGFzIHRoZSAm ZHJtX2RyaXZlci5nZXRfdmJsYW5rX3RpbWVzdGFtcCBpbXBsZW1lbnRhdGlvbiBvZiBhIGttcyBk cml2ZXIKKyAqIGlmICZkcm1fZHJpdmVyLmdldF9zY2Fub3V0X3Bvc2l0aW9uIGlzIGltcGxlbWVu dGVkLgogICoKLSAqIFRoaXMgZnVuY3Rpb24gY2FuIGJlIHVzZWQgdG8gaW1wbGVtZW50IHRoZSAm ZHJtX2RyaXZlci5nZXRfdmJsYW5rX3RpbWVzdGFtcAotICogZGlyZWN0bHksIGlmIHRoZSBkcml2 ZXIgaW1wbGVtZW50cyB0aGUgJmRybV9kcml2ZXIuZ2V0X3NjYW5vdXRfcG9zaXRpb24gaG9vay4K KyAqIFRoZSBjdXJyZW50IGltcGxlbWVudGF0aW9uIG9ubHkgaGFuZGxlcyBzdGFuZGFyZCB2aWRl byBtb2Rlcy4gRm9yIGRvdWJsZSBzY2FuCisgKiBhbmQgaW50ZXJsYWNlZCBtb2RlcyB0aGUgZHJp dmVyIGlzIHN1cHBvc2VkIHRvIGFkanVzdCB0aGUgaGFyZHdhcmUgbW9kZQorICogKHRha2VuIGZy b20gJmRybV9jcnRjX3N0YXRlLmFkanVzdGVkIG1vZGUgZm9yIGF0b21pYyBtb2Rlc2V0IGRyaXZl cnMpIHRvCisgKiBtYXRjaCB0aGUgc2Nhbm91dCBwb3NpdGlvbiByZXBvcnRlZC4KICAqCiAgKiBO b3RlIHRoYXQgYXRvbWljIGRyaXZlcnMgbXVzdCBjYWxsIGRybV9jYWxjX3RpbWVzdGFtcGluZ19j b25zdGFudHMoKSBiZWZvcmUKICAqIGVuYWJsaW5nIGEgQ1JUQy4gVGhlIGF0b21pYyBoZWxwZXJz IGFscmVhZHkgdGFrZSBjYXJlIG9mIHRoYXQgaW4KQEAgLTczOCw3ICs3NjksOSBAQCBkcm1fZ2V0 X2xhc3RfdmJsdGltZXN0YW1wKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHVuc2lnbmVkIGludCBw aXBlLAogICoKICAqIEZldGNoZXMgdGhlICJjb29rZWQiIHZibGFuayBjb3VudCB2YWx1ZSB0aGF0 IHJlcHJlc2VudHMgdGhlIG51bWJlciBvZgogICogdmJsYW5rIGV2ZW50cyBzaW5jZSB0aGUgc3lz dGVtIHdhcyBib290ZWQsIGluY2x1ZGluZyBsb3N0IGV2ZW50cyBkdWUgdG8KLSAqIG1vZGVzZXR0 aW5nIGFjdGl2aXR5LgorICogbW9kZXNldHRpbmcgYWN0aXZpdHkuIE5vdGUgdGhhdCB0aGlzIHRp bWVyIGlzbid0IGNvcnJlY3QgYWdhaW5zdCBhIHJhY2luZworICogdmJsYW5rIGludGVycnVwdCAo c2luY2UgaXQgb25seSByZXBvcnRzIHRoZSBzb2Z0d2FyZSB2YmxhbmsgY291bnRlciksIHNlZQor ICogZHJtX2FjY3VyYXRlX3ZibGFua19jb3VudCgpIGZvciBzdWNoIHVzZS1jYXNlcy4KICAqCiAg KiBSZXR1cm5zOgogICogVGhlIHNvZnR3YXJlIHZibGFuayBjb3VudGVyLgpAQCAtNzQ5LDIwICs3 ODIsNiBAQCB1MzIgZHJtX2NydGNfdmJsYW5rX2NvdW50KHN0cnVjdCBkcm1fY3J0YyAqY3J0YykK IH0KIEVYUE9SVF9TWU1CT0woZHJtX2NydGNfdmJsYW5rX2NvdW50KTsKIAotLyoqCi0gKiBkcm1f dmJsYW5rX2NvdW50X2FuZF90aW1lIC0gcmV0cmlldmUgImNvb2tlZCIgdmJsYW5rIGNvdW50ZXIg dmFsdWUgYW5kIHRoZQotICogICAgIHN5c3RlbSB0aW1lc3RhbXAgY29ycmVzcG9uZGluZyB0byB0 aGF0IHZibGFuayBjb3VudGVyIHZhbHVlLgotICogQGRldjogRFJNIGRldmljZQotICogQHBpcGU6 IGluZGV4IG9mIENSVEMgd2hvc2UgY291bnRlciB0byByZXRyaWV2ZQotICogQHZibGFua3RpbWU6 IFBvaW50ZXIgdG8gc3RydWN0IHRpbWV2YWwgdG8gcmVjZWl2ZSB0aGUgdmJsYW5rIHRpbWVzdGFt cC4KLSAqCi0gKiBGZXRjaGVzIHRoZSAiY29va2VkIiB2YmxhbmsgY291bnQgdmFsdWUgdGhhdCBy ZXByZXNlbnRzIHRoZSBudW1iZXIgb2YKLSAqIHZibGFuayBldmVudHMgc2luY2UgdGhlIHN5c3Rl bSB3YXMgYm9vdGVkLCBpbmNsdWRpbmcgbG9zdCBldmVudHMgZHVlIHRvCi0gKiBtb2Rlc2V0dGlu ZyBhY3Rpdml0eS4gUmV0dXJucyBjb3JyZXNwb25kaW5nIHN5c3RlbSB0aW1lc3RhbXAgb2YgdGhl IHRpbWUKLSAqIG9mIHRoZSB2YmxhbmsgaW50ZXJ2YWwgdGhhdCBjb3JyZXNwb25kcyB0byB0aGUg Y3VycmVudCB2YmxhbmsgY291bnRlciB2YWx1ZS4KLSAqCi0gKiBUaGlzIGlzIHRoZSBsZWdhY3kg dmVyc2lvbiBvZiBkcm1fY3J0Y192YmxhbmtfY291bnRfYW5kX3RpbWUoKS4KLSAqLwogc3RhdGlj IHUzMiBkcm1fdmJsYW5rX2NvdW50X2FuZF90aW1lKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHVu c2lnbmVkIGludCBwaXBlLAogCQkJCSAgICAgc3RydWN0IHRpbWV2YWwgKnZibGFua3RpbWUpCiB7 CkBAIC04NTIsOCArODcxLDggQEAgc3RhdGljIHZvaWQgc2VuZF92YmxhbmtfZXZlbnQoc3RydWN0 IGRybV9kZXZpY2UgKmRldiwKICAqIGhhbmRsZXIgYnkgY2FsbGluZyBkcm1fY3J0Y19zZW5kX3Zi bGFua19ldmVudCgpIGFuZCBtYWtlIHN1cmUgdGhhdCB0aGVyZSdzIG5vCiAgKiBwb3NzaWJsZSBy YWNlIHdpdGggdGhlIGhhcmR3YXJlIGNvbW1pdHRpbmcgdGhlIGF0b21pYyB1cGRhdGUuCiAgKgot ICogQ2FsbGVyIG11c3QgaG9sZCBldmVudCBsb2NrLiBDYWxsZXIgbXVzdCBhbHNvIGhvbGQgYSB2 YmxhbmsgcmVmZXJlbmNlIGZvcgotICogdGhlIGV2ZW50IEBlLCB3aGljaCB3aWxsIGJlIGRyb3Bw ZWQgd2hlbiB0aGUgbmV4dCB2YmxhbmsgYXJyaXZlcy4KKyAqIENhbGxlciBtdXN0IGhvbGQgYSB2 YmxhbmsgcmVmZXJlbmNlIGZvciB0aGUgZXZlbnQgQGUsIHdoaWNoIHdpbGwgYmUgZHJvcHBlZAor ICogd2hlbiB0aGUgbmV4dCB2YmxhbmsgYXJyaXZlcy4KICAqLwogdm9pZCBkcm1fY3J0Y19hcm1f dmJsYW5rX2V2ZW50KHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKIAkJCSAgICAgICBzdHJ1Y3QgZHJt X3BlbmRpbmdfdmJsYW5rX2V2ZW50ICplKQpAQCAtOTEzLDE0ICs5MzIsNiBAQCBzdGF0aWMgaW50 IF9fZW5hYmxlX3ZibGFuayhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1bnNpZ25lZCBpbnQgcGlw ZSkKIAlyZXR1cm4gZGV2LT5kcml2ZXItPmVuYWJsZV92YmxhbmsoZGV2LCBwaXBlKTsKIH0KIAot LyoqCi0gKiBkcm1fdmJsYW5rX2VuYWJsZSAtIGVuYWJsZSB0aGUgdmJsYW5rIGludGVycnVwdCBv biBhIENSVEMKLSAqIEBkZXY6IERSTSBkZXZpY2UKLSAqIEBwaXBlOiBDUlRDIGluZGV4Ci0gKgot ICogUmV0dXJuczoKLSAqIFplcm8gb24gc3VjY2VzcyBvciBhIG5lZ2F0aXZlIGVycm9yIGNvZGUg b24gZmFpbHVyZS4KLSAqLwogc3RhdGljIGludCBkcm1fdmJsYW5rX2VuYWJsZShzdHJ1Y3QgZHJt X2RldmljZSAqZGV2LCB1bnNpZ25lZCBpbnQgcGlwZSkKIHsKIAlzdHJ1Y3QgZHJtX3ZibGFua19j cnRjICp2YmxhbmsgPSAmZGV2LT52YmxhbmtbcGlwZV07CkBAIC05NTgsMTkgKzk2OSw2IEBAIHN0 YXRpYyBpbnQgZHJtX3ZibGFua19lbmFibGUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdW5zaWdu ZWQgaW50IHBpcGUpCiAJcmV0dXJuIHJldDsKIH0KIAotLyoqCi0gKiBkcm1fdmJsYW5rX2dldCAt IGdldCBhIHJlZmVyZW5jZSBjb3VudCBvbiB2YmxhbmsgZXZlbnRzCi0gKiBAZGV2OiBEUk0gZGV2 aWNlCi0gKiBAcGlwZTogaW5kZXggb2YgQ1JUQyB0byBvd24KLSAqCi0gKiBBY3F1aXJlIGEgcmVm ZXJlbmNlIGNvdW50IG9uIHZibGFuayBldmVudHMgdG8gYXZvaWQgaGF2aW5nIHRoZW0gZGlzYWJs ZWQKLSAqIHdoaWxlIGluIHVzZS4KLSAqCi0gKiBUaGlzIGlzIHRoZSBsZWdhY3kgdmVyc2lvbiBv ZiBkcm1fY3J0Y192YmxhbmtfZ2V0KCkuCi0gKgotICogUmV0dXJuczoKLSAqIFplcm8gb24gc3Vj Y2VzcyBvciBhIG5lZ2F0aXZlIGVycm9yIGNvZGUgb24gZmFpbHVyZS4KLSAqLwogc3RhdGljIGlu dCBkcm1fdmJsYW5rX2dldChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1bnNpZ25lZCBpbnQgcGlw ZSkKIHsKIAlzdHJ1Y3QgZHJtX3ZibGFua19jcnRjICp2YmxhbmsgPSAmZGV2LT52YmxhbmtbcGlw ZV07CkBAIC0xMDE0LDE2ICsxMDEyLDYgQEAgaW50IGRybV9jcnRjX3ZibGFua19nZXQoc3RydWN0 IGRybV9jcnRjICpjcnRjKQogfQogRVhQT1JUX1NZTUJPTChkcm1fY3J0Y192YmxhbmtfZ2V0KTsK IAotLyoqCi0gKiBkcm1fdmJsYW5rX3B1dCAtIHJlbGVhc2Ugb3duZXJzaGlwIG9mIHZibGFuayBl dmVudHMKLSAqIEBkZXY6IERSTSBkZXZpY2UKLSAqIEBwaXBlOiBpbmRleCBvZiBDUlRDIHRvIHJl bGVhc2UKLSAqCi0gKiBSZWxlYXNlIG93bmVyc2hpcCBvZiBhIGdpdmVuIHZibGFuayBjb3VudGVy LCB0dXJuaW5nIG9mZiBpbnRlcnJ1cHRzCi0gKiBpZiBwb3NzaWJsZS4gRGlzYWJsZSBpbnRlcnJ1 cHRzIGFmdGVyIGRybV92Ymxhbmtfb2ZmZGVsYXkgbWlsbGlzZWNvbmRzLgotICoKLSAqIFRoaXMg aXMgdGhlIGxlZ2FjeSB2ZXJzaW9uIG9mIGRybV9jcnRjX3ZibGFua19wdXQoKS4KLSAqLwogc3Rh dGljIHZvaWQgZHJtX3ZibGFua19wdXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdW5zaWduZWQg aW50IHBpcGUpCiB7CiAJc3RydWN0IGRybV92YmxhbmtfY3J0YyAqdmJsYW5rID0gJmRldi0+dmJs YW5rW3BpcGVdOwpAQCAtMTA2Nyw2ICsxMDU1LDggQEAgRVhQT1JUX1NZTUJPTChkcm1fY3J0Y192 YmxhbmtfcHV0KTsKICAqIFRoaXMgd2FpdHMgZm9yIG9uZSB2YmxhbmsgdG8gcGFzcyBvbiBAcGlw ZSwgdXNpbmcgdGhlIGlycSBkcml2ZXIgaW50ZXJmYWNlcy4KICAqIEl0IGlzIGEgZmFpbHVyZSB0 byBjYWxsIHRoaXMgd2hlbiB0aGUgdmJsYW5rIGlycSBmb3IgQHBpcGUgaXMgZGlzYWJsZWQsIGUu Zy4KICAqIGR1ZSB0byBsYWNrIG9mIGRyaXZlciBzdXBwb3J0IG9yIGJlY2F1c2UgdGhlIGNydGMg aXMgb2ZmLgorICoKKyAqIFRoaXMgaXMgdGhlIGxlZ2FjeSB2ZXJzaW9uIG9mIGRybV9jcnRjX3dh aXRfb25lX3ZibGFuaygpLgogICovCiB2b2lkIGRybV93YWl0X29uZV92Ymxhbmsoc3RydWN0IGRy bV9kZXZpY2UgKmRldiwgdW5zaWduZWQgaW50IHBpcGUpCiB7CkBAIC0xMTE2LDcgKzExMDYsNyBA QCBFWFBPUlRfU1lNQk9MKGRybV9jcnRjX3dhaXRfb25lX3ZibGFuayk7CiAgKiBzdG9yZWQgc28g dGhhdCBkcm1fdmJsYW5rX29uIGNhbiByZXN0b3JlIGl0IGFnYWluLgogICoKICAqIERyaXZlcnMg bXVzdCB1c2UgdGhpcyBmdW5jdGlvbiB3aGVuIHRoZSBoYXJkd2FyZSB2YmxhbmsgY291bnRlciBj YW4gZ2V0Ci0gKiByZXNldCwgZS5nLiB3aGVuIHN1c3BlbmRpbmcuCisgKiByZXNldCwgZS5nLiB3 aGVuIHN1c3BlbmRpbmcgb3IgZGlzYWJsaW5nIHRoZSBAY3J0YyBpbiBnZW5lcmFsLgogICovCiB2 b2lkIGRybV9jcnRjX3ZibGFua19vZmYoc3RydWN0IGRybV9jcnRjICpjcnRjKQogewpAQCAtMTE4 NCw2ICsxMTc0LDggQEAgRVhQT1JUX1NZTUJPTChkcm1fY3J0Y192Ymxhbmtfb2ZmKTsKICAqIGRy bV9jcnRjX3ZibGFua19vbigpIGZ1bmN0aW9ucy4gVGhlIGRpZmZlcmVuY2UgY29tcGFyZWQgdG8K ICAqIGRybV9jcnRjX3ZibGFua19vZmYoKSBpcyB0aGF0IHRoaXMgZnVuY3Rpb24gZG9lc24ndCBz YXZlIHRoZSB2YmxhbmsgY291bnRlcgogICogYW5kIGhlbmNlIGRvZXNuJ3QgbmVlZCB0byBjYWxs IGFueSBkcml2ZXIgaG9va3MuCisgKgorICogVGhpcyBpcyB1c2VmdWwgZm9yIHJlY292ZXJpbmcg ZHJpdmVyIHN0YXRlIGUuZy4gb24gZHJpdmVyIGxvYWQsIG9yIG9uIHJlc3VtZS4KICAqLwogdm9p ZCBkcm1fY3J0Y192YmxhbmtfcmVzZXQoc3RydWN0IGRybV9jcnRjICpjcnRjKQogewpAQCAtMTIx Miw5ICsxMjA0LDEwIEBAIEVYUE9SVF9TWU1CT0woZHJtX2NydGNfdmJsYW5rX3Jlc2V0KTsKICAq IEBjcnRjOiBDUlRDIGluIHF1ZXN0aW9uCiAgKgogICogVGhpcyBmdW5jdGlvbnMgcmVzdG9yZXMg dGhlIHZibGFuayBpbnRlcnJ1cHQgc3RhdGUgY2FwdHVyZWQgd2l0aAotICogZHJtX2NydGNfdmJs YW5rX29mZigpIGFnYWluLiBOb3RlIHRoYXQgY2FsbHMgdG8gZHJtX2NydGNfdmJsYW5rX29uKCkg YW5kCi0gKiBkcm1fY3J0Y192Ymxhbmtfb2ZmKCkgY2FuIGJlIHVuYmFsYW5jZWQgYW5kIHNvIGNh biBhbHNvIGJlIHVuY29uZGl0aW9uYWxseSBjYWxsZWQKLSAqIGluIGRyaXZlciBsb2FkIGNvZGUg dG8gcmVmbGVjdCB0aGUgY3VycmVudCBoYXJkd2FyZSBzdGF0ZSBvZiB0aGUgY3J0Yy4KKyAqIGRy bV9jcnRjX3ZibGFua19vZmYoKSBhZ2FpbiBhbmQgaXMgZ2VuZXJhbGx5IGNhbGxlZCB3aGVuIGVu YWJsaW5nIEBjcnRjLiBOb3RlCisgKiB0aGF0IGNhbGxzIHRvIGRybV9jcnRjX3ZibGFua19vbigp IGFuZCBkcm1fY3J0Y192Ymxhbmtfb2ZmKCkgY2FuIGJlCisgKiB1bmJhbGFuY2VkIGFuZCBzbyBj YW4gYWxzbyBiZSB1bmNvbmRpdGlvbmFsbHkgY2FsbGVkIGluIGRyaXZlciBsb2FkIGNvZGUgdG8K KyAqIHJlZmxlY3QgdGhlIGN1cnJlbnQgaGFyZHdhcmUgc3RhdGUgb2YgdGhlIGNydGMuCiAgKi8K IHZvaWQgZHJtX2NydGNfdmJsYW5rX29uKHN0cnVjdCBkcm1fY3J0YyAqY3J0YykKIHsKZGlmZiAt LWdpdCBhL2luY2x1ZGUvZHJtL2RybVAuaCBiL2luY2x1ZGUvZHJtL2RybVAuaAppbmRleCAzOWRm MTZhZjdhNGEuLjNhYTM4MDlhYjUyNCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9kcm0vZHJtUC5oCisr KyBiL2luY2x1ZGUvZHJtL2RybVAuaApAQCAtMzg3LDIyICszODcsNDkgQEAgc3RydWN0IGRybV9k ZXZpY2UgewogCWJvb2wgaXJxX2VuYWJsZWQ7CiAJaW50IGlycTsKIAotCS8qCisJLyoqCisJICog QHZibGFua19kaXNhYmxlX2ltbWVkaWF0ZToKKwkgKgogCSAqIElmIHRydWUsIHZibGFuayBpbnRl cnJ1cHQgd2lsbCBiZSBkaXNhYmxlZCBpbW1lZGlhdGVseSB3aGVuIHRoZQogCSAqIHJlZmNvdW50 IGRyb3BzIHRvIHplcm8sIGFzIG9wcG9zZWQgdG8gdmlhIHRoZSB2YmxhbmsgZGlzYWJsZQogCSAq IHRpbWVyLgotCSAqIFRoaXMgY2FuIGJlIHNldCB0byB0cnVlIGl0IHRoZSBoYXJkd2FyZSBoYXMg YSB3b3JraW5nIHZibGFuawotCSAqIGNvdW50ZXIgYW5kIHRoZSBkcml2ZXIgdXNlcyBkcm1fdmJs YW5rX29uKCkgYW5kIGRybV92Ymxhbmtfb2ZmKCkKLQkgKiBhcHByb3ByaWF0ZWx5LgorCSAqCisJ ICogVGhpcyBjYW4gYmUgc2V0IHRvIHRydWUgaXQgdGhlIGhhcmR3YXJlIGhhcyBhIHdvcmtpbmcg dmJsYW5rIGNvdW50ZXIKKwkgKiB3aXRoIGhpZ2gtcHJlY2lzaW9uIHRpbWVzdGFtcGluZyAob3Ro ZXJ3aXNlIHRoZXJlIGFyZSByYWNlcykgYW5kIHRoZQorCSAqIGRyaXZlciB1c2VzIGRybV9jcnRj X3ZibGFua19vbigpIGFuZCBkcm1fY3J0Y192Ymxhbmtfb2ZmKCkKKwkgKiBhcHByb3ByaWF0ZWx5 LiBTZWUgYWxzbyBAbWF4X3ZibGFua19jb3VudCBhbmQKKwkgKiAmZHJtX2NydGNfZnVuY3MuZ2V0 X3ZibGFua19jb3VudGVyLgogCSAqLwogCWJvb2wgdmJsYW5rX2Rpc2FibGVfaW1tZWRpYXRlOwog Ci0JLyogYXJyYXkgb2Ygc2l6ZSBudW1fY3J0Y3MgKi8KKwkvKioKKwkgKiBAdmJsYW5rOgorCSAq CisJICogQXJyYXkgb2YgdmJsYW5rIHRyYWNraW5nIHN0cnVjdHVyZXMsIG9uZSBwZXIgJnN0cnVj dCBkcm1fY3J0Yy4gRm9yCisJICogaGlzdG9yaWNhbCByZWFzb25zICh2Ymxhbmsgc3VwcG9ydCBw cmVkYXRlcyBrZXJuZWwgbW9kZXNldHRpbmcpIHRoaXMKKwkgKiBpcyBmcmVlLXN0YW5kaW5nIGFu ZCBub3QgcGFydCBvZiAmc3RydWN0IGRybV9jcnRjIGl0c2VsZi4gSXQgbXVzdCBiZQorCSAqIGlu aXRpYWxpemVkIGV4cGxpY2l0bHkgYnkgY2FsbGluZyBkcm1fdmJsYW5rX2luaXQoKS4KKwkgKi8K IAlzdHJ1Y3QgZHJtX3ZibGFua19jcnRjICp2Ymxhbms7CiAKIAlzcGlubG9ja190IHZibGFua190 aW1lX2xvY2s7ICAgIC8qKjwgUHJvdGVjdHMgdmJsYW5rIGNvdW50IGFuZCB0aW1lIHVwZGF0ZXMg ZHVyaW5nIHZibGFuayBlbmFibGUvZGlzYWJsZSAqLwogCXNwaW5sb2NrX3QgdmJsX2xvY2s7CiAK KwkvKioKKwkgKiBAbWF4X3ZibGFua19jb3VudDoKKwkgKgorCSAqIE1heGltdW0gdmFsdWUgb2Yg dGhlIHZibGFuayByZWdpc3RlcnMuIFRoaXMgdmFsdWUgKzEgd2lsbCByZXN1bHQgaW4gYQorCSAq IHdyYXAtYXJvdW5kIG9mIHRoZSB2YmxhbmsgcmVnaXN0ZXIuIEl0IGlzIHVzZWQgYnkgdGhlIHZi bGFuayBjb3JlIHRvCisJICogaGFuZGxlIHdyYXAtYXJvdW5kcy4KKwkgKgorCSAqIElmIHNldCB0 byB6ZXJvIHRoZSB2YmxhbmsgY29yZSB3aWxsIHRyeSB0byBndWVzcyB0aGUgZWxhcHNlZCB2Ymxh bmtzCisJICogYmV0d2VlbiB0aW1lcyB3aGVuIHRoZSB2YmxhbmsgaW50ZXJydXB0IGlzIGRpc2Fi bGVkIHRocm91Z2gKKwkgKiBoaWdoLXByZWNpc2lvbiB0aW1lc3RhbXBzLiBUaGF0IGFwcHJvYWNo IGlzIHN1ZmZlcmluZyBmcm9tIHNtYWxsCisJICogcmFjZXMgYW5kIGltcHJlY2lzaW9uIG92ZXIg bG9uZ2VyIHRpbWUgcGVyaW9kcywgaGVuY2UgZXhwb3NpbmcgYQorCSAqIGhhcmR3YXJlIHZibGFu ayBjb3VudGVyIGlzIGFsd2F5cyByZWNvbW1lbmRlZC4KKwkgKgorCSAqIElmIG5vbi16ZW9yLCAm ZHJtX2NydGNfZnVuY3MuZ2V0X3ZibGFua19jb3VudGVyIG11c3QgYmUgc2V0LgorCSAqLwogCXUz MiBtYXhfdmJsYW5rX2NvdW50OyAgICAgICAgICAgLyoqPCBzaXplIG9mIHZibGFuayBjb3VudGVy IHJlZ2lzdGVyICovCiAKIAkvKioKZGlmZiAtLWdpdCBhL2luY2x1ZGUvZHJtL2RybV9jcnRjLmgg Yi9pbmNsdWRlL2RybS9kcm1fY3J0Yy5oCmluZGV4IGI2ZTM3MTNiZDdhOS4uNWY1ZDUzOTczY2E1 IDEwMDY0NAotLS0gYS9pbmNsdWRlL2RybS9kcm1fY3J0Yy5oCisrKyBiL2luY2x1ZGUvZHJtL2Ry bV9jcnRjLmgKQEAgLTY4Myw2ICs2ODMsOSBAQCBzdHJ1Y3QgZHJtX2NydGNfZnVuY3MgewogCSAq IGRybV9jcnRjX3ZibGFua19vZmYoKSBhbmQgZHJtX2NydGNfdmJsYW5rX29uKCkgd2hlbiBkaXNh Ymxpbmcgb3IKIAkgKiBlbmFibGluZyBhIENSVEMuCiAJICoKKwkgKiBTZWUgYWxzbyAmZHJtX2Rl dmljZS52YmxhbmtfZGlzYWJsZV9pbW1lZGlhdGUgYW5kCisJICogJmRybV9kZXZpY2UubWF4X3Zi bGFua19jb3VudC4KKwkgKgogCSAqIFJldHVybnM6CiAJICoKIAkgKiBSYXcgdmJsYW5rIGNvdW50 ZXIgdmFsdWUuCi0tIAoyLjExLjAKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVk ZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZv L2ludGVsLWdmeAo=