From mboxrd@z Thu Jan 1 00:00:00 1970 From: John.C.Harrison@Intel.com Subject: [RFC 33/39] drm/i915: Add early exit to execbuff_final() if insufficient ring space Date: Fri, 17 Jul 2015 15:33:42 +0100 Message-ID: <1437143628-6329-34-git-send-email-John.C.Harrison@Intel.com> References: <1437143628-6329-1-git-send-email-John.C.Harrison@Intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by gabe.freedesktop.org (Postfix) with ESMTP id BCCF66ED74 for ; Fri, 17 Jul 2015 07:34:29 -0700 (PDT) In-Reply-To: <1437143628-6329-1-git-send-email-John.C.Harrison@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 RnJvbTogSm9obiBIYXJyaXNvbiA8Sm9obi5DLkhhcnJpc29uQEludGVsLmNvbT4KCk9uZSBvZiB0 aGUgbWFqb3IgcHVycG9zZXMgb2YgdGhlIEdQVSBzY2hlZHVsZXIgaXMgdG8gYXZvaWQgc3RhbGxp bmcgdGhlIENQVSB3aGVuCnRoZSBHUFUgaXMgYnVzeSBhbmQgdW5hYmxlIHRvIGFjY2VwdCBtb3Jl IHdvcmsuIFRoaXMgY2hhbmdlIGFkZHMgc3VwcG9ydCB0byB0aGUKcmluZyBzdWJtaXNzaW9uIGNv ZGUgdG8gYWxsb3cgYSByaW5nIHNwYWNlIGNoZWNrIHRvIGJlIHBlcmZvcm1lZCBiZWZvcmUKYXR0 ZW1wdGluZyB0byBzdWJtaXQgYSBiYXRjaCBidWZmZXIgdG8gdGhlIGhhcmR3YXJlLiBJZiBpbnN1 ZmZpY2llbnQgc3BhY2UgaXMKYXZhaWxhYmxlIHRoZW4gdGhlIHNjaGVkdWxlciBjYW4gZ28gYXdh eSBhbmQgY29tZSBiYWNrIGxhdGVyLCBsZXR0aW5nIHRoZSBDUFUKZ2V0IG9uIHdpdGggb3RoZXIg d29yaywgcmF0aGVyIHRoYW4gc3RhbGxpbmcgYW5kIHdhaXRpbmcgZm9yIHRoZSBoYXJkd2FyZSB0 bwpjYXRjaCB1cC4KCkNoYW5nZS1JZDogSTI2NzE1OWNlMTE1MGNiNjcxNGQzNGE0OWI4NDFiY2Jl NGJmNjYzMjYKRm9yOiBWSVotMTU4NwpTaWduZWQtb2ZmLWJ5OiBKb2huIEhhcnJpc29uIDxKb2hu LkMuSGFycmlzb25ASW50ZWwuY29tPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2Vt X2V4ZWNidWZmZXIuYyB8IDQyICsrKysrKysrKysrKysrKystLS0tLS0KIGRyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2xyYy5jICAgICAgICAgICB8IDU3ICsrKysrKysrKysrKysrKysrKysrKysr KysrKy0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5jICAgIHwgMjQg KysrKysrKysrKysrKwogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5oICAg IHwgIDEgKwogNCBmaWxlcyBjaGFuZ2VkLCAxMDkgaW5zZXJ0aW9ucygrKSwgMTUgZGVsZXRpb25z KC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZXhlY2J1ZmZl ci5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZXhlY2J1ZmZlci5jCmluZGV4IGMy YTY5ZDguLmI3MDE4MzggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2Vt X2V4ZWNidWZmZXIuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9leGVjYnVm ZmVyLmMKQEAgLTEwNzgsMjUgKzEwNzgsMTkgQEAgaTkxNV9yZXNldF9nZW43X3NvbF9vZmZzZXRz KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiB7CiAJc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmlu ZyA9IHJlcS0+cmluZzsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYt PmRldl9wcml2YXRlOwotCWludCByZXQsIGk7CisJaW50IGk7CiAKIAlpZiAoIUlTX0dFTjcoZGV2 KSB8fCByaW5nICE9ICZkZXZfcHJpdi0+cmluZ1tSQ1NdKSB7CiAJCURSTV9ERUJVRygic29sIHJl c2V0IGlzIGdlbjcvcmNzIG9ubHlcbiIpOwogCQlyZXR1cm4gLUVJTlZBTDsKIAl9CiAKLQlyZXQg PSBpbnRlbF9yaW5nX2JlZ2luKHJlcSwgNCAqIDMpOwotCWlmIChyZXQpCi0JCXJldHVybiByZXQ7 Ci0KIAlmb3IgKGkgPSAwOyBpIDwgNDsgaSsrKSB7CiAJCWludGVsX3JpbmdfZW1pdChyaW5nLCBN SV9MT0FEX1JFR0lTVEVSX0lNTSgxKSk7CiAJCWludGVsX3JpbmdfZW1pdChyaW5nLCBHRU43X1NP X1dSSVRFX09GRlNFVChpKSk7CiAJCWludGVsX3JpbmdfZW1pdChyaW5nLCAwKTsKIAl9CiAKLQlp bnRlbF9yaW5nX2FkdmFuY2UocmluZyk7Ci0KIAlyZXR1cm4gMDsKIH0KIApAQCAtMTMxNSw2ICsx MzA5LDcgQEAgaW50IGk5MTVfZ2VtX3JpbmdidWZmZXJfc3VibWlzc2lvbl9maW5hbChzdHJ1Y3Qg aTkxNV9leGVjYnVmZmVyX3BhcmFtcyAqcGFyYW1zKQogCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3Mg ICpyaW5nID0gcGFyYW1zLT5yaW5nOwogCXU2NCBleGVjX3N0YXJ0LCBleGVjX2xlbjsKIAlpbnQg cmV0LCBpOworCXVpbnQzMl90IG1pbl9zcGFjZTsKIAogCS8qIFRoZSBtdXRleCBtdXN0IGJlIGFj cXVpcmVkIGJlZm9yZSBjYWxsaW5nIHRoaXMgZnVuY3Rpb24gKi8KIAlCVUdfT04oIW11dGV4X2lz X2xvY2tlZCgmcGFyYW1zLT5kZXYtPnN0cnVjdF9tdXRleCkpOwpAQCAtMTMzNiw4ICsxMzMxLDM2 IEBAIGludCBpOTE1X2dlbV9yaW5nYnVmZmVyX3N1Ym1pc3Npb25fZmluYWwoc3RydWN0IGk5MTVf ZXhlY2J1ZmZlcl9wYXJhbXMgKnBhcmFtcykKIAlpZiAocmV0KQogCQlyZXR1cm4gcmV0OwogCisJ LyoKKwkgKiBJdCB3b3VsZCBiZSBhIGJhZCBpZGVhIHRvIHJ1biBvdXQgb2Ygc3BhY2Ugd2hpbGUg d3JpdGluZyBjb21tYW5kcworCSAqIHRvIHRoZSByaW5nLiBPbmUgb2YgdGhlIG1ham9yIGFpbXMg b2YgdGhlIHNjaGVkdWxlciBpcyB0byBub3Qgc3RhbGwKKwkgKiBhdCBhbnkgcG9pbnQgZm9yIGFu eSByZWFzb24uIEhvd2V2ZXIsIGRvaW5nIGFuIGVhcmx5IGV4aXQgaGFsZiB3YXkKKwkgKiB0aHJv dWdoIHN1Ym1pc3Npb24gY291bGQgcmVzdWx0IGluIGEgcGFydGlhbCBzZXF1ZW5jZSBiZWluZyB3 cml0dGVuCisJICogd2hpY2ggd291bGQgbGVhdmUgdGhlIGVuZ2luZSBpbiBhbiB1bmtub3duIHN0 YXRlLiBUaGVyZWZvcmUsIGNoZWNrIGluCisJICogYWR2YW5jZSB0aGF0IHRoZXJlIHdpbGwgYmUg ZW5vdWdoIHNwYWNlIGZvciB0aGUgZW50aXJlIHN1Ym1pc3Npb24KKwkgKiB3aGV0aGVyIGVtaXR0 ZWQgYnkgdGhlIGNvZGUgYmVsb3cgT1IgYnkgYW55IG90aGVyIGZ1bmN0aW9ucyB0aGF0IG1heQor CSAqIGJlIGV4ZWN1dGVkIGJlZm9yZSB0aGUgZW5kIG9mIGZpbmFsKCkuCisJICoKKwkgKiBOQjog VGhpcyB0ZXN0IGRlbGliZXJhdGVseSBvdmVyZXN0aW1hdGVzLCBiZWNhdXNlIHRoYXQncyBlYXNp ZXIgdGhhbgorCSAqIHRyYWNpbmcgZXZlcnkgcG90ZW50aWFsIHBhdGggdGhhdCBjb3VsZCBiZSB0 YWtlbiEKKwkgKgorCSAqIEN1cnJlbnQgbWVhc3VyZW1lbnRzIHN1Z2dlc3QgdGhhdCB3ZSBtYXkg bmVlZCB0byBlbWl0IHVwIHRvIDc0NCBieXRlcworCSAqICgxODYgZHdvcmRzKSwgc28gdGhpcyBp cyByb3VuZGVkIHVwIHRvIDI1NiBkd29yZHMgaGVyZS4gVGhlbiB3ZSBkb3VibGUKKwkgKiB0aGF0 IHRvIGdldCB0aGUgZnJlZSBzcGFjZSByZXF1aXJlbWVudCwgYmVjYXVzZSB0aGUgYmxvY2sgaXNu J3QgYWxsb3dlZAorCSAqIHRvIHNwYW4gdGhlIHRyYW5zaXRpb24gZnJvbSB0aGUgZW5kIHRvIHRo ZSBiZWdpbm5pbmcgb2YgdGhlIHJpbmcuCisJICovCisjZGVmaW5lIEk5MTVfQkFUQ0hfRVhFQ19N QVhfTEVOICAgICAgICAgMjU2CS8qIG1heCBkd29yZHMgZW1pdHRlZCBoZXJlCSovCisJbWluX3Nw YWNlID0gSTkxNV9CQVRDSF9FWEVDX01BWF9MRU4gKiAyICogc2l6ZW9mKHVpbnQzMl90KTsKKwly ZXQgPSBpbnRlbF9yaW5nX3Rlc3Rfc3BhY2UocGFyYW1zLT5yZXF1ZXN0LT5yaW5nYnVmLCBtaW5f c3BhY2UpOworCWlmIChyZXQpCisJCWdvdG8gZWFybHlfZXJyb3I7CisKIAlpbnRlbF9ydW50aW1l X3BtX2dldChkZXZfcHJpdik7CiAKKwlyZXQgPSBpbnRlbF9yaW5nX2JlZ2luKHBhcmFtcy0+cmVx dWVzdCwgSTkxNV9CQVRDSF9FWEVDX01BWF9MRU4pOworCWlmIChyZXQpCisJCWdvdG8gZXJyb3I7 CisKIAkvKgogCSAqIFVuY29uZGl0aW9uYWxseSBpbnZhbGlkYXRlIGdwdSBjYWNoZXMgYW5kIGVu c3VyZSB0aGF0IHdlIGRvIGZsdXNoCiAJICogYW55IHJlc2lkdWFsIHdyaXRlcyBmcm9tIHRoZSBw cmV2aW91cyBiYXRjaC4KQEAgLTEzNTYsMTAgKzEzNzksNiBAQCBpbnQgaTkxNV9nZW1fcmluZ2J1 ZmZlcl9zdWJtaXNzaW9uX2ZpbmFsKHN0cnVjdCBpOTE1X2V4ZWNidWZmZXJfcGFyYW1zICpwYXJh bXMpCiAKIAlpZiAocmluZyA9PSAmZGV2X3ByaXYtPnJpbmdbUkNTXSAmJgogCQkJcGFyYW1zLT5p bnN0cF9tb2RlICE9IGRldl9wcml2LT5yZWxhdGl2ZV9jb25zdGFudHNfbW9kZSkgewotCQlyZXQg PSBpbnRlbF9yaW5nX2JlZ2luKHBhcmFtcy0+cmVxdWVzdCwgNCk7Ci0JCWlmIChyZXQpCi0JCQln b3RvIGVycm9yOwotCiAJCWludGVsX3JpbmdfZW1pdChyaW5nLCBNSV9OT09QKTsKIAkJaW50ZWxf cmluZ19lbWl0KHJpbmcsIE1JX0xPQURfUkVHSVNURVJfSU1NKDEpKTsKIAkJaW50ZWxfcmluZ19l bWl0KHJpbmcsIElOU1RQTSk7CkBAIC0xNDExLDYgKzE0MzAsNyBAQCBlcnJvcjoKIAkgKi8KIAlp bnRlbF9ydW50aW1lX3BtX3B1dChkZXZfcHJpdik7CiAKK2Vhcmx5X2Vycm9yOgogCWlmIChyZXQp CiAJCWludGVsX3JpbmdfcmVzZXJ2ZWRfc3BhY2VfY2FuY2VsKHBhcmFtcy0+cmVxdWVzdC0+cmlu Z2J1Zik7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5jIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMKaW5kZXggNDFkY2EyYS4uM2NlZGRkYiAx MDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMKKysrIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMKQEAgLTIxNSw2ICsyMTUsMzAgQEAgZW51bSB7CiAK IHN0YXRpYyBpbnQgaW50ZWxfbHJfY29udGV4dF9waW4oc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1 ZXN0ICpycSk7CiAKKy8qIFRlc3QgdG8gc2VlIGlmIHRoZSByaW5nIGhhcyBzdWZmaWNpZW50IHNw YWNlIHRvIHN1Ym1pdCBhIGdpdmVuIHBpZWNlIG9mIHdvcmsKKyAqIHdpdGhvdXQgY2F1c2luZyBh IHN0YWxsICovCitzdGF0aWMgaW50IGxvZ2ljYWxfcmluZ190ZXN0X3NwYWNlKHN0cnVjdCBpbnRl bF9yaW5nYnVmZmVyICpyaW5nYnVmLCBpbnQgbWluX3NwYWNlKQoreworCS8vc3RydWN0IGludGVs X2VuZ2luZV9jcyAqcmluZyA9IHJpbmdidWYtPnJpbmc7CisJLy9zdHJ1Y3QgZHJtX2RldmljZSAq ZGV2ID0gcmluZy0+ZGV2OworCS8vc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0g ZGV2LT5kZXZfcHJpdmF0ZTsKKworCWlmIChyaW5nYnVmLT5zcGFjZSA8IG1pbl9zcGFjZSkgewor CQkvKiBOZWVkIHRvIHVwZGF0ZSB0aGUgYWN0dWFsIHJpbmcgc3BhY2UuIE90aGVyd2lzZSwgdGhl IHN5c3RlbQorCQkgKiBoYW5ncyBmb3JldmVyIHRlc3RpbmcgYSBzb2Z0d2FyZSBjb3B5IG9mIHRo ZSBzcGFjZSB2YWx1ZSB0aGF0CisJCSAqIG5ldmVyIGNoYW5nZXMhCisJCSAqLworCQkvL3Jpbmdi dWYtPmhlYWQgID0gSTkxNV9SRUFEX0hFQUQocmluZyk7CisJCS8vcmluZ2J1Zi0+c3BhY2UgPSBp bnRlbF9yaW5nX3NwYWNlKHJpbmdidWYpOworCQlpbnRlbF9yaW5nX3VwZGF0ZV9zcGFjZShyaW5n YnVmKTsKKworCQlpZiAocmluZ2J1Zi0+c3BhY2UgPCBtaW5fc3BhY2UpCisJCQlyZXR1cm4gLUVB R0FJTjsKKwl9CisKKwlyZXR1cm4gMDsKK30KKwogLyoqCiAgKiBpbnRlbF9zYW5pdGl6ZV9lbmFi bGVfZXhlY2xpc3RzKCkgLSBzYW5pdGl6ZSBpOTE1LmVuYWJsZV9leGVjbGlzdHMKICAqIEBkZXY6 IERSTSBkZXZpY2UuCkBAIC05MDYsNiArOTMwLDcgQEAgaW50IGludGVsX2V4ZWNsaXN0c19zdWJt aXNzaW9uX2ZpbmFsKHN0cnVjdCBpOTE1X2V4ZWNidWZmZXJfcGFyYW1zICpwYXJhbXMpCiAJc3Ry dWN0IGludGVsX2VuZ2luZV9jcyAgKnJpbmcgPSBwYXJhbXMtPnJpbmc7CiAJdTY0IGV4ZWNfc3Rh cnQ7CiAJaW50IHJldDsKKwl1aW50MzJfdCBtaW5fc3BhY2U7CiAKIAkvKiBUaGUgbXV0ZXggbXVz dCBiZSBhY3F1aXJlZCBiZWZvcmUgY2FsbGluZyB0aGlzIGZ1bmN0aW9uICovCiAJQlVHX09OKCFt dXRleF9pc19sb2NrZWQoJnBhcmFtcy0+ZGV2LT5zdHJ1Y3RfbXV0ZXgpKTsKQEAgLTkyOCw2ICs5 NTMsMzQgQEAgaW50IGludGVsX2V4ZWNsaXN0c19zdWJtaXNzaW9uX2ZpbmFsKHN0cnVjdCBpOTE1 X2V4ZWNidWZmZXJfcGFyYW1zICpwYXJhbXMpCiAJCXJldHVybiByZXQ7CiAKIAkvKgorCSAqIEl0 IHdvdWxkIGJlIGEgYmFkIGlkZWEgdG8gcnVuIG91dCBvZiBzcGFjZSB3aGlsZSB3cml0aW5nIGNv bW1hbmRzCisJICogdG8gdGhlIHJpbmcuIE9uZSBvZiB0aGUgbWFqb3IgYWltcyBvZiB0aGUgc2No ZWR1bGVyIGlzIHRvIG5vdCBzdGFsbAorCSAqIGF0IGFueSBwb2ludCBmb3IgYW55IHJlYXNvbi4g SG93ZXZlciwgZG9pbmcgYW4gZWFybHkgZXhpdCBoYWxmIHdheQorCSAqIHRocm91Z2ggc3VibWlz c2lvbiBjb3VsZCByZXN1bHQgaW4gYSBwYXJ0aWFsIHNlcXVlbmNlIGJlaW5nIHdyaXR0ZW4KKwkg KiB3aGljaCB3b3VsZCBsZWF2ZSB0aGUgZW5naW5lIGluIGFuIHVua25vd24gc3RhdGUuIFRoZXJl Zm9yZSwgY2hlY2sgaW4KKwkgKiBhZHZhbmNlIHRoYXQgdGhlcmUgd2lsbCBiZSBlbm91Z2ggc3Bh Y2UgZm9yIHRoZSBlbnRpcmUgc3VibWlzc2lvbgorCSAqIHdoZXRoZXIgZW1pdHRlZCBieSB0aGUg Y29kZSBiZWxvdyBPUiBieSBhbnkgb3RoZXIgZnVuY3Rpb25zIHRoYXQgbWF5CisJICogYmUgZXhl Y3V0ZWQgYmVmb3JlIHRoZSBlbmQgb2YgZmluYWwoKS4KKwkgKgorCSAqIE5COiBUaGlzIHRlc3Qg ZGVsaWJlcmF0ZWx5IG92ZXJlc3RpbWF0ZXMsIGJlY2F1c2UgdGhhdCdzIGVhc2llciB0aGFuCisJ ICogdHJhY2luZyBldmVyeSBwb3RlbnRpYWwgcGF0aCB0aGF0IGNvdWxkIGJlIHRha2VuIQorCSAq CisJICogQ3VycmVudCBtZWFzdXJlbWVudHMgc3VnZ2VzdCB0aGF0IHdlIG1heSBuZWVkIHRvIGVt aXQgdXAgdG8gPz8/IGJ5dGVzCisJICogKDE4NiBkd29yZHMpLCBzbyB0aGlzIGlzIHJvdW5kZWQg dXAgdG8gMjU2IGR3b3JkcyBoZXJlLiBUaGVuIHdlIGRvdWJsZQorCSAqIHRoYXQgdG8gZ2V0IHRo ZSBmcmVlIHNwYWNlIHJlcXVpcmVtZW50LCBiZWNhdXNlIHRoZSBibG9jayBpc24ndCBhbGxvd2Vk CisJICogdG8gc3BhbiB0aGUgdHJhbnNpdGlvbiBmcm9tIHRoZSBlbmQgdG8gdGhlIGJlZ2lubmlu ZyBvZiB0aGUgcmluZy4KKwkgKi8KKyNkZWZpbmUgSTkxNV9CQVRDSF9FWEVDX01BWF9MRU4gICAg ICAgICAyNTYJLyogbWF4IGR3b3JkcyBlbWl0dGVkIGhlcmUJKi8KKwltaW5fc3BhY2UgPSBJOTE1 X0JBVENIX0VYRUNfTUFYX0xFTiAqIDIgKiBzaXplb2YodWludDMyX3QpOworCXJldCA9IGxvZ2lj YWxfcmluZ190ZXN0X3NwYWNlKHBhcmFtcy0+cmVxdWVzdC0+cmluZ2J1ZiwgbWluX3NwYWNlKTsK KwlpZiAocmV0KQorCQlnb3RvIGVycjsKKworCXJldCA9IGludGVsX2xvZ2ljYWxfcmluZ19iZWdp bihwYXJhbXMtPnJlcXVlc3QsIEk5MTVfQkFUQ0hfRVhFQ19NQVhfTEVOKTsKKwlpZiAocmV0KQor CQlnb3RvIGVycjsKKworCS8qCiAJICogVW5jb25kaXRpb25hbGx5IGludmFsaWRhdGUgZ3B1IGNh Y2hlcyBhbmQgZW5zdXJlIHRoYXQgd2UgZG8gZmx1c2gKIAkgKiBhbnkgcmVzaWR1YWwgd3JpdGVz IGZyb20gdGhlIHByZXZpb3VzIGJhdGNoLgogCSAqLwpAQCAtOTM5LDEwICs5OTIsNiBAQCBpbnQg aW50ZWxfZXhlY2xpc3RzX3N1Ym1pc3Npb25fZmluYWwoc3RydWN0IGk5MTVfZXhlY2J1ZmZlcl9w YXJhbXMgKnBhcmFtcykKIAkgICAgcGFyYW1zLT5pbnN0cF9tb2RlICE9IGRldl9wcml2LT5yZWxh dGl2ZV9jb25zdGFudHNfbW9kZSkgewogCQlzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAqcmluZ2J1 ZiA9IHBhcmFtcy0+cmVxdWVzdC0+cmluZ2J1ZjsKIAotCQlyZXQgPSBpbnRlbF9sb2dpY2FsX3Jp bmdfYmVnaW4ocGFyYW1zLT5yZXF1ZXN0LCA0KTsKLQkJaWYgKHJldCkKLQkJCXJldHVybiByZXQ7 Ci0KIAkJaW50ZWxfbG9naWNhbF9yaW5nX2VtaXQocmluZ2J1ZiwgTUlfTk9PUCk7CiAJCWludGVs X2xvZ2ljYWxfcmluZ19lbWl0KHJpbmdidWYsIE1JX0xPQURfUkVHSVNURVJfSU1NKDEpKTsKIAkJ aW50ZWxfbG9naWNhbF9yaW5nX2VtaXQocmluZ2J1ZiwgSU5TVFBNKTsKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX3JpbmdidWZmZXIuYwppbmRleCBhZmIwNGRlLi4zZDExYTA5IDEwMDY0NAotLS0g YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmMKKysrIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5jCkBAIC0yMzcxLDYgKzIzNzEsMzAgQEAgaW50 IGludGVsX3JpbmdfY2FjaGVsaW5lX2FsaWduKHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAq cmVxKQogCXJldHVybiAwOwogfQogCisvKiBUZXN0IHRvIHNlZSBpZiB0aGUgcmluZyBoYXMgc3Vm ZmljaWVudCBzcGFjZSB0byBzdWJtaXQgYSBnaXZlbiBwaWVjZSBvZiB3b3JrCisgKiB3aXRob3V0 IGNhdXNpbmcgYSBzdGFsbCAqLworaW50IGludGVsX3JpbmdfdGVzdF9zcGFjZShzdHJ1Y3QgaW50 ZWxfcmluZ2J1ZmZlciAqcmluZ2J1ZiwgaW50IG1pbl9zcGFjZSkKK3sKKwlzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSByaW5nYnVmLT5yaW5nLT5kZXYtPmRldl9wcml2YXRlOwor CisJLyogVGhlcmUgaXMgYSBzZXBhcmF0ZSBMUkMgdmVyc2lvbiBvZiB0aGlzIGNvZGUuICovCisJ QlVHX09OKGk5MTUuZW5hYmxlX2V4ZWNsaXN0cyk7CisKKwlpZiAocmluZ2J1Zi0+c3BhY2UgPCBt aW5fc3BhY2UpIHsKKwkJLyogTmVlZCB0byB1cGRhdGUgdGhlIGFjdHVhbCByaW5nIHNwYWNlLiBP dGhlcndpc2UsIHRoZSBzeXN0ZW0KKwkJICogaGFuZ3MgZm9yZXZlciB0ZXN0aW5nIGEgc29mdHdh cmUgY29weSBvZiB0aGUgc3BhY2UgdmFsdWUgdGhhdAorCQkgKiBuZXZlciBjaGFuZ2VzIQorCQkg Ki8KKwkJcmluZ2J1Zi0+aGVhZCAgPSBJOTE1X1JFQURfSEVBRChyaW5nYnVmLT5yaW5nKTsKKwkJ cmluZ2J1Zi0+c3BhY2UgPSBpbnRlbF9yaW5nX3NwYWNlKHJpbmdidWYpOworCisJCWlmIChyaW5n YnVmLT5zcGFjZSA8IG1pbl9zcGFjZSkKKwkJCXJldHVybiAtRUFHQUlOOworCX0KKworCXJldHVy biAwOworfQorCiB2b2lkIGludGVsX3JpbmdfaW5pdF9zZXFubyhzdHJ1Y3QgaW50ZWxfZW5naW5l X2NzICpyaW5nLCB1MzIgc2Vxbm8pCiB7CiAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IHJpbmct PmRldjsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIu aCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuaAppbmRleCAyZjMwOTAw Li43YmM4YzkwIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVm ZmVyLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5oCkBAIC00 NjgsNiArNDY4LDcgQEAgdm9pZCBpbnRlbF9jbGVhbnVwX3JpbmdfYnVmZmVyKHN0cnVjdCBpbnRl bF9lbmdpbmVfY3MgKnJpbmcpOwogCiBpbnQgaW50ZWxfcmluZ19hbGxvY19yZXF1ZXN0X2V4dHJh cyhzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcXVlc3QpOwogCitpbnQgaW50ZWxfcmlu Z190ZXN0X3NwYWNlKHN0cnVjdCBpbnRlbF9yaW5nYnVmZmVyICpyaW5nYnVmLCBpbnQgbWluX3Nw YWNlKTsKIGludCBfX211c3RfY2hlY2sgaW50ZWxfcmluZ19iZWdpbihzdHJ1Y3QgZHJtX2k5MTVf Z2VtX3JlcXVlc3QgKnJlcSwgaW50IG4pOwogaW50IF9fbXVzdF9jaGVjayBpbnRlbF9yaW5nX2Nh Y2hlbGluZV9hbGlnbihzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSk7CiBzdGF0aWMg aW5saW5lIHZvaWQgaW50ZWxfcmluZ19lbWl0KHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcs Ci0tIAoxLjkuMQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3Jn Cmh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK