From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ben Widawsky Subject: [PATCH 04/13] drm/i915: Make semaphore updates more precise Date: Tue, 29 Apr 2014 14:52:31 -0700 Message-ID: <1398808360-3674-5-git-send-email-benjamin.widawsky@intel.com> References: <1398808360-3674-1-git-send-email-benjamin.widawsky@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by gabe.freedesktop.org (Postfix) with ESMTP id CDFF28A316 for ; Tue, 29 Apr 2014 14:52:46 -0700 (PDT) In-Reply-To: <1398808360-3674-1-git-send-email-benjamin.widawsky@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Intel GFX List-Id: intel-gfx@lists.freedesktop.org V2l0aCB0aGUgcmluZyBtYXNrIHdlIG5vdyBoYXZlIGFuIGVhc3kgd2F5IHRvIGtub3cgdGhlIG51 bWJlciBvZiByaW5ncwppbiB0aGUgc3lzdGVtLCBhbmQgdGhlcmVmb3JlIGNhbiBhY2N1cmF0ZWx5 IHByZWRpY3QgdGhlIG51bWJlciBvZiBkd29yZHMKdG8gZW1pdCBmb3Igc2VtYXBob3JlIHNpZ25h bGxpbmcuIFRoaXMgd2FzIG5vdCBwb3NzaWJsZSAoZWFzaWx5KQpwcmV2aW91c2x5LgoKVGhlcmUg c2hvdWxkIGJlIG5vIGZ1bmN0aW9uYWwgaW1wYWN0LCBzaW1wbHkgZmV3ZXIgaW5zdHJ1Y3Rpb25z IGVtaXR0ZWQuCgpXaGlsZSB3ZSdyZSBoZXJlLCBzaW1wbHkgZG8gdGhlIHJvdW5kIHVwIHRvIDIg aW5zdGVhZCBvZiB0aGUgZmFuY2llcgpyb3VuZGluZyB3ZSBkaWQgYmVmb3JlLCB3aGljaCByb3Vu ZGluZyB1cCBwZXIgbWJveCwgaWUgNC4gVGhpcyBhbHNvCmFsbG93cyB1cyB0byBkcm9wIHRoZSB1 bm5lY2Vzc2FyeSBNSV9OT09QLCBzbyBub3QgcmVhbGx5IDQsIDMuCgp2MjogVXNlIDMgZHdvcmRz IGluc3RlYWQgb2YgNCAoVmlsbGUpCkRvIHRoZSBwcm9wZXIgY2FsY3VsYXRpb24gdG8gZ2V0IHRo ZSBudW1iZXIgb2YgZHdvcmRzIHRvIGVtaXQgKFZpbGxlKQpDb25kaXRpb25hbGx5IHNldCAuc3lu Y190byB3aGVuIHNlbWFwaG9yZXMgYXJlIGVuYWJsZWQgKFZpbGxlKQoKdjM6IFJlYmFzZWQgb24g VkNTMgpSZXBsYWNlIGh3ZWlnaHRfbG9uZyB3aXRoIGh3ZWlnaHQzMiAoVmlsbGUpCgpSZXZpZXdl ZC1ieTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4gKHYx KQpTaWduZWQtb2ZmLWJ5OiBCZW4gV2lkYXdza3kgPGJlbkBid2lkYXdzay5uZXQ+Ci0tLQogZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5jIHwgMTczICsrKysrKysrKysrKysr KysrLS0tLS0tLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgOTAgaW5zZXJ0aW9ucygrKSwgODMg ZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmlu Z2J1ZmZlci5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5jCmluZGV4 IGUwYzdiZjIuLjdhZWRjMGMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X3JpbmdidWZmZXIuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVy LmMKQEAgLTY2NiwyNCArNjY2LDE5IEBAIHN0YXRpYyB2b2lkIHJlbmRlcl9yaW5nX2NsZWFudXAo c3RydWN0IGludGVsX3JpbmdfYnVmZmVyICpyaW5nKQogc3RhdGljIGludCBnZW42X3NpZ25hbChz dHJ1Y3QgaW50ZWxfcmluZ19idWZmZXIgKnNpZ25hbGxlciwKIAkJICAgICAgIHVuc2lnbmVkIGlu dCBudW1fZHdvcmRzKQogeworI2RlZmluZSBNQk9YX1VQREFURV9EV09SRFMgMwogCXN0cnVjdCBk cm1fZGV2aWNlICpkZXYgPSBzaWduYWxsZXItPmRldjsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwogCXN0cnVjdCBpbnRlbF9yaW5nX2J1ZmZl ciAqdXNlbGVzczsKLQlpbnQgaSwgcmV0OworCWludCBpLCByZXQsIG51bV9yaW5nczsKIAotCS8q IE5COiBJbiBvcmRlciB0byBiZSBhYmxlIHRvIGRvIHNlbWFwaG9yZSBNQk9YIHVwZGF0ZXMgZm9y IHZhcnlpbmcKLQkgKiBudW1iZXIgb2YgcmluZ3MsIGl0J3MgZWFzaWVzdCBpZiB3ZSByb3VuZCB1 cCBlYWNoIGluZGl2aWR1YWwgdXBkYXRlCi0JICogdG8gYSBtdWx0aXBsZSBvZiAyIChzaW5jZSBy aW5nIHVwZGF0ZXMgbXVzdCBhbHdheXMgYmUgYSBtdWx0aXBsZSBvZgotCSAqIDIpIGV2ZW4gdGhv dWdoIHRoZSBhY3R1YWwgdXBkYXRlIG9ubHkgcmVxdWlyZXMgMyBkd29yZHMuCi0JICovCi0jZGVm aW5lIE1CT1hfVVBEQVRFX0RXT1JEUyA0Ci0JaWYgKGk5MTVfc2VtYXBob3JlX2lzX2VuYWJsZWQo ZGV2KSkKLQkJbnVtX2R3b3JkcyArPSAoKEk5MTVfTlVNX1JJTkdTLTEpICogTUJPWF9VUERBVEVf RFdPUkRTKTsKKwludW1fcmluZ3MgPSBod2VpZ2h0MzIoSU5URUxfSU5GTyhkZXYpLT5yaW5nX21h c2spOworCW51bV9kd29yZHMgKz0gcm91bmRfdXAoKG51bV9yaW5ncy0xKSAqIE1CT1hfVVBEQVRF X0RXT1JEUywgMik7CisjdW5kZWYgTUJPWF9VUERBVEVfRFdPUkRTCiAKIAlyZXQgPSBpbnRlbF9y aW5nX2JlZ2luKHNpZ25hbGxlciwgbnVtX2R3b3Jkcyk7CiAJaWYgKHJldCkKIAkJcmV0dXJuIHJl dDsKLSN1bmRlZiBNQk9YX1VQREFURV9EV09SRFMKIAogCWZvcl9lYWNoX3JpbmcodXNlbGVzcywg ZGV2X3ByaXYsIGkpIHsKIAkJdTMyIG1ib3hfcmVnID0gc2lnbmFsbGVyLT5zZW1hcGhvcmUubWJv eC5zaWduYWxbaV07CkBAIC02OTEsMTUgKzY4NiwxMyBAQCBzdGF0aWMgaW50IGdlbjZfc2lnbmFs KHN0cnVjdCBpbnRlbF9yaW5nX2J1ZmZlciAqc2lnbmFsbGVyLAogCQkJaW50ZWxfcmluZ19lbWl0 KHNpZ25hbGxlciwgTUlfTE9BRF9SRUdJU1RFUl9JTU0oMSkpOwogCQkJaW50ZWxfcmluZ19lbWl0 KHNpZ25hbGxlciwgbWJveF9yZWcpOwogCQkJaW50ZWxfcmluZ19lbWl0KHNpZ25hbGxlciwgc2ln bmFsbGVyLT5vdXRzdGFuZGluZ19sYXp5X3NlcW5vKTsKLQkJCWludGVsX3JpbmdfZW1pdChzaWdu YWxsZXIsIE1JX05PT1ApOwotCQl9IGVsc2UgewotCQkJaW50ZWxfcmluZ19lbWl0KHNpZ25hbGxl ciwgTUlfTk9PUCk7Ci0JCQlpbnRlbF9yaW5nX2VtaXQoc2lnbmFsbGVyLCBNSV9OT09QKTsKLQkJ CWludGVsX3JpbmdfZW1pdChzaWduYWxsZXIsIE1JX05PT1ApOwotCQkJaW50ZWxfcmluZ19lbWl0 KHNpZ25hbGxlciwgTUlfTk9PUCk7CiAJCX0KIAl9CiAKKwkvKiBJZiBudW1fZHdvcmRzIHdhcyBy b3VuZGVkLCBtYWtlIHN1cmUgdGhlIHRhaWwgcG9pbnRlciBpcyBjb3JyZWN0ICovCisJaWYgKG51 bV9yaW5ncyAlIDIgPT0gMCkKKwkJaW50ZWxfcmluZ19lbWl0KHNpZ25hbGxlciwgTUlfTk9PUCk7 CisKIAlyZXR1cm4gMDsKIH0KIApAQCAtNzE3LDcgKzcxMCwxMSBAQCBnZW42X2FkZF9yZXF1ZXN0 KHN0cnVjdCBpbnRlbF9yaW5nX2J1ZmZlciAqcmluZykKIHsKIAlpbnQgcmV0OwogCi0JcmV0ID0g cmluZy0+c2VtYXBob3JlLnNpZ25hbChyaW5nLCA0KTsKKwlpZiAocmluZy0+c2VtYXBob3JlLnNp Z25hbCkKKwkJcmV0ID0gcmluZy0+c2VtYXBob3JlLnNpZ25hbChyaW5nLCA0KTsKKwllbHNlCisJ CXJldCA9IGludGVsX3JpbmdfYmVnaW4ocmluZywgNCk7CisKIAlpZiAocmV0KQogCQlyZXR1cm4g cmV0OwogCkBAIC0xOTI4LDI0ICsxOTI1LDI3IEBAIGludCBpbnRlbF9pbml0X3JlbmRlcl9yaW5n X2J1ZmZlcihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCQlyaW5nLT5pcnFfZW5hYmxlX21hc2sg PSBHVF9SRU5ERVJfVVNFUl9JTlRFUlJVUFQ7CiAJCXJpbmctPmdldF9zZXFubyA9IGdlbjZfcmlu Z19nZXRfc2Vxbm87CiAJCXJpbmctPnNldF9zZXFubyA9IHJpbmdfc2V0X3NlcW5vOwotCQlyaW5n LT5zZW1hcGhvcmUuc3luY190byA9IGdlbjZfcmluZ19zeW5jOwotCQlyaW5nLT5zZW1hcGhvcmUu c2lnbmFsID0gZ2VuNl9zaWduYWw7Ci0JCS8qCi0JCSAqIFRoZSBjdXJyZW50IHNlbWFwaG9yZSBp cyBvbmx5IGFwcGxpZWQgb24gcHJlLWdlbjggcGxhdGZvcm0uCi0JCSAqIEFuZCB0aGVyZSBpcyBu byBWQ1MyIHJpbmcgb24gdGhlIHByZS1nZW44IHBsYXRmb3JtLiBTbyB0aGUKLQkJICogc2VtYXBo b3JlIGJldHdlZW4gUkNTIGFuZCBWQ1MyIGlzIGluaXRpYWxpemVkIGFzIElOVkFMSUQuCi0JCSAq IEdlbjggd2lsbCBpbml0aWFsaXplIHRoZSBzZW1hIGJldHdlZW4gVkNTMiBhbmQgUkNTIGxhdGVy LgotCQkgKi8KLQkJcmluZy0+c2VtYXBob3JlLm1ib3gud2FpdFtSQ1NdID0gTUlfU0VNQVBIT1JF X1NZTkNfSU5WQUxJRDsKLQkJcmluZy0+c2VtYXBob3JlLm1ib3gud2FpdFtWQ1NdID0gTUlfU0VN QVBIT1JFX1NZTkNfUlY7Ci0JCXJpbmctPnNlbWFwaG9yZS5tYm94LndhaXRbQkNTXSA9IE1JX1NF TUFQSE9SRV9TWU5DX1JCOwotCQlyaW5nLT5zZW1hcGhvcmUubWJveC53YWl0W1ZFQ1NdID0gTUlf U0VNQVBIT1JFX1NZTkNfUlZFOwotCQlyaW5nLT5zZW1hcGhvcmUubWJveC53YWl0W1ZDUzJdID0g TUlfU0VNQVBIT1JFX1NZTkNfSU5WQUxJRDsKLQkJcmluZy0+c2VtYXBob3JlLm1ib3guc2lnbmFs W1JDU10gPSBHRU42X05PU1lOQzsKLQkJcmluZy0+c2VtYXBob3JlLm1ib3guc2lnbmFsW1ZDU10g PSBHRU42X1ZSU1lOQzsKLQkJcmluZy0+c2VtYXBob3JlLm1ib3guc2lnbmFsW0JDU10gPSBHRU42 X0JSU1lOQzsKLQkJcmluZy0+c2VtYXBob3JlLm1ib3guc2lnbmFsW1ZFQ1NdID0gR0VONl9WRVJT WU5DOwotCQlyaW5nLT5zZW1hcGhvcmUubWJveC5zaWduYWxbVkNTMl0gPSBHRU42X05PU1lOQzsK KwkJaWYgKGk5MTVfc2VtYXBob3JlX2lzX2VuYWJsZWQoZGV2KSkgeworCQkJcmluZy0+c2VtYXBo b3JlLnN5bmNfdG8gPSBnZW42X3Jpbmdfc3luYzsKKwkJCXJpbmctPnNlbWFwaG9yZS5zaWduYWwg PSBnZW42X3NpZ25hbDsKKwkJCS8qCisJCQkgKiBUaGUgY3VycmVudCBzZW1hcGhvcmUgaXMgb25s eSBhcHBsaWVkIG9uIHByZS1nZW44CisJCQkgKiBwbGF0Zm9ybS4gIEFuZCB0aGVyZSBpcyBubyBW Q1MyIHJpbmcgb24gdGhlIHByZS1nZW44CisJCQkgKiBwbGF0Zm9ybS4gU28gdGhlIHNlbWFwaG9y ZSBiZXR3ZWVuIFJDUyBhbmQgVkNTMiBpcworCQkJICogaW5pdGlhbGl6ZWQgYXMgSU5WQUxJRC4g IEdlbjggd2lsbCBpbml0aWFsaXplIHRoZQorCQkJICogc2VtYSBiZXR3ZWVuIFZDUzIgYW5kIFJD UyBsYXRlci4KKwkJCSAqLworCQkJcmluZy0+c2VtYXBob3JlLm1ib3gud2FpdFtSQ1NdID0gTUlf U0VNQVBIT1JFX1NZTkNfSU5WQUxJRDsKKwkJCXJpbmctPnNlbWFwaG9yZS5tYm94LndhaXRbVkNT XSA9IE1JX1NFTUFQSE9SRV9TWU5DX1JWOworCQkJcmluZy0+c2VtYXBob3JlLm1ib3gud2FpdFtC Q1NdID0gTUlfU0VNQVBIT1JFX1NZTkNfUkI7CisJCQlyaW5nLT5zZW1hcGhvcmUubWJveC53YWl0 W1ZFQ1NdID0gTUlfU0VNQVBIT1JFX1NZTkNfUlZFOworCQkJcmluZy0+c2VtYXBob3JlLm1ib3gu d2FpdFtWQ1MyXSA9IE1JX1NFTUFQSE9SRV9TWU5DX0lOVkFMSUQ7CisJCQlyaW5nLT5zZW1hcGhv cmUubWJveC5zaWduYWxbUkNTXSA9IEdFTjZfTk9TWU5DOworCQkJcmluZy0+c2VtYXBob3JlLm1i b3guc2lnbmFsW1ZDU10gPSBHRU42X1ZSU1lOQzsKKwkJCXJpbmctPnNlbWFwaG9yZS5tYm94LnNp Z25hbFtCQ1NdID0gR0VONl9CUlNZTkM7CisJCQlyaW5nLT5zZW1hcGhvcmUubWJveC5zaWduYWxb VkVDU10gPSBHRU42X1ZFUlNZTkM7CisJCQlyaW5nLT5zZW1hcGhvcmUubWJveC5zaWduYWxbVkNT Ml0gPSBHRU42X05PU1lOQzsKKwkJfQogCX0gZWxzZSBpZiAoSVNfR0VONShkZXYpKSB7CiAJCXJp bmctPmFkZF9yZXF1ZXN0ID0gcGNfcmVuZGVyX2FkZF9yZXF1ZXN0OwogCQlyaW5nLT5mbHVzaCA9 IGdlbjRfcmVuZGVyX3JpbmdfZmx1c2g7CkBAIC0yMTEzLDI0ICsyMTEzLDI3IEBAIGludCBpbnRl bF9pbml0X2JzZF9yaW5nX2J1ZmZlcihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCQkJcmluZy0+ ZGlzcGF0Y2hfZXhlY2J1ZmZlciA9CiAJCQkJZ2VuNl9yaW5nX2Rpc3BhdGNoX2V4ZWNidWZmZXI7 CiAJCX0KLQkJcmluZy0+c2VtYXBob3JlLnN5bmNfdG8gPSBnZW42X3Jpbmdfc3luYzsKLQkJcmlu Zy0+c2VtYXBob3JlLnNpZ25hbCA9IGdlbjZfc2lnbmFsOwotCQkvKgotCQkgKiBUaGUgY3VycmVu dCBzZW1hcGhvcmUgaXMgb25seSBhcHBsaWVkIG9uIHByZS1nZW44IHBsYXRmb3JtLgotCQkgKiBB bmQgdGhlcmUgaXMgbm8gVkNTMiByaW5nIG9uIHRoZSBwcmUtZ2VuOCBwbGF0Zm9ybS4gU28gdGhl Ci0JCSAqIHNlbWFwaG9yZSBiZXR3ZWVuIFZDUyBhbmQgVkNTMiBpcyBpbml0aWFsaXplZCBhcyBJ TlZBTElELgotCQkgKiBHZW44IHdpbGwgaW5pdGlhbGl6ZSB0aGUgc2VtYSBiZXR3ZWVuIFZDUzIg YW5kIFZDUyBsYXRlci4KLQkJICovCi0JCXJpbmctPnNlbWFwaG9yZS5tYm94LndhaXRbUkNTXSA9 IE1JX1NFTUFQSE9SRV9TWU5DX1ZSOwotCQlyaW5nLT5zZW1hcGhvcmUubWJveC53YWl0W1ZDU10g PSBNSV9TRU1BUEhPUkVfU1lOQ19JTlZBTElEOwotCQlyaW5nLT5zZW1hcGhvcmUubWJveC53YWl0 W0JDU10gPSBNSV9TRU1BUEhPUkVfU1lOQ19WQjsKLQkJcmluZy0+c2VtYXBob3JlLm1ib3gud2Fp dFtWRUNTXSA9IE1JX1NFTUFQSE9SRV9TWU5DX1ZWRTsKLQkJcmluZy0+c2VtYXBob3JlLm1ib3gu d2FpdFtWQ1MyXSA9IE1JX1NFTUFQSE9SRV9TWU5DX0lOVkFMSUQ7Ci0JCXJpbmctPnNlbWFwaG9y ZS5tYm94LnNpZ25hbFtSQ1NdID0gR0VONl9SVlNZTkM7Ci0JCXJpbmctPnNlbWFwaG9yZS5tYm94 LnNpZ25hbFtWQ1NdID0gR0VONl9OT1NZTkM7Ci0JCXJpbmctPnNlbWFwaG9yZS5tYm94LnNpZ25h bFtCQ1NdID0gR0VONl9CVlNZTkM7Ci0JCXJpbmctPnNlbWFwaG9yZS5tYm94LnNpZ25hbFtWRUNT XSA9IEdFTjZfVkVWU1lOQzsKLQkJcmluZy0+c2VtYXBob3JlLm1ib3guc2lnbmFsW1ZDUzJdID0g R0VONl9OT1NZTkM7CisJCWlmIChpOTE1X3NlbWFwaG9yZV9pc19lbmFibGVkKGRldikpIHsKKwkJ CXJpbmctPnNlbWFwaG9yZS5zeW5jX3RvID0gZ2VuNl9yaW5nX3N5bmM7CisJCQlyaW5nLT5zZW1h cGhvcmUuc2lnbmFsID0gZ2VuNl9zaWduYWw7CisJCQkvKgorCQkJICogVGhlIGN1cnJlbnQgc2Vt YXBob3JlIGlzIG9ubHkgYXBwbGllZCBvbiBwcmUtZ2VuOAorCQkJICogcGxhdGZvcm0uICBBbmQg dGhlcmUgaXMgbm8gVkNTMiByaW5nIG9uIHRoZSBwcmUtZ2VuOAorCQkJICogcGxhdGZvcm0uIFNv IHRoZSBzZW1hcGhvcmUgYmV0d2VlbiBWQ1MgYW5kIFZDUzIgaXMKKwkJCSAqIGluaXRpYWxpemVk IGFzIElOVkFMSUQuICBHZW44IHdpbGwgaW5pdGlhbGl6ZSB0aGUKKwkJCSAqIHNlbWEgYmV0d2Vl biBWQ1MyIGFuZCBWQ1MgbGF0ZXIuCisJCQkgKi8KKwkJCXJpbmctPnNlbWFwaG9yZS5tYm94Lndh aXRbUkNTXSA9IE1JX1NFTUFQSE9SRV9TWU5DX1ZSOworCQkJcmluZy0+c2VtYXBob3JlLm1ib3gu d2FpdFtWQ1NdID0gTUlfU0VNQVBIT1JFX1NZTkNfSU5WQUxJRDsKKwkJCXJpbmctPnNlbWFwaG9y ZS5tYm94LndhaXRbQkNTXSA9IE1JX1NFTUFQSE9SRV9TWU5DX1ZCOworCQkJcmluZy0+c2VtYXBo b3JlLm1ib3gud2FpdFtWRUNTXSA9IE1JX1NFTUFQSE9SRV9TWU5DX1ZWRTsKKwkJCXJpbmctPnNl bWFwaG9yZS5tYm94LndhaXRbVkNTMl0gPSBNSV9TRU1BUEhPUkVfU1lOQ19JTlZBTElEOworCQkJ cmluZy0+c2VtYXBob3JlLm1ib3guc2lnbmFsW1JDU10gPSBHRU42X1JWU1lOQzsKKwkJCXJpbmct PnNlbWFwaG9yZS5tYm94LnNpZ25hbFtWQ1NdID0gR0VONl9OT1NZTkM7CisJCQlyaW5nLT5zZW1h cGhvcmUubWJveC5zaWduYWxbQkNTXSA9IEdFTjZfQlZTWU5DOworCQkJcmluZy0+c2VtYXBob3Jl Lm1ib3guc2lnbmFsW1ZFQ1NdID0gR0VONl9WRVZTWU5DOworCQkJcmluZy0+c2VtYXBob3JlLm1i b3guc2lnbmFsW1ZDUzJdID0gR0VONl9OT1NZTkM7CisJCX0KIAl9IGVsc2UgewogCQlyaW5nLT5t bWlvX2Jhc2UgPSBCU0RfUklOR19CQVNFOwogCQlyaW5nLT5mbHVzaCA9IGJzZF9yaW5nX2ZsdXNo OwpAQCAtMjIzMSwyNCArMjIzNCwyNiBAQCBpbnQgaW50ZWxfaW5pdF9ibHRfcmluZ19idWZmZXIo c3RydWN0IGRybV9kZXZpY2UgKmRldikKIAkJcmluZy0+aXJxX3B1dCA9IGdlbjZfcmluZ19wdXRf aXJxOwogCQlyaW5nLT5kaXNwYXRjaF9leGVjYnVmZmVyID0gZ2VuNl9yaW5nX2Rpc3BhdGNoX2V4 ZWNidWZmZXI7CiAJfQotCXJpbmctPnNlbWFwaG9yZS5zeW5jX3RvID0gZ2VuNl9yaW5nX3N5bmM7 Ci0JcmluZy0+c2VtYXBob3JlLnNpZ25hbCA9IGdlbjZfc2lnbmFsOwotCS8qCi0JICogVGhlIGN1 cnJlbnQgc2VtYXBob3JlIGlzIG9ubHkgYXBwbGllZCBvbiBwcmUtZ2VuOCBwbGF0Zm9ybS4gQW5k Ci0JICogdGhlcmUgaXMgbm8gVkNTMiByaW5nIG9uIHRoZSBwcmUtZ2VuOCBwbGF0Zm9ybS4gU28g dGhlIHNlbWFwaG9yZQotCSAqIGJldHdlZW4gQkNTIGFuZCBWQ1MyIGlzIGluaXRpYWxpemVkIGFz IElOVkFMSUQuCi0JICogR2VuOCB3aWxsIGluaXRpYWxpemUgdGhlIHNlbWEgYmV0d2VlbiBCQ1Mg YW5kIFZDUzIgbGF0ZXIuCi0JICovCi0JcmluZy0+c2VtYXBob3JlLm1ib3gud2FpdFtSQ1NdID0g TUlfU0VNQVBIT1JFX1NZTkNfQlI7Ci0JcmluZy0+c2VtYXBob3JlLm1ib3gud2FpdFtWQ1NdID0g TUlfU0VNQVBIT1JFX1NZTkNfQlY7Ci0JcmluZy0+c2VtYXBob3JlLm1ib3gud2FpdFtCQ1NdID0g TUlfU0VNQVBIT1JFX1NZTkNfSU5WQUxJRDsKLQlyaW5nLT5zZW1hcGhvcmUubWJveC53YWl0W1ZF Q1NdID0gTUlfU0VNQVBIT1JFX1NZTkNfQlZFOwotCXJpbmctPnNlbWFwaG9yZS5tYm94LndhaXRb VkNTMl0gPSBNSV9TRU1BUEhPUkVfU1lOQ19JTlZBTElEOwotCXJpbmctPnNlbWFwaG9yZS5tYm94 LnNpZ25hbFtSQ1NdID0gR0VONl9SQlNZTkM7Ci0JcmluZy0+c2VtYXBob3JlLm1ib3guc2lnbmFs W1ZDU10gPSBHRU42X1ZCU1lOQzsKLQlyaW5nLT5zZW1hcGhvcmUubWJveC5zaWduYWxbQkNTXSA9 IEdFTjZfTk9TWU5DOwotCXJpbmctPnNlbWFwaG9yZS5tYm94LnNpZ25hbFtWRUNTXSA9IEdFTjZf VkVCU1lOQzsKLQlyaW5nLT5zZW1hcGhvcmUubWJveC5zaWduYWxbVkNTMl0gPSBHRU42X05PU1lO QzsKKwlpZiAoaTkxNV9zZW1hcGhvcmVfaXNfZW5hYmxlZChkZXYpKSB7CisJCXJpbmctPnNlbWFw aG9yZS5zaWduYWwgPSBnZW42X3NpZ25hbDsKKwkJcmluZy0+c2VtYXBob3JlLnN5bmNfdG8gPSBn ZW42X3Jpbmdfc3luYzsKKwkJLyoKKwkJICogVGhlIGN1cnJlbnQgc2VtYXBob3JlIGlzIG9ubHkg YXBwbGllZCBvbiBwcmUtZ2VuOCBwbGF0Zm9ybS4KKwkJICogQW5kIHRoZXJlIGlzIG5vIFZDUzIg cmluZyBvbiB0aGUgcHJlLWdlbjggcGxhdGZvcm0uIFNvIHRoZQorCQkgKiBzZW1hcGhvcmUgYmV0 d2VlbiBCQ1MgYW5kIFZDUzIgaXMgaW5pdGlhbGl6ZWQgYXMgSU5WQUxJRC4KKwkJICogR2VuOCB3 aWxsIGluaXRpYWxpemUgdGhlIHNlbWEgYmV0d2VlbiBCQ1MgYW5kIFZDUzIgbGF0ZXIuCisJCSAq LworCQlyaW5nLT5zZW1hcGhvcmUubWJveC53YWl0W1JDU10gPSBNSV9TRU1BUEhPUkVfU1lOQ19C UjsKKwkJcmluZy0+c2VtYXBob3JlLm1ib3gud2FpdFtWQ1NdID0gTUlfU0VNQVBIT1JFX1NZTkNf QlY7CisJCXJpbmctPnNlbWFwaG9yZS5tYm94LndhaXRbQkNTXSA9IE1JX1NFTUFQSE9SRV9TWU5D X0lOVkFMSUQ7CisJCXJpbmctPnNlbWFwaG9yZS5tYm94LndhaXRbVkVDU10gPSBNSV9TRU1BUEhP UkVfU1lOQ19CVkU7CisJCXJpbmctPnNlbWFwaG9yZS5tYm94LndhaXRbVkNTMl0gPSBNSV9TRU1B UEhPUkVfU1lOQ19JTlZBTElEOworCQlyaW5nLT5zZW1hcGhvcmUubWJveC5zaWduYWxbUkNTXSA9 IEdFTjZfUkJTWU5DOworCQlyaW5nLT5zZW1hcGhvcmUubWJveC5zaWduYWxbVkNTXSA9IEdFTjZf VkJTWU5DOworCQlyaW5nLT5zZW1hcGhvcmUubWJveC5zaWduYWxbQkNTXSA9IEdFTjZfTk9TWU5D OworCQlyaW5nLT5zZW1hcGhvcmUubWJveC5zaWduYWxbVkVDU10gPSBHRU42X1ZFQlNZTkM7CisJ CXJpbmctPnNlbWFwaG9yZS5tYm94LnNpZ25hbFtWQ1MyXSA9IEdFTjZfTk9TWU5DOworCX0KIAly aW5nLT5pbml0ID0gaW5pdF9yaW5nX2NvbW1vbjsKIAogCXJldHVybiBpbnRlbF9pbml0X3Jpbmdf YnVmZmVyKGRldiwgcmluZyk7CkBAIC0yMjgxLDE4ICsyMjg2LDIwIEBAIGludCBpbnRlbF9pbml0 X3ZlYm94X3JpbmdfYnVmZmVyKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJCXJpbmctPmlycV9w dXQgPSBoc3dfdmVib3hfcHV0X2lycTsKIAkJcmluZy0+ZGlzcGF0Y2hfZXhlY2J1ZmZlciA9IGdl bjZfcmluZ19kaXNwYXRjaF9leGVjYnVmZmVyOwogCX0KLQlyaW5nLT5zZW1hcGhvcmUuc3luY190 byA9IGdlbjZfcmluZ19zeW5jOwotCXJpbmctPnNlbWFwaG9yZS5zaWduYWwgPSBnZW42X3NpZ25h bDsKLQlyaW5nLT5zZW1hcGhvcmUubWJveC53YWl0W1JDU10gPSBNSV9TRU1BUEhPUkVfU1lOQ19W RVI7Ci0JcmluZy0+c2VtYXBob3JlLm1ib3gud2FpdFtWQ1NdID0gTUlfU0VNQVBIT1JFX1NZTkNf VkVWOwotCXJpbmctPnNlbWFwaG9yZS5tYm94LndhaXRbQkNTXSA9IE1JX1NFTUFQSE9SRV9TWU5D X1ZFQjsKLQlyaW5nLT5zZW1hcGhvcmUubWJveC53YWl0W1ZFQ1NdID0gTUlfU0VNQVBIT1JFX1NZ TkNfSU5WQUxJRDsKLQlyaW5nLT5zZW1hcGhvcmUubWJveC53YWl0W1ZDUzJdID0gTUlfU0VNQVBI T1JFX1NZTkNfSU5WQUxJRDsKLQlyaW5nLT5zZW1hcGhvcmUubWJveC5zaWduYWxbUkNTXSA9IEdF TjZfUlZFU1lOQzsKLQlyaW5nLT5zZW1hcGhvcmUubWJveC5zaWduYWxbVkNTXSA9IEdFTjZfVlZF U1lOQzsKLQlyaW5nLT5zZW1hcGhvcmUubWJveC5zaWduYWxbQkNTXSA9IEdFTjZfQlZFU1lOQzsK LQlyaW5nLT5zZW1hcGhvcmUubWJveC5zaWduYWxbVkVDU10gPSBHRU42X05PU1lOQzsKLQlyaW5n LT5zZW1hcGhvcmUubWJveC5zaWduYWxbVkNTMl0gPSBHRU42X05PU1lOQzsKKwlpZiAoaTkxNV9z ZW1hcGhvcmVfaXNfZW5hYmxlZChkZXYpKSB7CisJCXJpbmctPnNlbWFwaG9yZS5zeW5jX3RvID0g Z2VuNl9yaW5nX3N5bmM7CisJCXJpbmctPnNlbWFwaG9yZS5zaWduYWwgPSBnZW42X3NpZ25hbDsK KwkJcmluZy0+c2VtYXBob3JlLm1ib3gud2FpdFtSQ1NdID0gTUlfU0VNQVBIT1JFX1NZTkNfVkVS OworCQlyaW5nLT5zZW1hcGhvcmUubWJveC53YWl0W1ZDU10gPSBNSV9TRU1BUEhPUkVfU1lOQ19W RVY7CisJCXJpbmctPnNlbWFwaG9yZS5tYm94LndhaXRbQkNTXSA9IE1JX1NFTUFQSE9SRV9TWU5D X1ZFQjsKKwkJcmluZy0+c2VtYXBob3JlLm1ib3gud2FpdFtWRUNTXSA9IE1JX1NFTUFQSE9SRV9T WU5DX0lOVkFMSUQ7CisJCXJpbmctPnNlbWFwaG9yZS5tYm94LndhaXRbVkNTMl0gPSBNSV9TRU1B UEhPUkVfU1lOQ19JTlZBTElEOworCQlyaW5nLT5zZW1hcGhvcmUubWJveC5zaWduYWxbUkNTXSA9 IEdFTjZfUlZFU1lOQzsKKwkJcmluZy0+c2VtYXBob3JlLm1ib3guc2lnbmFsW1ZDU10gPSBHRU42 X1ZWRVNZTkM7CisJCXJpbmctPnNlbWFwaG9yZS5tYm94LnNpZ25hbFtCQ1NdID0gR0VONl9CVkVT WU5DOworCQlyaW5nLT5zZW1hcGhvcmUubWJveC5zaWduYWxbVkVDU10gPSBHRU42X05PU1lOQzsK KwkJcmluZy0+c2VtYXBob3JlLm1ib3guc2lnbmFsW1ZDUzJdID0gR0VONl9OT1NZTkM7CisJfQog CXJpbmctPmluaXQgPSBpbml0X3JpbmdfY29tbW9uOwogCiAJcmV0dXJuIGludGVsX2luaXRfcmlu Z19idWZmZXIoZGV2LCByaW5nKTsKLS0gCjEuOS4yCgpfX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBs aXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFu L2xpc3RpbmZvL2ludGVsLWdmeAo=