From mboxrd@z Thu Jan 1 00:00:00 1970 From: Shashank Sharma Subject: [PATCH v4 4/6] drm: scrambling support in drm layer Date: Wed, 22 Feb 2017 18:48:29 +0530 Message-ID: <1487769511-17359-5-git-send-email-shashank.sharma@intel.com> References: <1487769511-17359-1-git-send-email-shashank.sharma@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1487769511-17359-1-git-send-email-shashank.sharma@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: dri-devel@lists.freedesktop.org, intel-gfx@lists.freedesktop.org, jose.abreu@synopsys.com, jani.nikula@linux.intel.com, maarten.lankhorst@linux.intel.com, ville.syrjala@linux.intel.com Cc: daniel.vetter@intel.com, treding@nvidia.com List-Id: intel-gfx@lists.freedesktop.org SERNSSAyLjAgc3BlYyBtYW5kYXRlcyBzY3JhbWJsaW5nIGZvciBtb2RlcyB3aXRoIHBpeGVsIGNs b2NrIGhpZ2hlcgp0aGFuIDM0MCBNSHouIFRoaXMgcGF0Y2ggYWRkcyBmZXcgbmV3IGZ1bmN0aW9u cyBpbiBkcm0gbGF5ZXIgZm9yCmNvcmUgZHJpdmVycyB0byBlbmFibGUvZGlzYWJsZSBzY3JhbWJs aW5nLgoKVGhpcyBwYXRjaCBhZGRzOgotIEEgZnVuY3Rpb24gdG8gZGV0ZWN0IHNjcmFtYmxpbmcg c3VwcG9ydCBwYXJzaW5nIEhGLVZTREIKLSBBIGZ1bmN0aW9uIHRvIGNoZWNrIHNjcmFtYmxpbmcg c3RhdHVzIHJ1bnRpbWUgdXNpbmcgU0NEQyByZWFkLgotIFR3byBmdW5jdGlvbnMgdG8gZW5hYmxl L2Rpc2FibGUgc2NyYW1ibGluZyB1c2luZyBTQ0RDIHJlYWQvd3JpdGUuCi0gRmV3IG5ldyBib29s cyB0byByZWZsZWN0IHNjcmFtYmxpbmcgc3VwcG9ydCBhbmQgc3RhdHVzLgoKVjI6IEFkZHJlc3Nl ZCByZXZpZXcgY29tbWVudHMgZnJvbSBUaGllcnJ5LCBWaWxsZSBhbmQgRGhpbmFrYXJhbgpUaGll cnJ5OgotIE1oeiAtPiBNSHogaW4gY29tbWVudHMgYW5kIGNvbW1pdCBtZXNzYWdlLgotIGkyYyAt PiBJMkMgaW4gY29tbWVudHMuCi0gRml4IHRoZSBmdW5jdGlvbiBkb2N1bWVudGF0aW9ucywga2Vl cCBpbiBzeW5jIHdpdGggZHJtX3NjZGNfaGVscGVyLmMKLSBkcm1fY29ubmVjdG9yIC0+IERSTSBj b25uZWN0b3IuCi0gQ3JlYXRlIHN0cnVjdHVyZSBmb3IgU0NEQywgYW5kIHNhdmUgc2NyYW1ibGlu ZyBzdGF0dXMgaW5zaWRlIHRoYXQsCiAgaW4gYSBzdWItc3RydWN0dXJlLgotIENhbGwgdGhpcyBz dWItc3RydWN0dXJlIHNjcmFtYmxpbmcgaW5zdGVhZCBvZiBzY3JfaW5mby4KLSBsb3dfcmF0ZXMg LT4gbG93X2Nsb2NrcyBpbiBzY3JhbWJsaW5nIHN0YXR1cyBzdHJ1Y3R1cmUuCi0gU3RvcmUgdGhl IHJldHVybiB2YWx1ZSBvZiBJMkMgcmVhZC93cml0ZSBhbmQgcHJpbnQgdGhlIGVycm9yIGNvZGUK ICBpbiBjYXNlIG9mIGZhaWx1cmUuCgpUaGllcnJ5IGFuZCBWaWxsZToKLSBNb3ZlIHRoZSBzY3Jh bWJsaW5nIGVuYWJsZS9kaXNhYmxlL3F1ZXJ5IGZ1bmN0aW9ucyBpbgogIGRybV9zY2RjX2hlbHBl ci5jIGZpbGUuCi0gQWRkIGRybV9TQ0RDIHByZWZpeCBmb3IgdGhlIGZ1bmN0aW9ucy4KLSBPcHRp bWl6ZSB0aGUgcmV0dXJuIHN0YXRlbWVudCBmcm9tIGZ1bmN0aW9uCiAgZHJtX1NDRENfY2hlY2tf c2NyYW1ibGluZ19zdGF0dXMuCgpWaWxsZToKLSBEb250IG92ZXJ3cml0ZSBzYXZlZCBtYXggVE1E UyBjbG9jayB2YWx1ZSBpbiBkaXNwbGF5X2luZm8sCiAgaWYgbWF4IHRtZHMgY2xvY2sgZnJvbSBI Ri1WU0RCIGlzIG5vdCA+IDM0MCBNSHouCi0gZHJtX2RldGVjdF9oZG1pX3NjcmFtYmxpbmcgLT4g ZHJtX3BhcnNlX2hkbWlfZm9ydW1fdnNkYi4KLSBSZW1vdmUgZHluYW1pYyB0cmFja2luZyBvZiBT Q0RDIHN0YXR1cyBmcm9tIERSTSBsYXllciwgZm9yY2UgYm9vbC4KLSBQcm9ncmFtIGNsb2NrIHJh dGlvIGJpdCBhbHNvLCB3aGlsZSBlbmFibGluZyBzY3JhbWJsaW5nLgoKRGhpbmFrYXJhbjoKLSBB ZGQgYSBjb21tZW50IGFib3V0ICo1MDAwIHdoaWxlIGV4dHJhY3RpbmcgbWF4IGNsb2NrIHN1cHBv cnRlZC4KClYzOiBBZGRyZXNzZWQgcmV2aWV3IGNvbW1lbnRzIGZyb20gSm9zZS4KLSBDcmVhdGUg c2VwYXJhdGUgZnVuY3Rpb25zIHRvIGVuYWJsZSBzY3JhbWJsaW5nIGFuZCB0byBzZXQgVE1EUwog IGNsb2NrL2NoYXJhY3RlciByYXRlIHJhdGlvLgoKVjQ6IFJlYmFzZQoKU2lnbmVkLW9mZi1ieTog U2hhc2hhbmsgU2hhcm1hIDxzaGFzaGFuay5zaGFybWFAaW50ZWwuY29tPgotLS0KIGRyaXZlcnMv Z3B1L2RybS9kcm1fZWRpZC5jICAgICAgICB8ICAzMyArKysrKysrLQogZHJpdmVycy9ncHUvZHJt L2RybV9zY2RjX2hlbHBlci5jIHwgMTY0ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrCiBpbmNsdWRlL2RybS9kcm1fY29ubmVjdG9yLmggICAgICAgfCAgMTkgKysrKysKIGlu Y2x1ZGUvZHJtL2RybV9lZGlkLmggICAgICAgICAgICB8ICAgNiArLQogaW5jbHVkZS9kcm0vZHJt X3NjZGNfaGVscGVyLmggICAgIHwgIDQxICsrKysrKysrKysKIDUgZmlsZXMgY2hhbmdlZCwgMjYx IGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2RybV9lZGlkLmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2VkaWQuYwppbmRleCA2M2I3OWJl Li4xZTE4YzBhIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2VkaWQuYworKysgYi9k cml2ZXJzL2dwdS9kcm0vZHJtX2VkaWQuYwpAQCAtMzcsNiArMzcsNyBAQAogI2luY2x1ZGUgPGRy bS9kcm1fZWRpZC5oPgogI2luY2x1ZGUgPGRybS9kcm1fZW5jb2Rlci5oPgogI2luY2x1ZGUgPGRy bS9kcm1fZGlzcGxheWlkLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9zY2RjX2hlbHBlci5oPgogCiAj aW5jbHVkZSAiZHJtX2NydGNfaW50ZXJuYWwuaCIKIApAQCAtMzgxMSwxMyArMzgxMiw0MyBAQCBl bnVtIGhkbWlfcXVhbnRpemF0aW9uX3JhbmdlCiBzdGF0aWMgdm9pZCBkcm1fcGFyc2VfaGRtaV9m b3J1bV92c2RiKHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IsCiAJCQkJIGNvbnN0IHU4 ICpoZl92c2RiKQogewotCXN0cnVjdCBkcm1faGRtaV9pbmZvICpoZG1pID0gJmNvbm5lY3Rvci0+ ZGlzcGxheV9pbmZvLmhkbWk7CisJc3RydWN0IGRybV9kaXNwbGF5X2luZm8gKmRpc3BsYXkgPSAm Y29ubmVjdG9yLT5kaXNwbGF5X2luZm87CisJc3RydWN0IGRybV9oZG1pX2luZm8gKmhkbWkgPSAm ZGlzcGxheS0+aGRtaTsKIAogCWlmIChoZl92c2RiWzZdICYgMHg4MCkgewogCQloZG1pLT5zY2Rj LnN1cHBvcnRlZCA9IHRydWU7CiAJCWlmIChoZl92c2RiWzZdICYgMHg0MCkKIAkJCWhkbWktPnNj ZGMucmVhZF9yZXF1ZXN0ID0gdHJ1ZTsKIAl9CisKKwkvKgorCSAqIEFsbCBIRE1JIDIuMCBtb25p dG9ycyBtdXN0IHN1cHBvcnQgc2NyYW1ibGluZyBhdCByYXRlcyA+IDM0MCBNSHouCisJICogQW5k IGFzIHBlciB0aGUgc3BlYywgdGhyZWUgZmFjdG9ycyBjb25maXJtIHRoaXM6CisJICogKiBBdmFp bGFiaWxpdHkgb2YgYSBIRi1WU0RCIGJsb2NrIGluIEVESUQgKGNoZWNrKQorCSAqICogTm9uIHpl cm8gTWF4X1RNRFNfQ2hhcl9SYXRlIGZpbGVkIGluIEhGLVZTREIgKGxldCdzIGNoZWNrKQorCSAq ICogU0NEQyBzdXBwb3J0IGF2YWlsYWJsZSAobGV0J3MgY2hlY2spCisJICogTGV0cyBjaGVjayBp dCBvdXQuCisJICovCisKKwlpZiAoaGZfdnNkYls1XSkgeworCQkvKiBtYXggY2xvY2sgaXMgNTAw MCBLSHogdGltZXMgYmxvY2sgdmFsdWUgKi8KKwkJdTMyIG1heF90bWRzX2Nsb2NrID0gaGZfdnNk Yls1XSAqIDUwMDA7CisJCXN0cnVjdCBkcm1fc2NkYyAqc2NkYyA9ICZoZG1pLT5zY2RjOworCisJ CWlmIChtYXhfdG1kc19jbG9jayA+IDM0MDAwMCkgeworCQkJZGlzcGxheS0+bWF4X3RtZHNfY2xv Y2sgPSBtYXhfdG1kc19jbG9jazsKKwkJCURSTV9ERUJVR19LTVMoIkhGLVZTREI6IG1heCBUTURT IGNsb2NrICVkIGtIelxuIiwKKwkJCQlkaXNwbGF5LT5tYXhfdG1kc19jbG9jayk7CisJCX0KKwor CQlpZiAoc2NkYy0+c3VwcG9ydGVkKSB7CisJCQlzY2RjLT5zY3JhbWJsaW5nLnN1cHBvcnRlZCA9 IHRydWU7CisKKwkJCS8qIEZldyBzaW5rcyBzdXBwb3J0IHNjcmFtYmxpbmcgZm9yIGNsb2tzIDwg MzQwTSAqLworCQkJaWYgKChoZl92c2RiWzZdICYgMHg4KSkKKwkJCQlzY2RjLT5zY3JhbWJsaW5n Lmxvd19yYXRlcyA9IHRydWU7CisJCX0KKwl9CiB9CiAKIHN0YXRpYyB2b2lkIGRybV9wYXJzZV9o ZG1pX2RlZXBfY29sb3JfaW5mbyhzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yLApkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9zY2RjX2hlbHBlci5jIGIvZHJpdmVycy9ncHUv ZHJtL2RybV9zY2RjX2hlbHBlci5jCmluZGV4IGZlMGUxMjEuLmMwY2Y4MmIgMTAwNjQ0Ci0tLSBh L2RyaXZlcnMvZ3B1L2RybS9kcm1fc2NkY19oZWxwZXIuYworKysgYi9kcml2ZXJzL2dwdS9kcm0v ZHJtX3NjZGNfaGVscGVyLmMKQEAgLTIyLDggKzIyLDEwIEBACiAgKi8KIAogI2luY2x1ZGUgPGxp bnV4L3NsYWIuaD4KKyNpbmNsdWRlIDxsaW51eC9kZWxheS5oPgogCiAjaW5jbHVkZSA8ZHJtL2Ry bV9zY2RjX2hlbHBlci5oPgorI2luY2x1ZGUgPGRybS9kcm1QLmg+CiAKIC8qKgogICogRE9DOiBz Y2RjIGhlbHBlcnMKQEAgLTEwOSwzICsxMTEsMTY1IEBAIHNzaXplX3QgZHJtX3NjZGNfd3JpdGUo c3RydWN0IGkyY19hZGFwdGVyICphZGFwdGVyLCB1OCBvZmZzZXQsCiAJcmV0dXJuIGVycjsKIH0K IEVYUE9SVF9TWU1CT0woZHJtX3NjZGNfd3JpdGUpOworCisvKioKKyAqIGRybV9zY2RjX2NoZWNr X3NjcmFtYmxpbmdfc3RhdHVzIC0gd2hhdCBpcyBzdGF0dXMgb2Ygc2NyYW1ibGluZz8KKyAqIEBh ZGFwdGVyOiBJMkMgYWRhcHRlciBmb3IgRERDIGNoYW5uZWwKKyAqCisgKiBSZWFkcyB0aGUgc2Ny YW1ibGVyIHN0YXR1cyBvdmVyIFNDREMsIGFuZCBjaGVja3MgdGhlCisgKiBzY3JhbWJsaW5nIHN0 YXR1cy4KKyAqCisgKiBSZXR1cm5zOgorICogVHJ1ZSBpZiB0aGUgc2NyYW1ibGluZyBpcyBlbmFi bGVkLCBmYWxzZSBvdGhlcndpc2UuCisgKi8KKworYm9vbCBkcm1fc2NkY19jaGVja19zY3JhbWJs aW5nX3N0YXR1cyhzdHJ1Y3QgaTJjX2FkYXB0ZXIgKmFkYXB0ZXIpCit7CisJdTggc3RhdHVzOwor CWludCByZXQ7CisKKwlyZXQgPSBkcm1fc2NkY19yZWFkYihhZGFwdGVyLCBTQ0RDX1NDUkFNQkxF Ul9TVEFUVVMsICZzdGF0dXMpOworCWlmIChyZXQgPCAwKSB7CisJCURSTV9FUlJPUigiRmFpbGVk IHRvIHJlYWQgc2NyYW1ibGluZyBzdGF0dXMsIGVycm9yICVkXG4iLCByZXQpOworCQlyZXR1cm4g ZmFsc2U7CisJfQorCisJcmV0dXJuIHN0YXR1cyAmIFNDRENfU0NSQU1CTElOR19TVEFUVVM7Cit9 CitFWFBPUlRfU1lNQk9MKGRybV9zY2RjX2NoZWNrX3NjcmFtYmxpbmdfc3RhdHVzKTsKKworLyoq CisgKiBkcm1fc2NkY19lbmFibGVfc2NyYW1ibGluZyAtIGVuYWJsZSBzY3JhbWJsaW5nCisgKiBA YWRhcHRlcjogSTJDIGFkYXB0ZXIgZm9yIEREQyBjaGFubmVsCisgKgorICogV3JpdGVzIHRoZSBU TURTIGNvbmZpZyBvdmVyIFNDREMgY2hhbm5lbCwgYW5kIGVuYWJsZXMgc2NyYW1ibGluZworICog UmV0dXJuczoKKyAqIFRydWUgaWYgc2NyYW1ibGluZyBpcyBzdWNjZXNzZnVsbHkgZW5hYmxlZCwg ZmFsc2Ugb3RoZXJ3aXNlLgorICovCisKK2Jvb2wgZHJtX3NjZGNfZW5hYmxlX3NjcmFtYmxpbmco c3RydWN0IGkyY19hZGFwdGVyICphZGFwdGVyKQoreworCXU4IGNvbmZpZzsKKwlpbnQgcmV0Owor CisJcmV0ID0gZHJtX3NjZGNfcmVhZGIoYWRhcHRlciwgU0NEQ19UTURTX0NPTkZJRywgJmNvbmZp Zyk7CisJaWYgKHJldCA8IDApIHsKKwkJRFJNX0VSUk9SKCJGYWlsZWQgdG8gcmVhZCB0bWRzIGNv bmZpZywgZXJyPSVkXG4iLCByZXQpOworCQlyZXR1cm4gZmFsc2U7CisJfQorCisJY29uZmlnIHw9 IFNDRENfU0NSQU1CTElOR19FTkFCTEU7CisKKwlyZXQgPSBkcm1fc2NkY193cml0ZWIoYWRhcHRl ciwgU0NEQ19UTURTX0NPTkZJRywgY29uZmlnKTsKKwlpZiAocmV0IDwgMCkgeworCQlEUk1fRVJS T1IoIkZhaWxlZCB0byBlbmFibGUgc2NyYW1ibGluZywgZXJyb3IgJWRcbiIsIHJldCk7CisJCXJl dHVybiBmYWxzZTsKKwl9CisKKwlyZXR1cm4gdHJ1ZTsKK30KK0VYUE9SVF9TWU1CT0woZHJtX3Nj ZGNfZW5hYmxlX3NjcmFtYmxpbmcpOworCisvKioKKyAqIGRybV9zY2RjX2Rpc2FibGVfc2NyYW1i bGluZyAtIGRpc2FibGUgc2NyYW1ibGluZworICogQGFkYXB0ZXI6IEkyQyBhZGFwdGVyIGZvciBE REMgY2hhbm5lbAorICoKKyAqIFdyaXRlIHRoZSBUTURTIGNvbmZpZyBvdmVyIFNDREMgY2hhbm5l bCwgYW5kIGRpc2FibGUgc2NyYW1ibGluZworICogUmV0dXJuOiBUcnVlIGlmIHNjcmFtYmxpbmcg aXMgc3VjY2Vzc2Z1bGx5IGRpc2FibGVkLCBmYWxzZSBvdGhlcndpc2UuCisgKi8KK2Jvb2wgZHJt X3NjZGNfZGlzYWJsZV9zY3JhbWJsaW5nKHN0cnVjdCBpMmNfYWRhcHRlciAqYWRhcHRlcikKK3sK Kwl1OCBjb25maWc7CisJaW50IHJldDsKKworCXJldCA9IGRybV9zY2RjX3JlYWRiKGFkYXB0ZXIs IFNDRENfVE1EU19DT05GSUcsICZjb25maWcpOworCWlmIChyZXQgPCAwKSB7CisJCURSTV9FUlJP UigiRmFpbGVkIHRvIHJlYWQgdG1kcyBjb25maWcsIGVycm9yICVkXG4iLCByZXQpOworCQlyZXR1 cm4gZmFsc2U7CisJfQorCisJY29uZmlnICY9IH5TQ0RDX1NDUkFNQkxJTkdfRU5BQkxFOworCisJ cmV0ID0gZHJtX3NjZGNfd3JpdGViKGFkYXB0ZXIsIFNDRENfVE1EU19DT05GSUcsIGNvbmZpZyk7 CisJaWYgKHJldCA8IDApIHsKKwkJRFJNX0VSUk9SKCJGYWlsZWQgdG8gZW5hYmxlIHNjcmFtYmxp bmcsIGVycm9yICVkXG4iLCByZXQpOworCQlyZXR1cm4gZmFsc2U7CisJfQorCisJcmV0dXJuIHRy dWU7Cit9CitFWFBPUlRfU1lNQk9MKGRybV9zY2RjX2Rpc2FibGVfc2NyYW1ibGluZyk7CisKKy8q KgorICogZHJtX3NjZGNfc2V0X2hpZ2hfdG1kc19jbG9ja19yYXRpbyAtIHNldCBUTURTIGNsb2Nr IHJhdGlvCisgKiBAYWRhcHRlcjogSTJDIGFkYXB0ZXIgZm9yIEREQyBjaGFubmVsCisgKgorICog V3JpdGVzIHRoZSBUTURTIGNvbmZpZyBvdmVyIFNDREMgY2hhbm5lbCwgYW5kIHNldHMgVE1EUwor ICogY2xvY2sgcmF0aW8gdG8gMS80MAorICogUmV0dXJuczoKKyAqIFRydWUgaWYgd3JpdGUgaXMg c3VjY2Vzc2Z1bCwgZmFsc2Ugb3RoZXJ3aXNlLgorICovCitib29sIGRybV9zY2RjX3NldF9oaWdo X3RtZHNfY2xvY2tfcmF0aW8oc3RydWN0IGkyY19hZGFwdGVyICphZGFwdGVyKQoreworCXU4IGNv bmZpZzsKKwlpbnQgcmV0OworCisJcmV0ID0gZHJtX3NjZGNfcmVhZGIoYWRhcHRlciwgU0NEQ19U TURTX0NPTkZJRywgJmNvbmZpZyk7CisJaWYgKHJldCA8IDApIHsKKwkJRFJNX0VSUk9SKCJGYWls ZWQgdG8gcmVhZCB0bWRzIGNvbmZpZywgZXJyPSVkXG4iLCByZXQpOworCQlyZXR1cm4gZmFsc2U7 CisJfQorCisJY29uZmlnIHw9IFNDRENfVE1EU19CSVRfQ0xPQ0tfUkFUSU9fQllfNDA7CisKKwly ZXQgPSBkcm1fc2NkY193cml0ZWIoYWRhcHRlciwgU0NEQ19UTURTX0NPTkZJRywgY29uZmlnKTsK KwlpZiAocmV0IDwgMCkgeworCQlEUk1fRVJST1IoIkZhaWxlZCB0byBzZXQgVE1EUyBjbG9jayBy YXRpbywgZXJyb3IgJWRcbiIsIHJldCk7CisJCXJldHVybiBmYWxzZTsKKwl9CisKKwkvKgorCSAq IFRoZSBzcGVjIHNheXMgdGhhdCB0aGUgc291cmNlIHNob3VsZCB3YWl0IG1pbmltdW0gMW1zIGFu ZCBtYXhpbXVtCisJICogMTAwbXMgYWZ0ZXIgd3JpdGluZyB0aGUgVE1EUyBjb25maWcgZm9yIGNs b2NrIHJhdGlvLgorCSAqLworCXVzbGVlcF9yYW5nZSgxMDAwLCAxMDAwMDApOworCXJldHVybiB0 cnVlOworfQorRVhQT1JUX1NZTUJPTChkcm1fc2NkY19zZXRfaGlnaF90bWRzX2Nsb2NrX3JhdGlv KTsKKworLyoqCisgKiBkcm1fc2NkY19jbGVhcl9oaWdoX3RtZHNfY2xvY2tfcmF0aW8gLSBjbGVh ciBUTURTIGNsb2NrIHJhdGlvCisgKiBAYWRhcHRlcjogSTJDIGFkYXB0ZXIgZm9yIEREQyBjaGFu bmVsCisgKgorICogV3JpdGVzIHRoZSBUTURTIGNvbmZpZyBvdmVyIFNDREMgY2hhbm5lbCwgYW5k IHNldHMgVE1EUworICogY2xvY2sgcmF0aW8gYmFjayB0byAxLzEwIChmcm9tIDEvNDApCisgKiBS ZXR1cm5zOgorICogVHJ1ZSBpZiB3cml0ZSBpcyBzdWNjZXNzZnVsLCBmYWxzZSBvdGhlcndpc2Uu CisgKi8KK2Jvb2wgZHJtX3NjZGNfY2xlYXJfaGlnaF90bWRzX2Nsb2NrX3JhdGlvKHN0cnVjdCBp MmNfYWRhcHRlciAqYWRhcHRlcikKK3sKKwl1OCBjb25maWc7CisJaW50IHJldDsKKworCXJldCA9 IGRybV9zY2RjX3JlYWRiKGFkYXB0ZXIsIFNDRENfVE1EU19DT05GSUcsICZjb25maWcpOworCWlm IChyZXQgPCAwKSB7CisJCURSTV9FUlJPUigiRmFpbGVkIHRvIHJlYWQgdG1kcyBjb25maWcsIGVy cj0lZFxuIiwgcmV0KTsKKwkJcmV0dXJuIGZhbHNlOworCX0KKworCWNvbmZpZyAmPSB+U0NEQ19U TURTX0JJVF9DTE9DS19SQVRJT19CWV80MDsKKworCXJldCA9IGRybV9zY2RjX3dyaXRlYihhZGFw dGVyLCBTQ0RDX1RNRFNfQ09ORklHLCBjb25maWcpOworCWlmIChyZXQgPCAwKSB7CisJCURSTV9F UlJPUigiRmFpbGVkIHRvIGNsZWFyIFRNRFMgY2xvY2sgcmF0aW8sIGVycm9yICVkXG4iLCByZXQp OworCQlyZXR1cm4gZmFsc2U7CisJfQorCisJLyoKKwkgKiBUaGUgc3BlYyBzYXlzIHRoYXQgdGhl IHNvdXJjZSBzaG91bGQgd2FpdCBtaW5pbXVtIDFtcyBhbmQgbWF4aW11bQorCSAqIDEwMG1zIGFm dGVyIHdyaXRpbmcgdGhlIFRNRFMgY29uZmlnIGZvciBjbG9jayByYXRpby4KKwkgKi8KKwl1c2xl ZXBfcmFuZ2UoMTAwMCwgMTAwMDAwKTsKKwlyZXR1cm4gdHJ1ZTsKK30KK0VYUE9SVF9TWU1CT0wo ZHJtX3NjZGNfY2xlYXJfaGlnaF90bWRzX2Nsb2NrX3JhdGlvKTsKZGlmZiAtLWdpdCBhL2luY2x1 ZGUvZHJtL2RybV9jb25uZWN0b3IuaCBiL2luY2x1ZGUvZHJtL2RybV9jb25uZWN0b3IuaAppbmRl eCA2ZDUzMDRlLi43ODYxODMwOCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9kcm0vZHJtX2Nvbm5lY3Rv ci5oCisrKyBiL2luY2x1ZGUvZHJtL2RybV9jb25uZWN0b3IuaApAQCAtOTAsNiArOTAsMjAgQEAg ZW51bSBzdWJwaXhlbF9vcmRlciB7CiAKIH07CiAKKy8qKgorICogc3RydWN0IGRybV9zY3JhbWJs aW5nOiBzaW5rJ3Mgc2NyYW1ibGluZyBzdXBwb3J0LgorICovCitzdHJ1Y3QgZHJtX3NjcmFtYmxp bmcgeworCS8qKgorCSAqIEBzdXBwb3J0ZWQ6IHNjcmFtYmxpbmcgc3VwcG9ydGVkIGZvciByYXRl cyA+IDM0MCBNaHouCisJICovCisJYm9vbCBzdXBwb3J0ZWQ7CisJLyoqCisJICogQGxvd19yYXRl czogc2NyYW1ibGluZyBzdXBwb3J0ZWQgZm9yIHJhdGVzIDw9IDM0MCBNaHouCisJICovCisJYm9v bCBsb3dfcmF0ZXM7Cit9OworCiAvKgogICogc3RydWN0IGRybV9zY2RjIC0gSW5mb3JtYXRpb24g YWJvdXQgc2NkYyBjYXBhYmlsaXRpZXMgb2YgYSBIRE1JIDIuMCBzaW5rCiAgKgpAQCAtMTA1LDgg KzExOSwxMyBAQCBzdHJ1Y3QgZHJtX3NjZGMgewogCSAqIEByZWFkX3JlcXVlc3Q6IHNpbmsgaXMg Y2FwYWJsZSBvZiBnZW5lcmF0aW5nIHNjZGMgcmVhZCByZXF1ZXN0LgogCSAqLwogCWJvb2wgcmVh ZF9yZXF1ZXN0OworCS8qKgorCSAqIEBzY3JhbWJsaW5nOiBzaW5rJ3Mgc2NyYW1ibGluZyBjYXBh YmlsaXRpZXMKKwkgKi8KKwlzdHJ1Y3QgZHJtX3NjcmFtYmxpbmcgc2NyYW1ibGluZzsKIH07CiAK KwogLyoqCiAgKiBzdHJ1Y3QgZHJtX2hkbWlfaW5mbyAtIHJ1bnRpbWUgaW5mb3JtYXRpb24gYWJv dXQgdGhlIGNvbm5lY3RlZCBIRE1JIHNpbmsKICAqCmRpZmYgLS1naXQgYS9pbmNsdWRlL2RybS9k cm1fZWRpZC5oIGIvaW5jbHVkZS9kcm0vZHJtX2VkaWQuaAppbmRleCA0M2ZiMGFjLi5kMjRjOTc0 IDEwMDY0NAotLS0gYS9pbmNsdWRlL2RybS9kcm1fZWRpZC5oCisrKyBiL2luY2x1ZGUvZHJtL2Ry bV9lZGlkLmgKQEAgLTQ2Miw1ICs0NjIsOSBAQCB2b2lkIGRybV9lZGlkX2dldF9tb25pdG9yX25h bWUoc3RydWN0IGVkaWQgKmVkaWQsIGNoYXIgKm5hbWUsCiBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9k ZSAqZHJtX21vZGVfZmluZF9kbXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAkJCQkJICAgaW50 IGhzaXplLCBpbnQgdnNpemUsIGludCBmcmVzaCwKIAkJCQkJICAgYm9vbCByYik7Ci0KK2Jvb2wg ZHJtX2VuYWJsZV9zY3JhbWJsaW5nKHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IsCisJ CQkJc3RydWN0IGkyY19hZGFwdGVyICphZGFwdGVyLCBib29sIGZvcmNlKTsKK2Jvb2wgZHJtX2Rp c2FibGVfc2NyYW1ibGluZyhzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yLAorCQkJCXN0 cnVjdCBpMmNfYWRhcHRlciAqYWRhcHRlciwgYm9vbCBmb3JjZSk7Citib29sIGRybV9jaGVja19z Y3JhbWJsaW5nX3N0YXR1cyhzdHJ1Y3QgaTJjX2FkYXB0ZXIgKmFkYXB0ZXIpOwogI2VuZGlmIC8q IF9fRFJNX0VESURfSF9fICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2RybS9kcm1fc2NkY19oZWxw ZXIuaCBiL2luY2x1ZGUvZHJtL2RybV9zY2RjX2hlbHBlci5oCmluZGV4IDkzYjA3YmMuLmM1ZjIy MjkgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvZHJtL2RybV9zY2RjX2hlbHBlci5oCisrKyBiL2luY2x1 ZGUvZHJtL2RybV9zY2RjX2hlbHBlci5oCkBAIC0xMjksNCArMTI5LDQ1IEBAIHN0YXRpYyBpbmxp bmUgaW50IGRybV9zY2RjX3dyaXRlYihzdHJ1Y3QgaTJjX2FkYXB0ZXIgKmFkYXB0ZXIsIHU4IG9m ZnNldCwKIAlyZXR1cm4gZHJtX3NjZGNfd3JpdGUoYWRhcHRlciwgb2Zmc2V0LCAmdmFsdWUsIHNp emVvZih2YWx1ZSkpOwogfQogCisvKioKKyAqIGRybV9zY2RjX2VuYWJsZV9zY3JhbWJsaW5nIC0g ZW5hYmxlIHNjcmFtYmxpbmcKKyAqIEBhZGFwdGVyOiBJMkMgYWRhcHRlciBmb3IgRERDIGNoYW5u ZWwKKyAqCisgKiBXcml0ZXMgdGhlIFRNRFMgY29uZmlnIG92ZXIgU0NEQyBjaGFubmVsLCBhbmQg ZW5hYmxlcyBzY3JhbWJsaW5nCisgKiBSZXR1cm5zOgorICogVHJ1ZSBpZiBzY3JhbWJsaW5nIGlz IHN1Y2Nlc3NmdWxseSBlbmFibGVkLCBmYWxzZSBvdGhlcndpc2UuCisgKi8KKworYm9vbCBkcm1f c2NkY19lbmFibGVfc2NyYW1ibGluZyhzdHJ1Y3QgaTJjX2FkYXB0ZXIgKmFkYXB0ZXIpOworCisv KioKKyAqIGRybV9zY2RjX2Rpc2FibGVfc2NyYW1ibGluZyAtIGRpc2FibGUgc2NyYW1ibGluZwor ICogQGFkYXB0ZXI6IEkyQyBhZGFwdGVyIGZvciBEREMgY2hhbm5lbAorICoKKyAqIFdyaXRlIHRo ZSBUTURTIGNvbmZpZyBvdmVyIFNDREMgY2hhbm5lbCwgYW5kIGRpc2FibGUgc2NyYW1ibGluZwor ICogUmV0dXJuOiBUcnVlIGlmIHNjcmFtYmxpbmcgaXMgc3VjY2Vzc2Z1bGx5IGRpc2FibGVkLCBm YWxzZSBvdGhlcndpc2UuCisgKi8KK2Jvb2wgZHJtX3NjZGNfZGlzYWJsZV9zY3JhbWJsaW5nKHN0 cnVjdCBpMmNfYWRhcHRlciAqYWRhcHRlcik7CisKKy8qKgorICogZHJtX3NjZGNfc2V0X2hpZ2hf dG1kc19jbG9ja19yYXRpbyAtIHNldCBUTURTIGNsb2NrIHJhdGlvCisgKiBAYWRhcHRlcjogSTJD IGFkYXB0ZXIgZm9yIEREQyBjaGFubmVsCisgKgorICogV3JpdGVzIHRoZSBUTURTIGNvbmZpZyBv dmVyIFNDREMgY2hhbm5lbCwgYW5kIHNldHMgVE1EUworICogY2xvY2sgcmF0aW8gdG8gMS80MAor ICogUmV0dXJuczoKKyAqIFRydWUgaWYgd3JpdGUgaXMgc3VjY2Vzc2Z1bCwgZmFsc2Ugb3RoZXJ3 aXNlLgorICovCitib29sIGRybV9zY2RjX3NldF9oaWdoX3RtZHNfY2xvY2tfcmF0aW8oc3RydWN0 IGkyY19hZGFwdGVyICphZGFwdGVyKTsKKworLyoqCisgKiBkcm1fc2NkY19jbGVhcl9oaWdoX3Rt ZHNfY2xvY2tfcmF0aW8gLSBjbGVhciBUTURTIGNsb2NrIHJhdGlvCisgKiBAYWRhcHRlcjogSTJD IGFkYXB0ZXIgZm9yIEREQyBjaGFubmVsCisgKgorICogV3JpdGVzIHRoZSBUTURTIGNvbmZpZyBv dmVyIFNDREMgY2hhbm5lbCwgYW5kIHNldHMgVE1EUworICogY2xvY2sgcmF0aW8gYmFjayB0byAx LzEwIChmcm9tIDEvNDApCisgKiBSZXR1cm5zOgorICogVHJ1ZSBpZiB3cml0ZSBpcyBzdWNjZXNz ZnVsLCBmYWxzZSBvdGhlcndpc2UuCisgKi8KK2Jvb2wgZHJtX3NjZGNfY2xlYXJfaGlnaF90bWRz X2Nsb2NrX3JhdGlvKHN0cnVjdCBpMmNfYWRhcHRlciAqYWRhcHRlcik7CiAjZW5kaWYKLS0gCjEu OS4xCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRl bC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6 Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK