From mboxrd@z Thu Jan 1 00:00:00 1970 From: Stephen Rothwell Subject: Re: linux-next: manual merge of the drm-misc tree with the drm-intel tree Date: Thu, 25 May 2017 11:53:38 +1000 Message-ID: <20170525115338.17e621f6@canb.auug.org.au> References: <20170523120032.3cedbaa8@canb.auug.org.au> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20170523120032.3cedbaa8@canb.auug.org.au> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Dave Airlie Cc: Daniel Vetter , Intel Graphics , Linux Kernel Mailing List , DRI , Linux-Next Mailing List List-Id: intel-gfx@lists.freedesktop.org SGkgRGF2ZSwKCkp1c3QgY2MnaW5nIHlvdSBhcyBJIGd1ZXNzIHlvdSB3aWxsIG5lZWQgdG8gZml4 IHRoaXMgdXAgYXQgc29tZSBwb2ludC4KCk9uIFR1ZSwgMjMgTWF5IDIwMTcgMTI6MDA6MzIgKzEw MDAgU3RlcGhlbiBSb3Rod2VsbCA8c2ZyQGNhbmIuYXV1Zy5vcmcuYXU+IHdyb3RlOgo+Cj4gSGkg YWxsLAo+IAo+IFRvZGF5J3MgbGludXgtbmV4dCBtZXJnZSBvZiB0aGUgZHJtLW1pc2MgdHJlZSBn b3QgYSBjb25mbGljdCBpbjoKPiAKPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3Bs YXkuYwo+IAo+IGJldHdlZW4gY29tbWl0czoKPiAKPiAgIDFjZWNjODMwZTZiNiAoImRybS9pOTE1 OiBSZWZhY3RvciBDVVJCQVNFIGNhbGN1bGF0aW9uIikKPiAgIDAyNGZhYWM3ZDU5YiAoImRybS9p OTE1OiBTdXBwb3J0IHZhcmlhYmxlIGN1cnNvciBoZWlnaHQgb24gaXZiKyIpCj4gCj4gZnJvbSB0 aGUgZHJtLWludGVsIHRyZWUgYW5kIGNvbW1pdDoKPiAKPiAgIGMyYzQ0NmFkMjk0MyAoImRybTog QWRkIERSTV9NT0RFX1JPVEFURV8gYW5kIERSTV9NT0RFX1JFRkxFQ1RfIHRvIFVBUEkiKQo+IAo+ IGZyb20gdGhlIGRybS1taXNjIHRyZWUuCj4gCj4gSSBmaXhlZCBpdCB1cCAoc2VlIGJlbG93KSBh bmQgY2FuIGNhcnJ5IHRoZSBmaXggYXMgbmVjZXNzYXJ5LiBUaGlzCj4gaXMgbm93IGZpeGVkIGFz IGZhciBhcyBsaW51eC1uZXh0IGlzIGNvbmNlcm5lZCwgYnV0IGFueSBub24gdHJpdmlhbAo+IGNv bmZsaWN0cyBzaG91bGQgYmUgbWVudGlvbmVkIHRvIHlvdXIgdXBzdHJlYW0gbWFpbnRhaW5lciB3 aGVuIHlvdXIgdHJlZQo+IGlzIHN1Ym1pdHRlZCBmb3IgbWVyZ2luZy4gIFlvdSBtYXkgYWxzbyB3 YW50IHRvIGNvbnNpZGVyIGNvb3BlcmF0aW5nCj4gd2l0aCB0aGUgbWFpbnRhaW5lciBvZiB0aGUg Y29uZmxpY3RpbmcgdHJlZSB0byBtaW5pbWlzZSBhbnkgcGFydGljdWxhcmx5Cj4gY29tcGxleCBj b25mbGljdHMuCj4gCj4gLS0gCj4gQ2hlZXJzLAo+IFN0ZXBoZW4gUm90aHdlbGwKPiAKPiBkaWZm IC0tY2MgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCj4gaW5kZXggODIxN2Vk MGU3MTMyLDZhMDM3Yjg1NmQ5Ni4uMDAwMDAwMDAwMDAwCj4gLS0tIGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfZGlzcGxheS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf ZGlzcGxheS5jCj4gQEBAIC05MTQ0LDEwMiAtOTEzOCw2ICs5MTQ0LDEwMiBAQEAgb3V0Cj4gICAJ cmV0dXJuIGFjdGl2ZTsKPiAgIH0KPiAgIAo+ICArc3RhdGljIHUzMiBpbnRlbF9jdXJzb3JfYmFz ZShjb25zdCBzdHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUgKnBsYW5lX3N0YXRlKQo+ICArewo+ICAr CXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9Cj4gICsJCXRvX2k5MTUocGxhbmVf c3RhdGUtPmJhc2UucGxhbmUtPmRldik7Cj4gICsJY29uc3Qgc3RydWN0IGRybV9mcmFtZWJ1ZmZl ciAqZmIgPSBwbGFuZV9zdGF0ZS0+YmFzZS5mYjsKPiAgKwljb25zdCBzdHJ1Y3QgZHJtX2k5MTVf Z2VtX29iamVjdCAqb2JqID0gaW50ZWxfZmJfb2JqKGZiKTsKPiAgKwl1MzIgYmFzZTsKPiAgKwo+ ICArCWlmIChJTlRFTF9JTkZPKGRldl9wcml2KS0+Y3Vyc29yX25lZWRzX3BoeXNpY2FsKQo+ICAr CQliYXNlID0gb2JqLT5waHlzX2hhbmRsZS0+YnVzYWRkcjsKPiAgKwllbHNlCj4gICsJCWJhc2Ug PSBpbnRlbF9wbGFuZV9nZ3R0X29mZnNldChwbGFuZV9zdGF0ZSk7Cj4gICsKPiAgKwliYXNlICs9 IHBsYW5lX3N0YXRlLT5tYWluLm9mZnNldDsKPiAgKwo+ICArCS8qIElMSysgZG8gdGhpcyBhdXRv bWFnaWNhbGx5ICovCj4gICsJaWYgKEhBU19HTUNIX0RJU1BMQVkoZGV2X3ByaXYpICYmCj4gLSAJ ICAgIHBsYW5lX3N0YXRlLT5iYXNlLnJvdGF0aW9uICYgRFJNX1JPVEFURV8xODApCj4gKysJICAg IHBsYW5lX3N0YXRlLT5iYXNlLnJvdGF0aW9uICYgRFJNX01PREVfUk9UQVRFXzE4MCkKPiAgKwkJ YmFzZSArPSAocGxhbmVfc3RhdGUtPmJhc2UuY3J0Y19oICoKPiAgKwkJCSBwbGFuZV9zdGF0ZS0+ YmFzZS5jcnRjX3cgLSAxKSAqIGZiLT5mb3JtYXQtPmNwcFswXTsKPiAgKwo+ICArCXJldHVybiBi YXNlOwo+ICArfQo+ICArCj4gICtzdGF0aWMgdTMyIGludGVsX2N1cnNvcl9wb3NpdGlvbihjb25z dCBzdHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUgKnBsYW5lX3N0YXRlKQo+ICArewo+ICArCWludCB4 ID0gcGxhbmVfc3RhdGUtPmJhc2UuY3J0Y194Owo+ICArCWludCB5ID0gcGxhbmVfc3RhdGUtPmJh c2UuY3J0Y195Owo+ICArCXUzMiBwb3MgPSAwOwo+ICArCj4gICsJaWYgKHggPCAwKSB7Cj4gICsJ CXBvcyB8PSBDVVJTT1JfUE9TX1NJR04gPDwgQ1VSU09SX1hfU0hJRlQ7Cj4gICsJCXggPSAteDsK PiAgKwl9Cj4gICsJcG9zIHw9IHggPDwgQ1VSU09SX1hfU0hJRlQ7Cj4gICsKPiAgKwlpZiAoeSA8 IDApIHsKPiAgKwkJcG9zIHw9IENVUlNPUl9QT1NfU0lHTiA8PCBDVVJTT1JfWV9TSElGVDsKPiAg KwkJeSA9IC15Owo+ICArCX0KPiAgKwlwb3MgfD0geSA8PCBDVVJTT1JfWV9TSElGVDsKPiAgKwo+ ICArCXJldHVybiBwb3M7Cj4gICt9Cj4gICsKPiAgK3N0YXRpYyBib29sIGludGVsX2N1cnNvcl9z aXplX29rKGNvbnN0IHN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSAqcGxhbmVfc3RhdGUpCj4gICt7 Cj4gICsJY29uc3Qgc3RydWN0IGRybV9tb2RlX2NvbmZpZyAqY29uZmlnID0KPiAgKwkJJnBsYW5l X3N0YXRlLT5iYXNlLnBsYW5lLT5kZXYtPm1vZGVfY29uZmlnOwo+ICArCWludCB3aWR0aCA9IHBs YW5lX3N0YXRlLT5iYXNlLmNydGNfdzsKPiAgKwlpbnQgaGVpZ2h0ID0gcGxhbmVfc3RhdGUtPmJh c2UuY3J0Y19oOwo+ICArCj4gICsJcmV0dXJuIHdpZHRoID4gMCAmJiB3aWR0aCA8PSBjb25maWct PmN1cnNvcl93aWR0aCAmJgo+ICArCQloZWlnaHQgPiAwICYmIGhlaWdodCA8PSBjb25maWctPmN1 cnNvcl9oZWlnaHQ7Cj4gICt9Cj4gICsKPiAgK3N0YXRpYyBpbnQgaW50ZWxfY2hlY2tfY3Vyc29y KHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAo+ICArCQkJICAgICAgc3RydWN0 IGludGVsX3BsYW5lX3N0YXRlICpwbGFuZV9zdGF0ZSkKPiAgK3sKPiAgKwljb25zdCBzdHJ1Y3Qg ZHJtX2ZyYW1lYnVmZmVyICpmYiA9IHBsYW5lX3N0YXRlLT5iYXNlLmZiOwo+ICArCWludCBzcmNf eCwgc3JjX3k7Cj4gICsJdTMyIG9mZnNldDsKPiAgKwlpbnQgcmV0Owo+ICArCj4gICsJcmV0ID0g ZHJtX3BsYW5lX2hlbHBlcl9jaGVja19zdGF0ZSgmcGxhbmVfc3RhdGUtPmJhc2UsCj4gICsJCQkJ CSAgICZwbGFuZV9zdGF0ZS0+Y2xpcCwKPiAgKwkJCQkJICAgRFJNX1BMQU5FX0hFTFBFUl9OT19T Q0FMSU5HLAo+ICArCQkJCQkgICBEUk1fUExBTkVfSEVMUEVSX05PX1NDQUxJTkcsCj4gICsJCQkJ CSAgIHRydWUsIHRydWUpOwo+ICArCWlmIChyZXQpCj4gICsJCXJldHVybiByZXQ7Cj4gICsKPiAg KwlpZiAoIWZiKQo+ICArCQlyZXR1cm4gMDsKPiAgKwo+ICArCWlmIChmYi0+bW9kaWZpZXIgIT0g RFJNX0ZPUk1BVF9NT0RfTElORUFSKSB7Cj4gICsJCURSTV9ERUJVR19LTVMoImN1cnNvciBjYW5u b3QgYmUgdGlsZWRcbiIpOwo+ICArCQlyZXR1cm4gLUVJTlZBTDsKPiAgKwl9Cj4gICsKPiAgKwlz cmNfeCA9IHBsYW5lX3N0YXRlLT5iYXNlLnNyY194ID4+IDE2Owo+ICArCXNyY195ID0gcGxhbmVf c3RhdGUtPmJhc2Uuc3JjX3kgPj4gMTY7Cj4gICsKPiAgKwlpbnRlbF9hZGRfZmJfb2Zmc2V0cygm c3JjX3gsICZzcmNfeSwgcGxhbmVfc3RhdGUsIDApOwo+ICArCW9mZnNldCA9IGludGVsX2NvbXB1 dGVfdGlsZV9vZmZzZXQoJnNyY194LCAmc3JjX3ksIHBsYW5lX3N0YXRlLCAwKTsKPiAgKwo+ICAr CWlmIChzcmNfeCAhPSAwIHx8IHNyY195ICE9IDApIHsKPiAgKwkJRFJNX0RFQlVHX0tNUygiQXJi aXRyYXJ5IGN1cnNvciBwYW5uaW5nIG5vdCBzdXBwb3J0ZWRcbiIpOwo+ICArCQlyZXR1cm4gLUVJ TlZBTDsKPiAgKwl9Cj4gICsKPiAgKwlwbGFuZV9zdGF0ZS0+bWFpbi5vZmZzZXQgPSBvZmZzZXQ7 Cj4gICsKPiAgKwlyZXR1cm4gMDsKPiAgK30KPiAgKwo+ICAgc3RhdGljIHUzMiBpODQ1X2N1cnNv cl9jdGwoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCj4gICAJCQkg ICBjb25zdCBzdHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUgKnBsYW5lX3N0YXRlKQo+ICAgewo+IEBA QCAtOTM4OSwxNTQgLTkyNDUsMTE2ICs5Mzg5LDE1NCBAQEAgc3RhdGljIHUzMiBpOXh4X2N1cnNv cl9jdGwoY29uc3Qgc3RydWMKPiAgIAlyZXR1cm4gY250bDsKPiAgIH0KPiAgIAo+ICAtc3RhdGlj IHZvaWQgaTl4eF91cGRhdGVfY3Vyc29yKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywgdTMyIGJhc2Us Cj4gIC0JCQkgICAgICAgY29uc3Qgc3RydWN0IGludGVsX3BsYW5lX3N0YXRlICpwbGFuZV9zdGF0 ZSkKPiAgK3N0YXRpYyBib29sIGk5eHhfY3Vyc29yX3NpemVfb2soY29uc3Qgc3RydWN0IGludGVs X3BsYW5lX3N0YXRlICpwbGFuZV9zdGF0ZSkKPiAgIHsKPiAgLQlzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2ID0gY3J0Yy0+ZGV2Owo+ICAtCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9 IHRvX2k5MTUoZGV2KTsKPiAgLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YyA9IHRvX2lu dGVsX2NydGMoY3J0Yyk7Cj4gIC0JaW50IHBpcGUgPSBpbnRlbF9jcnRjLT5waXBlOwo+ICAtCXVp bnQzMl90IGNudGwgPSAwOwo+ICArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9 Cj4gICsJCXRvX2k5MTUocGxhbmVfc3RhdGUtPmJhc2UucGxhbmUtPmRldik7Cj4gICsJaW50IHdp ZHRoID0gcGxhbmVfc3RhdGUtPmJhc2UuY3J0Y193Owo+ICArCWludCBoZWlnaHQgPSBwbGFuZV9z dGF0ZS0+YmFzZS5jcnRjX2g7Cj4gICAKPiAgLQlpZiAocGxhbmVfc3RhdGUgJiYgcGxhbmVfc3Rh dGUtPmJhc2UudmlzaWJsZSkKPiAgLQkJY250bCA9IHBsYW5lX3N0YXRlLT5jdGw7Cj4gICsJaWYg KCFpbnRlbF9jdXJzb3Jfc2l6ZV9vayhwbGFuZV9zdGF0ZSkpCj4gICsJCXJldHVybiBmYWxzZTsK PiAgIAo+ICAtCWlmIChpbnRlbF9jcnRjLT5jdXJzb3JfY250bCAhPSBjbnRsKSB7Cj4gIC0JCUk5 MTVfV1JJVEVfRlcoQ1VSQ05UUihwaXBlKSwgY250bCk7Cj4gIC0JCVBPU1RJTkdfUkVBRF9GVyhD VVJDTlRSKHBpcGUpKTsKPiAgLQkJaW50ZWxfY3J0Yy0+Y3Vyc29yX2NudGwgPSBjbnRsOwo+ICAr CS8qIEN1cnNvciB3aWR0aCBpcyBsaW1pdGVkIHRvIGEgZmV3IHBvd2VyLW9mLXR3byBzaXplcyAq Lwo+ICArCXN3aXRjaCAod2lkdGgpIHsKPiAgKwljYXNlIDI1NjoKPiAgKwljYXNlIDEyODoKPiAg KwljYXNlIDY0Ogo+ICArCQlicmVhazsKPiAgKwlkZWZhdWx0Ogo+ICArCQlyZXR1cm4gZmFsc2U7 Cj4gICAJfQo+ICAgCj4gIC0JLyogYW5kIGNvbW1pdCBjaGFuZ2VzIG9uIG5leHQgdmJsYW5rICov Cj4gIC0JSTkxNV9XUklURV9GVyhDVVJCQVNFKHBpcGUpLCBiYXNlKTsKPiAgLQlQT1NUSU5HX1JF QURfRlcoQ1VSQkFTRShwaXBlKSk7Cj4gICsJLyoKPiAgKwkgKiBJVkIrIGhhdmUgQ1VSX0ZCQ19D VEwgd2hpY2ggYWxsb3dzIGFuIGFyYml0cmFyeSBjdXJzb3IKPiAgKwkgKiBoZWlnaHQgZnJvbSA4 IGxpbmVzIHVwIHRvIHRoZSBjdXJzb3Igd2lkdGgsIHdoZW4gdGhlCj4gICsJICogY3Vyc29yIGlz IG5vdCByb3RhdGVkLiBFdmVyeXRoaW5nIGVsc2UgcmVxdWlyZXMgc3F1YXJlCj4gICsJICogY3Vy c29ycy4KPiAgKwkgKi8KPiAgKwlpZiAoSEFTX0NVUl9GQkMoZGV2X3ByaXYpICYmCj4gLSAJICAg IHBsYW5lX3N0YXRlLT5iYXNlLnJvdGF0aW9uICYgRFJNX1JPVEFURV8wKSB7Cj4gKysJICAgIHBs YW5lX3N0YXRlLT5iYXNlLnJvdGF0aW9uICYgRFJNX01PREVfUk9UQVRFXzApIHsKPiAgKwkJaWYg KGhlaWdodCA8IDggfHwgaGVpZ2h0ID4gd2lkdGgpCj4gICsJCQlyZXR1cm4gZmFsc2U7Cj4gICsJ fSBlbHNlIHsKPiAgKwkJaWYgKGhlaWdodCAhPSB3aWR0aCkKPiAgKwkJCXJldHVybiBmYWxzZTsK PiAgKwl9Cj4gICAKPiAgLQlpbnRlbF9jcnRjLT5jdXJzb3JfYmFzZSA9IGJhc2U7Cj4gICsJcmV0 dXJuIHRydWU7Cj4gICB9Cj4gICAKPiAgLS8qIElmIG5vLXBhcnQgb2YgdGhlIGN1cnNvciBpcyB2 aXNpYmxlIG9uIHRoZSBmcmFtZWJ1ZmZlciwgdGhlbiB0aGUgR1BVIG1heSBoYW5nLi4uICovCj4g IC1zdGF0aWMgdm9pZCBpbnRlbF9jcnRjX3VwZGF0ZV9jdXJzb3Ioc3RydWN0IGRybV9jcnRjICpj cnRjLAo+ICAtCQkJCSAgICAgY29uc3Qgc3RydWN0IGludGVsX3BsYW5lX3N0YXRlICpwbGFuZV9z dGF0ZSkKPiAgK3N0YXRpYyBpbnQgaTl4eF9jaGVja19jdXJzb3Ioc3RydWN0IGludGVsX3BsYW5l ICpwbGFuZSwKPiAgKwkJCSAgICAgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUs Cj4gICsJCQkgICAgIHN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSAqcGxhbmVfc3RhdGUpCj4gICB7 Cj4gIC0Jc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGNydGMtPmRldjsKPiAgLQlzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRldik7Cj4gIC0Jc3RydWN0IGludGVs X2NydGMgKmludGVsX2NydGMgPSB0b19pbnRlbF9jcnRjKGNydGMpOwo+ICAtCWludCBwaXBlID0g aW50ZWxfY3J0Yy0+cGlwZTsKPiAgLQl1MzIgYmFzZSA9IGludGVsX2NydGMtPmN1cnNvcl9hZGRy Owo+ICAtCXVuc2lnbmVkIGxvbmcgaXJxZmxhZ3M7Cj4gIC0JdTMyIHBvcyA9IDA7Cj4gIC0KPiAg LQlpZiAocGxhbmVfc3RhdGUpIHsKPiAgLQkJaW50IHggPSBwbGFuZV9zdGF0ZS0+YmFzZS5jcnRj X3g7Cj4gIC0JCWludCB5ID0gcGxhbmVfc3RhdGUtPmJhc2UuY3J0Y195Owo+ICArCXN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUocGxhbmUtPmJhc2UuZGV2KTsKPiAg Kwljb25zdCBzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiA9IHBsYW5lX3N0YXRlLT5iYXNlLmZi Owo+ICArCWVudW0gcGlwZSBwaXBlID0gcGxhbmUtPnBpcGU7Cj4gICsJaW50IHJldDsKPiAgIAo+ ICAtCQlpZiAoeCA8IDApIHsKPiAgLQkJCXBvcyB8PSBDVVJTT1JfUE9TX1NJR04gPDwgQ1VSU09S X1hfU0hJRlQ7Cj4gIC0JCQl4ID0gLXg7Cj4gIC0JCX0KPiAgLQkJcG9zIHw9IHggPDwgQ1VSU09S X1hfU0hJRlQ7Cj4gICsJcmV0ID0gaW50ZWxfY2hlY2tfY3Vyc29yKGNydGNfc3RhdGUsIHBsYW5l X3N0YXRlKTsKPiAgKwlpZiAocmV0KQo+ICArCQlyZXR1cm4gcmV0Owo+ICAgCj4gIC0JCWlmICh5 IDwgMCkgewo+ICAtCQkJcG9zIHw9IENVUlNPUl9QT1NfU0lHTiA8PCBDVVJTT1JfWV9TSElGVDsK PiAgLQkJCXkgPSAteTsKPiAgLQkJfQo+ICAtCQlwb3MgfD0geSA8PCBDVVJTT1JfWV9TSElGVDsK PiAgKwkvKiBpZiB3ZSB3YW50IHRvIHR1cm4gb2ZmIHRoZSBjdXJzb3IgaWdub3JlIHdpZHRoIGFu ZCBoZWlnaHQgKi8KPiAgKwlpZiAoIWZiKQo+ICArCQlyZXR1cm4gMDsKPiAgIAo+ICAtCQkvKiBJ TEsrIGRvIHRoaXMgYXV0b21hZ2ljYWxseSAqLwo+ICAtCQlpZiAoSEFTX0dNQ0hfRElTUExBWShk ZXZfcHJpdikgJiYKPiAgLQkJICAgIHBsYW5lX3N0YXRlLT5iYXNlLnJvdGF0aW9uICYgRFJNX01P REVfUk9UQVRFXzE4MCkgewo+ICAtCQkJYmFzZSArPSAocGxhbmVfc3RhdGUtPmJhc2UuY3J0Y19o ICoKPiAgLQkJCQkgcGxhbmVfc3RhdGUtPmJhc2UuY3J0Y193IC0gMSkgKiA0Owo+ICAtCQl9Cj4g ICsJLyogQ2hlY2sgZm9yIHdoaWNoIGN1cnNvciB0eXBlcyB3ZSBzdXBwb3J0ICovCj4gICsJaWYg KCFpOXh4X2N1cnNvcl9zaXplX29rKHBsYW5lX3N0YXRlKSkgewo+ICArCQlEUk1fREVCVUcoIkN1 cnNvciBkaW1lbnNpb24gJWR4JWQgbm90IHN1cHBvcnRlZFxuIiwKPiAgKwkJCSAgcGxhbmVfc3Rh dGUtPmJhc2UuY3J0Y193LAo+ICArCQkJICBwbGFuZV9zdGF0ZS0+YmFzZS5jcnRjX2gpOwo+ICAr CQlyZXR1cm4gLUVJTlZBTDsKPiAgIAl9Cj4gICAKPiAgLQlzcGluX2xvY2tfaXJxc2F2ZSgmZGV2 X3ByaXYtPnVuY29yZS5sb2NrLCBpcnFmbGFncyk7Cj4gICsJaWYgKGZiLT5waXRjaGVzWzBdICE9 IHBsYW5lX3N0YXRlLT5iYXNlLmNydGNfdyAqIGZiLT5mb3JtYXQtPmNwcFswXSkgewo+ICArCQlE Uk1fREVCVUdfS01TKCJJbnZhbGlkIGN1cnNvciBzdHJpZGUgKCV1KSAoY3Vyc29yIHdpZHRoICVk KVxuIiwKPiAgKwkJCSAgICAgIGZiLT5waXRjaGVzWzBdLCBwbGFuZV9zdGF0ZS0+YmFzZS5jcnRj X3cpOwo+ICArCQlyZXR1cm4gLUVJTlZBTDsKPiAgKwl9Cj4gICAKPiAgLQlJOTE1X1dSSVRFX0ZX KENVUlBPUyhwaXBlKSwgcG9zKTsKPiAgKwkvKgo+ICArCSAqIFRoZXJlJ3Mgc29tZXRoaW5nIHdy b25nIHdpdGggdGhlIGN1cnNvciBvbiBDSFYgcGlwZSBDLgo+ICArCSAqIElmIGl0IHN0cmFkZGxl cyB0aGUgbGVmdCBlZGdlIG9mIHRoZSBzY3JlZW4gdGhlbgo+ICArCSAqIG1vdmluZyBpdCBhd2F5 IGZyb20gdGhlIGVkZ2Ugb3IgZGlzYWJsaW5nIGl0IG9mdGVuCj4gICsJICogcmVzdWx0cyBpbiBh IHBpcGUgdW5kZXJydW4sIGFuZCBvZnRlbiB0aGF0IGNhbiBsZWFkIHRvCj4gICsJICogZGVhZCBw aXBlIChjb25zdGFudCB1bmRlcnJ1biByZXBvcnRlZCwgYW5kIGl0IHNjYW5zCj4gICsJICogb3V0 IGp1c3QgYSBzb2xpZCBjb2xvcikuIFRvIHJlY292ZXIgZnJvbSB0aGF0LCB0aGUKPiAgKwkgKiBk aXNwbGF5IHBvd2VyIHdlbGwgbXVzdCBiZSB0dXJuZWQgb2ZmIGFuZCBvbiBhZ2Fpbi4KPiAgKwkg KiBSZWZ1c2UgdGhlIHB1dCB0aGUgY3Vyc29yIGludG8gdGhhdCBjb21wcm9taXNlZCBwb3NpdGlv bi4KPiAgKwkgKi8KPiAgKwlpZiAoSVNfQ0hFUlJZVklFVyhkZXZfcHJpdikgJiYgcGlwZSA9PSBQ SVBFX0MgJiYKPiAgKwkgICAgcGxhbmVfc3RhdGUtPmJhc2UudmlzaWJsZSAmJiBwbGFuZV9zdGF0 ZS0+YmFzZS5jcnRjX3ggPCAwKSB7Cj4gICsJCURSTV9ERUJVR19LTVMoIkNIViBjdXJzb3IgQyBu b3QgYWxsb3dlZCB0byBzdHJhZGRsZSB0aGUgbGVmdCBzY3JlZW4gZWRnZVxuIik7Cj4gICsJCXJl dHVybiAtRUlOVkFMOwo+ICArCX0KPiAgIAo+ICAtCWlmIChJU19JODQ1RyhkZXZfcHJpdikgfHwg SVNfSTg2NUcoZGV2X3ByaXYpKQo+ICAtCQlpODQ1X3VwZGF0ZV9jdXJzb3IoY3J0YywgYmFzZSwg cGxhbmVfc3RhdGUpOwo+ICAtCWVsc2UKPiAgLQkJaTl4eF91cGRhdGVfY3Vyc29yKGNydGMsIGJh c2UsIHBsYW5lX3N0YXRlKTsKPiAgKwlwbGFuZV9zdGF0ZS0+Y3RsID0gaTl4eF9jdXJzb3JfY3Rs KGNydGNfc3RhdGUsIHBsYW5lX3N0YXRlKTsKPiAgIAo+ICAtCXNwaW5fdW5sb2NrX2lycXJlc3Rv cmUoJmRldl9wcml2LT51bmNvcmUubG9jaywgaXJxZmxhZ3MpOwo+ICArCXJldHVybiAwOwo+ICAg fQo+ICAgCj4gIC1zdGF0aWMgYm9vbCBjdXJzb3Jfc2l6ZV9vayhzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYsCj4gIC0JCQkgICB1aW50MzJfdCB3aWR0aCwgdWludDMyX3QgaGVpZ2h0 KQo+ICArc3RhdGljIHZvaWQgaTl4eF91cGRhdGVfY3Vyc29yKHN0cnVjdCBpbnRlbF9wbGFuZSAq cGxhbmUsCj4gICsJCQkgICAgICAgY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNf c3RhdGUsCj4gICsJCQkgICAgICAgY29uc3Qgc3RydWN0IGludGVsX3BsYW5lX3N0YXRlICpwbGFu ZV9zdGF0ZSkKPiAgIHsKPiAgLQlpZiAod2lkdGggPT0gMCB8fCBoZWlnaHQgPT0gMCkKPiAgLQkJ cmV0dXJuIGZhbHNlOwo+ICArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRv X2k5MTUocGxhbmUtPmJhc2UuZGV2KTsKPiAgKwllbnVtIHBpcGUgcGlwZSA9IHBsYW5lLT5waXBl Owo+ICArCXUzMiBjbnRsID0gMCwgYmFzZSA9IDAsIHBvcyA9IDAsIGZiY19jdGwgPSAwOwo+ICAr CXVuc2lnbmVkIGxvbmcgaXJxZmxhZ3M7Cj4gICAKPiAgLQkvKgo+ICAtCSAqIDg0NWcvODY1ZyBh cmUgc3BlY2lhbCBpbiB0aGF0IHRoZXkgYXJlIG9ubHkgbGltaXRlZCBieQo+ICAtCSAqIHRoZSB3 aWR0aCBvZiB0aGVpciBjdXJzb3JzLCB0aGUgaGVpZ2h0IGlzIGFyYml0cmFyeSB1cCB0bwo+ICAt CSAqIHRoZSBwcmVjaXNpb24gb2YgdGhlIHJlZ2lzdGVyLiBFdmVyeXRoaW5nIGVsc2UgcmVxdWly ZXMKPiAgLQkgKiBzcXVhcmUgY3Vyc29ycywgbGltaXRlZCB0byBhIGZldyBwb3dlci1vZi10d28g c2l6ZXMuCj4gIC0JICovCj4gIC0JaWYgKElTX0k4NDVHKGRldl9wcml2KSB8fCBJU19JODY1Ryhk ZXZfcHJpdikpIHsKPiAgLQkJaWYgKCh3aWR0aCAmIDYzKSAhPSAwKQo+ICAtCQkJcmV0dXJuIGZh bHNlOwo+ICArCWlmIChwbGFuZV9zdGF0ZSAmJiBwbGFuZV9zdGF0ZS0+YmFzZS52aXNpYmxlKSB7 Cj4gICsJCWNudGwgPSBwbGFuZV9zdGF0ZS0+Y3RsOwo+ICAgCj4gIC0JCWlmICh3aWR0aCA+IChJ U19JODQ1RyhkZXZfcHJpdikgPyA2NCA6IDUxMikpCj4gIC0JCQlyZXR1cm4gZmFsc2U7Cj4gICsJ CWlmIChwbGFuZV9zdGF0ZS0+YmFzZS5jcnRjX2ggIT0gcGxhbmVfc3RhdGUtPmJhc2UuY3J0Y193 KQo+ICArCQkJZmJjX2N0bCA9IENVUl9GQkNfQ1RMX0VOIHwgKHBsYW5lX3N0YXRlLT5iYXNlLmNy dGNfaCAtIDEpOwo+ICAgCj4gIC0JCWlmIChoZWlnaHQgPiAxMDIzKQo+ICAtCQkJcmV0dXJuIGZh bHNlOwo+ICArCQliYXNlID0gaW50ZWxfY3Vyc29yX2Jhc2UocGxhbmVfc3RhdGUpOwo+ICArCQlw b3MgPSBpbnRlbF9jdXJzb3JfcG9zaXRpb24ocGxhbmVfc3RhdGUpOwo+ICArCX0KPiAgKwo+ICAr CXNwaW5fbG9ja19pcnFzYXZlKCZkZXZfcHJpdi0+dW5jb3JlLmxvY2ssIGlycWZsYWdzKTsKPiAg Kwo+ICArCS8qCj4gICsJICogT24gc29tZSBwbGF0Zm9ybXMgd3JpdGluZyBDVVJDTlRSIGZpcnN0 IHdpbGwgYWxzbwo+ICArCSAqIGNhdXNlIENVUlBPUyB0byBiZSBhcm1lZCBieSB0aGUgQ1VSQkFT RSB3cml0ZS4KPiAgKwkgKiBXaXRob3V0IHRoZSBDVVJDTlRSIHdyaXRlIHRoZSBDVVJQT1Mgd3Jp dGUgd291bGQKPiAgKwkgKiBhcm0gaXRzZWxmLgo+ICArCSAqCj4gICsJICogQ1VSQ05UUiBhbmQg Q1VSX0ZCQ19DVEwgYXJlIGFsd2F5cwo+ICArCSAqIGFybWVkIGJ5IHRoZSBDVVJCQVNFIHdyaXRl IG9ubHkuCj4gICsJICovCj4gICsJaWYgKHBsYW5lLT5jdXJzb3IuYmFzZSAhPSBiYXNlIHx8Cj4g ICsJICAgIHBsYW5lLT5jdXJzb3Iuc2l6ZSAhPSBmYmNfY3RsIHx8Cj4gICsJICAgIHBsYW5lLT5j dXJzb3IuY250bCAhPSBjbnRsKSB7Cj4gICsJCUk5MTVfV1JJVEVfRlcoQ1VSQ05UUihwaXBlKSwg Y250bCk7Cj4gICsJCWlmIChIQVNfQ1VSX0ZCQyhkZXZfcHJpdikpCj4gICsJCQlJOTE1X1dSSVRF X0ZXKENVUl9GQkNfQ1RMKHBpcGUpLCBmYmNfY3RsKTsKPiAgKwkJSTkxNV9XUklURV9GVyhDVVJQ T1MocGlwZSksIHBvcyk7Cj4gICsJCUk5MTVfV1JJVEVfRlcoQ1VSQkFTRShwaXBlKSwgYmFzZSk7 Cj4gICsKPiAgKwkJcGxhbmUtPmN1cnNvci5iYXNlID0gYmFzZTsKPiAgKwkJcGxhbmUtPmN1cnNv ci5zaXplID0gZmJjX2N0bDsKPiAgKwkJcGxhbmUtPmN1cnNvci5jbnRsID0gY250bDsKPiAgIAl9 IGVsc2Ugewo+ICAtCQlzd2l0Y2ggKHdpZHRoIHwgaGVpZ2h0KSB7Cj4gIC0JCWNhc2UgMjU2Ogo+ ICAtCQljYXNlIDEyODoKPiAgLQkJCWlmIChJU19HRU4yKGRldl9wcml2KSkKPiAgLQkJCQlyZXR1 cm4gZmFsc2U7Cj4gIC0JCWNhc2UgNjQ6Cj4gIC0JCQlicmVhazsKPiAgLQkJZGVmYXVsdDoKPiAg LQkJCXJldHVybiBmYWxzZTsKPiAgLQkJfQo+ICArCQlJOTE1X1dSSVRFX0ZXKENVUlBPUyhwaXBl KSwgcG9zKTsKPiAgIAl9Cj4gICAKPiAgLQlyZXR1cm4gdHJ1ZTsKPiAgKwlQT1NUSU5HX1JFQURf RlcoQ1VSQkFTRShwaXBlKSk7Cj4gICsKPiAgKwlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZkZXZf cHJpdi0+dW5jb3JlLmxvY2ssIGlycWZsYWdzKTsKPiAgK30KPiAgKwo+ICArc3RhdGljIHZvaWQg aTl4eF9kaXNhYmxlX2N1cnNvcihzdHJ1Y3QgaW50ZWxfcGxhbmUgKnBsYW5lLAo+ICArCQkJCXN0 cnVjdCBpbnRlbF9jcnRjICpjcnRjKQo+ICArewo+ICArCWk5eHhfdXBkYXRlX2N1cnNvcihwbGFu ZSwgTlVMTCwgTlVMTCk7Cj4gICB9Cj4gICAKPiAgKwo+ICAgLyogVkVTQSA2NDB4NDgweDcySHog bW9kZSB0byBzZXQgb24gdGhlIHBpcGUgKi8KPiAgIHN0YXRpYyBzdHJ1Y3QgZHJtX2Rpc3BsYXlf bW9kZSBsb2FkX2RldGVjdF9tb2RlID0gewo+ICAgCURSTV9NT0RFKCI2NDB4NDgwIiwgRFJNX01P REVfVFlQRV9ERUZBVUxULCAzMTUwMCwgNjQwLCA2NjQsCgotLSAKQ2hlZXJzLApTdGVwaGVuIFJv dGh3ZWxsCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCklu dGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRw czovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=