From mboxrd@z Thu Jan 1 00:00:00 1970 From: John.C.Harrison@Intel.com Subject: [PATCH 02/55] drm/i915: Reserve ring buffer space for i915_add_request() commands Date: Thu, 18 Jun 2015 13:10:09 +0100 Message-ID: <1434629409-9371-1-git-send-email-John.C.Harrison@Intel.com> References: <55770D93.6070109@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 DE6F46E321 for ; Thu, 18 Jun 2015 05:10:15 -0700 (PDT) In-Reply-To: <55770D93.6070109@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 RnJvbTogSm9obiBIYXJyaXNvbiA8Sm9obi5DLkhhcnJpc29uQEludGVsLmNvbT4KCkl0IGlzIGEg YmFkIGlkZWEgZm9yIGk5MTVfYWRkX3JlcXVlc3QoKSB0byBmYWlsLiBUaGUgd29yayB3aWxsIGFs cmVhZHkgaGF2ZSBiZWVuCnNlbmQgdG8gdGhlIHJpbmcgYW5kIHdpbGwgYmUgcHJvY2Vzc2VkLCBi dXQgdGhlcmUgd2lsbCBub3QgYmUgYW55IHRyYWNraW5nIG9yCm1hbmFnZW1lbnQgb2YgdGhhdCB3 b3JrLgoKVGhlIG9ubHkgd2F5IHRoZSBhZGQgcmVxdWVzdCBjYWxsIGNhbiBmYWlsIGlzIGlmIGl0 IGNhbid0IHdyaXRlIGl0cyBlcGlsb2d1ZQpjb21tYW5kcyB0byB0aGUgcmluZyAoY2FjaGUgZmx1 c2hpbmcsIHNlcW5vIHVwZGF0ZXMsIGludGVycnVwdCBzaWduYWxsaW5nKS4gVGhlCnJlYXNvbnMg Zm9yIHRoYXQgYXJlIG1vc3RseSBkb3duIHRvIHJ1bm5pbmcgb3V0IG9mIHJpbmcgYnVmZmVyIHNw YWNlIGFuZCB0aGUKcHJvYmxlbXMgYXNzb2NpYXRlZCB3aXRoIHRyeWluZyB0byBnZXQgc29tZSBt b3JlLiBUaGlzIHBhdGNoIHByZXZlbnRzIHRoYXQKc2l0dWF0aW9uIGZyb20gaGFwcGVuaW5nIGlu IHRoZSBmaXJzdCBwbGFjZS4KCldoZW4gYSByZXF1ZXN0IGlzIGNyZWF0ZWQsIGl0IG1hcmtzIHN1 ZmZpY2llbnQgc3BhY2UgYXMgcmVzZXJ2ZWQgZm9yIHRoZQplcGlsb2d1ZSBjb21tYW5kcy4gVGh1 cyBndWFyYW50ZWVpbmcgdGhhdCBieSB0aGUgdGltZSB0aGUgZXBpbG9ndWUgaXMgd3JpdHRlbiwK dGhlcmUgd2lsbCBiZSBwbGVudHkgb2Ygc3BhY2UgZm9yIGl0LiBOb3RlIHRoYXQgYSByaW5nX2Jl Z2luKCkgY2FsbCBpcyByZXF1aXJlZAp0byBhY3R1YWxseSByZXNlcnZlIHRoZSBzcGFjZSAoYW5k IGRvIGFueSBwb3RlbnRpYWwgd2FpdGluZykuIEhvd2V2ZXIsIHRoYXQgaXMKbm90IGN1cnJlbnRs eSBkb25lIGF0IHJlcXVlc3QgY3JlYXRpb24gdGltZS4gVGhpcyBpcyBiZWNhdXNlIHRoZSByaW5n X2JlZ2luKCkKY29kZSBjYW4gYWxsb2NhdGUgYSByZXF1ZXN0LiBIZW5jZSBjYWxsaW5nIGJlZ2lu KCkgZnJvbSB0aGUgcmVxdWVzdCBhbGxvY2F0aW9uCmNvZGUgd291bGQgbGVhZCB0byBpbmZpbml0 ZSByZWN1cnNpb24hIExhdGVyIHBhdGNoZXMgaW4gdGhpcyBzZXJpZXMgcmVtb3ZlIHRoZQpuZWVk IGZvciBiZWdpbigpIHRvIGRvIHRoZSBhbGxvY2F0ZS4gQXQgdGhhdCBwb2ludCwgaXQgYmVjb21l cyBzYWZlIGZvciB0aGUKYWxsb2NhdGUgdG8gY2FsbCBiZWdpbigpIGFuZCByZWFsbHkgcmVzZXJ2 ZSB0aGUgc3BhY2UuCgpVbnRpbCB0aGVuLCB0aGVyZSBpcyBhIHBvdGVudGlhbCBmb3IgaW5zdWZm aWNpZW50IHNwYWNlIHRvIGJlIGF2YWlsYWJsZSBhdCB0aGUKcG9pbnQgb2YgY2FsbGluZyBpOTE1 X2FkZF9yZXF1ZXN0KCkuIEhvd2V2ZXIsIHRoYXQgd291bGQgb25seSBiZSBpbiB0aGUgY2FzZQp3 aGVyZSB0aGUgcmVxdWVzdCB3YXMgY3JlYXRlZCBhbmQgaW1tZWRpYXRlbHkgc3VibWl0dGVkIHdp dGhvdXQgZXZlciBjYWxsaW5nCnJpbmdfYmVnaW4oKSBhbmQgYWRkaW5nIGFueSB3b3JrIHRvIHRo YXQgcmVxdWVzdC4gV2hpY2ggc2hvdWxkIG5ldmVyIGhhcHBlbi4gQW5kCmV2ZW4gaWYgaXQgZG9l cywgYW5kIGlmIHRoYXQgcmVxdWVzdCBoYXBwZW5zIHRvIGZhbGwgZG93biB0aGUgdGlueSB3aW5k b3cgb2YKb3Bwb3J0dW5pdHkgZm9yIGZhaWxpbmcgZHVlIHRvIGJlaW5nIG91dCBvZiByaW5nIHNw YWNlIHRoZW4gZG9lcyBpdCByZWFsbHkKbWF0dGVyIGJlY2F1c2UgdGhlIHJlcXVlc3Qgd2Fzbid0 IGRvaW5nIGFueXRoaW5nIGluIHRoZSBmaXJzdCBwbGFjZT8KCnYyOiBVcGRhdGVkIHRoZSAncmVz ZXJ2ZWQgc3BhY2UgdG9vIHNtYWxsJyB3YXJuaW5nIHRvIGluY2x1ZGUgdGhlIG9mZmVuZGluZwpz aXplcy4gQWRkZWQgYSAnY2FuY2VsJyBvcGVyYXRpb24gdG8gY2xlYW4gdXAgd2hlbiBhIHJlcXVl c3QgaXMgYWJhbmRvbmVkLiBBZGRlZApyZS1pbml0aWFsaXNhdGlvbiBvZiB0cmFja2luZyBzdGF0 ZSBhZnRlciBhIGJ1ZmZlciB3cmFwIHRvIGtlZXAgdGhlIHNhbml0eQpjaGVja3MgYWNjdXJhdGUu Cgp2MzogSW5jcmVtZW50ZWQgdGhlIHJlc2VydmVkIHNpemUgdG8gYWNjb21tb2RhdGUgSXJvbmxh a2UgKGFmdGVyIGZpbmFsbHkKbWFuYWdpbmcgdG8gcnVuIG9uIGFuIElMSyBzeXN0ZW0pLiBBbHNv IGZpeGVkIG1pc3Npbmcgd3JhcCBjb2RlIGluIExSQyBtb2RlLgoKdjQ6IEFkZGVkIGV4dHJhIGNv bW1lbnQgYW5kIHJlbW92ZWQgZHVwbGljYXRlIFdBUk4gKGZlZWRiYWNrIGZyb20gVG9tYXMpLgoK Rm9yOiBWSVotNTExNQpDQzogVG9tYXMgRWxmIDx0b21hcy5lbGZAaW50ZWwuY29tPgpTaWduZWQt b2ZmLWJ5OiBKb2huIEhhcnJpc29uIDxKb2huLkMuSGFycmlzb25ASW50ZWwuY29tPgotLS0KIGRy aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggICAgICAgICB8ICAgIDEgKwogZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9nZW0uYyAgICAgICAgIHwgICAzNyArKysrKysrKysrKysrKysrCiBk cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYyAgICAgICAgfCAgIDIxICsrKysrKysrKwog ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5jIHwgICA3MSArKysrKysrKysr KysrKysrKysrKysrKysrKysrKystCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVm ZmVyLmggfCAgIDI1ICsrKysrKysrKysrCiA1IGZpbGVzIGNoYW5nZWQsIDE1MyBpbnNlcnRpb25z KCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCmluZGV4IDAzNDdlYjku LmViYTE4NTcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKKysr IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaApAQCAtMjE4Nyw2ICsyMTg3LDcgQEAg c3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0IHsKIAogaW50IGk5MTVfZ2VtX3JlcXVlc3RfYWxs b2Moc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZywKIAkJCSAgIHN0cnVjdCBpbnRlbF9jb250 ZXh0ICpjdHgpOwordm9pZCBpOTE1X2dlbV9yZXF1ZXN0X2NhbmNlbChzdHJ1Y3QgZHJtX2k5MTVf Z2VtX3JlcXVlc3QgKnJlcSk7CiB2b2lkIGk5MTVfZ2VtX3JlcXVlc3RfZnJlZShzdHJ1Y3Qga3Jl ZiAqcmVxX3JlZik7CiAKIHN0YXRpYyBpbmxpbmUgdWludDMyX3QKZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dl bS5jCmluZGV4IDgxZjM1MTIuLjg1ZmEyN2IgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZ2VtLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYwpAQCAt MjQ4NSw2ICsyNDg1LDEzIEBAIGludCBfX2k5MTVfYWRkX3JlcXVlc3Qoc3RydWN0IGludGVsX2Vu Z2luZV9jcyAqcmluZywKIAl9IGVsc2UKIAkJcmluZ2J1ZiA9IHJpbmctPmJ1ZmZlcjsKIAorCS8q CisJICogVG8gZW5zdXJlIHRoYXQgdGhpcyBjYWxsIHdpbGwgbm90IGZhaWwsIHNwYWNlIGZvciBp dHMgZW1pc3Npb25zCisJICogc2hvdWxkIGFscmVhZHkgaGF2ZSBiZWVuIHJlc2VydmVkIGluIHRo ZSByaW5nIGJ1ZmZlci4gTGV0IHRoZSByaW5nCisJICoga25vdyB0aGF0IGl0IGlzIHRpbWUgdG8g dXNlIHRoYXQgc3BhY2UgdXAuCisJICovCisJaW50ZWxfcmluZ19yZXNlcnZlZF9zcGFjZV91c2Uo cmluZ2J1Zik7CisKIAlyZXF1ZXN0X3N0YXJ0ID0gaW50ZWxfcmluZ19nZXRfdGFpbChyaW5nYnVm KTsKIAkvKgogCSAqIEVtaXQgYW55IG91dHN0YW5kaW5nIGZsdXNoZXMgLSBleGVjYnVmIGNhbiBm YWlsIHRvIGVtaXQgdGhlIGZsdXNoCkBAIC0yNTY3LDYgKzI1NzQsOSBAQCBpbnQgX19pOTE1X2Fk ZF9yZXF1ZXN0KHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcsCiAJCQkgICByb3VuZF9qaWZm aWVzX3VwX3JlbGF0aXZlKEhaKSk7CiAJaW50ZWxfbWFya19idXN5KGRldl9wcml2LT5kZXYpOwog CisJLyogU2FuaXR5IGNoZWNrIHRoYXQgdGhlIHJlc2VydmVkIHNpemUgd2FzIGxhcmdlIGVub3Vn aC4gKi8KKwlpbnRlbF9yaW5nX3Jlc2VydmVkX3NwYWNlX2VuZChyaW5nYnVmKTsKKwogCXJldHVy biAwOwogfQogCkBAIC0yNjY2LDYgKzI2NzYsMjYgQEAgaW50IGk5MTVfZ2VtX3JlcXVlc3RfYWxs b2Moc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZywKIAlpZiAocmV0KQogCQlnb3RvIGVycjsK IAorCS8qCisJICogUmVzZXJ2ZSBzcGFjZSBpbiB0aGUgcmluZyBidWZmZXIgZm9yIGFsbCB0aGUg Y29tbWFuZHMgcmVxdWlyZWQgdG8KKwkgKiBldmVudHVhbGx5IGVtaXQgdGhpcyByZXF1ZXN0LiBU aGlzIGlzIHRvIGd1YXJhbnRlZSB0aGF0IHRoZQorCSAqIGk5MTVfYWRkX3JlcXVlc3QoKSBjYWxs IGNhbid0IGZhaWwuIE5vdGUgdGhhdCB0aGUgcmVzZXJ2ZSBtYXkgbmVlZAorCSAqIHRvIGJlIHJl ZG9uZSBpZiB0aGUgcmVxdWVzdCBpcyBub3QgYWN0dWFsbHkgc3VibWl0dGVkIHN0cmFpZ2h0CisJ ICogYXdheSwgZS5nLiBiZWNhdXNlIGEgR1BVIHNjaGVkdWxlciBoYXMgZGVmZXJyZWQgaXQuCisJ ICoKKwkgKiBOb3RlIGZ1cnRoZXIgdGhhdCB0aGlzIGNhbGwgbWVyZWx5IG5vdGVzIHRoZSByZXNl cnZlIHJlcXVlc3QuIEEKKwkgKiBzdWJzZXF1ZW50IGNhbGwgdG8gKl9yaW5nX2JlZ2luKCkgaXMg cmVxdWlyZWQgdG8gYWN0dWFsbHkgZW5zdXJlCisJICogdGhhdCB0aGUgcmVzZXJ2YXRpb24gaXMg YXZhaWxhYmxlLiBXaXRob3V0IHRoZSBiZWdpbiwgaWYgdGhlCisJICogcmVxdWVzdCBjcmVhdG9y IGltbWVkaWF0ZWx5IHN1Ym1pdHRlZCB0aGUgcmVxdWVzdCB3aXRob3V0IGFkZGluZworCSAqIGFu eSBjb21tYW5kcyB0byBpdCB0aGVuIHRoZXJlIG1pZ2h0IG5vdCBhY3R1YWxseSBiZSBzdWZmaWNp ZW50CisJICogcm9vbSBmb3IgdGhlIHN1Ym1pc3Npb24gY29tbWFuZHMuIFVuZm9ydHVuYXRlbHks IHRoZSBjdXJyZW50CisJICogKl9yaW5nX2JlZ2luKCkgaW1wbGVtZW50YXRpb25zIHBvdGVudGlh bGx5IGNhbGwgYmFjayBoZXJlIHRvCisJICogaTkxNV9nZW1fcmVxdWVzdF9hbGxvYygpLiBUaHVz IGNhbGxpbmcgX2JlZ2luKCkgaGVyZSB3b3VsZCBsZWFkIHRvCisJICogaW5maW5pdGUgcmVjdXJz aW9uISBVbnRpbCB0aGF0IGJhY2sgY2FsbCBwYXRoIGlzIHJlbW92ZWQsIGl0IGlzCisJICogbmVj ZXNzYXJ5IHRvIGRvIGEgbWFudWFsIF9iZWdpbigpIG91dHNpZGUuCisJICovCisJaW50ZWxfcmlu Z19yZXNlcnZlZF9zcGFjZV9yZXNlcnZlKHJlcS0+cmluZ2J1ZiwgTUlOX1NQQUNFX0ZPUl9BRERf UkVRVUVTVCk7CisKIAlyaW5nLT5vdXRzdGFuZGluZ19sYXp5X3JlcXVlc3QgPSByZXE7CiAJcmV0 dXJuIDA7CiAKQEAgLTI2NzQsNiArMjcwNCwxMyBAQCBlcnI6CiAJcmV0dXJuIHJldDsKIH0KIAor dm9pZCBpOTE1X2dlbV9yZXF1ZXN0X2NhbmNlbChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3Qg KnJlcSkKK3sKKwlpbnRlbF9yaW5nX3Jlc2VydmVkX3NwYWNlX2NhbmNlbChyZXEtPnJpbmdidWYp OworCisJaTkxNV9nZW1fcmVxdWVzdF91bnJlZmVyZW5jZShyZXEpOworfQorCiBzdHJ1Y3QgZHJt X2k5MTVfZ2VtX3JlcXVlc3QgKgogaTkxNV9nZW1fZmluZF9hY3RpdmVfcmVxdWVzdChzdHJ1Y3Qg aW50ZWxfZW5naW5lX2NzICpyaW5nKQogewpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfbHJjLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYwppbmRleCA2 YTVlZDA3Li4yODg2MzFiIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9s cmMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYwpAQCAtNjg3LDYgKzY4 Nyw5IEBAIHN0YXRpYyBpbnQgbG9naWNhbF9yaW5nX3dhaXRfZm9yX3NwYWNlKHN0cnVjdCBpbnRl bF9yaW5nYnVmZmVyICpyaW5nYnVmLAogCXVuc2lnbmVkIHNwYWNlOwogCWludCByZXQ7CiAKKwkv KiBUaGUgd2hvbGUgcG9pbnQgb2YgcmVzZXJ2aW5nIHNwYWNlIGlzIHRvIG5vdCB3YWl0ISAqLwor CVdBUk5fT04ocmluZ2J1Zi0+cmVzZXJ2ZWRfaW5fdXNlKTsKKwogCWlmIChpbnRlbF9yaW5nX3Nw YWNlKHJpbmdidWYpID49IGJ5dGVzKQogCQlyZXR1cm4gMDsKIApAQCAtNzQ3LDYgKzc1MCw5IEBA IHN0YXRpYyBpbnQgbG9naWNhbF9yaW5nX3dyYXBfYnVmZmVyKHN0cnVjdCBpbnRlbF9yaW5nYnVm ZmVyICpyaW5nYnVmLAogCXVpbnQzMl90IF9faW9tZW0gKnZpcnQ7CiAJaW50IHJlbSA9IHJpbmdi dWYtPnNpemUgLSByaW5nYnVmLT50YWlsOwogCisJLyogQ2FuJ3Qgd3JhcCBpZiBzcGFjZSBoYXMg YWxyZWFkeSBiZWVuIHJlc2VydmVkISAqLworCVdBUk5fT04ocmluZ2J1Zi0+cmVzZXJ2ZWRfaW5f dXNlKTsKKwogCWlmIChyaW5nYnVmLT5zcGFjZSA8IHJlbSkgewogCQlpbnQgcmV0ID0gbG9naWNh bF9yaW5nX3dhaXRfZm9yX3NwYWNlKHJpbmdidWYsIGN0eCwgcmVtKTsKIApAQCAtNzcwLDEwICs3 NzYsMjUgQEAgc3RhdGljIGludCBsb2dpY2FsX3JpbmdfcHJlcGFyZShzdHJ1Y3QgaW50ZWxfcmlu Z2J1ZmZlciAqcmluZ2J1ZiwKIHsKIAlpbnQgcmV0OwogCisJLyoKKwkgKiBBZGQgb24gdGhlIHJl c2VydmVkIHNpemUgdG8gdGhlIHJlcXVlc3QgdG8gbWFrZSBzdXJlIHRoYXQgYWZ0ZXIKKwkgKiB0 aGUgaW50ZW5kZWQgY29tbWFuZHMgaGF2ZSBiZWVuIGVtaXR0ZWQsIHRoZXJlIGlzIGd1YXJhbnRl ZWQgdG8KKwkgKiBzdGlsbCBiZSBlbm91Z2ggZnJlZSBzcGFjZSB0byBzZW5kIHRoZW0gdG8gdGhl IGhhcmR3YXJlLgorCSAqLworCWlmICghcmluZ2J1Zi0+cmVzZXJ2ZWRfaW5fdXNlKQorCQlieXRl cyArPSByaW5nYnVmLT5yZXNlcnZlZF9zaXplOworCiAJaWYgKHVubGlrZWx5KHJpbmdidWYtPnRh aWwgKyBieXRlcyA+IHJpbmdidWYtPmVmZmVjdGl2ZV9zaXplKSkgewogCQlyZXQgPSBsb2dpY2Fs X3Jpbmdfd3JhcF9idWZmZXIocmluZ2J1ZiwgY3R4KTsKIAkJaWYgKHVubGlrZWx5KHJldCkpCiAJ CQlyZXR1cm4gcmV0OworCisJCWlmKHJpbmdidWYtPnJlc2VydmVkX3NpemUpIHsKKwkJCXVpbnQz Ml90IHNpemUgPSByaW5nYnVmLT5yZXNlcnZlZF9zaXplOworCisJCQlpbnRlbF9yaW5nX3Jlc2Vy dmVkX3NwYWNlX2NhbmNlbChyaW5nYnVmKTsKKwkJCWludGVsX3JpbmdfcmVzZXJ2ZWRfc3BhY2Vf cmVzZXJ2ZShyaW5nYnVmLCBzaXplKTsKKwkJfQogCX0KIAogCWlmICh1bmxpa2VseShyaW5nYnVm LT5zcGFjZSA8IGJ5dGVzKSkgewpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfcmluZ2J1ZmZlci5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5j CmluZGV4IGQ5MzRmODUuLjZkNmFiZTYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX3JpbmdidWZmZXIuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5n YnVmZmVyLmMKQEAgLTIxMDMsNiArMjEwMyw5IEBAIHN0YXRpYyBpbnQgcmluZ193YWl0X2Zvcl9z cGFjZShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nLCBpbnQgbikKIAl1bnNpZ25lZCBzcGFj ZTsKIAlpbnQgcmV0OwogCisJLyogVGhlIHdob2xlIHBvaW50IG9mIHJlc2VydmluZyBzcGFjZSBp cyB0byBub3Qgd2FpdCEgKi8KKwlXQVJOX09OKHJpbmdidWYtPnJlc2VydmVkX2luX3VzZSk7CisK IAlpZiAoaW50ZWxfcmluZ19zcGFjZShyaW5nYnVmKSA+PSBuKQogCQlyZXR1cm4gMDsKIApAQCAt MjEzMCw2ICsyMTMzLDkgQEAgc3RhdGljIGludCBpbnRlbF93cmFwX3JpbmdfYnVmZmVyKHN0cnVj dCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcpCiAJc3RydWN0IGludGVsX3JpbmdidWZmZXIgKnJpbmdi dWYgPSByaW5nLT5idWZmZXI7CiAJaW50IHJlbSA9IHJpbmdidWYtPnNpemUgLSByaW5nYnVmLT50 YWlsOwogCisJLyogQ2FuJ3Qgd3JhcCBpZiBzcGFjZSBoYXMgYWxyZWFkeSBiZWVuIHJlc2VydmVk ISAqLworCVdBUk5fT04ocmluZ2J1Zi0+cmVzZXJ2ZWRfaW5fdXNlKTsKKwogCWlmIChyaW5nYnVm LT5zcGFjZSA8IHJlbSkgewogCQlpbnQgcmV0ID0gcmluZ193YWl0X2Zvcl9zcGFjZShyaW5nLCBy ZW0pOwogCQlpZiAocmV0KQpAQCAtMjE4MCwxNiArMjE4Niw3NyBAQCBpbnQgaW50ZWxfcmluZ19h bGxvY19yZXF1ZXN0X2V4dHJhcyhzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcXVlc3Qp CiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBpbnQgX19pbnRlbF9yaW5nX3ByZXBhcmUoc3RydWN0 IGludGVsX2VuZ2luZV9jcyAqcmluZywKLQkJCQlpbnQgYnl0ZXMpCit2b2lkIGludGVsX3Jpbmdf cmVzZXJ2ZWRfc3BhY2VfcmVzZXJ2ZShzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAqcmluZ2J1Ziwg aW50IHNpemUpCit7CisJLyogTkI6IFVudGlsIHJlcXVlc3QgbWFuYWdlbWVudCBpcyBmdWxseSB0 aWRpZWQgdXAgYW5kIHRoZSBPTFIgaXMKKwkgKiByZW1vdmVkLCB0aGVyZSBhcmUgdG9vIG1hbnkg d2F5cyBmb3IgZ2V0IGZhbHNlIGhpdHMgb24gdGhpcworCSAqIGFudGktcmVjdXJzaW9uIGNoZWNr ISAqLworCS8qV0FSTl9PTihyaW5nYnVmLT5yZXNlcnZlZF9zaXplKTsqLworCVdBUk5fT04ocmlu Z2J1Zi0+cmVzZXJ2ZWRfaW5fdXNlKTsKKworCXJpbmdidWYtPnJlc2VydmVkX3NpemUgPSBzaXpl OworCisJLyoKKwkgKiBSZWFsbHkgbmVlZCB0byBjYWxsIF9iZWdpbigpIGhlcmUgYnV0IHRoYXQg Y3VycmVudGx5IGxlYWRzIHRvCisJICogcmVjdXJzaW9uIHByb2JsZW1zISBUaGlzIHdpbGwgYmUg Zml4ZWQgbGF0ZXIgYnV0IGZvciBub3cganVzdAorCSAqIHJldHVybiBhbmQgaG9wZSBmb3IgdGhl IGJlc3QuIE5vdGUgdGhhdCB0aGVyZSBpcyBvbmx5IGEgcmVhbAorCSAqIHByb2JsZW0gaWYgdGhl IGNyZWF0ZSBvZiB0aGUgcmVxdWVzdCBuZXZlciBhY3R1YWxseSBjYWxscyBfYmVnaW4oKQorCSAq IGJ1dCBpZiB0aGV5IGFyZSBub3Qgc3VibWl0dGluZyBhbnkgd29yayB0aGVuIHdoeSBkaWQgdGhl eSBjcmVhdGUKKwkgKiB0aGUgcmVxdWVzdCBpbiB0aGUgZmlyc3QgcGxhY2U/CisJICovCit9CisK K3ZvaWQgaW50ZWxfcmluZ19yZXNlcnZlZF9zcGFjZV9jYW5jZWwoc3RydWN0IGludGVsX3Jpbmdi dWZmZXIgKnJpbmdidWYpCit7CisJV0FSTl9PTihyaW5nYnVmLT5yZXNlcnZlZF9pbl91c2UpOwor CisJcmluZ2J1Zi0+cmVzZXJ2ZWRfc2l6ZSAgID0gMDsKKwlyaW5nYnVmLT5yZXNlcnZlZF9pbl91 c2UgPSBmYWxzZTsKK30KKwordm9pZCBpbnRlbF9yaW5nX3Jlc2VydmVkX3NwYWNlX3VzZShzdHJ1 Y3QgaW50ZWxfcmluZ2J1ZmZlciAqcmluZ2J1ZikKK3sKKwlXQVJOX09OKHJpbmdidWYtPnJlc2Vy dmVkX2luX3VzZSk7CisKKwlyaW5nYnVmLT5yZXNlcnZlZF9pbl91c2UgPSB0cnVlOworCXJpbmdi dWYtPnJlc2VydmVkX3RhaWwgICA9IHJpbmdidWYtPnRhaWw7Cit9CisKK3ZvaWQgaW50ZWxfcmlu Z19yZXNlcnZlZF9zcGFjZV9lbmQoc3RydWN0IGludGVsX3JpbmdidWZmZXIgKnJpbmdidWYpCit7 CisJV0FSTl9PTighcmluZ2J1Zi0+cmVzZXJ2ZWRfaW5fdXNlKTsKKwlXQVJOKHJpbmdidWYtPnRh aWwgPiByaW5nYnVmLT5yZXNlcnZlZF90YWlsICsgcmluZ2J1Zi0+cmVzZXJ2ZWRfc2l6ZSwKKwkg ICAgICJyZXF1ZXN0IHJlc2VydmVkIHNpemUgdG9vIHNtYWxsOiAlZCB2cyAlZCFcbiIsCisJICAg ICByaW5nYnVmLT50YWlsIC0gcmluZ2J1Zi0+cmVzZXJ2ZWRfdGFpbCwgcmluZ2J1Zi0+cmVzZXJ2 ZWRfc2l6ZSk7CisKKwlyaW5nYnVmLT5yZXNlcnZlZF9zaXplICAgPSAwOworCXJpbmdidWYtPnJl c2VydmVkX2luX3VzZSA9IGZhbHNlOworfQorCitzdGF0aWMgaW50IF9faW50ZWxfcmluZ19wcmVw YXJlKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcsIGludCBieXRlcykKIHsKIAlzdHJ1Y3Qg aW50ZWxfcmluZ2J1ZmZlciAqcmluZ2J1ZiA9IHJpbmctPmJ1ZmZlcjsKIAlpbnQgcmV0OwogCisJ LyoKKwkgKiBBZGQgb24gdGhlIHJlc2VydmVkIHNpemUgdG8gdGhlIHJlcXVlc3QgdG8gbWFrZSBz dXJlIHRoYXQgYWZ0ZXIKKwkgKiB0aGUgaW50ZW5kZWQgY29tbWFuZHMgaGF2ZSBiZWVuIGVtaXR0 ZWQsIHRoZXJlIGlzIGd1YXJhbnRlZWQgdG8KKwkgKiBzdGlsbCBiZSBlbm91Z2ggZnJlZSBzcGFj ZSB0byBzZW5kIHRoZW0gdG8gdGhlIGhhcmR3YXJlLgorCSAqLworCWlmICghcmluZ2J1Zi0+cmVz ZXJ2ZWRfaW5fdXNlKQorCQlieXRlcyArPSByaW5nYnVmLT5yZXNlcnZlZF9zaXplOworCiAJaWYg KHVubGlrZWx5KHJpbmdidWYtPnRhaWwgKyBieXRlcyA+IHJpbmdidWYtPmVmZmVjdGl2ZV9zaXpl KSkgewogCQlyZXQgPSBpbnRlbF93cmFwX3JpbmdfYnVmZmVyKHJpbmcpOwogCQlpZiAodW5saWtl bHkocmV0KSkKIAkJCXJldHVybiByZXQ7CisKKwkJaWYocmluZ2J1Zi0+cmVzZXJ2ZWRfc2l6ZSkg eworCQkJdWludDMyX3Qgc2l6ZSA9IHJpbmdidWYtPnJlc2VydmVkX3NpemU7CisKKwkJCWludGVs X3JpbmdfcmVzZXJ2ZWRfc3BhY2VfY2FuY2VsKHJpbmdidWYpOworCQkJaW50ZWxfcmluZ19yZXNl cnZlZF9zcGFjZV9yZXNlcnZlKHJpbmdidWYsIHNpemUpOworCQl9CiAJfQogCiAJaWYgKHVubGlr ZWx5KHJpbmdidWYtPnNwYWNlIDwgYnl0ZXMpKSB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9y aW5nYnVmZmVyLmgKaW5kZXggMzlmNmRmYy4uYmYyYWMyOCAxMDA2NDQKLS0tIGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX3JpbmdidWZmZXIuaApAQCAtMTA1LDYgKzEwNSw5IEBAIHN0cnVjdCBpbnRlbF9yaW5n YnVmZmVyIHsKIAlpbnQgc3BhY2U7CiAJaW50IHNpemU7CiAJaW50IGVmZmVjdGl2ZV9zaXplOwor CWludCByZXNlcnZlZF9zaXplOworCWludCByZXNlcnZlZF90YWlsOworCWJvb2wgcmVzZXJ2ZWRf aW5fdXNlOwogCiAJLyoqIFdlIHRyYWNrIHRoZSBwb3NpdGlvbiBvZiB0aGUgcmVxdWVzdHMgaW4g dGhlIHJpbmcgYnVmZmVyLCBhbmQKIAkgKiB3aGVuIGVhY2ggaXMgcmV0aXJlZCB3ZSBpbmNyZW1l bnQgbGFzdF9yZXRpcmVkX2hlYWQgYXMgdGhlIEdQVQpAQCAtNDUwLDQgKzQ1MywyNiBAQCBpbnRl bF9yaW5nX2dldF9yZXF1ZXN0KHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcpCiAJcmV0dXJu IHJpbmctPm91dHN0YW5kaW5nX2xhenlfcmVxdWVzdDsKIH0KIAorLyoKKyAqIEFyYml0cmFyeSBz aXplIGZvciBsYXJnZXN0IHBvc3NpYmxlICdhZGQgcmVxdWVzdCcgc2VxdWVuY2UuIFRoZSBjb2Rl IHBhdGhzCisgKiBhcmUgY29tcGxleCBhbmQgdmFyaWFibGUuIEVtcGlyaWNhbCBtZWFzdXJlbWVu dCBzaG93cyB0aGF0IHRoZSB3b3JzdCBjYXNlCisgKiBpcyBJTEsgYXQgMTM2IHdvcmRzLiBSZXNl cnZpbmcgdG9vIG11Y2ggaXMgYmV0dGVyIHRoYW4gcmVzZXJ2aW5nIHRvbyBsaXR0bGUKKyAqIGFz IHRoYXQgYWxsb3dzIGZvciBjb3JuZXIgY2FzZXMgdGhhdCBtaWdodCBoYXZlIGJlZW4gbWlzc2Vk LiBTbyB0aGUgZmlndXJlCisgKiBoYXMgYmVlbiByb3VuZGVkIHVwIHRvIDE2MCB3b3Jkcy4KKyAq LworI2RlZmluZSBNSU5fU1BBQ0VfRk9SX0FERF9SRVFVRVNUCTE2MAorCisvKgorICogUmVzZXJ2 ZSBzcGFjZSBpbiB0aGUgcmluZyB0byBndWFyYW50ZWUgdGhhdCB0aGUgaTkxNV9hZGRfcmVxdWVz dCgpIGNhbGwKKyAqIHdpbGwgYWx3YXlzIGhhdmUgc3VmZmljaWVudCByb29tIHRvIGRvIGl0cyBz dHVmZi4gVGhlIHJlcXVlc3QgY3JlYXRpb24KKyAqIGNvZGUgY2FsbHMgdGhpcyBhdXRvbWF0aWNh bGx5LgorICovCit2b2lkIGludGVsX3JpbmdfcmVzZXJ2ZWRfc3BhY2VfcmVzZXJ2ZShzdHJ1Y3Qg aW50ZWxfcmluZ2J1ZmZlciAqcmluZ2J1ZiwgaW50IHNpemUpOworLyogQ2FuY2VsIHRoZSByZXNl cnZhdGlvbiwgZS5nLiBiZWNhdXNlIHRoZSByZXF1ZXN0IGlzIGJlaW5nIGRpc2NhcmRlZC4gKi8K K3ZvaWQgaW50ZWxfcmluZ19yZXNlcnZlZF9zcGFjZV9jYW5jZWwoc3RydWN0IGludGVsX3Jpbmdi dWZmZXIgKnJpbmdidWYpOworLyogVXNlIHRoZSByZXNlcnZlZCBzcGFjZSAtIGZvciB1c2UgYnkg aTkxNV9hZGRfcmVxdWVzdCgpIG9ubHkuICovCit2b2lkIGludGVsX3JpbmdfcmVzZXJ2ZWRfc3Bh Y2VfdXNlKHN0cnVjdCBpbnRlbF9yaW5nYnVmZmVyICpyaW5nYnVmKTsKKy8qIEZpbmlzaCB3aXRo IHRoZSByZXNlcnZlZCBzcGFjZSAtIGZvciB1c2UgYnkgaTkxNV9hZGRfcmVxdWVzdCgpIG9ubHku ICovCit2b2lkIGludGVsX3JpbmdfcmVzZXJ2ZWRfc3BhY2VfZW5kKHN0cnVjdCBpbnRlbF9yaW5n YnVmZmVyICpyaW5nYnVmKTsKKwogI2VuZGlmIC8qIF9JTlRFTF9SSU5HQlVGRkVSX0hfICovCi0t IAoxLjcuOS41CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f XwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcK aHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=