From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chris Wilson Subject: [PATCH 09/15] drm/i915/execlists: Force preemption Date: Mon, 14 Oct 2019 10:07:51 +0100 Message-ID: <20191014090757.32111-9-chris@chris-wilson.co.uk> References: <20191014090757.32111-1-chris@chris-wilson.co.uk> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from fireflyinternet.com (mail.fireflyinternet.com [109.228.58.192]) by gabe.freedesktop.org (Postfix) with ESMTPS id 050086E172 for ; Mon, 14 Oct 2019 09:08:20 +0000 (UTC) In-Reply-To: <20191014090757.32111-1-chris@chris-wilson.co.uk> 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 SWYgdGhlIHByZWVtcHRlZCBjb250ZXh0IHRha2VzIHRvbyBsb25nIHRvIHJlbGlucXVpc2ggY29u dHJvbCwgZS5nLiBpdAppcyBzdHVjayBpbnNpZGUgYSBzaGFkZXIgd2l0aCBhcmJpdHJhdGlvbiBk aXNhYmxlZCwgZXZpY3QgdGhhdCBjb250ZXh0CndpdGggYW4gZW5naW5lIHJlc2V0LiBUaGlzIGVu c3VyZXMgdGhhdCBwcmVlbXB0aW9ucyBhcmUgcmVhc29uYWJseQpyZXNwb25zaXZlLCBwcm92aWRp bmcgYSB0aWdodGVyIFFvUyBmb3IgdGhlIG1vcmUgaW1wb3J0YW50IGNvbnRleHQgYXQKdGhlIGNv c3Qgb2YgZmxhZ2dpbmcgdW5yZXNwb25zaXZlIGNvbnRleHRzIG1vcmUgZnJlcXVlbnRseSAoaS5l LiBpbnN0ZWFkCm9mIHVzaW5nIGFuIH4xMHMgaGFuZ2NoZWNrLCB3ZSBub3cgZXZpY3QgYXQgfjEw MG1zKS4gIFRoZSBjaGFsbGVuZ2Ugb2YKbGllcyBpbiBwaWNraW5nIGEgdGltZW91dCB0aGF0IGNh biBiZSByZWFzb25hYmx5IHNlcnZpY2VkIGJ5IEhXIGZvcgp0eXBpY2FsIHdvcmtsb2FkcywgYmFs YW5jaW5nIHRoZSBleGlzdGluZyBjbGllbnRzIGFnYWluc3QgdGhlIG5lZWRzIGZvcgpyZXNwb25z aXZlbmVzcy4KCk5vdGUgdGhhdCBjb3VwbGVkIHdpdGggdGltZXNsaWNpbmcsIHRoaXMgd2lsbCBs ZWFkIHRvIHJhcGlkIEdQVSAiaGFuZyIKZGV0ZWN0aW9uIHdpdGggbXVsdGlwbGUgYWN0aXZlIGNv bnRleHRzIHZ5aW5nIGZvciBHUFUgdGltZS4KClRoZSBwcmVlbXB0IHRpbWVvdXQgY2FuIGJlIGFk anVzdGVkIHBlci1lbmdpbmUgdXNpbmcsCgoJL3N5cy9jbGFzcy9kcm0vY2FyZD8vZW5naW5lLyov cHJlZW1wdF90aW1lb3V0X21zCgp2MjogQ291cGxlIGluIHN5c2ZzIGNvbnRyb2wgb2YgcHJlZW1w dGlvbiB0aW1lb3V0CgpTaWduZWQtb2ZmLWJ5OiBDaHJpcyBXaWxzb24gPGNocmlzQGNocmlzLXdp bHNvbi5jby51az4KQ2M6IE1pa2EgS3VvcHBhbGEgPG1pa2Eua3VvcHBhbGFAbGludXguaW50ZWwu Y29tPgpDYzogVHZydGtvIFVyc3VsaW4gPHR2cnRrby51cnN1bGluQGludGVsLmNvbT4KUmV2aWV3 ZWQtYnk6IE1pa2EgS3VvcHBhbGEgPG1pa2Eua3VvcHBhbGFAbGludXguaW50ZWwuY29tPgotLS0K IGRyaXZlcnMvZ3B1L2RybS9pOTE1L0tjb25maWcucHJvZmlsZSAgICAgICAgIHwgIDE1ICsrKwog ZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfZW5naW5lX2NzLmMgICAgfCAgIDIgKwogZHJp dmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfZW5naW5lX3N5c2ZzLmMgfCAgMzMgKysrKysKIGRy aXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2VuZ2luZV90eXBlcy5oIHwgICA5ICsrCiBkcml2 ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9scmMuYyAgICAgICAgICB8IDEyNyArKysrKysrKysr KysrKysrKy0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9zZWxmdGVzdF9scmMuYyAgICAgICB8 ICA5OCArKysrKysrKysrKysrKwogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9wYXJhbXMuaCAg ICAgICAgICAgfCAgIDIgKy0KIDcgZmlsZXMgY2hhbmdlZCwgMjc3IGluc2VydGlvbnMoKyksIDkg ZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvS2NvbmZpZy5w cm9maWxlIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvS2NvbmZpZy5wcm9maWxlCmluZGV4IDQ4ZGY4 ODg5YTg4YS4uOGZjZWVhODU5MzdiIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9L Y29uZmlnLnByb2ZpbGUKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvS2NvbmZpZy5wcm9maWxl CkBAIC0yNSwzICsyNSwxOCBAQCBjb25maWcgRFJNX0k5MTVfU1BJTl9SRVFVRVNUCiAJICBNYXkg YmUgMCB0byBkaXNhYmxlIHRoZSBpbml0aWFsIHNwaW4uIEluIHByYWN0aWNlLCB3ZSBlc3RpbWF0 ZQogCSAgdGhlIGNvc3Qgb2YgZW5hYmxpbmcgdGhlIGludGVycnVwdCAoaWYgY3VycmVudGx5IGRp c2FibGVkKSB0byBiZQogCSAgYSBmZXcgbWljcm9zZWNvbmRzLgorCitjb25maWcgRFJNX0k5MTVf UFJFRU1QVF9USU1FT1VUCisJaW50ICJQcmVlbXB0IHRpbWVvdXQgKG1zKSIKKwlkZWZhdWx0IDEw MCAjIG1pbGxpc2Vjb25kcworCWhlbHAKKwkgIEhvdyBsb25nIHRvIHdhaXQgKGluIG1pbGxpc2Vj b25kcykgZm9yIGEgcHJlZW1wdGlvbiBldmVudCB0byBvY2N1cgorCSAgd2hlbiBzdWJtaXR0aW5n IGEgbmV3IGNvbnRleHQgdmlhIGV4ZWNsaXN0cy4gSWYgdGhlIGN1cnJlbnQgY29udGV4dAorCSAg ZG9lcyBub3QgaGl0IGFuIGFyYml0cmF0aW9uIHBvaW50IGFuZCB5aWVsZCB0byBIVyBiZWZvcmUg dGhlIHRpbWVyCisJICBleHBpcmVzLCB0aGUgSFcgd2lsbCBiZSByZXNldCB0byBhbGxvdyB0aGUg bW9yZSBpbXBvcnRhbnQgY29udGV4dAorCSAgdG8gZXhlY3V0ZS4KKworCSAgVGhpcyBpcyBhZGp1 c3RhYmxlIHZpYQorCSAgL3N5cy9jbGFzcy9kcm0vY2FyZD8vZW5naW5lLyovcHJlZW1wdF90aW1l b3V0X21zCisKKwkgIE1heSBiZSAwIHRvIGRpc2FibGUgdGhlIHRpbWVvdXQuCmRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9lbmdpbmVfY3MuYyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2d0L2ludGVsX2VuZ2luZV9jcy5jCmluZGV4IGM5ZDYzOWM2YmVjYi4uMWViNTEx NDc4MzlhIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9lbmdpbmVf Y3MuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9lbmdpbmVfY3MuYwpAQCAt MzA0LDYgKzMwNCw4IEBAIHN0YXRpYyBpbnQgaW50ZWxfZW5naW5lX3NldHVwKHN0cnVjdCBpbnRl bF9ndCAqZ3QsIGVudW0gaW50ZWxfZW5naW5lX2lkIGlkKQogCWVuZ2luZS0+aW5zdGFuY2UgPSBp bmZvLT5pbnN0YW5jZTsKIAlfX3NwcmludF9lbmdpbmVfbmFtZShlbmdpbmUpOwogCisJZW5naW5l LT5wcm9wcy5wcmVlbXB0X3RpbWVvdXQgPSBDT05GSUdfRFJNX0k5MTVfUFJFRU1QVF9USU1FT1VU OworCiAJLyoKIAkgKiBUbyBiZSBvdmVycmlkZGVuIGJ5IHRoZSBiYWNrZW5kIG9uIHNldHVwLiBI b3dldmVyIHRvIGZhY2lsaXRhdGUKIAkgKiBjbGVhbnVwIG9uIGVycm9yIGR1cmluZyBzZXR1cCwg d2UgYWx3YXlzIHByb3ZpZGUgdGhlIGRlc3Ryb3kgdmZ1bmMuCmRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9lbmdpbmVfc3lzZnMuYyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2d0L2ludGVsX2VuZ2luZV9zeXNmcy5jCmluZGV4IDRlNDAzYTFiMDY5YS4uYjllYjllNGNi YTBhIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9lbmdpbmVfc3lz ZnMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9lbmdpbmVfc3lzZnMuYwpA QCAtMTUxLDYgKzE1MSwzNCBAQCBhbGxfY2Fwc19zaG93KHN0cnVjdCBrb2JqZWN0ICprb2JqLCBz dHJ1Y3Qga29ial9hdHRyaWJ1dGUgKmF0dHIsIGNoYXIgKmJ1ZikKIHN0YXRpYyBzdHJ1Y3Qga29i al9hdHRyaWJ1dGUgYWxsX2NhcHNfYXR0ciA9CiBfX0FUVFIoa25vd25fY2FwYWJpbGl0aWVzLCAw NDQ0LCBhbGxfY2Fwc19zaG93LCBOVUxMKTsKIAorc3RhdGljIHNzaXplX3QKK3ByZWVtcHRfdGlt ZW91dF9zaG93KHN0cnVjdCBrb2JqZWN0ICprb2JqLCBzdHJ1Y3Qga29ial9hdHRyaWJ1dGUgKmF0 dHIsCisJCSAgICAgY2hhciAqYnVmKQoreworCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2lu ZSA9IGtvYmpfdG9fZW5naW5lKGtvYmopOworCisJcmV0dXJuIHNwcmludGYoYnVmLCAiJWx1XG4i LCBlbmdpbmUtPnByb3BzLnByZWVtcHRfdGltZW91dCk7Cit9CisKK3N0YXRpYyBzc2l6ZV90Citw cmVlbXB0X3RpbWVvdXRfc3RvcmUoc3RydWN0IGtvYmplY3QgKmtvYmosIHN0cnVjdCBrb2JqX2F0 dHJpYnV0ZSAqYXR0ciwKKwkJICAgICAgY29uc3QgY2hhciAqYnVmLCBzaXplX3QgY291bnQpCit7 CisJc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lID0ga29ial90b19lbmdpbmUoa29iaik7 CisJdW5zaWduZWQgbG9uZyB0aW1lb3V0OworCWludCBlcnI7CisKKwllcnIgPSBrc3RydG91bChi dWYsIDAsICZ0aW1lb3V0KTsKKwlpZiAoZXJyKQorCQlyZXR1cm4gZXJyOworCisJV1JJVEVfT05D RShlbmdpbmUtPnByb3BzLnByZWVtcHRfdGltZW91dCwgdGltZW91dCk7CisJcmV0dXJuIGNvdW50 OworfQorCitzdGF0aWMgc3RydWN0IGtvYmpfYXR0cmlidXRlIHByZWVtcHRfdGltZW91dF9hdHRy ID0KK19fQVRUUihwcmVlbXB0X3RpbWVvdXRfbXMsIDA2NDQsIHByZWVtcHRfdGltZW91dF9zaG93 LCBwcmVlbXB0X3RpbWVvdXRfc3RvcmUpOworCiBzdGF0aWMgdm9pZCBrb2JqX2VuZ2luZV9yZWxl YXNlKHN0cnVjdCBrb2JqZWN0ICprb2JqKQogewogCWtmcmVlKGtvYmopOwpAQCAtMjExLDYgKzIz OSwxMSBAQCB2b2lkIGludGVsX2VuZ2luZXNfYWRkX3N5c2ZzKHN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICppOTE1KQogCQlpZiAoc3lzZnNfY3JlYXRlX2ZpbGVzKGtvYmosIGZpbGVzKSkKIAkJCWdv dG8gZXJyX29iamVjdDsKIAorCQlpZiAoQ09ORklHX0RSTV9JOTE1X1BSRUVNUFRfVElNRU9VVCAm JgorCQkgICAgaW50ZWxfZW5naW5lX2hhc19wcmVlbXB0aW9uKGVuZ2luZSkgJiYKKwkJICAgIHN5 c2ZzX2NyZWF0ZV9maWxlKGtvYmosICZwcmVlbXB0X3RpbWVvdXRfYXR0ci5hdHRyKSkKKwkJCWdv dG8gZXJyX2VuZ2luZTsKKwogCQlpZiAoMCkgewogZXJyX29iamVjdDoKIAkJCWtvYmplY3RfcHV0 KGtvYmopOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfZW5naW5l X3R5cGVzLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9lbmdpbmVfdHlwZXMuaApp bmRleCA2MTk5MDY0ZjMzMmIuLjZhZjliMDA5Njk3NSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvZ3QvaW50ZWxfZW5naW5lX3R5cGVzLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvZ3QvaW50ZWxfZW5naW5lX3R5cGVzLmgKQEAgLTE3Myw2ICsxNzMsMTEgQEAgc3RydWN0IGlu dGVsX2VuZ2luZV9leGVjbGlzdHMgewogCSAqLwogCXN0cnVjdCB0aW1lcl9saXN0IHRpbWVyOwog CisJLyoqCisJICogQHByZWVtcHQ6IHJlc2V0IHRoZSBjdXJyZW50IGNvbnRleHQgaWYgaXQgZmFp bHMgdG8gZ2l2ZSB3YXkKKwkgKi8KKwlzdHJ1Y3QgdGltZXJfbGlzdCBwcmVlbXB0OworCiAJLyoq CiAJICogQGRlZmF1bHRfcHJpb2xpc3Q6IHByaW9yaXR5IGxpc3QgZm9yIEk5MTVfUFJJT1JJVFlf Tk9STUFMCiAJICovCkBAIC01NDEsNiArNTQ2LDEwIEBAIHN0cnVjdCBpbnRlbF9lbmdpbmVfY3Mg ewogCQkgKi8KIAkJa3RpbWVfdCB0b3RhbDsKIAl9IHN0YXRzOworCisJc3RydWN0IHsKKwkJdW5z aWduZWQgbG9uZyBwcmVlbXB0X3RpbWVvdXQ7CisJfSBwcm9wczsKIH07CiAKIHN0YXRpYyBpbmxp bmUgYm9vbApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfbHJjLmMg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9scmMuYwppbmRleCAwZmJkNzJhOWFiNTYu LmUxNmVkZTc1NDEyYiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxf bHJjLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfbHJjLmMKQEAgLTIzNSw2 ICsyMzUsMjAgQEAgc3RhdGljIHZvaWQgZXhlY2xpc3RzX2luaXRfcmVnX3N0YXRlKHUzMiAqcmVn X3N0YXRlLAogCQkJCSAgICAgY29uc3Qgc3RydWN0IGludGVsX3JpbmcgKnJpbmcsCiAJCQkJICAg ICBib29sIGNsb3NlKTsKIAorc3RhdGljIHZvaWQgY2FuY2VsX3RpbWVyKHN0cnVjdCB0aW1lcl9s aXN0ICp0KQoreworCWlmICghUkVBRF9PTkNFKHQtPmV4cGlyZXMpKQorCQlyZXR1cm47CisKKwlk ZWxfdGltZXIodCk7CisJV1JJVEVfT05DRSh0LT5leHBpcmVzLCAwKTsKK30KKworc3RhdGljIGlu bGluZSBib29sIHRpbWVyX2V4cGlyZWQoY29uc3Qgc3RydWN0IHRpbWVyX2xpc3QgKnQpCit7CisJ cmV0dXJuIFJFQURfT05DRSh0LT5leHBpcmVzKSAmJiAhdGltZXJfcGVuZGluZyh0KTsKK30KKwog c3RhdGljIHZvaWQgX19jb250ZXh0X3Bpbl9hY3F1aXJlKHN0cnVjdCBpbnRlbF9jb250ZXh0ICpj ZSkKIHsKIAltdXRleF9hY3F1aXJlKCZjZS0+cGluX211dGV4LmRlcF9tYXAsIDIsIDAsIF9SRVRf SVBfKTsKQEAgLTEzNzMsNiArMTM4Nyw0NiBAQCBzdGF0aWMgdm9pZCByZWNvcmRfcHJlZW1wdGlv bihzdHJ1Y3QgaW50ZWxfZW5naW5lX2V4ZWNsaXN0cyAqZXhlY2xpc3RzKQogCSh2b2lkKUk5MTVf U0VMRlRFU1RfT05MWShleGVjbGlzdHMtPnByZWVtcHRfaGFuZy5jb3VudCsrKTsKIH0KIAorc3Rh dGljIHVuc2lnbmVkIGxvbmcgYWN0aXZlX3ByZWVtcHRfdGltZW91dChzdHJ1Y3QgaW50ZWxfZW5n aW5lX2NzICplbmdpbmUpCit7CisJc3RydWN0IGk5MTVfcmVxdWVzdCAqcnE7CisKKwlycSA9IGxh c3RfYWN0aXZlKCZlbmdpbmUtPmV4ZWNsaXN0cyk7CisJaWYgKCFycSkKKwkJcmV0dXJuIDA7CisK KwlyZXR1cm4gUkVBRF9PTkNFKGVuZ2luZS0+cHJvcHMucHJlZW1wdF90aW1lb3V0KTsKK30KKwor c3RhdGljIHZvaWQgc2V0X3ByZWVtcHRfdGltZW91dChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpl bmdpbmUpCit7CisJc3RydWN0IHRpbWVyX2xpc3QgKnQgPSAmZW5naW5lLT5leGVjbGlzdHMucHJl ZW1wdDsKKwl1bnNpZ25lZCBsb25nIHRpbWVvdXQ7CisKKwlpZiAoIUNPTkZJR19EUk1fSTkxNV9Q UkVFTVBUX1RJTUVPVVQpCisJCXJldHVybjsKKworCWlmICghaW50ZWxfZW5naW5lX2hhc19wcmVl bXB0aW9uKGVuZ2luZSkpCisJCXJldHVybjsKKworCXRpbWVvdXQgPSBhY3RpdmVfcHJlZW1wdF90 aW1lb3V0KGVuZ2luZSk7CisJaWYgKCF0aW1lb3V0KSB7CisJCWNhbmNlbF90aW1lcih0KTsKKwkJ cmV0dXJuOworCX0KKworCXRpbWVvdXQgPSBtc2Vjc190b19qaWZmaWVzX3RpbWVvdXQodGltZW91 dCk7CisJLyoKKwkgKiBQYXJhbm9pYSB0byBtYWtlIHN1cmUgdGhlIGNvbXBpbGVyIGNvbXB1dGVz IHRoZSB0aW1lb3V0IGJlZm9yZQorCSAqIGxvYWRpbmcgJ2ppZmZpZXMnIGFzIGppZmZpZXMgaXMg dm9sYXRpbGUgYW5kIG1heSBiZSB1cGRhdGVkIGluCisJICogdGhlIGJhY2tncm91bmQgYnkgYSB0 aW1lciB0aWNrLiBBbGwgdG8gcmVkdWNlIHRoZSBjb21wbGV4aXR5CisJICogb2YgdGhlIGFkZGl0 aW9uIGFuZCByZWR1Y2UgdGhlIHJpc2sgb2YgbG9zaW5nIGEgamlmZmllLgorCSAqLworCWJhcnJp ZXIoKTsKKworCW1vZF90aW1lcih0LCBqaWZmaWVzICsgdGltZW91dCk7Cit9CisKIHN0YXRpYyB2 b2lkIGV4ZWNsaXN0c19kZXF1ZXVlKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKIHsK IAlzdHJ1Y3QgaW50ZWxfZW5naW5lX2V4ZWNsaXN0cyAqIGNvbnN0IGV4ZWNsaXN0cyA9ICZlbmdp bmUtPmV4ZWNsaXN0czsKQEAgLTE3MzksNiArMTc5Myw4IEBAIHN0YXRpYyB2b2lkIGV4ZWNsaXN0 c19kZXF1ZXVlKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKIAogCQltZW1zZXQocG9y dCArIDEsIDAsIChsYXN0X3BvcnQgLSBwb3J0KSAqIHNpemVvZigqcG9ydCkpOwogCQlleGVjbGlz dHNfc3VibWl0X3BvcnRzKGVuZ2luZSk7CisKKwkJc2V0X3ByZWVtcHRfdGltZW91dChlbmdpbmUp OwogCX0gZWxzZSB7CiBza2lwX3N1Ym1pdDoKIAkJcmluZ19zZXRfcGF1c2VkKGVuZ2luZSwgMCk7 CkBAIC0xOTcxLDYgKzIwMjcsNDMgQEAgc3RhdGljIHZvaWQgX19leGVjbGlzdHNfc3VibWlzc2lv bl90YXNrbGV0KHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmNvbnN0IGVuZ2luZSkKIAl9CiB9CiAK K3N0YXRpYyBub2lubGluZSB2b2lkIHByZWVtcHRfcmVzZXQoc3RydWN0IGludGVsX2VuZ2luZV9j cyAqZW5naW5lKQoreworCWNvbnN0IHVuc2lnbmVkIGludCBiaXQgPSBJOTE1X1JFU0VUX0VOR0lO RSArIGVuZ2luZS0+aWQ7CisJdW5zaWduZWQgbG9uZyAqbG9jayA9ICZlbmdpbmUtPmd0LT5yZXNl dC5mbGFnczsKKworCWlmIChpOTE1X21vZHBhcmFtcy5yZXNldCA8IDMpCisJCXJldHVybjsKKwor CWlmICh0ZXN0X2FuZF9zZXRfYml0KGJpdCwgbG9jaykpCisJCXJldHVybjsKKworCS8qIE1hcmsg dGhpcyB0YXNrbGV0IGFzIGRpc2FibGVkIHRvIGF2b2lkIHdhaXRpbmcgZm9yIGl0IHRvIGNvbXBs ZXRlICovCisJdGFza2xldF9kaXNhYmxlX25vc3luYygmZW5naW5lLT5leGVjbGlzdHMudGFza2xl dCk7CisKKwlHRU1fVFJBQ0UoIiVzOiBwcmVlbXB0IHRpbWVvdXQgJWx1KyV1bXNcbiIsCisJCSAg ZW5naW5lLT5uYW1lLAorCQkgIGVuZ2luZS0+cHJvcHMucHJlZW1wdF90aW1lb3V0LAorCQkgIGpp ZmZpZXNfdG9fbXNlY3MoamlmZmllcyAtIGVuZ2luZS0+ZXhlY2xpc3RzLnByZWVtcHQuZXhwaXJl cykpOworCWludGVsX2VuZ2luZV9yZXNldChlbmdpbmUsICJwcmVlbXB0aW9uIHRpbWUgb3V0Iik7 CisKKwl0YXNrbGV0X2VuYWJsZSgmZW5naW5lLT5leGVjbGlzdHMudGFza2xldCk7CisJY2xlYXJf YW5kX3dha2VfdXBfYml0KGJpdCwgbG9jayk7Cit9CisKK3N0YXRpYyBib29sIHByZWVtcHRfdGlt ZW91dChjb25zdCBzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpjb25zdCBlbmdpbmUpCit7CisJY29u c3Qgc3RydWN0IHRpbWVyX2xpc3QgKnQgPSAmZW5naW5lLT5leGVjbGlzdHMucHJlZW1wdDsKKwor CWlmICghQ09ORklHX0RSTV9JOTE1X1BSRUVNUFRfVElNRU9VVCkKKwkJcmV0dXJuIGZhbHNlOwor CisJaWYgKCF0aW1lcl9leHBpcmVkKHQpKQorCQlyZXR1cm4gZmFsc2U7CisKKwlyZXR1cm4gUkVB RF9PTkNFKGVuZ2luZS0+ZXhlY2xpc3RzLnBlbmRpbmdbMF0pOworfQorCiAvKgogICogQ2hlY2sg dGhlIHVucmVhZCBDb250ZXh0IFN0YXR1cyBCdWZmZXJzIGFuZCBtYW5hZ2UgdGhlIHN1Ym1pc3Np b24gb2YgbmV3CiAgKiBjb250ZXh0cyB0byB0aGUgRUxTUCBhY2NvcmRpbmdseS4KQEAgLTE5Nzgs MjMgKzIwNzEsMzkgQEAgc3RhdGljIHZvaWQgX19leGVjbGlzdHNfc3VibWlzc2lvbl90YXNrbGV0 KHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmNvbnN0IGVuZ2luZSkKIHN0YXRpYyB2b2lkIGV4ZWNs aXN0c19zdWJtaXNzaW9uX3Rhc2tsZXQodW5zaWduZWQgbG9uZyBkYXRhKQogewogCXN0cnVjdCBp bnRlbF9lbmdpbmVfY3MgKiBjb25zdCBlbmdpbmUgPSAoc3RydWN0IGludGVsX2VuZ2luZV9jcyAq KWRhdGE7Ci0JdW5zaWduZWQgbG9uZyBmbGFnczsKKwlib29sIHRpbWVvdXQgPSBwcmVlbXB0X3Rp bWVvdXQoZW5naW5lKTsKIAogCXByb2Nlc3NfY3NiKGVuZ2luZSk7Ci0JaWYgKCFSRUFEX09OQ0Uo ZW5naW5lLT5leGVjbGlzdHMucGVuZGluZ1swXSkpIHsKKwlpZiAoIVJFQURfT05DRShlbmdpbmUt PmV4ZWNsaXN0cy5wZW5kaW5nWzBdKSB8fCB0aW1lb3V0KSB7CisJCXVuc2lnbmVkIGxvbmcgZmxh Z3M7CisKIAkJc3Bpbl9sb2NrX2lycXNhdmUoJmVuZ2luZS0+YWN0aXZlLmxvY2ssIGZsYWdzKTsK IAkJX19leGVjbGlzdHNfc3VibWlzc2lvbl90YXNrbGV0KGVuZ2luZSk7CiAJCXNwaW5fdW5sb2Nr X2lycXJlc3RvcmUoJmVuZ2luZS0+YWN0aXZlLmxvY2ssIGZsYWdzKTsKKworCQkvKiBSZWNoZWNr IGFmdGVyIHNlcmlhbGlzaW5nIHdpdGggZGlyZWN0LXN1Ym1pc3Npb24gKi8KKwkJaWYgKHRpbWVv dXQgJiYgcHJlZW1wdF90aW1lb3V0KGVuZ2luZSkpCisJCQlwcmVlbXB0X3Jlc2V0KGVuZ2luZSk7 CiAJfQogfQogCi1zdGF0aWMgdm9pZCBleGVjbGlzdHNfc3VibWlzc2lvbl90aW1lcihzdHJ1Y3Qg dGltZXJfbGlzdCAqdGltZXIpCitzdGF0aWMgdm9pZCBfX2V4ZWNsaXN0c19raWNrKHN0cnVjdCBp bnRlbF9lbmdpbmVfZXhlY2xpc3RzICpleGVjbGlzdHMpCiB7Ci0Jc3RydWN0IGludGVsX2VuZ2lu ZV9jcyAqZW5naW5lID0KLQkJZnJvbV90aW1lcihlbmdpbmUsIHRpbWVyLCBleGVjbGlzdHMudGlt ZXIpOwotCiAJLyogS2ljayB0aGUgdGFza2xldCBmb3Igc29tZSBpbnRlcnJ1cHQgY29hbGVzY2lu ZyBhbmQgcmVzZXQgaGFuZGxpbmcgKi8KLQl0YXNrbGV0X2hpX3NjaGVkdWxlKCZlbmdpbmUtPmV4 ZWNsaXN0cy50YXNrbGV0KTsKKwl0YXNrbGV0X2hpX3NjaGVkdWxlKCZleGVjbGlzdHMtPnRhc2ts ZXQpOworfQorCisjZGVmaW5lIGV4ZWNsaXN0c19raWNrKHQsIG1lbWJlcikgXAorCV9fZXhlY2xp c3RzX2tpY2soY29udGFpbmVyX29mKHQsIHN0cnVjdCBpbnRlbF9lbmdpbmVfZXhlY2xpc3RzLCBt ZW1iZXIpKQorCitzdGF0aWMgdm9pZCBleGVjbGlzdHNfdGltZXNsaWNlKHN0cnVjdCB0aW1lcl9s aXN0ICp0aW1lcikKK3sKKwlleGVjbGlzdHNfa2ljayh0aW1lciwgdGltZXIpOworfQorCitzdGF0 aWMgdm9pZCBleGVjbGlzdHNfcHJlZW1wdChzdHJ1Y3QgdGltZXJfbGlzdCAqdGltZXIpCit7CisJ ZXhlY2xpc3RzX2tpY2sodGltZXIsIHByZWVtcHQpOwogfQogCiBzdGF0aWMgdm9pZCBxdWV1ZV9y ZXF1ZXN0KHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwKQEAgLTM0MTcsNiArMzUyNiw3 IEBAIGdlbjEyX2VtaXRfZmluaV9icmVhZGNydW1iX3JjcyhzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpy ZXF1ZXN0LCB1MzIgKmNzKQogc3RhdGljIHZvaWQgZXhlY2xpc3RzX3Bhcmsoc3RydWN0IGludGVs X2VuZ2luZV9jcyAqZW5naW5lKQogewogCWRlbF90aW1lcigmZW5naW5lLT5leGVjbGlzdHMudGlt ZXIpOworCWRlbF90aW1lcigmZW5naW5lLT5leGVjbGlzdHMucHJlZW1wdCk7CiB9CiAKIHZvaWQg aW50ZWxfZXhlY2xpc3RzX3NldF9kZWZhdWx0X3N1Ym1pc3Npb24oc3RydWN0IGludGVsX2VuZ2lu ZV9jcyAqZW5naW5lKQpAQCAtMzUzNCw3ICszNjQ0LDggQEAgaW50IGludGVsX2V4ZWNsaXN0c19z dWJtaXNzaW9uX3NldHVwKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKIHsKIAl0YXNr bGV0X2luaXQoJmVuZ2luZS0+ZXhlY2xpc3RzLnRhc2tsZXQsCiAJCSAgICAgZXhlY2xpc3RzX3N1 Ym1pc3Npb25fdGFza2xldCwgKHVuc2lnbmVkIGxvbmcpZW5naW5lKTsKLQl0aW1lcl9zZXR1cCgm ZW5naW5lLT5leGVjbGlzdHMudGltZXIsIGV4ZWNsaXN0c19zdWJtaXNzaW9uX3RpbWVyLCAwKTsK Kwl0aW1lcl9zZXR1cCgmZW5naW5lLT5leGVjbGlzdHMudGltZXIsIGV4ZWNsaXN0c190aW1lc2xp Y2UsIDApOworCXRpbWVyX3NldHVwKCZlbmdpbmUtPmV4ZWNsaXN0cy5wcmVlbXB0LCBleGVjbGlz dHNfcHJlZW1wdCwgMCk7CiAKIAlsb2dpY2FsX3JpbmdfZGVmYXVsdF92ZnVuY3MoZW5naW5lKTsK IAlsb2dpY2FsX3JpbmdfZGVmYXVsdF9pcnFzKGVuZ2luZSk7CmRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9ndC9zZWxmdGVzdF9scmMuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0 L3NlbGZ0ZXN0X2xyYy5jCmluZGV4IDEyNzZkYTA1OWRjNi4uZTdhODZmNjBjZjgyIDEwMDY0NAot LS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9zZWxmdGVzdF9scmMuYworKysgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9ndC9zZWxmdGVzdF9scmMuYwpAQCAtMTU1Myw2ICsxNTUzLDEwMyBAQCBz dGF0aWMgaW50IGxpdmVfcHJlZW1wdF9oYW5nKHZvaWQgKmFyZykKIAlyZXR1cm4gZXJyOwogfQog CitzdGF0aWMgaW50IGxpdmVfcHJlZW1wdF90aW1lb3V0KHZvaWQgKmFyZykKK3sKKwlzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSA9IGFyZzsKKwlzdHJ1Y3QgaTkxNV9nZW1fY29udGV4dCAq Y3R4X2hpLCAqY3R4X2xvOworCXN0cnVjdCBpZ3Rfc3Bpbm5lciBzcGluX2xvOworCXN0cnVjdCBp bnRlbF9lbmdpbmVfY3MgKmVuZ2luZTsKKwllbnVtIGludGVsX2VuZ2luZV9pZCBpZDsKKwlpbnQg ZXJyID0gLUVOT01FTTsKKworCS8qCisJICogQ2hlY2sgdGhhdCB3ZSBmb3JjZSBwcmVlbXB0aW9u IHRvIG9jY3VyIGJ5IGNhbmNlbGxpbmcgdGhlIHByZXZpb3VzCisJICogY29udGV4dCBpZiBpdCBy ZWZ1c2VzIHRvIHlpZWxkIHRoZSBHUFUuCisJICovCisKKwlpZiAoIUhBU19MT0dJQ0FMX1JJTkdf UFJFRU1QVElPTihpOTE1KSkKKwkJcmV0dXJuIDA7CisKKwlpZiAoIWludGVsX2hhc19yZXNldF9l bmdpbmUoJmk5MTUtPmd0KSkKKwkJcmV0dXJuIDA7CisKKwlpZiAoaWd0X3NwaW5uZXJfaW5pdCgm c3Bpbl9sbywgJmk5MTUtPmd0KSkKKwkJcmV0dXJuIC1FTk9NRU07CisKKwljdHhfaGkgPSBrZXJu ZWxfY29udGV4dChpOTE1KTsKKwlpZiAoIWN0eF9oaSkKKwkJZ290byBlcnJfc3Bpbl9sbzsKKwlj dHhfaGktPnNjaGVkLnByaW9yaXR5ID0KKwkJSTkxNV9VU0VSX1BSSU9SSVRZKEk5MTVfQ09OVEVY VF9NQVhfVVNFUl9QUklPUklUWSk7CisKKwljdHhfbG8gPSBrZXJuZWxfY29udGV4dChpOTE1KTsK KwlpZiAoIWN0eF9sbykKKwkJZ290byBlcnJfY3R4X2hpOworCWN0eF9sby0+c2NoZWQucHJpb3Jp dHkgPQorCQlJOTE1X1VTRVJfUFJJT1JJVFkoSTkxNV9DT05URVhUX01JTl9VU0VSX1BSSU9SSVRZ KTsKKworCWZvcl9lYWNoX2VuZ2luZShlbmdpbmUsIGk5MTUsIGlkKSB7CisJCXVuc2lnbmVkIGxv bmcgc2F2ZWRfdGltZW91dDsKKwkJc3RydWN0IGk5MTVfcmVxdWVzdCAqcnE7CisKKwkJaWYgKCFp bnRlbF9lbmdpbmVfaGFzX3ByZWVtcHRpb24oZW5naW5lKSkKKwkJCWNvbnRpbnVlOworCisJCXJx ID0gc3Bpbm5lcl9jcmVhdGVfcmVxdWVzdCgmc3Bpbl9sbywgY3R4X2xvLCBlbmdpbmUsCisJCQkJ CSAgICBNSV9OT09QKTsgLyogcHJlZW1wdGlvbiBkaXNhYmxlZCAqLworCQlpZiAoSVNfRVJSKHJx KSkgeworCQkJZXJyID0gUFRSX0VSUihycSk7CisJCQlnb3RvIGVycl9jdHhfbG87CisJCX0KKwor CQlpOTE1X3JlcXVlc3RfYWRkKHJxKTsKKwkJaWYgKCFpZ3Rfd2FpdF9mb3Jfc3Bpbm5lcigmc3Bp bl9sbywgcnEpKSB7CisJCQlpbnRlbF9ndF9zZXRfd2VkZ2VkKCZpOTE1LT5ndCk7CisJCQllcnIg PSAtRUlPOworCQkJZ290byBlcnJfY3R4X2xvOworCQl9CisKKwkJcnEgPSBpZ3RfcmVxdWVzdF9h bGxvYyhjdHhfaGksIGVuZ2luZSk7CisJCWlmIChJU19FUlIocnEpKSB7CisJCQlpZ3Rfc3Bpbm5l cl9lbmQoJnNwaW5fbG8pOworCQkJZXJyID0gUFRSX0VSUihycSk7CisJCQlnb3RvIGVycl9jdHhf bG87CisJCX0KKworCQkvKiBGbHVzaCB0aGUgcHJldmlvdXMgQ1MgYWNrIGJlZm9yZSBjaGFuZ2lu ZyB0aW1lb3V0cyAqLworCQl3aGlsZSAoUkVBRF9PTkNFKGVuZ2luZS0+ZXhlY2xpc3RzLnBlbmRp bmdbMF0pKQorCQkJY3B1X3JlbGF4KCk7CisKKwkJc2F2ZWRfdGltZW91dCA9IGVuZ2luZS0+cHJv cHMucHJlZW1wdF90aW1lb3V0OworCQllbmdpbmUtPnByb3BzLnByZWVtcHRfdGltZW91dCA9IDE7 IC8qIGluIG1zLCAtPiAxIGppZmZpZSAqLworCisJCWk5MTVfcmVxdWVzdF9nZXQocnEpOworCQlp OTE1X3JlcXVlc3RfYWRkKHJxKTsKKworCQlpbnRlbF9lbmdpbmVfZmx1c2hfc3VibWlzc2lvbihl bmdpbmUpOworCQllbmdpbmUtPnByb3BzLnByZWVtcHRfdGltZW91dCA9IHNhdmVkX3RpbWVvdXQ7 CisKKwkJaWYgKGk5MTVfcmVxdWVzdF93YWl0KHJxLCAwLCBIWiAvIDEwKSA8IDApIHsKKwkJCWlu dGVsX2d0X3NldF93ZWRnZWQoJmk5MTUtPmd0KTsKKwkJCWk5MTVfcmVxdWVzdF9wdXQocnEpOwor CQkJZXJyID0gLUVUSU1FOworCQkJZ290byBlcnJfY3R4X2xvOworCQl9CisKKwkJaWd0X3NwaW5u ZXJfZW5kKCZzcGluX2xvKTsKKwkJaTkxNV9yZXF1ZXN0X3B1dChycSk7CisJfQorCisJZXJyID0g MDsKK2Vycl9jdHhfbG86CisJa2VybmVsX2NvbnRleHRfY2xvc2UoY3R4X2xvKTsKK2Vycl9jdHhf aGk6CisJa2VybmVsX2NvbnRleHRfY2xvc2UoY3R4X2hpKTsKK2Vycl9zcGluX2xvOgorCWlndF9z cGlubmVyX2ZpbmkoJnNwaW5fbG8pOworCXJldHVybiBlcnI7Cit9CisKIHN0YXRpYyBpbnQgcmFu ZG9tX3JhbmdlKHN0cnVjdCBybmRfc3RhdGUgKnJuZCwgaW50IG1pbiwgaW50IG1heCkKIHsKIAly ZXR1cm4gaTkxNV9wcmFuZG9tX3UzMl9tYXhfc3RhdGUobWF4IC0gbWluLCBybmQpICsgbWluOwpA QCAtMjQ1Niw2ICsyNTUzLDcgQEAgaW50IGludGVsX2V4ZWNsaXN0c19saXZlX3NlbGZ0ZXN0cyhz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKIAkJU1VCVEVTVChsaXZlX3N1cHByZXNzX3dh aXRfcHJlZW1wdCksCiAJCVNVQlRFU1QobGl2ZV9jaGFpbl9wcmVlbXB0KSwKIAkJU1VCVEVTVChs aXZlX3ByZWVtcHRfaGFuZyksCisJCVNVQlRFU1QobGl2ZV9wcmVlbXB0X3RpbWVvdXQpLAogCQlT VUJURVNUKGxpdmVfcHJlZW1wdF9zbW9rZSksCiAJCVNVQlRFU1QobGl2ZV92aXJ0dWFsX2VuZ2lu ZSksCiAJCVNVQlRFU1QobGl2ZV92aXJ0dWFsX21hc2spLApkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9wYXJhbXMuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcGFy YW1zLmgKaW5kZXggZDI5YWRlM2I3ZGU2Li41NjA1ODk3OGJiMjcgMTAwNjQ0Ci0tLSBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfcGFyYW1zLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9wYXJhbXMuaApAQCAtNjEsNyArNjEsNyBAQCBzdHJ1Y3QgZHJtX3ByaW50ZXI7CiAJcGFy YW0oY2hhciAqLCBkbWNfZmlybXdhcmVfcGF0aCwgTlVMTCkgXAogCXBhcmFtKGludCwgbW1pb19k ZWJ1ZywgLUlTX0VOQUJMRUQoQ09ORklHX0RSTV9JOTE1X0RFQlVHX01NSU8pKSBcCiAJcGFyYW0o aW50LCBlZHBfdnN3aW5nLCAwKSBcCi0JcGFyYW0oaW50LCByZXNldCwgMikgXAorCXBhcmFtKGlu dCwgcmVzZXQsIDMpIFwKIAlwYXJhbSh1bnNpZ25lZCBpbnQsIGluamVjdF9sb2FkX2ZhaWx1cmUs IDApIFwKIAlwYXJhbShpbnQsIGZhc3Rib290LCAtMSkgXAogCXBhcmFtKGludCwgZW5hYmxlX2Rw Y2RfYmFja2xpZ2h0LCAwKSBcCi0tIAoyLjIzLjAKCl9fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxp c3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFu L2xpc3RpbmZvL2ludGVsLWdmeA==