From mboxrd@z Thu Jan 1 00:00:00 1970 From: Sean Paul Subject: [PATCH v4 03/11] drm: Add atomic variants for bridge enable/disable Date: Wed, 8 May 2019 12:09:08 -0400 Message-ID: <20190508160920.144739-4-sean@poorly.run> References: <20190508160920.144739-1-sean@poorly.run> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-qt1-x844.google.com (mail-qt1-x844.google.com [IPv6:2607:f8b0:4864:20::844]) by gabe.freedesktop.org (Postfix) with ESMTPS id D440F897EF for ; Wed, 8 May 2019 16:09:29 +0000 (UTC) Received: by mail-qt1-x844.google.com with SMTP id f24so13411571qtk.11 for ; Wed, 08 May 2019 09:09:29 -0700 (PDT) In-Reply-To: <20190508160920.144739-1-sean@poorly.run> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: dri-devel@lists.freedesktop.org Cc: Maxime Ripard , Daniel Vetter , linux-kernel@vger.kernel.org, David Airlie , Sean Paul , Sean Paul List-Id: dri-devel@lists.freedesktop.org RnJvbTogU2VhbiBQYXVsIDxzZWFucGF1bEBjaHJvbWl1bS5vcmc+CgpUaGlzIHBhdGNoIGFkZHMg YXRvbWljIHZhcmlhbnRzIGZvciBhbGwgb2YKcHJlX2VuYWJsZS9lbmFibGUvZGlzYWJsZS9wb3N0 X2Rpc2FibGUgYnJpZGdlIGZ1bmN0aW9ucy4gVGhlc2Ugd2lsbCBiZQpjYWxsZWQgZnJvbSB0aGUg YXBwcm9wcmlhdGUgYXRvbWljIGhlbHBlciBmdW5jdGlvbnMuIElmIHRoZSBicmlkZ2UKZHJpdmVy IGRvZXNuJ3QgaW1wbGVtZW50IHRoZSBhdG9taWMgdmVyc2lvbiBvZiB0aGUgZnVuY3Rpb24sIHdl IHdpbGwKZmFsbCBiYWNrIHRvIHRoZSB2YW5pbGxhIGltcGxlbWVudGF0aW9uLgoKTm90ZSB0aGF0 IHNvbWUgZHJpdmVycyBjYWxsIGRybV9icmlkZ2VfZGlzYWJsZSBkaXJlY3RseSwgYW5kIHRoZXNl IGNhc2VzCmFyZSBub3QgY292ZXJlZC4gSXQncyB1cCB0byB0aGUgZHJpdmVyIHRvIGRlY2lkZSB3 aGV0aGVyIHRvIGltcGxlbWVudApib3RoIGF0b21pY19kaXNhYmxlIGFuZCBkaXNhYmxlLCBvciBp ZiBpdCdzIG5vdCBuZWNlc3NhcnkuCgpDaGFuZ2VzIGluIHYzOgotIEFkZGVkIHRvIHRoZSBwYXRj aHNldApDaGFuZ2VzIGluIHY0OgotIEZpeCB1cCBkb2Nib29rIHJlZmVyZW5jZXMgKERhbmllbCkK CkxpbmsgdG8gdjM6IGh0dHBzOi8vcGF0Y2h3b3JrLmZyZWVkZXNrdG9wLm9yZy9wYXRjaC9tc2dp ZC8yMDE5MDUwMjE5NDk1Ni4yMTg0NDEtNC1zZWFuQHBvb3JseS5ydW4KCkNjOiBEYW5pZWwgVmV0 dGVyIDxkYW5pZWxAZmZ3bGwuY2g+CkNjOiBWaWxsZSBTeXJqw6Rsw6QgPHZpbGxlLnN5cmphbGFA bGludXguaW50ZWwuY29tPgpSZXZpZXdlZC1ieTogRGFuaWVsIFZldHRlciA8ZGFuaWVsLnZldHRl ckBmZndsbC5jaD4KU2lnbmVkLW9mZi1ieTogU2VhbiBQYXVsIDxzZWFucGF1bEBjaHJvbWl1bS5v cmc+Ci0tLQogZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWNfaGVscGVyLmMgfCAgIDggKy0KIGRy aXZlcnMvZ3B1L2RybS9kcm1fYnJpZGdlLmMgICAgICAgIHwgMTEwICsrKysrKysrKysrKysrKysr KysrKysrKysrKysKIGluY2x1ZGUvZHJtL2RybV9icmlkZ2UuaCAgICAgICAgICAgIHwgMTA2ICsr KysrKysrKysrKysrKysrKysrKysrKysrKwogMyBmaWxlcyBjaGFuZ2VkLCAyMjAgaW5zZXJ0aW9u cygrKSwgNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0 b21pY19oZWxwZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljX2hlbHBlci5jCmluZGV4 IGNjZjAxODMxZjI2NS4uZThiNzE4N2E4NDk0IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0v ZHJtX2F0b21pY19oZWxwZXIuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pY19oZWxw ZXIuYwpAQCAtOTk1LDcgKzk5NSw3IEBAIGRpc2FibGVfb3V0cHV0cyhzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2LCBzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqb2xkX3N0YXRlKQogCQkgKiBFYWNoIGVu Y29kZXIgaGFzIGF0IG1vc3Qgb25lIGNvbm5lY3RvciAoc2luY2Ugd2UgYWx3YXlzIHN0ZWFsCiAJ CSAqIGl0IGF3YXkpLCBzbyB3ZSB3b24ndCBjYWxsIGRpc2FibGUgaG9va3MgdHdpY2UuCiAJCSAq LwotCQlkcm1fYnJpZGdlX2Rpc2FibGUoZW5jb2Rlci0+YnJpZGdlKTsKKwkJZHJtX2F0b21pY19i cmlkZ2VfZGlzYWJsZShlbmNvZGVyLT5icmlkZ2UsIG9sZF9zdGF0ZSk7CiAKIAkJLyogUmlnaHQg ZnVuY3Rpb24gZGVwZW5kcyB1cG9uIHRhcmdldCBzdGF0ZS4gKi8KIAkJaWYgKGZ1bmNzKSB7CkBA IC0xMDA5LDcgKzEwMDksNyBAQCBkaXNhYmxlX291dHB1dHMoc3RydWN0IGRybV9kZXZpY2UgKmRl diwgc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKm9sZF9zdGF0ZSkKIAkJCQlmdW5jcy0+ZHBtcyhl bmNvZGVyLCBEUk1fTU9ERV9EUE1TX09GRik7CiAJCX0KIAotCQlkcm1fYnJpZGdlX3Bvc3RfZGlz YWJsZShlbmNvZGVyLT5icmlkZ2UpOworCQlkcm1fYXRvbWljX2JyaWRnZV9wb3N0X2Rpc2FibGUo ZW5jb2Rlci0+YnJpZGdlLCBvbGRfc3RhdGUpOwogCX0KIAogCWZvcl9lYWNoX29sZG5ld19jcnRj X2luX3N0YXRlKG9sZF9zdGF0ZSwgY3J0Yywgb2xkX2NydGNfc3RhdGUsIG5ld19jcnRjX3N0YXRl LCBpKSB7CkBAIC0xMzA4LDcgKzEzMDgsNyBAQCB2b2lkIGRybV9hdG9taWNfaGVscGVyX2NvbW1p dF9tb2Rlc2V0X2VuYWJsZXMoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAkJICogRWFjaCBlbmNv ZGVyIGhhcyBhdCBtb3N0IG9uZSBjb25uZWN0b3IgKHNpbmNlIHdlIGFsd2F5cyBzdGVhbAogCQkg KiBpdCBhd2F5KSwgc28gd2Ugd29uJ3QgY2FsbCBlbmFibGUgaG9va3MgdHdpY2UuCiAJCSAqLwot CQlkcm1fYnJpZGdlX3ByZV9lbmFibGUoZW5jb2Rlci0+YnJpZGdlKTsKKwkJZHJtX2F0b21pY19i cmlkZ2VfcHJlX2VuYWJsZShlbmNvZGVyLT5icmlkZ2UsIG9sZF9zdGF0ZSk7CiAKIAkJaWYgKGZ1 bmNzKSB7CiAJCQlpZiAoZnVuY3MtPmF0b21pY19lbmFibGUpCkBAIC0xMzE5LDcgKzEzMTksNyBA QCB2b2lkIGRybV9hdG9taWNfaGVscGVyX2NvbW1pdF9tb2Rlc2V0X2VuYWJsZXMoc3RydWN0IGRy bV9kZXZpY2UgKmRldiwKIAkJCQlmdW5jcy0+Y29tbWl0KGVuY29kZXIpOwogCQl9CiAKLQkJZHJt X2JyaWRnZV9lbmFibGUoZW5jb2Rlci0+YnJpZGdlKTsKKwkJZHJtX2F0b21pY19icmlkZ2VfZW5h YmxlKGVuY29kZXItPmJyaWRnZSwgb2xkX3N0YXRlKTsKIAl9CiAKIAlkcm1fYXRvbWljX2hlbHBl cl9jb21taXRfd3JpdGViYWNrcyhkZXYsIG9sZF9zdGF0ZSk7CmRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vZHJtX2JyaWRnZS5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9icmlkZ2UuYwppbmRl eCAxMzhiMjcxMWQzODkuLmNiYTUzN2M5OWU0MyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJt L2RybV9icmlkZ2UuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2JyaWRnZS5jCkBAIC0zNTIs NiArMzUyLDExNiBAQCB2b2lkIGRybV9icmlkZ2VfZW5hYmxlKHN0cnVjdCBkcm1fYnJpZGdlICpi cmlkZ2UpCiB9CiBFWFBPUlRfU1lNQk9MKGRybV9icmlkZ2VfZW5hYmxlKTsKIAorLyoqCisgKiBk cm1fYXRvbWljX2JyaWRnZV9kaXNhYmxlIC0gZGlzYWJsZXMgYWxsIGJyaWRnZXMgaW4gdGhlIGVu Y29kZXIgY2hhaW4KKyAqIEBicmlkZ2U6IGJyaWRnZSBjb250cm9sIHN0cnVjdHVyZQorICogQHN0 YXRlOiBhdG9taWMgc3RhdGUgYmVpbmcgY29tbWl0dGVkCisgKgorICogQ2FsbHMgJmRybV9icmlk Z2VfZnVuY3MuYXRvbWljX2Rpc2FibGUgKGZhbGxzIGJhY2sgb24KKyAqICZkcm1fYnJpZGdlX2Z1 bmNzLmRpc2FibGUpIG9wIGZvciBhbGwgdGhlIGJyaWRnZXMgaW4gdGhlIGVuY29kZXIgY2hhaW4s CisgKiBzdGFydGluZyBmcm9tIHRoZSBsYXN0IGJyaWRnZSB0byB0aGUgZmlyc3QuIFRoZXNlIGFy ZSBjYWxsZWQgYmVmb3JlIGNhbGxpbmcKKyAqICZkcm1fZW5jb2Rlcl9oZWxwZXJfZnVuY3MuYXRv bWljX2Rpc2FibGUKKyAqCisgKiBOb3RlOiB0aGUgYnJpZGdlIHBhc3NlZCBzaG91bGQgYmUgdGhl IG9uZSBjbG9zZXN0IHRvIHRoZSBlbmNvZGVyCisgKi8KK3ZvaWQgZHJtX2F0b21pY19icmlkZ2Vf ZGlzYWJsZShzdHJ1Y3QgZHJtX2JyaWRnZSAqYnJpZGdlLAorCQkJICAgICAgIHN0cnVjdCBkcm1f YXRvbWljX3N0YXRlICpzdGF0ZSkKK3sKKwlpZiAoIWJyaWRnZSkKKwkJcmV0dXJuOworCisJZHJt X2F0b21pY19icmlkZ2VfZGlzYWJsZShicmlkZ2UtPm5leHQsIHN0YXRlKTsKKworCWlmIChicmlk Z2UtPmZ1bmNzLT5hdG9taWNfZGlzYWJsZSkKKwkJYnJpZGdlLT5mdW5jcy0+YXRvbWljX2Rpc2Fi bGUoYnJpZGdlLCBzdGF0ZSk7CisJZWxzZSBpZiAoYnJpZGdlLT5mdW5jcy0+ZGlzYWJsZSkKKwkJ YnJpZGdlLT5mdW5jcy0+ZGlzYWJsZShicmlkZ2UpOworfQorRVhQT1JUX1NZTUJPTChkcm1fYXRv bWljX2JyaWRnZV9kaXNhYmxlKTsKKworLyoqCisgKiBkcm1fYXRvbWljX2JyaWRnZV9wb3N0X2Rp c2FibGUgLSBjbGVhbnMgdXAgYWZ0ZXIgZGlzYWJsaW5nIGFsbCBicmlkZ2VzIGluIHRoZQorICoJ CQkJICAgIGVuY29kZXIgY2hhaW4KKyAqIEBicmlkZ2U6IGJyaWRnZSBjb250cm9sIHN0cnVjdHVy ZQorICogQHN0YXRlOiBhdG9taWMgc3RhdGUgYmVpbmcgY29tbWl0dGVkCisgKgorICogQ2FsbHMg JmRybV9icmlkZ2VfZnVuY3MuYXRvbWljX3Bvc3RfZGlzYWJsZSAoZmFsbHMgYmFjayBvbgorICog JmRybV9icmlkZ2VfZnVuY3MucG9zdF9kaXNhYmxlKSBvcCBmb3IgYWxsIHRoZSBicmlkZ2VzIGlu IHRoZSBlbmNvZGVyIGNoYWluLAorICogc3RhcnRpbmcgZnJvbSB0aGUgZmlyc3QgYnJpZGdlIHRv IHRoZSBsYXN0LiBUaGVzZSBhcmUgY2FsbGVkIGFmdGVyIGNvbXBsZXRpbmcKKyAqICZkcm1fZW5j b2Rlcl9oZWxwZXJfZnVuY3MuYXRvbWljX2Rpc2FibGUKKyAqCisgKiBOb3RlOiB0aGUgYnJpZGdl IHBhc3NlZCBzaG91bGQgYmUgdGhlIG9uZSBjbG9zZXN0IHRvIHRoZSBlbmNvZGVyCisgKi8KK3Zv aWQgZHJtX2F0b21pY19icmlkZ2VfcG9zdF9kaXNhYmxlKHN0cnVjdCBkcm1fYnJpZGdlICpicmlk Z2UsCisJCQkJICAgIHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSkKK3sKKwlpZiAoIWJy aWRnZSkKKwkJcmV0dXJuOworCisJaWYgKGJyaWRnZS0+ZnVuY3MtPmF0b21pY19wb3N0X2Rpc2Fi bGUpCisJCWJyaWRnZS0+ZnVuY3MtPmF0b21pY19wb3N0X2Rpc2FibGUoYnJpZGdlLCBzdGF0ZSk7 CisJZWxzZSBpZiAoYnJpZGdlLT5mdW5jcy0+cG9zdF9kaXNhYmxlKQorCQlicmlkZ2UtPmZ1bmNz LT5wb3N0X2Rpc2FibGUoYnJpZGdlKTsKKworCWRybV9hdG9taWNfYnJpZGdlX3Bvc3RfZGlzYWJs ZShicmlkZ2UtPm5leHQsIHN0YXRlKTsKK30KK0VYUE9SVF9TWU1CT0woZHJtX2F0b21pY19icmlk Z2VfcG9zdF9kaXNhYmxlKTsKKworLyoqCisgKiBkcm1fYXRvbWljX2JyaWRnZV9wcmVfZW5hYmxl IC0gcHJlcGFyZXMgZm9yIGVuYWJsaW5nIGFsbCBicmlkZ2VzIGluIHRoZQorICoJCQkJICBlbmNv ZGVyIGNoYWluCisgKiBAYnJpZGdlOiBicmlkZ2UgY29udHJvbCBzdHJ1Y3R1cmUKKyAqIEBzdGF0 ZTogYXRvbWljIHN0YXRlIGJlaW5nIGNvbW1pdHRlZAorICoKKyAqIENhbGxzICZkcm1fYnJpZGdl X2Z1bmNzLmF0b21pY19wcmVfZW5hYmxlIChmYWxscyBiYWNrIG9uCisgKiAmZHJtX2JyaWRnZV9m dW5jcy5wcmVfZW5hYmxlKSBvcCBmb3IgYWxsIHRoZSBicmlkZ2VzIGluIHRoZSBlbmNvZGVyIGNo YWluLAorICogc3RhcnRpbmcgZnJvbSB0aGUgbGFzdCBicmlkZ2UgdG8gdGhlIGZpcnN0LiBUaGVz ZSBhcmUgY2FsbGVkIGJlZm9yZSBjYWxsaW5nCisgKiAmZHJtX2VuY29kZXJfaGVscGVyX2Z1bmNz LmF0b21pY19lbmFibGUKKyAqCisgKiBOb3RlOiB0aGUgYnJpZGdlIHBhc3NlZCBzaG91bGQgYmUg dGhlIG9uZSBjbG9zZXN0IHRvIHRoZSBlbmNvZGVyCisgKi8KK3ZvaWQgZHJtX2F0b21pY19icmlk Z2VfcHJlX2VuYWJsZShzdHJ1Y3QgZHJtX2JyaWRnZSAqYnJpZGdlLAorCQkJCSAgc3RydWN0IGRy bV9hdG9taWNfc3RhdGUgKnN0YXRlKQoreworCWlmICghYnJpZGdlKQorCQlyZXR1cm47CisKKwlk cm1fYXRvbWljX2JyaWRnZV9wcmVfZW5hYmxlKGJyaWRnZS0+bmV4dCwgc3RhdGUpOworCisJaWYg KGJyaWRnZS0+ZnVuY3MtPmF0b21pY19wcmVfZW5hYmxlKQorCQlicmlkZ2UtPmZ1bmNzLT5hdG9t aWNfcHJlX2VuYWJsZShicmlkZ2UsIHN0YXRlKTsKKwllbHNlIGlmIChicmlkZ2UtPmZ1bmNzLT5w cmVfZW5hYmxlKQorCQlicmlkZ2UtPmZ1bmNzLT5wcmVfZW5hYmxlKGJyaWRnZSk7Cit9CitFWFBP UlRfU1lNQk9MKGRybV9hdG9taWNfYnJpZGdlX3ByZV9lbmFibGUpOworCisvKioKKyAqIGRybV9h dG9taWNfYnJpZGdlX2VuYWJsZSAtIGVuYWJsZXMgYWxsIGJyaWRnZXMgaW4gdGhlIGVuY29kZXIg Y2hhaW4KKyAqIEBicmlkZ2U6IGJyaWRnZSBjb250cm9sIHN0cnVjdHVyZQorICogQHN0YXRlOiBh dG9taWMgc3RhdGUgYmVpbmcgY29tbWl0dGVkCisgKgorICogQ2FsbHMgJmRybV9icmlkZ2VfZnVu Y3MuYXRvbWljX2VuYWJsZSAoZmFsbHMgYmFjayBvbgorICogJmRybV9icmlkZ2VfZnVuY3MuZW5h YmxlKSBvcCBmb3IgYWxsIHRoZSBicmlkZ2VzIGluIHRoZSBlbmNvZGVyIGNoYWluLAorICogc3Rh cnRpbmcgZnJvbSB0aGUgZmlyc3QgYnJpZGdlIHRvIHRoZSBsYXN0LiBUaGVzZSBhcmUgY2FsbGVk IGFmdGVyIGNvbXBsZXRpbmcKKyAqICZkcm1fZW5jb2Rlcl9oZWxwZXJfZnVuY3MuYXRvbWljX2Vu YWJsZQorICoKKyAqIE5vdGU6IHRoZSBicmlkZ2UgcGFzc2VkIHNob3VsZCBiZSB0aGUgb25lIGNs b3Nlc3QgdG8gdGhlIGVuY29kZXIKKyAqLwordm9pZCBkcm1fYXRvbWljX2JyaWRnZV9lbmFibGUo c3RydWN0IGRybV9icmlkZ2UgKmJyaWRnZSwKKwkJCSAgICAgIHN0cnVjdCBkcm1fYXRvbWljX3N0 YXRlICpzdGF0ZSkKK3sKKwlpZiAoIWJyaWRnZSkKKwkJcmV0dXJuOworCisJaWYgKGJyaWRnZS0+ ZnVuY3MtPmF0b21pY19lbmFibGUpCisJCWJyaWRnZS0+ZnVuY3MtPmF0b21pY19lbmFibGUoYnJp ZGdlLCBzdGF0ZSk7CisJZWxzZSBpZiAoYnJpZGdlLT5mdW5jcy0+ZW5hYmxlKQorCQlicmlkZ2Ut PmZ1bmNzLT5lbmFibGUoYnJpZGdlKTsKKworCWRybV9hdG9taWNfYnJpZGdlX2VuYWJsZShicmlk Z2UtPm5leHQsIHN0YXRlKTsKK30KK0VYUE9SVF9TWU1CT0woZHJtX2F0b21pY19icmlkZ2VfZW5h YmxlKTsKKwogI2lmZGVmIENPTkZJR19PRgogLyoqCiAgKiBvZl9kcm1fZmluZF9icmlkZ2UgLSBm aW5kIHRoZSBicmlkZ2UgY29ycmVzcG9uZGluZyB0byB0aGUgZGV2aWNlIG5vZGUgaW4KZGlmZiAt LWdpdCBhL2luY2x1ZGUvZHJtL2RybV9icmlkZ2UuaCBiL2luY2x1ZGUvZHJtL2RybV9icmlkZ2Uu aAppbmRleCBkNDQyODkxM2E0ZTEuLjMyMjgwMTg4NDgxNCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9k cm0vZHJtX2JyaWRnZS5oCisrKyBiL2luY2x1ZGUvZHJtL2RybV9icmlkZ2UuaApAQCAtMjM3LDYg KzIzNywxMDMgQEAgc3RydWN0IGRybV9icmlkZ2VfZnVuY3MgewogCSAqIFRoZSBlbmFibGUgY2Fs bGJhY2sgaXMgb3B0aW9uYWwuCiAJICovCiAJdm9pZCAoKmVuYWJsZSkoc3RydWN0IGRybV9icmlk Z2UgKmJyaWRnZSk7CisKKwkvKioKKwkgKiBAYXRvbWljX3ByZV9lbmFibGU6CisJICoKKwkgKiBU aGlzIGNhbGxiYWNrIHNob3VsZCBlbmFibGUgdGhlIGJyaWRnZS4gSXQgaXMgY2FsbGVkIHJpZ2h0 IGJlZm9yZQorCSAqIHRoZSBwcmVjZWRpbmcgZWxlbWVudCBpbiB0aGUgZGlzcGxheSBwaXBlIGlz IGVuYWJsZWQuIElmIHRoZQorCSAqIHByZWNlZGluZyBlbGVtZW50IGlzIGEgYnJpZGdlIHRoaXMg bWVhbnMgaXQncyBjYWxsZWQgYmVmb3JlIHRoYXQKKwkgKiBicmlkZ2UncyBAYXRvbWljX3ByZV9l bmFibGUgb3IgQHByZV9lbmFibGUgZnVuY3Rpb24uIElmIHRoZSBwcmVjZWRpbmcKKwkgKiBlbGVt ZW50IGlzIGEgJmRybV9lbmNvZGVyIGl0J3MgY2FsbGVkIHJpZ2h0IGJlZm9yZSB0aGUgZW5jb2Rl cidzCisJICogJmRybV9lbmNvZGVyX2hlbHBlcl9mdW5jcy5hdG9taWNfZW5hYmxlIGhvb2suCisJ ICoKKwkgKiBUaGUgZGlzcGxheSBwaXBlIChpLmUuIGNsb2NrcyBhbmQgdGltaW5nIHNpZ25hbHMp IGZlZWRpbmcgdGhpcyBicmlkZ2UKKwkgKiB3aWxsIG5vdCB5ZXQgYmUgcnVubmluZyB3aGVuIHRo aXMgY2FsbGJhY2sgaXMgY2FsbGVkLiBUaGUgYnJpZGdlIG11c3QKKwkgKiBub3QgZW5hYmxlIHRo ZSBkaXNwbGF5IGxpbmsgZmVlZGluZyB0aGUgbmV4dCBicmlkZ2UgaW4gdGhlIGNoYWluIChpZgor CSAqIHRoZXJlIGlzIG9uZSkgd2hlbiB0aGlzIGNhbGxiYWNrIGlzIGNhbGxlZC4KKwkgKgorCSAq IE5vdGUgdGhhdCB0aGlzIGZ1bmN0aW9uIHdpbGwgb25seSBiZSBpbnZva2VkIGluIHRoZSBjb250 ZXh0IG9mIGFuCisJICogYXRvbWljIGNvbW1pdC4gSXQgd2lsbCBub3QgYmUgaW52b2tlZCBmcm9t ICZkcm1fYnJpZGdlX3ByZV9lbmFibGUuIEl0CisJICogd291bGQgYmUgcHJ1ZGVudCB0byBhbHNv IHByb3ZpZGUgYW4gaW1wbGVtZW50YXRpb24gb2YgQHByZV9lbmFibGUgaWYKKwkgKiB5b3UgYXJl IGV4cGVjdGluZyBkcml2ZXIgY2FsbHMgaW50byAmZHJtX2JyaWRnZV9wcmVfZW5hYmxlLgorCSAq CisJICogVGhlIEBhdG9taWNfcHJlX2VuYWJsZSBjYWxsYmFjayBpcyBvcHRpb25hbC4KKwkgKi8K Kwl2b2lkICgqYXRvbWljX3ByZV9lbmFibGUpKHN0cnVjdCBkcm1fYnJpZGdlICpicmlkZ2UsCisJ CQkJICBzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUpOworCisJLyoqCisJICogQGF0b21p Y19lbmFibGU6CisJICoKKwkgKiBUaGlzIGNhbGxiYWNrIHNob3VsZCBlbmFibGUgdGhlIGJyaWRn ZS4gSXQgaXMgY2FsbGVkIHJpZ2h0IGFmdGVyCisJICogdGhlIHByZWNlZGluZyBlbGVtZW50IGlu IHRoZSBkaXNwbGF5IHBpcGUgaXMgZW5hYmxlZC4gSWYgdGhlCisJICogcHJlY2VkaW5nIGVsZW1l bnQgaXMgYSBicmlkZ2UgdGhpcyBtZWFucyBpdCdzIGNhbGxlZCBhZnRlciB0aGF0CisJICogYnJp ZGdlJ3MgQGF0b21pY19lbmFibGUgb3IgQGVuYWJsZSBmdW5jdGlvbi4gSWYgdGhlIHByZWNlZGlu ZyBlbGVtZW50CisJICogaXMgYSAmZHJtX2VuY29kZXIgaXQncyBjYWxsZWQgcmlnaHQgYWZ0ZXIg dGhlIGVuY29kZXIncworCSAqICZkcm1fZW5jb2Rlcl9oZWxwZXJfZnVuY3MuYXRvbWljX2VuYWJs ZSBob29rLgorCSAqCisJICogVGhlIGJyaWRnZSBjYW4gYXNzdW1lIHRoYXQgdGhlIGRpc3BsYXkg cGlwZSAoaS5lLiBjbG9ja3MgYW5kIHRpbWluZworCSAqIHNpZ25hbHMpIGZlZWRpbmcgaXQgaXMg cnVubmluZyB3aGVuIHRoaXMgY2FsbGJhY2sgaXMgY2FsbGVkLiBUaGlzCisJICogY2FsbGJhY2sg bXVzdCBlbmFibGUgdGhlIGRpc3BsYXkgbGluayBmZWVkaW5nIHRoZSBuZXh0IGJyaWRnZSBpbiB0 aGUKKwkgKiBjaGFpbiBpZiB0aGVyZSBpcyBvbmUuCisJICoKKwkgKiBOb3RlIHRoYXQgdGhpcyBm dW5jdGlvbiB3aWxsIG9ubHkgYmUgaW52b2tlZCBpbiB0aGUgY29udGV4dCBvZiBhbgorCSAqIGF0 b21pYyBjb21taXQuIEl0IHdpbGwgbm90IGJlIGludm9rZWQgZnJvbSAmZHJtX2JyaWRnZV9lbmFi bGUuIEl0CisJICogd291bGQgYmUgcHJ1ZGVudCB0byBhbHNvIHByb3ZpZGUgYW4gaW1wbGVtZW50 YXRpb24gb2YgQGVuYWJsZSBpZgorCSAqIHlvdSBhcmUgZXhwZWN0aW5nIGRyaXZlciBjYWxscyBp bnRvICZkcm1fYnJpZGdlX2VuYWJsZS4KKwkgKgorCSAqIFRoZSBlbmFibGUgY2FsbGJhY2sgaXMg b3B0aW9uYWwuCisJICovCisJdm9pZCAoKmF0b21pY19lbmFibGUpKHN0cnVjdCBkcm1fYnJpZGdl ICpicmlkZ2UsCisJCQkgICAgICBzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUpOworCS8q KgorCSAqIEBhdG9taWNfZGlzYWJsZToKKwkgKgorCSAqIFRoaXMgY2FsbGJhY2sgc2hvdWxkIGRp c2FibGUgdGhlIGJyaWRnZS4gSXQgaXMgY2FsbGVkIHJpZ2h0IGJlZm9yZQorCSAqIHRoZSBwcmVj ZWRpbmcgZWxlbWVudCBpbiB0aGUgZGlzcGxheSBwaXBlIGlzIGRpc2FibGVkLiBJZiB0aGUKKwkg KiBwcmVjZWRpbmcgZWxlbWVudCBpcyBhIGJyaWRnZSB0aGlzIG1lYW5zIGl0J3MgY2FsbGVkIGJl Zm9yZSB0aGF0CisJICogYnJpZGdlJ3MgQGF0b21pY19kaXNhYmxlIG9yIEBkaXNhYmxlIHZmdW5j LiBJZiB0aGUgcHJlY2VkaW5nIGVsZW1lbnQKKwkgKiBpcyBhICZkcm1fZW5jb2RlciBpdCdzIGNh bGxlZCByaWdodCBiZWZvcmUgdGhlCisJICogJmRybV9lbmNvZGVyX2hlbHBlcl9mdW5jcy5hdG9t aWNfZGlzYWJsZSBob29rLgorCSAqCisJICogVGhlIGJyaWRnZSBjYW4gYXNzdW1lIHRoYXQgdGhl IGRpc3BsYXkgcGlwZSAoaS5lLiBjbG9ja3MgYW5kIHRpbWluZworCSAqIHNpZ25hbHMpIGZlZWRp bmcgaXQgaXMgc3RpbGwgcnVubmluZyB3aGVuIHRoaXMgY2FsbGJhY2sgaXMgY2FsbGVkLgorCSAq CisJICogTm90ZSB0aGF0IHRoaXMgZnVuY3Rpb24gd2lsbCBvbmx5IGJlIGludm9rZWQgaW4gdGhl IGNvbnRleHQgb2YgYW4KKwkgKiBhdG9taWMgY29tbWl0LiBJdCB3aWxsIG5vdCBiZSBpbnZva2Vk IGZyb20gJmRybV9icmlkZ2VfZGlzYWJsZS4gSXQKKwkgKiB3b3VsZCBiZSBwcnVkZW50IHRvIGFs c28gcHJvdmlkZSBhbiBpbXBsZW1lbnRhdGlvbiBvZiBAZGlzYWJsZSBpZgorCSAqIHlvdSBhcmUg ZXhwZWN0aW5nIGRyaXZlciBjYWxscyBpbnRvICZkcm1fYnJpZGdlX2Rpc2FibGUuCisJICoKKwkg KiBUaGUgZGlzYWJsZSBjYWxsYmFjayBpcyBvcHRpb25hbC4KKwkgKi8KKwl2b2lkICgqYXRvbWlj X2Rpc2FibGUpKHN0cnVjdCBkcm1fYnJpZGdlICpicmlkZ2UsCisJCQkgICAgICAgc3RydWN0IGRy bV9hdG9taWNfc3RhdGUgKnN0YXRlKTsKKworCS8qKgorCSAqIEBhdG9taWNfcG9zdF9kaXNhYmxl OgorCSAqCisJICogVGhpcyBjYWxsYmFjayBzaG91bGQgZGlzYWJsZSB0aGUgYnJpZGdlLiBJdCBp cyBjYWxsZWQgcmlnaHQgYWZ0ZXIgdGhlCisJICogcHJlY2VkaW5nIGVsZW1lbnQgaW4gdGhlIGRp c3BsYXkgcGlwZSBpcyBkaXNhYmxlZC4gSWYgdGhlIHByZWNlZGluZworCSAqIGVsZW1lbnQgaXMg YSBicmlkZ2UgdGhpcyBtZWFucyBpdCdzIGNhbGxlZCBhZnRlciB0aGF0IGJyaWRnZSdzCisJICog QGF0b21pY19wb3N0X2Rpc2FibGUgb3IgQHBvc3RfZGlzYWJsZSBmdW5jdGlvbi4gSWYgdGhlIHBy ZWNlZGluZworCSAqIGVsZW1lbnQgaXMgYSAmZHJtX2VuY29kZXIgaXQncyBjYWxsZWQgcmlnaHQg YWZ0ZXIgdGhlIGVuY29kZXIncworCSAqICZkcm1fZW5jb2Rlcl9oZWxwZXJfZnVuY3MuYXRvbWlj X2Rpc2FibGUgaG9vay4KKwkgKgorCSAqIFRoZSBicmlkZ2UgbXVzdCBhc3N1bWUgdGhhdCB0aGUg ZGlzcGxheSBwaXBlIChpLmUuIGNsb2NrcyBhbmQgdGltaW5nCisJICogc2lnbmFscykgZmVlZGlu ZyBpdCBpcyBubyBsb25nZXIgcnVubmluZyB3aGVuIHRoaXMgY2FsbGJhY2sgaXMKKwkgKiBjYWxs ZWQuCisJICoKKwkgKiBOb3RlIHRoYXQgdGhpcyBmdW5jdGlvbiB3aWxsIG9ubHkgYmUgaW52b2tl ZCBpbiB0aGUgY29udGV4dCBvZiBhbgorCSAqIGF0b21pYyBjb21taXQuIEl0IHdpbGwgbm90IGJl IGludm9rZWQgZnJvbSAmZHJtX2JyaWRnZV9wb3N0X2Rpc2FibGUuCisJICogSXQgd291bGQgYmUg cHJ1ZGVudCB0byBhbHNvIHByb3ZpZGUgYW4gaW1wbGVtZW50YXRpb24gb2YKKwkgKiBAcG9zdF9k aXNhYmxlIGlmIHlvdSBhcmUgZXhwZWN0aW5nIGRyaXZlciBjYWxscyBpbnRvCisJICogJmRybV9i cmlkZ2VfcG9zdF9kaXNhYmxlLgorCSAqCisJICogVGhlIHBvc3RfZGlzYWJsZSBjYWxsYmFjayBp cyBvcHRpb25hbC4KKwkgKi8KKwl2b2lkICgqYXRvbWljX3Bvc3RfZGlzYWJsZSkoc3RydWN0IGRy bV9icmlkZ2UgKmJyaWRnZSwKKwkJCQkgICAgc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRl KTsKIH07CiAKIC8qKgpAQCAtMzE0LDYgKzQxMSwxNSBAQCB2b2lkIGRybV9icmlkZ2VfbW9kZV9z ZXQoc3RydWN0IGRybV9icmlkZ2UgKmJyaWRnZSwKIHZvaWQgZHJtX2JyaWRnZV9wcmVfZW5hYmxl KHN0cnVjdCBkcm1fYnJpZGdlICpicmlkZ2UpOwogdm9pZCBkcm1fYnJpZGdlX2VuYWJsZShzdHJ1 Y3QgZHJtX2JyaWRnZSAqYnJpZGdlKTsKIAordm9pZCBkcm1fYXRvbWljX2JyaWRnZV9kaXNhYmxl KHN0cnVjdCBkcm1fYnJpZGdlICpicmlkZ2UsCisJCQkgICAgICAgc3RydWN0IGRybV9hdG9taWNf c3RhdGUgKnN0YXRlKTsKK3ZvaWQgZHJtX2F0b21pY19icmlkZ2VfcG9zdF9kaXNhYmxlKHN0cnVj dCBkcm1fYnJpZGdlICpicmlkZ2UsCisJCQkJICAgIHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpz dGF0ZSk7Cit2b2lkIGRybV9hdG9taWNfYnJpZGdlX3ByZV9lbmFibGUoc3RydWN0IGRybV9icmlk Z2UgKmJyaWRnZSwKKwkJCQkgIHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSk7Cit2b2lk IGRybV9hdG9taWNfYnJpZGdlX2VuYWJsZShzdHJ1Y3QgZHJtX2JyaWRnZSAqYnJpZGdlLAorCQkJ ICAgICAgc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlKTsKKwogI2lmZGVmIENPTkZJR19E Uk1fUEFORUxfQlJJREdFCiBzdHJ1Y3QgZHJtX2JyaWRnZSAqZHJtX3BhbmVsX2JyaWRnZV9hZGQo c3RydWN0IGRybV9wYW5lbCAqcGFuZWwsCiAJCQkJCXUzMiBjb25uZWN0b3JfdHlwZSk7Ci0tIApT ZWFuIFBhdWwsIFNvZnR3YXJlIEVuZ2luZWVyLCBHb29nbGUgLyBDaHJvbWl1bSBPUwoKX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxp bmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJl ZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVs