From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: [PATCH 2/2] drm/prime: Update docs Date: Tue, 18 Jun 2019 11:20:38 +0200 Message-ID: <20190618092038.17929-2-daniel.vetter@ffwll.ch> References: <20190614203615.12639-4-daniel.vetter@ffwll.ch> <20190618092038.17929-1-daniel.vetter@ffwll.ch> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-ed1-x542.google.com (mail-ed1-x542.google.com [IPv6:2a00:1450:4864:20::542]) by gabe.freedesktop.org (Postfix) with ESMTPS id C76406E124 for ; Tue, 18 Jun 2019 09:20:50 +0000 (UTC) Received: by mail-ed1-x542.google.com with SMTP id r12so18460381edo.5 for ; Tue, 18 Jun 2019 02:20:50 -0700 (PDT) In-Reply-To: <20190618092038.17929-1-daniel.vetter@ffwll.ch> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: DRI Development Cc: Daniel Vetter , Intel Graphics Development , Emil Velikov , Daniel Vetter , Sam Ravnborg List-Id: dri-devel@lists.freedesktop.org WWVzIHRoaXMgaXMgYSBiaXQgYSBiaWcgcGF0Y2gsIGJ1dCBzaW5jZSBpdCdzIGVzc2VudGlhbGx5 IGEgY29tcGxldGUKcmV3cml0ZSBvZiBhbGwgdGhlIHByaW1lIGRvY3MgSSBkaWRuJ3Qgc2VlIGhv dyB0byBiZXR0ZXIgc3BsaXQgaXQgdXAuCgpDaGFuZ2VzOgotIENvbnNpc3RlbnRseSBwb2ludCB0 byBkcm1fZ2VtX29iamVjdF9mdW5jcyBhcyB0aGUgcHJlZmVycmVkIGhvb2tzLAogIHdoZXJlIGFw cGxpY2FibGUuCgotIERvY3VtZW50IGFsbCB0aGUgaG9va3MgaW4gJmRybV9kcml2ZXIgdGhhdCBs YWNrZWQga2VybmVsZG9jLgoKLSBDb21wbGV0ZWx5IG5ldyBvdmVydmlldyBzZWN0aW9uLCB3aGlj aCBub3cgYWxzbyBpbmNsdWRlcyB0aGUgY2xlYW5lZAogIHVwIGxpZmV0aW1lL3JlZmVyZW5jZSBj b3VudGluZyBzdWJjaGFwdGVyLiBJIGFsc28gbWVudGlvbmVkIHRoZSB3ZWFrCiAgcmVmZXJlbmNl cyBpbiB0aGVyZSBkdWUgdG8gdGhlIGxvb2t1cCBjYWNoZXMuCgotIENvbXBsZXRlbHkgcmV3cml0 dGVuIGhlbHBlciBpbnRybyBzZWN0aW9uLCBoaWdobGlnaHQgdGhlCiAgaW1wb3J0L2V4cG9ydCBy ZWxhdGVkIGZ1bmN0aW9uYWxpdHkuCgotIFBvbGlzaCBmb3IgYWxsIHRoZSBmdW5jdGlvbnMgYW5k IG1vcmUgY3Jvc3MgcmVmZXJlbmNlcy4KCkkgYWxzbyBzcHJpbmtsZWQgYSBidW5jaCBvZiB0b2Rv cyBhbGwgb3Zlci4KCk1vc3QgaW1wb3J0YW50OiAwIGNvZGUgY2hhbmdlcyBpbiBoZXJlLiBUaGUg Y2xlYW51cCBtb3RpdmF0ZWQgYnkKcmVhZGluZyBhbmQgaW1wcm92aW5nIGFsbCB0aGlzIHdpbGwg Zm9sbG93IGxhdGVyIG9uLgoKdjI6IEFjdHVhbGx5IHVwZGF0ZSB0aGUgcHJpbWUgaGVscGVyIGRv Y3MuIFBsdXMgYWRkIGEgZmV3IEZJWE1FcyB0aGF0Ckkgd29uJ3QgYWRkcmVzcyByaWdodCBhd2F5 IGluIHN1YnNlcXVlbnQgY2xlYW51cCBwYXRjaGVzLgoKdjM6Ci0gU3BsaXQgb3V0IHRoZSBmdW5j dGlvbiBtb3ZpbmcuIFRoaXMgcGF0Y2ggaXMgbm93IGV4Y2x1c2l2ZWx5CiAgZG9jdW1lbnRhdGlv biBjaGFuZ2VzLgotIFR5cG9zIGFuZCBuaXRzIChTYW0pLgoKQ2M6IFNhbSBSYXZuYm9yZyA8c2Ft QHJhdm5ib3JnLm9yZz4KQ2M6IEVyaWMgQW5ob2x0IDxlcmljQGFuaG9sdC5uZXQ+CkNjOiBFbWls IFZlbGlrb3YgPGVtaWwubC52ZWxpa292QGdtYWlsLmNvbT4KU2lnbmVkLW9mZi1ieTogRGFuaWVs IFZldHRlciA8ZGFuaWVsLnZldHRlckBpbnRlbC5jb20+Ci0tLQogRG9jdW1lbnRhdGlvbi9ncHUv ZHJtLW1tLnJzdCB8ICA0MCArLS0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vZHJtX3ByaW1lLmMgIHwg MTk3ICsrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tCiBpbmNsdWRlL2RybS9kcm1f ZHJ2LmggICAgICAgIHwgMTA0ICsrKysrKysrKysrKysrKy0tLQogaW5jbHVkZS9kcm0vZHJtX2dl bS5oICAgICAgICB8ICAxOCArKy0tCiA0IGZpbGVzIGNoYW5nZWQsIDIyNiBpbnNlcnRpb25zKCsp LCAxMzMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9ncHUvZHJtLW1t LnJzdCBiL0RvY3VtZW50YXRpb24vZ3B1L2RybS1tbS5yc3QKaW5kZXggYzhlYmQ0ZjY2YTZhLi5i NjY0ZjA1NGMyNTkgMTAwNjQ0Ci0tLSBhL0RvY3VtZW50YXRpb24vZ3B1L2RybS1tbS5yc3QKKysr IGIvRG9jdW1lbnRhdGlvbi9ncHUvZHJtLW1tLnJzdApAQCAtNDMzLDQzICs0MzMsMTEgQEAgUFJJ TUUgaXMgdGhlIGNyb3NzIGRldmljZSBidWZmZXIgc2hhcmluZyBmcmFtZXdvcmsgaW4gZHJtLCBv cmlnaW5hbGx5CiBjcmVhdGVkIGZvciB0aGUgT1BUSU1VUyByYW5nZSBvZiBtdWx0aS1ncHUgcGxh dGZvcm1zLiBUbyB1c2Vyc3BhY2UgUFJJTUUKIGJ1ZmZlcnMgYXJlIGRtYS1idWYgYmFzZWQgZmls ZSBkZXNjcmlwdG9ycy4KIAotT3ZlcnZpZXcgYW5kIERyaXZlciBJbnRlcmZhY2UKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCitPdmVydmlldyBhbmQgTGlmZXRpbWUgUnVsZXMKKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCi1TaW1pbGFyIHRvIEdFTSBnbG9iYWwgbmFtZXMsIFBS SU1FIGZpbGUgZGVzY3JpcHRvcnMgYXJlIGFsc28gdXNlZCB0bwotc2hhcmUgYnVmZmVyIG9iamVj dHMgYWNyb3NzIHByb2Nlc3Nlcy4gVGhleSBvZmZlciBhZGRpdGlvbmFsIHNlY3VyaXR5OgotYXMg ZmlsZSBkZXNjcmlwdG9ycyBtdXN0IGJlIGV4cGxpY2l0bHkgc2VudCBvdmVyIFVOSVggZG9tYWlu IHNvY2tldHMgdG8KLWJlIHNoYXJlZCBiZXR3ZWVuIGFwcGxpY2F0aW9ucywgdGhleSBjYW4ndCBi ZSBndWVzc2VkIGxpa2UgdGhlIGdsb2JhbGx5Ci11bmlxdWUgR0VNIG5hbWVzLgotCi1Ecml2ZXJz IHRoYXQgc3VwcG9ydCB0aGUgUFJJTUUgQVBJIG11c3Qgc2V0IHRoZSBEUklWRVJfUFJJTUUgYml0 IGluIHRoZQotc3RydWN0IDpjOnR5cGU6YHN0cnVjdCBkcm1fZHJpdmVyIDxkcm1fZHJpdmVyPmAK LWRyaXZlcl9mZWF0dXJlcyBmaWVsZCwgYW5kIGltcGxlbWVudCB0aGUgcHJpbWVfaGFuZGxlX3Rv X2ZkIGFuZAotcHJpbWVfZmRfdG9faGFuZGxlIG9wZXJhdGlvbnMuCi0KLWludCAoXCpwcmltZV9o YW5kbGVfdG9fZmQpKHN0cnVjdCBkcm1fZGV2aWNlIFwqZGV2LCBzdHJ1Y3QgZHJtX2ZpbGUKLVwq ZmlsZV9wcml2LCB1aW50MzJfdCBoYW5kbGUsIHVpbnQzMl90IGZsYWdzLCBpbnQgXCpwcmltZV9m ZCk7IGludAotKFwqcHJpbWVfZmRfdG9faGFuZGxlKShzdHJ1Y3QgZHJtX2RldmljZSBcKmRldiwg c3RydWN0IGRybV9maWxlCi1cKmZpbGVfcHJpdiwgaW50IHByaW1lX2ZkLCB1aW50MzJfdCBcKmhh bmRsZSk7IFRob3NlIHR3byBvcGVyYXRpb25zCi1jb252ZXJ0IGEgaGFuZGxlIHRvIGEgUFJJTUUg ZmlsZSBkZXNjcmlwdG9yIGFuZCB2aWNlIHZlcnNhLiBEcml2ZXJzIG11c3QKLXVzZSB0aGUga2Vy bmVsIGRtYS1idWYgYnVmZmVyIHNoYXJpbmcgZnJhbWV3b3JrIHRvIG1hbmFnZSB0aGUgUFJJTUUg ZmlsZQotZGVzY3JpcHRvcnMuIFNpbWlsYXIgdG8gdGhlIG1vZGUgc2V0dGluZyBBUEkgUFJJTUUg aXMgYWdub3N0aWMgdG8gdGhlCi11bmRlcmx5aW5nIGJ1ZmZlciBvYmplY3QgbWFuYWdlciwgYXMg bG9uZyBhcyBoYW5kbGVzIGFyZSAzMmJpdCB1bnNpZ25lZAotaW50ZWdlcnMuCi0KLVdoaWxlIG5v bi1HRU0gZHJpdmVycyBtdXN0IGltcGxlbWVudCB0aGUgb3BlcmF0aW9ucyB0aGVtc2VsdmVzLCBH RU0KLWRyaXZlcnMgbXVzdCB1c2UgdGhlIDpjOmZ1bmM6YGRybV9nZW1fcHJpbWVfaGFuZGxlX3Rv X2ZkKClgIGFuZAotOmM6ZnVuYzpgZHJtX2dlbV9wcmltZV9mZF90b19oYW5kbGUoKWAgaGVscGVy IGZ1bmN0aW9ucy4gVGhvc2UKLWhlbHBlcnMgcmVseSBvbiB0aGUgZHJpdmVyIGdlbV9wcmltZV9l eHBvcnQgYW5kIGdlbV9wcmltZV9pbXBvcnQKLW9wZXJhdGlvbnMgdG8gY3JlYXRlIGEgZG1hLWJ1 ZiBpbnN0YW5jZSBmcm9tIGEgR0VNIG9iamVjdCAoZG1hLWJ1ZgotZXhwb3J0ZXIgcm9sZSkgYW5k IHRvIGNyZWF0ZSBhIEdFTSBvYmplY3QgZnJvbSBhIGRtYS1idWYgaW5zdGFuY2UKLShkbWEtYnVm IGltcG9ydGVyIHJvbGUpLgotCi1zdHJ1Y3QgZG1hX2J1ZiBcKiAoXCpnZW1fcHJpbWVfZXhwb3J0 KShzdHJ1Y3QgZHJtX2RldmljZSBcKmRldiwKLXN0cnVjdCBkcm1fZ2VtX29iamVjdCBcKm9iaiwg aW50IGZsYWdzKTsgc3RydWN0IGRybV9nZW1fb2JqZWN0IFwqCi0oXCpnZW1fcHJpbWVfaW1wb3J0 KShzdHJ1Y3QgZHJtX2RldmljZSBcKmRldiwgc3RydWN0IGRtYV9idWYKLVwqZG1hX2J1Zik7IFRo ZXNlIHR3byBvcGVyYXRpb25zIGFyZSBtYW5kYXRvcnkgZm9yIEdFTSBkcml2ZXJzIHRoYXQKLXN1 cHBvcnQgUFJJTUUuCisuLiBrZXJuZWwtZG9jOjogZHJpdmVycy9ncHUvZHJtL2RybV9wcmltZS5j CisgICA6ZG9jOiBvdmVydmlldyBhbmQgbGlmZXRpbWUgcnVsZXMKIAogUFJJTUUgSGVscGVyIEZ1 bmN0aW9ucwogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2RybV9wcmltZS5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9wcmltZS5jCmluZGV4IDY4YjRk ZTg1MzcwYy4uMjIzNDIwNjI4OGZhIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX3By aW1lLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9wcmltZS5jCkBAIC0zOCw0NyArMzgsNTMg QEAKIAogI2luY2x1ZGUgImRybV9pbnRlcm5hbC5oIgogCi0vKgotICogRE1BLUJVRi9HRU0gT2Jq ZWN0IHJlZmVyZW5jZXMgYW5kIGxpZmV0aW1lIG92ZXJ2aWV3OgotICoKLSAqIE9uIHRoZSBleHBv cnQgdGhlIGRtYV9idWYgaG9sZHMgYSByZWZlcmVuY2UgdG8gdGhlIGV4cG9ydGluZyBHRU0KLSAq IG9iamVjdC4gSXQgdGFrZXMgdGhpcyByZWZlcmVuY2UgaW4gaGFuZGxlX3RvX2ZkX2lvY3RsLCB3 aGVuIGl0Ci0gKiBmaXJzdCBjYWxscyAucHJpbWVfZXhwb3J0IGFuZCBzdG9yZXMgdGhlIGV4cG9y dGluZyBHRU0gb2JqZWN0IGluCi0gKiB0aGUgZG1hX2J1ZiBwcml2LiBUaGlzIHJlZmVyZW5jZSBu ZWVkcyB0byBiZSByZWxlYXNlZCB3aGVuIHRoZQotICogZmluYWwgcmVmZXJlbmNlIHRvIHRoZSAm ZG1hX2J1ZiBpdHNlbGYgaXMgZHJvcHBlZCBhbmQgaXRzCi0gKiAmZG1hX2J1Zl9vcHMucmVsZWFz ZSBmdW5jdGlvbiBpcyBjYWxsZWQuIEZvciBHRU0tYmFzZWQgZHJpdmVycywKLSAqIHRoZSBkbWFf YnVmIHNob3VsZCBiZSBleHBvcnRlZCB1c2luZyBkcm1fZ2VtX2RtYWJ1Zl9leHBvcnQoKSBhbmQK LSAqIHRoZW4gcmVsZWFzZWQgYnkgZHJtX2dlbV9kbWFidWZfcmVsZWFzZSgpLgotICoKLSAqIE9u IHRoZSBpbXBvcnQgdGhlIGltcG9ydGluZyBHRU0gb2JqZWN0IGhvbGRzIGEgcmVmZXJlbmNlIHRv IHRoZQotICogZG1hX2J1ZiAod2hpY2ggaW4gdHVybiBob2xkcyBhIHJlZiB0byB0aGUgZXhwb3J0 aW5nIEdFTSBvYmplY3QpLgotICogSXQgdGFrZXMgdGhhdCByZWZlcmVuY2UgaW4gdGhlIGZkX3Rv X2hhbmRsZSBpb2N0bC4KLSAqIEl0IGNhbGxzIGRtYV9idWZfZ2V0LCBjcmVhdGVzIGFuIGF0dGFj aG1lbnQgdG8gaXQgYW5kIHN0b3JlcyB0aGUKLSAqIGF0dGFjaG1lbnQgaW4gdGhlIEdFTSBvYmpl Y3QuIFdoZW4gdGhpcyBhdHRhY2htZW50IGlzIGRlc3Ryb3llZAotICogd2hlbiB0aGUgaW1wb3J0 ZWQgb2JqZWN0IGlzIGRlc3Ryb3llZCwgd2UgcmVtb3ZlIHRoZSBhdHRhY2htZW50Ci0gKiBhbmQg ZHJvcCB0aGUgcmVmZXJlbmNlIHRvIHRoZSBkbWFfYnVmLgotICoKLSAqIFdoZW4gYWxsIHRoZSBy ZWZlcmVuY2VzIHRvIHRoZSAmZG1hX2J1ZiBhcmUgZHJvcHBlZCwgaS5lLiB3aGVuCi0gKiB1c2Vy c3BhY2UgaGFzIGNsb3NlZCBib3RoIGhhbmRsZXMgdG8gdGhlIGltcG9ydGVkIEdFTSBvYmplY3Qg KHRocm91Z2ggdGhlCi0gKiBGRF9UT19IQU5ETEUgSU9DVEwpIGFuZCBjbG9zZWQgdGhlIGZpbGUg ZGVzY3JpcHRvciBvZiB0aGUgZXhwb3J0ZWQKLSAqICh0aHJvdWdoIHRoZSBIQU5ETEVfVE9fRkQg SU9DVEwpIGRtYV9idWYsIGFuZCBhbGwga2VybmVsLWludGVybmFsIHJlZmVyZW5jZXMKLSAqIGFy ZSBhbHNvIGdvbmUsIHRoZW4gdGhlIGRtYV9idWYgZ2V0cyBkZXN0cm95ZWQuICBUaGlzIGNhbiBh bHNvIGhhcHBlbiBhcyBhCi0gKiBwYXJ0IG9mIHRoZSBjbGVhbiB1cCBwcm9jZWR1cmUgaW4gdGhl IGRybV9yZWxlYXNlKCkgZnVuY3Rpb24gaWYgdXNlcnNwYWNlCi0gKiBmYWlscyB0byBwcm9wZXJs eSBjbGVhbiB1cC4gIE5vdGUgdGhhdCBib3RoIHRoZSBrZXJuZWwgYW5kIHVzZXJzcGFjZSAoYnkK LSAqIGtlZWVwaW5nIHRoZSBQUklNRSBmaWxlIGRlc2NyaXB0b3JzIG9wZW4pIGNhbiBob2xkIHJl ZmVyZW5jZXMgb250byBhCi0gKiAmZG1hX2J1Zi4KLSAqCi0gKiBUaHVzIHRoZSBjaGFpbiBvZiBy ZWZlcmVuY2VzIGFsd2F5cyBmbG93cyBpbiBvbmUgZGlyZWN0aW9uCi0gKiAoYXZvaWRpbmcgbG9v cHMpOiBpbXBvcnRpbmdfZ2VtIC0+IGRtYWJ1ZiAtPiBleHBvcnRpbmdfZ2VtCi0gKgotICogU2Vs Zi1pbXBvcnRpbmc6IGlmIHVzZXJzcGFjZSBpcyB1c2luZyBQUklNRSBhcyBhIHJlcGxhY2VtZW50 IGZvciBmbGluawotICogdGhlbiBpdCB3aWxsIGdldCBhIGZkLT5oYW5kbGUgcmVxdWVzdCBmb3Ig YSBHRU0gb2JqZWN0IHRoYXQgaXQgY3JlYXRlZC4KLSAqIERyaXZlcnMgc2hvdWxkIGRldGVjdCB0 aGlzIHNpdHVhdGlvbiBhbmQgcmV0dXJuIGJhY2sgdGhlIGdlbSBvYmplY3QKLSAqIGZyb20gdGhl IGRtYS1idWYgcHJpdmF0ZS4gIFByaW1lIHdpbGwgZG8gdGhpcyBhdXRvbWF0aWNhbGx5IGZvciBk cml2ZXJzIHRoYXQKLSAqIHVzZSB0aGUgZHJtX2dlbV9wcmltZV97aW1wb3J0LGV4cG9ydH0gaGVs cGVycy4KLSAqCi0gKiBHRU0gc3RydWN0ICZkbWFfYnVmX29wcyBzeW1ib2xzIGFyZSBub3cgZXhw b3J0ZWQuIFRoZXkgY2FuIGJlIHJlc3VlZCBieQotICogZHJpdmVycyB3aGljaCBpbXBsZW1lbnQg R0VNIGludGVyZmFjZS4KKy8qKgorICogRE9DOiBvdmVydmlldyBhbmQgbGlmZXRpbWUgcnVsZXMK KyAqCisgKiBTaW1pbGFyIHRvIEdFTSBnbG9iYWwgbmFtZXMsIFBSSU1FIGZpbGUgZGVzY3JpcHRv cnMgYXJlIGFsc28gdXNlZCB0byBzaGFyZQorICogYnVmZmVyIG9iamVjdHMgYWNyb3NzIHByb2Nl c3Nlcy4gVGhleSBvZmZlciBhZGRpdGlvbmFsIHNlY3VyaXR5OiBhcyBmaWxlCisgKiBkZXNjcmlw dG9ycyBtdXN0IGJlIGV4cGxpY2l0bHkgc2VudCBvdmVyIFVOSVggZG9tYWluIHNvY2tldHMgdG8g YmUgc2hhcmVkCisgKiBiZXR3ZWVuIGFwcGxpY2F0aW9ucywgdGhleSBjYW4ndCBiZSBndWVzc2Vk IGxpa2UgdGhlIGdsb2JhbGx5IHVuaXF1ZSBHRU0KKyAqIG5hbWVzLgorICoKKyAqIERyaXZlcnMg dGhhdCBzdXBwb3J0IHRoZSBQUklNRSBBUEkgbXVzdCBzZXQgdGhlIERSSVZFUl9QUklNRSBiaXQg aW4gdGhlCisgKiAmZHJtX2RyaXZlci5kcml2ZXJfZmVhdHVyZXMgZmllbGQsIGFuZCBpbXBsZW1l bnQgdGhlCisgKiAmZHJtX2RyaXZlci5wcmltZV9oYW5kbGVfdG9fZmQgYW5kICZkcm1fZHJpdmVy LnByaW1lX2ZkX3RvX2hhbmRsZSBvcGVyYXRpb25zLgorICogR0VNIGJhc2VkIGRyaXZlcnMgbXVz dCB1c2UgZHJtX2dlbV9wcmltZV9oYW5kbGVfdG9fZmQoKSBhbmQKKyAqIGRybV9nZW1fcHJpbWVf ZmRfdG9faGFuZGxlKCkgdG8gaW1wbGVtZW50IHRoZXNlLiBGb3IgR0VNIGJhc2VkIGRyaXZlcnMg dGhlCisgKiBhY3R1YWwgZHJpdmVyIGludGVyZmFjZXMgaXMgcHJvdmlkZWQgdGhyb3VnaCB0aGUg JmRybV9nZW1fb2JqZWN0X2Z1bmNzLmV4cG9ydAorICogYW5kICZkcm1fZHJpdmVyLmdlbV9wcmlt ZV9pbXBvcnQgaG9va3MuCisgKgorICogJmRtYV9idWZfb3BzIGltcGxlbWVudGF0aW9ucyBmb3Ig R0VNIGRyaXZlcnMgYXJlIGFsbCBpbmRpdmlkdWFsbHkgZXhwb3J0ZWQKKyAqIGZvciBkcml2ZXJz IHdoaWNoIG5lZWQgdG8gb3ZlcndyaXRlIG9yIHJlaW1wbGVtZW50IHNvbWUgb2YgdGhlbS4KKyAq CisgKiBSZWZlcmVuY2UgQ291bnRpbmcgZm9yIEdFTSBEcml2ZXJzCisgKiB+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+CisgKgorICogT24gdGhlIGV4cG9ydCB0aGUgJmRtYV9idWYg aG9sZHMgYSByZWZlcmVuY2UgdG8gdGhlIGV4cG9ydGVkIGJ1ZmZlciBvYmplY3QsCisgKiB1c3Vh bGx5IGEgJmRybV9nZW1fb2JqZWN0LiBJdCB0YWtlcyB0aGlzIHJlZmVyZW5jZSBpbiB0aGUgUFJJ TUVfSEFORExFX1RPX0ZECisgKiBJT0NUTCwgd2hlbiBpdCBmaXJzdCBjYWxscyAmZHJtX2dlbV9v YmplY3RfZnVuY3MuZXhwb3J0CisgKiBhbmQgc3RvcmVzIHRoZSBleHBvcnRpbmcgR0VNIG9iamVj dCBpbiB0aGUgJmRtYV9idWYucHJpdiBmaWVsZC4gVGhpcworICogcmVmZXJlbmNlIG5lZWRzIHRv IGJlIHJlbGVhc2VkIHdoZW4gdGhlIGZpbmFsIHJlZmVyZW5jZSB0byB0aGUgJmRtYV9idWYKKyAq IGl0c2VsZiBpcyBkcm9wcGVkIGFuZCBpdHMgJmRtYV9idWZfb3BzLnJlbGVhc2UgZnVuY3Rpb24g aXMgY2FsbGVkLiAgRm9yCisgKiBHRU0tYmFzZWQgZHJpdmVycywgdGhlICZkbWFfYnVmIHNob3Vs ZCBiZSBleHBvcnRlZCB1c2luZworICogZHJtX2dlbV9kbWFidWZfZXhwb3J0KCkgYW5kIHRoZW4g cmVsZWFzZWQgYnkgZHJtX2dlbV9kbWFidWZfcmVsZWFzZSgpLgorICoKKyAqIFRodXMgdGhlIGNo YWluIG9mIHJlZmVyZW5jZXMgYWx3YXlzIGZsb3dzIGluIG9uZSBkaXJlY3Rpb24sIGF2b2lkaW5n IGxvb3BzOgorICogaW1wb3J0aW5nIEdFTSBvYmplY3QgLT4gZG1hLWJ1ZiAtPiBleHBvcnRlZCBH RU0gYm8uIEEgZnVydGhlciBjb21wbGljYXRpb24KKyAqIGFyZSB0aGUgbG9va3VwIGNhY2hlcyBm b3IgaW1wb3J0IGFuZCBleHBvcnQuIFRoZXNlIGFyZSByZXF1aXJlZCB0byBndWFyYW50ZWUKKyAq IHRoYXQgYW55IGdpdmVuIG9iamVjdCB3aWxsIGFsd2F5cyBoYXZlIG9ubHkgb25lIHVuaXFlIHVz ZXJzcGFjZSBoYW5kbGUuIFRoaXMKKyAqIGlzIHJlcXVpcmVkIHRvIGFsbG93IHVzZXJzcGFjZSB0 byBkZXRlY3QgZHVwbGljYXRlZCBpbXBvcnRzLCBzaW5jZSBzb21lIEdFTQorICogZHJpdmVycyBk byBmYWlsIGNvbW1hbmQgc3VibWlzc2lvbnMgaWYgYSBnaXZlbiBidWZmZXIgb2JqZWN0IGlzIGxp c3RlZCBtb3JlCisgKiB0aGFuIG9uY2UuIFRoZXNlIGltcG9ydCBhbmQgZXhwb3J0IGNhY2hlcyBp biAmZHJtX3ByaW1lX2ZpbGVfcHJpdmF0ZSBvbmx5CisgKiByZXRhaW4gYSB3ZWFrIHJlZmVyZW5j ZSwgd2hpY2ggaXMgY2xlYW5lZCB1cCB3aGVuIHRoZSBjb3JyZXNwb25kaW5nIG9iamVjdCBpcwor ICogcmVsZWFzZWQuCisgKgorICogU2VsZi1pbXBvcnRpbmc6IElmIHVzZXJzcGFjZSBpcyB1c2lu ZyBQUklNRSBhcyBhIHJlcGxhY2VtZW50IGZvciBmbGluayB0aGVuCisgKiBpdCB3aWxsIGdldCBh IGZkLT5oYW5kbGUgcmVxdWVzdCBmb3IgYSBHRU0gb2JqZWN0IHRoYXQgaXQgY3JlYXRlZC4gIERy aXZlcnMKKyAqIHNob3VsZCBkZXRlY3QgdGhpcyBzaXR1YXRpb24gYW5kIHJldHVybiBiYWNrIHRo ZSB1bmRlcmx5aW5nIG9iamVjdCBmcm9tIHRoZQorICogZG1hLWJ1ZiBwcml2YXRlLiBGb3IgR0VN IGJhc2VkIGRyaXZlcnMgdGhpcyBpcyBoYW5kbGVkIGluCisgKiBkcm1fZ2VtX3ByaW1lX2ltcG9y dCgpIGFscmVhZHkuCiAgKi8KIAogc3RydWN0IGRybV9wcmltZV9tZW1iZXIgewpAQCAtMjIwLDcg KzIyNiw3IEBAIHZvaWQgZHJtX3ByaW1lX2Rlc3Ryb3lfZmlsZV9wcml2YXRlKHN0cnVjdCBkcm1f cHJpbWVfZmlsZV9wcml2YXRlICpwcmltZV9mcHJpdikKIH0KIAogLyoqCi0gKiBkcm1fZ2VtX2Rt YWJ1Zl9leHBvcnQgLSBkbWFfYnVmIGV4cG9ydCBpbXBsZW1lbnRhdGlvbiBmb3IgR0VNCisgKiBk cm1fZ2VtX2RtYWJ1Zl9leHBvcnQgLSAmZG1hX2J1ZiBleHBvcnQgaW1wbGVtZW50YXRpb24gZm9y IEdFTQogICogQGRldjogcGFyZW50IGRldmljZSBmb3IgdGhlIGV4cG9ydGVkIGRtYWJ1ZgogICog QGV4cF9pbmZvOiB0aGUgZXhwb3J0IGluZm9ybWF0aW9uIHVzZWQgYnkgZG1hX2J1Zl9leHBvcnQo KQogICoKQEAgLTI0OCwxMSArMjU0LDExIEBAIHN0cnVjdCBkbWFfYnVmICpkcm1fZ2VtX2RtYWJ1 Zl9leHBvcnQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIEVYUE9SVF9TWU1CT0woZHJtX2dlbV9k bWFidWZfZXhwb3J0KTsKIAogLyoqCi0gKiBkcm1fZ2VtX2RtYWJ1Zl9yZWxlYXNlIC0gZG1hX2J1 ZiByZWxlYXNlIGltcGxlbWVudGF0aW9uIGZvciBHRU0KKyAqIGRybV9nZW1fZG1hYnVmX3JlbGVh c2UgLSAmZG1hX2J1ZiByZWxlYXNlIGltcGxlbWVudGF0aW9uIGZvciBHRU0KICAqIEBkbWFfYnVm OiBidWZmZXIgdG8gYmUgcmVsZWFzZWQKICAqCiAgKiBHZW5lcmljIHJlbGVhc2UgZnVuY3Rpb24g Zm9yIGRtYV9idWZzIGV4cG9ydGVkIGFzIFBSSU1FIGJ1ZmZlcnMuIEdFTSBkcml2ZXJzCi0gKiBt dXN0IHVzZSB0aGlzIGluIHRoZWlyIGRtYV9idWYgb3BzIHN0cnVjdHVyZSBhcyB0aGUgcmVsZWFz ZSBjYWxsYmFjay4KKyAqIG11c3QgdXNlIHRoaXMgaW4gdGhlaXIgJmRtYV9idWZfb3BzIHN0cnVj dHVyZSBhcyB0aGUgcmVsZWFzZSBjYWxsYmFjay4KICAqIGRybV9nZW1fZG1hYnVmX3JlbGVhc2Uo KSBzaG91bGQgYmUgdXNlZCBpbiBjb25qdW5jdGlvbiB3aXRoCiAgKiBkcm1fZ2VtX2RtYWJ1Zl9l eHBvcnQoKS4KICAqLwpAQCAtMjc4LDcgKzI4NCw5IEBAIEVYUE9SVF9TWU1CT0woZHJtX2dlbV9k bWFidWZfcmVsZWFzZSk7CiAgKiBUaGlzIGlzIHRoZSBQUklNRSBpbXBvcnQgZnVuY3Rpb24gd2hp Y2ggbXVzdCBiZSB1c2VkIG1hbmRhdG9yaWx5IGJ5IEdFTQogICogZHJpdmVycyB0byBlbnN1cmUg Y29ycmVjdCBsaWZldGltZSBtYW5hZ2VtZW50IG9mIHRoZSB1bmRlcmx5aW5nIEdFTSBvYmplY3Qu CiAgKiBUaGUgYWN0dWFsIGltcG9ydGluZyBvZiBHRU0gb2JqZWN0IGZyb20gdGhlIGRtYS1idWYg aXMgZG9uZSB0aHJvdWdoIHRoZQotICogZ2VtX2ltcG9ydF9leHBvcnQgZHJpdmVyIGNhbGxiYWNr LgorICogJmRybV9kcml2ZXIuZ2VtX2ltcG9ydF9leHBvcnQgZHJpdmVyIGNhbGxiYWNrLgorICoK KyAqIFJldHVybnMgMCBvbiBzdWNjZXNzIG9yIGEgbmVnYXRpdmUgZXJyb3IgY29kZSBvbiBmYWls dXJlLgogICovCiBpbnQgZHJtX2dlbV9wcmltZV9mZF90b19oYW5kbGUoc3RydWN0IGRybV9kZXZp Y2UgKmRldiwKIAkJCSAgICAgICBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdiwgaW50IHByaW1l X2ZkLApAQCAtNDEyLDcgKzQyMCw3IEBAIHN0YXRpYyBzdHJ1Y3QgZG1hX2J1ZiAqZXhwb3J0X2Fu ZF9yZWdpc3Rlcl9vYmplY3Qoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKICAqIFRoaXMgaXMgdGhl IFBSSU1FIGV4cG9ydCBmdW5jdGlvbiB3aGljaCBtdXN0IGJlIHVzZWQgbWFuZGF0b3JpbHkgYnkg R0VNCiAgKiBkcml2ZXJzIHRvIGVuc3VyZSBjb3JyZWN0IGxpZmV0aW1lIG1hbmFnZW1lbnQgb2Yg dGhlIHVuZGVybHlpbmcgR0VNIG9iamVjdC4KICAqIFRoZSBhY3R1YWwgZXhwb3J0aW5nIGZyb20g R0VNIG9iamVjdCB0byBhIGRtYS1idWYgaXMgZG9uZSB0aHJvdWdoIHRoZQotICogZ2VtX3ByaW1l X2V4cG9ydCBkcml2ZXIgY2FsbGJhY2suCisgKiAmZHJtX2RyaXZlci5nZW1fcHJpbWVfZXhwb3J0 IGRyaXZlciBjYWxsYmFjay4KICAqLwogaW50IGRybV9nZW1fcHJpbWVfaGFuZGxlX3RvX2ZkKHN0 cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJCQkgICAgICAgc3RydWN0IGRybV9maWxlICpmaWxlX3By aXYsIHVpbnQzMl90IGhhbmRsZSwKQEAgLTUyMywyMyArNTMxLDM5IEBAIGludCBkcm1fcHJpbWVf aGFuZGxlX3RvX2ZkX2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCiAv KioKICAqIERPQzogUFJJTUUgSGVscGVycwogICoKLSAqIERyaXZlcnMgY2FuIGltcGxlbWVudCBA Z2VtX3ByaW1lX2V4cG9ydCBhbmQgQGdlbV9wcmltZV9pbXBvcnQgaW4gdGVybXMgb2YKLSAqIHNp bXBsZXIgQVBJcyBieSB1c2luZyB0aGUgaGVscGVyIGZ1bmN0aW9ucyBAZHJtX2dlbV9wcmltZV9l eHBvcnQgYW5kCi0gKiBAZHJtX2dlbV9wcmltZV9pbXBvcnQuICBUaGVzZSBmdW5jdGlvbnMgaW1w bGVtZW50IGRtYS1idWYgc3VwcG9ydCBpbiB0ZXJtcyBvZgotICogc2l4IGxvd2VyLWxldmVsIGRy aXZlciBjYWxsYmFja3M6CisgKiBEcml2ZXJzIGNhbiBpbXBsZW1lbnQgJmRybV9nZW1fb2JqZWN0 X2Z1bmNzLmV4cG9ydCBhbmQKKyAqICZkcm1fZHJpdmVyLmdlbV9wcmltZV9pbXBvcnQgaW4gdGVy bXMgb2Ygc2ltcGxlciBBUElzIGJ5IHVzaW5nIHRoZSBoZWxwZXIKKyAqIGZ1bmN0aW9ucyBkcm1f Z2VtX3ByaW1lX2V4cG9ydCgpIGFuZCBkcm1fZ2VtX3ByaW1lX2ltcG9ydCgpLiAgVGhlc2UgZnVu Y3Rpb25zCisgKiBpbXBsZW1lbnQgZG1hLWJ1ZiBzdXBwb3J0IGluIHRlcm1zIG9mIHNvbWUgbG93 ZXItbGV2ZWwgaGVscGVycywgd2hpY2ggYXJlCisgKiBhZ2FpbiBleHBvcnRlZCBmb3IgZHJpdmVy cyB0byB1c2UgaW5kaXZpZHVhbGx5OgorICoKKyAqIEV4cG9ydGluZyBidWZmZXJzCisgKiB+fn5+ fn5+fn5+fn5+fn5+fgorICoKKyAqIE9wdGlvbmFsIHBpbm5pbmcgb2YgYnVmZmVycyBpcyBoYW5k bGVkIGF0IGRtYS1idWYgYXR0YWNoIGFuZCBkZXRhY2ggdGltZSBpbgorICogZHJtX2dlbV9tYXBf YXR0YWNoKCkgYW5kIGRybV9nZW1fbWFwX2RldGFjaCgpLiBCYWNraW5nIHN0b3JhZ2UgaXRzZWxm IGlzCisgKiBoYW5kbGVkIGJ5IGRybV9nZW1fbWFwX2RtYV9idWYoKSBhbmQgZHJtX2dlbV91bm1h cF9kbWFfYnVmKCksIHdoaWNoIHJlbGllcyBvbgorICogJmRybV9nZW1fb2JqZWN0X2Z1bmNzLmdl dF9zZ190YWJsZS4KKyAqCisgKiBGb3Iga2VybmVsLWludGVybmFsIGFjY2VzcyB0aGVyZSdzIGRy bV9nZW1fZG1hYnVmX3ZtYXAoKSBhbmQKKyAqIGRybV9nZW1fZG1hYnVmX3Z1bm1hcCgpLiBVc2Vy c3BhY2UgbW1hcCBzdXBwb3J0IGlzIHByb3ZpZGVkIGJ5CisgKiBkcm1fZ2VtX2RtYWJ1Zl9tbWFw KCkuCisgKgorICogTm90ZSB0aGF0IHRoZXNlIGV4cG9ydCBoZWxwZXJzIGNhbiBvbmx5IGJlIHVz ZWQgaWYgdGhlIHVuZGVybHlpbmcgYmFja2luZworICogc3RvcmFnZSBpcyBmdWxseSBjb2hlcmVu dCBhbmQgZWl0aGVyIHBlcm1hbmVudGx5IHBpbm5lZCwgb3IgaXQgaXMgc2FmZSB0byBwaW4KKyAq IGl0IGluZGVmaW5pdGVseS4KICAqCi0gKiBFeHBvcnQgY2FsbGJhY2tzOgorICogRklYTUU6IFRo ZSB1bmRlcmx5aW5nIGhlbHBlciBmdW5jdGlvbnMgYXJlIG5hbWVkIHJhdGhlciBpbmNvbnNpc3Rl bnRseS4KICAqCi0gKiAgKiBAZ2VtX3ByaW1lX3BpbiAob3B0aW9uYWwpOiBwcmVwYXJlIGEgR0VN IG9iamVjdCBmb3IgZXhwb3J0aW5nCi0gKiAgKiBAZ2VtX3ByaW1lX2dldF9zZ190YWJsZTogcHJv dmlkZSBhIHNjYXR0ZXIvZ2F0aGVyIHRhYmxlIG9mIHBpbm5lZCBwYWdlcwotICogICogQGdlbV9w cmltZV92bWFwOiB2bWFwIGEgYnVmZmVyIGV4cG9ydGVkIGJ5IHlvdXIgZHJpdmVyCi0gKiAgKiBA Z2VtX3ByaW1lX3Z1bm1hcDogdnVubWFwIGEgYnVmZmVyIGV4cG9ydGVkIGJ5IHlvdXIgZHJpdmVy Ci0gKiAgKiBAZ2VtX3ByaW1lX21tYXAgKG9wdGlvbmFsKTogbW1hcCBhIGJ1ZmZlciBleHBvcnRl ZCBieSB5b3VyIGRyaXZlcgorICogRXhwb3J0aW5nIGJ1ZmZlcnMKKyAqIH5+fn5+fn5+fn5+fn5+ fn5+CiAgKgotICogSW1wb3J0IGNhbGxiYWNrOgorICogSW1wb3J0aW5nIGRtYS1idWZzIHVzaW5n IGRybV9nZW1fcHJpbWVfaW1wb3J0KCkgcmVsaWVzIG9uCisgKiAmZHJtX2RyaXZlci5nZW1fcHJp bWVfaW1wb3J0X3NnX3RhYmxlLgogICoKLSAqICAqIEBnZW1fcHJpbWVfaW1wb3J0X3NnX3RhYmxl IChpbXBvcnQpOiBwcm9kdWNlIGEgR0VNIG9iamVjdCBmcm9tIGFub3RoZXIKLSAqICAgIGRyaXZl cidzIHNjYXR0ZXIvZ2F0aGVyIHRhYmxlCisgKiBOb3RlIHRoYXQgc2ltaWxhcmx5IHRvIHRoZSBl eHBvcnQgaGVscGVycyB0aGlzIHBlcm1hbmVudGx5IHBpbnMgdGhlCisgKiB1bmRlcmx5aW5nIGJh Y2tpbmcgc3RvcmFnZS4gV2hpY2ggaXMgb2sgZm9yIHNjYW5vdXQsIGJ1dCBpcyBub3QgdGhlIGJl c3QKKyAqIG9wdGlvbiBmb3Igc2hhcmluZyBsb3RzIG9mIGJ1ZmZlcnMgZm9yIHJlbmRlcmluZy4K ICAqLwogCiAvKioKQEAgLTU0Nyw4ICs1NzEsOSBAQCBpbnQgZHJtX3ByaW1lX2hhbmRsZV90b19m ZF9pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAogICogQGRtYV9idWY6 IGJ1ZmZlciB0byBhdHRhY2ggZGV2aWNlIHRvCiAgKiBAYXR0YWNoOiBidWZmZXIgYXR0YWNobWVu dCBkYXRhCiAgKgotICogQ2FsbHMgJmRybV9kcml2ZXIuZ2VtX3ByaW1lX3BpbiBmb3IgZGV2aWNl IHNwZWNpZmljIGhhbmRsaW5nLiBUaGlzIGNhbiBiZQotICogdXNlZCBhcyB0aGUgJmRtYV9idWZf b3BzLmF0dGFjaCBjYWxsYmFjay4KKyAqIENhbGxzICZkcm1fZ2VtX29iamVjdF9mdW5jcy5waW4g Zm9yIGRldmljZSBzcGVjaWZpYyBoYW5kbGluZy4gVGhpcyBjYW4gYmUKKyAqIHVzZWQgYXMgdGhl ICZkbWFfYnVmX29wcy5hdHRhY2ggY2FsbGJhY2suIE11c3QgYmUgdXNlZCB0b2dldGhlciB3aXRo CisgKiBkcm1fZ2VtX21hcF9kZXRhY2goKS4KICAqCiAgKiBSZXR1cm5zIDAgb24gc3VjY2Vzcywg bmVnYXRpdmUgZXJyb3IgY29kZSBvbiBmYWlsdXJlLgogICovCkBAIC01NjYsOCArNTkxLDkgQEAg RVhQT1JUX1NZTUJPTChkcm1fZ2VtX21hcF9hdHRhY2gpOwogICogQGRtYV9idWY6IGJ1ZmZlciB0 byBkZXRhY2ggZnJvbQogICogQGF0dGFjaDogYXR0YWNobWVudCB0byBiZSBkZXRhY2hlZAogICoK LSAqIENsZWFucyB1cCAmZG1hX2J1Zl9hdHRhY2htZW50LiBUaGlzIGNhbiBiZSB1c2VkIGFzIHRo ZSAmZG1hX2J1Zl9vcHMuZGV0YWNoCi0gKiBjYWxsYmFjay4KKyAqIENhbGxzICZkcm1fZ2VtX29i amVjdF9mdW5jcy5waW4gZm9yIGRldmljZSBzcGVjaWZpYyBoYW5kbGluZy4gIENsZWFucyB1cAor ICogJmRtYV9idWZfYXR0YWNobWVudCBmcm9tIGRybV9nZW1fbWFwX2F0dGFjaCgpLiBUaGlzIGNh biBiZSB1c2VkIGFzIHRoZQorICogJmRtYV9idWZfb3BzLmRldGFjaCBjYWxsYmFjay4KICAqLwog dm9pZCBkcm1fZ2VtX21hcF9kZXRhY2goc3RydWN0IGRtYV9idWYgKmRtYV9idWYsCiAJCQlzdHJ1 Y3QgZG1hX2J1Zl9hdHRhY2htZW50ICphdHRhY2gpCkBAIC01ODMsMTMgKzYwOSwxMyBAQCBFWFBP UlRfU1lNQk9MKGRybV9nZW1fbWFwX2RldGFjaCk7CiAgKiBAYXR0YWNoOiBhdHRhY2htZW50IHdo b3NlIHNjYXR0ZXJsaXN0IGlzIHRvIGJlIHJldHVybmVkCiAgKiBAZGlyOiBkaXJlY3Rpb24gb2Yg RE1BIHRyYW5zZmVyCiAgKgotICogQ2FsbHMgJmRybV9kcml2ZXIuZ2VtX3ByaW1lX2dldF9zZ190 YWJsZSBhbmQgdGhlbiBtYXBzIHRoZSBzY2F0dGVybGlzdC4gVGhpcwotICogY2FuIGJlIHVzZWQg YXMgdGhlICZkbWFfYnVmX29wcy5tYXBfZG1hX2J1ZiBjYWxsYmFjay4KKyAqIENhbGxzICZkcm1f Z2VtX29iamVjdF9mdW5jcy5nZXRfc2dfdGFibGUgYW5kIHRoZW4gbWFwcyB0aGUgc2NhdHRlcmxp c3QuIFRoaXMKKyAqIGNhbiBiZSB1c2VkIGFzIHRoZSAmZG1hX2J1Zl9vcHMubWFwX2RtYV9idWYg Y2FsbGJhY2suIFNob3VsZCBiZSB1c2VkIHRvZ2V0aGVyCisgKiB3aXRoIGRybV9nZW1fdW5tYXBf ZG1hX2J1ZigpLgogICoKLSAqIFJldHVybnMgc2dfdGFibGUgY29udGFpbmluZyB0aGUgc2NhdHRl cmxpc3QgdG8gYmUgcmV0dXJuZWQ7IHJldHVybnMgRVJSX1BUUgorICogUmV0dXJuczpzZ190YWJs ZSBjb250YWluaW5nIHRoZSBzY2F0dGVybGlzdCB0byBiZSByZXR1cm5lZDsgcmV0dXJucyBFUlJf UFRSCiAgKiBvbiBlcnJvci4gTWF5IHJldHVybiAtRUlOVFIgaWYgaXQgaXMgaW50ZXJydXB0ZWQg YnkgYSBzaWduYWwuCiAgKi8KLQogc3RydWN0IHNnX3RhYmxlICpkcm1fZ2VtX21hcF9kbWFfYnVm KHN0cnVjdCBkbWFfYnVmX2F0dGFjaG1lbnQgKmF0dGFjaCwKIAkJCQkgICAgIGVudW0gZG1hX2Rh dGFfZGlyZWN0aW9uIGRpcikKIHsKQEAgLTY0Miw5ICs2NjgsOSBAQCBFWFBPUlRfU1lNQk9MKGRy bV9nZW1fdW5tYXBfZG1hX2J1Zik7CiAgKiBAZG1hX2J1ZjogYnVmZmVyIHRvIGJlIG1hcHBlZAog ICoKICAqIFNldHMgdXAgYSBrZXJuZWwgdmlydHVhbCBtYXBwaW5nLiBUaGlzIGNhbiBiZSB1c2Vk IGFzIHRoZSAmZG1hX2J1Zl9vcHMudm1hcAotICogY2FsbGJhY2suCisgKiBjYWxsYmFjay4gQ2Fs bHMgaW50byAmZHJtX2dlbV9vYmplY3RfZnVuY3Mudm1hcCBmb3IgZGV2aWNlIHNwZWNpZmljIGhh bmRsaW5nLgogICoKLSAqIFJldHVybnMgdGhlIGtlcm5lbCB2aXJ0dWFsIGFkZHJlc3MuCisgKiBS ZXR1cm5zIHRoZSBrZXJuZWwgdmlydHVhbCBhZGRyZXNzIG9yIE5VTEwgb24gZmFpbHVyZS4KICAq Lwogdm9pZCAqZHJtX2dlbV9kbWFidWZfdm1hcChzdHJ1Y3QgZG1hX2J1ZiAqZG1hX2J1ZikKIHsK QEAgLTY2NSw3ICs2OTEsNyBAQCBFWFBPUlRfU1lNQk9MKGRybV9nZW1fZG1hYnVmX3ZtYXApOwog ICogQHZhZGRyOiB0aGUgdmlydHVhbCBhZGRyZXNzIG9mIHRoZSBidWZmZXIKICAqCiAgKiBSZWxl YXNlcyBhIGtlcm5lbCB2aXJ0dWFsIG1hcHBpbmcuIFRoaXMgY2FuIGJlIHVzZWQgYXMgdGhlCi0g KiAmZG1hX2J1Zl9vcHMudnVubWFwIGNhbGxiYWNrLgorICogJmRtYV9idWZfb3BzLnZ1bm1hcCBj YWxsYmFjay4gQ2FsbHMgaW50byAmZHJtX2dlbV9vYmplY3RfZnVuY3MudnVubWFwIGZvciBkZXZp Y2Ugc3BlY2lmaWMgaGFuZGxpbmcuCiAgKi8KIHZvaWQgZHJtX2dlbV9kbWFidWZfdnVubWFwKHN0 cnVjdCBkbWFfYnVmICpkbWFfYnVmLCB2b2lkICp2YWRkcikKIHsKQEAgLTcyNyw3ICs3NTMsMTEg QEAgRVhQT1JUX1NZTUJPTChkcm1fZ2VtX3ByaW1lX21tYXApOwogICogQHZtYTogdmlydHVhbCBh ZGRyZXNzIHJhbmdlCiAgKgogICogUHJvdmlkZXMgbWVtb3J5IG1hcHBpbmcgZm9yIHRoZSBidWZm ZXIuIFRoaXMgY2FuIGJlIHVzZWQgYXMgdGhlCi0gKiAmZG1hX2J1Zl9vcHMubW1hcCBjYWxsYmFj ay4KKyAqICZkbWFfYnVmX29wcy5tbWFwIGNhbGxiYWNrLiBJdCBqdXN0IGZvcndhcmRzIHRvICZk cm1fZHJpdmVyLmdlbV9wcmltZV9tbWFwLAorICogd2hpY2ggc2hvdWxkIGJlIHNldCB0byBkcm1f Z2VtX3ByaW1lX21tYXAoKS4KKyAqCisgKiBGSVhNRTogVGhlcmUncyByZWFsbHkgbm8gcG9pbnQg dG8gdGhpcyB3cmFwcGVyLCBkcml2ZXJzIHdoaWNoIG5lZWQgYW55dGhpbmcKKyAqIGVsc2UgYnV0 IGRybV9nZW1fcHJpbWVfbW1hcCBjYW4gcm9sbCB0aGVpciBvd24gJmRtYV9idWZfb3BzLm1tYXAg Y2FsbGJhY2suCiAgKgogICogUmV0dXJucyAwIG9uIHN1Y2Nlc3Mgb3IgYSBuZWdhdGl2ZSBlcnJv ciBjb2RlIG9uIGZhaWx1cmUuCiAgKi8KQEAgLTc2Myw2ICs3OTMsOCBAQCBzdGF0aWMgY29uc3Qg c3RydWN0IGRtYV9idWZfb3BzIGRybV9nZW1fcHJpbWVfZG1hYnVmX29wcyA9ICB7CiAgKiBUaGlz IGhlbHBlciBjcmVhdGVzIGFuIHNnIHRhYmxlIG9iamVjdCBmcm9tIGEgc2V0IG9mIHBhZ2VzCiAg KiB0aGUgZHJpdmVyIGlzIHJlc3BvbnNpYmxlIGZvciBtYXBwaW5nIHRoZSBwYWdlcyBpbnRvIHRo ZQogICogaW1wb3J0ZXJzIGFkZHJlc3Mgc3BhY2UgZm9yIHVzZSB3aXRoIGRtYV9idWYgaXRzZWxm LgorICoKKyAqIFRoaXMgaXMgdXNlZnVsIGZvciBpbXBsZW1lbnRpbmcgJmRybV9nZW1fb2JqZWN0 X2Z1bmNzLmdldF9zZ190YWJsZS4KICAqLwogc3RydWN0IHNnX3RhYmxlICpkcm1fcHJpbWVfcGFn ZXNfdG9fc2coc3RydWN0IHBhZ2UgKipwYWdlcywgdW5zaWduZWQgaW50IG5yX3BhZ2VzKQogewpA QCAtNzkzLDcgKzgyNSw3IEBAIEVYUE9SVF9TWU1CT0woZHJtX3ByaW1lX3BhZ2VzX3RvX3NnKTsK ICAqIEBvYmo6IEdFTSBvYmplY3QgdG8gZXhwb3J0CiAgKiBAZmxhZ3M6IGZsYWdzIGxpa2UgRFJN X0NMT0VYRUMgYW5kIERSTV9SRFdSCiAgKgotICogVGhpcyBpcyB0aGUgaW1wbGVtZW50YXRpb24g b2YgdGhlIGdlbV9wcmltZV9leHBvcnQgZnVuY3Rpb25zIGZvciBHRU0gZHJpdmVycworICogVGhp cyBpcyB0aGUgaW1wbGVtZW50YXRpb24gb2YgdGhlICZkcm1fZ2VtX29iamVjdF9mdW5jcy5leHBv cnQgZnVuY3Rpb25zIGZvciBHRU0gZHJpdmVycwogICogdXNpbmcgdGhlIFBSSU1FIGhlbHBlcnMu CiAgKi8KIHN0cnVjdCBkbWFfYnVmICpkcm1fZ2VtX3ByaW1lX2V4cG9ydChzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2LApAQCAtODIzLDkgKzg1NSwxMyBAQCBFWFBPUlRfU1lNQk9MKGRybV9nZW1fcHJp bWVfZXhwb3J0KTsKICAqIEBkbWFfYnVmOiBkbWEtYnVmIG9iamVjdCB0byBpbXBvcnQKICAqIEBh dHRhY2hfZGV2OiBzdHJ1Y3QgZGV2aWNlIHRvIGRtYV9idWYgYXR0YWNoCiAgKgotICogVGhpcyBp cyB0aGUgY29yZSBvZiBkcm1fZ2VtX3ByaW1lX2ltcG9ydC4gSXQncyBkZXNpZ25lZCB0byBiZSBj YWxsZWQgYnkKLSAqIGRyaXZlcnMgd2hvIHdhbnQgdG8gdXNlIGEgZGlmZmVyZW50IGRldmljZSBz dHJ1Y3R1cmUgdGhhbiBkZXYtPmRldiBmb3IKLSAqIGF0dGFjaGluZyB2aWEgZG1hX2J1Zi4KKyAq IFRoaXMgaXMgdGhlIGNvcmUgb2YgZHJtX2dlbV9wcmltZV9pbXBvcnQoKS4gSXQncyBkZXNpZ25l ZCB0byBiZSBjYWxsZWQgYnkKKyAqIGRyaXZlcnMgd2hvIHdhbnQgdG8gdXNlIGEgZGlmZmVyZW50 IGRldmljZSBzdHJ1Y3R1cmUgdGhhbiAmZHJtX2RldmljZS5kZXYgZm9yCisgKiBhdHRhY2hpbmcg dmlhIGRtYV9idWYuIFRoaXMgZnVuY3Rpb24gY2FsbHMKKyAqICZkcm1fZHJpdmVyLmdlbV9wcmlt ZV9pbXBvcnRfc2dfdGFibGUgaW50ZXJuYWxseS4KKyAqCisgKiBEcml2ZXJzIG11c3QgYXJyYW5n ZSB0byBjYWxsIGRybV9wcmltZV9nZW1fZGVzdHJveSgpIGZyb20gdGhlaXIKKyAqICZkcm1fZ2Vt X29iamVjdF9mdW5jcy5mcmVlIGhvb2sgd2hlbiB1c2luZyB0aGlzIGZ1bmN0aW9uLgogICovCiBz dHJ1Y3QgZHJtX2dlbV9vYmplY3QgKmRybV9nZW1fcHJpbWVfaW1wb3J0X2RldihzdHJ1Y3QgZHJt X2RldmljZSAqZGV2LAogCQkJCQkgICAgc3RydWN0IGRtYV9idWYgKmRtYV9idWYsCkBAIC04ODks NyArOTI1LDExIEBAIEVYUE9SVF9TWU1CT0woZHJtX2dlbV9wcmltZV9pbXBvcnRfZGV2KTsKICAq IEBkbWFfYnVmOiBkbWEtYnVmIG9iamVjdCB0byBpbXBvcnQKICAqCiAgKiBUaGlzIGlzIHRoZSBp bXBsZW1lbnRhdGlvbiBvZiB0aGUgZ2VtX3ByaW1lX2ltcG9ydCBmdW5jdGlvbnMgZm9yIEdFTSBk cml2ZXJzCi0gKiB1c2luZyB0aGUgUFJJTUUgaGVscGVycy4KKyAqIHVzaW5nIHRoZSBQUklNRSBo ZWxwZXJzLiBEcml2ZXJzIGNhbiB1c2UgdGhpcyBhcyB0aGVpcgorICogJmRybV9kcml2ZXIuZ2Vt X3ByaW1lX2ltcG9ydCBpbXBsZW1lbnRhdGlvbi4KKyAqCisgKiBEcml2ZXJzIG11c3QgYXJyYW5n ZSB0byBjYWxsIGRybV9wcmltZV9nZW1fZGVzdHJveSgpIGZyb20gdGhlaXIKKyAqICZkcm1fZ2Vt X29iamVjdF9mdW5jcy5mcmVlIGhvb2sgd2hlbiB1c2luZyB0aGlzIGZ1bmN0aW9uLgogICovCiBz dHJ1Y3QgZHJtX2dlbV9vYmplY3QgKmRybV9nZW1fcHJpbWVfaW1wb3J0KHN0cnVjdCBkcm1fZGV2 aWNlICpkZXYsCiAJCQkJCSAgICBzdHJ1Y3QgZG1hX2J1ZiAqZG1hX2J1ZikKQEAgLTkwNyw2ICs5 NDcsOSBAQCBFWFBPUlRfU1lNQk9MKGRybV9nZW1fcHJpbWVfaW1wb3J0KTsKICAqCiAgKiBFeHBv cnRzIGFuIHNnIHRhYmxlIGludG8gYW4gYXJyYXkgb2YgcGFnZXMgYW5kIGFkZHJlc3Nlcy4gVGhp cyBpcyBjdXJyZW50bHkKICAqIHJlcXVpcmVkIGJ5IHRoZSBUVE0gZHJpdmVyIGluIG9yZGVyIHRv IGRvIGNvcnJlY3QgZmF1bHQgaGFuZGxpbmcuCisgKgorICogRHJpdmVycyBjYW4gdXNlIHRoaXMg aW4gdGhlaXIgJmRybV9kcml2ZXIuZ2VtX3ByaW1lX2ltcG9ydF9zZ190YWJsZQorICogaW1wbGVt ZW50YXRpb24uCiAgKi8KIGludCBkcm1fcHJpbWVfc2dfdG9fcGFnZV9hZGRyX2FycmF5cyhzdHJ1 Y3Qgc2dfdGFibGUgKnNndCwgc3RydWN0IHBhZ2UgKipwYWdlcywKIAkJCQkgICAgIGRtYV9hZGRy X3QgKmFkZHJzLCBpbnQgbWF4X2VudHJpZXMpCkBAIC05NDcsNyArOTkwLDcgQEAgRVhQT1JUX1NZ TUJPTChkcm1fcHJpbWVfc2dfdG9fcGFnZV9hZGRyX2FycmF5cyk7CiAgKiBAc2c6IHRoZSBzZy10 YWJsZSB3aGljaCB3YXMgcGlubmVkIGF0IGltcG9ydCB0aW1lCiAgKgogICogVGhpcyBpcyB0aGUg Y2xlYW51cCBmdW5jdGlvbnMgd2hpY2ggR0VNIGRyaXZlcnMgbmVlZCB0byBjYWxsIHdoZW4gdGhl eSB1c2UKLSAqIEBkcm1fZ2VtX3ByaW1lX2ltcG9ydCB0byBpbXBvcnQgZG1hLWJ1ZnMuCisgKiBk cm1fZ2VtX3ByaW1lX2ltcG9ydCgpIG9yIGRybV9nZW1fcHJpbWVfaW1wb3J0X2RldigpIHRvIGlt cG9ydCBkbWEtYnVmcy4KICAqLwogdm9pZCBkcm1fcHJpbWVfZ2VtX2Rlc3Ryb3koc3RydWN0IGRy bV9nZW1fb2JqZWN0ICpvYmosIHN0cnVjdCBzZ190YWJsZSAqc2cpCiB7CmRpZmYgLS1naXQgYS9p bmNsdWRlL2RybS9kcm1fZHJ2LmggYi9pbmNsdWRlL2RybS9kcm1fZHJ2LmgKaW5kZXggNWM0ZmMw ZGRjODYzLi5iYmIzYTZmZjQ0MTggMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvZHJtL2RybV9kcnYuaAor KysgYi9pbmNsdWRlL2RybS9kcm1fZHJ2LmgKQEAgLTUwNSwyMSArNTA1LDI1IEBAIHN0cnVjdCBk cm1fZHJpdmVyIHsKIAkgKiBAZ2VtX2ZyZWVfb2JqZWN0OiBkZWNvbnN0cnVjdG9yIGZvciBkcm1f Z2VtX29iamVjdHMKIAkgKgogCSAqIFRoaXMgaXMgZGVwcmVjYXRlZCBhbmQgc2hvdWxkIG5vdCBi ZSB1c2VkIGJ5IG5ldyBkcml2ZXJzLiBVc2UKLQkgKiBAZ2VtX2ZyZWVfb2JqZWN0X3VubG9ja2Vk IGluc3RlYWQuCisJICogJmRybV9nZW1fb2JqZWN0X2Z1bmNzLmZyZWUgaW5zdGVhZC4KIAkgKi8K IAl2b2lkICgqZ2VtX2ZyZWVfb2JqZWN0KSAoc3RydWN0IGRybV9nZW1fb2JqZWN0ICpvYmopOwog CiAJLyoqCiAJICogQGdlbV9mcmVlX29iamVjdF91bmxvY2tlZDogZGVjb25zdHJ1Y3RvciBmb3Ig ZHJtX2dlbV9vYmplY3RzCiAJICoKLQkgKiBUaGlzIGlzIGZvciBkcml2ZXJzIHdoaWNoIGFyZSBu b3QgZW5jdW1iZXJlZCB3aXRoICZkcm1fZGV2aWNlLnN0cnVjdF9tdXRleAotCSAqIGxlZ2FjeSBs b2NraW5nIHNjaGVtZXMuIFVzZSB0aGlzIGhvb2sgaW5zdGVhZCBvZiBAZ2VtX2ZyZWVfb2JqZWN0 LgorCSAqIFRoaXMgaXMgZGVwcmVjYXRlZCBhbmQgc2hvdWxkIG5vdCBiZSB1c2VkIGJ5IG5ldyBk cml2ZXJzLiBVc2UKKwkgKiAmZHJtX2dlbV9vYmplY3RfZnVuY3MuZnJlZSBpbnN0ZWFkLgorCSAq IENvbXBhcmVkIHRvIEBnZW1fZnJlZV9vYmplY3QgdGhpcyBpcyBub3QgZW5jdW1iZXJlZCB3aXRo CisJICogJmRybV9kZXZpY2Uuc3RydWN0X211dGV4IGxlZ2FjeSBsb2NraW5nIHNjaGVtZXMuCiAJ ICovCiAJdm9pZCAoKmdlbV9mcmVlX29iamVjdF91bmxvY2tlZCkgKHN0cnVjdCBkcm1fZ2VtX29i amVjdCAqb2JqKTsKIAogCS8qKgogCSAqIEBnZW1fb3Blbl9vYmplY3Q6CiAJICoKKwkgKiBUaGlz IGNhbGxiYWNrIGlzIGRlcHJlY2F0ZWQgaW4gZmF2b3VyIG9mICZkcm1fZ2VtX29iamVjdF9mdW5j cy5vcGVuLgorCSAqCiAJICogRHJpdmVyIGhvb2sgY2FsbGVkIHVwb24gZ2VtIGhhbmRsZSBjcmVh dGlvbgogCSAqLwogCWludCAoKmdlbV9vcGVuX29iamVjdCkgKHN0cnVjdCBkcm1fZ2VtX29iamVj dCAqLCBzdHJ1Y3QgZHJtX2ZpbGUgKik7CkBAIC01MjcsNiArNTMxLDggQEAgc3RydWN0IGRybV9k cml2ZXIgewogCS8qKgogCSAqIEBnZW1fY2xvc2Vfb2JqZWN0OgogCSAqCisJICogVGhpcyBjYWxs YmFjayBpcyBkZXByZWNhdGVkIGluIGZhdm91ciBvZiAmZHJtX2dlbV9vYmplY3RfZnVuY3MuY2xv c2UuCisJICoKIAkgKiBEcml2ZXIgaG9vayBjYWxsZWQgdXBvbiBnZW0gaGFuZGxlIHJlbGVhc2UK IAkgKi8KIAl2b2lkICgqZ2VtX2Nsb3NlX29iamVjdCkgKHN0cnVjdCBkcm1fZ2VtX29iamVjdCAq LCBzdHJ1Y3QgZHJtX2ZpbGUgKik7CkBAIC01MzQsNiArNTQwLDkgQEAgc3RydWN0IGRybV9kcml2 ZXIgewogCS8qKgogCSAqIEBnZW1fcHJpbnRfaW5mbzoKIAkgKgorCSAqIFRoaXMgY2FsbGJhY2sg aXMgZGVwcmVjYXRlZCBpbiBmYXZvdXIgb2YKKwkgKiAmZHJtX2dlbV9vYmplY3RfZnVuY3MucHJp bnRfaW5mby4KKwkgKgogCSAqIElmIGRyaXZlciBzdWJjbGFzc2VzIHN0cnVjdCAmZHJtX2dlbV9v YmplY3QsIGl0IGNhbiBpbXBsZW1lbnQgdGhpcwogCSAqIG9wdGlvbmFsIGhvb2sgZm9yIHByaW50 aW5nIGFkZGl0aW9uYWwgZHJpdmVyIHNwZWNpZmljIGluZm8uCiAJICoKQEAgLTU0OCw1NiArNTU3 LDEyMCBAQCBzdHJ1Y3QgZHJtX2RyaXZlciB7CiAJLyoqCiAJICogQGdlbV9jcmVhdGVfb2JqZWN0 OiBjb25zdHJ1Y3RvciBmb3IgZ2VtIG9iamVjdHMKIAkgKgotCSAqIEhvb2sgZm9yIGFsbG9jYXRp bmcgdGhlIEdFTSBvYmplY3Qgc3RydWN0LCBmb3IgdXNlIGJ5IGNvcmUKLQkgKiBoZWxwZXJzLgor CSAqIEhvb2sgZm9yIGFsbG9jYXRpbmcgdGhlIEdFTSBvYmplY3Qgc3RydWN0LCBmb3IgdXNlIGJ5 IHRoZSBDTUEgYW5kCisJICogU0hNRU0gR0VNIGhlbHBlcnMuCiAJICovCiAJc3RydWN0IGRybV9n ZW1fb2JqZWN0ICooKmdlbV9jcmVhdGVfb2JqZWN0KShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAog CQkJCQkJICAgIHNpemVfdCBzaXplKTsKLQotCS8qIHByaW1lOiAqLwogCS8qKgogCSAqIEBwcmlt ZV9oYW5kbGVfdG9fZmQ6CiAJICoKLQkgKiBleHBvcnQgaGFuZGxlIC0+IGZkIChzZWUgZHJtX2dl bV9wcmltZV9oYW5kbGVfdG9fZmQoKSBoZWxwZXIpCisJICogTWFpbiBQUklNRSBleHBvcnQgZnVu Y3Rpb24uIFNob3VsZCBiZSBpbXBsZW1lbnRlZCB3aXRoCisJICogZHJtX2dlbV9wcmltZV9oYW5k bGVfdG9fZmQoKSBmb3IgR0VNIGJhc2VkIGRyaXZlcnMuCisJICoKKwkgKiBGb3IgYW4gaW4tZGVw dGggZGlzY3Vzc2lvbiBzZWUgOnJlZjpgUFJJTUUgYnVmZmVyIHNoYXJpbmcKKwkgKiBkb2N1bWVu dGF0aW9uIDxwcmltZV9idWZmZXJfc2hhcmluZz5gLgogCSAqLwogCWludCAoKnByaW1lX2hhbmRs ZV90b19mZCkoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgc3RydWN0IGRybV9maWxlICpmaWxlX3By aXYsCiAJCQkJdWludDMyX3QgaGFuZGxlLCB1aW50MzJfdCBmbGFncywgaW50ICpwcmltZV9mZCk7 CiAJLyoqCiAJICogQHByaW1lX2ZkX3RvX2hhbmRsZToKIAkgKgotCSAqIGltcG9ydCBmZCAtPiBo YW5kbGUgKHNlZSBkcm1fZ2VtX3ByaW1lX2ZkX3RvX2hhbmRsZSgpIGhlbHBlcikKKwkgKiBNYWlu IFBSSU1FIGltcG9ydCBmdW5jdGlvbi4gU2hvdWxkIGJlIGltcGxlbWVudGVkIHdpdGgKKwkgKiBk cm1fZ2VtX3ByaW1lX2ZkX3RvX2hhbmRsZSgpIGZvciBHRU0gYmFzZWQgZHJpdmVycy4KKwkgKgor CSAqIEZvciBhbiBpbi1kZXB0aCBkaXNjdXNzaW9uIHNlZSA6cmVmOmBQUklNRSBidWZmZXIgc2hh cmluZworCSAqIGRvY3VtZW50YXRpb24gPHByaW1lX2J1ZmZlcl9zaGFyaW5nPmAuCiAJICovCiAJ aW50ICgqcHJpbWVfZmRfdG9faGFuZGxlKShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBzdHJ1Y3Qg ZHJtX2ZpbGUgKmZpbGVfcHJpdiwKIAkJCQlpbnQgcHJpbWVfZmQsIHVpbnQzMl90ICpoYW5kbGUp OwogCS8qKgogCSAqIEBnZW1fcHJpbWVfZXhwb3J0OgogCSAqCi0JICogZXhwb3J0IEdFTSAtPiBk bWFidWYKLQkgKgotCSAqIFRoaXMgZGVmYXVsdHMgdG8gZHJtX2dlbV9wcmltZV9leHBvcnQoKSBp ZiBub3Qgc2V0LgorCSAqIEV4cG9ydCBob29rIGZvciBHRU0gZHJpdmVycy4gRGVwcmVjYXRlZCBp biBmYXZvdXIgb2YKKwkgKiAmZHJtX2dlbV9vYmplY3RfZnVuY3MuZXhwb3J0LgogCSAqLwogCXN0 cnVjdCBkbWFfYnVmICogKCpnZW1fcHJpbWVfZXhwb3J0KShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 LAogCQkJCXN0cnVjdCBkcm1fZ2VtX29iamVjdCAqb2JqLCBpbnQgZmxhZ3MpOwogCS8qKgogCSAq IEBnZW1fcHJpbWVfaW1wb3J0OgogCSAqCi0JICogaW1wb3J0IGRtYWJ1ZiAtPiBHRU0KKwkgKiBJ bXBvcnQgaG9vayBmb3IgR0VNIGRyaXZlcnMuCiAJICoKIAkgKiBUaGlzIGRlZmF1bHRzIHRvIGRy bV9nZW1fcHJpbWVfaW1wb3J0KCkgaWYgbm90IHNldC4KIAkgKi8KIAlzdHJ1Y3QgZHJtX2dlbV9v YmplY3QgKiAoKmdlbV9wcmltZV9pbXBvcnQpKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJCQkJ c3RydWN0IGRtYV9idWYgKmRtYV9idWYpOworCisJLyoqCisJICogQGdlbV9wcmltZV9waW46CisJ ICoKKwkgKiBEZXByZWNhdGVkIGhvb2sgaW4gZmF2b3VyIG9mICZkcm1fZ2VtX29iamVjdF9mdW5j cy5waW4uCisJICovCiAJaW50ICgqZ2VtX3ByaW1lX3Bpbikoc3RydWN0IGRybV9nZW1fb2JqZWN0 ICpvYmopOworCisJLyoqCisJICogQGdlbV9wcmltZV91bnBpbjoKKwkgKgorCSAqIERlcHJlY2F0 ZWQgaG9vayBpbiBmYXZvdXIgb2YgJmRybV9nZW1fb2JqZWN0X2Z1bmNzLnVucGluLgorCSAqLwog CXZvaWQgKCpnZW1fcHJpbWVfdW5waW4pKHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqb2JqKTsKKwor CisJLyoqCisJICogQGdlbV9wcmltZV9nZXRfc2dfdGFibGU6CisJICoKKwkgKiBEZXByZWNhdGVk IGhvb2sgaW4gZmF2b3VyIG9mICZkcm1fZ2VtX29iamVjdF9mdW5jcy5nZXRfc2dfdGFibGUuCisJ ICovCisJc3RydWN0IHNnX3RhYmxlICooKmdlbV9wcmltZV9nZXRfc2dfdGFibGUpKHN0cnVjdCBk cm1fZ2VtX29iamVjdCAqb2JqKTsKKworCS8qKgorCSAqIEBnZW1fcHJpbWVfcmVzX29iajoKKwkg KgorCSAqIE9wdGlvbmFsIGhvb2sgdG8gbG9vayB1cCB0aGUgJnJlc2VydmF0aW9uX29iamVjdCBm b3IgYW4gYnVmZmVyIHdoZW4KKwkgKiBleHBvcnRpbmcgaXQuCisJICoKKwkgKiBGSVhNRTogVGhp cyBob29rIGlzIGRlcHJlY2F0ZWQuIFVzZXJzIG9mIHRoaXMgaG9vayBzaG91bGQgYmUgcmVwbGFj ZWQKKwkgKiBieSBzZXR0aW5nICZkcm1fZ2VtX29iamVjdC5yZXN2IGluc3RlYWQuCisJICovCiAJ c3RydWN0IHJlc2VydmF0aW9uX29iamVjdCAqICgqZ2VtX3ByaW1lX3Jlc19vYmopKAogCQkJCXN0 cnVjdCBkcm1fZ2VtX29iamVjdCAqb2JqKTsKLQlzdHJ1Y3Qgc2dfdGFibGUgKigqZ2VtX3ByaW1l X2dldF9zZ190YWJsZSkoc3RydWN0IGRybV9nZW1fb2JqZWN0ICpvYmopOworCisJLyoqCisJICog QGdlbV9wcmltZV9pbXBvcnRfc2dfdGFibGU6CisJICoKKwkgKiBPcHRpb25hbCBob29rIHVzZWQg YnkgdGhlIFBSSU1FIGhlbHBlciBmdW5jdGlvbnMKKwkgKiBkcm1fZ2VtX3ByaW1lX2ltcG9ydCgp IHJlc3BlY3RpdmVseSBkcm1fZ2VtX3ByaW1lX2ltcG9ydF9kZXYoKS4KKwkgKi8KIAlzdHJ1Y3Qg ZHJtX2dlbV9vYmplY3QgKigqZ2VtX3ByaW1lX2ltcG9ydF9zZ190YWJsZSkoCiAJCQkJc3RydWN0 IGRybV9kZXZpY2UgKmRldiwKIAkJCQlzdHJ1Y3QgZG1hX2J1Zl9hdHRhY2htZW50ICphdHRhY2gs CiAJCQkJc3RydWN0IHNnX3RhYmxlICpzZ3QpOworCS8qKgorCSAqIEBnZW1fcHJpbWVfdm1hcDoK KwkgKgorCSAqIERlcHJlY2F0ZWQgdm1hcCBob29rIGZvciBHRU0gZHJpdmVycy4gUGxlYXNlIHVz ZQorCSAqICZkcm1fZ2VtX29iamVjdF9mdW5jcy52bWFwIGluc3RlYWQuCisJICovCiAJdm9pZCAq KCpnZW1fcHJpbWVfdm1hcCkoc3RydWN0IGRybV9nZW1fb2JqZWN0ICpvYmopOworCisJLyoqCisJ ICogQGdlbV9wcmltZV92dW5tYXA6CisJICoKKwkgKiBEZXByZWNhdGVkIHZ1bm1hcCBob29rIGZv ciBHRU0gZHJpdmVycy4gUGxlYXNlIHVzZQorCSAqICZkcm1fZ2VtX29iamVjdF9mdW5jcy52dW5t YXAgaW5zdGVhZC4KKwkgKi8KIAl2b2lkICgqZ2VtX3ByaW1lX3Z1bm1hcCkoc3RydWN0IGRybV9n ZW1fb2JqZWN0ICpvYmosIHZvaWQgKnZhZGRyKTsKKworCS8qKgorCSAqIEBnZW1fcHJpbWVfbW1h cDoKKwkgKgorCSAqIG1tYXAgaG9vayBmb3IgR0VNIGRyaXZlcnMsIHVzZWQgdG8gaW1wbGVtZW50 IGRtYS1idWYgbW1hcCBpbiB0aGUKKwkgKiBQUklNRSBoZWxwZXJzLgorCSAqCisJICogRklYTUU6 IFRoZXJlJ3Mgd2F5IHRvbyBtdWNoIGR1cGxpY2F0aW9uIGdvaW5nIG9uIGhlcmUsIGFuZCBhbHNv IG1vdmVkCisJICogdG8gJmRybV9nZW1fb2JqZWN0X2Z1bmNzLgorCSAqLwogCWludCAoKmdlbV9w cmltZV9tbWFwKShzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKm9iaiwKIAkJCQlzdHJ1Y3Qgdm1fYXJl YV9zdHJ1Y3QgKnZtYSk7CiAKQEAgLTY2NSw2ICs3MzgsOSBAQCBzdHJ1Y3QgZHJtX2RyaXZlciB7 CiAKIAkvKioKIAkgKiBAZ2VtX3ZtX29wczogRHJpdmVyIHByaXZhdGUgb3BzIGZvciB0aGlzIG9i amVjdAorCSAqCisJICogRm9yIEdFTSBkcml2ZXIgdGhpcyBpcyBkZXByZWNhdGVkIGluIGZhdm91 ciBvZgorCSAqICZkcm1fZ2VtX29iamVjdF9mdW5jcy52bV9vcHMuCiAJICovCiAJY29uc3Qgc3Ry dWN0IHZtX29wZXJhdGlvbnNfc3RydWN0ICpnZW1fdm1fb3BzOwogCmRpZmYgLS1naXQgYS9pbmNs dWRlL2RybS9kcm1fZ2VtLmggYi9pbmNsdWRlL2RybS9kcm1fZ2VtLmgKaW5kZXggYTkxMjFmZTY2 ZWEyLi45YWY4ODIzOGVlNWMgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvZHJtL2RybV9nZW0uaAorKysg Yi9pbmNsdWRlL2RybS9kcm1fZ2VtLmgKQEAgLTEwMSw3ICsxMDEsNyBAQCBzdHJ1Y3QgZHJtX2dl bV9vYmplY3RfZnVuY3MgewogCS8qKgogCSAqIEBwaW46CiAJICoKLQkgKiBQaW4gYmFja2luZyBi dWZmZXIgaW4gbWVtb3J5LgorCSAqIFBpbiBiYWNraW5nIGJ1ZmZlciBpbiBtZW1vcnkuIFVzZWQg YnkgdGhlIGRybV9nZW1fbWFwX2F0dGFjaCBoZWxwZXIuCiAJICoKIAkgKiBUaGlzIGNhbGxiYWNr IGlzIG9wdGlvbmFsLgogCSAqLwpAQCAtMTEwLDcgKzExMCw3IEBAIHN0cnVjdCBkcm1fZ2VtX29i amVjdF9mdW5jcyB7CiAJLyoqCiAJICogQHVucGluOgogCSAqCi0JICogVW5waW4gYmFja2luZyBi dWZmZXIuCisJICogVW5waW4gYmFja2luZyBidWZmZXIuIFVzZWQgYnkgdGhlIGRybV9nZW1fbWFw X2RldGFjaCgpIGhlbHBlci4KIAkgKgogCSAqIFRoaXMgY2FsbGJhY2sgaXMgb3B0aW9uYWwuCiAJ ICovCkBAIC0xMjAsMTYgKzEyMCwyMSBAQCBzdHJ1Y3QgZHJtX2dlbV9vYmplY3RfZnVuY3Mgewog CSAqIEBnZXRfc2dfdGFibGU6CiAJICoKIAkgKiBSZXR1cm5zIGEgU2NhdHRlci1HYXRoZXIgdGFi bGUgcmVwcmVzZW50YXRpb24gb2YgdGhlIGJ1ZmZlci4KLQkgKiBVc2VkIHdoZW4gZXhwb3J0aW5n IGEgYnVmZmVyLgorCSAqIFVzZWQgd2hlbiBleHBvcnRpbmcgYSBidWZmZXIgYnkgdGhlIGRybV9n ZW1fbWFwX2RtYV9idWYoKSBoZWxwZXIuCisJICogUmVsZWFzaW5nIGlzIGRvbmUgYnkgY2FsbGlu ZyBkbWFfdW5tYXBfc2dfYXR0cnMoKSBhbmQgc2dfZnJlZV90YWJsZSgpCisJICogaW4gZHJtX2dl bV91bm1hcF9idWYoKSwgdGhlcmVmb3JlIHRoZXNlIGhlbHBlcnMgYW5kIHRoaXMgY2FsbGJhY2sK KwkgKiBoZXJlIGNhbm5vdCBiZSB1c2VkIGZvciBzZyB0YWJsZXMgcG9pbnRpbmcgYXQgZHJpdmVy IHByaXZhdGUgbWVtb3J5CisJICogcmFuZ2VzLgogCSAqCi0JICogVGhpcyBjYWxsYmFjayBpcyBt YW5kYXRvcnkgaWYgYnVmZmVyIGV4cG9ydCBpcyBzdXBwb3J0ZWQuCisJICogU2VlIGFsc28gZHJt X3ByaW1lX3BhZ2VzX3RvX3NnKCkuCiAJICovCiAJc3RydWN0IHNnX3RhYmxlICooKmdldF9zZ190 YWJsZSkoc3RydWN0IGRybV9nZW1fb2JqZWN0ICpvYmopOwogCiAJLyoqCiAJICogQHZtYXA6CiAJ ICoKLQkgKiBSZXR1cm5zIGEgdmlydHVhbCBhZGRyZXNzIGZvciB0aGUgYnVmZmVyLgorCSAqIFJl dHVybnMgYSB2aXJ0dWFsIGFkZHJlc3MgZm9yIHRoZSBidWZmZXIuIFVzZWQgYnkgdGhlCisJICog ZHJtX2dlbV9kbWFidWZfdm1hcCgpIGhlbHBlci4KIAkgKgogCSAqIFRoaXMgY2FsbGJhY2sgaXMg b3B0aW9uYWwuCiAJICovCkBAIC0xMzgsNyArMTQzLDggQEAgc3RydWN0IGRybV9nZW1fb2JqZWN0 X2Z1bmNzIHsKIAkvKioKIAkgKiBAdnVubWFwOgogCSAqCi0JICogUmVsZWFzZXMgdGhlIHRoZSBh ZGRyZXNzIHByZXZpb3VzbHkgcmV0dXJuZWQgYnkgQHZtYXAuCisJICogUmVsZWFzZXMgdGhlIHRo ZSBhZGRyZXNzIHByZXZpb3VzbHkgcmV0dXJuZWQgYnkgQHZtYXAuIFVzZWQgYnkgdGhlCisJICog ZHJtX2dlbV9kbWFidWZfdnVubWFwKCkgaGVscGVyLgogCSAqCiAJICogVGhpcyBjYWxsYmFjayBp cyBvcHRpb25hbC4KIAkgKi8KLS0gCjIuMjAuMQoKX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlz dHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4v bGlzdGluZm8vZHJpLWRldmVs