From mboxrd@z Thu Jan 1 00:00:00 1970 From: Imre Deak Subject: [PATCH 01/10] drm/i915: Add support for tracking wakerefs w/o power-on guarantee Date: Fri, 3 May 2019 02:26:39 +0300 Message-ID: <20190502232648.4450-2-imre.deak@intel.com> References: <20190502232648.4450-1-imre.deak@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga12.intel.com (mga12.intel.com [192.55.52.136]) by gabe.freedesktop.org (Postfix) with ESMTPS id 4F601893B8 for ; Thu, 2 May 2019 23:27:04 +0000 (UTC) In-Reply-To: <20190502232648.4450-1-imre.deak@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 SXQncyB1c2VmdWwgdG8gdHJhY2sgcnVudGltZSBQTSByZWZzIHRoYXQgZG9uJ3QgZ3VhcmFudGVl IGEgZGV2aWNlCnBvd2VyLW9uIHN0YXRlIHRvIHRoZSByZXN0IG9mIHRoZSBkcml2ZXIuIE9uZSBz dWNoIGNhc2UgaXMgaG9sZGluZyBhCnJlZmVyZW5jZSB0aGF0IHdpbGwgYmUgcHV0IGFzeW5jaHJv bm91c2x5LCBkdXJpbmcgd2hpY2ggbm9ybWFsIHVzZXJzCndpdGhvdXQgdGhlaXIgb3duIHJlZmVy ZW5jZSBzaG91bGRuJ3QgYWNjZXNzIHRoZSBIVy4gQSBmb2xsb3ctdXAgcGF0Y2gKd2lsbCBhZGQg c3VwcG9ydCBmb3IgZGlzYWJsaW5nIGRpc3BsYXkgcG93ZXIgZG9tYWlucyBhc3luY2hyb25vdXNs eQp3aGljaCBuZWVkcyB0aGlzLgoKRm9yIHRoaXMgd2UgY2FuIHRyYWNrIGFsbCByZWZlcmVuY2Vz IHdpdGggYSBzZXBhcmF0ZSB3YWtlcmVmX3RyYWNrX2NvdW50CmFuZCByZWZlcmVuY2VzIGd1YXJh bnRlZWluZyBhIHBvd2VyLW9uIHN0YXRlIHdpdGggdGhlIGN1cnJlbnQKd2FrZXJlZl9jb3VudC4K CkZvbGxvdy11cCBwYXRjaGVzIHdpbGwgbWFrZSB1c2Ugb2YgdGhlIEFQSSBhZGRlZCBoZXJlLCBz byBhZGQgYQpfX3VzZWRfXyBhdHRyaWJ1dGUgcXVpcmsgdG8ga2VlcCBnaXQgYmlzZWN0IHdvcmtp bmcuCgpObyBmdW5jdGlvbmFsIGNoYW5nZXMuCgpDYzogQ2hyaXMgV2lsc29uIDxjaHJpc0BjaHJp cy13aWxzb24uY28udWs+ClNpZ25lZC1vZmYtYnk6IEltcmUgRGVhayA8aW1yZS5kZWFrQGludGVs LmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oICAgICAgICAgfCAgIDEg KwogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcnVudGltZV9wbS5jIHwgMTIxICsrKysrKysr KysrKysrKysrKysrLS0tLQogMiBmaWxlcyBjaGFuZ2VkLCAxMDIgaW5zZXJ0aW9ucygrKSwgMjAg ZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYu aCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKaW5kZXggOWE2MzRiYTU3ZmY5Li45 ZmIyNjYzNGE2YmUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgK KysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaApAQCAtMTE3Nyw2ICsxMTc3LDcg QEAgc3RydWN0IHNrbF93bV9wYXJhbXMgewogICovCiBzdHJ1Y3QgaTkxNV9ydW50aW1lX3BtIHsK IAlhdG9taWNfdCB3YWtlcmVmX2NvdW50OworCWF0b21pY190IHdha2VyZWZfdHJhY2tfY291bnQ7 CiAJYm9vbCBzdXNwZW5kZWQ7CiAJYm9vbCBpcnFzX2VuYWJsZWQ7CiAKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3J1bnRpbWVfcG0uYyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX3J1bnRpbWVfcG0uYwppbmRleCAzMGU3Y2I5ZDU4MDEuLjRhN2JmYzk0NTMyMiAx MDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcnVudGltZV9wbS5jCisrKyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3J1bnRpbWVfcG0uYwpAQCAtNTksNiArNTksMTIg QEAKICAqIHByZXNlbnQgZm9yIGEgZ2l2ZW4gcGxhdGZvcm0uCiAgKi8KIAorc3RhdGljIHZvaWQK K2Fzc2VydF9yYXdfcnBtX3dha2Vsb2NrX2hlbGQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5 MTUpCit7CisJV0FSTl9PTighYXRvbWljX3JlYWQoJmk5MTUtPnJ1bnRpbWVfcG0ud2FrZXJlZl90 cmFja19jb3VudCkpOworfQorCiAjaWYgSVNfRU5BQkxFRChDT05GSUdfRFJNX0k5MTVfREVCVUdf UlVOVElNRV9QTSkKIAogI2luY2x1ZGUgPGxpbnV4L3NvcnQuaD4KQEAgLTEwMCwxNyArMTA2LDE4 IEBAIHN0YXRpYyB2b2lkIGluaXRfaW50ZWxfcnVudGltZV9wbV93YWtlcmVmKHN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICppOTE1KQogCXN0cnVjdCBpOTE1X3J1bnRpbWVfcG0gKnJwbSA9ICZpOTE1 LT5ydW50aW1lX3BtOwogCiAJc3Bpbl9sb2NrX2luaXQoJnJwbS0+ZGVidWcubG9jayk7CisJYXRv bWljX3NldCgmcnBtLT53YWtlcmVmX3RyYWNrX2NvdW50LCAwKTsKIH0KIAogc3RhdGljIG5vaW5s aW5lIGRlcG90X3N0YWNrX2hhbmRsZV90Ci10cmFja19pbnRlbF9ydW50aW1lX3BtX3dha2VyZWYo c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCit0cmFja19pbnRlbF9ydW50aW1lX3BtX3dh a2VyZWZfcmF3KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KQogewogCXN0cnVjdCBpOTE1 X3J1bnRpbWVfcG0gKnJwbSA9ICZpOTE1LT5ydW50aW1lX3BtOwogCWRlcG90X3N0YWNrX2hhbmRs ZV90IHN0YWNrLCAqc3RhY2tzOwogCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CiAKLQlhdG9taWNfaW5j KCZycG0tPndha2VyZWZfY291bnQpOwotCWFzc2VydF9ycG1fd2FrZWxvY2tfaGVsZChpOTE1KTsK KwlhdG9taWNfaW5jKCZycG0tPndha2VyZWZfdHJhY2tfY291bnQpOworCWFzc2VydF9yYXdfcnBt X3dha2Vsb2NrX2hlbGQoaTkxNSk7CiAKIAlpZiAoIUhBU19SVU5USU1FX1BNKGk5MTUpKQogCQly ZXR1cm4gLTE7CkBAIC0xMzksNiArMTQ2LDE1IEBAIHRyYWNrX2ludGVsX3J1bnRpbWVfcG1fd2Fr ZXJlZihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKIAlyZXR1cm4gc3RhY2s7CiB9CiAK K3N0YXRpYyBub2lubGluZSBkZXBvdF9zdGFja19oYW5kbGVfdAordHJhY2tfaW50ZWxfcnVudGlt ZV9wbV93YWtlcmVmKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KQoreworCWF0b21pY19p bmMoJmk5MTUtPnJ1bnRpbWVfcG0ud2FrZXJlZl9jb3VudCk7CisJYXNzZXJ0X3JwbV93YWtlbG9j a19oZWxkKGk5MTUpOworCisJcmV0dXJuIHRyYWNrX2ludGVsX3J1bnRpbWVfcG1fd2FrZXJlZl9y YXcoaTkxNSk7Cit9CisKIHN0YXRpYyB2b2lkIGNhbmNlbF9pbnRlbF9ydW50aW1lX3BtX3dha2Vy ZWYoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsCiAJCQkJCSAgICBkZXBvdF9zdGFja19o YW5kbGVfdCBzdGFjaykKIHsKQEAgLTE2Myw3ICsxNzksNyBAQCBzdGF0aWMgdm9pZCBjYW5jZWxf aW50ZWxfcnVudGltZV9wbV93YWtlcmVmKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1LAog CiAJaWYgKFdBUk4oIWZvdW5kLAogCQkgIlVubWF0Y2hlZCB3YWtlcmVmICh0cmFja2luZyAlbHUp LCBjb3VudCAldVxuIiwKLQkJIHJwbS0+ZGVidWcuY291bnQsIGF0b21pY19yZWFkKCZycG0tPndh a2VyZWZfY291bnQpKSkgeworCQkgcnBtLT5kZWJ1Zy5jb3VudCwgYXRvbWljX3JlYWQoJnJwbS0+ d2FrZXJlZl90cmFja19jb3VudCkpKSB7CiAJCWNoYXIgKmJ1ZjsKIAogCQlidWYgPSBrbWFsbG9j KFBBR0VfU0laRSwgR0ZQX05PV0FJVCB8IF9fR0ZQX05PV0FSTik7CkBAIC0yMzUsMTUgKzI1MSwx NSBAQCBfX3ByaW50X2ludGVsX3J1bnRpbWVfcG1fd2FrZXJlZihzdHJ1Y3QgZHJtX3ByaW50ZXIg KnAsCiB9CiAKIHN0YXRpYyBub2lubGluZSB2b2lkCi11bnRyYWNrX2ludGVsX3J1bnRpbWVfcG1f d2FrZXJlZihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKK3VudHJhY2tfaW50ZWxfcnVu dGltZV9wbV93YWtlcmVmX3JhdyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKIHsKIAlz dHJ1Y3QgaTkxNV9ydW50aW1lX3BtICpycG0gPSAmaTkxNS0+cnVudGltZV9wbTsKIAlzdHJ1Y3Qg aW50ZWxfcnVudGltZV9wbV9kZWJ1ZyBkYmcgPSB7fTsKIAlzdHJ1Y3QgZHJtX3ByaW50ZXIgcDsK IAl1bnNpZ25lZCBsb25nIGZsYWdzOwogCi0JYXNzZXJ0X3JwbV93YWtlbG9ja19oZWxkKGk5MTUp OwotCWlmIChhdG9taWNfZGVjX2FuZF9sb2NrX2lycXNhdmUoJnJwbS0+d2FrZXJlZl9jb3VudCwK Kwlhc3NlcnRfcmF3X3JwbV93YWtlbG9ja19oZWxkKGk5MTUpOworCWlmIChhdG9taWNfZGVjX2Fu ZF9sb2NrX2lycXNhdmUoJnJwbS0+d2FrZXJlZl90cmFja19jb3VudCwKIAkJCQkJJnJwbS0+ZGVi dWcubG9jaywKIAkJCQkJZmxhZ3MpKSB7CiAJCWRiZyA9IHJwbS0+ZGVidWc7CkBAIC0yNjMsNiAr Mjc5LDE1IEBAIHVudHJhY2tfaW50ZWxfcnVudGltZV9wbV93YWtlcmVmKHN0cnVjdCBkcm1faTkx NV9wcml2YXRlICppOTE1KQogCWtmcmVlKGRiZy5vd25lcnMpOwogfQogCitzdGF0aWMgbm9pbmxp bmUgdm9pZAordW50cmFja19pbnRlbF9ydW50aW1lX3BtX3dha2VyZWYoc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmk5MTUpCit7CisJdW50cmFja19pbnRlbF9ydW50aW1lX3BtX3dha2VyZWZfcmF3 KGk5MTUpOworCisJYXNzZXJ0X3JwbV93YWtlbG9ja19oZWxkKGk5MTUpOworCWF0b21pY19kZWMo Jmk5MTUtPnJ1bnRpbWVfcG0ud2FrZXJlZl9jb3VudCk7Cit9CisKIHZvaWQgcHJpbnRfaW50ZWxf cnVudGltZV9wbV93YWtlcmVmKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1LAogCQkJCSAg ICBzdHJ1Y3QgZHJtX3ByaW50ZXIgKnApCiB7CkBAIC0zMDgsMTUgKzMzMywzMyBAQCBzdGF0aWMg dm9pZCBpbml0X2ludGVsX3J1bnRpbWVfcG1fd2FrZXJlZihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqaTkxNSkKIH0KIAogc3RhdGljIGRlcG90X3N0YWNrX2hhbmRsZV90Ci10cmFja19pbnRlbF9y dW50aW1lX3BtX3dha2VyZWYoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCit0cmFja19p bnRlbF9ydW50aW1lX3BtX3dha2VyZWZfcmF3KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1 KQogewotCWF0b21pY19pbmMoJmk5MTUtPnJ1bnRpbWVfcG0ud2FrZXJlZl9jb3VudCk7Ci0JYXNz ZXJ0X3JwbV93YWtlbG9ja19oZWxkKGk5MTUpOworCWF0b21pY19pbmMoJmk5MTUtPnJ1bnRpbWVf cG0ud2FrZXJlZl90cmFja19jb3VudCk7CisJYXNzZXJ0X3Jhd19ycG1fd2FrZWxvY2tfaGVsZChp OTE1KTsKKwogCXJldHVybiAtMTsKIH0KIAorc3RhdGljIGRlcG90X3N0YWNrX2hhbmRsZV90Cit0 cmFja19pbnRlbF9ydW50aW1lX3BtX3dha2VyZWYoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5 MTUpCit7CisJYXRvbWljX2luYygmaTkxNS0+cnVudGltZV9wbS53YWtlcmVmX2NvdW50KTsKKwlh c3NlcnRfcnBtX3dha2Vsb2NrX2hlbGQoaTkxNSk7CisKKwlyZXR1cm4gdHJhY2tfaW50ZWxfcnVu dGltZV9wbV93YWtlcmVmX3JhdyhpOTE1KTsKK30KKworc3RhdGljIHZvaWQgdW50cmFja19pbnRl bF9ydW50aW1lX3BtX3dha2VyZWZfcmF3KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KQor eworCWFzc2VydF9yYXdfcnBtX3dha2Vsb2NrX2hlbGQoaTkxNSk7CisJYXRvbWljX2RlYygmaTkx NS0+cnVudGltZV9wbS53YWtlcmVmX3RyYWNrX2NvdW50KTsKK30KKwogc3RhdGljIHZvaWQgdW50 cmFja19pbnRlbF9ydW50aW1lX3BtX3dha2VyZWYoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5 MTUpCiB7CisJdW50cmFja19pbnRlbF9ydW50aW1lX3BtX3dha2VyZWZfcmF3KGk5MTUpOworCiAJ YXNzZXJ0X3JwbV93YWtlbG9ja19oZWxkKGk5MTUpOwogCWF0b21pY19kZWMoJmk5MTUtPnJ1bnRp bWVfcG0ud2FrZXJlZl9jb3VudCk7CiB9CkBAIC00MzQ3LDcgKzQzOTAsNyBAQCBzdGF0aWMgdm9p ZCBpbnRlbF9wb3dlcl9kb21haW5zX3ZlcmlmeV9zdGF0ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqaTkxNSkKICAqCiAgKiBSZXR1cm5zOiB0aGUgd2FrZXJlZiBjb29raWUgdG8gcGFzcyB0byBp bnRlbF9ydW50aW1lX3BtX3B1dCgpCiAgKi8KLWludGVsX3dha2VyZWZfdCBpbnRlbF9ydW50aW1l X3BtX2dldChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKK3N0YXRpYyB2b2lkIF9faW50 ZWxfcnVudGltZV9wbV9nZXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCiB7CiAJc3Ry dWN0IHBjaV9kZXYgKnBkZXYgPSBpOTE1LT5kcm0ucGRldjsKIAlzdHJ1Y3QgZGV2aWNlICprZGV2 ID0gJnBkZXYtPmRldjsKQEAgLTQzNTUsNiArNDM5OCwxOSBAQCBpbnRlbF93YWtlcmVmX3QgaW50 ZWxfcnVudGltZV9wbV9nZXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCiAKIAlyZXQg PSBwbV9ydW50aW1lX2dldF9zeW5jKGtkZXYpOwogCVdBUk5fT05DRShyZXQgPCAwLCAicG1fcnVu dGltZV9nZXRfc3luYygpIGZhaWxlZDogJWRcbiIsIHJldCk7Cit9CisKK19fYXR0cmlidXRlX18o KF9fdXNlZF9fKSkKK3N0YXRpYyBpbnRlbF93YWtlcmVmX3QgaW50ZWxfcnVudGltZV9wbV9nZXRf cmF3KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KQoreworCV9faW50ZWxfcnVudGltZV9w bV9nZXQoaTkxNSk7CisKKwlyZXR1cm4gdHJhY2tfaW50ZWxfcnVudGltZV9wbV93YWtlcmVmX3Jh dyhpOTE1KTsKK30KKworaW50ZWxfd2FrZXJlZl90IGludGVsX3J1bnRpbWVfcG1fZ2V0KHN0cnVj dCBkcm1faTkxNV9wcml2YXRlICppOTE1KQoreworCV9faW50ZWxfcnVudGltZV9wbV9nZXQoaTkx NSk7CiAKIAlyZXR1cm4gdHJhY2tfaW50ZWxfcnVudGltZV9wbV93YWtlcmVmKGk5MTUpOwogfQpA QCAtNDQzMCwyMyArNDQ4Niw0OCBAQCBpbnRlbF93YWtlcmVmX3QgaW50ZWxfcnVudGltZV9wbV9n ZXRfbm9yZXN1bWUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCiAgKiBpbnRlbF9ydW50 aW1lX3BtX2dldCgpIGFuZCBtaWdodCBwb3dlciBkb3duIHRoZSBjb3JyZXNwb25kaW5nCiAgKiBo YXJkd2FyZSBibG9jayByaWdodCBhd2F5IGlmIHRoaXMgaXMgdGhlIGxhc3QgcmVmZXJlbmNlLgog ICovCitzdGF0aWMgdm9pZCBfX2ludGVsX3J1bnRpbWVfcG1fcHV0X3VuY2hlY2tlZChzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKK3sKKwlzdHJ1Y3QgcGNpX2RldiAqcGRldiA9IGk5MTUt PmRybS5wZGV2OworCXN0cnVjdCBkZXZpY2UgKmtkZXYgPSAmcGRldi0+ZGV2OworCisJcG1fcnVu dGltZV9tYXJrX2xhc3RfYnVzeShrZGV2KTsKKwlwbV9ydW50aW1lX3B1dF9hdXRvc3VzcGVuZChr ZGV2KTsKK30KKworc3RhdGljIHZvaWQgaW50ZWxfcnVudGltZV9wbV9wdXRfdW5jaGVja2VkX3Jh dyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKK3sKKwl1bnRyYWNrX2ludGVsX3J1bnRp bWVfcG1fd2FrZXJlZl9yYXcoaTkxNSk7CisJX19pbnRlbF9ydW50aW1lX3BtX3B1dF91bmNoZWNr ZWQoaTkxNSk7Cit9CisKIHZvaWQgaW50ZWxfcnVudGltZV9wbV9wdXRfdW5jaGVja2VkKHN0cnVj dCBkcm1faTkxNV9wcml2YXRlICppOTE1KQogewotCXN0cnVjdCBwY2lfZGV2ICpwZGV2ID0gaTkx NS0+ZHJtLnBkZXY7Ci0Jc3RydWN0IGRldmljZSAqa2RldiA9ICZwZGV2LT5kZXY7Ci0KIAl1bnRy YWNrX2ludGVsX3J1bnRpbWVfcG1fd2FrZXJlZihpOTE1KTsKLQotCXBtX3J1bnRpbWVfbWFya19s YXN0X2J1c3koa2Rldik7Ci0JcG1fcnVudGltZV9wdXRfYXV0b3N1c3BlbmQoa2Rldik7CisJX19p bnRlbF9ydW50aW1lX3BtX3B1dF91bmNoZWNrZWQoaTkxNSk7CiB9CiAKICNpZiBJU19FTkFCTEVE KENPTkZJR19EUk1fSTkxNV9ERUJVR19SVU5USU1FX1BNKQorX19hdHRyaWJ1dGVfXygoX191c2Vk X18pKQorc3RhdGljIHZvaWQgaW50ZWxfcnVudGltZV9wbV9wdXRfcmF3KHN0cnVjdCBkcm1faTkx NV9wcml2YXRlICppOTE1LAorCQkJCSAgICAgaW50ZWxfd2FrZXJlZl90IHdyZWYpCit7CisJY2Fu Y2VsX2ludGVsX3J1bnRpbWVfcG1fd2FrZXJlZihpOTE1LCB3cmVmKTsKKwlpbnRlbF9ydW50aW1l X3BtX3B1dF91bmNoZWNrZWRfcmF3KGk5MTUpOworfQorCiB2b2lkIGludGVsX3J1bnRpbWVfcG1f cHV0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1LCBpbnRlbF93YWtlcmVmX3Qgd3JlZikK IHsKIAljYW5jZWxfaW50ZWxfcnVudGltZV9wbV93YWtlcmVmKGk5MTUsIHdyZWYpOwogCWludGVs X3J1bnRpbWVfcG1fcHV0X3VuY2hlY2tlZChpOTE1KTsKIH0KKyNlbHNlCitfX2F0dHJpYnV0ZV9f KChfX3VzZWRfXykpCitzdGF0aWMgdm9pZCBpbnRlbF9ydW50aW1lX3BtX3B1dF9yYXcoc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsCisJCQkJICAgICBpbnRlbF93YWtlcmVmX3Qgd3JlZikK K3sKKwlpbnRlbF9ydW50aW1lX3BtX3B1dF91bmNoZWNrZWRfcmF3KGk5MTUpOworfQogI2VuZGlm CiAKIC8qKgpAQCAtNDUyMSwxMiArNDYwMiwxMiBAQCB2b2lkIGludGVsX3J1bnRpbWVfcG1fY2xl YW51cChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKIAlzdHJ1Y3QgaTkxNV9ydW50aW1l X3BtICpycG0gPSAmaTkxNS0+cnVudGltZV9wbTsKIAlpbnQgY291bnQ7CiAKLQljb3VudCA9IGF0 b21pY19mZXRjaF9pbmMoJnJwbS0+d2FrZXJlZl9jb3VudCk7IC8qIGJhbGFuY2UgdW50cmFjayAq LworCWNvdW50ID0gYXRvbWljX2ZldGNoX2luYygmcnBtLT53YWtlcmVmX3RyYWNrX2NvdW50KTsg LyogYmFsYW5jZSB1bnRyYWNrICovCiAJV0FSTihjb3VudCwKLQkgICAgICJpOTE1LT5ydW50aW1l X3BtLndha2VyZWZfY291bnQ9JWQgb24gY2xlYW51cFxuIiwKKwkgICAgICJpOTE1LT5ydW50aW1l X3BtLndha2VyZWZfdHJhY2tfY291bnQ9JWQgb24gY2xlYW51cFxuIiwKIAkgICAgIGNvdW50KTsK IAotCXVudHJhY2tfaW50ZWxfcnVudGltZV9wbV93YWtlcmVmKGk5MTUpOworCXVudHJhY2tfaW50 ZWxfcnVudGltZV9wbV93YWtlcmVmX3JhdyhpOTE1KTsKIH0KIAogdm9pZCBpbnRlbF9ydW50aW1l X3BtX2luaXRfZWFybHkoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCi0tIAoyLjE3LjEK Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdm eCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xp c3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeA==