From mboxrd@z Thu Jan 1 00:00:00 1970 From: yu.dai@intel.com Subject: [PATCH v2 13/18] drm/i915: Enable commands submission via GuC Date: Fri, 3 Apr 2015 11:08:39 -0700 Message-ID: <1428084524-28437-14-git-send-email-yu.dai@intel.com> References: <1428084524-28437-1-git-send-email-yu.dai@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 F17596EBBE for ; Fri, 3 Apr 2015 11:10:22 -0700 (PDT) In-Reply-To: <1428084524-28437-1-git-send-email-yu.dai@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@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org RnJvbTogQWxleCBEYWkgPHl1LmRhaUBpbnRlbC5jb20+CgpBZGQgZnVuY3Rpb25zIHRvIHN1Ym1p dCB3b3JrIHF1ZXVlIGl0ZW0gYW5kIHJpbmcgdGhlIGRvb3IgYmVsbC4KR3VDIFRMQiBuZWVkcyB0 byBiZSBpbnZhbGlkZWQgaWYgTFJDIGNvbnRleHQgY2hhbmdlcy4KCklzc3VlOiBWSVotNDg4NApT aWduZWQtb2ZmLWJ5OiBBbGV4IERhaSA8eXUuZGFpQGludGVsLmNvbT4KLS0tCiBkcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9ndWMuaCAgICAgICAgICAgfCAgIDMgKwogZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfZ3VjX2NsaWVudC5jICAgIHwgMTgyICsrKysrKysrKysrKysrKysrKysrKysr KysrKystCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ndWNfc2NoZWR1bGVyLmMgfCAgIDIg Ky0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5jICAgICAgICAgICB8ICAxNiArKy0K IDQgZmlsZXMgY2hhbmdlZCwgMjAwIGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCgpkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZ3VjLmggYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9ndWMuaAppbmRleCA0ZDlmYjM0Li5jNDRiM2MwIDEwMDY0NAotLS0gYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ndWMuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9ndWMuaApAQCAtMzEsNiArMzEsNyBAQAogI2RlZmluZSBHVUNfV1FfU0laRQkoUEFH RV9TSVpFICogMikKIAogc3RydWN0IGk5MTVfZ3VjX2NsaWVudCB7CisJc3BpbmxvY2tfdCB3cV9s b2NrOwogCXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpjbGllbnRfb2JqOwogCXUzMiBwcmlv cml0eTsKIAlvZmZfdCBkb29yYmVsbF9vZmZzZXQ7CkBAIC0zOSw2ICs0MCw4IEBAIHN0cnVjdCBp OTE1X2d1Y19jbGllbnQgewogCXVpbnQxNl90IGRvb3JiZWxsX2lkOwogCXVpbnQzMl90IGN0eF9p bmRleDsKIAl1aW50MzJfdCB3cV9zaXplOworCXVpbnQzMl90IHdxX3RhaWw7CisJdWludDMyX3Qg Y29va2llOwogfTsKIAogI2RlZmluZSBJOTE1X01BWF9ET09SQkVMTFMJMjU2CmRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ndWNfY2xpZW50LmMgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9ndWNfY2xpZW50LmMKaW5kZXggYWU2MzIzYS4uZDY0Y2FkNiAxMDA2NDQK LS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZ3VjX2NsaWVudC5jCisrKyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2d1Y19jbGllbnQuYwpAQCAtMjIsNiArMjIsNyBAQAogICoK ICAqLwogI2luY2x1ZGUgPGxpbnV4L2Zpcm13YXJlLmg+CisjaW5jbHVkZSA8bGludXgvY2lyY19i dWYuaD4KICNpbmNsdWRlICJpOTE1X2Rydi5oIgogI2luY2x1ZGUgImludGVsX2d1Yy5oIgogCkBA IC01Miw2ICs1MywxNCBAQAogICogRG9vcmJlbGxzIGFyZSBpbnRlcnJ1cHRzIHRvIHVLZXJuZWwu IEEgZG9vcmJlbGwgaXMgYSBzaW5nbGUgY2FjaGUgbGluZSAoUVcpCiAgKiBtYXBwZWQgaW50byBw cm9jZXNzIHNwYWNlLgogICoKKyAqIFdvcmsgSXRlbXM6CisgKiBUaGVyZSBhcmUgc2V2ZXJhbCB0 eXBlcyBvZiB3b3JrIGl0ZW1zIHRoYXQgdGhlIGhvc3QgbWF5IHBsYWNlIGludG8gYQorICogd29y a3F1ZXVlLCBlYWNoIHdpdGggaXRzIG93biByZXF1aXJlbWVudHMgYW5kIGxpbWl0YXRpb25zLiBD dXJyZW50bHkgb25seQorICogV1FfVFlQRV9JTk9SREVSIGlzIG5lZWRlZCB0byBzdXBwb3J0IGxl Z2FjeSBzdWJtaXNzaW9uIHZpYSBHdUMsIHdoaWNoCisgKiByZXByZXNlbnRzIGluLW9yZGVyIHF1 ZXVlLiBUaGUga2VybmVsIGRyaXZlciBwYWNrcyByaW5nIHRhaWwgcG9pbnRlciBhbmQgYW4KKyAq IEVMU1AgY29udGV4dCBkZXNjcmlwdG9yIGR3b3JkIGludG8gV29yayBJdGVtLgorICogU2VlIGFk ZF93b3JrcXVldWVfaXRlbSgpCisgKgogICovCiAKIC8qCkBAIC00MTEsNiArNDIwLDggQEAgaTkx NV9ndWNfY2xpZW50X2FsbG9jKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHUzMiBwcmlvcml0eSkK IAkJLyogWFhYOiBldmljdCBhIGRvb3JiZWxsIGluc3RlYWQgKi8KIAkJZ290byBlcnI7CiAKKwlz cGluX2xvY2tfaW5pdCgmY2xpZW50LT53cV9sb2NrKTsKKwogCWluaXRfY3R4X2Rlc2MoZ3VjLCBj bGllbnQpOwogCWluaXRfcHJvY19kZXNjKGd1YywgY2xpZW50KTsKIAlpbml0X2Rvb3JiZWxsKGd1 YywgY2xpZW50KTsKQEAgLTQzMCw2ICs0NDEsMTY3IEBAIGVycjoKIAlyZXR1cm4gTlVMTDsKIH0K IAorLyogR2V0IHZhbGlkIHdvcmtxdWV1ZSBpdGVtIGFuZCByZXR1cm4gaXQgYmFjayB0byBvZmZz ZXQgKi8KK3N0YXRpYyBpbnQgZ2V0X3dvcmtxdWV1ZV9zcGFjZShzdHJ1Y3QgaTkxNV9ndWNfY2xp ZW50ICpnYywgdTMyICpvZmZzZXQpCit7CisJc3RydWN0IGd1Y19wcm9jZXNzX2Rlc2MgKmRlc2M7 CisJdm9pZCAqYmFzZTsKKwl1MzIgc2l6ZSA9IHNpemVvZihzdHJ1Y3QgZ3VjX3dxX2l0ZW0pOwor CWludCByZXQgPSAwLCB0aW1lb3V0X2NvdW50ZXIgPSAyMDA7CisJdW5zaWduZWQgbG9uZyBmbGFn czsKKworCWJhc2UgPSBrbWFwX2F0b21pYyhpOTE1X2dlbV9vYmplY3RfZ2V0X3BhZ2UoZ2MtPmNs aWVudF9vYmosIDApKTsKKwlkZXNjID0gYmFzZSArIGdjLT5wcm9jX2Rlc2Nfb2Zmc2V0OworCisJ d2hpbGUgKHRpbWVvdXRfY291bnRlci0tID4gMCkgeworCQlzcGluX2xvY2tfaXJxc2F2ZSgmZ2Mt PndxX2xvY2ssIGZsYWdzKTsKKworCQlyZXQgPSB3YWl0X2ZvcihDSVJDX1NQQUNFKGdjLT53cV90 YWlsLCBkZXNjLT5oZWFkLAorCQkJICAgICAgIGdjLT53cV9zaXplKSA+PSBzaXplLCAxKTsKKwor CQlpZiAoIXJldCkgeworCQkJKm9mZnNldCA9IGdjLT53cV90YWlsOworCisJCQkvKiBhZHZhbmNl IHRoZSB0YWlsIGZvciBuZXh0IHdvcmtxdWV1ZSBpdGVtICovCisJCQlnYy0+d3FfdGFpbCArPSBz aXplOworCQkJZ2MtPndxX3RhaWwgJj0gZ2MtPndxX3NpemUgLSAxOworCisJCQkvKiB0aGlzIHdp bGwgYnJlYWsgdGhlIGxvb3AgKi8KKwkJCXRpbWVvdXRfY291bnRlciA9IDA7CisJCX0KKworCQlz cGluX3VubG9ja19pcnFyZXN0b3JlKCZnYy0+d3FfbG9jaywgZmxhZ3MpOworCX07CisKKwlrdW5t YXBfYXRvbWljKGJhc2UpOworCisJcmV0dXJuIHJldDsKK30KKworCitzdGF0aWMgaW50IGFkZF93 b3JrcXVldWVfaXRlbShzdHJ1Y3QgaTkxNV9ndWNfY2xpZW50ICpnYywKKwkJCSAgICAgIHN0cnVj dCBpbnRlbF9jb250ZXh0ICpjdHgsCisJCQkgICAgICBzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpy aW5nKQoreworCXN0cnVjdCBpbnRlbF9yaW5nYnVmZmVyICpyaW5nYnVmID0gY3R4LT5lbmdpbmVb cmluZy0+aWRdLnJpbmdidWY7CisJc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKmN0eF9vYmo7 CisJc3RydWN0IGd1Y193cV9pdGVtICp3cWk7CisJdm9pZCAqYmFzZTsKKwlzdHJ1Y3QgcGFnZSAq cGFnZTsKKwl1MzIgd3Ffb2ZmID0gMCwgdGFpbCA9IHJpbmdidWYtPnRhaWwsIHdxX2xlbjsKKwlp bnQgcmV0OworCisJY3R4X29iaiA9IGN0eC0+ZW5naW5lW3JpbmctPmlkXS5zdGF0ZTsKKworCVdB Uk5fT04oIWk5MTVfZ2VtX29ial9pc19waW5uZWQoY3R4X29iaikpOworCVdBUk5fT04oIWk5MTVf Z2VtX29ial9pc19waW5uZWQocmluZ2J1Zi0+b2JqKSk7CisKKwkvKiBOZWVkIHRoaXMgYmVjYXVz ZSBvZiB0aGUgZGVmZXJyZWQgcGluIGN0eCBhbmQgcmluZyAqLworCS8qIFNoYWxsIHdlIG1vdmUg dGhpcyByaWdodCBhZnRlciByaW5nIGlzIHBpbm5lZD8gKi8KKwlwYWdlID0gaTkxNV9nZW1fb2Jq ZWN0X2dldF9wYWdlKGN0eF9vYmosIDEpOworCWJhc2UgPSBrbWFwX2F0b21pYyhwYWdlKTsKKwor CSooKHUzMiAqKWJhc2UgKyBDVFhfUklOR19CVUZGRVJfU1RBUlQgKyAxKSA9CisJCWk5MTVfZ2Vt X29ial9nZ3R0X29mZnNldChyaW5nYnVmLT5vYmopOworCisJa3VubWFwX2F0b21pYyhiYXNlKTsK KworCXJldCA9IGdldF93b3JrcXVldWVfc3BhY2UoZ2MsICZ3cV9vZmYpOworCWlmIChyZXQpCisJ CXJldHVybiByZXQ7CisKKwkvKiBGb3Igbm93IHdvcmtxdWV1ZSBpdGVtIGlzIDQgRFdzOyB3b3Jr cXVldWUgYnVmZmVyIGlzIDIgcGFnZXMuIFNvIHdlCisJICogc2hvdWxkIG5vdCBoYXZlIHRoZSBj YXNlIHdoZXJlIHN0cnVjdHVyZSB3cWkgaXMgYWNyb3NzIHBhZ2UsIG5laXRoZXIKKwkgKiB3cmFw cGVkIHRvIHRoZSBiZWdpbm5pbmcuIFRoaXMgc2ltcGxpZmllcyB0aGUgaW1wbGVtZW50YXRpb24g YmVsb3cuCisJICoKKwkgKiBYWFg6IGlmIG5vdCB0aGUgY2FzZSwgd2UgbmVlZCBzYXZlIGRhdGEg dG8gYSB0ZW1wIHdxaSBhbmQgY29weSBpdCB0bworCSAqIHdvcmtxdWV1ZSBidWZmZXIgZHcgYnkg ZHcuCisJICovCisJV0FSTl9PTihzaXplb2Yoc3RydWN0IGd1Y193cV9pdGVtKSAhPSAxNik7CisJ V0FSTl9PTih3cV9vZmYgJiAzKTsKKworCS8qIHdxIHN0YXJ0cyBmcm9tIHRoZSBwYWdlIGFmdGVy IGRvb3JiZWxsIC8gcHJvY2Vzc19kZXNjICovCisJYmFzZSA9IGttYXBfYXRvbWljKGk5MTVfZ2Vt X29iamVjdF9nZXRfcGFnZShnYy0+Y2xpZW50X29iaiwKKwkJCSh3cV9vZmYgKyBHVUNfREJfU0la RSkgPj4gUEFHRV9TSElGVCkpOworCXdxX29mZiAmPSBQQUdFX1NJWkUgLSAxOworCXdxaSA9IChz dHJ1Y3QgZ3VjX3dxX2l0ZW0gKikoKGNoYXIgKiliYXNlICsgd3Ffb2ZmKTsKKworCS8qIGxlbiBk b2VzIG5vdCBpbmNsdWRlIHRoZSBoZWFkZXIgKi8KKwl3cV9sZW4gPSBzaXplb2Yoc3RydWN0IGd1 Y193cV9pdGVtKSAvIHNpemVvZih1MzIpIC0gMTsKKwl3cWktPmhlYWRlciA9IFdRX1RZUEVfSU5P UkRFUiB8CisJCQkod3FfbGVuIDw8IFdRX0xFTl9TSElGVCkgfAorCQkJKHJpbmctPmlkIDw8IFdR X1RBUkdFVF9TSElGVCkgfAorCQkJV1FfTk9fV0NGTFVTSF9XQUlUOworCisJd3FpLT5jb250ZXh0 X2Rlc2MgPSAodTMyKWV4ZWNsaXN0c19jdHhfZGVzY3JpcHRvcihyaW5nLCBjdHhfb2JqKTsKKwkv KiB0YWlsIGluZGV4IGlzIGluIHF3ICovCisJdGFpbCA+Pj0gMzsKKwl3cWktPnJpbmdfdGFpbCA9 IHRhaWwgPDwgV1FfUklOR19UQUlMX1NISUZUOworCXdxaS0+ZmVuY2VfaWQgPSAwOyAvKlhYWDog d2hhdCBmZW5jZSB0byBiZSBoZXJlICovCisKKwlrdW5tYXBfYXRvbWljKGJhc2UpOworCisJcmV0 dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgcmluZ19kb29yYmVsbChzdHJ1Y3QgaTkxNV9ndWNfY2xp ZW50ICpnYykKK3sKKwlzdHJ1Y3QgZ3VjX3Byb2Nlc3NfZGVzYyAqZGVzYzsKKwl1bmlvbiBndWNf ZG9vcmJlbGxfcXcgZGJfY21wLCBkYl9leGMsIGRiX3JldDsKKwl1bmlvbiBndWNfZG9vcmJlbGxf cXcgKmRiOworCXZvaWQgKmJhc2U7CisJaW50IGF0dGVtcHQgPSAyLCByZXQgPSAtRUFHQUlOOwor CisJYmFzZSA9IGttYXBfYXRvbWljKGk5MTVfZ2VtX29iamVjdF9nZXRfcGFnZShnYy0+Y2xpZW50 X29iaiwgMCkpOworCWRlc2MgPSBiYXNlICsgZ2MtPnByb2NfZGVzY19vZmZzZXQ7CisKKwkvKiBV cGRhdGUgdGhlIHRhaWwgc28gaXQgaXMgdmlzaWJsZSB0byBHdUMgKi8KKwlkZXNjLT50YWlsID0g Z2MtPndxX3RhaWw7CisKKwkvKiBjdXJyZW50IGNvb2tpZSAqLworCWRiX2NtcC5kYl9zdGF0dXMg PSBHVUNfRE9PUkJFTExfRU5BQkxFRDsKKwlkYl9jbXAuY29va2llID0gZ2MtPmNvb2tpZTsKKwor CS8qIGNvb2tpZSB0byBiZSB1cGRhdGVkICovCisJZGJfZXhjLmRiX3N0YXR1cyA9IEdVQ19ET09S QkVMTF9FTkFCTEVEOworCWRiX2V4Yy5jb29raWUgPSBnYy0+Y29va2llICsgMTsKKwlpZiAoZGJf ZXhjLmNvb2tpZSA9PSAwKQorCQlkYl9leGMuY29va2llID0gMTsKKworCS8qIHBvaW50ZXIgb2Yg Y3VycmVudCBkb29yYmVsbCBjYWNoZWxpbmUgKi8KKwlkYiA9IGJhc2UgKyBnYy0+ZG9vcmJlbGxf b2Zmc2V0OworCisJd2hpbGUgKGF0dGVtcHQtLSkgeworCQkvKiBsZXRzIHJpbmcgdGhlIGRvb3Ji ZWxsICovCisJCWRiX3JldC52YWx1ZV9xdyA9IGF0b21pYzY0X2NtcHhjaGcoKGF0b21pYzY0X3Qg KilkYiwKKwkJCWRiX2NtcC52YWx1ZV9xdywgZGJfZXhjLnZhbHVlX3F3KTsKKworCQkvKiBpZiB0 aGUgZXhjaGFuZ2Ugd2FzIHN1Y2Nlc3NmdWxseSBleGVjdXRlZCAqLworCQlpZiAoZGJfcmV0LnZh bHVlX3F3ID09IGRiX2NtcC52YWx1ZV9xdykgeworCQkJLyogZGIgd2FzIHN1Y2Nlc3NmdWxseSBy dW5nICovCisJCQlnYy0+Y29va2llID0gZGJfZXhjLmNvb2tpZTsKKwkJCXJldCA9IDA7CisJCQli cmVhazsKKwkJfQorCisJCS8qIFhYWDogZG9vcmJlbGwgd2FzIGxvc3QgYW5kIG5lZWQgdG8gYWNx dWlyZSBpdCBhZ2FpbiAqLworCQlpZiAoZGJfcmV0LmRiX3N0YXR1cyA9PSBHVUNfRE9PUkJFTExf RElTQUJMRUQpCisJCQlicmVhazsKKworCQlEUk1fRVJST1IoIkNvb2tpZSBtaXNtYXRjaC4gRXhw ZWN0ZWQgJWQsIHJldHVybmVkICVkXG4iLAorCQkJICBkYl9jbXAuY29va2llLCBkYl9yZXQuY29v a2llKTsKKworCQkvKiB1cGRhdGUgdGhlIGNvb2tpZSB0byBuZXdseSByZWFkIGNvb2tpZSBmcm9t IEd1QyAqLworCQlkYl9jbXAuY29va2llID0gZGJfcmV0LmNvb2tpZTsKKwkJZGJfZXhjLmNvb2tp ZSA9IGRiX3JldC5jb29raWUgKyAxOworCQlpZiAoZGJfZXhjLmNvb2tpZSA9PSAwKQorCQkJZGJf ZXhjLmNvb2tpZSA9IDE7CisJfQorCisJa3VubWFwX2F0b21pYyhiYXNlKTsKKwlyZXR1cm4gcmV0 OworfQorCiAvKioKICAqIGk5MTVfZ3VjX2NsaWVudF9zdWJtaXQoKSAtIFN1Ym1pdCBjb21tYW5k cyB0aHJvdWdoIEd1QwogICogQGNsaWVudDoJdGhlIGd1YyBjbGllbnQgd2hlcmUgY29tbWFuZHMg d2lsbCBnbyB0aHJvdWdoCkBAIC00NDIsNSArNjE0LDEzIEBAIGludCBpOTE1X2d1Y19jbGllbnRf c3VibWl0KHN0cnVjdCBpOTE1X2d1Y19jbGllbnQgKmNsaWVudCwKIAkJCSAgIHN0cnVjdCBpbnRl bF9jb250ZXh0ICpjdHgsCiAJCQkgICBzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nKQogewot CXJldHVybiAwOworCWludCByZXQ7CisKKwlyZXQgPSBhZGRfd29ya3F1ZXVlX2l0ZW0oY2xpZW50 LCBjdHgsIHJpbmcpOworCWlmIChyZXQpCisJCXJldHVybiByZXQ7CisKKwlyZXQgPSByaW5nX2Rv b3JiZWxsKGNsaWVudCk7CisKKwlyZXR1cm4gcmV0OwogfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfZ3VjX3NjaGVkdWxlci5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfZ3VjX3NjaGVkdWxlci5jCmluZGV4IDAwOGY3NGMuLmMwYjcyMzEgMTAwNjQ0Ci0tLSBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2d1Y19zY2hlZHVsZXIuYworKysgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9ndWNfc2NoZWR1bGVyLmMKQEAgLTE2MCw2ICsxNjAsNiBAQCBi b29sIHNhbml0aXplX2VuYWJsZV9ndWNfc2NoZWR1bGluZyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 KQogCWlmICghSEFTX0dVQ19VQ09ERShkZXYpIHx8ICFIQVNfR1VDX1NDSEVEKGRldikpCiAJCXJl dHVybiBmYWxzZTsKIAotCXJldHVybiBpOTE1LmVuYWJsZV9ndWNfc2NoZWR1bGluZzsKKwlyZXR1 cm4gaTkxNS5lbmFibGVfZXhlY2xpc3RzICYmIGk5MTUuZW5hYmxlX2d1Y19zY2hlZHVsaW5nOwog fQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5jCmluZGV4IGQ0MDExYjQuLmNiNWE2MTcgMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5jCisrKyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2xyYy5jCkBAIC02MTgsMTMgKzYxOCwxNyBAQCBpbnRlbF9sb2dpY2Fs X3JpbmdfYWR2YW5jZV9hbmRfc3VibWl0KHN0cnVjdCBpbnRlbF9yaW5nYnVmZmVyICpyaW5nYnVm LAogCQkJCSAgICAgIHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxdWVzdCkKIHsKIAlz dHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nID0gcmluZ2J1Zi0+cmluZzsKKwlzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSByaW5nLT5kZXYtPmRldl9wcml2YXRlOwogCiAJaW50 ZWxfbG9naWNhbF9yaW5nX2FkdmFuY2UocmluZ2J1Zik7CiAKIAlpZiAoaW50ZWxfcmluZ19zdG9w cGVkKHJpbmcpKQogCQlyZXR1cm47CiAKLQlleGVjbGlzdHNfY29udGV4dF9xdWV1ZShyaW5nLCBj dHgsIHJpbmdidWYtPnRhaWwsIHJlcXVlc3QpOworCWlmIChkZXZfcHJpdi0+Z3VjLmV4ZWNidWZf Y2xpZW50KQorCQlpOTE1X2d1Y19jbGllbnRfc3VibWl0KGRldl9wcml2LT5ndWMuZXhlY2J1Zl9j bGllbnQsIGN0eCwgcmluZyk7CisJZWxzZQorCQlleGVjbGlzdHNfY29udGV4dF9xdWV1ZShyaW5n LCBjdHgsIHJpbmdidWYtPnRhaWwsIHJlcXVlc3QpOwogfQogCiBzdGF0aWMgaW50IGxvZ2ljYWxf cmluZ193YWl0X2Zvcl9zcGFjZShzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAqcmluZ2J1ZiwKQEAg LTk0MSw2ICs5NDUsNyBAQCBzdGF0aWMgaW50IGludGVsX2xyX2NvbnRleHRfcGluKHN0cnVjdCBp bnRlbF9lbmdpbmVfY3MgKnJpbmcsCiB7CiAJc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKmN0 eF9vYmogPSBjdHgtPmVuZ2luZVtyaW5nLT5pZF0uc3RhdGU7CiAJc3RydWN0IGludGVsX3Jpbmdi dWZmZXIgKnJpbmdidWYgPSBjdHgtPmVuZ2luZVtyaW5nLT5pZF0ucmluZ2J1ZjsKKwlzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSByaW5nLT5kZXYtPmRldl9wcml2YXRlOwogCWlu dCByZXQgPSAwOwogCiAJV0FSTl9PTighbXV0ZXhfaXNfbG9ja2VkKCZyaW5nLT5kZXYtPnN0cnVj dF9tdXRleCkpOwpAQCAtOTUzLDYgKzk1OCwxMCBAQCBzdGF0aWMgaW50IGludGVsX2xyX2NvbnRl eHRfcGluKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcsCiAJCXJldCA9IGludGVsX3Bpbl9h bmRfbWFwX3JpbmdidWZmZXJfb2JqKHJpbmctPmRldiwgcmluZ2J1Zik7CiAJCWlmIChyZXQpCiAJ CQlnb3RvIHVucGluX2N0eF9vYmo7CisKKwkJLyogSW52YWxpZGF0ZSBHdUMgVExCLiAqLworCQlp ZiAoaTkxNS5lbmFibGVfZ3VjX3NjaGVkdWxpbmcpCisJCQlJOTE1X1dSSVRFKEdFTjhfR1RDUiwg R0VOOF9HVENSX0lOVkFMSURBVEUpOwogCX0KIAogCXJldHVybiByZXQ7CkBAIC0xMjg0LDggKzEy OTMsMTMgQEAgb3V0Ogogc3RhdGljIGludCBnZW44X2luaXRfcmNzX2NvbnRleHQoc3RydWN0IGlu dGVsX2VuZ2luZV9jcyAqcmluZywKIAkJICAgICAgIHN0cnVjdCBpbnRlbF9jb250ZXh0ICpjdHgp CiB7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gcmluZy0+ZGV2LT5kZXZf cHJpdmF0ZTsKIAlpbnQgcmV0OwogCisJLyogSW52YWxpZGF0ZSBHdUMgVExCLiAqLworCWlmIChp OTE1LmVuYWJsZV9ndWNfc2NoZWR1bGluZykKKwkJSTkxNV9XUklURShHRU44X0dUQ1IsIEdFTjhf R1RDUl9JTlZBTElEQVRFKTsKKwogCXJldCA9IGludGVsX2xvZ2ljYWxfcmluZ193b3JrYXJvdW5k c19lbWl0KHJpbmcsIGN0eCk7CiAJaWYgKHJldCkKIAkJcmV0dXJuIHJldDsKLS0gCjEuOS4xCgpf X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZngg bWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cDovL2xpc3Rz LmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=