From mboxrd@z Thu Jan 1 00:00:00 1970 From: John.C.Harrison@Intel.com Subject: [RFC 7/9] drm/i915: Add sync wait support to scheduler Date: Wed, 13 Jan 2016 17:57:33 +0000 Message-ID: <1452707855-9791-8-git-send-email-John.C.Harrison@Intel.com> References: <1452707855-9791-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 mga02.intel.com (mga02.intel.com [134.134.136.20]) by gabe.freedesktop.org (Postfix) with ESMTP id 2B43D6E980 for ; Wed, 13 Jan 2016 09:58:14 -0800 (PST) In-Reply-To: <1452707855-9791-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 RnJvbTogSm9obiBIYXJyaXNvbiA8Sm9obi5DLkhhcnJpc29uQEludGVsLmNvbT4KClRoZXJlIGlz IGEgc3luYyBmcmFtZXdvcmsgdG8gYWxsb3cgd29yayBmb3IgbXVsdGlwbGUgaW5kZXBlbmRlbnQK c3lzdGVtcyB0byBiZSBzeW5jaHJvbmlzZWQgd2l0aCBlYWNoIG90aGVyIGJ1dCB3aXRob3V0IHN0 YWxsaW5nCnRoZSBDUFUgd2hldGhlciBpbiB0aGUgYXBwbGljYXRpb24gb3IgdGhlIGRyaXZlci4g VGhpcyBwYXRjaCBhZGRzCnN1cHBvcnQgZm9yIHRoaXMgZnJhbWV3b3JrIHRvIHRoZSBHUFUgc2No ZWR1bGVyLgoKQmF0Y2ggYnVmZmVycyBjYW4gbm93IGhhdmUgc3luYyBmcmFtZXdvcmsgZmVuY2Ug b2JqZWN0cyBhc3NvY2lhdGVkIHdpdGgKdGhlbS4gVGhlIHNjaGVkdWxlciB3aWxsIGxvb2sgYXQg dGhpcyBmZW5jZSB3aGVuIGRlY2lkaW5nIHdoYXQgdG8Kc3VibWl0IG5leHQgdG8gdGhlIGhhcmR3 YXJlLiBJZiB0aGUgZmVuY2UgaXMgb3V0c3RhbmRpbmcgdGhlbiB0aGF0CmJhdGNoIGJ1ZmZlciB3 aWxsIGJlIHBhc3NlZCBvdmVyIGluIHByZWZlcmVuY2Ugb2Ygb25lIHRoYXQgaXMgcmVhZHkgdG8K cnVuLiBJZiBubyBvdGhlciBiYXRjaGVzIGFyZSByZWFkeSB0aGVuIHRoZSBzY2hlZHVsZXIgd2ls bCBxdWV1ZSBhbgphc3luY2hyb25vdXMgY2FsbGJhY2sgdG8gYmUgd29rZW4gdXAgd2hlbiB0aGUg ZmVuY2UgaGFzIGJlZW4Kc2lnbmFsbGVkLiBUaGUgY2FsbGJhY2sgd2lsbCB3YWtlIHRoZSBzY2hl ZHVsZXIgYW5kIHN1Ym1pdCB0aGUgbm93CnJlYWR5IGJhdGNoIGJ1ZmZlci4KCnYwLjI6IFVwZGF0 ZWQgdG8gdXNlIHRoZSBuZXcgc3luY19mZW5jZV9pc19zaWduYWxlZCgpIEFQSSByYXRoZXIgdGhh bgpoYXZpbmcgdG8ga25vdyBhYm91dCB0aGUgaW50ZXJuYWxzIG9mIGEgZmVuY2Ugb2JqZWN0LgoK QWxzbyByZW1vdmVkIHRoZSBzcGluIGxvY2sgZnJvbSB0aGUgZmVuY2Ugd2FpdCBjYWxsYmFjayBm dW5jdGlvbi4gVGhpcwp3YXMgdXNlZCB0byBjbGVhciB0aGUgJ3dhaXRpbmcnIGZsYWcuIEhvd2V2 ZXIsIGl0IGNhdXNlcyBhIHByb2JsZW0Kd2l0aCB0aGUgVERSIGNvZGUuIFNwZWNpZmljYWxseSwg d2hlbiBjYW5jZWxsaW5nIHdvcmsgcGFja2V0cyBkdWUgdG8gYQpURFIgdGhlcmUgaXMgYSBjb2Rl IHBhdGggd2hlcmUgdGhlIGZlbmNlIGNhbiBiZSBzaWduYWxsZWQgd2hpbGUgdGhlCnNwaW5sb2Nr IGlzIGFscmVhZHkgaGVsZC4gSXQgaXMgbm90IHJlYWxseSBuZWNlc3NhcnkgdG8gY2xlYXIgdGhl IGZsYWcKYW55d2F5IGFzIGl0J3MgcHVycG9zZSBpcyBzb2xlbHkgdG8gcHJldmVudCBtdWx0aXBs ZSB3YWl0cyBiZWluZwppc3N1ZWQuIE9uY2UgdGhlIGZlbmNlIGhhcyBiZWVuIHNpZ25hbGxlZCwg bm8gZnVydGhlciB3YWl0cyB3aWxsIGJlCmF0dGVtcHRlZCBzbyBpdCBkb2Vzbid0IG1hdHRlciB3 aGV0aGVyIHRoZSBmZW5jZSBpcyBtYXJrZWQgYXMgaGF2aW5nCmFuIG91dHN0YW5kaW5nIHdhaXQg b3Igbm90LgoKdjAuMzogUmUtd3JhcHBlZCBsb25nIGxpbmVzIGFuZCBjb21tZW50cyB0byBrZWVw IHN0eWxlIGNoZWNrZXIgaGFwcHkuCgpGb3I6IFZJWi0xNTg3ClNpZ25lZC1vZmYtYnk6IEpvaG4g SGFycmlzb24gPEpvaG4uQy5IYXJyaXNvbkBJbnRlbC5jb20+Ci0tLQogZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9kcnYuaCAgICAgICB8ICAgMSArCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X3NjaGVkdWxlci5jIHwgMTQ2ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0KIGRy aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfc2NoZWR1bGVyLmggfCAgIDYgKysKIDMgZmlsZXMgY2hh bmdlZCwgMTQ4IGluc2VydGlvbnMoKyksIDUgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf ZHJ2LmgKaW5kZXggN2M5YTZlYy4uMDMxNmRjZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9kcnYuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCkBA IC0xNzE0LDYgKzE3MTQsNyBAQCBzdHJ1Y3QgaTkxNV9leGVjYnVmZmVyX3BhcmFtcyB7CiAJdWlu dDY0X3QgICAgICAgICAgICAgICAgICAgICAgICBiYXRjaF9vYmpfdm1fb2Zmc2V0OwogCXN0cnVj dCBpbnRlbF9lbmdpbmVfY3MgICAgICAgICAgKnJpbmc7CiAJc3RydWN0IGRybV9pOTE1X2dlbV9v YmplY3QgICAgICAqYmF0Y2hfb2JqOworCXN0cnVjdCBzeW5jX2ZlbmNlICAgICAgICAgICAgICAg KmZlbmNlX3dhaXQ7CiAJc3RydWN0IGRybV9jbGlwX3JlY3QgICAgICAgICAgICAqY2xpcHJlY3Rz OwogCXVpbnQzMl90ICAgICAgICAgICAgICAgICAgICAgICAgaW5zdHBfbWFzazsKIAlpbnQgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGluc3RwX21vZGU7CmRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X3NjaGVkdWxlci5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9zY2hlZHVsZXIuYwppbmRleCA4NDI2OTI3Li40YjM5NDNhIDEwMDY0NAotLS0gYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X3NjaGVkdWxlci5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfc2NoZWR1bGVyLmMKQEAgLTI1LDYgKzI1LDcgQEAKICNpbmNsdWRlICJpOTE1X2Rydi5o IgogI2luY2x1ZGUgImludGVsX2Rydi5oIgogI2luY2x1ZGUgImk5MTVfc2NoZWR1bGVyLmgiCisj aW5jbHVkZSA8Li4vZHJpdmVycy9hbmRyb2lkL3N5bmMuaD4KIAogc3RhdGljIGludCAgICAgICAg IGk5MTVfc2NoZWR1bGVyX2ZseV9ub2RlKHN0cnVjdCBpOTE1X3NjaGVkdWxlcl9xdWV1ZV9lbnRy eSAqbm9kZSk7CiBzdGF0aWMgaW50ICAgICAgICAgaTkxNV9zY2hlZHVsZXJfcmVtb3ZlX2RlcGVu ZGVudChzdHJ1Y3QgaTkxNV9zY2hlZHVsZXIgKnNjaGVkdWxlciwKQEAgLTI4MCw2ICsyODEsOSBA QCBpbnQgaTkxNV9zY2hlZHVsZXJfcXVldWVfZXhlY2J1ZmZlcihzdHJ1Y3QgaTkxNV9zY2hlZHVs ZXJfcXVldWVfZW50cnkgKnFlKQogCiAJCXRyYWNlX2k5MTVfc2NoZWR1bGVyX3F1ZXVlKHFlLT5w YXJhbXMucmluZywgcWUpOwogCisJCVdBUk5fT04ocWUtPnBhcmFtcy5mZW5jZV93YWl0ICYmCisJ CQkoIXN5bmNfZmVuY2VfaXNfc2lnbmFsZWQocWUtPnBhcmFtcy5mZW5jZV93YWl0KSkpOworCiAJ CWludGVsX3JpbmdfcmVzZXJ2ZWRfc3BhY2VfY2FuY2VsKHFlLT5wYXJhbXMucmVxdWVzdC0+cmlu Z2J1Zik7CiAKIAkJc2NoZWR1bGVyLT5mbGFnc1txZS0+cGFyYW1zLnJpbmctPmlkXSB8PSBpOTE1 X3NmX3N1Ym1pdHRpbmc7CkBAIC0zMTUsNiArMzE5LDkgQEAgaW50IGk5MTVfc2NoZWR1bGVyX3F1 ZXVlX2V4ZWNidWZmZXIoc3RydWN0IGk5MTVfc2NoZWR1bGVyX3F1ZXVlX2VudHJ5ICpxZSkKIAkJ aWYgKHFlLT5wYXJhbXMuZGlzcGF0Y2hfZmxhZ3MgJiBJOTE1X0RJU1BBVENIX1NFQ1VSRSkKIAkJ CWk5MTVfZ2VtX2V4ZWNidWZmX3JlbGVhc2VfYmF0Y2hfb2JqKHFlLT5wYXJhbXMuYmF0Y2hfb2Jq KTsKIAorCQlpZiAocWUtPnBhcmFtcy5mZW5jZV93YWl0KQorCQkJc3luY19mZW5jZV9wdXQocWUt PnBhcmFtcy5mZW5jZV93YWl0KTsKKwogCQlzY2hlZHVsZXItPnN0YXRzW3FlLT5wYXJhbXMucmlu Zy0+aWRdLmV4cGlyZWQrKzsKIAogCQlyZXR1cm4gMDsKQEAgLTczNyw2ICs3NDQsOSBAQCBzdGF0 aWMgaW50IGk5MTVfc2NoZWR1bGVyX3JlbW92ZShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5n KQogCiAJCXRyYWNlX2k5MTVfc2NoZWR1bGVyX2Rlc3Ryb3kocmluZywgbm9kZSk7CiAKKwkJaWYg KG5vZGUtPnBhcmFtcy5mZW5jZV93YWl0KQorCQkJc3luY19mZW5jZV9wdXQobm9kZS0+cGFyYW1z LmZlbmNlX3dhaXQpOworCiAJCS8qIEZyZWUgdXAgYWxsIHRoZSBEUk0gb2JqZWN0IHJlZmVyZW5j ZXMgKi8KIAkJaTkxNV9nZW1fc2NoZWR1bGVyX2NsZWFuX25vZGUobm9kZSk7CiAKQEAgLTExNTks MTcgKzExNjksOTYgQEAgc3RhdGljIGludCBpOTE1X3NjaGVkdWxlcl9zdWJtaXRfbWF4X3ByaW9y aXR5KHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcsCiAJcmV0dXJuIGNvdW50OwogfQogCisv KiBVc2UgYSBwcml2YXRlIHN0cnVjdHVyZSBpbiBvcmRlciB0byBwYXNzIHRoZSAnZGV2JyBwb2lu dGVyIHRocm91Z2ggKi8KK3N0cnVjdCBpOTE1X3N5bmNfZmVuY2Vfd2FpdGVyIHsKKwlzdHJ1Y3Qg c3luY19mZW5jZV93YWl0ZXIgc2Z3OworCXN0cnVjdCBkcm1fZGV2aWNlCSAqZGV2OworCXN0cnVj dCBpOTE1X3NjaGVkdWxlcl9xdWV1ZV9lbnRyeSAqbm9kZTsKK307CisKKy8qCisgKiBOQjogVGhp cyBjYWxsYmFjayBjYW4gYmUgZXhlY3V0ZWQgYXQgaW50ZXJydXB0IHRpbWUuIEZ1cnRoZXIsIGl0 IGNhbiBiZQorICogY2FsbGVkIGZyb20gd2l0aGluIHRoZSBURFIgcmVzZXQgc2VxdWVuY2UgZHVy aW5nIGEgc2NoZWR1bGVyICdraWxsX2FsbCcKKyAqIGFuZCB0aHVzIGJlIGNhbGxlZCB3aGlsZSB0 aGUgc2NoZWR1bGVyIHNwaW5sb2NrIGlzIGFscmVhZHkgaGVsZC4gVGh1cworICogaXQgY2FuIGdy YWIgbmVpdGhlciB0aGUgZHJpdmVyIG11dGV4IG5vciB0aGUgc2NoZWR1bGVyIHNwaW5sb2NrLgor ICovCitzdGF0aWMgdm9pZCBpOTE1X3NjaGVkdWxlcl93YWl0X2ZlbmNlX3NpZ25hbGVkKHN0cnVj dCBzeW5jX2ZlbmNlICpmZW5jZSwKKwkJCQkgICAgICAgc3RydWN0IHN5bmNfZmVuY2Vfd2FpdGVy ICp3YWl0ZXIpCit7CisJc3RydWN0IGk5MTVfc3luY19mZW5jZV93YWl0ZXIgKmk5MTVfd2FpdGVy OworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IE5VTEw7CisKKwlpOTE1X3dh aXRlciA9IGNvbnRhaW5lcl9vZih3YWl0ZXIsIHN0cnVjdCBpOTE1X3N5bmNfZmVuY2Vfd2FpdGVy LCBzZncpOworCWRldl9wcml2ICAgID0gKGk5MTVfd2FpdGVyICYmIGk5MTVfd2FpdGVyLT5kZXYp ID8KKwkJCQkJaTkxNV93YWl0ZXItPmRldi0+ZGV2X3ByaXZhdGUgOiBOVUxMOworCisJLyoKKwkg KiBOQjogVGhlIGNhbGxiYWNrIGlzIGV4ZWN1dGVkIGF0IGludGVycnVwdCB0aW1lLCB0aHVzIGl0 IGNhbiBub3QKKwkgKiBjYWxsIF9zdWJtaXQoKSBkaXJlY3RseS4gSXQgbXVzdCBnbyB2aWEgdGhl IGRlbGF5ZWQgd29yayBoYW5kbGVyLgorCSAqLworCWlmIChkZXZfcHJpdikKKwkJcXVldWVfd29y ayhkZXZfcHJpdi0+d3EsICZkZXZfcHJpdi0+bW0uc2NoZWR1bGVyX3dvcmspOworCisJa2ZyZWUo d2FpdGVyKTsKK30KKworc3RhdGljIGJvb2wgaTkxNV9zY2hlZHVsZXJfYXN5bmNfZmVuY2Vfd2Fp dChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAorCQkJCSAgICAgc3RydWN0IGk5MTVfc2NoZWR1bGVy X3F1ZXVlX2VudHJ5ICpub2RlKQoreworCXN0cnVjdCBpOTE1X3N5bmNfZmVuY2Vfd2FpdGVyCSpm ZW5jZV93YWl0ZXI7CisJc3RydWN0IHN5bmNfZmVuY2UJCSpmZW5jZSA9IG5vZGUtPnBhcmFtcy5m ZW5jZV93YWl0OworCWludAkJCQlzaWduYWxlZDsKKwlib29sCQkJCXN1Y2Nlc3MgPSB0cnVlOwor CisJaWYgKChub2RlLT5mbGFncyAmIGk5MTVfcWVmX2ZlbmNlX3dhaXRpbmcpID09IDApCisJCW5v ZGUtPmZsYWdzIHw9IGk5MTVfcWVmX2ZlbmNlX3dhaXRpbmc7CisJZWxzZQorCQlyZXR1cm4gdHJ1 ZTsKKworCWlmIChmZW5jZSA9PSBOVUxMKQorCQlyZXR1cm4gZmFsc2U7CisKKwlzaWduYWxlZCA9 IHN5bmNfZmVuY2VfaXNfc2lnbmFsZWQoZmVuY2UpOworCWlmICghc2lnbmFsZWQpIHsKKwkJZmVu Y2Vfd2FpdGVyID0ga21hbGxvYyhzaXplb2YoKmZlbmNlX3dhaXRlciksIEdGUF9LRVJORUwpOwor CQlpZiAoIWZlbmNlX3dhaXRlcikgeworCQkJc3VjY2VzcyA9IGZhbHNlOworCQkJZ290byBlbmQ7 CisJCX0KKworCQlzeW5jX2ZlbmNlX3dhaXRlcl9pbml0KCZmZW5jZV93YWl0ZXItPnNmdywKKwkJ CQlpOTE1X3NjaGVkdWxlcl93YWl0X2ZlbmNlX3NpZ25hbGVkKTsKKwkJZmVuY2Vfd2FpdGVyLT5u b2RlID0gbm9kZTsKKwkJZmVuY2Vfd2FpdGVyLT5kZXYgPSBkZXY7CisKKwkJaWYgKHN5bmNfZmVu Y2Vfd2FpdF9hc3luYyhmZW5jZSwgJmZlbmNlX3dhaXRlci0+c2Z3KSkgeworCQkJLyoKKwkJCSAq IGFuIGVycm9yIG9jY3VycmVkLCB1c3VhbGx5IHRoaXMgaXMgYmVjYXVzZSB0aGUKKwkJCSAqIGZl bmNlIHdhcyBzaWduYWxlZCBhbHJlYWR5CisJCQkgKi8KKwkJCXNpZ25hbGVkID0gc3luY19mZW5j ZV9pc19zaWduYWxlZChmZW5jZSk7CisJCQlpZiAoIXNpZ25hbGVkKSB7CisJCQkJc3VjY2VzcyA9 IGZhbHNlOworCQkJCWdvdG8gZW5kOworCQkJfQorCQl9CisJfQorZW5kOgorCXJldHVybiBzdWNj ZXNzOworfQorCiBzdGF0aWMgaW50IGk5MTVfc2NoZWR1bGVyX3BvcF9mcm9tX3F1ZXVlX2xvY2tl ZChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nLAogCQkJCXN0cnVjdCBpOTE1X3NjaGVkdWxl cl9xdWV1ZV9lbnRyeSAqKnBvcF9ub2RlLAogCQkJCXVuc2lnbmVkIGxvbmcgKmZsYWdzKQogewog CXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICAgICAgICAgICAgKmRldl9wcml2ID0gcmluZy0+ZGV2 LT5kZXZfcHJpdmF0ZTsKIAlzdHJ1Y3QgaTkxNV9zY2hlZHVsZXIgICAgICAgICAgICAgICpzY2hl ZHVsZXIgPSBkZXZfcHJpdi0+c2NoZWR1bGVyOworCXN0cnVjdCBpOTE1X3NjaGVkdWxlcl9xdWV1 ZV9lbnRyeSAgKmJlc3Rfd2FpdCwgKmZlbmNlX3dhaXQgPSBOVUxMOwogCXN0cnVjdCBpOTE1X3Nj aGVkdWxlcl9xdWV1ZV9lbnRyeSAgKmJlc3Q7CiAJc3RydWN0IGk5MTVfc2NoZWR1bGVyX3F1ZXVl X2VudHJ5ICAqbm9kZTsKIAlpbnQgICAgIHJldDsKIAlpbnQgICAgIGk7Ci0JYm9vbAlhbnlfcXVl dWVkOworCWJvb2wJc2lnbmFsbGVkLCBhbnlfcXVldWVkOwogCWJvb2wJaGFzX2xvY2FsLCBoYXNf cmVtb3RlLCBvbmx5X3JlbW90ZTsKIAogCSpwb3Bfbm9kZSA9IE5VTEw7CkBAIC0xMTc3LDEzICsx MjY2LDIwIEBAIHN0YXRpYyBpbnQgaTkxNV9zY2hlZHVsZXJfcG9wX2Zyb21fcXVldWVfbG9ja2Vk KHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcsCiAKIAlhbnlfcXVldWVkID0gZmFsc2U7CiAJ b25seV9yZW1vdGUgPSBmYWxzZTsKKwliZXN0X3dhaXQgPSBOVUxMOwogCWJlc3QgPSBOVUxMOwor CXNpZ25hbGxlZCA9IHRydWU7CiAKIAlsaXN0X2Zvcl9lYWNoX2VudHJ5KG5vZGUsICZzY2hlZHVs ZXItPm5vZGVfcXVldWVbcmluZy0+aWRdLCBsaW5rKSB7CiAJCWlmICghSTkxNV9TUVNfSVNfUVVF VUVEKG5vZGUpKQogCQkJY29udGludWU7CiAJCWFueV9xdWV1ZWQgPSB0cnVlOwogCisJCWlmIChu b2RlLT5wYXJhbXMuZmVuY2Vfd2FpdCkKKwkJCXNpZ25hbGxlZCA9IHN5bmNfZmVuY2VfaXNfc2ln bmFsZWQobm9kZS0+cGFyYW1zLmZlbmNlX3dhaXQpOworCQllbHNlCisJCQlzaWduYWxsZWQgPSB0 cnVlOworCiAJCWhhc19sb2NhbCAgPSBmYWxzZTsKIAkJaGFzX3JlbW90ZSA9IGZhbHNlOwogCQlm b3IgKGkgPSAwOyBpIDwgbm9kZS0+bnVtX2RlcHM7IGkrKykgewpAQCAtMTIwMCw5ICsxMjk2LDE1 IEBAIHN0YXRpYyBpbnQgaTkxNV9zY2hlZHVsZXJfcG9wX2Zyb21fcXVldWVfbG9ja2VkKHN0cnVj dCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcsCiAJCQlvbmx5X3JlbW90ZSA9IHRydWU7CiAKIAkJaWYg KCFoYXNfbG9jYWwgJiYgIWhhc19yZW1vdGUpIHsKLQkJCWlmICghYmVzdCB8fAotCQkJICAgIChu b2RlLT5wcmlvcml0eSA+IGJlc3QtPnByaW9yaXR5KSkKLQkJCQliZXN0ID0gbm9kZTsKKwkJCWlm IChzaWduYWxsZWQpIHsKKwkJCQlpZiAoIWJlc3QgfHwKKwkJCQkgICAgKG5vZGUtPnByaW9yaXR5 ID4gYmVzdC0+cHJpb3JpdHkpKQorCQkJCQliZXN0ID0gbm9kZTsKKwkJCX0gZWxzZSB7CisJCQkJ aWYgKCFiZXN0X3dhaXQgfHwKKwkJCQkgICAgKG5vZGUtPnByaW9yaXR5ID4gYmVzdF93YWl0LT5w cmlvcml0eSkpCisJCQkJCWJlc3Rfd2FpdCA9IG5vZGU7CisJCQl9CiAJCX0KIAl9CiAKQEAgLTEy MjAsOCArMTMyMiwzNCBAQCBzdGF0aWMgaW50IGk5MTVfc2NoZWR1bGVyX3BvcF9mcm9tX3F1ZXVl X2xvY2tlZChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nLAogCQkgKiAoYSkgdGhlcmUgYXJl IG5vIGJ1ZmZlcnMgaW4gdGhlIHF1ZXVlCiAJCSAqIChiKSBhbGwgcXVldWVkIGJ1ZmZlcnMgYXJl IGRlcGVuZGVudCBvbiBvdGhlciBidWZmZXJzCiAJCSAqICAgICBlLmcuIG9uIGEgYnVmZmVyIHRo YXQgaXMgaW4gZmxpZ2h0IG9uIGEgZGlmZmVyZW50IHJpbmcKKwkJICogKGMpIGFsbCBpbmRlcGVu ZGVudCBidWZmZXJzIGFyZSB3YWl0aW5nIG9uIGZlbmNlcwogCQkgKi8KLQkJaWYgKG9ubHlfcmVt b3RlKSB7CisJCWlmIChiZXN0X3dhaXQpIHsKKwkJCS8qIE5lZWQgdG8gd2FpdCBmb3Igc29tZXRo aW5nIHRvIGJlIHNpZ25hbGxlZC4KKwkJCSAqCisJCQkgKiBOQjogZG8gbm90IHJlYWxseSB3YW50 IHRvIHdhaXQgb24gb25lIHNwZWNpZmljIGZkCisJCQkgKiBiZWNhdXNlIHRoZXJlIGlzIG5vIGd1 YXJhbnRlZSBpbiB0aGUgb3JkZXIgdGhhdAorCQkJICogYmxvY2tlZCBidWZmZXJzIHdpbGwgYmUg c2lnbmFsbGVkLiBOZWVkIHRvIHdhaXQgb24KKwkJCSAqICdhbnl0aGluZycgYW5kIHRoZW4gcmVz Y2FuIGZvciBiZXN0IGF2YWlsYWJsZSwgaWYKKwkJCSAqIHN0aWxsIG5vdGhpbmcgdGhlbiB3YWl0 IGFnYWluLi4uCisJCQkgKgorCQkJICogTkIgMjogVGhlIHdhaXQgbXVzdCBhbHNvIHdha2UgdXAg aWYgc29tZW9uZSBhdHRlbXB0cworCQkJICogdG8gc3VibWl0IGEgbmV3IGJ1ZmZlci4gVGhlIG5l dyBidWZmZXIgbWlnaHQgYmUKKwkJCSAqIGluZGVwZW5kZW50IG9mIGFsbCBvdGhlcnMgYW5kIHRo dXMgY291bGQganVtcCB0aGUKKwkJCSAqIHF1ZXVlIGFuZCBzdGFydCBydW5uaW5nIGltbWVkaWF0 ZWx5LgorCQkJICoKKwkJCSAqIE5CIDM6IExhc3RseSwgbXVzdCBub3Qgd2FpdCB3aXRoIHRoZSBz cGlubG9jayBoZWxkIQorCQkJICoKKwkJCSAqIFNvIHJhdGhlciB0aGFuIHdhaXQgaGVyZSwgbmVl ZCB0byBxdWV1ZSBhIGRlZmVycmVkCisJCQkgKiB3YWl0IHRocmVhZCBhbmQganVzdCByZXR1cm4g J25vdGhpbmcgdG8gZG8nLgorCQkJICoKKwkJCSAqIE5CIDQ6IENhbid0IGFjdHVhbGx5IGRvIHRo ZSB3YWl0IGhlcmUgYmVjYXVzZSB0aGUKKwkJCSAqIHNwaW5sb2NrIGlzIHN0aWxsIGhlbGQgYW5k IHRoZSB3YWl0IHJlcXVpcmVzIGRvaW5nCisJCQkgKiBhIG1lbW9yeSBhbGxvY2F0aW9uLgorCQkJ ICovCisJCQlmZW5jZV93YWl0ID0gYmVzdF93YWl0OworCQkJcmV0ID0gLUVBR0FJTjsKKwkJfSBl bHNlIGlmIChvbmx5X3JlbW90ZSkgewogCQkJLyogVGhlIG9ubHkgZGVwZW5kZW50IGJ1ZmZlcnMg YXJlIG9uIGFub3RoZXIgcmluZy4gKi8KIAkJCXJldCA9IC1FQUdBSU47CiAJCX0gZWxzZSBpZiAo YW55X3F1ZXVlZCkgewpAQCAtMTIzMyw2ICsxMzYxLDE0IEBAIHN0YXRpYyBpbnQgaTkxNV9zY2hl ZHVsZXJfcG9wX2Zyb21fcXVldWVfbG9ja2VkKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcs CiAKIAkvKiBpOTE1X3NjaGVkdWxlcl9kdW1wX3F1ZXVlX3BvcChyaW5nLCBiZXN0KTsgKi8KIAor CWlmIChmZW5jZV93YWl0KSB7CisJCS8qIEl0IHNob3VsZCBiZSBzYWZlIHRvIHNsZWVwIG5vdy4u LiAqLworCQkvKiBOQjogTmVlZCB0byByZWxlYXNlIGFuZCByZWFjcXVpcmUgdGhlIHNwaW5sb2Nr IHRob3VnaCAqLworCQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZzY2hlZHVsZXItPmxvY2ssICpm bGFncyk7CisJCWk5MTVfc2NoZWR1bGVyX2FzeW5jX2ZlbmNlX3dhaXQocmluZy0+ZGV2LCBmZW5j ZV93YWl0KTsKKwkJc3Bpbl9sb2NrX2lycXNhdmUoJnNjaGVkdWxlci0+bG9jaywgKmZsYWdzKTsK Kwl9CisKIAl0cmFjZV9pOTE1X3NjaGVkdWxlcl9wb3BfZnJvbV9xdWV1ZShyaW5nLCBiZXN0KTsK IAogCSpwb3Bfbm9kZSA9IGJlc3Q7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X3NjaGVkdWxlci5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9zY2hlZHVsZXIuaApp bmRleCAzZDE0ODRkLi40MDg5NThmIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X3NjaGVkdWxlci5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfc2NoZWR1bGVy LmgKQEAgLTU1LDYgKzU1LDExIEBAIHN0cnVjdCBpOTE1X3NjaGVkdWxlcl9vYmpfZW50cnkgewog CWJvb2wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlYWRfb25seTsKIH07CiAKK2Vu dW0gaTkxNV9zY2hlZHVsZXJfcXVldWVfZW50cnlfZmxhZ3MgeworCS8qIEZlbmNlIGlzIGJlaW5n IHdhaXRlZCBvbiAqLworCWk5MTVfcWVmX2ZlbmNlX3dhaXRpbmcgICAgICAgICAgICAgID0gKDEg PDwgMCksCit9OworCiBzdHJ1Y3QgaTkxNV9zY2hlZHVsZXJfcXVldWVfZW50cnkgewogCXN0cnVj dCBpOTE1X2V4ZWNidWZmZXJfcGFyYW1zICAgICAgIHBhcmFtczsKIAkvKiAtMTAyMyA9IGxvd2Vz dCBwcmlvcml0eSwgMCA9IGRlZmF1bHQsIDEwMjMgPSBoaWdoZXN0ICovCkBAIC02Nyw2ICs3Miw3 IEBAIHN0cnVjdCBpOTE1X3NjaGVkdWxlcl9xdWV1ZV9lbnRyeSB7CiAJZW51bSBpOTE1X3NjaGVk dWxlcl9xdWV1ZV9zdGF0dXMgICAgc3RhdHVzOwogCXVuc2lnbmVkIGxvbmcgICAgICAgICAgICAg ICAgICAgICAgIHN0YW1wOwogCXN0cnVjdCBsaXN0X2hlYWQgICAgICAgICAgICAgICAgICAgIGxp bms7CisJdWludDMyX3QgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxhZ3M7CiB9OwogY29u c3QgY2hhciAqaTkxNV9xZV9zdGF0ZV9zdHIoc3RydWN0IGk5MTVfc2NoZWR1bGVyX3F1ZXVlX2Vu dHJ5ICpub2RlKTsKIAotLSAKMS45LjEKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZy ZWVkZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGlu Zm8vaW50ZWwtZ2Z4Cg==