From mboxrd@z Thu Jan 1 00:00:00 1970 From: Thomas Hellstrom Subject: [PATCH 4/7] drm/vmwgfx: Command parser fixes for DX Date: Wed, 12 Aug 2015 22:49:05 -0700 Message-ID: <1439444948-4746-5-git-send-email-thellstrom@vmware.com> References: <1439444948-4746-1-git-send-email-thellstrom@vmware.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mx2.bahnhof.se (mx2.bahnhof.se [213.80.101.12]) by gabe.freedesktop.org (Postfix) with ESMTPS id 3CD276EBE4 for ; Wed, 12 Aug 2015 22:49:24 -0700 (PDT) Received: from localhost (mf.bahnhof.se [213.80.101.20]) by mx2-reinject (Postfix) with ESMTP id D214241354 for ; Thu, 13 Aug 2015 07:49:22 +0200 (CEST) Received: from mf1.bahnhof.se ([127.0.0.1]) by localhost (mf1.bahnhof.se [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id nlyXc+Y4MYHg for ; Thu, 13 Aug 2015 07:49:17 +0200 (CEST) Received: from mail.shipmail.org (h-5-150-198-217.na.cust.bahnhof.se [5.150.198.217]) by mf1.bahnhof.se (Postfix) with ESMTP id 353F9386EEB for ; Thu, 13 Aug 2015 07:49:17 +0200 (CEST) Received: from mail.shipmail.org (lin0.kontor.shipmail.org [127.0.0.1]) by mail.shipmail.org (Postfix) with ESMTP id BB3803F400E for ; Thu, 13 Aug 2015 07:49:16 +0200 (CEST) Received: from localhost.localdomain (lin0.kontor.shipmail.org [127.0.0.1]) by mail.shipmail.org (Postfix) with ESMTP id 8685C3F400C for ; Thu, 13 Aug 2015 07:49:16 +0200 (CEST) In-Reply-To: <1439444948-4746-1-git-send-email-thellstrom@vmware.com> 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 List-Id: dri-devel@lists.freedesktop.org RnJvbTogQ2hhcm1haW5lIExlZSA8Y2hhcm1haW5lbEB2bXdhcmUuY29tPgoKSW1wbGVtZW50IHN1 cHBvcnQgZm9yIGEgY291cGxlIG9mIG1pc3NpbmcgY29tbWFuZHMgYW5kIGZpeCBhIGNvbW1hbmQg cGFyc2VyCmVycm9yIHBhdGguIEFsc28gZml4IHVuaW5pdGlhbGl6ZWQgZGV2Y2FwcyBhbmQgc3Vy ZmFjZSBzaXplIGNvbXB1dGF0aW9uLgoKU2lnbmVkLW9mZi1ieTogQ2hhcm1haW5lIExlZSA8Y2hh cm1haW5lbEB2bXdhcmUuY29tPgpTaWduZWQtb2ZmLWJ5OiBTaW5jbGFpciBZZWggPHN5ZWhAdm13 YXJlLmNvbT4KU2lnbmVkLW9mZi1ieTogVGhvbWFzIEhlbGxzdHJvbSA8dGhlbGxzdHJvbUB2bXdh cmUuY29tPgotLS0KIGRyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2NvbnRleHQuYyB8ICAx ICsKIGRyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2V4ZWNidWYuYyB8IDk4ICsrKysrKysr KysrKysrKysrKysrKysrKysrKystLS0tLQogZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhf aW9jdGwuYyAgIHwgIDQgKy0KIGRyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X3N1cmZhY2Uu YyB8ICAxICsKIDQgZmlsZXMgY2hhbmdlZCwgODkgaW5zZXJ0aW9ucygrKSwgMTUgZGVsZXRpb25z KC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfY29udGV4dC5j IGIvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfY29udGV4dC5jCmluZGV4IGFiZmU2N2Mu LmIxNDU4M2QgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2NvbnRl eHQuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9jb250ZXh0LmMKQEAgLTM3 LDYgKzM3LDcgQEAgc3RydWN0IHZtd191c2VyX2NvbnRleHQgewogCXN0cnVjdCB2bXdfY21kYnVm X3Jlc19tYW5hZ2VyICptYW47CiAJc3RydWN0IHZtd19yZXNvdXJjZSAqY290YWJsZXNbU1ZHQV9D T1RBQkxFX0RYMTBfTUFYXTsKIAlzcGlubG9ja190IGNvdGFibGVfbG9jazsKKwlzdHJ1Y3Qgdm13 X2RtYV9idWZmZXIgKmR4X3F1ZXJ5X21vYjsKIH07CiAKIHN0YXRpYyB2b2lkIHZtd191c2VyX2Nv bnRleHRfZnJlZShzdHJ1Y3Qgdm13X3Jlc291cmNlICpyZXMpOwpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfZXhlY2J1Zi5jIGIvZHJpdmVycy9ncHUvZHJtL3Ztd2dm eC92bXdnZnhfZXhlY2J1Zi5jCmluZGV4IDQwMTMwNWIuLjI1NTNiYWEgMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2V4ZWNidWYuYworKysgYi9kcml2ZXJzL2dwdS9k cm0vdm13Z2Z4L3Ztd2dmeF9leGVjYnVmLmMKQEAgLTU1Myw2ICs1NTMsNyBAQCBzdGF0aWMgaW50 IHZtd19yZXNvdXJjZXNfcmVzZXJ2ZShzdHJ1Y3Qgdm13X3N3X2NvbnRleHQgKnN3X2NvbnRleHQp CiAJCQkJcmV0dXJuIHJldDsKIAkJfQogCX0KKwogCXJldHVybiAwOwogfQogCkBAIC0yNDg0LDYg KzI0ODUsNjMgQEAgc3RhdGljIGludCB2bXdfY21kX2R4X3ZpZXdfZGVmaW5lKHN0cnVjdCB2bXdf cHJpdmF0ZSAqZGV2X3ByaXYsCiAJCQkgICAgJnN3X2NvbnRleHQtPnN0YWdlZF9jbWRfcmVzKTsK IH0KIAorLyoqCisgKiB2bXdfY21kX2R4X3NldF9zb190YXJnZXRzIC0gVmFsaWRhdGUgYW4KKyAq IFNWR0FfM0RfQ01EX0RYX1NFVF9TT1RBUkdFVFMgY29tbWFuZC4KKyAqCisgKiBAZGV2X3ByaXY6 IFBvaW50ZXIgdG8gYSBkZXZpY2UgcHJpdmF0ZSBzdHJ1Y3QuCisgKiBAc3dfY29udGV4dDogVGhl IHNvZnR3YXJlIGNvbnRleHQgYmVpbmcgdXNlZCBmb3IgdGhpcyBiYXRjaC4KKyAqIEBoZWFkZXI6 IFBvaW50ZXIgdG8gdGhlIGNvbW1hbmQgaGVhZGVyIGluIHRoZSBjb21tYW5kIHN0cmVhbS4KKyAq Lworc3RhdGljIGludCB2bXdfY21kX2R4X3NldF9zb190YXJnZXRzKHN0cnVjdCB2bXdfcHJpdmF0 ZSAqZGV2X3ByaXYsCisJCQkJICAgICBzdHJ1Y3Qgdm13X3N3X2NvbnRleHQgKnN3X2NvbnRleHQs CisJCQkJICAgICBTVkdBM2RDbWRIZWFkZXIgKmhlYWRlcikKK3sKKwlzdHJ1Y3Qgdm13X3Jlc291 cmNlX3ZhbF9ub2RlICpjdHhfbm9kZSA9IHN3X2NvbnRleHQtPmR4X2N0eF9ub2RlOworCXN0cnVj dCB2bXdfY3R4X2JpbmRpbmZvX3NvIGJpbmRpbmc7CisJc3RydWN0IHZtd19yZXNvdXJjZV92YWxf bm9kZSAqcmVzX25vZGU7CisJc3RydWN0IHsKKwkJU1ZHQTNkQ21kSGVhZGVyIGhlYWRlcjsKKwkJ U1ZHQTNkQ21kRFhTZXRTT1RhcmdldHMgYm9keTsKKwkJU1ZHQTNkU29UYXJnZXQgdGFyZ2V0c1td OworCX0gKmNtZDsKKwlpbnQgaSwgcmV0LCBudW07CisKKwlpZiAodW5saWtlbHkoY3R4X25vZGUg PT0gTlVMTCkpIHsKKwkJRFJNX0VSUk9SKCJEWCBDb250ZXh0IG5vdCBzZXQuXG4iKTsKKwkJcmV0 dXJuIC1FSU5WQUw7CisJfQorCisJY21kID0gY29udGFpbmVyX29mKGhlYWRlciwgdHlwZW9mKCpj bWQpLCBoZWFkZXIpOworCW51bSA9IChjbWQtPmhlYWRlci5zaXplIC0gc2l6ZW9mKGNtZC0+Ym9k eSkpIC8KKwkJc2l6ZW9mKFNWR0EzZFNvVGFyZ2V0KTsKKworCWlmIChudW0gPiBTVkdBM0RfRFhf TUFYX1NPVEFSR0VUUykgeworCQlEUk1fRVJST1IoIkludmFsaWQgRFggU08gYmluZGluZy5cbiIp OworCQlyZXR1cm4gLUVJTlZBTDsKKwl9CisKKwlmb3IgKGkgPSAwOyBpIDwgbnVtOyBpKyspIHsK KwkJcmV0ID0gdm13X2NtZF9yZXNfY2hlY2soZGV2X3ByaXYsIHN3X2NvbnRleHQsIHZtd19yZXNf c3VyZmFjZSwKKwkJCQkJdXNlcl9zdXJmYWNlX2NvbnZlcnRlciwKKwkJCQkJJmNtZC0+dGFyZ2V0 c1tpXS5zaWQsICZyZXNfbm9kZSk7CisJCWlmICh1bmxpa2VseShyZXQgIT0gMCkpCisJCQlyZXR1 cm4gcmV0OworCisJCWJpbmRpbmcuYmkuY3R4ID0gY3R4X25vZGUtPnJlczsKKwkJYmluZGluZy5i aS5yZXMgPSAoKHJlc19ub2RlKSA/IHJlc19ub2RlLT5yZXMgOiBOVUxMKTsKKwkJYmluZGluZy5i aS5idCA9IHZtd19jdHhfYmluZGluZ19zbywKKwkJYmluZGluZy5vZmZzZXQgPSBjbWQtPnRhcmdl dHNbaV0ub2Zmc2V0OworCQliaW5kaW5nLnNpemUgPSBjbWQtPnRhcmdldHNbaV0uc2l6ZUluQnl0 ZXM7CisJCWJpbmRpbmcuc2xvdCA9IGk7CisKKwkJdm13X2JpbmRpbmdfYWRkKGN0eF9ub2RlLT5z dGFnZWRfYmluZGluZ3MsICZiaW5kaW5nLmJpLAorCQkJCTAsIGJpbmRpbmcuc2xvdCk7CisJfQor CisJcmV0dXJuIDA7Cit9CisKIHN0YXRpYyBpbnQgdm13X2NtZF9keF9zb19kZWZpbmUoc3RydWN0 IHZtd19wcml2YXRlICpkZXZfcHJpdiwKIAkJCQlzdHJ1Y3Qgdm13X3N3X2NvbnRleHQgKnN3X2Nv bnRleHQsCiAJCQkJU1ZHQTNkQ21kSGVhZGVyICpoZWFkZXIpCkBAIC0yOTcxLDExICszMDI5LDE3 IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgdm13X2NtZF9lbnRyeSB2bXdfY21kX2VudHJpZXNbU1ZH QV8zRF9DTURfTUFYXSA9IHsKIAkJICAgICZ2bXdfY21kX2R4X3NldF9zaGFkZXJfcmVzLCB0cnVl LCBmYWxzZSwgdHJ1ZSksCiAJVk1XX0NNRF9ERUYoU1ZHQV8zRF9DTURfRFhfU0VUX1NIQURFUiwg JnZtd19jbWRfZHhfc2V0X3NoYWRlciwKIAkJICAgIHRydWUsIGZhbHNlLCB0cnVlKSwKLQlWTVdf Q01EX0RFRihTVkdBXzNEX0NNRF9EWF9EUkFXX0lOU1RBTkNFRCwgJnZtd19jbWRfaW52YWxpZCwK KwlWTVdfQ01EX0RFRihTVkdBXzNEX0NNRF9EWF9TRVRfU0FNUExFUlMsICZ2bXdfY21kX2R4X2Np ZF9jaGVjaywKKwkJICAgIHRydWUsIGZhbHNlLCB0cnVlKSwKKwlWTVdfQ01EX0RFRihTVkdBXzNE X0NNRF9EWF9EUkFXLCAmdm13X2NtZF9keF9jaWRfY2hlY2ssCisJCSAgICB0cnVlLCBmYWxzZSwg dHJ1ZSksCisJVk1XX0NNRF9ERUYoU1ZHQV8zRF9DTURfRFhfRFJBV19JTkRFWEVELCAmdm13X2Nt ZF9keF9jaWRfY2hlY2ssCiAJCSAgICB0cnVlLCBmYWxzZSwgdHJ1ZSksCi0JVk1XX0NNRF9ERUYo U1ZHQV8zRF9DTURfRFhfRFJBV19JTkRFWEVEX0lOU1RBTkNFRCwgJnZtd19jbWRfaW52YWxpZCwK KwlWTVdfQ01EX0RFRihTVkdBXzNEX0NNRF9EWF9EUkFXX0lOU1RBTkNFRCwgJnZtd19jbWRfZHhf Y2lkX2NoZWNrLAogCQkgICAgdHJ1ZSwgZmFsc2UsIHRydWUpLAotCVZNV19DTURfREVGKFNWR0Ff M0RfQ01EX0RYX0RSQVdfQVVUTywgJnZtd19jbWRfaW52YWxpZCwKKwlWTVdfQ01EX0RFRihTVkdB XzNEX0NNRF9EWF9EUkFXX0lOREVYRURfSU5TVEFOQ0VELAorCQkgICAgJnZtd19jbWRfZHhfY2lk X2NoZWNrLCB0cnVlLCBmYWxzZSwgdHJ1ZSksCisJVk1XX0NNRF9ERUYoU1ZHQV8zRF9DTURfRFhf RFJBV19BVVRPLCAmdm13X2NtZF9keF9jaWRfY2hlY2ssCiAJCSAgICB0cnVlLCBmYWxzZSwgdHJ1 ZSksCiAJVk1XX0NNRF9ERUYoU1ZHQV8zRF9DTURfRFhfU0VUX1ZFUlRFWF9CVUZGRVJTLAogCQkg ICAgJnZtd19jbWRfZHhfc2V0X3ZlcnRleF9idWZmZXJzLCB0cnVlLCBmYWxzZSwgdHJ1ZSksCkBA IC0yOTg1LDExICszMDQ5LDEwIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgdm13X2NtZF9lbnRyeSB2 bXdfY21kX2VudHJpZXNbU1ZHQV8zRF9DTURfTUFYXSA9IHsKIAkJICAgICZ2bXdfY21kX2R4X3Nl dF9yZW5kZXJ0YXJnZXRzLCB0cnVlLCBmYWxzZSwgdHJ1ZSksCiAJVk1XX0NNRF9ERUYoU1ZHQV8z RF9DTURfRFhfU0VUX0JMRU5EX1NUQVRFLCAmdm13X2NtZF9keF9jaWRfY2hlY2ssCiAJCSAgICB0 cnVlLCBmYWxzZSwgdHJ1ZSksCi0JVk1XX0NNRF9ERUYoU1ZHQV8zRF9DTURfRFhfU0VUX1JBU1RF UklaRVJfU1RBVEUsICZ2bXdfY21kX2R4X2NpZF9jaGVjaywKLQkJICAgIHRydWUsIGZhbHNlLCB0 cnVlKSwKIAlWTVdfQ01EX0RFRihTVkdBXzNEX0NNRF9EWF9TRVRfREVQVEhTVEVOQ0lMX1NUQVRF LAotCQkgICAgJnZtd19jbWRfZHhfY2lkX2NoZWNrLAotCQkgICAgdHJ1ZSwgZmFsc2UsIHRydWUp LAorCQkgICAgJnZtd19jbWRfZHhfY2lkX2NoZWNrLCB0cnVlLCBmYWxzZSwgdHJ1ZSksCisJVk1X X0NNRF9ERUYoU1ZHQV8zRF9DTURfRFhfU0VUX1JBU1RFUklaRVJfU1RBVEUsCisJCSAgICAmdm13 X2NtZF9keF9jaWRfY2hlY2ssIHRydWUsIGZhbHNlLCB0cnVlKSwKIAlWTVdfQ01EX0RFRihTVkdB XzNEX0NNRF9EWF9ERUZJTkVfUVVFUlksICZ2bXdfY21kX2ludmFsaWQsCiAJCSAgICB0cnVlLCBm YWxzZSwgdHJ1ZSksCiAJVk1XX0NNRF9ERUYoU1ZHQV8zRF9DTURfRFhfREVTVFJPWV9RVUVSWSwg JnZtd19jbWRfaW52YWxpZCwKQEAgLTMwNjYsOCArMzEyOSwxMCBAQCBzdGF0aWMgY29uc3Qgc3Ry dWN0IHZtd19jbWRfZW50cnkgdm13X2NtZF9lbnRyaWVzW1NWR0FfM0RfQ01EX01BWF0gPSB7CiAJ CSAgICAmdm13X2NtZF9keF9zb19kZWZpbmUsIHRydWUsIGZhbHNlLCB0cnVlKSwKIAlWTVdfQ01E X0RFRihTVkdBXzNEX0NNRF9EWF9ERVNUUk9ZX1NUUkVBTU9VVFBVVCwKIAkJICAgICZ2bXdfY21k X2R4X2NpZF9jaGVjaywgdHJ1ZSwgZmFsc2UsIHRydWUpLAotCVZNV19DTURfREVGKFNWR0FfM0Rf Q01EX0RYX1NFVF9TVFJFQU1PVVRQVVQsICZ2bXdfY21kX2ludmFsaWQsCisJVk1XX0NNRF9ERUYo U1ZHQV8zRF9DTURfRFhfU0VUX1NUUkVBTU9VVFBVVCwgJnZtd19jbWRfZHhfY2lkX2NoZWNrLAog CQkgICAgdHJ1ZSwgZmFsc2UsIHRydWUpLAorCVZNV19DTURfREVGKFNWR0FfM0RfQ01EX0RYX1NF VF9TT1RBUkdFVFMsCisJCSAgICAmdm13X2NtZF9keF9zZXRfc29fdGFyZ2V0cywgdHJ1ZSwgZmFs c2UsIHRydWUpLAogCVZNV19DTURfREVGKFNWR0FfM0RfQ01EX0RYX1NFVF9JTlBVVF9MQVlPVVQs CiAJCSAgICAmdm13X2NtZF9keF9jaWRfY2hlY2ssIHRydWUsIGZhbHNlLCB0cnVlKSwKIAlWTVdf Q01EX0RFRihTVkdBXzNEX0NNRF9EWF9TRVRfVE9QT0xPR1ksCkBAIC0zNjIxLDE0ICszNjg2LDE0 IEBAIGludCB2bXdfZXhlY2J1Zl9wcm9jZXNzKHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2LAog CXVpbnQzMl90IGhhbmRsZTsKIAlpbnQgcmV0OwogCi0gICAgIAlpZiAodGhyb3R0bGVfdXMpIHsK KwlpZiAodGhyb3R0bGVfdXMpIHsKIAkJcmV0ID0gdm13X3dhaXRfbGFnKGRldl9wcml2LCAmZGV2 X3ByaXYtPmZpZm8ubWFya2VyX3F1ZXVlLAogCQkJCSAgIHRocm90dGxlX3VzKTsKLQkJCisKIAkJ aWYgKHJldCkKIAkJCXJldHVybiByZXQ7CiAJfQotCQorCiAJa2VybmVsX2NvbW1hbmRzID0gdm13 X2V4ZWNidWZfY21kYnVmKGRldl9wcml2LCB1c2VyX2NvbW1hbmRzLAogCQkJCQkgICAgIGtlcm5l bF9jb21tYW5kcywgY29tbWFuZF9zaXplLAogCQkJCQkgICAgICZoZWFkZXIpOwpAQCAtMzY5Miwx MSArMzc1NywxOCBAQCBpbnQgdm13X2V4ZWNidWZfcHJvY2VzcyhzdHJ1Y3QgZHJtX2ZpbGUgKmZp bGVfcHJpdiwKIAogCXJldCA9IHZtd19jbWRfY2hlY2tfYWxsKGRldl9wcml2LCBzd19jb250ZXh0 LCBrZXJuZWxfY29tbWFuZHMsCiAJCQkJY29tbWFuZF9zaXplKTsKLQlpZiAodW5saWtlbHkocmV0 ICE9IDApKQotCQlnb3RvIG91dF9lcnJfbm9yZXM7CiAKKwkvKgorCSAqIE1lcmdlIHRoZSByZXNv dXJjZSBsaXN0cyBiZWZvcmUgY2hlY2tpbmcgdGhlIHJldHVybiBzdGF0dXMKKwkgKiBmcm9tIHZt ZF9jbWRfY2hlY2tfYWxsIHNvIHRoYXQgYWxsIHRoZSBvcGVuIGhhc2h0YWJzIHdpbGwKKwkgKiBi ZSBoYW5kbGVkIHByb3Blcmx5IGV2ZW4gaWYgdm13X2NtZF9jaGVja19hbGwgZmFpbHMuCisJICov CiAJbGlzdF9zcGxpY2VfaW5pdCgmc3dfY29udGV4dC0+Y3R4X3Jlc291cmNlX2xpc3QsCiAJCQkg JnN3X2NvbnRleHQtPnJlc291cmNlX2xpc3QpOworCisJaWYgKHVubGlrZWx5KHJldCAhPSAwKSkK KwkJZ290byBvdXRfZXJyX25vcmVzOworCiAJcmV0ID0gdm13X3Jlc291cmNlc19yZXNlcnZlKHN3 X2NvbnRleHQpOwogCWlmICh1bmxpa2VseShyZXQgIT0gMCkpCiAJCWdvdG8gb3V0X2Vycl9ub3Jl czsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2lvY3RsLmMgYi9k cml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9pb2N0bC5jCmluZGV4IGRjYTdmN2YuLjg5MzM1 OWMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2lvY3RsLmMKKysr IGIvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfaW9jdGwuYwpAQCAtMTk2LDggKzE5Niw4 IEBAIGludCB2bXdfZ2V0X2NhcF8zZF9pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lk ICpkYXRhLAogCQl1aW50MzJfdCAqYm91bmNlMzIgPSAodWludDMyX3QgKikgYm91bmNlOwogCiAJ CW51bSA9IHNpemUgLyBzaXplb2YodWludDMyX3QpOwotCQlpZiAobnVtID4gU1ZHQTNEX0RFVkNB UF9EWCkKLQkJCW51bSA9IFNWR0EzRF9ERVZDQVBfRFg7CisJCWlmIChudW0gPiBTVkdBM0RfREVW Q0FQX01BWCkKKwkJCW51bSA9IFNWR0EzRF9ERVZDQVBfTUFYOwogCiAJCXNwaW5fbG9jaygmZGV2 X3ByaXYtPmNhcF9sb2NrKTsKIAkJZm9yIChpID0gMDsgaSA8IG51bTsgKytpKSB7CmRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9zdXJmYWNlLmMgYi9kcml2ZXJzL2dw dS9kcm0vdm13Z2Z4L3Ztd2dmeF9zdXJmYWNlLmMKaW5kZXggMTJhZGUwYy4uY2E0OTZhNiAxMDA2 NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfc3VyZmFjZS5jCisrKyBiL2Ry aXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X3N1cmZhY2UuYwpAQCAtMTUzMyw2ICsxNTMzLDcg QEAgaW50IHZtd19zdXJmYWNlX2diX3ByaXZfZGVmaW5lKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYs CiAJc3JmLT5vZmZzZXRzICAgICAgICAgICA9IE5VTEw7CiAJc3JmLT5iYXNlX3NpemUgICAgICAg ICA9IHNpemU7CiAJc3JmLT5hdXRvZ2VuX2ZpbHRlciAgICA9IFNWR0EzRF9URVhfRklMVEVSX05P TkU7CisJc3JmLT5hcnJheV9zaXplICAgICAgICA9IGFycmF5X3NpemU7CiAJc3JmLT5tdWx0aXNh bXBsZV9jb3VudCA9IG11bHRpc2FtcGxlX2NvdW50OwogCiAJaWYgKGFycmF5X3NpemUpCi0tIAoy LjEuMAoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRy aS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRw Oi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg==