From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: Re: [RFC] drm/i915: Add sync framework support to execbuff IOCTL Date: Fri, 03 Jul 2015 12:17:33 +0100 Message-ID: <55966F4D.7000500@linux.intel.com> References: <1435835399-15732-1-git-send-email-John.C.Harrison@Intel.com> <20150702115427.GV21398@nuc-i3427.alporthouse.com> <55953644.7030502@Intel.com> <20150702132238.GY21398@nuc-i3427.alporthouse.com> <55955C10.5000306@Intel.com> <20150702155554.GE21398@nuc-i3427.alporthouse.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by gabe.freedesktop.org (Postfix) with ESMTP id 06A994A050 for ; Fri, 3 Jul 2015 04:17:35 -0700 (PDT) In-Reply-To: <20150702155554.GE21398@nuc-i3427.alporthouse.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Chris Wilson , John Harrison , Intel-GFX@Lists.FreeDesktop.Org List-Id: intel-gfx@lists.freedesktop.org Ck9uIDA3LzAyLzIwMTUgMDQ6NTUgUE0sIENocmlzIFdpbHNvbiB3cm90ZToKPiBJdCB3b3VsZCBi ZSBuaWNlIGlmIHdlIGNvdWxkIHJldXNlIG9uZSBzZXFubyBib3RoIGZvciBpbnRlcm5hbC9leHRl cm5hbAo+IGZlbmNlcy4gSWYgeW91IG5lZWQgdG8gZXhwb3NlIGEgZmVuY2Ugb3JkZXJpbmcgd2l0 aGluIGEgdGltZWxpbmUgdGhhdCBpcwo+IGJhc2VkIG9uIHRoZSBjcmVhdGlvbiBzdGFtcCByYXRo ZXIgdGhhbiBleGVjdXRpb24gc3RhbXAsIGl0IHNlZW1zIGxpa2UKPiB3ZSBjb3VsZCBqdXN0IGFk ZCBzdWNoIGEgc3RhbXAgd2hlbiBjcmVhdGluZyB0aGUgc3luY19wdCBhbmQgbm90IHdvcnJ5Cj4g YWJvdXQgaXRzIHJlbGF0aW9uc2hpcCB0byB0aGUgZXhlY3V0aW9uIHNlcW5vLgo+IAo+IERvaW5n IHNvIGRvZXMgZXhwb3NlIHRoYXQgcmVxdWVzdHMgYXJlIHJlb3JkZXJlZCB0byB1c2Vyc3BhY2Ug c2luY2UgdGhlCj4gc2lnbmFsbGluZyB0aW1lbGluZSBpcyBub3QgdGhlIHNhbWUgYXMgdXNlcnNw YWNlJ3Mgb3JkZXJlZCB0aW1lbGluZS4gTm90Cj4gc3VyZSBpZiB0aGF0IGlzIGEgcHJvYmxlbSBv ciBub3QuCj4gCj4gQWZhaWN0IHRoZSBzeW5jIHVhcGkgaXMgYmFzZWQgb24gd2FpdGluZyBmb3Ig YWxsIG9mIGEgc2V0IG9mIGZlbmNlcyB0bwo+IHJldGlyZS4gSXQgZG9lc24ndCBzZWVtIHRvIHJl bHkgb24gZmVuY2Ugb3JkZXJpbmcgKHRoYXQgaXMga25vd2luZyB0aGF0Cj4gZmVuY2UgQSB3aWxs IHNpZ25hbCBiZWZvcmUgZmVuY2UgQiBzbyBpdCBuZWVkIG9ubHkgd2FpdCBvbiBmZW5jZSBCKS4K PiAKPiBIZXJlJ3MgaG9waW5nIHRoYXQgd2UgY2FuIGhhdmUgYm90aCBzaW1wbGljaXR5IGFuZCBl ZmZpY2llbmN5Li4uCgpKdW1waW5nIGluIHdpdGggbm90IGV2ZW4gcGVyZmVjdCB1bmRlcnN0YW5k aW5nIG9mIGV2ZXJ5dGhpbmcgaGVyZSAtIGJ1dAp0aW1lbGluZSBidXNpbmVzcyBoYXMgYWx3YXlz IGJlZW4gY29uZnVzaW5nIG1lLiBUaGVyZSBpcyBub3RoaW5nIGluIHRoZSAKdWFwaSB3aGljaCBu ZWVkcyBpdCBhZmFpY3MgYW5kIGlpcmMgdGhlcmUgd2FzIHNvbWUgZGlzY3Vzc2lvbiBhdCB0aGUg dGltZQpKZXNzZSBmbG9hdGVkIGhpcyBwYXRjaGVzIHRoYXQgaXQgY2FuIGJlIHJlbW92ZWQuIEJh c2VkIG9uIHRoYXQgd2hlbiBJCnNxdWFzaGVkIGhpcyBwYXRjaGVzIGFuZCBwb3J0ZWQgdGhlbSBv biB0b3Agb2YgSm9obidzIHJlcXVlc3QgdG8gZmVuY2UKY29udmVyc2lvbiBpdCBlbmRlZCB1cCBz b21ldGhpbmcgbGlrZSB0aGUgYmVsb3cgKG1hbnVhbGx5IGVkaXRlZCBhIGJpdCB0bwpiZSBsZXNz IG5vaXN5IGFuZCBzb21lIHByZXAgcGF0Y2hlcyBvbWl0dGVkKToKClRoaXMgaW1wbGVtZW50cyB0 aGUgaW9jdGwgYmFzZWQgdWFwaSBhbmQgaW5kZWVkIHNlcW5vcyBhcmUgbm90IGFjdHVhbGx5CnVz ZWQgaW4gd2FpdHMuIFNvIGlzIHRoaXMgaW5zdWZmaWNpZW50IGZvciBzb21lIHJlYXNvbj8gKE90 aGVyIHRoYXQgaXQKZG9lcyBub3QgaW1wbGVtZW50IHRoZSBpbnB1dCBmZW5jZSBzaWRlIG9mIHRo aW5ncy4pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvS2NvbmZpZyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L0tjb25maWcKaW5kZXggNzRhY2NhOS4uMDdmNmFkOSAxMDA2NDQKLS0t IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvS2NvbmZpZworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9LY29uZmlnCkBAIC03MSwzICs3MSwxNyBAQCBjb25maWcgRFJNX0k5MTVfUFJFTElNSU5BUllf SFdfU1VQUE9SVAogCSAgb3B0aW9uIGNoYW5nZXMgdGhlIGRlZmF1bHQgZm9yIHRoYXQgbW9kdWxl IG9wdGlvbi4KIAogCSAgSWYgaW4gZG91YnQsIHNheSAiTiIuCisKK2NvbmZpZyBEUk1fSTkxNV9T WU5DCisJYm9vbCAiRW5hYmxlIGV4cGxpY2l0IHN5bmMgc3VwcG9ydCIKKwlkZXBlbmRzIG9uIERS TV9JOTE1CisJZGVmYXVsdCB5IGlmIFNUQUdJTkcKKwlkZXBlbmRzIG9uIFNUQUdJTkcKKwlzZWxl Y3QgQU5EUk9JRAorCXNlbGVjdCBTWU5DCisJaGVscAorCSAgQ2hvb3NlIHRoaXMgb3B0aW9uIHRv IGVuYWJsZSBBbmRyb2lkIG5hdGl2ZSBzeW5jIHN1cHBvcnQgYW5kIHRoZQorCSAgY29ycmVzcG9u ZGluZyBpOTE1IGRyaXZlciBjb2RlIHRvIGV4cG9zZSBpdC4gIFNsaWdodGx5IGluY3JlYXNlcwor CSAgZHJpdmVyIHNpemUgYW5kIHB1bGxzIGluIHN5bmMgc3VwcG9ydCBmcm9tIHN0YWdpbmcuCisK KwkgIElmIGluIGRvdWJ0LCBzYXkgIlkiLgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvTWFrZWZpbGUgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9NYWtlZmlsZQppbmRleCBkYjIxYzkz Li45M2EzYmMwIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9NYWtlZmlsZQorKysg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9NYWtlZmlsZQpAQCAtOTEsNiArOTEsOSBAQCBpOTE1LXkg Kz0gaTkxNV92Z3B1Lm8KICMgbGVnYWN5IGhvcnJvcnMKIGk5MTUteSArPSBpOTE1X2RtYS5vCiAK KyMgc3luYyBwb2ludHMKK2k5MTUtJChDT05GSUdfRFJNX0k5MTVfU1lOQykJKz0gaTkxNV9zeW5j Lm8KKwogb2JqLSQoQ09ORklHX0RSTV9JOTE1KSAgKz0gaTkxNS5vCiAKIENGTEFHU19pOTE1X3Ry YWNlX3BvaW50cy5vIDo9IC1JJChzcmMpCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAppbmRleCAzZWYz OTk3Li4yY2Y0ZDNmIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5o CisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKQEAgLTI3NTMsNiArMjc1Mywy NiBAQCB2b2lkIGk5MTVfaW5pdF92bShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYs CiB2b2lkIGk5MTVfZ2VtX2ZyZWVfb2JqZWN0KHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqb2JqKTsK IHZvaWQgaTkxNV9nZW1fdm1hX2Rlc3Ryb3koc3RydWN0IGk5MTVfdm1hICp2bWEpOwogCisvKiBp OTE1X3N5bmMuYyAqLworc3RydWN0IHN5bmNfZmVuY2U7CisKKyNpZmRlZiBDT05GSUdfRFJNX0k5 MTVfU1lOQworaW50IGk5MTVfZmVuY2VfcmluZ19maWxsX2RyaXZlcl9kYXRhKHN0cnVjdCBmZW5j ZSAqZmVuY2UsIHZvaWQgKmRhdGEsIGludCBzaXplKTsKK3ZvaWQgaTkxNV9mZW5jZV9yaW5nX3Zh bHVlX3N0cihzdHJ1Y3QgZmVuY2UgKmZlbmNlLCBjaGFyICpzdHIsIGludCBzaXplKTsKK3ZvaWQg aTkxNV9mZW5jZV9yaW5nX3RpbWVsaW5lX3ZhbHVlX3N0cihzdHJ1Y3QgZmVuY2UgKmZlbmNlLCBj aGFyICpzdHIsCisJCQkJCWludCBzaXplKTsKKworaW50IGk5MTVfY3JlYXRlX3N5bmNfZmVuY2Vf cmluZyhzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSwKKwkJCQlzdHJ1Y3Qgc3luY19m ZW5jZSAqKnN5bmNfZmVuY2UsIGludCAqZmVuY2VfZmQpOworI2Vsc2UKK3N0YXRpYyBpbmxpbmUK K2ludCBpOTE1X2NyZWF0ZV9zeW5jX2ZlbmNlX3Jpbmcoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1 ZXN0ICpyZXEsCisJCQkJc3RydWN0IHN5bmNfZmVuY2UgKipzeW5jX2ZlbmNlLCBpbnQgKmZlbmNl X2ZkKQoreworCXJldHVybiAtRU5PREVWOworfQorI2VuZGlmCisKICNkZWZpbmUgUElOX01BUFBB QkxFIDB4MQogI2RlZmluZSBQSU5fTk9OQkxPQ0sgMHgyCiAjZGVmaW5lIFBJTl9HTE9CQUwgMHg0 CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9nZW0uYwppbmRleCA1NjBkMjQ0Li5hMDQ4NTNjIDEwMDY0NAotLS0g YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZ2VtLmMKQEAgLTI2MzMsNyArMjYzMyw3IEBAIHN0YXRpYyBjb25zdCBjaGFyICpp OTE1X2dlbV9yZXF1ZXN0X2dldF90aW1lbGluZV9uYW1lKHN0cnVjdCBmZW5jZSAqcmVxX2ZlbmNl KQogCXJldHVybiByZXEtPnJpbmctPm5hbWU7CiB9CiAKLSNpZiAwCisjaWYgQ09ORklHX0RSTV9J OTE1X1NZTkMKIHN0YXRpYyBib29sIGk5MTVfZ2VtX3JlcXVlc3RfaXNfc2lnbmFsZWQoc3RydWN0 IGZlbmNlICpyZXFfZmVuY2UpCiB7CiAJc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEg PSBjb250YWluZXJfb2YocmVxX2ZlbmNlLApAQCAtMjc3MCwxMiArMjc3MCwxNCBAQCBzdGF0aWMg Y29uc3Qgc3RydWN0IGZlbmNlX29wcyBpOTE1X2dlbV9yZXF1ZXN0X2ZvcHMgPSB7CiAJLmdldF9k cml2ZXJfbmFtZQk9IGk5MTVfZ2VtX3JlcXVlc3RfZ2V0X2RyaXZlcl9uYW1lLAogCS5nZXRfdGlt ZWxpbmVfbmFtZQk9IGk5MTVfZ2VtX3JlcXVlc3RfZ2V0X3RpbWVsaW5lX25hbWUsCiAJLmVuYWJs ZV9zaWduYWxpbmcJPSBpOTE1X2dlbV9yZXF1ZXN0X2VuYWJsZV9zaWduYWxpbmcsCiAJLndhaXQJ CQk9IGZlbmNlX2RlZmF1bHRfd2FpdCwKIAkucmVsZWFzZQkJPSBpOTE1X2dlbV9yZXF1ZXN0X2Zy ZWUsCisjaWYgQ09ORklHX0RSTV9JOTE1X1NZTkMKKwkuc2lnbmFsZWQJCT0gaTkxNV9nZW1fcmVx dWVzdF9pc19zaWduYWxlZCwKKwkuZmlsbF9kcml2ZXJfZGF0YQk9IGk5MTVfZmVuY2VfcmluZ19m aWxsX2RyaXZlcl9kYXRhLAorCS5mZW5jZV92YWx1ZV9zdHIJPSBpOTE1X2ZlbmNlX3JpbmdfdmFs dWVfc3RyLAorCS50aW1lbGluZV92YWx1ZV9zdHIJPSBpOTE1X2ZlbmNlX3JpbmdfdGltZWxpbmVf dmFsdWVfc3RyCisjZW5kaWYKIH07CiAKIGludCBfaTkxNV9nZW1fcmVxdWVzdF9hbGxvYyhzdHJ1 Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nLApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9nZW1fZXhlY2J1ZmZlci5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1f ZXhlY2J1ZmZlci5jCmluZGV4IDE4MmM3MzAuLmU2MzQyYWMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZ2VtX2V4ZWNidWZmZXIuYworKysgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2dlbV9leGVjYnVmZmVyLmMKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJp OTE1X3RyYWNlLmgiCiAjaW5jbHVkZSAiaW50ZWxfZHJ2LmgiCiAjaW5jbHVkZSA8bGludXgvZG1h X3JlbWFwcGluZy5oPgorI2luY2x1ZGUgIi4uLy4uLy4uL3N0YWdpbmcvYW5kcm9pZC9zeW5jLmgi CiAKICNkZWZpbmUgIF9fRVhFQ19PQkpFQ1RfSEFTX1BJTiAoMTw8MzEpCiAjZGVmaW5lICBfX0VY RUNfT0JKRUNUX0hBU19GRU5DRSAoMTw8MzApCkBAIC0xNDE3LDYgKzE0MTgsOCBAQCBpOTE1X2dl bV9kb19leGVjYnVmZmVyKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCiAJdTMy IGRpc3BhdGNoX2ZsYWdzOwogCWludCByZXQ7CiAJYm9vbCBuZWVkX3JlbG9jczsKKwlzdHJ1Y3Qg c3luY19mZW5jZSAqc3luY19mZW5jZSA9IE5VTEw7CisJaW50IGZlbmNlX2ZkID0gLTE7CiAKIAlp ZiAoIWk5MTVfZ2VtX2NoZWNrX2V4ZWNidWZmZXIoYXJncykpCiAJCXJldHVybiAtRUlOVkFMOwpA QCAtMTYxMCw2ICsxNjEzLDEzIEBAIGk5MTVfZ2VtX2RvX2V4ZWNidWZmZXIoc3RydWN0IGRybV9k ZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKIAlpZiAocmV0KQogCQlnb3RvIGVycl9iYXRjaF91bnBp bjsKIAorCWlmIChhcmdzLT5mbGFncyAmIEk5MTVfRVhFQ19GRU5DRV9PVVQpIHsKKwkJcmV0ID0g aTkxNV9jcmVhdGVfc3luY19mZW5jZV9yaW5nKHBhcmFtcy0+cmVxdWVzdCwgJnN5bmNfZmVuY2Us CisJCQkJCQkgICZmZW5jZV9mZCk7CisJCWlmIChyZXQpCisJCQlnb3RvIGVycl9iYXRjaF91bnBp bjsKKwl9CisKIAlyZXQgPSBpOTE1X2dlbV9yZXF1ZXN0X2FkZF90b19jbGllbnQocGFyYW1zLT5y ZXF1ZXN0LCBmaWxlKTsKIAlpZiAocmV0KQogCQlnb3RvIGVycl9iYXRjaF91bnBpbjsKQEAgLTE2 MjgsNiArMTYzOCwyNiBAQCBpOTE1X2dlbV9kb19leGVjYnVmZmVyKHN0cnVjdCBkcm1fZGV2aWNl ICpkZXYsIHZvaWQgKmRhdGEsCiAJcGFyYW1zLT5jdHggICAgICAgICAgICAgICAgICAgICA9IGN0 eDsKIAogCXJldCA9IGRldl9wcml2LT5ndC5leGVjYnVmX3N1Ym1pdChwYXJhbXMsIGFyZ3MsICZl Yi0+dm1hcyk7CisJaWYgKHJldCkKKwkJZ290byBlcnJfc3VibWl0OworCisJaWYgKHN5bmNfZmVu Y2UpIHsKKwkJc3luY19mZW5jZV9pbnN0YWxsKHN5bmNfZmVuY2UsIGZlbmNlX2ZkKTsKKwkJYXJn cy0+cnN2ZDIgPSBmZW5jZV9mZDsKKwkJc3luY19mZW5jZSA9IE5VTEw7CisJfQorCitlcnJfc3Vi bWl0OgorCWlmIChzeW5jX2ZlbmNlKSB7CisJCS8qCisJCSAqIFdlIGFyZSB1bmRlciB0aGUgc3Ry dWN0IG11dGV4IGhlcmUgYW5kIHN5bmMgZmVuY2Ugd2UKKwkJICogY3JlYXRlZCB3aWxsIGF0dGVt cHQgdG8gZ3JhYiBpdCBpbiBpdHMgZGVzdHJ1Y3Rvci4KKwkJICogVGhlcmVmb3JlIHJlbW92ZSB0 aGUgbG9jayBiZWZvcmUgdW5yZWZlcmVuY2luZy4KKwkJICovCisJCXN5bmNfZmVuY2UtPmxvY2sg PSBOVUxMOworCQlmcHV0KHN5bmNfZmVuY2UtPmZpbGUpOworCQlwdXRfdW51c2VkX2ZkKGZlbmNl X2ZkKTsKKwl9CiAKIGVycl9iYXRjaF91bnBpbjoKIAkvKgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9zeW5jLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3N5bmMu YwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xYTUwNjEwCi0tLSAvZGV2L251 bGwKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9zeW5jLmMKQEAgLTAsMCArMSwxMDYg QEAKKy8qCisgKiBDb3B5cmlnaHQgwqkgMjAxMy0yMDE1IEludGVsIENvcnBvcmF0aW9uCisgKgor ICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBw ZXJzb24gb2J0YWluaW5nIGEKKyAqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRl ZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksCisgKiB0byBkZWFsIGluIHRo ZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0 aW9uCisgKiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwg ZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwKKyAqIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29m dHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZQorICogU29mdHdhcmUgaXMg ZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoK KyAqCisgKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5v dGljZSAoaW5jbHVkaW5nIHRoZSBuZXh0CisgKiBwYXJhZ3JhcGgpIHNoYWxsIGJlIGluY2x1ZGVk IGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlCisgKiBTb2Z0d2Fy ZS4KKyAqCisgKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJS QU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgorICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBO T1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCisgKiBGSVRO RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiAgSU4gTk8g RVZFTlQgU0hBTEwKKyAqIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJM RSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSCisgKiBMSUFCSUxJVFksIFdIRVRIRVIg SU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORworICog RlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVT RSBPUiBPVEhFUiBERUFMSU5HUworICogSU4gVEhFIFNPRlRXQVJFLgorICoKKyAqIEF1dGhvcnM6 CisgKiAgICBKZXNzZSBCYXJuZXMgPGpiYXJuZXNAdmlydHVvdXNnZWVrLm9yZz4KKyAqICAgIFR2 cnRrbyBVcnN1bGluIDx0dnJ0a28udXJzdWxpbkBpbnRlbC5jb20+CisgKgorICovCisKKyNpbmNs dWRlIDxsaW51eC9mcy5oPgorI2luY2x1ZGUgPGxpbnV4L2ZlbmNlLmg+CisjaW5jbHVkZSAiLi4v Li4vLi4vc3RhZ2luZy9hbmRyb2lkL3N5bmMuaCIKKyNpbmNsdWRlICJpOTE1X2Rydi5oIgorCisv KgorICogaTkxNSBBbmRyb2lkIG5hdGl2ZSBzeW5jIGZlbmNlcy4KKyAqCisgKiBXZSBpbXBsZW1l bnQgc3luYyBwb2ludHMgaW4gdGVybXMgb2YgaTkxNSBzZXFub3MuIFRoZXkncmUgZXhwb3NlZCB0 aHJvdWdoCisgKiB0aGUgRFJNX0lPQ1RMX0k5MTVfR0VNX0VYRUNCVUZGRVIyIGlvY3RsLCBhbmQg Y2FuIGJlIG1peGVkIGFuZCBtYXRjaGVkCisgKiB3aXRoIG90aGVyIEFuZHJvaWQgdGltZWxpbmVz IGFuZCBhZ2dyZWdhdGVkIGludG8gc3luY19mZW5jZXMsIGV0Yy4KKyAqCisgKiBUT0RPOgorICog ICAqIERpc3BsYXkgZW5naW5lIGZlbmNlcy4KKyAqICAgKiBFeHRlbmQgZHJpdmVyIGRhdGEgd2l0 aCBjb250ZXh0IGlkIC8gcmluZyBpZC4KKyAqLworCitpbnQgaTkxNV9mZW5jZV9yaW5nX2ZpbGxf ZHJpdmVyX2RhdGEoc3RydWN0IGZlbmNlICpmZW5jZSwgdm9pZCAqZGF0YSwgaW50IHNpemUpCit7 CisJc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEgPSBjb250YWluZXJfb2YoZmVuY2Us IHR5cGVvZigqcmVxKSwKKwkJCQkJCQlmZW5jZSk7CisKKwlpZiAoc2l6ZSA8IHNpemVvZihyZXEt PnNlcW5vKSkKKwkJcmV0dXJuIC1FTk9NRU07CisKKwltZW1jcHkoZGF0YSwgJnJlcS0+c2Vxbm8s IHNpemVvZihyZXEtPnNlcW5vKSk7CisKKwlyZXR1cm4gc2l6ZW9mKHJlcS0+c2Vxbm8pOworfQor Cit2b2lkIGk5MTVfZmVuY2VfcmluZ192YWx1ZV9zdHIoc3RydWN0IGZlbmNlICpmZW5jZSwgY2hh ciAqc3RyLCBpbnQgc2l6ZSkKK3sKKwlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSA9 IGNvbnRhaW5lcl9vZihmZW5jZSwgdHlwZW9mKCpyZXEpLAorCQkJCQkJCWZlbmNlKTsKKworCXNu cHJpbnRmKHN0ciwgc2l6ZSwgIiV1IiwgcmVxLT5zZXFubyk7Cit9CisKK3ZvaWQgaTkxNV9mZW5j ZV9yaW5nX3RpbWVsaW5lX3ZhbHVlX3N0cihzdHJ1Y3QgZmVuY2UgKmZlbmNlLCBjaGFyICpzdHIs CisJCQkJCWludCBzaXplKQoreworCXN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxID0g Y29udGFpbmVyX29mKGZlbmNlLCB0eXBlb2YoKnJlcSksCisJCQkJCQkJZmVuY2UpOworCXN0cnVj dCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcgPSByZXEtPnJpbmc7CisKKwlzbnByaW50ZihzdHIsIHNp emUsICIldSIsIHJpbmctPmdldF9zZXFubyhyaW5nLCBmYWxzZSkpOworfQorCitpbnQgaTkxNV9j cmVhdGVfc3luY19mZW5jZV9yaW5nKHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxLAor CQkJCXN0cnVjdCBzeW5jX2ZlbmNlICoqc3luY19mZW5jZSwgaW50ICpmZW5jZV9mZCkKK3sKKwlz dHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gcmVxLT5pOTE1LT5kZXY7CisJc3RydWN0IGludGVsX2Vu Z2luZV9jcyAqcmluZyA9IHJlcS0+cmluZzsKKwlzdHJ1Y3Qgc3luY19mZW5jZSAqc2ZlbmNlOwor CWNoYXIgcmluZ19uYW1lWzZdID0gInJpbmcwIjsKKwlpbnQgZmQ7CisKKwlmZCA9IGdldF91bnVz ZWRfZmRfZmxhZ3MoT19DTE9FWEVDKTsKKwlpZiAoZmQgPCAwKSB7CisJCURSTV9ERUJVRygiTm8g YXZhaWxhYmxlIGZpbGUgZGVzY3JpcHRvcnMhXG4iKTsKKwkJcmV0dXJuIGZkOworCX0KKworCXJp bmdfbmFtZVs0XSArPSByaW5nLT5pZDsKKwlzZmVuY2UgPSBzeW5jX2ZlbmNlX2NyZWF0ZV9kbWEo cmluZ19uYW1lLCAmcmVxLT5mZW5jZSwKKwkJCQkgICAgICAgJmRldi0+c3RydWN0X211dGV4KTsK KwlpZiAoIXNmZW5jZSkgeworCQlwdXRfdW51c2VkX2ZkKGZkKTsKKwkJcmV0dXJuIC1FTk9NRU07 CisJfQorCisJKnN5bmNfZmVuY2UgPSBzZmVuY2U7CisJKmZlbmNlX2ZkID0gZmQ7CisKKwlmZW5j ZV9nZXQoJnJlcS0+ZmVuY2UpOworCisJcmV0dXJuIDA7Cit9CmRpZmYgLS1naXQgYS9pbmNsdWRl L3VhcGkvZHJtL2k5MTVfZHJtLmggYi9pbmNsdWRlL3VhcGkvZHJtL2k5MTVfZHJtLmgKaW5kZXgg NDg1MWQ2Ni4uMjUyMmY3OCAxMDA2NDQKLS0tIGEvaW5jbHVkZS91YXBpL2RybS9pOTE1X2RybS5o CisrKyBiL2luY2x1ZGUvdWFwaS9kcm0vaTkxNV9kcm0uaApAQCAtMjQ2LDcgKzI0Niw3IEBAIHR5 cGVkZWYgc3RydWN0IF9kcm1faTkxNV9zYXJlYSB7CiAjZGVmaW5lIERSTV9JT0NUTF9JOTE1X0hX U19BRERSCQlEUk1fSU9XKERSTV9DT01NQU5EX0JBU0UgKyBEUk1fSTkxNV9IV1NfQUREUiwgc3Ry dWN0IGRybV9pOTE1X2dlbV9pbml0KQogI2RlZmluZSBEUk1fSU9DVExfSTkxNV9HRU1fSU5JVAkJ RFJNX0lPVyhEUk1fQ09NTUFORF9CQVNFICsgRFJNX0k5MTVfR0VNX0lOSVQsIHN0cnVjdCBkcm1f aTkxNV9nZW1faW5pdCkKICNkZWZpbmUgRFJNX0lPQ1RMX0k5MTVfR0VNX0VYRUNCVUZGRVIJRFJN X0lPVyhEUk1fQ09NTUFORF9CQVNFICsgRFJNX0k5MTVfR0VNX0VYRUNCVUZGRVIsIHN0cnVjdCBk cm1faTkxNV9nZW1fZXhlY2J1ZmZlcikKLSNkZWZpbmUgRFJNX0lPQ1RMX0k5MTVfR0VNX0VYRUNC VUZGRVIyCURSTV9JT1coRFJNX0NPTU1BTkRfQkFTRSArIERSTV9JOTE1X0dFTV9FWEVDQlVGRkVS Miwgc3RydWN0IGRybV9pOTE1X2dlbV9leGVjYnVmZmVyMikKKyNkZWZpbmUgRFJNX0lPQ1RMX0k5 MTVfR0VNX0VYRUNCVUZGRVIyCURSTV9JT1dSKERSTV9DT01NQU5EX0JBU0UgKyBEUk1fSTkxNV9H RU1fRVhFQ0JVRkZFUjIsIHN0cnVjdCBkcm1faTkxNV9nZW1fZXhlY2J1ZmZlcjIpCiAjZGVmaW5l IERSTV9JT0NUTF9JOTE1X0dFTV9QSU4JCURSTV9JT1dSKERSTV9DT01NQU5EX0JBU0UgKyBEUk1f STkxNV9HRU1fUElOLCBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3BpbikKICNkZWZpbmUgRFJNX0lPQ1RM X0k5MTVfR0VNX1VOUElOCURSTV9JT1coRFJNX0NPTU1BTkRfQkFTRSArIERSTV9JOTE1X0dFTV9V TlBJTiwgc3RydWN0IGRybV9pOTE1X2dlbV91bnBpbikKICNkZWZpbmUgRFJNX0lPQ1RMX0k5MTVf R0VNX0JVU1kJCURSTV9JT1dSKERSTV9DT01NQU5EX0JBU0UgKyBEUk1fSTkxNV9HRU1fQlVTWSwg c3RydWN0IGRybV9pOTE1X2dlbV9idXN5KQpAQCAtNzIyLDcgKzcyMiw3IEBAIHN0cnVjdCBkcm1f aTkxNV9nZW1fZXhlY2J1ZmZlcjIgewogI2RlZmluZSBJOTE1X0VYRUNfQ09OU1RBTlRTX1JFTF9T VVJGQUNFICgyPDw2KSAvKiBnZW40LzUgb25seSAqLwogCV9fdTY0IGZsYWdzOwogCV9fdTY0IHJz dmQxOyAvKiBub3cgdXNlZCBmb3IgY29udGV4dCBpbmZvICovCi0JX191NjQgcnN2ZDI7CisJX191 NjQgcnN2ZDI7IC8qIG5vdyB1c2VkIGZvciBmZW5jZSBmZCAqLwogfTsKIAogLyoqIFJlc2V0cyB0 aGUgU08gd3JpdGUgb2Zmc2V0IHJlZ2lzdGVycyBmb3IgdHJhbnNmb3JtIGZlZWRiYWNrIG9uIGdl bjcuICovCkBAIC03NjAsNyArNzYwLDkgQEAgc3RydWN0IGRybV9pOTE1X2dlbV9leGVjYnVmZmVy MiB7CiAjZGVmaW5lIEk5MTVfRVhFQ19CU0RfUklORzEJCSgxPDwxMykKICNkZWZpbmUgSTkxNV9F WEVDX0JTRF9SSU5HMgkJKDI8PDEzKQogCi0jZGVmaW5lIF9fSTkxNV9FWEVDX1VOS05PV05fRkxB R1MgLSgxPDwxNSkKKyNkZWZpbmUgSTkxNV9FWEVDX0ZFTkNFX09VVAkJKDE8PDE1KQorCisjZGVm aW5lIF9fSTkxNV9FWEVDX1VOS05PV05fRkxBR1MgLSgxPDwxNikKIAogI2RlZmluZSBJOTE1X0VY RUNfQ09OVEVYVF9JRF9NQVNLCSgweGZmZmZmZmZmKQogI2RlZmluZSBpOTE1X2V4ZWNidWZmZXIy X3NldF9jb250ZXh0X2lkKGViMiwgY29udGV4dCkgXAotLSAKMi40LjAKCgpfX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0 CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9w Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=