From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: [PATCH] drm/prime: Update docs Date: Thu, 20 Jun 2019 14:46:15 +0200 Message-ID: <20190620124615.24434-1-daniel.vetter@ffwll.ch> References: <20190618092038.17929-2-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-x543.google.com (mail-ed1-x543.google.com [IPv6:2a00:1450:4864:20::543]) by gabe.freedesktop.org (Postfix) with ESMTPS id 159356E42D for ; Thu, 20 Jun 2019 12:46:29 +0000 (UTC) Received: by mail-ed1-x543.google.com with SMTP id s49so4577111edb.1 for ; Thu, 20 Jun 2019 05:46:29 -0700 (PDT) In-Reply-To: <20190618092038.17929-2-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 , Gerd Hoffmann , Thomas Zimmermann , Daniel Vetter , Sam Ravnborg , Emil Velikov 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 biBjaGFuZ2VzLgotIFR5cG9zIGFuZCBuaXRzIChTYW0pLgoKdjQ6IFBvbGlzaCBzdWdnZXN0aW9u cyBmcm9tIE5vcmFsZi4KCkFja2VkLWJ5OiBHZXJkIEhvZmZtYW5uIDxrcmF4ZWxAcmVkaGF0LmNv bT4KQWNrZWQtYnk6IEVtaWwgVmVsaWtvdiA8ZW1pbC52ZWxpa292QGNvbGxhYm9yYS5jb20+CkFj a2VkLWJ5OiBOb3JhbGYgVHLDuG5uZXMgPG5vcmFsZkB0cm9ubmVzLm9yZz4KQ2M6IFRob21hcyBa aW1tZXJtYW5uIDx0emltbWVybWFubkBzdXNlLmRlPgpDYzogR2VyZCBIb2ZmbWFubiA8a3JheGVs QHJlZGhhdC5jb20+CkNjOiBOb3JhbGYgVHLDuG5uZXMgPG5vcmFsZkB0cm9ubmVzLm9yZz4KQ2M6 IFNhbSBSYXZuYm9yZyA8c2FtQHJhdm5ib3JnLm9yZz4KQ2M6IEVyaWMgQW5ob2x0IDxlcmljQGFu aG9sdC5uZXQ+CkNjOiBFbWlsIFZlbGlrb3YgPGVtaWwubC52ZWxpa292QGdtYWlsLmNvbT4KU2ln bmVkLW9mZi1ieTogRGFuaWVsIFZldHRlciA8ZGFuaWVsLnZldHRlckBpbnRlbC5jb20+Ci0tLQog RG9jdW1lbnRhdGlvbi9ncHUvZHJtLW1tLnJzdCB8ICA0MCArLS0tLS0tCiBkcml2ZXJzL2dwdS9k cm0vZHJtX3ByaW1lLmMgIHwgMjAxICsrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0t CiBpbmNsdWRlL2RybS9kcm1fZHJ2LmggICAgICAgIHwgMTA0ICsrKysrKysrKysrKysrKy0tLQog aW5jbHVkZS9kcm0vZHJtX2dlbS5oICAgICAgICB8ICAxOCArKy0tCiA0IGZpbGVzIGNoYW5nZWQs IDIyOSBpbnNlcnRpb25zKCspLCAxMzQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvRG9jdW1l bnRhdGlvbi9ncHUvZHJtLW1tLnJzdCBiL0RvY3VtZW50YXRpb24vZ3B1L2RybS1tbS5yc3QKaW5k ZXggYzhlYmQ0ZjY2YTZhLi5iNjY0ZjA1NGMyNTkgMTAwNjQ0Ci0tLSBhL0RvY3VtZW50YXRpb24v Z3B1L2RybS1tbS5yc3QKKysrIGIvRG9jdW1lbnRhdGlvbi9ncHUvZHJtLW1tLnJzdApAQCAtNDMz LDQzICs0MzMsMTEgQEAgUFJJTUUgaXMgdGhlIGNyb3NzIGRldmljZSBidWZmZXIgc2hhcmluZyBm cmFtZXdvcmsgaW4gZHJtLCBvcmlnaW5hbGx5CiBjcmVhdGVkIGZvciB0aGUgT1BUSU1VUyByYW5n ZSBvZiBtdWx0aS1ncHUgcGxhdGZvcm1zLiBUbyB1c2Vyc3BhY2UgUFJJTUUKIGJ1ZmZlcnMgYXJl IGRtYS1idWYgYmFzZWQgZmlsZSBkZXNjcmlwdG9ycy4KIAotT3ZlcnZpZXcgYW5kIERyaXZlciBJ bnRlcmZhY2UKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitPdmVydmlldyBhbmQgTGlm ZXRpbWUgUnVsZXMKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCi1TaW1pbGFyIHRvIEdF TSBnbG9iYWwgbmFtZXMsIFBSSU1FIGZpbGUgZGVzY3JpcHRvcnMgYXJlIGFsc28gdXNlZCB0bwot c2hhcmUgYnVmZmVyIG9iamVjdHMgYWNyb3NzIHByb2Nlc3Nlcy4gVGhleSBvZmZlciBhZGRpdGlv bmFsIHNlY3VyaXR5OgotYXMgZmlsZSBkZXNjcmlwdG9ycyBtdXN0IGJlIGV4cGxpY2l0bHkgc2Vu dCBvdmVyIFVOSVggZG9tYWluIHNvY2tldHMgdG8KLWJlIHNoYXJlZCBiZXR3ZWVuIGFwcGxpY2F0 aW9ucywgdGhleSBjYW4ndCBiZSBndWVzc2VkIGxpa2UgdGhlIGdsb2JhbGx5Ci11bmlxdWUgR0VN IG5hbWVzLgotCi1Ecml2ZXJzIHRoYXQgc3VwcG9ydCB0aGUgUFJJTUUgQVBJIG11c3Qgc2V0IHRo ZSBEUklWRVJfUFJJTUUgYml0IGluIHRoZQotc3RydWN0IDpjOnR5cGU6YHN0cnVjdCBkcm1fZHJp dmVyIDxkcm1fZHJpdmVyPmAKLWRyaXZlcl9mZWF0dXJlcyBmaWVsZCwgYW5kIGltcGxlbWVudCB0 aGUgcHJpbWVfaGFuZGxlX3RvX2ZkIGFuZAotcHJpbWVfZmRfdG9faGFuZGxlIG9wZXJhdGlvbnMu Ci0KLWludCAoXCpwcmltZV9oYW5kbGVfdG9fZmQpKHN0cnVjdCBkcm1fZGV2aWNlIFwqZGV2LCBz dHJ1Y3QgZHJtX2ZpbGUKLVwqZmlsZV9wcml2LCB1aW50MzJfdCBoYW5kbGUsIHVpbnQzMl90IGZs YWdzLCBpbnQgXCpwcmltZV9mZCk7IGludAotKFwqcHJpbWVfZmRfdG9faGFuZGxlKShzdHJ1Y3Qg ZHJtX2RldmljZSBcKmRldiwgc3RydWN0IGRybV9maWxlCi1cKmZpbGVfcHJpdiwgaW50IHByaW1l X2ZkLCB1aW50MzJfdCBcKmhhbmRsZSk7IFRob3NlIHR3byBvcGVyYXRpb25zCi1jb252ZXJ0IGEg aGFuZGxlIHRvIGEgUFJJTUUgZmlsZSBkZXNjcmlwdG9yIGFuZCB2aWNlIHZlcnNhLiBEcml2ZXJz IG11c3QKLXVzZSB0aGUga2VybmVsIGRtYS1idWYgYnVmZmVyIHNoYXJpbmcgZnJhbWV3b3JrIHRv IG1hbmFnZSB0aGUgUFJJTUUgZmlsZQotZGVzY3JpcHRvcnMuIFNpbWlsYXIgdG8gdGhlIG1vZGUg c2V0dGluZyBBUEkgUFJJTUUgaXMgYWdub3N0aWMgdG8gdGhlCi11bmRlcmx5aW5nIGJ1ZmZlciBv YmplY3QgbWFuYWdlciwgYXMgbG9uZyBhcyBoYW5kbGVzIGFyZSAzMmJpdCB1bnNpZ25lZAotaW50 ZWdlcnMuCi0KLVdoaWxlIG5vbi1HRU0gZHJpdmVycyBtdXN0IGltcGxlbWVudCB0aGUgb3BlcmF0 aW9ucyB0aGVtc2VsdmVzLCBHRU0KLWRyaXZlcnMgbXVzdCB1c2UgdGhlIDpjOmZ1bmM6YGRybV9n ZW1fcHJpbWVfaGFuZGxlX3RvX2ZkKClgIGFuZAotOmM6ZnVuYzpgZHJtX2dlbV9wcmltZV9mZF90 b19oYW5kbGUoKWAgaGVscGVyIGZ1bmN0aW9ucy4gVGhvc2UKLWhlbHBlcnMgcmVseSBvbiB0aGUg ZHJpdmVyIGdlbV9wcmltZV9leHBvcnQgYW5kIGdlbV9wcmltZV9pbXBvcnQKLW9wZXJhdGlvbnMg dG8gY3JlYXRlIGEgZG1hLWJ1ZiBpbnN0YW5jZSBmcm9tIGEgR0VNIG9iamVjdCAoZG1hLWJ1Zgot ZXhwb3J0ZXIgcm9sZSkgYW5kIHRvIGNyZWF0ZSBhIEdFTSBvYmplY3QgZnJvbSBhIGRtYS1idWYg aW5zdGFuY2UKLShkbWEtYnVmIGltcG9ydGVyIHJvbGUpLgotCi1zdHJ1Y3QgZG1hX2J1ZiBcKiAo XCpnZW1fcHJpbWVfZXhwb3J0KShzdHJ1Y3QgZHJtX2RldmljZSBcKmRldiwKLXN0cnVjdCBkcm1f Z2VtX29iamVjdCBcKm9iaiwgaW50IGZsYWdzKTsgc3RydWN0IGRybV9nZW1fb2JqZWN0IFwqCi0o XCpnZW1fcHJpbWVfaW1wb3J0KShzdHJ1Y3QgZHJtX2RldmljZSBcKmRldiwgc3RydWN0IGRtYV9i dWYKLVwqZG1hX2J1Zik7IFRoZXNlIHR3byBvcGVyYXRpb25zIGFyZSBtYW5kYXRvcnkgZm9yIEdF TSBkcml2ZXJzIHRoYXQKLXN1cHBvcnQgUFJJTUUuCisuLiBrZXJuZWwtZG9jOjogZHJpdmVycy9n cHUvZHJtL2RybV9wcmltZS5jCisgICA6ZG9jOiBvdmVydmlldyBhbmQgbGlmZXRpbWUgcnVsZXMK IAogUFJJTUUgSGVscGVyIEZ1bmN0aW9ucwogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9wcmltZS5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9w cmltZS5jCmluZGV4IDY4YjRkZTg1MzcwYy4uYzI2OWJjMDNjNDJhIDEwMDY0NAotLS0gYS9kcml2 ZXJzL2dwdS9kcm0vZHJtX3ByaW1lLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9wcmltZS5j CkBAIC0zOCw0NyArMzgsNTMgQEAKIAogI2luY2x1ZGUgImRybV9pbnRlcm5hbC5oIgogCi0vKgot ICogRE1BLUJVRi9HRU0gT2JqZWN0IHJlZmVyZW5jZXMgYW5kIGxpZmV0aW1lIG92ZXJ2aWV3Ogot ICoKLSAqIE9uIHRoZSBleHBvcnQgdGhlIGRtYV9idWYgaG9sZHMgYSByZWZlcmVuY2UgdG8gdGhl IGV4cG9ydGluZyBHRU0KLSAqIG9iamVjdC4gSXQgdGFrZXMgdGhpcyByZWZlcmVuY2UgaW4gaGFu ZGxlX3RvX2ZkX2lvY3RsLCB3aGVuIGl0Ci0gKiBmaXJzdCBjYWxscyAucHJpbWVfZXhwb3J0IGFu ZCBzdG9yZXMgdGhlIGV4cG9ydGluZyBHRU0gb2JqZWN0IGluCi0gKiB0aGUgZG1hX2J1ZiBwcml2 LiBUaGlzIHJlZmVyZW5jZSBuZWVkcyB0byBiZSByZWxlYXNlZCB3aGVuIHRoZQotICogZmluYWwg cmVmZXJlbmNlIHRvIHRoZSAmZG1hX2J1ZiBpdHNlbGYgaXMgZHJvcHBlZCBhbmQgaXRzCi0gKiAm ZG1hX2J1Zl9vcHMucmVsZWFzZSBmdW5jdGlvbiBpcyBjYWxsZWQuIEZvciBHRU0tYmFzZWQgZHJp dmVycywKLSAqIHRoZSBkbWFfYnVmIHNob3VsZCBiZSBleHBvcnRlZCB1c2luZyBkcm1fZ2VtX2Rt YWJ1Zl9leHBvcnQoKSBhbmQKLSAqIHRoZW4gcmVsZWFzZWQgYnkgZHJtX2dlbV9kbWFidWZfcmVs ZWFzZSgpLgotICoKLSAqIE9uIHRoZSBpbXBvcnQgdGhlIGltcG9ydGluZyBHRU0gb2JqZWN0IGhv bGRzIGEgcmVmZXJlbmNlIHRvIHRoZQotICogZG1hX2J1ZiAod2hpY2ggaW4gdHVybiBob2xkcyBh IHJlZiB0byB0aGUgZXhwb3J0aW5nIEdFTSBvYmplY3QpLgotICogSXQgdGFrZXMgdGhhdCByZWZl cmVuY2UgaW4gdGhlIGZkX3RvX2hhbmRsZSBpb2N0bC4KLSAqIEl0IGNhbGxzIGRtYV9idWZfZ2V0 LCBjcmVhdGVzIGFuIGF0dGFjaG1lbnQgdG8gaXQgYW5kIHN0b3JlcyB0aGUKLSAqIGF0dGFjaG1l bnQgaW4gdGhlIEdFTSBvYmplY3QuIFdoZW4gdGhpcyBhdHRhY2htZW50IGlzIGRlc3Ryb3llZAot ICogd2hlbiB0aGUgaW1wb3J0ZWQgb2JqZWN0IGlzIGRlc3Ryb3llZCwgd2UgcmVtb3ZlIHRoZSBh dHRhY2htZW50Ci0gKiBhbmQgZHJvcCB0aGUgcmVmZXJlbmNlIHRvIHRoZSBkbWFfYnVmLgotICoK LSAqIFdoZW4gYWxsIHRoZSByZWZlcmVuY2VzIHRvIHRoZSAmZG1hX2J1ZiBhcmUgZHJvcHBlZCwg aS5lLiB3aGVuCi0gKiB1c2Vyc3BhY2UgaGFzIGNsb3NlZCBib3RoIGhhbmRsZXMgdG8gdGhlIGlt cG9ydGVkIEdFTSBvYmplY3QgKHRocm91Z2ggdGhlCi0gKiBGRF9UT19IQU5ETEUgSU9DVEwpIGFu ZCBjbG9zZWQgdGhlIGZpbGUgZGVzY3JpcHRvciBvZiB0aGUgZXhwb3J0ZWQKLSAqICh0aHJvdWdo IHRoZSBIQU5ETEVfVE9fRkQgSU9DVEwpIGRtYV9idWYsIGFuZCBhbGwga2VybmVsLWludGVybmFs IHJlZmVyZW5jZXMKLSAqIGFyZSBhbHNvIGdvbmUsIHRoZW4gdGhlIGRtYV9idWYgZ2V0cyBkZXN0 cm95ZWQuICBUaGlzIGNhbiBhbHNvIGhhcHBlbiBhcyBhCi0gKiBwYXJ0IG9mIHRoZSBjbGVhbiB1 cCBwcm9jZWR1cmUgaW4gdGhlIGRybV9yZWxlYXNlKCkgZnVuY3Rpb24gaWYgdXNlcnNwYWNlCi0g KiBmYWlscyB0byBwcm9wZXJseSBjbGVhbiB1cC4gIE5vdGUgdGhhdCBib3RoIHRoZSBrZXJuZWwg YW5kIHVzZXJzcGFjZSAoYnkKLSAqIGtlZWVwaW5nIHRoZSBQUklNRSBmaWxlIGRlc2NyaXB0b3Jz IG9wZW4pIGNhbiBob2xkIHJlZmVyZW5jZXMgb250byBhCi0gKiAmZG1hX2J1Zi4KLSAqCi0gKiBU aHVzIHRoZSBjaGFpbiBvZiByZWZlcmVuY2VzIGFsd2F5cyBmbG93cyBpbiBvbmUgZGlyZWN0aW9u Ci0gKiAoYXZvaWRpbmcgbG9vcHMpOiBpbXBvcnRpbmdfZ2VtIC0+IGRtYWJ1ZiAtPiBleHBvcnRp bmdfZ2VtCi0gKgotICogU2VsZi1pbXBvcnRpbmc6IGlmIHVzZXJzcGFjZSBpcyB1c2luZyBQUklN RSBhcyBhIHJlcGxhY2VtZW50IGZvciBmbGluawotICogdGhlbiBpdCB3aWxsIGdldCBhIGZkLT5o YW5kbGUgcmVxdWVzdCBmb3IgYSBHRU0gb2JqZWN0IHRoYXQgaXQgY3JlYXRlZC4KLSAqIERyaXZl cnMgc2hvdWxkIGRldGVjdCB0aGlzIHNpdHVhdGlvbiBhbmQgcmV0dXJuIGJhY2sgdGhlIGdlbSBv YmplY3QKLSAqIGZyb20gdGhlIGRtYS1idWYgcHJpdmF0ZS4gIFByaW1lIHdpbGwgZG8gdGhpcyBh dXRvbWF0aWNhbGx5IGZvciBkcml2ZXJzIHRoYXQKLSAqIHVzZSB0aGUgZHJtX2dlbV9wcmltZV97 aW1wb3J0LGV4cG9ydH0gaGVscGVycy4KLSAqCi0gKiBHRU0gc3RydWN0ICZkbWFfYnVmX29wcyBz eW1ib2xzIGFyZSBub3cgZXhwb3J0ZWQuIFRoZXkgY2FuIGJlIHJlc3VlZCBieQotICogZHJpdmVy cyB3aGljaCBpbXBsZW1lbnQgR0VNIGludGVyZmFjZS4KKy8qKgorICogRE9DOiBvdmVydmlldyBh bmQgbGlmZXRpbWUgcnVsZXMKKyAqCisgKiBTaW1pbGFyIHRvIEdFTSBnbG9iYWwgbmFtZXMsIFBS SU1FIGZpbGUgZGVzY3JpcHRvcnMgYXJlIGFsc28gdXNlZCB0byBzaGFyZQorICogYnVmZmVyIG9i amVjdHMgYWNyb3NzIHByb2Nlc3Nlcy4gVGhleSBvZmZlciBhZGRpdGlvbmFsIHNlY3VyaXR5OiBh cyBmaWxlCisgKiBkZXNjcmlwdG9ycyBtdXN0IGJlIGV4cGxpY2l0bHkgc2VudCBvdmVyIFVOSVgg ZG9tYWluIHNvY2tldHMgdG8gYmUgc2hhcmVkCisgKiBiZXR3ZWVuIGFwcGxpY2F0aW9ucywgdGhl eSBjYW4ndCBiZSBndWVzc2VkIGxpa2UgdGhlIGdsb2JhbGx5IHVuaXF1ZSBHRU0KKyAqIG5hbWVz LgorICoKKyAqIERyaXZlcnMgdGhhdCBzdXBwb3J0IHRoZSBQUklNRSBBUEkgbXVzdCBzZXQgdGhl IERSSVZFUl9QUklNRSBiaXQgaW4gdGhlCisgKiAmZHJtX2RyaXZlci5kcml2ZXJfZmVhdHVyZXMg ZmllbGQsIGFuZCBpbXBsZW1lbnQgdGhlCisgKiAmZHJtX2RyaXZlci5wcmltZV9oYW5kbGVfdG9f ZmQgYW5kICZkcm1fZHJpdmVyLnByaW1lX2ZkX3RvX2hhbmRsZSBvcGVyYXRpb25zLgorICogR0VN IGJhc2VkIGRyaXZlcnMgbXVzdCB1c2UgZHJtX2dlbV9wcmltZV9oYW5kbGVfdG9fZmQoKSBhbmQK KyAqIGRybV9nZW1fcHJpbWVfZmRfdG9faGFuZGxlKCkgdG8gaW1wbGVtZW50IHRoZXNlLiBGb3Ig R0VNIGJhc2VkIGRyaXZlcnMgdGhlCisgKiBhY3R1YWwgZHJpdmVyIGludGVyZmFjZXMgaXMgcHJv dmlkZWQgdGhyb3VnaCB0aGUgJmRybV9nZW1fb2JqZWN0X2Z1bmNzLmV4cG9ydAorICogYW5kICZk cm1fZHJpdmVyLmdlbV9wcmltZV9pbXBvcnQgaG9va3MuCisgKgorICogJmRtYV9idWZfb3BzIGlt cGxlbWVudGF0aW9ucyBmb3IgR0VNIGRyaXZlcnMgYXJlIGFsbCBpbmRpdmlkdWFsbHkgZXhwb3J0 ZWQKKyAqIGZvciBkcml2ZXJzIHdoaWNoIG5lZWQgdG8gb3ZlcndyaXRlIG9yIHJlaW1wbGVtZW50 IHNvbWUgb2YgdGhlbS4KKyAqCisgKiBSZWZlcmVuY2UgQ291bnRpbmcgZm9yIEdFTSBEcml2ZXJz CisgKiB+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CisgKgorICogT24gdGhlIGV4 cG9ydCB0aGUgJmRtYV9idWYgaG9sZHMgYSByZWZlcmVuY2UgdG8gdGhlIGV4cG9ydGVkIGJ1ZmZl ciBvYmplY3QsCisgKiB1c3VhbGx5IGEgJmRybV9nZW1fb2JqZWN0LiBJdCB0YWtlcyB0aGlzIHJl ZmVyZW5jZSBpbiB0aGUgUFJJTUVfSEFORExFX1RPX0ZECisgKiBJT0NUTCwgd2hlbiBpdCBmaXJz dCBjYWxscyAmZHJtX2dlbV9vYmplY3RfZnVuY3MuZXhwb3J0CisgKiBhbmQgc3RvcmVzIHRoZSBl eHBvcnRpbmcgR0VNIG9iamVjdCBpbiB0aGUgJmRtYV9idWYucHJpdiBmaWVsZC4gVGhpcworICog cmVmZXJlbmNlIG5lZWRzIHRvIGJlIHJlbGVhc2VkIHdoZW4gdGhlIGZpbmFsIHJlZmVyZW5jZSB0 byB0aGUgJmRtYV9idWYKKyAqIGl0c2VsZiBpcyBkcm9wcGVkIGFuZCBpdHMgJmRtYV9idWZfb3Bz LnJlbGVhc2UgZnVuY3Rpb24gaXMgY2FsbGVkLiAgRm9yCisgKiBHRU0tYmFzZWQgZHJpdmVycywg dGhlICZkbWFfYnVmIHNob3VsZCBiZSBleHBvcnRlZCB1c2luZworICogZHJtX2dlbV9kbWFidWZf ZXhwb3J0KCkgYW5kIHRoZW4gcmVsZWFzZWQgYnkgZHJtX2dlbV9kbWFidWZfcmVsZWFzZSgpLgor ICoKKyAqIFRodXMgdGhlIGNoYWluIG9mIHJlZmVyZW5jZXMgYWx3YXlzIGZsb3dzIGluIG9uZSBk aXJlY3Rpb24sIGF2b2lkaW5nIGxvb3BzOgorICogaW1wb3J0aW5nIEdFTSBvYmplY3QgLT4gZG1h LWJ1ZiAtPiBleHBvcnRlZCBHRU0gYm8uIEEgZnVydGhlciBjb21wbGljYXRpb24KKyAqIGFyZSB0 aGUgbG9va3VwIGNhY2hlcyBmb3IgaW1wb3J0IGFuZCBleHBvcnQuIFRoZXNlIGFyZSByZXF1aXJl ZCB0byBndWFyYW50ZWUKKyAqIHRoYXQgYW55IGdpdmVuIG9iamVjdCB3aWxsIGFsd2F5cyBoYXZl IG9ubHkgb25lIHVuaXFlIHVzZXJzcGFjZSBoYW5kbGUuIFRoaXMKKyAqIGlzIHJlcXVpcmVkIHRv IGFsbG93IHVzZXJzcGFjZSB0byBkZXRlY3QgZHVwbGljYXRlZCBpbXBvcnRzLCBzaW5jZSBzb21l IEdFTQorICogZHJpdmVycyBkbyBmYWlsIGNvbW1hbmQgc3VibWlzc2lvbnMgaWYgYSBnaXZlbiBi dWZmZXIgb2JqZWN0IGlzIGxpc3RlZCBtb3JlCisgKiB0aGFuIG9uY2UuIFRoZXNlIGltcG9ydCBh bmQgZXhwb3J0IGNhY2hlcyBpbiAmZHJtX3ByaW1lX2ZpbGVfcHJpdmF0ZSBvbmx5CisgKiByZXRh aW4gYSB3ZWFrIHJlZmVyZW5jZSwgd2hpY2ggaXMgY2xlYW5lZCB1cCB3aGVuIHRoZSBjb3JyZXNw b25kaW5nIG9iamVjdCBpcworICogcmVsZWFzZWQuCisgKgorICogU2VsZi1pbXBvcnRpbmc6IElm IHVzZXJzcGFjZSBpcyB1c2luZyBQUklNRSBhcyBhIHJlcGxhY2VtZW50IGZvciBmbGluayB0aGVu CisgKiBpdCB3aWxsIGdldCBhIGZkLT5oYW5kbGUgcmVxdWVzdCBmb3IgYSBHRU0gb2JqZWN0IHRo YXQgaXQgY3JlYXRlZC4gIERyaXZlcnMKKyAqIHNob3VsZCBkZXRlY3QgdGhpcyBzaXR1YXRpb24g YW5kIHJldHVybiBiYWNrIHRoZSB1bmRlcmx5aW5nIG9iamVjdCBmcm9tIHRoZQorICogZG1hLWJ1 ZiBwcml2YXRlLiBGb3IgR0VNIGJhc2VkIGRyaXZlcnMgdGhpcyBpcyBoYW5kbGVkIGluCisgKiBk cm1fZ2VtX3ByaW1lX2ltcG9ydCgpIGFscmVhZHkuCiAgKi8KIAogc3RydWN0IGRybV9wcmltZV9t ZW1iZXIgewpAQCAtMjIwLDcgKzIyNiw3IEBAIHZvaWQgZHJtX3ByaW1lX2Rlc3Ryb3lfZmlsZV9w cml2YXRlKHN0cnVjdCBkcm1fcHJpbWVfZmlsZV9wcml2YXRlICpwcmltZV9mcHJpdikKIH0KIAog LyoqCi0gKiBkcm1fZ2VtX2RtYWJ1Zl9leHBvcnQgLSBkbWFfYnVmIGV4cG9ydCBpbXBsZW1lbnRh dGlvbiBmb3IgR0VNCisgKiBkcm1fZ2VtX2RtYWJ1Zl9leHBvcnQgLSAmZG1hX2J1ZiBleHBvcnQg aW1wbGVtZW50YXRpb24gZm9yIEdFTQogICogQGRldjogcGFyZW50IGRldmljZSBmb3IgdGhlIGV4 cG9ydGVkIGRtYWJ1ZgogICogQGV4cF9pbmZvOiB0aGUgZXhwb3J0IGluZm9ybWF0aW9uIHVzZWQg YnkgZG1hX2J1Zl9leHBvcnQoKQogICoKQEAgLTI0OCwxMSArMjU0LDExIEBAIHN0cnVjdCBkbWFf YnVmICpkcm1fZ2VtX2RtYWJ1Zl9leHBvcnQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIEVYUE9S VF9TWU1CT0woZHJtX2dlbV9kbWFidWZfZXhwb3J0KTsKIAogLyoqCi0gKiBkcm1fZ2VtX2RtYWJ1 Zl9yZWxlYXNlIC0gZG1hX2J1ZiByZWxlYXNlIGltcGxlbWVudGF0aW9uIGZvciBHRU0KKyAqIGRy bV9nZW1fZG1hYnVmX3JlbGVhc2UgLSAmZG1hX2J1ZiByZWxlYXNlIGltcGxlbWVudGF0aW9uIGZv ciBHRU0KICAqIEBkbWFfYnVmOiBidWZmZXIgdG8gYmUgcmVsZWFzZWQKICAqCiAgKiBHZW5lcmlj IHJlbGVhc2UgZnVuY3Rpb24gZm9yIGRtYV9idWZzIGV4cG9ydGVkIGFzIFBSSU1FIGJ1ZmZlcnMu IEdFTSBkcml2ZXJzCi0gKiBtdXN0IHVzZSB0aGlzIGluIHRoZWlyIGRtYV9idWYgb3BzIHN0cnVj dHVyZSBhcyB0aGUgcmVsZWFzZSBjYWxsYmFjay4KKyAqIG11c3QgdXNlIHRoaXMgaW4gdGhlaXIg JmRtYV9idWZfb3BzIHN0cnVjdHVyZSBhcyB0aGUgcmVsZWFzZSBjYWxsYmFjay4KICAqIGRybV9n ZW1fZG1hYnVmX3JlbGVhc2UoKSBzaG91bGQgYmUgdXNlZCBpbiBjb25qdW5jdGlvbiB3aXRoCiAg KiBkcm1fZ2VtX2RtYWJ1Zl9leHBvcnQoKS4KICAqLwpAQCAtMjc4LDcgKzI4NCw5IEBAIEVYUE9S VF9TWU1CT0woZHJtX2dlbV9kbWFidWZfcmVsZWFzZSk7CiAgKiBUaGlzIGlzIHRoZSBQUklNRSBp bXBvcnQgZnVuY3Rpb24gd2hpY2ggbXVzdCBiZSB1c2VkIG1hbmRhdG9yaWx5IGJ5IEdFTQogICog ZHJpdmVycyB0byBlbnN1cmUgY29ycmVjdCBsaWZldGltZSBtYW5hZ2VtZW50IG9mIHRoZSB1bmRl cmx5aW5nIEdFTSBvYmplY3QuCiAgKiBUaGUgYWN0dWFsIGltcG9ydGluZyBvZiBHRU0gb2JqZWN0 IGZyb20gdGhlIGRtYS1idWYgaXMgZG9uZSB0aHJvdWdoIHRoZQotICogZ2VtX2ltcG9ydF9leHBv cnQgZHJpdmVyIGNhbGxiYWNrLgorICogJmRybV9kcml2ZXIuZ2VtX3ByaW1lX2ltcG9ydCBkcml2 ZXIgY2FsbGJhY2suCisgKgorICogUmV0dXJucyAwIG9uIHN1Y2Nlc3Mgb3IgYSBuZWdhdGl2ZSBl cnJvciBjb2RlIG9uIGZhaWx1cmUuCiAgKi8KIGludCBkcm1fZ2VtX3ByaW1lX2ZkX3RvX2hhbmRs ZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCQkJICAgICAgIHN0cnVjdCBkcm1fZmlsZSAqZmls ZV9wcml2LCBpbnQgcHJpbWVfZmQsCkBAIC00MTIsNyArNDIwLDcgQEAgc3RhdGljIHN0cnVjdCBk bWFfYnVmICpleHBvcnRfYW5kX3JlZ2lzdGVyX29iamVjdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 LAogICogVGhpcyBpcyB0aGUgUFJJTUUgZXhwb3J0IGZ1bmN0aW9uIHdoaWNoIG11c3QgYmUgdXNl ZCBtYW5kYXRvcmlseSBieSBHRU0KICAqIGRyaXZlcnMgdG8gZW5zdXJlIGNvcnJlY3QgbGlmZXRp bWUgbWFuYWdlbWVudCBvZiB0aGUgdW5kZXJseWluZyBHRU0gb2JqZWN0LgogICogVGhlIGFjdHVh bCBleHBvcnRpbmcgZnJvbSBHRU0gb2JqZWN0IHRvIGEgZG1hLWJ1ZiBpcyBkb25lIHRocm91Z2gg dGhlCi0gKiBnZW1fcHJpbWVfZXhwb3J0IGRyaXZlciBjYWxsYmFjay4KKyAqICZkcm1fZHJpdmVy LmdlbV9wcmltZV9leHBvcnQgZHJpdmVyIGNhbGxiYWNrLgogICovCiBpbnQgZHJtX2dlbV9wcmlt ZV9oYW5kbGVfdG9fZmQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAkJCSAgICAgICBzdHJ1Y3Qg ZHJtX2ZpbGUgKmZpbGVfcHJpdiwgdWludDMyX3QgaGFuZGxlLApAQCAtNTIzLDIzICs1MzEsMzkg QEAgaW50IGRybV9wcmltZV9oYW5kbGVfdG9fZmRfaW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRl diwgdm9pZCAqZGF0YSwKIC8qKgogICogRE9DOiBQUklNRSBIZWxwZXJzCiAgKgotICogRHJpdmVy cyBjYW4gaW1wbGVtZW50IEBnZW1fcHJpbWVfZXhwb3J0IGFuZCBAZ2VtX3ByaW1lX2ltcG9ydCBp biB0ZXJtcyBvZgotICogc2ltcGxlciBBUElzIGJ5IHVzaW5nIHRoZSBoZWxwZXIgZnVuY3Rpb25z IEBkcm1fZ2VtX3ByaW1lX2V4cG9ydCBhbmQKLSAqIEBkcm1fZ2VtX3ByaW1lX2ltcG9ydC4gIFRo ZXNlIGZ1bmN0aW9ucyBpbXBsZW1lbnQgZG1hLWJ1ZiBzdXBwb3J0IGluIHRlcm1zIG9mCi0gKiBz aXggbG93ZXItbGV2ZWwgZHJpdmVyIGNhbGxiYWNrczoKKyAqIERyaXZlcnMgY2FuIGltcGxlbWVu dCAmZHJtX2dlbV9vYmplY3RfZnVuY3MuZXhwb3J0IGFuZAorICogJmRybV9kcml2ZXIuZ2VtX3By aW1lX2ltcG9ydCBpbiB0ZXJtcyBvZiBzaW1wbGVyIEFQSXMgYnkgdXNpbmcgdGhlIGhlbHBlcgor ICogZnVuY3Rpb25zIGRybV9nZW1fcHJpbWVfZXhwb3J0KCkgYW5kIGRybV9nZW1fcHJpbWVfaW1w b3J0KCkuIFRoZXNlIGZ1bmN0aW9ucworICogaW1wbGVtZW50IGRtYS1idWYgc3VwcG9ydCBpbiB0 ZXJtcyBvZiBzb21lIGxvd2VyLWxldmVsIGhlbHBlcnMsIHdoaWNoIGFyZQorICogYWdhaW4gZXhw b3J0ZWQgZm9yIGRyaXZlcnMgdG8gdXNlIGluZGl2aWR1YWxseToKKyAqCisgKiBFeHBvcnRpbmcg YnVmZmVycworICogfn5+fn5+fn5+fn5+fn5+fn4KKyAqCisgKiBPcHRpb25hbCBwaW5uaW5nIG9m IGJ1ZmZlcnMgaXMgaGFuZGxlZCBhdCBkbWEtYnVmIGF0dGFjaCBhbmQgZGV0YWNoIHRpbWUgaW4K KyAqIGRybV9nZW1fbWFwX2F0dGFjaCgpIGFuZCBkcm1fZ2VtX21hcF9kZXRhY2goKS4gQmFja2lu ZyBzdG9yYWdlIGl0c2VsZiBpcworICogaGFuZGxlZCBieSBkcm1fZ2VtX21hcF9kbWFfYnVmKCkg YW5kIGRybV9nZW1fdW5tYXBfZG1hX2J1ZigpLCB3aGljaCByZWxpZXMgb24KKyAqICZkcm1fZ2Vt X29iamVjdF9mdW5jcy5nZXRfc2dfdGFibGUuCisgKgorICogRm9yIGtlcm5lbC1pbnRlcm5hbCBh Y2Nlc3MgdGhlcmUncyBkcm1fZ2VtX2RtYWJ1Zl92bWFwKCkgYW5kCisgKiBkcm1fZ2VtX2RtYWJ1 Zl92dW5tYXAoKS4gVXNlcnNwYWNlIG1tYXAgc3VwcG9ydCBpcyBwcm92aWRlZCBieQorICogZHJt X2dlbV9kbWFidWZfbW1hcCgpLgogICoKLSAqIEV4cG9ydCBjYWxsYmFja3M6CisgKiBOb3RlIHRo YXQgdGhlc2UgZXhwb3J0IGhlbHBlcnMgY2FuIG9ubHkgYmUgdXNlZCBpZiB0aGUgdW5kZXJseWlu ZyBiYWNraW5nCisgKiBzdG9yYWdlIGlzIGZ1bGx5IGNvaGVyZW50IGFuZCBlaXRoZXIgcGVybWFu ZW50bHkgcGlubmVkLCBvciBpdCBpcyBzYWZlIHRvIHBpbgorICogaXQgaW5kZWZpbml0ZWx5Lgog ICoKLSAqICAqIEBnZW1fcHJpbWVfcGluIChvcHRpb25hbCk6IHByZXBhcmUgYSBHRU0gb2JqZWN0 IGZvciBleHBvcnRpbmcKLSAqICAqIEBnZW1fcHJpbWVfZ2V0X3NnX3RhYmxlOiBwcm92aWRlIGEg c2NhdHRlci9nYXRoZXIgdGFibGUgb2YgcGlubmVkIHBhZ2VzCi0gKiAgKiBAZ2VtX3ByaW1lX3Zt YXA6IHZtYXAgYSBidWZmZXIgZXhwb3J0ZWQgYnkgeW91ciBkcml2ZXIKLSAqICAqIEBnZW1fcHJp bWVfdnVubWFwOiB2dW5tYXAgYSBidWZmZXIgZXhwb3J0ZWQgYnkgeW91ciBkcml2ZXIKLSAqICAq IEBnZW1fcHJpbWVfbW1hcCAob3B0aW9uYWwpOiBtbWFwIGEgYnVmZmVyIGV4cG9ydGVkIGJ5IHlv dXIgZHJpdmVyCisgKiBGSVhNRTogVGhlIHVuZGVybHlpbmcgaGVscGVyIGZ1bmN0aW9ucyBhcmUg bmFtZWQgcmF0aGVyIGluY29uc2lzdGVudGx5LgogICoKLSAqIEltcG9ydCBjYWxsYmFjazoKKyAq IEV4cG9ydGluZyBidWZmZXJzCisgKiB+fn5+fn5+fn5+fn5+fn5+fgogICoKLSAqICAqIEBnZW1f cHJpbWVfaW1wb3J0X3NnX3RhYmxlIChpbXBvcnQpOiBwcm9kdWNlIGEgR0VNIG9iamVjdCBmcm9t IGFub3RoZXIKLSAqICAgIGRyaXZlcidzIHNjYXR0ZXIvZ2F0aGVyIHRhYmxlCisgKiBJbXBvcnRp bmcgZG1hLWJ1ZnMgdXNpbmcgZHJtX2dlbV9wcmltZV9pbXBvcnQoKSByZWxpZXMgb24KKyAqICZk cm1fZHJpdmVyLmdlbV9wcmltZV9pbXBvcnRfc2dfdGFibGUuCisgKgorICogTm90ZSB0aGF0IHNp bWlsYXJseSB0byB0aGUgZXhwb3J0IGhlbHBlcnMgdGhpcyBwZXJtYW5lbnRseSBwaW5zIHRoZQor ICogdW5kZXJseWluZyBiYWNraW5nIHN0b3JhZ2UuIFdoaWNoIGlzIG9rIGZvciBzY2Fub3V0LCBi dXQgaXMgbm90IHRoZSBiZXN0CisgKiBvcHRpb24gZm9yIHNoYXJpbmcgbG90cyBvZiBidWZmZXJz IGZvciByZW5kZXJpbmcuCiAgKi8KIAogLyoqCkBAIC01NDcsOCArNTcxLDkgQEAgaW50IGRybV9w cmltZV9oYW5kbGVfdG9fZmRfaW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0 YSwKICAqIEBkbWFfYnVmOiBidWZmZXIgdG8gYXR0YWNoIGRldmljZSB0bwogICogQGF0dGFjaDog YnVmZmVyIGF0dGFjaG1lbnQgZGF0YQogICoKLSAqIENhbGxzICZkcm1fZHJpdmVyLmdlbV9wcmlt ZV9waW4gZm9yIGRldmljZSBzcGVjaWZpYyBoYW5kbGluZy4gVGhpcyBjYW4gYmUKLSAqIHVzZWQg YXMgdGhlICZkbWFfYnVmX29wcy5hdHRhY2ggY2FsbGJhY2suCisgKiBDYWxscyAmZHJtX2dlbV9v YmplY3RfZnVuY3MucGluIGZvciBkZXZpY2Ugc3BlY2lmaWMgaGFuZGxpbmcuIFRoaXMgY2FuIGJl CisgKiB1c2VkIGFzIHRoZSAmZG1hX2J1Zl9vcHMuYXR0YWNoIGNhbGxiYWNrLiBNdXN0IGJlIHVz ZWQgdG9nZXRoZXIgd2l0aAorICogZHJtX2dlbV9tYXBfZGV0YWNoKCkuCiAgKgogICogUmV0dXJu cyAwIG9uIHN1Y2Nlc3MsIG5lZ2F0aXZlIGVycm9yIGNvZGUgb24gZmFpbHVyZS4KICAqLwpAQCAt NTY2LDggKzU5MSw5IEBAIEVYUE9SVF9TWU1CT0woZHJtX2dlbV9tYXBfYXR0YWNoKTsKICAqIEBk bWFfYnVmOiBidWZmZXIgdG8gZGV0YWNoIGZyb20KICAqIEBhdHRhY2g6IGF0dGFjaG1lbnQgdG8g YmUgZGV0YWNoZWQKICAqCi0gKiBDbGVhbnMgdXAgJmRtYV9idWZfYXR0YWNobWVudC4gVGhpcyBj YW4gYmUgdXNlZCBhcyB0aGUgJmRtYV9idWZfb3BzLmRldGFjaAotICogY2FsbGJhY2suCisgKiBD YWxscyAmZHJtX2dlbV9vYmplY3RfZnVuY3MucGluIGZvciBkZXZpY2Ugc3BlY2lmaWMgaGFuZGxp bmcuICBDbGVhbnMgdXAKKyAqICZkbWFfYnVmX2F0dGFjaG1lbnQgZnJvbSBkcm1fZ2VtX21hcF9h dHRhY2goKS4gVGhpcyBjYW4gYmUgdXNlZCBhcyB0aGUKKyAqICZkbWFfYnVmX29wcy5kZXRhY2gg Y2FsbGJhY2suCiAgKi8KIHZvaWQgZHJtX2dlbV9tYXBfZGV0YWNoKHN0cnVjdCBkbWFfYnVmICpk bWFfYnVmLAogCQkJc3RydWN0IGRtYV9idWZfYXR0YWNobWVudCAqYXR0YWNoKQpAQCAtNTgzLDEz ICs2MDksMTMgQEAgRVhQT1JUX1NZTUJPTChkcm1fZ2VtX21hcF9kZXRhY2gpOwogICogQGF0dGFj aDogYXR0YWNobWVudCB3aG9zZSBzY2F0dGVybGlzdCBpcyB0byBiZSByZXR1cm5lZAogICogQGRp cjogZGlyZWN0aW9uIG9mIERNQSB0cmFuc2ZlcgogICoKLSAqIENhbGxzICZkcm1fZHJpdmVyLmdl bV9wcmltZV9nZXRfc2dfdGFibGUgYW5kIHRoZW4gbWFwcyB0aGUgc2NhdHRlcmxpc3QuIFRoaXMK LSAqIGNhbiBiZSB1c2VkIGFzIHRoZSAmZG1hX2J1Zl9vcHMubWFwX2RtYV9idWYgY2FsbGJhY2su CisgKiBDYWxscyAmZHJtX2dlbV9vYmplY3RfZnVuY3MuZ2V0X3NnX3RhYmxlIGFuZCB0aGVuIG1h cHMgdGhlIHNjYXR0ZXJsaXN0LiBUaGlzCisgKiBjYW4gYmUgdXNlZCBhcyB0aGUgJmRtYV9idWZf b3BzLm1hcF9kbWFfYnVmIGNhbGxiYWNrLiBTaG91bGQgYmUgdXNlZCB0b2dldGhlcgorICogd2l0 aCBkcm1fZ2VtX3VubWFwX2RtYV9idWYoKS4KICAqCi0gKiBSZXR1cm5zIHNnX3RhYmxlIGNvbnRh aW5pbmcgdGhlIHNjYXR0ZXJsaXN0IHRvIGJlIHJldHVybmVkOyByZXR1cm5zIEVSUl9QVFIKKyAq IFJldHVybnM6c2dfdGFibGUgY29udGFpbmluZyB0aGUgc2NhdHRlcmxpc3QgdG8gYmUgcmV0dXJu ZWQ7IHJldHVybnMgRVJSX1BUUgogICogb24gZXJyb3IuIE1heSByZXR1cm4gLUVJTlRSIGlmIGl0 IGlzIGludGVycnVwdGVkIGJ5IGEgc2lnbmFsLgogICovCi0KIHN0cnVjdCBzZ190YWJsZSAqZHJt X2dlbV9tYXBfZG1hX2J1ZihzdHJ1Y3QgZG1hX2J1Zl9hdHRhY2htZW50ICphdHRhY2gsCiAJCQkJ ICAgICBlbnVtIGRtYV9kYXRhX2RpcmVjdGlvbiBkaXIpCiB7CkBAIC02NDIsOSArNjY4LDkgQEAg RVhQT1JUX1NZTUJPTChkcm1fZ2VtX3VubWFwX2RtYV9idWYpOwogICogQGRtYV9idWY6IGJ1ZmZl ciB0byBiZSBtYXBwZWQKICAqCiAgKiBTZXRzIHVwIGEga2VybmVsIHZpcnR1YWwgbWFwcGluZy4g VGhpcyBjYW4gYmUgdXNlZCBhcyB0aGUgJmRtYV9idWZfb3BzLnZtYXAKLSAqIGNhbGxiYWNrLgor ICogY2FsbGJhY2suIENhbGxzIGludG8gJmRybV9nZW1fb2JqZWN0X2Z1bmNzLnZtYXAgZm9yIGRl dmljZSBzcGVjaWZpYyBoYW5kbGluZy4KICAqCi0gKiBSZXR1cm5zIHRoZSBrZXJuZWwgdmlydHVh bCBhZGRyZXNzLgorICogUmV0dXJucyB0aGUga2VybmVsIHZpcnR1YWwgYWRkcmVzcyBvciBOVUxM IG9uIGZhaWx1cmUuCiAgKi8KIHZvaWQgKmRybV9nZW1fZG1hYnVmX3ZtYXAoc3RydWN0IGRtYV9i dWYgKmRtYV9idWYpCiB7CkBAIC02NjUsNyArNjkxLDcgQEAgRVhQT1JUX1NZTUJPTChkcm1fZ2Vt X2RtYWJ1Zl92bWFwKTsKICAqIEB2YWRkcjogdGhlIHZpcnR1YWwgYWRkcmVzcyBvZiB0aGUgYnVm ZmVyCiAgKgogICogUmVsZWFzZXMgYSBrZXJuZWwgdmlydHVhbCBtYXBwaW5nLiBUaGlzIGNhbiBi ZSB1c2VkIGFzIHRoZQotICogJmRtYV9idWZfb3BzLnZ1bm1hcCBjYWxsYmFjay4KKyAqICZkbWFf YnVmX29wcy52dW5tYXAgY2FsbGJhY2suIENhbGxzIGludG8gJmRybV9nZW1fb2JqZWN0X2Z1bmNz LnZ1bm1hcCBmb3IgZGV2aWNlIHNwZWNpZmljIGhhbmRsaW5nLgogICovCiB2b2lkIGRybV9nZW1f ZG1hYnVmX3Z1bm1hcChzdHJ1Y3QgZG1hX2J1ZiAqZG1hX2J1Ziwgdm9pZCAqdmFkZHIpCiB7CkBA IC03MjcsNyArNzUzLDExIEBAIEVYUE9SVF9TWU1CT0woZHJtX2dlbV9wcmltZV9tbWFwKTsKICAq IEB2bWE6IHZpcnR1YWwgYWRkcmVzcyByYW5nZQogICoKICAqIFByb3ZpZGVzIG1lbW9yeSBtYXBw aW5nIGZvciB0aGUgYnVmZmVyLiBUaGlzIGNhbiBiZSB1c2VkIGFzIHRoZQotICogJmRtYV9idWZf b3BzLm1tYXAgY2FsbGJhY2suCisgKiAmZG1hX2J1Zl9vcHMubW1hcCBjYWxsYmFjay4gSXQganVz dCBmb3J3YXJkcyB0byAmZHJtX2RyaXZlci5nZW1fcHJpbWVfbW1hcCwKKyAqIHdoaWNoIHNob3Vs ZCBiZSBzZXQgdG8gZHJtX2dlbV9wcmltZV9tbWFwKCkuCisgKgorICogRklYTUU6IFRoZXJlJ3Mg cmVhbGx5IG5vIHBvaW50IHRvIHRoaXMgd3JhcHBlciwgZHJpdmVycyB3aGljaCBuZWVkIGFueXRo aW5nCisgKiBlbHNlIGJ1dCBkcm1fZ2VtX3ByaW1lX21tYXAgY2FuIHJvbGwgdGhlaXIgb3duICZk bWFfYnVmX29wcy5tbWFwIGNhbGxiYWNrLgogICoKICAqIFJldHVybnMgMCBvbiBzdWNjZXNzIG9y IGEgbmVnYXRpdmUgZXJyb3IgY29kZSBvbiBmYWlsdXJlLgogICovCkBAIC03NjMsNiArNzkzLDgg QEAgc3RhdGljIGNvbnN0IHN0cnVjdCBkbWFfYnVmX29wcyBkcm1fZ2VtX3ByaW1lX2RtYWJ1Zl9v cHMgPSAgewogICogVGhpcyBoZWxwZXIgY3JlYXRlcyBhbiBzZyB0YWJsZSBvYmplY3QgZnJvbSBh IHNldCBvZiBwYWdlcwogICogdGhlIGRyaXZlciBpcyByZXNwb25zaWJsZSBmb3IgbWFwcGluZyB0 aGUgcGFnZXMgaW50byB0aGUKICAqIGltcG9ydGVycyBhZGRyZXNzIHNwYWNlIGZvciB1c2Ugd2l0 aCBkbWFfYnVmIGl0c2VsZi4KKyAqCisgKiBUaGlzIGlzIHVzZWZ1bCBmb3IgaW1wbGVtZW50aW5n ICZkcm1fZ2VtX29iamVjdF9mdW5jcy5nZXRfc2dfdGFibGUuCiAgKi8KIHN0cnVjdCBzZ190YWJs ZSAqZHJtX3ByaW1lX3BhZ2VzX3RvX3NnKHN0cnVjdCBwYWdlICoqcGFnZXMsIHVuc2lnbmVkIGlu dCBucl9wYWdlcykKIHsKQEAgLTc5Myw4ICs4MjUsOSBAQCBFWFBPUlRfU1lNQk9MKGRybV9wcmlt ZV9wYWdlc190b19zZyk7CiAgKiBAb2JqOiBHRU0gb2JqZWN0IHRvIGV4cG9ydAogICogQGZsYWdz OiBmbGFncyBsaWtlIERSTV9DTE9FWEVDIGFuZCBEUk1fUkRXUgogICoKLSAqIFRoaXMgaXMgdGhl IGltcGxlbWVudGF0aW9uIG9mIHRoZSBnZW1fcHJpbWVfZXhwb3J0IGZ1bmN0aW9ucyBmb3IgR0VN IGRyaXZlcnMKLSAqIHVzaW5nIHRoZSBQUklNRSBoZWxwZXJzLgorICogVGhpcyBpcyB0aGUgaW1w bGVtZW50YXRpb24gb2YgdGhlICZkcm1fZ2VtX29iamVjdF9mdW5jcy5leHBvcnQgZnVuY3Rpb25z IGZvciBHRU0gZHJpdmVycworICogdXNpbmcgdGhlIFBSSU1FIGhlbHBlcnMuIEl0IGlzIHVzZWQg YXMgdGhlIGRlZmF1bHQgaW4KKyAqIGRybV9nZW1fcHJpbWVfaGFuZGxlX3RvX2ZkKCkuCiAgKi8K IHN0cnVjdCBkbWFfYnVmICpkcm1fZ2VtX3ByaW1lX2V4cG9ydChzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2LAogCQkJCSAgICAgc3RydWN0IGRybV9nZW1fb2JqZWN0ICpvYmosCkBAIC04MjMsOSArODU2 LDEzIEBAIEVYUE9SVF9TWU1CT0woZHJtX2dlbV9wcmltZV9leHBvcnQpOwogICogQGRtYV9idWY6 IGRtYS1idWYgb2JqZWN0IHRvIGltcG9ydAogICogQGF0dGFjaF9kZXY6IHN0cnVjdCBkZXZpY2Ug dG8gZG1hX2J1ZiBhdHRhY2gKICAqCi0gKiBUaGlzIGlzIHRoZSBjb3JlIG9mIGRybV9nZW1fcHJp bWVfaW1wb3J0LiBJdCdzIGRlc2lnbmVkIHRvIGJlIGNhbGxlZCBieQotICogZHJpdmVycyB3aG8g d2FudCB0byB1c2UgYSBkaWZmZXJlbnQgZGV2aWNlIHN0cnVjdHVyZSB0aGFuIGRldi0+ZGV2IGZv cgotICogYXR0YWNoaW5nIHZpYSBkbWFfYnVmLgorICogVGhpcyBpcyB0aGUgY29yZSBvZiBkcm1f Z2VtX3ByaW1lX2ltcG9ydCgpLiBJdCdzIGRlc2lnbmVkIHRvIGJlIGNhbGxlZCBieQorICogZHJp dmVycyB3aG8gd2FudCB0byB1c2UgYSBkaWZmZXJlbnQgZGV2aWNlIHN0cnVjdHVyZSB0aGFuICZk cm1fZGV2aWNlLmRldiBmb3IKKyAqIGF0dGFjaGluZyB2aWEgZG1hX2J1Zi4gVGhpcyBmdW5jdGlv biBjYWxscworICogJmRybV9kcml2ZXIuZ2VtX3ByaW1lX2ltcG9ydF9zZ190YWJsZSBpbnRlcm5h bGx5LgorICoKKyAqIERyaXZlcnMgbXVzdCBhcnJhbmdlIHRvIGNhbGwgZHJtX3ByaW1lX2dlbV9k ZXN0cm95KCkgZnJvbSB0aGVpcgorICogJmRybV9nZW1fb2JqZWN0X2Z1bmNzLmZyZWUgaG9vayB3 aGVuIHVzaW5nIHRoaXMgZnVuY3Rpb24uCiAgKi8KIHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqZHJt X2dlbV9wcmltZV9pbXBvcnRfZGV2KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJCQkJCSAgICBz dHJ1Y3QgZG1hX2J1ZiAqZG1hX2J1ZiwKQEAgLTg4OSw3ICs5MjYsMTIgQEAgRVhQT1JUX1NZTUJP TChkcm1fZ2VtX3ByaW1lX2ltcG9ydF9kZXYpOwogICogQGRtYV9idWY6IGRtYS1idWYgb2JqZWN0 IHRvIGltcG9ydAogICoKICAqIFRoaXMgaXMgdGhlIGltcGxlbWVudGF0aW9uIG9mIHRoZSBnZW1f cHJpbWVfaW1wb3J0IGZ1bmN0aW9ucyBmb3IgR0VNIGRyaXZlcnMKLSAqIHVzaW5nIHRoZSBQUklN RSBoZWxwZXJzLgorICogdXNpbmcgdGhlIFBSSU1FIGhlbHBlcnMuIERyaXZlcnMgY2FuIHVzZSB0 aGlzIGFzIHRoZWlyCisgKiAmZHJtX2RyaXZlci5nZW1fcHJpbWVfaW1wb3J0IGltcGxlbWVudGF0 aW9uLiBJdCBpcyB1c2VkIGFzIHRoZSBkZWZhdWx0CisgKiBpbXBsZW1lbnRhdGlvbiBpbiBkcm1f Z2VtX3ByaW1lX2ZkX3RvX2hhbmRsZSgpLgorICoKKyAqIERyaXZlcnMgbXVzdCBhcnJhbmdlIHRv IGNhbGwgZHJtX3ByaW1lX2dlbV9kZXN0cm95KCkgZnJvbSB0aGVpcgorICogJmRybV9nZW1fb2Jq ZWN0X2Z1bmNzLmZyZWUgaG9vayB3aGVuIHVzaW5nIHRoaXMgZnVuY3Rpb24uCiAgKi8KIHN0cnVj dCBkcm1fZ2VtX29iamVjdCAqZHJtX2dlbV9wcmltZV9pbXBvcnQoc3RydWN0IGRybV9kZXZpY2Ug KmRldiwKIAkJCQkJICAgIHN0cnVjdCBkbWFfYnVmICpkbWFfYnVmKQpAQCAtOTA3LDYgKzk0OSw5 IEBAIEVYUE9SVF9TWU1CT0woZHJtX2dlbV9wcmltZV9pbXBvcnQpOwogICoKICAqIEV4cG9ydHMg YW4gc2cgdGFibGUgaW50byBhbiBhcnJheSBvZiBwYWdlcyBhbmQgYWRkcmVzc2VzLiBUaGlzIGlz IGN1cnJlbnRseQogICogcmVxdWlyZWQgYnkgdGhlIFRUTSBkcml2ZXIgaW4gb3JkZXIgdG8gZG8g Y29ycmVjdCBmYXVsdCBoYW5kbGluZy4KKyAqCisgKiBEcml2ZXJzIGNhbiB1c2UgdGhpcyBpbiB0 aGVpciAmZHJtX2RyaXZlci5nZW1fcHJpbWVfaW1wb3J0X3NnX3RhYmxlCisgKiBpbXBsZW1lbnRh dGlvbi4KICAqLwogaW50IGRybV9wcmltZV9zZ190b19wYWdlX2FkZHJfYXJyYXlzKHN0cnVjdCBz Z190YWJsZSAqc2d0LCBzdHJ1Y3QgcGFnZSAqKnBhZ2VzLAogCQkJCSAgICAgZG1hX2FkZHJfdCAq YWRkcnMsIGludCBtYXhfZW50cmllcykKQEAgLTk0Nyw3ICs5OTIsNyBAQCBFWFBPUlRfU1lNQk9M KGRybV9wcmltZV9zZ190b19wYWdlX2FkZHJfYXJyYXlzKTsKICAqIEBzZzogdGhlIHNnLXRhYmxl IHdoaWNoIHdhcyBwaW5uZWQgYXQgaW1wb3J0IHRpbWUKICAqCiAgKiBUaGlzIGlzIHRoZSBjbGVh bnVwIGZ1bmN0aW9ucyB3aGljaCBHRU0gZHJpdmVycyBuZWVkIHRvIGNhbGwgd2hlbiB0aGV5IHVz ZQotICogQGRybV9nZW1fcHJpbWVfaW1wb3J0IHRvIGltcG9ydCBkbWEtYnVmcy4KKyAqIGRybV9n ZW1fcHJpbWVfaW1wb3J0KCkgb3IgZHJtX2dlbV9wcmltZV9pbXBvcnRfZGV2KCkgdG8gaW1wb3J0 IGRtYS1idWZzLgogICovCiB2b2lkIGRybV9wcmltZV9nZW1fZGVzdHJveShzdHJ1Y3QgZHJtX2dl bV9vYmplY3QgKm9iaiwgc3RydWN0IHNnX3RhYmxlICpzZykKIHsKZGlmZiAtLWdpdCBhL2luY2x1 ZGUvZHJtL2RybV9kcnYuaCBiL2luY2x1ZGUvZHJtL2RybV9kcnYuaAppbmRleCA1YzRmYzBkZGM4 NjMuLjEyZTNhYTdkN2E5ZiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9kcm0vZHJtX2Rydi5oCisrKyBi L2luY2x1ZGUvZHJtL2RybV9kcnYuaApAQCAtNTA1LDIxICs1MDUsMjUgQEAgc3RydWN0IGRybV9k cml2ZXIgewogCSAqIEBnZW1fZnJlZV9vYmplY3Q6IGRlY29uc3RydWN0b3IgZm9yIGRybV9nZW1f b2JqZWN0cwogCSAqCiAJICogVGhpcyBpcyBkZXByZWNhdGVkIGFuZCBzaG91bGQgbm90IGJlIHVz ZWQgYnkgbmV3IGRyaXZlcnMuIFVzZQotCSAqIEBnZW1fZnJlZV9vYmplY3RfdW5sb2NrZWQgaW5z dGVhZC4KKwkgKiAmZHJtX2dlbV9vYmplY3RfZnVuY3MuZnJlZSBpbnN0ZWFkLgogCSAqLwogCXZv aWQgKCpnZW1fZnJlZV9vYmplY3QpIChzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKm9iaik7CiAKIAkv KioKIAkgKiBAZ2VtX2ZyZWVfb2JqZWN0X3VubG9ja2VkOiBkZWNvbnN0cnVjdG9yIGZvciBkcm1f Z2VtX29iamVjdHMKIAkgKgotCSAqIFRoaXMgaXMgZm9yIGRyaXZlcnMgd2hpY2ggYXJlIG5vdCBl bmN1bWJlcmVkIHdpdGggJmRybV9kZXZpY2Uuc3RydWN0X211dGV4Ci0JICogbGVnYWN5IGxvY2tp bmcgc2NoZW1lcy4gVXNlIHRoaXMgaG9vayBpbnN0ZWFkIG9mIEBnZW1fZnJlZV9vYmplY3QuCisJ ICogVGhpcyBpcyBkZXByZWNhdGVkIGFuZCBzaG91bGQgbm90IGJlIHVzZWQgYnkgbmV3IGRyaXZl cnMuIFVzZQorCSAqICZkcm1fZ2VtX29iamVjdF9mdW5jcy5mcmVlIGluc3RlYWQuCisJICogQ29t cGFyZWQgdG8gQGdlbV9mcmVlX29iamVjdCB0aGlzIGlzIG5vdCBlbmN1bWJlcmVkIHdpdGgKKwkg KiAmZHJtX2RldmljZS5zdHJ1Y3RfbXV0ZXggbGVnYWN5IGxvY2tpbmcgc2NoZW1lcy4KIAkgKi8K IAl2b2lkICgqZ2VtX2ZyZWVfb2JqZWN0X3VubG9ja2VkKSAoc3RydWN0IGRybV9nZW1fb2JqZWN0 ICpvYmopOwogCiAJLyoqCiAJICogQGdlbV9vcGVuX29iamVjdDoKIAkgKgorCSAqIFRoaXMgY2Fs bGJhY2sgaXMgZGVwcmVjYXRlZCBpbiBmYXZvdXIgb2YgJmRybV9nZW1fb2JqZWN0X2Z1bmNzLm9w ZW4uCisJICoKIAkgKiBEcml2ZXIgaG9vayBjYWxsZWQgdXBvbiBnZW0gaGFuZGxlIGNyZWF0aW9u CiAJICovCiAJaW50ICgqZ2VtX29wZW5fb2JqZWN0KSAoc3RydWN0IGRybV9nZW1fb2JqZWN0ICos IHN0cnVjdCBkcm1fZmlsZSAqKTsKQEAgLTUyNyw2ICs1MzEsOCBAQCBzdHJ1Y3QgZHJtX2RyaXZl ciB7CiAJLyoqCiAJICogQGdlbV9jbG9zZV9vYmplY3Q6CiAJICoKKwkgKiBUaGlzIGNhbGxiYWNr IGlzIGRlcHJlY2F0ZWQgaW4gZmF2b3VyIG9mICZkcm1fZ2VtX29iamVjdF9mdW5jcy5jbG9zZS4K KwkgKgogCSAqIERyaXZlciBob29rIGNhbGxlZCB1cG9uIGdlbSBoYW5kbGUgcmVsZWFzZQogCSAq LwogCXZvaWQgKCpnZW1fY2xvc2Vfb2JqZWN0KSAoc3RydWN0IGRybV9nZW1fb2JqZWN0ICosIHN0 cnVjdCBkcm1fZmlsZSAqKTsKQEAgLTUzNCw2ICs1NDAsOSBAQCBzdHJ1Y3QgZHJtX2RyaXZlciB7 CiAJLyoqCiAJICogQGdlbV9wcmludF9pbmZvOgogCSAqCisJICogVGhpcyBjYWxsYmFjayBpcyBk ZXByZWNhdGVkIGluIGZhdm91ciBvZgorCSAqICZkcm1fZ2VtX29iamVjdF9mdW5jcy5wcmludF9p bmZvLgorCSAqCiAJICogSWYgZHJpdmVyIHN1YmNsYXNzZXMgc3RydWN0ICZkcm1fZ2VtX29iamVj dCwgaXQgY2FuIGltcGxlbWVudCB0aGlzCiAJICogb3B0aW9uYWwgaG9vayBmb3IgcHJpbnRpbmcg YWRkaXRpb25hbCBkcml2ZXIgc3BlY2lmaWMgaW5mby4KIAkgKgpAQCAtNTQ4LDU2ICs1NTcsMTIw IEBAIHN0cnVjdCBkcm1fZHJpdmVyIHsKIAkvKioKIAkgKiBAZ2VtX2NyZWF0ZV9vYmplY3Q6IGNv bnN0cnVjdG9yIGZvciBnZW0gb2JqZWN0cwogCSAqCi0JICogSG9vayBmb3IgYWxsb2NhdGluZyB0 aGUgR0VNIG9iamVjdCBzdHJ1Y3QsIGZvciB1c2UgYnkgY29yZQotCSAqIGhlbHBlcnMuCisJICog SG9vayBmb3IgYWxsb2NhdGluZyB0aGUgR0VNIG9iamVjdCBzdHJ1Y3QsIGZvciB1c2UgYnkgdGhl IENNQSBhbmQKKwkgKiBTSE1FTSBHRU0gaGVscGVycy4KIAkgKi8KIAlzdHJ1Y3QgZHJtX2dlbV9v YmplY3QgKigqZ2VtX2NyZWF0ZV9vYmplY3QpKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJCQkJ CQkgICAgc2l6ZV90IHNpemUpOwotCi0JLyogcHJpbWU6ICovCiAJLyoqCiAJICogQHByaW1lX2hh bmRsZV90b19mZDoKIAkgKgotCSAqIGV4cG9ydCBoYW5kbGUgLT4gZmQgKHNlZSBkcm1fZ2VtX3By aW1lX2hhbmRsZV90b19mZCgpIGhlbHBlcikKKwkgKiBNYWluIFBSSU1FIGV4cG9ydCBmdW5jdGlv bi4gU2hvdWxkIGJlIGltcGxlbWVudGVkIHdpdGgKKwkgKiBkcm1fZ2VtX3ByaW1lX2hhbmRsZV90 b19mZCgpIGZvciBHRU0gYmFzZWQgZHJpdmVycy4KKwkgKgorCSAqIEZvciBhbiBpbi1kZXB0aCBk aXNjdXNzaW9uIHNlZSA6cmVmOmBQUklNRSBidWZmZXIgc2hhcmluZworCSAqIGRvY3VtZW50YXRp b24gPHByaW1lX2J1ZmZlcl9zaGFyaW5nPmAuCiAJICovCiAJaW50ICgqcHJpbWVfaGFuZGxlX3Rv X2ZkKShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdiwK IAkJCQl1aW50MzJfdCBoYW5kbGUsIHVpbnQzMl90IGZsYWdzLCBpbnQgKnByaW1lX2ZkKTsKIAkv KioKIAkgKiBAcHJpbWVfZmRfdG9faGFuZGxlOgogCSAqCi0JICogaW1wb3J0IGZkIC0+IGhhbmRs ZSAoc2VlIGRybV9nZW1fcHJpbWVfZmRfdG9faGFuZGxlKCkgaGVscGVyKQorCSAqIE1haW4gUFJJ TUUgaW1wb3J0IGZ1bmN0aW9uLiBTaG91bGQgYmUgaW1wbGVtZW50ZWQgd2l0aAorCSAqIGRybV9n ZW1fcHJpbWVfZmRfdG9faGFuZGxlKCkgZm9yIEdFTSBiYXNlZCBkcml2ZXJzLgorCSAqCisJICog Rm9yIGFuIGluLWRlcHRoIGRpc2N1c3Npb24gc2VlIDpyZWY6YFBSSU1FIGJ1ZmZlciBzaGFyaW5n CisJICogZG9jdW1lbnRhdGlvbiA8cHJpbWVfYnVmZmVyX3NoYXJpbmc+YC4KIAkgKi8KIAlpbnQg KCpwcmltZV9mZF90b19oYW5kbGUpKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHN0cnVjdCBkcm1f ZmlsZSAqZmlsZV9wcml2LAogCQkJCWludCBwcmltZV9mZCwgdWludDMyX3QgKmhhbmRsZSk7CiAJ LyoqCiAJICogQGdlbV9wcmltZV9leHBvcnQ6CiAJICoKLQkgKiBleHBvcnQgR0VNIC0+IGRtYWJ1 ZgotCSAqCi0JICogVGhpcyBkZWZhdWx0cyB0byBkcm1fZ2VtX3ByaW1lX2V4cG9ydCgpIGlmIG5v dCBzZXQuCisJICogRXhwb3J0IGhvb2sgZm9yIEdFTSBkcml2ZXJzLiBEZXByZWNhdGVkIGluIGZh dm91ciBvZgorCSAqICZkcm1fZ2VtX29iamVjdF9mdW5jcy5leHBvcnQuCiAJICovCiAJc3RydWN0 IGRtYV9idWYgKiAoKmdlbV9wcmltZV9leHBvcnQpKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJ CQkJc3RydWN0IGRybV9nZW1fb2JqZWN0ICpvYmosIGludCBmbGFncyk7CiAJLyoqCiAJICogQGdl bV9wcmltZV9pbXBvcnQ6CiAJICoKLQkgKiBpbXBvcnQgZG1hYnVmIC0+IEdFTQorCSAqIEltcG9y dCBob29rIGZvciBHRU0gZHJpdmVycy4KIAkgKgogCSAqIFRoaXMgZGVmYXVsdHMgdG8gZHJtX2dl bV9wcmltZV9pbXBvcnQoKSBpZiBub3Qgc2V0LgogCSAqLwogCXN0cnVjdCBkcm1fZ2VtX29iamVj dCAqICgqZ2VtX3ByaW1lX2ltcG9ydCkoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAkJCQlzdHJ1 Y3QgZG1hX2J1ZiAqZG1hX2J1Zik7CisKKwkvKioKKwkgKiBAZ2VtX3ByaW1lX3BpbjoKKwkgKgor CSAqIERlcHJlY2F0ZWQgaG9vayBpbiBmYXZvdXIgb2YgJmRybV9nZW1fb2JqZWN0X2Z1bmNzLnBp bi4KKwkgKi8KIAlpbnQgKCpnZW1fcHJpbWVfcGluKShzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKm9i aik7CisKKwkvKioKKwkgKiBAZ2VtX3ByaW1lX3VucGluOgorCSAqCisJICogRGVwcmVjYXRlZCBo b29rIGluIGZhdm91ciBvZiAmZHJtX2dlbV9vYmplY3RfZnVuY3MudW5waW4uCisJICovCiAJdm9p ZCAoKmdlbV9wcmltZV91bnBpbikoc3RydWN0IGRybV9nZW1fb2JqZWN0ICpvYmopOworCisKKwkv KioKKwkgKiBAZ2VtX3ByaW1lX2dldF9zZ190YWJsZToKKwkgKgorCSAqIERlcHJlY2F0ZWQgaG9v ayBpbiBmYXZvdXIgb2YgJmRybV9nZW1fb2JqZWN0X2Z1bmNzLmdldF9zZ190YWJsZS4KKwkgKi8K KwlzdHJ1Y3Qgc2dfdGFibGUgKigqZ2VtX3ByaW1lX2dldF9zZ190YWJsZSkoc3RydWN0IGRybV9n ZW1fb2JqZWN0ICpvYmopOworCisJLyoqCisJICogQGdlbV9wcmltZV9yZXNfb2JqOgorCSAqCisJ ICogT3B0aW9uYWwgaG9vayB0byBsb29rIHVwIHRoZSAmcmVzZXJ2YXRpb25fb2JqZWN0IGZvciBh biBidWZmZXIgd2hlbgorCSAqIGV4cG9ydGluZyBpdC4KKwkgKgorCSAqIEZJWE1FOiBUaGlzIGhv b2sgaXMgZGVwcmVjYXRlZC4gVXNlcnMgb2YgdGhpcyBob29rIHNob3VsZCBiZSByZXBsYWNlZAor CSAqIGJ5IHNldHRpbmcgJmRybV9nZW1fb2JqZWN0LnJlc3YgaW5zdGVhZC4KKwkgKi8KIAlzdHJ1 Y3QgcmVzZXJ2YXRpb25fb2JqZWN0ICogKCpnZW1fcHJpbWVfcmVzX29iaikoCiAJCQkJc3RydWN0 IGRybV9nZW1fb2JqZWN0ICpvYmopOwotCXN0cnVjdCBzZ190YWJsZSAqKCpnZW1fcHJpbWVfZ2V0 X3NnX3RhYmxlKShzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKm9iaik7CisKKwkvKioKKwkgKiBAZ2Vt X3ByaW1lX2ltcG9ydF9zZ190YWJsZToKKwkgKgorCSAqIE9wdGlvbmFsIGhvb2sgdXNlZCBieSB0 aGUgUFJJTUUgaGVscGVyIGZ1bmN0aW9ucworCSAqIGRybV9nZW1fcHJpbWVfaW1wb3J0KCkgcmVz cGVjdGl2ZWx5IGRybV9nZW1fcHJpbWVfaW1wb3J0X2RldigpLgorCSAqLwogCXN0cnVjdCBkcm1f Z2VtX29iamVjdCAqKCpnZW1fcHJpbWVfaW1wb3J0X3NnX3RhYmxlKSgKIAkJCQlzdHJ1Y3QgZHJt X2RldmljZSAqZGV2LAogCQkJCXN0cnVjdCBkbWFfYnVmX2F0dGFjaG1lbnQgKmF0dGFjaCwKIAkJ CQlzdHJ1Y3Qgc2dfdGFibGUgKnNndCk7CisJLyoqCisJICogQGdlbV9wcmltZV92bWFwOgorCSAq CisJICogRGVwcmVjYXRlZCB2bWFwIGhvb2sgZm9yIEdFTSBkcml2ZXJzLiBQbGVhc2UgdXNlCisJ ICogJmRybV9nZW1fb2JqZWN0X2Z1bmNzLnZtYXAgaW5zdGVhZC4KKwkgKi8KIAl2b2lkICooKmdl bV9wcmltZV92bWFwKShzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKm9iaik7CisKKwkvKioKKwkgKiBA Z2VtX3ByaW1lX3Z1bm1hcDoKKwkgKgorCSAqIERlcHJlY2F0ZWQgdnVubWFwIGhvb2sgZm9yIEdF TSBkcml2ZXJzLiBQbGVhc2UgdXNlCisJICogJmRybV9nZW1fb2JqZWN0X2Z1bmNzLnZ1bm1hcCBp bnN0ZWFkLgorCSAqLwogCXZvaWQgKCpnZW1fcHJpbWVfdnVubWFwKShzdHJ1Y3QgZHJtX2dlbV9v YmplY3QgKm9iaiwgdm9pZCAqdmFkZHIpOworCisJLyoqCisJICogQGdlbV9wcmltZV9tbWFwOgor CSAqCisJICogbW1hcCBob29rIGZvciBHRU0gZHJpdmVycywgdXNlZCB0byBpbXBsZW1lbnQgZG1h LWJ1ZiBtbWFwIGluIHRoZQorCSAqIFBSSU1FIGhlbHBlcnMuCisJICoKKwkgKiBGSVhNRTogVGhl cmUncyB3YXkgdG9vIG11Y2ggZHVwbGljYXRpb24gZ29pbmcgb24gaGVyZSwgYW5kIGFsc28gbW92 ZWQKKwkgKiB0byAmZHJtX2dlbV9vYmplY3RfZnVuY3MuCisJICovCiAJaW50ICgqZ2VtX3ByaW1l X21tYXApKHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqb2JqLAogCQkJCXN0cnVjdCB2bV9hcmVhX3N0 cnVjdCAqdm1hKTsKIApAQCAtNjY1LDYgKzczOCw5IEBAIHN0cnVjdCBkcm1fZHJpdmVyIHsKIAog CS8qKgogCSAqIEBnZW1fdm1fb3BzOiBEcml2ZXIgcHJpdmF0ZSBvcHMgZm9yIHRoaXMgb2JqZWN0 CisJICoKKwkgKiBGb3IgR0VNIGRyaXZlcnMgdGhpcyBpcyBkZXByZWNhdGVkIGluIGZhdm91ciBv ZgorCSAqICZkcm1fZ2VtX29iamVjdF9mdW5jcy52bV9vcHMuCiAJICovCiAJY29uc3Qgc3RydWN0 IHZtX29wZXJhdGlvbnNfc3RydWN0ICpnZW1fdm1fb3BzOwogCmRpZmYgLS1naXQgYS9pbmNsdWRl L2RybS9kcm1fZ2VtLmggYi9pbmNsdWRlL2RybS9kcm1fZ2VtLmgKaW5kZXggYTkxMjFmZTY2ZWEy Li5hZTY5M2MwNjY2Y2QgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvZHJtL2RybV9nZW0uaAorKysgYi9p bmNsdWRlL2RybS9kcm1fZ2VtLmgKQEAgLTEwMSw3ICsxMDEsNyBAQCBzdHJ1Y3QgZHJtX2dlbV9v YmplY3RfZnVuY3MgewogCS8qKgogCSAqIEBwaW46CiAJICoKLQkgKiBQaW4gYmFja2luZyBidWZm ZXIgaW4gbWVtb3J5LgorCSAqIFBpbiBiYWNraW5nIGJ1ZmZlciBpbiBtZW1vcnkuIFVzZWQgYnkg dGhlIGRybV9nZW1fbWFwX2F0dGFjaCgpIGhlbHBlci4KIAkgKgogCSAqIFRoaXMgY2FsbGJhY2sg aXMgb3B0aW9uYWwuCiAJICovCkBAIC0xMTAsNyArMTEwLDcgQEAgc3RydWN0IGRybV9nZW1fb2Jq ZWN0X2Z1bmNzIHsKIAkvKioKIAkgKiBAdW5waW46CiAJICoKLQkgKiBVbnBpbiBiYWNraW5nIGJ1 ZmZlci4KKwkgKiBVbnBpbiBiYWNraW5nIGJ1ZmZlci4gVXNlZCBieSB0aGUgZHJtX2dlbV9tYXBf ZGV0YWNoKCkgaGVscGVyLgogCSAqCiAJICogVGhpcyBjYWxsYmFjayBpcyBvcHRpb25hbC4KIAkg Ki8KQEAgLTEyMCwxNiArMTIwLDIxIEBAIHN0cnVjdCBkcm1fZ2VtX29iamVjdF9mdW5jcyB7CiAJ ICogQGdldF9zZ190YWJsZToKIAkgKgogCSAqIFJldHVybnMgYSBTY2F0dGVyLUdhdGhlciB0YWJs ZSByZXByZXNlbnRhdGlvbiBvZiB0aGUgYnVmZmVyLgotCSAqIFVzZWQgd2hlbiBleHBvcnRpbmcg YSBidWZmZXIuCisJICogVXNlZCB3aGVuIGV4cG9ydGluZyBhIGJ1ZmZlciBieSB0aGUgZHJtX2dl bV9tYXBfZG1hX2J1ZigpIGhlbHBlci4KKwkgKiBSZWxlYXNpbmcgaXMgZG9uZSBieSBjYWxsaW5n IGRtYV91bm1hcF9zZ19hdHRycygpIGFuZCBzZ19mcmVlX3RhYmxlKCkKKwkgKiBpbiBkcm1fZ2Vt X3VubWFwX2J1ZigpLCB0aGVyZWZvcmUgdGhlc2UgaGVscGVycyBhbmQgdGhpcyBjYWxsYmFjawor CSAqIGhlcmUgY2Fubm90IGJlIHVzZWQgZm9yIHNnIHRhYmxlcyBwb2ludGluZyBhdCBkcml2ZXIg cHJpdmF0ZSBtZW1vcnkKKwkgKiByYW5nZXMuCiAJICoKLQkgKiBUaGlzIGNhbGxiYWNrIGlzIG1h bmRhdG9yeSBpZiBidWZmZXIgZXhwb3J0IGlzIHN1cHBvcnRlZC4KKwkgKiBTZWUgYWxzbyBkcm1f cHJpbWVfcGFnZXNfdG9fc2coKS4KIAkgKi8KIAlzdHJ1Y3Qgc2dfdGFibGUgKigqZ2V0X3NnX3Rh YmxlKShzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKm9iaik7CiAKIAkvKioKIAkgKiBAdm1hcDoKIAkg KgotCSAqIFJldHVybnMgYSB2aXJ0dWFsIGFkZHJlc3MgZm9yIHRoZSBidWZmZXIuCisJICogUmV0 dXJucyBhIHZpcnR1YWwgYWRkcmVzcyBmb3IgdGhlIGJ1ZmZlci4gVXNlZCBieSB0aGUKKwkgKiBk cm1fZ2VtX2RtYWJ1Zl92bWFwKCkgaGVscGVyLgogCSAqCiAJICogVGhpcyBjYWxsYmFjayBpcyBv cHRpb25hbC4KIAkgKi8KQEAgLTEzOCw3ICsxNDMsOCBAQCBzdHJ1Y3QgZHJtX2dlbV9vYmplY3Rf ZnVuY3MgewogCS8qKgogCSAqIEB2dW5tYXA6CiAJICoKLQkgKiBSZWxlYXNlcyB0aGUgdGhlIGFk ZHJlc3MgcHJldmlvdXNseSByZXR1cm5lZCBieSBAdm1hcC4KKwkgKiBSZWxlYXNlcyB0aGUgdGhl IGFkZHJlc3MgcHJldmlvdXNseSByZXR1cm5lZCBieSBAdm1hcC4gVXNlZCBieSB0aGUKKwkgKiBk cm1fZ2VtX2RtYWJ1Zl92dW5tYXAoKSBoZWxwZXIuCiAJICoKIAkgKiBUaGlzIGNhbGxiYWNrIGlz IG9wdGlvbmFsLgogCSAqLwotLSAKMi4yMC4xCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0 cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9s aXN0aW5mby9kcmktZGV2ZWw=