From mboxrd@z Thu Jan 1 00:00:00 1970 From: Dongwon Kim Subject: [RFC PATCH v2 8/9] hyper_dmabuf: event-polling mechanism for detecting a new hyper_DMABUF Date: Tue, 13 Feb 2018 17:50:07 -0800 Message-ID: <20180214015008.9513-9-dongwon.kim__18379.6729230837$1518573331$gmane$org@intel.com> References: <20180214015008.9513-1-dongwon.kim@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1elmJA-0008Iz-2G for xen-devel@lists.xenproject.org; Wed, 14 Feb 2018 01:56:28 +0000 In-Reply-To: <20180214015008.9513-1-dongwon.kim@intel.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: linux-kernel@vger.kernel.org, linaro-mm-sig@lists.linaro.org, xen-devel@lists.xenproject.org Cc: sumit.semwal@linaro.org, dongwon.kim@intel.com, dri-devel@lists.freedesktop.org, mateuszx.potrola@intel.com List-Id: xen-devel@lists.xenproject.org TmV3IG1ldGhvZCBiYXNlZCBvbiBwb2xsaW5nIGZvciBhIGltcG9ydGluZyBWTSB0byBrbm93IGFi b3V0IGEgbmV3Cmh5cGVyX0RNQUJVRiBleHBvcnRlZCB0byBpdC4KCkZvciB0aGlzLCB0aGUgdXNl cnNwYWNlIG5vdyBjYW4gcG9sbCB0aGUgZGV2aWNlIG5vZGUgdG8gY2hlY2sgaWYKdGhlcmUgYSBu ZXcgZXZlbnQsIHdoaWNoIGlzIGNyZWF0ZWQgaWYgdGhlcmUncyBhIG5ldyBoeXBlcl9ETUFCVUYK YXZhaWxhYmxlIGluIGltcG9ydGluZyBWTSAoanVzdCBleHBvcnRlZCkuCgpBIHBvbGwgZnVuY3Rp b24gY2FsbCB3YXMgYWRkZWQgdG8gdGhlIGRldmljZSBkcml2ZXIgaW50ZXJmYWNlIGZvciB0aGlz Cm5ldyBmdW5jdGlvbmFsaXR5LiBFdmVudC1nZW5lcmF0aW9uIGZ1bmN0aW9uYWxpdHl3YXMgYWxz byBpbXBsZW1lbnRlZCBpbgphbGwgb3RoZXIgcmVsYXZhbnQgcGFydHMgb2YgZHJpdmVyLgoKVGhp cyAiZXZlbnQtcG9sbGluZyIgbWVjaGFuaXNtIGlzIG9wdGlvbmFsIGZlYXR1cmUgYW5kIGNhbiBi ZSBlbmFibGVkCmJ5IHNldHRpbmcgYSBLZXJuZWwgY29uZmlnIG9wdGlvbiwgIkhZUEVSX0RNQUJV Rl9FVkVOVF9HRU4iLgoKU2lnbmVkLW9mZi1ieTogRG9uZ3dvbiBLaW0gPGRvbmd3b24ua2ltQGlu dGVsLmNvbT4KU2lnbmVkLW9mZi1ieTogTWF0ZXVzeiBQb2xyb2xhIDxtYXRldXN6eC5wb3Ryb2xh QGludGVsLmNvbT4KLS0tCiBkcml2ZXJzL2RtYS1idWYvaHlwZXJfZG1hYnVmL0tjb25maWcgICAg ICAgICAgICAgIHwgIDIwICsrKwogZHJpdmVycy9kbWEtYnVmL2h5cGVyX2RtYWJ1Zi9NYWtlZmls ZSAgICAgICAgICAgICB8ICAgMSArCiBkcml2ZXJzL2RtYS1idWYvaHlwZXJfZG1hYnVmL2h5cGVy X2RtYWJ1Zl9kcnYuYyAgIHwgMTQ2ICsrKysrKysrKysrKysrKysrKysrKysKIGRyaXZlcnMvZG1h LWJ1Zi9oeXBlcl9kbWFidWYvaHlwZXJfZG1hYnVmX2Rydi5oICAgfCAgMTEgKysKIGRyaXZlcnMv ZG1hLWJ1Zi9oeXBlcl9kbWFidWYvaHlwZXJfZG1hYnVmX2V2ZW50LmMgfCAxMjIgKysrKysrKysr KysrKysrKysrCiBkcml2ZXJzL2RtYS1idWYvaHlwZXJfZG1hYnVmL2h5cGVyX2RtYWJ1Zl9ldmVu dC5oIHwgIDM4ICsrKysrKwogZHJpdmVycy9kbWEtYnVmL2h5cGVyX2RtYWJ1Zi9oeXBlcl9kbWFi dWZfbGlzdC5jICB8ICAgMSArCiBkcml2ZXJzL2RtYS1idWYvaHlwZXJfZG1hYnVmL2h5cGVyX2Rt YWJ1Zl9tc2cuYyAgIHwgIDExICsrCiBpbmNsdWRlL3VhcGkvbGludXgvaHlwZXJfZG1hYnVmLmgg ICAgICAgICAgICAgICAgIHwgIDExICsrCiA5IGZpbGVzIGNoYW5nZWQsIDM2MSBpbnNlcnRpb25z KCspCiBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9kbWEtYnVmL2h5cGVyX2RtYWJ1Zi9oeXBl cl9kbWFidWZfZXZlbnQuYwogY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvZG1hLWJ1Zi9oeXBl cl9kbWFidWYvaHlwZXJfZG1hYnVmX2V2ZW50LmgKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2RtYS1i dWYvaHlwZXJfZG1hYnVmL0tjb25maWcgYi9kcml2ZXJzL2RtYS1idWYvaHlwZXJfZG1hYnVmL0tj b25maWcKaW5kZXggNjhmM2Q2Y2UyYzFmLi45MjUxMDczMWFmMjUgMTAwNjQ0Ci0tLSBhL2RyaXZl cnMvZG1hLWJ1Zi9oeXBlcl9kbWFidWYvS2NvbmZpZworKysgYi9kcml2ZXJzL2RtYS1idWYvaHlw ZXJfZG1hYnVmL0tjb25maWcKQEAgLTIwLDYgKzIwLDE2IEBAIGNvbmZpZyBIWVBFUl9ETUFCVUZf U1lTRlMKIAogCSAgVGhlIGxvY2F0aW9uIG9mIHN5c2ZzIGlzIHVuZGVyICIuLi4uIgogCitjb25m aWcgSFlQRVJfRE1BQlVGX0VWRU5UX0dFTgorICAgICAgICBib29sICJFbmFibGUgZXZlbnQtZ2Vu ZXJhdGlvbiBhbmQgcG9sbGluZyBvcGVyYXRpb24iCisgICAgICAgIGRlZmF1bHQgbgorICAgICAg ICBkZXBlbmRzIG9uIEhZUEVSX0RNQUJVRgorICAgICAgICBoZWxwCisgICAgICAgICAgV2l0aCB0 aGlzIGNvbmZpZyBlbmFibGVkLCBoeXBlcl9kbWFidWYgZHJpdmVyIG9uIHRoZSBpbXBvcnRlciBz aWRlCisgICAgICAgICAgZ2VuZXJhdGVzIGV2ZW50cyBhbmQgcXVldWUgdGhvc2UgdXAgaW4gdGhl IGV2ZW50IGxpc3Qgd2hlbmV2ZXIgYSBuZXcKKyAgICAgICAgICBzaGFyZWQgRE1BLUJVRiBpcyBh dmFpbGFibGUuIEV2ZW50cyBpbiB0aGUgbGlzdCBjYW4gYmUgcmV0cmlldmVkIGJ5CisgICAgICAg ICAgcmVhZCBvcGVyYXRpb24uCisKIGNvbmZpZyBIWVBFUl9ETUFCVUZfWEVOCiAgICAgICAgIGJv b2wgIkNvbmZpZ3VyZSBoeXBlcl9kbWFidWYgZm9yIFhFTiBoeXBlcnZpc29yIgogICAgICAgICBk ZWZhdWx0IHkKQEAgLTI3LDQgKzM3LDE0IEBAIGNvbmZpZyBIWVBFUl9ETUFCVUZfWEVOCiAgICAg ICAgIGhlbHAKICAgICAgICAgICBFbmFibGluZyBIeXBlcl9ETUFCVUYgQmFja2VuZCBmb3IgWEVO IGh5cGVydmlzb3IKIAorY29uZmlnIEhZUEVSX0RNQUJVRl9YRU5fQVVUT19SWF9DSF9BREQKKyAg ICAgICAgYm9vbCAiRW5hYmxlIGF1dG9tYXRpYyByeC1jaCBhZGQgd2l0aCAxMCBzZWNzIGludGVy dmFsIgorICAgICAgICBkZWZhdWx0IHkKKyAgICAgICAgZGVwZW5kcyBvbiBIWVBFUl9ETUFCVUYg JiYgSFlQRVJfRE1BQlVGX1hFTgorICAgICAgICBoZWxwCisgICAgICAgICAgSWYgZW5hYmxlZCwg ZHJpdmVyIHJlYWRzIGEgbm9kZSBpbiB4ZW5zdG9yZSBldmVyeSAxMCBzZWNvbmRzCisgICAgICAg ICAgdG8gY2hlY2sgd2hldGhlciB0aGVyZSBpcyBhbnkgdHggY29tbSBjaCBjb25maWd1cmVkIGJ5 IGFub3RoZXIKKyAgICAgICAgICBkb21haW4gdGhlbiBpbml0aWFsaXplIG1hdGNoZWQgcnggY29t bSBjaCBhdXRvbWF0aWNhbGx5IGZvciBhbnkKKyAgICAgICAgICBleGlzdGluZyB0eCBjb21tIGNo cy4KKwogZW5kbWVudQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9kbWEtYnVmL2h5cGVyX2RtYWJ1Zi9N YWtlZmlsZSBiL2RyaXZlcnMvZG1hLWJ1Zi9oeXBlcl9kbWFidWYvTWFrZWZpbGUKaW5kZXggNTc4 YTY2OWEwZDNlLi5mNTczZGQ1YzQwNTQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZG1hLWJ1Zi9oeXBl cl9kbWFidWYvTWFrZWZpbGUKKysrIGIvZHJpdmVycy9kbWEtYnVmL2h5cGVyX2RtYWJ1Zi9NYWtl ZmlsZQpAQCAtMTEsNiArMTEsNyBAQCBpZm5lcSAoJChLRVJORUxSRUxFQVNFKSwpCiAJCQkJIGh5 cGVyX2RtYWJ1Zl9pZC5vIFwKIAkJCQkgaHlwZXJfZG1hYnVmX3JlbW90ZV9zeW5jLm8gXAogCQkJ CSBoeXBlcl9kbWFidWZfcXVlcnkubyBcCisJCQkJIGh5cGVyX2RtYWJ1Zl9ldmVudC5vIFwKIAog aWZlcSAoJChDT05GSUdfSFlQRVJfRE1BQlVGX1hFTiksIHkpCiAJJChUQVJHRVRfTU9EVUxFKS1v YmpzICs9IGJhY2tlbmRzL3hlbi9oeXBlcl9kbWFidWZfeGVuX2NvbW0ubyBcCmRpZmYgLS1naXQg YS9kcml2ZXJzL2RtYS1idWYvaHlwZXJfZG1hYnVmL2h5cGVyX2RtYWJ1Zl9kcnYuYyBiL2RyaXZl cnMvZG1hLWJ1Zi9oeXBlcl9kbWFidWYvaHlwZXJfZG1hYnVmX2Rydi5jCmluZGV4IDMzMjBmOWRj Yzc2OS4uMDg3ZjA5MWNjYWU5IDEwMDY0NAotLS0gYS9kcml2ZXJzL2RtYS1idWYvaHlwZXJfZG1h YnVmL2h5cGVyX2RtYWJ1Zl9kcnYuYworKysgYi9kcml2ZXJzL2RtYS1idWYvaHlwZXJfZG1hYnVm L2h5cGVyX2RtYWJ1Zl9kcnYuYwpAQCAtNDEsNiArNDEsNyBAQAogI2luY2x1ZGUgImh5cGVyX2Rt YWJ1Zl9pb2N0bC5oIgogI2luY2x1ZGUgImh5cGVyX2RtYWJ1Zl9saXN0LmgiCiAjaW5jbHVkZSAi aHlwZXJfZG1hYnVmX2lkLmgiCisjaW5jbHVkZSAiaHlwZXJfZG1hYnVmX2V2ZW50LmgiCiAKICNp ZmRlZiBDT05GSUdfSFlQRVJfRE1BQlVGX1hFTgogI2luY2x1ZGUgImJhY2tlbmRzL3hlbi9oeXBl cl9kbWFidWZfeGVuX2Rydi5oIgpAQCAtOTEsMTAgKzkyLDEzOCBAQCBzdGF0aWMgaW50IGh5cGVy X2RtYWJ1Zl9yZWxlYXNlKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxwKQog CXJldHVybiAwOwogfQogCisjaWZkZWYgQ09ORklHX0hZUEVSX0RNQUJVRl9FVkVOVF9HRU4KKwor c3RhdGljIHVuc2lnbmVkIGludCBoeXBlcl9kbWFidWZfZXZlbnRfcG9sbChzdHJ1Y3QgZmlsZSAq ZmlscCwKKwkJCQkgICAgIHN0cnVjdCBwb2xsX3RhYmxlX3N0cnVjdCAqd2FpdCkKK3sKKwlwb2xs X3dhaXQoZmlscCwgJmh5X2Rydl9wcml2LT5ldmVudF93YWl0LCB3YWl0KTsKKworCWlmICghbGlz dF9lbXB0eSgmaHlfZHJ2X3ByaXYtPmV2ZW50X2xpc3QpKQorCQlyZXR1cm4gUE9MTElOIHwgUE9M TFJETk9STTsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgc3NpemVfdCBoeXBlcl9kbWFidWZf ZXZlbnRfcmVhZChzdHJ1Y3QgZmlsZSAqZmlscCwgY2hhciBfX3VzZXIgKmJ1ZmZlciwKKwkJc2l6 ZV90IGNvdW50LCBsb2ZmX3QgKm9mZnNldCkKK3sKKwlpbnQgcmV0OworCisJLyogb25seSByb290 IGNhbiByZWFkIGV2ZW50cyAqLworCWlmICghY2FwYWJsZShDQVBfREFDX09WRVJSSURFKSkgewor CQlkZXZfZXJyKGh5X2Rydl9wcml2LT5kZXYsCisJCQkiT25seSByb290IGNhbiByZWFkIGV2ZW50 c1xuIik7CisJCXJldHVybiAtRVBFUk07CisJfQorCisJLyogbWFrZSBzdXJlIHVzZXIgYnVmZmVy IGNhbiBiZSB3cml0dGVuICovCisJaWYgKCFhY2Nlc3Nfb2soVkVSSUZZX1dSSVRFLCBidWZmZXIs IGNvdW50KSkgeworCQlkZXZfZXJyKGh5X2Rydl9wcml2LT5kZXYsCisJCQkiVXNlciBidWZmZXIg Y2FuJ3QgYmUgd3JpdHRlbi5cbiIpOworCQlyZXR1cm4gLUVJTlZBTDsKKwl9CisKKwlyZXQgPSBt dXRleF9sb2NrX2ludGVycnVwdGlibGUoJmh5X2Rydl9wcml2LT5ldmVudF9yZWFkX2xvY2spOwor CWlmIChyZXQpCisJCXJldHVybiByZXQ7CisKKwl3aGlsZSAoMSkgeworCQlzdHJ1Y3QgaHlwZXJf ZG1hYnVmX2V2ZW50ICplID0gTlVMTDsKKworCQlzcGluX2xvY2tfaXJxKCZoeV9kcnZfcHJpdi0+ ZXZlbnRfbG9jayk7CisJCWlmICghbGlzdF9lbXB0eSgmaHlfZHJ2X3ByaXYtPmV2ZW50X2xpc3Qp KSB7CisJCQllID0gbGlzdF9maXJzdF9lbnRyeSgmaHlfZHJ2X3ByaXYtPmV2ZW50X2xpc3QsCisJ CQkJCXN0cnVjdCBoeXBlcl9kbWFidWZfZXZlbnQsIGxpbmspOworCQkJbGlzdF9kZWwoJmUtPmxp bmspOworCQl9CisJCXNwaW5fdW5sb2NrX2lycSgmaHlfZHJ2X3ByaXYtPmV2ZW50X2xvY2spOwor CisJCWlmICghZSkgeworCQkJaWYgKHJldCkKKwkJCQlicmVhazsKKworCQkJaWYgKGZpbHAtPmZf ZmxhZ3MgJiBPX05PTkJMT0NLKSB7CisJCQkJcmV0ID0gLUVBR0FJTjsKKwkJCQlicmVhazsKKwkJ CX0KKworCQkJbXV0ZXhfdW5sb2NrKCZoeV9kcnZfcHJpdi0+ZXZlbnRfcmVhZF9sb2NrKTsKKwkJ CXJldCA9IHdhaXRfZXZlbnRfaW50ZXJydXB0aWJsZShoeV9kcnZfcHJpdi0+ZXZlbnRfd2FpdCwK KwkJCQkgICFsaXN0X2VtcHR5KCZoeV9kcnZfcHJpdi0+ZXZlbnRfbGlzdCkpOworCisJCQlpZiAo cmV0ID09IDApCisJCQkJcmV0ID0gbXV0ZXhfbG9ja19pbnRlcnJ1cHRpYmxlKAorCQkJCQkmaHlf ZHJ2X3ByaXYtPmV2ZW50X3JlYWRfbG9jayk7CisKKwkJCWlmIChyZXQpCisJCQkJcmV0dXJuIHJl dDsKKwkJfSBlbHNlIHsKKwkJCXVuc2lnbmVkIGludCBsZW5ndGggPSAoc2l6ZW9mKGUtPmV2ZW50 X2RhdGEuaGRyKSArCisJCQkJCQkgICAgICBlLT5ldmVudF9kYXRhLmhkci5zaXplKTsKKworCQkJ aWYgKGxlbmd0aCA+IGNvdW50IC0gcmV0KSB7CitwdXRfYmFja19ldmVudDoKKwkJCQlzcGluX2xv Y2tfaXJxKCZoeV9kcnZfcHJpdi0+ZXZlbnRfbG9jayk7CisJCQkJbGlzdF9hZGQoJmUtPmxpbmss ICZoeV9kcnZfcHJpdi0+ZXZlbnRfbGlzdCk7CisJCQkJc3Bpbl91bmxvY2tfaXJxKCZoeV9kcnZf cHJpdi0+ZXZlbnRfbG9jayk7CisJCQkJYnJlYWs7CisJCQl9CisKKwkJCWlmIChjb3B5X3RvX3Vz ZXIoYnVmZmVyICsgcmV0LCAmZS0+ZXZlbnRfZGF0YS5oZHIsCisJCQkJCSBzaXplb2YoZS0+ZXZl bnRfZGF0YS5oZHIpKSkgeworCQkJCWlmIChyZXQgPT0gMCkKKwkJCQkJcmV0ID0gLUVGQVVMVDsK KworCQkJCWdvdG8gcHV0X2JhY2tfZXZlbnQ7CisJCQl9CisKKwkJCXJldCArPSBzaXplb2YoZS0+ ZXZlbnRfZGF0YS5oZHIpOworCisJCQlpZiAoY29weV90b191c2VyKGJ1ZmZlciArIHJldCwgZS0+ ZXZlbnRfZGF0YS5kYXRhLAorCQkJCQkgZS0+ZXZlbnRfZGF0YS5oZHIuc2l6ZSkpIHsKKwkJCQkv KiBlcnJvciB3aGlsZSBjb3B5aW5nIHZvaWQgKmRhdGEgKi8KKworCQkJCXN0cnVjdCBoeXBlcl9k bWFidWZfZXZlbnRfaGRyIGR1bW15X2hkciA9IHswfTsKKworCQkJCXJldCAtPSBzaXplb2YoZS0+ ZXZlbnRfZGF0YS5oZHIpOworCisJCQkJLyogbnVsbGlmeWluZyBoZHIgb2YgdGhlIGV2ZW50IGlu IHVzZXIgYnVmZmVyICovCisJCQkJaWYgKGNvcHlfdG9fdXNlcihidWZmZXIgKyByZXQsICZkdW1t eV9oZHIsCisJCQkJCQkgc2l6ZW9mKGR1bW15X2hkcikpKSB7CisJCQkJCWRldl9lcnIoaHlfZHJ2 X3ByaXYtPmRldiwKKwkJCQkJCSJmYWlsZWQgdG8gbnVsbGlmeSBpbnZhbGlkIGhkciBhbHJlYWR5 IGluIHVzZXJzcGFjZVxuIik7CisJCQkJfQorCisJCQkJcmV0ID0gLUVGQVVMVDsKKworCQkJCWdv dG8gcHV0X2JhY2tfZXZlbnQ7CisJCQl9CisKKwkJCXJldCArPSBlLT5ldmVudF9kYXRhLmhkci5z aXplOworCQkJaHlfZHJ2X3ByaXYtPnBlbmRpbmctLTsKKwkJCWtmcmVlKGUpOworCQl9CisJfQor CisJbXV0ZXhfdW5sb2NrKCZoeV9kcnZfcHJpdi0+ZXZlbnRfcmVhZF9sb2NrKTsKKworCXJldHVy biByZXQ7Cit9CisKKyNlbmRpZgorCiBzdGF0aWMgY29uc3Qgc3RydWN0IGZpbGVfb3BlcmF0aW9u cyBoeXBlcl9kbWFidWZfZHJpdmVyX2ZvcHMgPSB7CiAJLm93bmVyID0gVEhJU19NT0RVTEUsCiAJ Lm9wZW4gPSBoeXBlcl9kbWFidWZfb3BlbiwKIAkucmVsZWFzZSA9IGh5cGVyX2RtYWJ1Zl9yZWxl YXNlLAorCisvKiBwb2xsIGFuZCByZWFkIGludGVyZmFjZXMgYXJlIG5lZWRlZCBvbmx5IGZvciBl dmVudC1wb2xsaW5nICovCisjaWZkZWYgQ09ORklHX0hZUEVSX0RNQUJVRl9FVkVOVF9HRU4KKwku cmVhZCA9IGh5cGVyX2RtYWJ1Zl9ldmVudF9yZWFkLAorCS5wb2xsID0gaHlwZXJfZG1hYnVmX2V2 ZW50X3BvbGwsCisjZW5kaWYKKwogCS51bmxvY2tlZF9pb2N0bCA9IGh5cGVyX2RtYWJ1Zl9pb2N0 bCwKIH07CiAKQEAgLTE5NCw2ICszMjMsMTggQEAgc3RhdGljIGludCBfX2luaXQgaHlwZXJfZG1h YnVmX2Rydl9pbml0KHZvaWQpCiAJfQogI2VuZGlmCiAKKyNpZmRlZiBDT05GSUdfSFlQRVJfRE1B QlVGX0VWRU5UX0dFTgorCW11dGV4X2luaXQoJmh5X2Rydl9wcml2LT5ldmVudF9yZWFkX2xvY2sp OworCXNwaW5fbG9ja19pbml0KCZoeV9kcnZfcHJpdi0+ZXZlbnRfbG9jayk7CisKKwkvKiBJbml0 aWFsaXplIGV2ZW50IHF1ZXVlICovCisJSU5JVF9MSVNUX0hFQUQoJmh5X2Rydl9wcml2LT5ldmVu dF9saXN0KTsKKwlpbml0X3dhaXRxdWV1ZV9oZWFkKCZoeV9kcnZfcHJpdi0+ZXZlbnRfd2FpdCk7 CisKKwkvKiByZXNldHRpbmcgbnVtYmVyIG9mIHBlbmRpbmcgZXZlbnRzICovCisJaHlfZHJ2X3By aXYtPnBlbmRpbmcgPSAwOworI2VuZGlmCisKIAlpZiAoaHlfZHJ2X3ByaXYtPmJrbmRfb3BzLT5p bml0KSB7CiAJCXJldCA9IGh5X2Rydl9wcml2LT5ia25kX29wcy0+aW5pdCgpOwogCkBAIC0yNTAs NiArMzkxLDExIEBAIHN0YXRpYyB2b2lkIGh5cGVyX2RtYWJ1Zl9kcnZfZXhpdCh2b2lkKQogCWlm IChoeV9kcnZfcHJpdi0+aWRfcXVldWUpCiAJCWh5cGVyX2RtYWJ1Zl9mcmVlX2hpZF9saXN0KCk7 CiAKKyNpZmRlZiBDT05GSUdfSFlQRVJfRE1BQlVGX0VWRU5UX0dFTgorCS8qIGNsZWFuIHVwIGV2 ZW50IHF1ZXVlICovCisJaHlwZXJfZG1hYnVmX2V2ZW50c19yZWxlYXNlKCk7CisjZW5kaWYKKwog CW11dGV4X3VubG9jaygmaHlfZHJ2X3ByaXYtPmxvY2spOwogCiAJZGV2X2luZm8oaHlfZHJ2X3By aXYtPmRldiwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZG1hLWJ1Zi9oeXBlcl9kbWFidWYvaHlwZXJf ZG1hYnVmX2Rydi5oIGIvZHJpdmVycy9kbWEtYnVmL2h5cGVyX2RtYWJ1Zi9oeXBlcl9kbWFidWZf ZHJ2LmgKaW5kZXggNDYxMTlkNzYyNDMwLi4yODJhNTA3YjMzYmMgMTAwNjQ0Ci0tLSBhL2RyaXZl cnMvZG1hLWJ1Zi9oeXBlcl9kbWFidWYvaHlwZXJfZG1hYnVmX2Rydi5oCisrKyBiL2RyaXZlcnMv ZG1hLWJ1Zi9oeXBlcl9kbWFidWYvaHlwZXJfZG1hYnVmX2Rydi5oCkBAIC0zMiw2ICszMiwxMSBA QAogCiBzdHJ1Y3QgaHlwZXJfZG1hYnVmX3JlcTsKIAorc3RydWN0IGh5cGVyX2RtYWJ1Zl9ldmVu dCB7CisJc3RydWN0IGh5cGVyX2RtYWJ1Zl9ldmVudF9kYXRhIGV2ZW50X2RhdGE7CisJc3RydWN0 IGxpc3RfaGVhZCBsaW5rOworfTsKKwogc3RydWN0IGh5cGVyX2RtYWJ1Zl9wcml2YXRlIHsKIAlz dHJ1Y3QgZGV2aWNlICpkZXY7CiAKQEAgLTU0LDYgKzU5LDEyIEBAIHN0cnVjdCBoeXBlcl9kbWFi dWZfcHJpdmF0ZSB7CiAJLyogZmxhZyB0aGF0IHNob3dzIHdoZXRoZXIgYmFja2VuZCBpcyBpbml0 aWFsaXplZCAqLwogCWJvb2wgaW5pdGlhbGl6ZWQ7CiAKKwl3YWl0X3F1ZXVlX2hlYWRfdCBldmVu dF93YWl0OworCXN0cnVjdCBsaXN0X2hlYWQgZXZlbnRfbGlzdDsKKworCXNwaW5sb2NrX3QgZXZl bnRfbG9jazsKKwlzdHJ1Y3QgbXV0ZXggZXZlbnRfcmVhZF9sb2NrOworCiAJLyogIyBvZiBwZW5k aW5nIGV2ZW50cyAqLwogCWludCBwZW5kaW5nOwogfTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZG1h LWJ1Zi9oeXBlcl9kbWFidWYvaHlwZXJfZG1hYnVmX2V2ZW50LmMgYi9kcml2ZXJzL2RtYS1idWYv aHlwZXJfZG1hYnVmL2h5cGVyX2RtYWJ1Zl9ldmVudC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAwMDAwMC4uOTQyYTFiYjc4NzU1Ci0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVy cy9kbWEtYnVmL2h5cGVyX2RtYWJ1Zi9oeXBlcl9kbWFidWZfZXZlbnQuYwpAQCAtMCwwICsxLDEy MiBAQAorLyoKKyAqIENvcHlyaWdodCDCqSAyMDE4IEludGVsIENvcnBvcmF0aW9uCisgKgorICog UGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJz b24gb2J0YWluaW5nIGEKKyAqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBk b2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksCisgKiB0byBkZWFsIGluIHRoZSBT b2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9u CisgKiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlz dHJpYnV0ZSwgc3VibGljZW5zZSwKKyAqIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdh cmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZQorICogU29mdHdhcmUgaXMgZnVy bmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKyAq CisgKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGlj ZSAoaW5jbHVkaW5nIHRoZSBuZXh0CisgKiBwYXJhZ3JhcGgpIHNoYWxsIGJlIGluY2x1ZGVkIGlu IGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlCisgKiBTb2Z0d2FyZS4K KyAqCisgKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5U WSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgorICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1Qg TElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCisgKiBGSVRORVNT IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiAgSU4gTk8gRVZF TlQgU0hBTEwKKyAqIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBG T1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSCisgKiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g QU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORworICogRlJP TSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBP UiBPVEhFUiBERUFMSU5HUworICogSU4gVEhFIFNPRlRXQVJFLgorICoKKyAqIEF1dGhvcnM6Cisg KiAgICBEb25nd29uIEtpbSA8ZG9uZ3dvbi5raW1AaW50ZWwuY29tPgorICogICAgTWF0ZXVzeiBQ b2xyb2xhIDxtYXRldXN6eC5wb3Ryb2xhQGludGVsLmNvbT4KKyAqCisgKi8KKworI2luY2x1ZGUg PGxpbnV4L2tlcm5lbC5oPgorI2luY2x1ZGUgPGxpbnV4L2Vycm5vLmg+CisjaW5jbHVkZSA8bGlu dXgvc2xhYi5oPgorI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgorI2luY2x1ZGUgImh5cGVyX2Rt YWJ1Zl9kcnYuaCIKKyNpbmNsdWRlICJoeXBlcl9kbWFidWZfc3RydWN0LmgiCisjaW5jbHVkZSAi aHlwZXJfZG1hYnVmX2xpc3QuaCIKKyNpbmNsdWRlICJoeXBlcl9kbWFidWZfZXZlbnQuaCIKKwor c3RhdGljIHZvaWQgc2VuZF9ldmVudChzdHJ1Y3QgaHlwZXJfZG1hYnVmX2V2ZW50ICplKQorewor CXN0cnVjdCBoeXBlcl9kbWFidWZfZXZlbnQgKm9sZGVzdDsKKwl1bnNpZ25lZCBsb25nIGlycWZs YWdzOworCisJc3Bpbl9sb2NrX2lycXNhdmUoJmh5X2Rydl9wcml2LT5ldmVudF9sb2NrLCBpcnFm bGFncyk7CisKKwkvKiBjaGVjayBjdXJyZW50IG51bWJlciBvZiBldmVudCB0aGVuIGlmIGl0IGhp dHMgdGhlIG1heCBudW0gYWxsb3dlZAorCSAqIHRoZW4gcmVtb3ZlIHRoZSBvbGRlc3QgZXZlbnQg aW4gdGhlIGxpc3QKKwkgKi8KKwlpZiAoaHlfZHJ2X3ByaXYtPnBlbmRpbmcgPiBNQVhfREVQVEhf RVZFTlRfUVVFVUUgLSAxKSB7CisJCW9sZGVzdCA9IGxpc3RfZmlyc3RfZW50cnkoJmh5X2Rydl9w cml2LT5ldmVudF9saXN0LAorCQkJCXN0cnVjdCBoeXBlcl9kbWFidWZfZXZlbnQsIGxpbmspOwor CQlsaXN0X2RlbCgmb2xkZXN0LT5saW5rKTsKKwkJaHlfZHJ2X3ByaXYtPnBlbmRpbmctLTsKKwkJ a2ZyZWUob2xkZXN0KTsKKwl9CisKKwlsaXN0X2FkZF90YWlsKCZlLT5saW5rLAorCQkgICAgICAm aHlfZHJ2X3ByaXYtPmV2ZW50X2xpc3QpOworCisJaHlfZHJ2X3ByaXYtPnBlbmRpbmcrKzsKKwor CXdha2VfdXBfaW50ZXJydXB0aWJsZSgmaHlfZHJ2X3ByaXYtPmV2ZW50X3dhaXQpOworCisJc3Bp bl91bmxvY2tfaXJxcmVzdG9yZSgmaHlfZHJ2X3ByaXYtPmV2ZW50X2xvY2ssIGlycWZsYWdzKTsK K30KKwordm9pZCBoeXBlcl9kbWFidWZfZXZlbnRzX3JlbGVhc2Uodm9pZCkKK3sKKwlzdHJ1Y3Qg aHlwZXJfZG1hYnVmX2V2ZW50ICplLCAqZXQ7CisJdW5zaWduZWQgbG9uZyBpcnFmbGFnczsKKwor CXNwaW5fbG9ja19pcnFzYXZlKCZoeV9kcnZfcHJpdi0+ZXZlbnRfbG9jaywgaXJxZmxhZ3MpOwor CisJbGlzdF9mb3JfZWFjaF9lbnRyeV9zYWZlKGUsIGV0LCAmaHlfZHJ2X3ByaXYtPmV2ZW50X2xp c3QsCisJCQkJIGxpbmspIHsKKwkJbGlzdF9kZWwoJmUtPmxpbmspOworCQlrZnJlZShlKTsKKwkJ aHlfZHJ2X3ByaXYtPnBlbmRpbmctLTsKKwl9CisKKwlpZiAoaHlfZHJ2X3ByaXYtPnBlbmRpbmcp IHsKKwkJZGV2X2VycihoeV9kcnZfcHJpdi0+ZGV2LAorCQkJInBvc3NpYmxlIGxlYWsgb24gZXZl bnRfbGlzdFxuIik7CisJfQorCisJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmaHlfZHJ2X3ByaXYt PmV2ZW50X2xvY2ssIGlycWZsYWdzKTsKK30KKworaW50IGh5cGVyX2RtYWJ1Zl9pbXBvcnRfZXZl bnQoaHlwZXJfZG1hYnVmX2lkX3QgaGlkKQoreworCXN0cnVjdCBoeXBlcl9kbWFidWZfZXZlbnQg KmU7CisJc3RydWN0IGltcG9ydGVkX3NndF9pbmZvICppbXBvcnRlZDsKKworCWltcG9ydGVkID0g aHlwZXJfZG1hYnVmX2ZpbmRfaW1wb3J0ZWQoaGlkKTsKKworCWlmICghaW1wb3J0ZWQpIHsKKwkJ ZGV2X2VycihoeV9kcnZfcHJpdi0+ZGV2LAorCQkJImNhbid0IGZpbmQgaW1wb3J0ZWRfc2d0X2lu Zm8gaW4gdGhlIGxpc3RcbiIpOworCQlyZXR1cm4gLUVJTlZBTDsKKwl9CisKKwllID0ga3phbGxv YyhzaXplb2YoKmUpLCBHRlBfS0VSTkVMKTsKKworCWlmICghZSkKKwkJcmV0dXJuIC1FTk9NRU07 CisKKwllLT5ldmVudF9kYXRhLmhkci5ldmVudF90eXBlID0gSFlQRVJfRE1BQlVGX05FV19JTVBP UlQ7CisJZS0+ZXZlbnRfZGF0YS5oZHIuaGlkID0gaGlkOworCWUtPmV2ZW50X2RhdGEuZGF0YSA9 ICh2b2lkICopaW1wb3J0ZWQtPnByaXY7CisJZS0+ZXZlbnRfZGF0YS5oZHIuc2l6ZSA9IGltcG9y dGVkLT5zel9wcml2OworCisJc2VuZF9ldmVudChlKTsKKworCWRldl9kYmcoaHlfZHJ2X3ByaXYt PmRldiwKKwkJImV2ZW50IG51bWJlciA9ICVkIDoiLCBoeV9kcnZfcHJpdi0+cGVuZGluZyk7CisK KwlkZXZfZGJnKGh5X2Rydl9wcml2LT5kZXYsCisJCSJnZW5lcmF0aW5nIGV2ZW50cyBmb3IgeyVk LCAlZCwgJWQsICVkfVxuIiwKKwkJaW1wb3J0ZWQtPmhpZC5pZCwgaW1wb3J0ZWQtPmhpZC5ybmdf a2V5WzBdLAorCQlpbXBvcnRlZC0+aGlkLnJuZ19rZXlbMV0sIGltcG9ydGVkLT5oaWQucm5nX2tl eVsyXSk7CisKKwlyZXR1cm4gMDsKK30KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZG1hLWJ1Zi9oeXBl cl9kbWFidWYvaHlwZXJfZG1hYnVmX2V2ZW50LmggYi9kcml2ZXJzL2RtYS1idWYvaHlwZXJfZG1h YnVmL2h5cGVyX2RtYWJ1Zl9ldmVudC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw MDAwMDAwMC4uOGY2MTE5OGU2MjNjCi0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9kbWEtYnVm L2h5cGVyX2RtYWJ1Zi9oeXBlcl9kbWFidWZfZXZlbnQuaApAQCAtMCwwICsxLDM4IEBACisvKgor ICogQ29weXJpZ2h0IMKpIDIwMTggSW50ZWwgQ29ycG9yYXRpb24KKyAqCisgKiBQZXJtaXNzaW9u IGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5p bmcgYQorICogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRp b24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwKKyAqIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdp dGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24KKyAqIHRoZSBy aWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBz dWJsaWNlbnNlLAorICogYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRv IHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlCisgKiBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8g ZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgorICoKKyAqIFRoZSBh Ym92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIChpbmNsdWRp bmcgdGhlIG5leHQKKyAqIHBhcmFncmFwaCkgc2hhbGwgYmUgaW5jbHVkZWQgaW4gYWxsIGNvcGll cyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUKKyAqIFNvZnR3YXJlLgorICoKKyAqIFRI RSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBL SU5ELCBFWFBSRVNTIE9SCisgKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRP IFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKKyAqIEZJVE5FU1MgRk9SIEEgUEFS VElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuICBJTiBOTyBFVkVOVCBTSEFMTAor ICogVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xB SU0sIERBTUFHRVMgT1IgT1RIRVIKKyAqIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04g T0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HCisgKiBGUk9NLCBPVVQgT0Yg T1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERF QUxJTkdTCisgKiBJTiBUSEUgU09GVFdBUkUuCisgKgorICovCisKKyNpZm5kZWYgX19IWVBFUl9E TUFCVUZfRVZFTlRfSF9fCisjZGVmaW5lIF9fSFlQRVJfRE1BQlVGX0VWRU5UX0hfXworCisjZGVm aW5lIE1BWF9ERVBUSF9FVkVOVF9RVUVVRSAzMgorCitlbnVtIGh5cGVyX2RtYWJ1Zl9ldmVudF90 eXBlIHsKKwlIWVBFUl9ETUFCVUZfTkVXX0lNUE9SVCA9IDB4MTAwMDAsCit9OworCit2b2lkIGh5 cGVyX2RtYWJ1Zl9ldmVudHNfcmVsZWFzZSh2b2lkKTsKKworaW50IGh5cGVyX2RtYWJ1Zl9pbXBv cnRfZXZlbnQoaHlwZXJfZG1hYnVmX2lkX3QgaGlkKTsKKworI2VuZGlmIC8qIF9fSFlQRVJfRE1B QlVGX0VWRU5UX0hfXyAqLwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9kbWEtYnVmL2h5cGVyX2RtYWJ1 Zi9oeXBlcl9kbWFidWZfbGlzdC5jIGIvZHJpdmVycy9kbWEtYnVmL2h5cGVyX2RtYWJ1Zi9oeXBl cl9kbWFidWZfbGlzdC5jCmluZGV4IGYyZjY1YThlYzQ3Zi4uMzBjM2FmNjVmY2RlIDEwMDY0NAot LS0gYS9kcml2ZXJzL2RtYS1idWYvaHlwZXJfZG1hYnVmL2h5cGVyX2RtYWJ1Zl9saXN0LmMKKysr IGIvZHJpdmVycy9kbWEtYnVmL2h5cGVyX2RtYWJ1Zi9oeXBlcl9kbWFidWZfbGlzdC5jCkBAIC0z Niw2ICszNiw3IEBACiAjaW5jbHVkZSAiaHlwZXJfZG1hYnVmX2Rydi5oIgogI2luY2x1ZGUgImh5 cGVyX2RtYWJ1Zl9saXN0LmgiCiAjaW5jbHVkZSAiaHlwZXJfZG1hYnVmX2lkLmgiCisjaW5jbHVk ZSAiaHlwZXJfZG1hYnVmX2V2ZW50LmgiCiAKIERFQ0xBUkVfSEFTSFRBQkxFKGh5cGVyX2RtYWJ1 Zl9oYXNoX2ltcG9ydGVkLCBNQVhfRU5UUllfSU1QT1JURUQpOwogREVDTEFSRV9IQVNIVEFCTEUo aHlwZXJfZG1hYnVmX2hhc2hfZXhwb3J0ZWQsIE1BWF9FTlRSWV9FWFBPUlRFRCk7CmRpZmYgLS1n aXQgYS9kcml2ZXJzL2RtYS1idWYvaHlwZXJfZG1hYnVmL2h5cGVyX2RtYWJ1Zl9tc2cuYyBiL2Ry aXZlcnMvZG1hLWJ1Zi9oeXBlcl9kbWFidWYvaHlwZXJfZG1hYnVmX21zZy5jCmluZGV4IDE1OTJk NWNmYWE1Mi4uOGYyY2Y3ZWE4MjdkIDEwMDY0NAotLS0gYS9kcml2ZXJzL2RtYS1idWYvaHlwZXJf ZG1hYnVmL2h5cGVyX2RtYWJ1Zl9tc2cuYworKysgYi9kcml2ZXJzL2RtYS1idWYvaHlwZXJfZG1h YnVmL2h5cGVyX2RtYWJ1Zl9tc2cuYwpAQCAtMzUsNiArMzUsNyBAQAogI2luY2x1ZGUgImh5cGVy X2RtYWJ1Zl9kcnYuaCIKICNpbmNsdWRlICJoeXBlcl9kbWFidWZfbXNnLmgiCiAjaW5jbHVkZSAi aHlwZXJfZG1hYnVmX3JlbW90ZV9zeW5jLmgiCisjaW5jbHVkZSAiaHlwZXJfZG1hYnVmX2V2ZW50 LmgiCiAjaW5jbHVkZSAiaHlwZXJfZG1hYnVmX2xpc3QuaCIKIAogc3RydWN0IGNtZF9wcm9jZXNz IHsKQEAgLTE3OSw2ICsxODAsMTEgQEAgc3RhdGljIHZvaWQgY21kX3Byb2Nlc3Nfd29yayhzdHJ1 Y3Qgd29ya19zdHJ1Y3QgKndvcmspCiAJCQkvKiB1cGRhdGluZyBwcml2IGRhdGEgKi8KIAkJCW1l bWNweShpbXBvcnRlZC0+cHJpdiwgJnJlcS0+b3BbOV0sIHJlcS0+b3BbOF0pOwogCisjaWZkZWYg Q09ORklHX0hZUEVSX0RNQUJVRl9FVkVOVF9HRU4KKwkJCS8qIGdlbmVyYXRpbmcgaW1wb3J0IGV2 ZW50ICovCisJCQloeXBlcl9kbWFidWZfaW1wb3J0X2V2ZW50KGltcG9ydGVkLT5oaWQpOworI2Vu ZGlmCisKIAkJCWJyZWFrOwogCQl9CiAKQEAgLTIxOSw2ICsyMjUsMTEgQEAgc3RhdGljIHZvaWQg Y21kX3Byb2Nlc3Nfd29yayhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspCiAJCWltcG9ydGVkLT52 YWxpZCA9IHRydWU7CiAJCWh5cGVyX2RtYWJ1Zl9yZWdpc3Rlcl9pbXBvcnRlZChpbXBvcnRlZCk7 CiAKKyNpZmRlZiBDT05GSUdfSFlQRVJfRE1BQlVGX0VWRU5UX0dFTgorCQkvKiBnZW5lcmF0aW5n IGltcG9ydCBldmVudCAqLworCQloeXBlcl9kbWFidWZfaW1wb3J0X2V2ZW50KGltcG9ydGVkLT5o aWQpOworI2VuZGlmCisKIAkJYnJlYWs7CiAKIAljYXNlIEhZUEVSX0RNQUJVRl9PUFNfVE9fUkVN T1RFOgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS91YXBpL2xpbnV4L2h5cGVyX2RtYWJ1Zi5oIGIvaW5j bHVkZS91YXBpL2xpbnV4L2h5cGVyX2RtYWJ1Zi5oCmluZGV4IDRmOGU4YWMwMzc1Yi4uZGQ3M2Ri OWJmMzdkIDEwMDY0NAotLS0gYS9pbmNsdWRlL3VhcGkvbGludXgvaHlwZXJfZG1hYnVmLmgKKysr IGIvaW5jbHVkZS91YXBpL2xpbnV4L2h5cGVyX2RtYWJ1Zi5oCkBAIC0zMiw2ICszMiwxNyBAQCB0 eXBlZGVmIHN0cnVjdCB7CiAJaW50IHJuZ19rZXlbM107IC8qIDEyYnl0ZXMgbG9uZyByYW5kb20g bnVtYmVyICovCiB9IGh5cGVyX2RtYWJ1Zl9pZF90OwogCitzdHJ1Y3QgaHlwZXJfZG1hYnVmX2V2 ZW50X2hkciB7CisJaW50IGV2ZW50X3R5cGU7IC8qIG9uZSB0eXBlIG9ubHkgZm9yIG5vdyAtIG5l dyBpbXBvcnQgKi8KKwloeXBlcl9kbWFidWZfaWRfdCBoaWQ7IC8qIGh5cGVyX2RtYWJ1Zl9pZCBv ZiBzcGVjaWZpYyBoeXBlcl9kbWFidWYgKi8KKwlpbnQgc2l6ZTsgLyogc2l6ZSBvZiBkYXRhICov Cit9OworCitzdHJ1Y3QgaHlwZXJfZG1hYnVmX2V2ZW50X2RhdGEgeworCXN0cnVjdCBoeXBlcl9k bWFidWZfZXZlbnRfaGRyIGhkcjsKKwl2b2lkICpkYXRhOyAvKiBwcml2YXRlIGRhdGEgKi8KK307 CisKICNkZWZpbmUgSU9DVExfSFlQRVJfRE1BQlVGX1RYX0NIX1NFVFVQIFwKIF9JT0MoX0lPQ19O T05FLCAnRycsIDAsIHNpemVvZihzdHJ1Y3QgaW9jdGxfaHlwZXJfZG1hYnVmX3R4X2NoX3NldHVw KSkKIHN0cnVjdCBpb2N0bF9oeXBlcl9kbWFidWZfdHhfY2hfc2V0dXAgewotLSAKMi4xNi4xCgoK X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVs IG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6Ly9saXN0 cy54ZW5wcm9qZWN0Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL3hlbi1kZXZlbA==