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: Wed, 19 Feb 2014 22:19:17 -0800 Message-ID: <1392877166-9195-4-git-send-email-benjamin.widawsky@intel.com> References: <1392877166-9195-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 49449FB0E5 for ; Wed, 19 Feb 2014 22:19:33 -0800 (PST) In-Reply-To: <1392877166-9195-1-git-send-email-benjamin.widawsky@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: intel-gfx-bounces@lists.freedesktop.org Errors-To: intel-gfx-bounces@lists.freedesktop.org To: Intel GFX Cc: Ben Widawsky , Ben Widawsky List-Id: intel-gfx@lists.freedesktop.org V2l0aCB0aGUgcmluZyBtYXNrIHdlIG5vdyBoYXZlIGFuIGVhc3kgd2F5IHRvIGtub3cgdGhlIG51 bWJlciBvZiByaW5ncwppbiB0aGUgc3lzdGVtLCBhbmQgdGhlcmVmb3JlIGNhbiBhY2N1cmF0ZWx5 IHByZWRpY3QgdGhlIG51bWJlciBvZiBkd29yZHMKdG8gZW1pdCBmb3Igc2VtYXBob3JlIHNpZ25h bGxpbmcuIFRoaXMgd2FzIG5vdCBwb3NzaWJsZSAoZWFzaWx5KQpwcmV2aW91c2x5LgoKVGhlcmUg c2hvdWxkIGJlIG5vIGZ1bmN0aW9uYWwgaW1wYWN0LCBzaW1wbHkgZmV3ZXIgaW5zdHJ1Y3Rpb25z IGVtaXR0ZWQuCgpXaGlsZSB3ZSdyZSBoZXJlLCBzaW1wbHkgZG8gdGhlIHJvdW5kIHVwIHRvIDIg aW5zdGVhZCBvZiB0aGUgZmFuY2llcgpyb3VuZGluZyB3ZSBkaWQgYmVmb3JlLCB3aGljaCByb3Vu ZGluZyB1cCBwZXIgbWJveCwgaWUgNC4gVGhpcyBhbHNvCmFsbG93cyB1cyB0byBkcm9wIHRoZSB1 bm5lY2Vzc2FyeSBNSV9OT09QLCBzbyBub3QgcmVhbGx5IDQsIDMuCgp2MjogVXNlIDMgZHdvcmRz IGluc3RlYWQgb2YgNCAoVmlsbGUpCkRvIHRoZSBwcm9wZXIgY2FsY3VsYXRpb24gdG8gZ2V0IHRo ZSBudW1iZXIgb2YgZHdvcmRzIHRvIGVtaXQgKFZpbGxlKQpDb25kaXRpb25hbGx5IHNldCAuc3lu Y190byB3aGVuIHNlbWFwaG9yZXMgYXJlIGVuYWJsZWQgKFZpbGxlKQoKUmV2aWV3ZWQtYnk6IFZp bGxlIFN5cmrDpGzDpCA8dmlsbGUuc3lyamFsYUBsaW51eC5pbnRlbC5jb20+ClNpZ25lZC1vZmYt Ynk6IEJlbiBXaWRhd3NreSA8YmVuQGJ3aWRhd3NrLm5ldD4KLS0tCiBkcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9yaW5nYnVmZmVyLmMgfCAxMTkgKysrKysrKysrKysrKysrKystLS0tLS0tLS0t LS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA2MiBpbnNlcnRpb25zKCspLCA1NyBkZWxldGlvbnMoLSkK CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmMgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmMKaW5kZXggMDZkODQ5YS4uYmYw NjFkZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5j CisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuYwpAQCAtNjM3LDI0 ICs2MzcsMTkgQEAgc3RhdGljIHZvaWQgcmVuZGVyX3JpbmdfY2xlYW51cChzdHJ1Y3QgaW50ZWxf cmluZ19idWZmZXIgKnJpbmcpCiBzdGF0aWMgaW50IGdlbjZfc2lnbmFsKHN0cnVjdCBpbnRlbF9y aW5nX2J1ZmZlciAqc2lnbmFsbGVyLAogCQkgICAgICAgdW5zaWduZWQgaW50IG51bV9kd29yZHMp CiB7CisjZGVmaW5lIE1CT1hfVVBEQVRFX0RXT1JEUyAzCiAJc3RydWN0IGRybV9kZXZpY2UgKmRl diA9IHNpZ25hbGxlci0+ZGV2OwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9 IGRldi0+ZGV2X3ByaXZhdGU7CiAJc3RydWN0IGludGVsX3JpbmdfYnVmZmVyICp1c2VsZXNzOwot CWludCBpLCByZXQ7CisJaW50IGksIHJldCwgbnVtX3JpbmdzOwogCi0JLyogTkI6IEluIG9yZGVy IHRvIGJlIGFibGUgdG8gZG8gc2VtYXBob3JlIE1CT1ggdXBkYXRlcyBmb3IgdmFyeWluZwotCSAq IG51bWJlciBvZiByaW5ncywgaXQncyBlYXNpZXN0IGlmIHdlIHJvdW5kIHVwIGVhY2ggaW5kaXZp ZHVhbCB1cGRhdGUKLQkgKiB0byBhIG11bHRpcGxlIG9mIDIgKHNpbmNlIHJpbmcgdXBkYXRlcyBt dXN0IGFsd2F5cyBiZSBhIG11bHRpcGxlIG9mCi0JICogMikgZXZlbiB0aG91Z2ggdGhlIGFjdHVh bCB1cGRhdGUgb25seSByZXF1aXJlcyAzIGR3b3Jkcy4KLQkgKi8KLSNkZWZpbmUgTUJPWF9VUERB VEVfRFdPUkRTIDQKLQlpZiAoaTkxNV9zZW1hcGhvcmVfaXNfZW5hYmxlZChkZXYpKQotCQludW1f ZHdvcmRzICs9ICgoSTkxNV9OVU1fUklOR1MtMSkgKiBNQk9YX1VQREFURV9EV09SRFMpOworCW51 bV9yaW5ncyA9IGh3ZWlnaHRfbG9uZyhJTlRFTF9JTkZPKGRldiktPnJpbmdfbWFzayk7CisJbnVt X2R3b3JkcyArPSByb3VuZF91cCgobnVtX3JpbmdzLTEpICogTUJPWF9VUERBVEVfRFdPUkRTLCAy KTsKKyN1bmRlZiBNQk9YX1VQREFURV9EV09SRFMKIAogCXJldCA9IGludGVsX3JpbmdfYmVnaW4o c2lnbmFsbGVyLCBudW1fZHdvcmRzKTsKIAlpZiAocmV0KQogCQlyZXR1cm4gcmV0OwotI3VuZGVm IE1CT1hfVVBEQVRFX0RXT1JEUwogCiAJZm9yX2VhY2hfcmluZyh1c2VsZXNzLCBkZXZfcHJpdiwg aSkgewogCQl1MzIgbWJveF9yZWcgPSBzaWduYWxsZXItPnNlbWFwaG9yZS5tYm94LnNpZ25hbFtp XTsKQEAgLTY2MiwxNSArNjU3LDEzIEBAIHN0YXRpYyBpbnQgZ2VuNl9zaWduYWwoc3RydWN0IGlu dGVsX3JpbmdfYnVmZmVyICpzaWduYWxsZXIsCiAJCQlpbnRlbF9yaW5nX2VtaXQoc2lnbmFsbGVy LCBNSV9MT0FEX1JFR0lTVEVSX0lNTSgxKSk7CiAJCQlpbnRlbF9yaW5nX2VtaXQoc2lnbmFsbGVy LCBtYm94X3JlZyk7CiAJCQlpbnRlbF9yaW5nX2VtaXQoc2lnbmFsbGVyLCBzaWduYWxsZXItPm91 dHN0YW5kaW5nX2xhenlfc2Vxbm8pOwotCQkJaW50ZWxfcmluZ19lbWl0KHNpZ25hbGxlciwgTUlf Tk9PUCk7Ci0JCX0gZWxzZSB7Ci0JCQlpbnRlbF9yaW5nX2VtaXQoc2lnbmFsbGVyLCBNSV9OT09Q KTsKLQkJCWludGVsX3JpbmdfZW1pdChzaWduYWxsZXIsIE1JX05PT1ApOwotCQkJaW50ZWxfcmlu Z19lbWl0KHNpZ25hbGxlciwgTUlfTk9PUCk7Ci0JCQlpbnRlbF9yaW5nX2VtaXQoc2lnbmFsbGVy LCBNSV9OT09QKTsKIAkJfQogCX0KIAorCS8qIElmIG51bV9kd29yZHMgd2FzIHJvdW5kZWQsIG1h a2Ugc3VyZSB0aGUgdGFpbCBwb2ludGVyIGlzIGNvcnJlY3QgKi8KKwlpZiAobnVtX3JpbmdzICUg MiA9PSAwKQorCQlpbnRlbF9yaW5nX2VtaXQoc2lnbmFsbGVyLCBNSV9OT09QKTsKKwogCXJldHVy biAwOwogfQogCkBAIC02ODgsNyArNjgxLDExIEBAIGdlbjZfYWRkX3JlcXVlc3Qoc3RydWN0IGlu dGVsX3JpbmdfYnVmZmVyICpyaW5nKQogewogCWludCByZXQ7CiAKLQlyZXQgPSByaW5nLT5zZW1h cGhvcmUuc2lnbmFsKHJpbmcsIDQpOworCWlmIChyaW5nLT5zZW1hcGhvcmUuc2lnbmFsKQorCQly ZXQgPSByaW5nLT5zZW1hcGhvcmUuc2lnbmFsKHJpbmcsIDQpOworCWVsc2UKKwkJcmV0ID0gaW50 ZWxfcmluZ19iZWdpbihyaW5nLCA0KTsKKwogCWlmIChyZXQpCiAJCXJldHVybiByZXQ7CiAKQEAg LTE4ODksMTYgKzE4ODYsMTggQEAgaW50IGludGVsX2luaXRfcmVuZGVyX3JpbmdfYnVmZmVyKHN0 cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJCXJpbmctPmlycV9lbmFibGVfbWFzayA9IEdUX1JFTkRF Ul9VU0VSX0lOVEVSUlVQVDsKIAkJcmluZy0+Z2V0X3NlcW5vID0gZ2VuNl9yaW5nX2dldF9zZXFu bzsKIAkJcmluZy0+c2V0X3NlcW5vID0gcmluZ19zZXRfc2Vxbm87Ci0JCXJpbmctPnNlbWFwaG9y ZS5zeW5jX3RvID0gZ2VuNl9yaW5nX3N5bmM7Ci0JCXJpbmctPnNlbWFwaG9yZS5zaWduYWwgPSBn ZW42X3NpZ25hbDsKLQkJcmluZy0+c2VtYXBob3JlLm1ib3gud2FpdFtSQ1NdID0gTUlfU0VNQVBI T1JFX1NZTkNfSU5WQUxJRDsKLQkJcmluZy0+c2VtYXBob3JlLm1ib3gud2FpdFtWQ1NdID0gTUlf U0VNQVBIT1JFX1NZTkNfUlY7Ci0JCXJpbmctPnNlbWFwaG9yZS5tYm94LndhaXRbQkNTXSA9IE1J X1NFTUFQSE9SRV9TWU5DX1JCOwotCQlyaW5nLT5zZW1hcGhvcmUubWJveC53YWl0W1ZFQ1NdID0g TUlfU0VNQVBIT1JFX1NZTkNfUlZFOwotCQlyaW5nLT5zZW1hcGhvcmUubWJveC5zaWduYWxbUkNT XSA9IEdFTjZfTk9TWU5DOwotCQlyaW5nLT5zZW1hcGhvcmUubWJveC5zaWduYWxbVkNTXSA9IEdF TjZfVlJTWU5DOwotCQlyaW5nLT5zZW1hcGhvcmUubWJveC5zaWduYWxbQkNTXSA9IEdFTjZfQlJT WU5DOwotCQlyaW5nLT5zZW1hcGhvcmUubWJveC5zaWduYWxbVkVDU10gPSBHRU42X1ZFUlNZTkM7 CisJCWlmIChpOTE1X3NlbWFwaG9yZV9pc19lbmFibGVkKGRldikpIHsKKwkJCXJpbmctPnNlbWFw aG9yZS5zeW5jX3RvID0gZ2VuNl9yaW5nX3N5bmM7CisJCQlyaW5nLT5zZW1hcGhvcmUuc2lnbmFs ID0gZ2VuNl9zaWduYWw7CisJCQlyaW5nLT5zZW1hcGhvcmUubWJveC53YWl0W1JDU10gPSBNSV9T RU1BUEhPUkVfU1lOQ19JTlZBTElEOworCQkJcmluZy0+c2VtYXBob3JlLm1ib3gud2FpdFtWQ1Nd ID0gTUlfU0VNQVBIT1JFX1NZTkNfUlY7CisJCQlyaW5nLT5zZW1hcGhvcmUubWJveC53YWl0W0JD U10gPSBNSV9TRU1BUEhPUkVfU1lOQ19SQjsKKwkJCXJpbmctPnNlbWFwaG9yZS5tYm94LndhaXRb VkVDU10gPSBNSV9TRU1BUEhPUkVfU1lOQ19SVkU7CisJCQlyaW5nLT5zZW1hcGhvcmUubWJveC5z aWduYWxbUkNTXSA9IEdFTjZfTk9TWU5DOworCQkJcmluZy0+c2VtYXBob3JlLm1ib3guc2lnbmFs W1ZDU10gPSBHRU42X1ZSU1lOQzsKKwkJCXJpbmctPnNlbWFwaG9yZS5tYm94LnNpZ25hbFtCQ1Nd ID0gR0VONl9CUlNZTkM7CisJCQlyaW5nLT5zZW1hcGhvcmUubWJveC5zaWduYWxbVkVDU10gPSBH RU42X1ZFUlNZTkM7CisJCX0KIAl9IGVsc2UgaWYgKElTX0dFTjUoZGV2KSkgewogCQlyaW5nLT5h ZGRfcmVxdWVzdCA9IHBjX3JlbmRlcl9hZGRfcmVxdWVzdDsKIAkJcmluZy0+Zmx1c2ggPSBnZW40 X3JlbmRlcl9yaW5nX2ZsdXNoOwpAQCAtMjA2NiwxNiArMjA2NSwxOCBAQCBpbnQgaW50ZWxfaW5p dF9ic2RfcmluZ19idWZmZXIoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIAkJCXJpbmctPmRpc3Bh dGNoX2V4ZWNidWZmZXIgPQogCQkJCWdlbjZfcmluZ19kaXNwYXRjaF9leGVjYnVmZmVyOwogCQl9 Ci0JCXJpbmctPnNlbWFwaG9yZS5zeW5jX3RvID0gZ2VuNl9yaW5nX3N5bmM7Ci0JCXJpbmctPnNl bWFwaG9yZS5zaWduYWwgPSBnZW42X3NpZ25hbDsKLQkJcmluZy0+c2VtYXBob3JlLm1ib3gud2Fp dFtSQ1NdID0gTUlfU0VNQVBIT1JFX1NZTkNfVlI7Ci0JCXJpbmctPnNlbWFwaG9yZS5tYm94Lndh aXRbVkNTXSA9IE1JX1NFTUFQSE9SRV9TWU5DX0lOVkFMSUQ7Ci0JCXJpbmctPnNlbWFwaG9yZS5t Ym94LndhaXRbQkNTXSA9IE1JX1NFTUFQSE9SRV9TWU5DX1ZCOwotCQlyaW5nLT5zZW1hcGhvcmUu bWJveC53YWl0W1ZFQ1NdID0gTUlfU0VNQVBIT1JFX1NZTkNfVlZFOwotCQlyaW5nLT5zZW1hcGhv cmUubWJveC5zaWduYWxbUkNTXSA9IEdFTjZfUlZTWU5DOwotCQlyaW5nLT5zZW1hcGhvcmUubWJv eC5zaWduYWxbVkNTXSA9IEdFTjZfTk9TWU5DOwotCQlyaW5nLT5zZW1hcGhvcmUubWJveC5zaWdu YWxbQkNTXSA9IEdFTjZfQlZTWU5DOwotCQlyaW5nLT5zZW1hcGhvcmUubWJveC5zaWduYWxbVkVD U10gPSBHRU42X1ZFVlNZTkM7CisJCWlmIChpOTE1X3NlbWFwaG9yZV9pc19lbmFibGVkKGRldikp IHsKKwkJCXJpbmctPnNlbWFwaG9yZS5zeW5jX3RvID0gZ2VuNl9yaW5nX3N5bmM7CisJCQlyaW5n LT5zZW1hcGhvcmUuc2lnbmFsID0gZ2VuNl9zaWduYWw7CisJCQlyaW5nLT5zZW1hcGhvcmUubWJv eC53YWl0W1JDU10gPSBNSV9TRU1BUEhPUkVfU1lOQ19WUjsKKwkJCXJpbmctPnNlbWFwaG9yZS5t Ym94LndhaXRbVkNTXSA9IE1JX1NFTUFQSE9SRV9TWU5DX0lOVkFMSUQ7CisJCQlyaW5nLT5zZW1h cGhvcmUubWJveC53YWl0W0JDU10gPSBNSV9TRU1BUEhPUkVfU1lOQ19WQjsKKwkJCXJpbmctPnNl bWFwaG9yZS5tYm94LndhaXRbVkVDU10gPSBNSV9TRU1BUEhPUkVfU1lOQ19WVkU7CisJCQlyaW5n LT5zZW1hcGhvcmUubWJveC5zaWduYWxbUkNTXSA9IEdFTjZfUlZTWU5DOworCQkJcmluZy0+c2Vt YXBob3JlLm1ib3guc2lnbmFsW1ZDU10gPSBHRU42X05PU1lOQzsKKwkJCXJpbmctPnNlbWFwaG9y ZS5tYm94LnNpZ25hbFtCQ1NdID0gR0VONl9CVlNZTkM7CisJCQlyaW5nLT5zZW1hcGhvcmUubWJv eC5zaWduYWxbVkVDU10gPSBHRU42X1ZFVlNZTkM7CisJCX0KIAl9IGVsc2UgewogCQlyaW5nLT5t bWlvX2Jhc2UgPSBCU0RfUklOR19CQVNFOwogCQlyaW5nLT5mbHVzaCA9IGJzZF9yaW5nX2ZsdXNo OwpAQCAtMjEyNCwxNiArMjEyNSwxOCBAQCBpbnQgaW50ZWxfaW5pdF9ibHRfcmluZ19idWZmZXIo c3RydWN0IGRybV9kZXZpY2UgKmRldikKIAkJcmluZy0+aXJxX3B1dCA9IGdlbjZfcmluZ19wdXRf aXJxOwogCQlyaW5nLT5kaXNwYXRjaF9leGVjYnVmZmVyID0gZ2VuNl9yaW5nX2Rpc3BhdGNoX2V4 ZWNidWZmZXI7CiAJfQotCXJpbmctPnNlbWFwaG9yZS5zeW5jX3RvID0gZ2VuNl9yaW5nX3N5bmM7 Ci0JcmluZy0+c2VtYXBob3JlLnNpZ25hbCA9IGdlbjZfc2lnbmFsOwotCXJpbmctPnNlbWFwaG9y ZS5tYm94LndhaXRbUkNTXSA9IE1JX1NFTUFQSE9SRV9TWU5DX0JSOwotCXJpbmctPnNlbWFwaG9y ZS5tYm94LndhaXRbVkNTXSA9IE1JX1NFTUFQSE9SRV9TWU5DX0JWOwotCXJpbmctPnNlbWFwaG9y ZS5tYm94LndhaXRbQkNTXSA9IE1JX1NFTUFQSE9SRV9TWU5DX0lOVkFMSUQ7Ci0JcmluZy0+c2Vt YXBob3JlLm1ib3gud2FpdFtWRUNTXSA9IE1JX1NFTUFQSE9SRV9TWU5DX0JWRTsKLQlyaW5nLT5z ZW1hcGhvcmUubWJveC5zaWduYWxbUkNTXSA9IEdFTjZfUkJTWU5DOwotCXJpbmctPnNlbWFwaG9y ZS5tYm94LnNpZ25hbFtWQ1NdID0gR0VONl9WQlNZTkM7Ci0JcmluZy0+c2VtYXBob3JlLm1ib3gu c2lnbmFsW0JDU10gPSBHRU42X05PU1lOQzsKLQlyaW5nLT5zZW1hcGhvcmUubWJveC5zaWduYWxb VkVDU10gPSBHRU42X1ZFQlNZTkM7CisJaWYgKGk5MTVfc2VtYXBob3JlX2lzX2VuYWJsZWQoZGV2 KSkgeworCQlyaW5nLT5zZW1hcGhvcmUuc2lnbmFsID0gZ2VuNl9zaWduYWw7CisJCXJpbmctPnNl bWFwaG9yZS5zeW5jX3RvID0gZ2VuNl9yaW5nX3N5bmM7CisJCXJpbmctPnNlbWFwaG9yZS5tYm94 LndhaXRbUkNTXSA9IE1JX1NFTUFQSE9SRV9TWU5DX0JSOworCQlyaW5nLT5zZW1hcGhvcmUubWJv eC53YWl0W1ZDU10gPSBNSV9TRU1BUEhPUkVfU1lOQ19CVjsKKwkJcmluZy0+c2VtYXBob3JlLm1i b3gud2FpdFtCQ1NdID0gTUlfU0VNQVBIT1JFX1NZTkNfSU5WQUxJRDsKKwkJcmluZy0+c2VtYXBo b3JlLm1ib3gud2FpdFtWRUNTXSA9IE1JX1NFTUFQSE9SRV9TWU5DX0JWRTsKKwkJcmluZy0+c2Vt YXBob3JlLm1ib3guc2lnbmFsW1JDU10gPSBHRU42X1JCU1lOQzsKKwkJcmluZy0+c2VtYXBob3Jl Lm1ib3guc2lnbmFsW1ZDU10gPSBHRU42X1ZCU1lOQzsKKwkJcmluZy0+c2VtYXBob3JlLm1ib3gu c2lnbmFsW0JDU10gPSBHRU42X05PU1lOQzsKKwkJcmluZy0+c2VtYXBob3JlLm1ib3guc2lnbmFs W1ZFQ1NdID0gR0VONl9WRUJTWU5DOworCX0KIAlyaW5nLT5pbml0ID0gaW5pdF9yaW5nX2NvbW1v bjsKIAogCXJldHVybiBpbnRlbF9pbml0X3JpbmdfYnVmZmVyKGRldiwgcmluZyk7CkBAIC0yMTY2 LDE2ICsyMTY5LDE4IEBAIGludCBpbnRlbF9pbml0X3ZlYm94X3JpbmdfYnVmZmVyKHN0cnVjdCBk cm1fZGV2aWNlICpkZXYpCiAJCXJpbmctPmlycV9wdXQgPSBoc3dfdmVib3hfcHV0X2lycTsKIAkJ cmluZy0+ZGlzcGF0Y2hfZXhlY2J1ZmZlciA9IGdlbjZfcmluZ19kaXNwYXRjaF9leGVjYnVmZmVy OwogCX0KLQlyaW5nLT5zZW1hcGhvcmUuc3luY190byA9IGdlbjZfcmluZ19zeW5jOwotCXJpbmct PnNlbWFwaG9yZS5zaWduYWwgPSBnZW42X3NpZ25hbDsKLQlyaW5nLT5zZW1hcGhvcmUubWJveC53 YWl0W1JDU10gPSBNSV9TRU1BUEhPUkVfU1lOQ19WRVI7Ci0JcmluZy0+c2VtYXBob3JlLm1ib3gu d2FpdFtWQ1NdID0gTUlfU0VNQVBIT1JFX1NZTkNfVkVWOwotCXJpbmctPnNlbWFwaG9yZS5tYm94 LndhaXRbQkNTXSA9IE1JX1NFTUFQSE9SRV9TWU5DX1ZFQjsKLQlyaW5nLT5zZW1hcGhvcmUubWJv eC53YWl0W1ZFQ1NdID0gTUlfU0VNQVBIT1JFX1NZTkNfSU5WQUxJRDsKLQlyaW5nLT5zZW1hcGhv cmUubWJveC5zaWduYWxbUkNTXSA9IEdFTjZfUlZFU1lOQzsKLQlyaW5nLT5zZW1hcGhvcmUubWJv eC5zaWduYWxbVkNTXSA9IEdFTjZfVlZFU1lOQzsKLQlyaW5nLT5zZW1hcGhvcmUubWJveC5zaWdu YWxbQkNTXSA9IEdFTjZfQlZFU1lOQzsKLQlyaW5nLT5zZW1hcGhvcmUubWJveC5zaWduYWxbVkVD U10gPSBHRU42X05PU1lOQzsKKwlpZiAoaTkxNV9zZW1hcGhvcmVfaXNfZW5hYmxlZChkZXYpKSB7 CisJCXJpbmctPnNlbWFwaG9yZS5zeW5jX3RvID0gZ2VuNl9yaW5nX3N5bmM7CisJCXJpbmctPnNl bWFwaG9yZS5zaWduYWwgPSBnZW42X3NpZ25hbDsKKwkJcmluZy0+c2VtYXBob3JlLm1ib3gud2Fp dFtSQ1NdID0gTUlfU0VNQVBIT1JFX1NZTkNfVkVSOworCQlyaW5nLT5zZW1hcGhvcmUubWJveC53 YWl0W1ZDU10gPSBNSV9TRU1BUEhPUkVfU1lOQ19WRVY7CisJCXJpbmctPnNlbWFwaG9yZS5tYm94 LndhaXRbQkNTXSA9IE1JX1NFTUFQSE9SRV9TWU5DX1ZFQjsKKwkJcmluZy0+c2VtYXBob3JlLm1i b3gud2FpdFtWRUNTXSA9IE1JX1NFTUFQSE9SRV9TWU5DX0lOVkFMSUQ7CisJCXJpbmctPnNlbWFw aG9yZS5tYm94LnNpZ25hbFtSQ1NdID0gR0VONl9SVkVTWU5DOworCQlyaW5nLT5zZW1hcGhvcmUu bWJveC5zaWduYWxbVkNTXSA9IEdFTjZfVlZFU1lOQzsKKwkJcmluZy0+c2VtYXBob3JlLm1ib3gu c2lnbmFsW0JDU10gPSBHRU42X0JWRVNZTkM7CisJCXJpbmctPnNlbWFwaG9yZS5tYm94LnNpZ25h bFtWRUNTXSA9IEdFTjZfTk9TWU5DOworCX0KIAlyaW5nLT5pbml0ID0gaW5pdF9yaW5nX2NvbW1v bjsKIAogCXJldHVybiBpbnRlbF9pbml0X3JpbmdfYnVmZmVyKGRldiwgcmluZyk7Ci0tIAoxLjku MAoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwt Z2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9s aXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK