From mboxrd@z Thu Jan 1 00:00:00 1970 From: John.C.Harrison@Intel.com Subject: [PATCH 05/59] drm/i915: Reserve ring buffer space for i915_add_request() commands Date: Thu, 19 Mar 2015 12:30:10 +0000 Message-ID: <1426768264-16996-6-git-send-email-John.C.Harrison@Intel.com> References: <1426768264-16996-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 5F7DD6EA01 for ; Thu, 19 Mar 2015 05:31:12 -0700 (PDT) In-Reply-To: <1426768264-16996-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 IGRvaW5nIGFueXRoaW5nIGluIHRoZSBmaXJzdCBwbGFjZT8KCkZvcjogVklaLTUxMTUKU2lnbmVk LW9mZi1ieTogSm9obiBIYXJyaXNvbiA8Sm9obi5DLkhhcnJpc29uQEludGVsLmNvbT4KLS0tCiBk cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oICAgICAgICAgfCAgICAxICsKIGRyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMgICAgICAgICB8ICAgNDcgKysrKysrKysrKysrKysrKysr KysrKysrKysrKysKIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5jICAgICAgICB8ICAg MTIgKysrKysrKysKIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuYyB8ICAg NTAgKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLQogZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfcmluZ2J1ZmZlci5oIHwgICAgOSArKysrKysKIDUgZmlsZXMgY2hhbmdlZCwgMTE3IGlu c2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKaW5kZXgg NGViZDQyMS4uZmU2NDQ2ZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9k cnYuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCkBAIC0yMTE1LDYgKzIx MTUsNyBAQCBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgewogCiBpbnQgaTkxNV9nZW1fcmVx dWVzdF9hbGxvYyhzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nLAogCQkJICAgc3RydWN0IGlu dGVsX2NvbnRleHQgKmN0eCk7Cit2b2lkIGk5MTVfZ2VtX3JlcXVlc3RfY2FuY2VsKHN0cnVjdCBk cm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxKTsKIHZvaWQgaTkxNV9nZW1fcmVxdWVzdF9mcmVlKHN0 cnVjdCBrcmVmICpyZXFfcmVmKTsKIAogc3RhdGljIGlubGluZSB1aW50MzJfdApkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfZ2VtLmMKaW5kZXggNDgyNGFkZi4uZmMzODNmYyAxMDA2NDQKLS0tIGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9nZW0uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dl bS5jCkBAIC0yMzQ0LDYgKzIzNDQsMTMgQEAgaW50IF9faTkxNV9hZGRfcmVxdWVzdChzdHJ1Y3Qg aW50ZWxfZW5naW5lX2NzICpyaW5nLAogCX0gZWxzZQogCQlyaW5nYnVmID0gcmluZy0+YnVmZmVy OwogCisJLyoKKwkgKiBUbyBlbnN1cmUgdGhhdCB0aGlzIGNhbGwgd2lsbCBub3QgZmFpbCwgc3Bh Y2UgZm9yIGl0J3MgZW1pc3Npb25zCisJICogc2hvdWxkIGFscmVhZHkgaGF2ZSBiZWVuIHJlc2Vy dmVkIGluIHRoZSByaW5nIGJ1ZmZlci4gTGV0IHRoZSByaW5nCisJICoga25vdyB0aGF0IGl0IGlz IHRpbWUgdG8gdXNlIHRoYXQgc3BhY2UgdXAuCisJICovCisJaW50ZWxfcmluZ19yZXNlcnZlZF9z cGFjZV91c2UocmluZ2J1ZiwgTUlOX1NQQUNFX0ZPUl9BRERfUkVRVUVTVCk7CisKIAlyZXF1ZXN0 X3N0YXJ0ID0gaW50ZWxfcmluZ19nZXRfdGFpbChyaW5nYnVmKTsKIAkvKgogCSAqIEVtaXQgYW55 IG91dHN0YW5kaW5nIGZsdXNoZXMgLSBleGVjYnVmIGNhbiBmYWlsIHRvIGVtaXQgdGhlIGZsdXNo CkBAIC0yNDI2LDYgKzI0MzMsOSBAQCBpbnQgX19pOTE1X2FkZF9yZXF1ZXN0KHN0cnVjdCBpbnRl bF9lbmdpbmVfY3MgKnJpbmcsCiAJCQkgICByb3VuZF9qaWZmaWVzX3VwX3JlbGF0aXZlKEhaKSk7 CiAJaW50ZWxfbWFya19idXN5KGRldl9wcml2LT5kZXYpOwogCisJLyogU2FuaXR5IGNoZWNrIHRo YXQgdGhlIHJlc2VydmVkIHNpemUgd2FzIGxhcmdlIGVub3VnaC4gKi8KKwlpbnRlbF9yaW5nX3Jl c2VydmVkX3NwYWNlX2VuZChyaW5nYnVmKTsKKwogCXJldHVybiAwOwogfQogCkBAIC0yNTUxLDEw ICsyNTYxLDQ3IEBAIGludCBpOTE1X2dlbV9yZXF1ZXN0X2FsbG9jKHN0cnVjdCBpbnRlbF9lbmdp bmVfY3MgKnJpbmcsCiAJCXJldHVybiByZXQ7CiAJfQogCisJLyoKKwkgKiBSZXNlcnZlIHNwYWNl IGluIHRoZSByaW5nIGJ1ZmZlciBmb3IgYWxsIHRoZSBjb21tYW5kcyByZXF1aXJlZCB0bworCSAq IGV2ZW50dWFsbHkgZW1pdCB0aGlzIHJlcXVlc3QuIFRoaXMgaXMgdG8gZ3VhcmFudGVlIHRoYXQg dGhlCisJICogaTkxNV9hZGRfcmVxdWVzdCgpIGNhbGwgY2FuJ3QgZmFpbC4gTm90ZSB0aGF0IHRo ZSByZXNlcnZlIG1heSBuZWVkCisJICogdG8gYmUgcmVkb25lIGlmIHRoZSByZXF1ZXN0IGlzIG5v dCBhY3R1YWxseSBzdWJtaXR0ZWQgc3RyYWlnaHQKKwkgKiBhd2F5LCBlLmcuIGJlY2F1c2UgYSBH UFUgc2NoZWR1bGVyIGhhcyBkZWZlcnJlZCBpdC4KKwkgKgorCSAqIE5vdGUgZnVydGhlciB0aGF0 IHRoaXMgY2FsbCBtZXJlbHkgbm90ZXMgdGhlIHJlc2VydmUgcmVxdWVzdC4gQQorCSAqIHN1YnNl cXVlbnQgY2FsbCB0byAqX3JpbmdfYmVnaW4oKSBpcyByZXF1aXJlZCB0byBhY3R1YWxseSBlbnN1 cmUKKwkgKiB0aGF0IHRoZSByZXNlcnZhdGlvbiBpcyBhdmFpbGFibGUuIFdpdGhvdXQgdGhlIGJl Z2luLCBpZiB0aGUKKwkgKiByZXF1ZXN0IGNyZWF0b3IgaW1tZWRpYXRlbHkgc3VibWl0dGVkIHRo ZSByZXF1ZXN0IHdpdGhvdXQgYWRkaW5nCisJICogYW55IGNvbW1hbmRzIHRvIGl0IHRoZW4gdGhl cmUgbWlnaHQgbm90IGFjdHVhbGx5IGJlIHN1ZmZpY2llbnQKKwkgKiByb29tIGZvciB0aGUgc3Vi bWlzc2lvbiBjb21tYW5kcy4gVW5mb3J0dW5hdGVseSwgdGhlIGN1cnJlbnQKKwkgKiAqX3Jpbmdf YmVnaW4oKSBpbXBsZW1lbnRhdGlvbnMgcG90ZW50aWFsbHkgY2FsbCBiYWNrIGhlcmUgdG8KKwkg KiBpOTE1X2dlbV9yZXF1ZXN0X2FsbG9jKCkuIFRodXMgY2FsbGluZyBfYmVnaW4oKSBoZXJlIHdv dWxkIGxlYWQgdG8KKwkgKiBpbmZpbml0ZSByZWN1cnNpb24hIFVudGlsIHRoYXQgYmFjayBjYWxs IHBhdGggaXMgcmVtb3ZlZCwgaXQgaXMKKwkgKiBuZWNlc3NhcnkgdG8gZG8gYSBtYW51YWwgX2Jl Z2luKCkgb3V0c2lkZS4KKwkgKi8KKwlyZXQgPSBpbnRlbF9yaW5nX3Jlc2VydmVkX3NwYWNlX3Jl c2VydmUocmVxdWVzdC0+cmluZ2J1ZiwgTUlOX1NQQUNFX0ZPUl9BRERfUkVRVUVTVCk7CisJaWYg KHJldCkgeworCQkvKgorCQkgKiBBdCB0aGlzIHBvaW50LCB0aGUgcmVxdWVzdCBpcyBmdWxseSBh bGxvY2F0ZWQgZXZlbiBpZiBub3QKKwkJICogZnVsbHkgcHJlcGFyZWQuIFRodXMgaXQgY2FuIGJl IGNsZWFuZWQgdXAgdXNpbmcgdGhlIHByb3BlcgorCQkgKiBmcmVlIGNvZGUuCisJCSAqLworCQlp OTE1X2dlbV9yZXF1ZXN0X2NhbmNlbChyZXF1ZXN0KTsKKwkJcmV0dXJuIHJldDsKKwl9CisKIAly aW5nLT5vdXRzdGFuZGluZ19sYXp5X3JlcXVlc3QgPSByZXF1ZXN0OwogCXJldHVybiAwOwogfQog Cit2b2lkIGk5MTVfZ2VtX3JlcXVlc3RfY2FuY2VsKHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVz dCAqcmVxKQoreworCWludGVsX3JpbmdfcmVzZXJ2ZWRfc3BhY2VfdXNlKHJlcS0+cmluZ2J1Ziwg TUlOX1NQQUNFX0ZPUl9BRERfUkVRVUVTVCk7CisJaW50ZWxfcmluZ19yZXNlcnZlZF9zcGFjZV9l bmQocmVxLT5yaW5nYnVmKTsKKworCWk5MTVfZ2VtX3JlcXVlc3RfdW5yZWZlcmVuY2UocmVxKTsK K30KKwogc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICoKIGk5MTVfZ2VtX2ZpbmRfYWN0aXZl X3JlcXVlc3Qoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZykKIHsKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfbHJjLmMKaW5kZXggMWMzODM0ZmMuLmJkYmRjYWUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2xyYy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xy Yy5jCkBAIC02MzYsNiArNjM2LDkgQEAgc3RhdGljIGludCBsb2dpY2FsX3Jpbmdfd2FpdF9yZXF1 ZXN0KHN0cnVjdCBpbnRlbF9yaW5nYnVmZmVyICpyaW5nYnVmLAogCXN0cnVjdCBkcm1faTkxNV9n ZW1fcmVxdWVzdCAqcmVxdWVzdDsKIAlpbnQgcmV0LCBuZXdfc3BhY2U7CiAKKwkvKiBUaGUgd2hv bGUgcG9pbnQgb2YgcmVzZXJ2aW5nIHNwYWNlIGlzIHRvIG5vdCB3YWl0ISAqLworCVdBUk5fT04o cmluZ2J1Zi0+cmVzZXJ2ZWRfaW5fdXNlKTsKKwogCWlmIChpbnRlbF9yaW5nX3NwYWNlKHJpbmdi dWYpID49IGJ5dGVzKQogCQlyZXR1cm4gMDsKIApAQCAtNzA0LDYgKzcwNyw5IEBAIHN0YXRpYyBp bnQgbG9naWNhbF9yaW5nX3dhaXRfZm9yX3NwYWNlKHN0cnVjdCBpbnRlbF9yaW5nYnVmZmVyICpy aW5nYnVmLAogCXVuc2lnbmVkIGxvbmcgZW5kOwogCWludCByZXQ7CiAKKwkvKiBUaGUgd2hvbGUg cG9pbnQgb2YgcmVzZXJ2aW5nIHNwYWNlIGlzIHRvIG5vdCB3YWl0ISAqLworCVdBUk5fT04ocmlu Z2J1Zi0+cmVzZXJ2ZWRfaW5fdXNlKTsKKwogCXJldCA9IGxvZ2ljYWxfcmluZ193YWl0X3JlcXVl c3QocmluZ2J1ZiwgYnl0ZXMpOwogCWlmIChyZXQgIT0gLUVOT1NQQykKIAkJcmV0dXJuIHJldDsK QEAgLTc1MCw2ICs3NTYsOSBAQCBzdGF0aWMgaW50IGxvZ2ljYWxfcmluZ193cmFwX2J1ZmZlcihz dHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAqcmluZ2J1ZiwKIAl1aW50MzJfdCBfX2lvbWVtICp2aXJ0 OwogCWludCByZW0gPSByaW5nYnVmLT5zaXplIC0gcmluZ2J1Zi0+dGFpbDsKIAorCS8qIENhbid0 IHdyYXAgaWYgc3BhY2UgaGFzIGFscmVhZHkgYmVlbiByZXNlcnZlZCEgKi8KKwlXQVJOX09OKHJp bmdidWYtPnJlc2VydmVkX2luX3VzZSk7CisKIAlpZiAocmluZ2J1Zi0+c3BhY2UgPCByZW0pIHsK IAkJaW50IHJldCA9IGxvZ2ljYWxfcmluZ193YWl0X2Zvcl9zcGFjZShyaW5nYnVmLCBjdHgsIHJl bSk7CiAKQEAgLTc3Myw2ICs3ODIsOSBAQCBzdGF0aWMgaW50IGxvZ2ljYWxfcmluZ19wcmVwYXJl KHN0cnVjdCBpbnRlbF9yaW5nYnVmZmVyICpyaW5nYnVmLAogewogCWludCByZXQ7CiAKKwlpZiAo IXJpbmdidWYtPnJlc2VydmVkX2luX3VzZSkKKwkJYnl0ZXMgKz0gcmluZ2J1Zi0+cmVzZXJ2ZWRf c2l6ZTsKKwogCWlmICh1bmxpa2VseShyaW5nYnVmLT50YWlsICsgYnl0ZXMgPiByaW5nYnVmLT5l ZmZlY3RpdmVfc2l6ZSkpIHsKIAkJcmV0ID0gbG9naWNhbF9yaW5nX3dyYXBfYnVmZmVyKHJpbmdi dWYsIGN0eCk7CiAJCWlmICh1bmxpa2VseShyZXQpKQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf cmluZ2J1ZmZlci5jCmluZGV4IGEyNmJkZjguLjkwNzUwMDggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9yaW5nYnVmZmVyLmMKQEAgLTIwNjEsNiArMjA2MSw5IEBAIHN0YXRpYyBpbnQgaW50 ZWxfcmluZ193YWl0X3JlcXVlc3Qoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZywgaW50IG4p CiAJc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXF1ZXN0OwogCWludCByZXQsIG5ld19z cGFjZTsKIAorCS8qIFRoZSB3aG9sZSBwb2ludCBvZiByZXNlcnZpbmcgc3BhY2UgaXMgdG8gbm90 IHdhaXQhICovCisJV0FSTl9PTihyaW5nYnVmLT5yZXNlcnZlZF9pbl91c2UpOworCiAJaWYgKGlu dGVsX3Jpbmdfc3BhY2UocmluZ2J1ZikgPj0gbikKIAkJcmV0dXJuIDA7CiAKQEAgLTIwOTMsNiAr MjA5Niw5IEBAIHN0YXRpYyBpbnQgcmluZ193YWl0X2Zvcl9zcGFjZShzdHJ1Y3QgaW50ZWxfZW5n aW5lX2NzICpyaW5nLCBpbnQgbikKIAl1bnNpZ25lZCBsb25nIGVuZDsKIAlpbnQgcmV0OwogCisJ LyogVGhlIHdob2xlIHBvaW50IG9mIHJlc2VydmluZyBzcGFjZSBpcyB0byBub3Qgd2FpdCEgKi8K KwlXQVJOX09OKHJpbmdidWYtPnJlc2VydmVkX2luX3VzZSk7CisKIAlyZXQgPSBpbnRlbF9yaW5n X3dhaXRfcmVxdWVzdChyaW5nLCBuKTsKIAlpZiAocmV0ICE9IC1FTk9TUEMpCiAJCXJldHVybiBy ZXQ7CkBAIC0yMTQzLDYgKzIxNDksOSBAQCBzdGF0aWMgaW50IGludGVsX3dyYXBfcmluZ19idWZm ZXIoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZykKIAlzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZl ciAqcmluZ2J1ZiA9IHJpbmctPmJ1ZmZlcjsKIAlpbnQgcmVtID0gcmluZ2J1Zi0+c2l6ZSAtIHJp bmdidWYtPnRhaWw7CiAKKwkvKiBDYW4ndCB3cmFwIGlmIHNwYWNlIGhhcyBhbHJlYWR5IGJlZW4g cmVzZXJ2ZWQhICovCisJV0FSTl9PTihyaW5nYnVmLT5yZXNlcnZlZF9pbl91c2UpOworCiAJaWYg KHJpbmdidWYtPnNwYWNlIDwgcmVtKSB7CiAJCWludCByZXQgPSByaW5nX3dhaXRfZm9yX3NwYWNl KHJpbmcsIHJlbSk7CiAJCWlmIChyZXQpCkBAIC0yMTkwLDEyICsyMTk5LDQ5IEBAIGludCBpbnRl bF9yaW5nX2FsbG9jX3JlcXVlc3RfZXh0cmFzKHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAq cmVxdWVzdCkKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIGludCBfX2ludGVsX3JpbmdfcHJlcGFy ZShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nLAotCQkJCWludCBieXRlcykKK2ludCBpbnRl bF9yaW5nX3Jlc2VydmVkX3NwYWNlX3Jlc2VydmUoc3RydWN0IGludGVsX3JpbmdidWZmZXIgKnJp bmdidWYsIGludCBzaXplKQoreworCS8qIE5COiBVbnRpbCByZXF1ZXN0IG1hbmFnZW1lbnQgaXMg ZnVsbHkgdGlkaWVkIHVwIGFuZCB0aGUgT0xSIGlzCisJICogcmVtb3ZlZCwgdGhlcmUgYXJlIHRv byBtYW55IHdheXMgZm9yIGdldCBmYWxzZSBoaXRzIG9uIHRoaXMKKwkgKiBhbnRpLXJlY3Vyc2lv biBjaGVjayEgKi8KKwkvKldBUk5fT04ocmluZ2J1Zi0+cmVzZXJ2ZWRfc2l6ZSk7Ki8KKwlXQVJO X09OKHJpbmdidWYtPnJlc2VydmVkX2luX3VzZSk7CisKKwlyaW5nYnVmLT5yZXNlcnZlZF9zaXpl ID0gc2l6ZTsKKworCS8qCisJICogUmVhbGx5IG5lZWQgdG8gY2FsbCBfYmVnaW4oKSBoZXJlIGJ1 dCB0aGF0IGN1cnJlbnRseSBsZWFkcyB0bworCSAqIHJlY3Vyc2lvbiBwcm9ibGVtcyEgU28ganVz dCByZXR1cm4gemVybyBhbmQgaG9wZSBmb3IgdGhlIGJlc3QuLi4KKwkgKi8KKwlyZXR1cm4gMDsK K30KKwordm9pZCBpbnRlbF9yaW5nX3Jlc2VydmVkX3NwYWNlX3VzZShzdHJ1Y3QgaW50ZWxfcmlu Z2J1ZmZlciAqcmluZ2J1ZiwgaW50IHNpemUpCit7CisJV0FSTl9PTihzaXplID4gcmluZ2J1Zi0+ cmVzZXJ2ZWRfc2l6ZSk7CisJV0FSTl9PTihyaW5nYnVmLT5yZXNlcnZlZF9pbl91c2UpOworCisJ cmluZ2J1Zi0+cmVzZXJ2ZWRfaW5fdXNlID0gdHJ1ZTsKKwlyaW5nYnVmLT5yZXNlcnZlZF90YWls ICAgPSByaW5nYnVmLT50YWlsOworfQorCit2b2lkIGludGVsX3JpbmdfcmVzZXJ2ZWRfc3BhY2Vf ZW5kKHN0cnVjdCBpbnRlbF9yaW5nYnVmZmVyICpyaW5nYnVmKQoreworCVdBUk5fT04oIXJpbmdi dWYtPnJlc2VydmVkX2luX3VzZSk7CisJV0FSTl9PTihyaW5nYnVmLT50YWlsID4gcmluZ2J1Zi0+ cmVzZXJ2ZWRfdGFpbCArIHJpbmdidWYtPnJlc2VydmVkX3NpemUpOworCisJcmluZ2J1Zi0+cmVz ZXJ2ZWRfc2l6ZSAgID0gMDsKKwlyaW5nYnVmLT5yZXNlcnZlZF9pbl91c2UgPSBmYWxzZTsKK30K Kworc3RhdGljIGludCBfX2ludGVsX3JpbmdfcHJlcGFyZShzdHJ1Y3QgaW50ZWxfZW5naW5lX2Nz ICpyaW5nLCBpbnQgYnl0ZXMpCiB7CiAJc3RydWN0IGludGVsX3JpbmdidWZmZXIgKnJpbmdidWYg PSByaW5nLT5idWZmZXI7CiAJaW50IHJldDsKIAorCWlmICghcmluZ2J1Zi0+cmVzZXJ2ZWRfaW5f dXNlKQorCQlieXRlcyArPSByaW5nYnVmLT5yZXNlcnZlZF9zaXplOworCiAJaWYgKHVubGlrZWx5 KHJpbmdidWYtPnRhaWwgKyBieXRlcyA+IHJpbmdidWYtPmVmZmVjdGl2ZV9zaXplKSkgewogCQly ZXQgPSBpbnRlbF93cmFwX3JpbmdfYnVmZmVyKHJpbmcpOwogCQlpZiAodW5saWtlbHkocmV0KSkK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuaCBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuaAppbmRleCA2NTY2ZGQ0Li5iMzM0 NDU5IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmgK KysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5oCkBAIC0xMDQsNiAr MTA0LDkgQEAgc3RydWN0IGludGVsX3JpbmdidWZmZXIgewogCWludCBzcGFjZTsKIAlpbnQgc2l6 ZTsKIAlpbnQgZWZmZWN0aXZlX3NpemU7CisJaW50IHJlc2VydmVkX3NpemU7CisJaW50IHJlc2Vy dmVkX3RhaWw7CisJYm9vbCByZXNlcnZlZF9pbl91c2U7CiAKIAkvKiogV2UgdHJhY2sgdGhlIHBv c2l0aW9uIG9mIHRoZSByZXF1ZXN0cyBpbiB0aGUgcmluZyBidWZmZXIsIGFuZAogCSAqIHdoZW4g ZWFjaCBpcyByZXRpcmVkIHdlIGluY3JlbWVudCBsYXN0X3JldGlyZWRfaGVhZCBhcyB0aGUgR1BV CkBAIC00NDIsNCArNDQ1LDEwIEBAIGludGVsX3JpbmdfZ2V0X3JlcXVlc3Qoc3RydWN0IGludGVs X2VuZ2luZV9jcyAqcmluZykKIAlyZXR1cm4gcmluZy0+b3V0c3RhbmRpbmdfbGF6eV9yZXF1ZXN0 OwogfQogCisjZGVmaW5lIE1JTl9TUEFDRV9GT1JfQUREX1JFUVVFU1QJMTI4CisKK2ludCBpbnRl bF9yaW5nX3Jlc2VydmVkX3NwYWNlX3Jlc2VydmUoc3RydWN0IGludGVsX3JpbmdidWZmZXIgKnJp bmdidWYsIGludCBzaXplKTsKK3ZvaWQgaW50ZWxfcmluZ19yZXNlcnZlZF9zcGFjZV91c2Uoc3Ry dWN0IGludGVsX3JpbmdidWZmZXIgKnJpbmdidWYsIGludCBzaXplKTsKK3ZvaWQgaW50ZWxfcmlu Z19yZXNlcnZlZF9zcGFjZV9lbmQoc3RydWN0IGludGVsX3JpbmdidWZmZXIgKnJpbmdidWYpOwor CiAjZW5kaWYgLyogX0lOVEVMX1JJTkdCVUZGRVJfSF8gKi8KLS0gCjEuNy45LjUKCl9fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5n IGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMuZnJlZWRl c2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==