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: Fri, 29 May 2015 17:43:23 +0100 Message-ID: <1432917856-12261-3-git-send-email-John.C.Harrison@Intel.com> References: <1432917856-12261-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 mga09.intel.com (mga09.intel.com [134.134.136.24]) by gabe.freedesktop.org (Postfix) with ESMTP id 525246E278 for ; Fri, 29 May 2015 09:44:20 -0700 (PDT) In-Reply-To: <1432917856-12261-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 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 CgpGb3I6IFZJWi01MTE1ClNpZ25lZC1vZmYtYnk6IEpvaG4gSGFycmlzb24gPEpvaG4uQy5IYXJy aXNvbkBJbnRlbC5jb20+Ci0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCAgICAg ICAgIHwgICAgMSArCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jICAgICAgICAgfCAg IDM3ICsrKysrKysrKysrKysrKysrCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYyAg ICAgICAgfCAgICA5ICsrKysKIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIu YyB8ICAgNjggKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLQogZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5oIHwgICAxMCArKysrKwogNSBmaWxlcyBjaGFuZ2VkLCAx MjMgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaApp bmRleCAwMzQ3ZWI5Li5lYmExODU3IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2Rydi5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKQEAgLTIxODcs NiArMjE4Nyw3IEBAIHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCB7CiAKIGludCBpOTE1X2dl bV9yZXF1ZXN0X2FsbG9jKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcsCiAJCQkgICBzdHJ1 Y3QgaW50ZWxfY29udGV4dCAqY3R4KTsKK3ZvaWQgaTkxNV9nZW1fcmVxdWVzdF9jYW5jZWwoc3Ry dWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEpOwogdm9pZCBpOTE1X2dlbV9yZXF1ZXN0X2Zy ZWUoc3RydWN0IGtyZWYgKnJlcV9yZWYpOwogCiBzdGF0aWMgaW5saW5lIHVpbnQzMl90CmRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9nZW0uYwppbmRleCA2OGYxZDFlLi42ZjUxNDE2IDEwMDY0NAotLS0gYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZ2VtLmMKQEAgLTI0ODUsNiArMjQ4NSwxMyBAQCBpbnQgX19pOTE1X2FkZF9yZXF1ZXN0KHN0 cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcsCiAJfSBlbHNlCiAJCXJpbmdidWYgPSByaW5nLT5i dWZmZXI7CiAKKwkvKgorCSAqIFRvIGVuc3VyZSB0aGF0IHRoaXMgY2FsbCB3aWxsIG5vdCBmYWls LCBzcGFjZSBmb3IgaXRzIGVtaXNzaW9ucworCSAqIHNob3VsZCBhbHJlYWR5IGhhdmUgYmVlbiBy ZXNlcnZlZCBpbiB0aGUgcmluZyBidWZmZXIuIExldCB0aGUgcmluZworCSAqIGtub3cgdGhhdCBp dCBpcyB0aW1lIHRvIHVzZSB0aGF0IHNwYWNlIHVwLgorCSAqLworCWludGVsX3JpbmdfcmVzZXJ2 ZWRfc3BhY2VfdXNlKHJpbmdidWYpOworCiAJcmVxdWVzdF9zdGFydCA9IGludGVsX3JpbmdfZ2V0 X3RhaWwocmluZ2J1Zik7CiAJLyoKIAkgKiBFbWl0IGFueSBvdXRzdGFuZGluZyBmbHVzaGVzIC0g ZXhlY2J1ZiBjYW4gZmFpbCB0byBlbWl0IHRoZSBmbHVzaApAQCAtMjU2Nyw2ICsyNTc0LDkgQEAg aW50IF9faTkxNV9hZGRfcmVxdWVzdChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nLAogCQkJ ICAgcm91bmRfamlmZmllc191cF9yZWxhdGl2ZShIWikpOwogCWludGVsX21hcmtfYnVzeShkZXZf cHJpdi0+ZGV2KTsKIAorCS8qIFNhbml0eSBjaGVjayB0aGF0IHRoZSByZXNlcnZlZCBzaXplIHdh cyBsYXJnZSBlbm91Z2guICovCisJaW50ZWxfcmluZ19yZXNlcnZlZF9zcGFjZV9lbmQocmluZ2J1 Zik7CisKIAlyZXR1cm4gMDsKIH0KIApAQCAtMjY2Niw2ICsyNjc2LDI2IEBAIGludCBpOTE1X2dl bV9yZXF1ZXN0X2FsbG9jKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcsCiAJaWYgKHJldCkK IAkJZ290byBlcnI7CiAKKwkvKgorCSAqIFJlc2VydmUgc3BhY2UgaW4gdGhlIHJpbmcgYnVmZmVy IGZvciBhbGwgdGhlIGNvbW1hbmRzIHJlcXVpcmVkIHRvCisJICogZXZlbnR1YWxseSBlbWl0IHRo aXMgcmVxdWVzdC4gVGhpcyBpcyB0byBndWFyYW50ZWUgdGhhdCB0aGUKKwkgKiBpOTE1X2FkZF9y ZXF1ZXN0KCkgY2FsbCBjYW4ndCBmYWlsLiBOb3RlIHRoYXQgdGhlIHJlc2VydmUgbWF5IG5lZWQK KwkgKiB0byBiZSByZWRvbmUgaWYgdGhlIHJlcXVlc3QgaXMgbm90IGFjdHVhbGx5IHN1Ym1pdHRl ZCBzdHJhaWdodAorCSAqIGF3YXksIGUuZy4gYmVjYXVzZSBhIEdQVSBzY2hlZHVsZXIgaGFzIGRl ZmVycmVkIGl0LgorCSAqCisJICogTm90ZSBmdXJ0aGVyIHRoYXQgdGhpcyBjYWxsIG1lcmVseSBu b3RlcyB0aGUgcmVzZXJ2ZSByZXF1ZXN0LiBBCisJICogc3Vic2VxdWVudCBjYWxsIHRvICpfcmlu Z19iZWdpbigpIGlzIHJlcXVpcmVkIHRvIGFjdHVhbGx5IGVuc3VyZQorCSAqIHRoYXQgdGhlIHJl c2VydmF0aW9uIGlzIGF2YWlsYWJsZS4gV2l0aG91dCB0aGUgYmVnaW4sIGlmIHRoZQorCSAqIHJl cXVlc3QgY3JlYXRvciBpbW1lZGlhdGVseSBzdWJtaXR0ZWQgdGhlIHJlcXVlc3Qgd2l0aG91dCBh ZGRpbmcKKwkgKiBhbnkgY29tbWFuZHMgdG8gaXQgdGhlbiB0aGVyZSBtaWdodCBub3QgYWN0dWFs bHkgYmUgc3VmZmljaWVudAorCSAqIHJvb20gZm9yIHRoZSBzdWJtaXNzaW9uIGNvbW1hbmRzLiBV bmZvcnR1bmF0ZWx5LCB0aGUgY3VycmVudAorCSAqICpfcmluZ19iZWdpbigpIGltcGxlbWVudGF0 aW9ucyBwb3RlbnRpYWxseSBjYWxsIGJhY2sgaGVyZSB0bworCSAqIGk5MTVfZ2VtX3JlcXVlc3Rf YWxsb2MoKS4gVGh1cyBjYWxsaW5nIF9iZWdpbigpIGhlcmUgd291bGQgbGVhZCB0bworCSAqIGlu ZmluaXRlIHJlY3Vyc2lvbiEgVW50aWwgdGhhdCBiYWNrIGNhbGwgcGF0aCBpcyByZW1vdmVkLCBp dCBpcworCSAqIG5lY2Vzc2FyeSB0byBkbyBhIG1hbnVhbCBfYmVnaW4oKSBvdXRzaWRlLgorCSAq LworCWludGVsX3JpbmdfcmVzZXJ2ZWRfc3BhY2VfcmVzZXJ2ZShyZXEtPnJpbmdidWYsIE1JTl9T UEFDRV9GT1JfQUREX1JFUVVFU1QpOworCiAJcmluZy0+b3V0c3RhbmRpbmdfbGF6eV9yZXF1ZXN0 ID0gcmVxOwogCXJldHVybiAwOwogCkBAIC0yNjc0LDYgKzI3MDQsMTMgQEAgZXJyOgogCXJldHVy biByZXQ7CiB9CiAKK3ZvaWQgaTkxNV9nZW1fcmVxdWVzdF9jYW5jZWwoc3RydWN0IGRybV9pOTE1 X2dlbV9yZXF1ZXN0ICpyZXEpCit7CisJaW50ZWxfcmluZ19yZXNlcnZlZF9zcGFjZV9jYW5jZWwo cmVxLT5yaW5nYnVmKTsKKworCWk5MTVfZ2VtX3JlcXVlc3RfdW5yZWZlcmVuY2UocmVxKTsKK30K Kwogc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICoKIGk5MTVfZ2VtX2ZpbmRfYWN0aXZlX3Jl cXVlc3Qoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZykKIHsKZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf bHJjLmMKaW5kZXggNmE1ZWQwNy4uZTYyZDM5NiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfbHJjLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMK QEAgLTY4Nyw2ICs2ODcsOSBAQCBzdGF0aWMgaW50IGxvZ2ljYWxfcmluZ193YWl0X2Zvcl9zcGFj ZShzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAqcmluZ2J1ZiwKIAl1bnNpZ25lZCBzcGFjZTsKIAlp bnQgcmV0OwogCisJLyogVGhlIHdob2xlIHBvaW50IG9mIHJlc2VydmluZyBzcGFjZSBpcyB0byBu b3Qgd2FpdCEgKi8KKwlXQVJOX09OKHJpbmdidWYtPnJlc2VydmVkX2luX3VzZSk7CisKIAlpZiAo aW50ZWxfcmluZ19zcGFjZShyaW5nYnVmKSA+PSBieXRlcykKIAkJcmV0dXJuIDA7CiAKQEAgLTc0 Nyw2ICs3NTAsOSBAQCBzdGF0aWMgaW50IGxvZ2ljYWxfcmluZ193cmFwX2J1ZmZlcihzdHJ1Y3Qg aW50ZWxfcmluZ2J1ZmZlciAqcmluZ2J1ZiwKIAl1aW50MzJfdCBfX2lvbWVtICp2aXJ0OwogCWlu dCByZW0gPSByaW5nYnVmLT5zaXplIC0gcmluZ2J1Zi0+dGFpbDsKIAorCS8qIENhbid0IHdyYXAg aWYgc3BhY2UgaGFzIGFscmVhZHkgYmVlbiByZXNlcnZlZCEgKi8KKwlXQVJOX09OKHJpbmdidWYt PnJlc2VydmVkX2luX3VzZSk7CisKIAlpZiAocmluZ2J1Zi0+c3BhY2UgPCByZW0pIHsKIAkJaW50 IHJldCA9IGxvZ2ljYWxfcmluZ193YWl0X2Zvcl9zcGFjZShyaW5nYnVmLCBjdHgsIHJlbSk7CiAK QEAgLTc3MCw2ICs3NzYsOSBAQCBzdGF0aWMgaW50IGxvZ2ljYWxfcmluZ19wcmVwYXJlKHN0cnVj dCBpbnRlbF9yaW5nYnVmZmVyICpyaW5nYnVmLAogewogCWludCByZXQ7CiAKKwlpZiAoIXJpbmdi dWYtPnJlc2VydmVkX2luX3VzZSkKKwkJYnl0ZXMgKz0gcmluZ2J1Zi0+cmVzZXJ2ZWRfc2l6ZTsK KwogCWlmICh1bmxpa2VseShyaW5nYnVmLT50YWlsICsgYnl0ZXMgPiByaW5nYnVmLT5lZmZlY3Rp dmVfc2l6ZSkpIHsKIAkJcmV0ID0gbG9naWNhbF9yaW5nX3dyYXBfYnVmZmVyKHJpbmdidWYsIGN0 eCk7CiAJCWlmICh1bmxpa2VseShyZXQpKQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfcmluZ2J1ZmZlci5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1 ZmZlci5jCmluZGV4IGQ5MzRmODUuLjc0YzIyMjIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX3JpbmdidWZmZXIuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9yaW5nYnVmZmVyLmMKQEAgLTIxMDMsNiArMjEwMyw5IEBAIHN0YXRpYyBpbnQgcmluZ193YWl0 X2Zvcl9zcGFjZShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nLCBpbnQgbikKIAl1bnNpZ25l ZCBzcGFjZTsKIAlpbnQgcmV0OwogCisJLyogVGhlIHdob2xlIHBvaW50IG9mIHJlc2VydmluZyBz cGFjZSBpcyB0byBub3Qgd2FpdCEgKi8KKwlXQVJOX09OKHJpbmdidWYtPnJlc2VydmVkX2luX3Vz ZSk7CisKIAlpZiAoaW50ZWxfcmluZ19zcGFjZShyaW5nYnVmKSA+PSBuKQogCQlyZXR1cm4gMDsK IApAQCAtMjEzMCw2ICsyMTMzLDkgQEAgc3RhdGljIGludCBpbnRlbF93cmFwX3JpbmdfYnVmZmVy KHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcpCiAJc3RydWN0IGludGVsX3JpbmdidWZmZXIg KnJpbmdidWYgPSByaW5nLT5idWZmZXI7CiAJaW50IHJlbSA9IHJpbmdidWYtPnNpemUgLSByaW5n YnVmLT50YWlsOwogCisJLyogQ2FuJ3Qgd3JhcCBpZiBzcGFjZSBoYXMgYWxyZWFkeSBiZWVuIHJl c2VydmVkISAqLworCVdBUk5fT04ocmluZ2J1Zi0+cmVzZXJ2ZWRfaW5fdXNlKTsKKwogCWlmIChy aW5nYnVmLT5zcGFjZSA8IHJlbSkgewogCQlpbnQgcmV0ID0gcmluZ193YWl0X2Zvcl9zcGFjZShy aW5nLCByZW0pOwogCQlpZiAocmV0KQpAQCAtMjE4MCwxNiArMjE4Niw3NCBAQCBpbnQgaW50ZWxf cmluZ19hbGxvY19yZXF1ZXN0X2V4dHJhcyhzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJl cXVlc3QpCiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBpbnQgX19pbnRlbF9yaW5nX3ByZXBhcmUo c3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZywKLQkJCQlpbnQgYnl0ZXMpCit2b2lkIGludGVs X3JpbmdfcmVzZXJ2ZWRfc3BhY2VfcmVzZXJ2ZShzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAqcmlu Z2J1ZiwgaW50IHNpemUpCit7CisJLyogTkI6IFVudGlsIHJlcXVlc3QgbWFuYWdlbWVudCBpcyBm dWxseSB0aWRpZWQgdXAgYW5kIHRoZSBPTFIgaXMKKwkgKiByZW1vdmVkLCB0aGVyZSBhcmUgdG9v IG1hbnkgd2F5cyBmb3IgZ2V0IGZhbHNlIGhpdHMgb24gdGhpcworCSAqIGFudGktcmVjdXJzaW9u IGNoZWNrISAqLworCS8qV0FSTl9PTihyaW5nYnVmLT5yZXNlcnZlZF9zaXplKTsqLworCVdBUk5f T04ocmluZ2J1Zi0+cmVzZXJ2ZWRfaW5fdXNlKTsKKworCXJpbmdidWYtPnJlc2VydmVkX3NpemUg PSBzaXplOworCisJLyoKKwkgKiBSZWFsbHkgbmVlZCB0byBjYWxsIF9iZWdpbigpIGhlcmUgYnV0 IHRoYXQgY3VycmVudGx5IGxlYWRzIHRvCisJICogcmVjdXJzaW9uIHByb2JsZW1zISBUaGlzIHdp bGwgYmUgZml4ZWQgbGF0ZXIgYnV0IGZvciBub3cganVzdAorCSAqIHJldHVybiBhbmQgaG9wZSBm b3IgdGhlIGJlc3QuIE5vdGUgdGhhdCB0aGVyZSBpcyBvbmx5IGEgcmVhbAorCSAqIHByb2JsZW0g aWYgdGhlIGNyZWF0ZSBvZiB0aGUgcmVxdWVzdCBuZXZlciBhY3R1YWxseSBjYWxscyBfYmVnaW4o KQorCSAqIGJ1dCBpZiB0aGV5IGFyZSBub3Qgc3VibWl0dGluZyBhbnkgd29yayB0aGVuIHdoeSBk aWQgdGhleSBjcmVhdGUKKwkgKiB0aGUgcmVxdWVzdCBpbiB0aGUgZmlyc3QgcGxhY2U/CisJICov Cit9CisKK3ZvaWQgaW50ZWxfcmluZ19yZXNlcnZlZF9zcGFjZV9jYW5jZWwoc3RydWN0IGludGVs X3JpbmdidWZmZXIgKnJpbmdidWYpCit7CisJV0FSTl9PTihyaW5nYnVmLT5yZXNlcnZlZF9pbl91 c2UpOworCisJcmluZ2J1Zi0+cmVzZXJ2ZWRfc2l6ZSAgID0gMDsKKwlyaW5nYnVmLT5yZXNlcnZl ZF9pbl91c2UgPSBmYWxzZTsKK30KKwordm9pZCBpbnRlbF9yaW5nX3Jlc2VydmVkX3NwYWNlX3Vz ZShzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAqcmluZ2J1ZikKK3sKKwlXQVJOX09OKHJpbmdidWYt PnJlc2VydmVkX2luX3VzZSk7CisKKwlyaW5nYnVmLT5yZXNlcnZlZF9pbl91c2UgPSB0cnVlOwor CXJpbmdidWYtPnJlc2VydmVkX3RhaWwgICA9IHJpbmdidWYtPnRhaWw7Cit9CisKK3ZvaWQgaW50 ZWxfcmluZ19yZXNlcnZlZF9zcGFjZV9lbmQoc3RydWN0IGludGVsX3JpbmdidWZmZXIgKnJpbmdi dWYpCit7CisJV0FSTl9PTighcmluZ2J1Zi0+cmVzZXJ2ZWRfaW5fdXNlKTsKKwlXQVJOKHJpbmdi dWYtPnRhaWwgPiByaW5nYnVmLT5yZXNlcnZlZF90YWlsICsgcmluZ2J1Zi0+cmVzZXJ2ZWRfc2l6 ZSwKKwkgICAgICJyZXF1ZXN0IHJlc2VydmVkIHNpemUgdG9vIHNtYWxsOiAlZCB2cyAlZCFcbiIs CisJICAgICByaW5nYnVmLT50YWlsIC0gcmluZ2J1Zi0+cmVzZXJ2ZWRfdGFpbCwgcmluZ2J1Zi0+ cmVzZXJ2ZWRfc2l6ZSk7CisKKwlyaW5nYnVmLT5yZXNlcnZlZF9zaXplICAgPSAwOworCXJpbmdi dWYtPnJlc2VydmVkX2luX3VzZSA9IGZhbHNlOworfQorCitzdGF0aWMgaW50IF9faW50ZWxfcmlu Z19wcmVwYXJlKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcsIGludCBieXRlcykKIHsKIAlz dHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAqcmluZ2J1ZiA9IHJpbmctPmJ1ZmZlcjsKIAlpbnQgcmV0 OwogCisJaWYgKCFyaW5nYnVmLT5yZXNlcnZlZF9pbl91c2UpCisJCWJ5dGVzICs9IHJpbmdidWYt PnJlc2VydmVkX3NpemU7CisKIAlpZiAodW5saWtlbHkocmluZ2J1Zi0+dGFpbCArIGJ5dGVzID4g cmluZ2J1Zi0+ZWZmZWN0aXZlX3NpemUpKSB7CisJCVdBUk5fT04ocmluZ2J1Zi0+cmVzZXJ2ZWRf aW5fdXNlKTsKKwogCQlyZXQgPSBpbnRlbF93cmFwX3JpbmdfYnVmZmVyKHJpbmcpOwogCQlpZiAo dW5saWtlbHkocmV0KSkKIAkJCXJldHVybiByZXQ7CisKKwkJaWYocmluZ2J1Zi0+cmVzZXJ2ZWRf c2l6ZSkgeworCQkJdWludDMyX3Qgc2l6ZSA9IHJpbmdidWYtPnJlc2VydmVkX3NpemU7CisKKwkJ CWludGVsX3JpbmdfcmVzZXJ2ZWRfc3BhY2VfY2FuY2VsKHJpbmdidWYpOworCQkJaW50ZWxfcmlu Z19yZXNlcnZlZF9zcGFjZV9yZXNlcnZlKHJpbmdidWYsIHNpemUpOworCQl9CiAJfQogCiAJaWYg KHVubGlrZWx5KHJpbmdidWYtPnNwYWNlIDwgYnl0ZXMpKSB7CmRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9yaW5nYnVmZmVyLmgKaW5kZXggMzlmNmRmYy4uMzlmNzk1YyAxMDA2NDQKLS0tIGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5oCisrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX3JpbmdidWZmZXIuaApAQCAtMTA1LDYgKzEwNSw5IEBAIHN0cnVjdCBpbnRl bF9yaW5nYnVmZmVyIHsKIAlpbnQgc3BhY2U7CiAJaW50IHNpemU7CiAJaW50IGVmZmVjdGl2ZV9z aXplOworCWludCByZXNlcnZlZF9zaXplOworCWludCByZXNlcnZlZF90YWlsOworCWJvb2wgcmVz ZXJ2ZWRfaW5fdXNlOwogCiAJLyoqIFdlIHRyYWNrIHRoZSBwb3NpdGlvbiBvZiB0aGUgcmVxdWVz dHMgaW4gdGhlIHJpbmcgYnVmZmVyLCBhbmQKIAkgKiB3aGVuIGVhY2ggaXMgcmV0aXJlZCB3ZSBp bmNyZW1lbnQgbGFzdF9yZXRpcmVkX2hlYWQgYXMgdGhlIEdQVQpAQCAtNDUwLDQgKzQ1MywxMSBA QCBpbnRlbF9yaW5nX2dldF9yZXF1ZXN0KHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcpCiAJ cmV0dXJuIHJpbmctPm91dHN0YW5kaW5nX2xhenlfcmVxdWVzdDsKIH0KIAorI2RlZmluZSBNSU5f U1BBQ0VfRk9SX0FERF9SRVFVRVNUCTEyOAorCit2b2lkIGludGVsX3JpbmdfcmVzZXJ2ZWRfc3Bh Y2VfcmVzZXJ2ZShzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAqcmluZ2J1ZiwgaW50IHNpemUpOwor dm9pZCBpbnRlbF9yaW5nX3Jlc2VydmVkX3NwYWNlX2NhbmNlbChzdHJ1Y3QgaW50ZWxfcmluZ2J1 ZmZlciAqcmluZ2J1Zik7Cit2b2lkIGludGVsX3JpbmdfcmVzZXJ2ZWRfc3BhY2VfdXNlKHN0cnVj dCBpbnRlbF9yaW5nYnVmZmVyICpyaW5nYnVmKTsKK3ZvaWQgaW50ZWxfcmluZ19yZXNlcnZlZF9z cGFjZV9lbmQoc3RydWN0IGludGVsX3JpbmdidWZmZXIgKnJpbmdidWYpOworCiAjZW5kaWYgLyog X0lOVEVMX1JJTkdCVUZGRVJfSF8gKi8KLS0gCjEuNy45LjUKCl9fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwt Z2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21h aWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==