From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jani Nikula Subject: Re: [PATCH] drm/i915: Fix a bug calling sleep function in atomic context Date: Mon, 18 Nov 2019 17:59:24 +0200 Message-ID: <875zjhyy3n.fsf@intel.com> References: <20191113231104.24208-1-yu.bruce.chang@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by gabe.freedesktop.org (Postfix) with ESMTPS id 4DD246E5D6 for ; Mon, 18 Nov 2019 15:59:30 +0000 (UTC) In-Reply-To: <20191113231104.24208-1-yu.bruce.chang@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Bruce Chang , intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gV2VkLCAxMyBOb3YgMjAxOSwgQnJ1Y2UgQ2hhbmcgPHl1LmJydWNlLmNoYW5nQGludGVsLmNv bT4gd3JvdGU6Cj4gYmVsb3cgaXMgdGhlIGNhbGwgdHJhY2Ugd2hlbiB0aGlzIGlzc3VlIGlzIGhp dAo+Cj4gPDM+IFsxMTMuMzE2MjQ3XSBCVUc6IHNsZWVwaW5nIGZ1bmN0aW9uIGNhbGxlZCBmcm9t IGludmFsaWQgY29udGV4dCBhdCBtbS9wYWdlX2FsbG9jLmM6NDY1Mwo+IDwzPiBbMTEzLjMxODE5 MF0gaW5fYXRvbWljKCk6IDEsIGlycXNfZGlzYWJsZWQoKTogMCwgcGlkOiA2NzgsIG5hbWU6IGRl YnVnZnNfdGVzdAo+IDw0PiBbMTEzLjMxOTkwMF0gbm8gbG9ja3MgaGVsZCBieSBkZWJ1Z2ZzX3Rl c3QvNjc4Lgo+IDwzPiBbMTEzLjMyMTAwMl0gUHJlZW1wdGlvbiBkaXNhYmxlZCBhdDoKPiA8ND4g WzExMy4zMjExMzBdIFs8ZmZmZmZmZmZhMDI1MDZkND5dIGk5MTVfZXJyb3Jfb2JqZWN0X2NyZWF0 ZSsweDQ5NC8weDYxMCBbaTkxNV0KPiA8ND4gWzExMy4zMjcyNTldIENhbGwgVHJhY2U6Cj4gPDQ+ IFsxMTMuMzI3ODcxXSBkdW1wX3N0YWNrKzB4NjcvMHg5Ygo+IDw0PiBbMTEzLjMyODY4M10gX19f bWlnaHRfc2xlZXArMHgxNjcvMHgyNTAKPiA8ND4gWzExMy4zMjk2MThdIF9fYWxsb2NfcGFnZXNf bm9kZW1hc2srMHgyNmIvMHgxMTEwCj4gPDQ+IFsxMTMuMzMwNzMxXSA/IF9fX3NsYWJfYWxsb2Mu Y29uc3Rwcm9wLjM0KzB4MjFjLzB4MzgwCj4gPDQ+IFsxMTMuMzMxOTQzXSA/IF9fX3NsYWJfYWxs b2MuY29uc3Rwcm9wLjM0KzB4MjFjLzB4MzgwCj4gPDQ+IFsxMTMuMzMzMTY5XSA/IF9fc2xhYl9h bGxvYy5pc3JhLjI4LmNvbnN0cHJvcC4zMysweDRkLzB4NzAKPiA8ND4gWzExMy4zMzQ2MTRdIHBv b2xfYWxsb2MuY29uc3Rwcm9wLjE5KzB4MTQvMHg2MCBbaTkxNV0KPiA8ND4gWzExMy4zMzU5NTFd IGNvbXByZXNzX3BhZ2UrMHg3Yy8weDEwMCBbaTkxNV0KPiA8ND4gWzExMy4zMzcxMTBdIGk5MTVf ZXJyb3Jfb2JqZWN0X2NyZWF0ZSsweDRiZC8weDYxMCBbaTkxNV0KPiA8ND4gWzExMy4zMzg1MTVd IGk5MTVfY2FwdHVyZV9ncHVfc3RhdGUrMHgzODQvMHgxNjgwIFtpOTE1XQo+IDw0PiBbMTEzLjMz OTc3MV0gPyBfX2xvY2tfYWNxdWlyZSsweDRhYy8weDFlOTAKPiA8ND4gWzExMy4zNDA3ODVdID8g X3Jhd19zcGluX2xvY2tfaXJxc2F2ZV9uZXN0ZWQrMHgxLzB4NTAKPiA8ND4gWzExMy4zNDIxMjdd IGk5MTVfZ3B1X2luZm9fb3BlbisweDQ0LzB4NzAgW2k5MTVdCj4gPDQ+IFsxMTMuMzQzMjQzXSBm dWxsX3Byb3h5X29wZW4rMHgxMzkvMHgxYjAKPiA8ND4gWzExMy4zNDQxOTZdID8gb3Blbl9wcm94 eV9vcGVuKzB4YzAvMHhjMAo+IDw0PiBbMTEzLjM0NTE0OV0gZG9fZGVudHJ5X29wZW4rMHgxY2Uv MHgzYTAKPiA8ND4gWzExMy4zNDYwODRdIHBhdGhfb3BlbmF0KzB4NGM5LzB4YWMwCj4gPDQ+IFsx MTMuMzQ2OTY3XSBkb19maWxwX29wZW4rMHg5Ni8weDExMAo+IDw0PiBbMTEzLjM0Nzg0OF0gPyBf X2FsbG9jX2ZkKzB4ZTAvMHgxZjAKPiA8ND4gWzExMy4zNDg3MzZdID8gZG9fc3lzX29wZW4rMHgx YjgvMHgyNTAKPiA8ND4gWzExMy4zNDk2NDddIGRvX3N5c19vcGVuKzB4MWI4LzB4MjUwCj4gPDQ+ IFsxMTMuMzUwNTI2XSBkb19zeXNjYWxsXzY0KzB4NTUvMHgxYzAKPiA8ND4gWzExMy4zNTE0MThd IGVudHJ5X1NZU0NBTExfNjRfYWZ0ZXJfaHdmcmFtZSsweDQ5LzB4YmUKPgo+IEFmdGVyIHRoZSBp b19tYXBwaW5nX21hcF9hdG9taWNfd2Mva21hcF9hdG9taWMsIHRoZSBrZXJuZWwgZW50ZXJzIGF0 b21pYyBjb250ZXh0Cj4gYnV0IGFmdGVyIHRoYXQsIGNvbXByZXNzX3BhZ2UgY2FsbHMgcG9vbF9h bGxvYyB3aXRoIEdGUF9LRVJORUwgZmxhZyB3aGljaCBjYW4KPiBwb3RlbnRpYWxseSBnbyB0byBz bGVlcC4gV2hlbiB0aGUga2VybmVsIGlzIGluIGF0b21pYyBjb250ZXh0LCBzbGVlcGluZyBpcyBu b3QKPiBhbGxvd2VkLiBUaGlzIGlzIHdoeSB0aGlzIGJ1ZyBnb3QgdHJpZ2dlcmVkLgo+Cj4gSW4g b3JkZXIgdG8gZml4IHRoaXMgaXNzdWUsIHdlIGVpdGhlcgo+IAkxKSBub3QgZW50ZXIgaW50byBh dG9taWMgY29udGV4dCwgaS5lLiwgdG8gdXNlIG5vbiBhdG9taWMgdmVyc2lvbiBvZgo+IAkJZnVu Y3Rpb25zIGxpa2UgaW9fbWFwcGluZ19tYXBfd2Mva21hcCwKPiBvcgo+IAkyKSBtYWtlIGNvbXBy ZXNzX3BhZ2UgcnVuIGluIGF0b21pYyBjb250ZXh0Lgo+Cj4gQnV0IGl0IGlzIG5vdCBhIGdvb2Qg aWRlYSB0byBydW4gc2xvdyBjb21wcmVzc2lvbiBpbiBhdG9taWMgY29udGV4dCwgc28sCj4gMSkg YWJvdmUgaXMgcHJlZmVycmVkIHNvbHV0aW9uIHdoaWNoIGlzIHRoZSBpbXBsZW1lbnRhdGlvbiBv ZiB0aGlzIHBhdGNoLgo+Cj4gU2lnbmVkLW9mZi1ieTogQnJ1Y2UgQ2hhbmcgPHl1LmJydWNlLmNo YW5nQGludGVsLmNvbT4KPiBSZXZpZXdlZC1ieTogQnJpYW4gV2VsdHkgPGJyaWFuLndlbHR5QGlu dGVsLmNvbT4KPiBGaXhlczogODk1ZDhlYmVhYTkyNCAoImRybS9pOTE1OiBlcnJvciBjYXB0dXJl IHdpdGggbm8gZ2d0dCBzbG90IikKPiAtLS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9n cHVfZXJyb3IuYyB8IDggKysrKy0tLS0KPiAgMSBmaWxlIGNoYW5nZWQsIDQgaW5zZXJ0aW9ucygr KSwgNCBkZWxldGlvbnMoLSkKPgo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2dwdV9lcnJvci5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9ncHVfZXJyb3IuYwo+ IGluZGV4IDFmMmYyNjZmMjZhZi4uNzExOGVjYjdmMTQ0IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZ3B1X2Vycm9yLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2dwdV9lcnJvci5jCj4gQEAgLTEwMDcsNjcgKzEwMDcsNjcgQEAgaTkxNV9lcnJvcl9v YmplY3RfY3JlYXRlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1LAo+ICAJY29tcHJlc3Mt PndjID0gaTkxNV9nZW1fb2JqZWN0X2lzX2xtZW0odm1hLT5vYmopIHx8Cj4gIAkJICAgICAgIGRy bV9tbV9ub2RlX2FsbG9jYXRlZCgmZ2d0dC0+ZXJyb3JfY2FwdHVyZSk7Cj4gIAo+ICAJcmV0ID0g LUVJTlZBTDsKPiAgCWlmIChkcm1fbW1fbm9kZV9hbGxvY2F0ZWQoJmdndHQtPmVycm9yX2NhcHR1 cmUpKSB7Cj4gIAkJdm9pZCBfX2lvbWVtICpzOwo+ICAJCWRtYV9hZGRyX3QgZG1hOwo+ICAKPiAg CQlmb3JfZWFjaF9zZ3RfZGFkZHIoZG1hLCBpdGVyLCB2bWEtPnBhZ2VzKSB7Cj4gIAkJCWdndHQt PnZtLmluc2VydF9wYWdlKCZnZ3R0LT52bSwgZG1hLCBzbG90LAo+ICAJCQkJCSAgICAgSTkxNV9D QUNIRV9OT05FLCAwKTsKPiAgCj4gIAkJCXMgPSBpb19tYXBwaW5nX21hcF93YygmZ2d0dC0+aW9t YXAsIHNsb3QsIFBBR0VfU0laRSk7Cj4gIAkJCXJldCA9IGNvbXByZXNzX3BhZ2UoY29tcHJlc3Ms ICh2b2lkICBfX2ZvcmNlICopcywgZHN0KTsKPiAgCQkJaW9fbWFwcGluZ191bm1hcChzKTsKPiAg CQkJaWYgKHJldCkKPiAgCQkJCWJyZWFrOwo+ICAJCX0KPiAgCX0gZWxzZSBpZiAoaTkxNV9nZW1f b2JqZWN0X2lzX2xtZW0odm1hLT5vYmopKSB7Cj4gIAkJc3RydWN0IGludGVsX21lbW9yeV9yZWdp b24gKm1lbSA9IHZtYS0+b2JqLT5tbS5yZWdpb247Cj4gIAkJZG1hX2FkZHJfdCBkbWE7Cj4gIAo+ ICAJCWZvcl9lYWNoX3NndF9kYWRkcihkbWEsIGl0ZXIsIHZtYS0+cGFnZXMpIHsKPiAgCQkJdm9p ZCBfX2lvbWVtICpzOwo+ICAKPiAtCQkJcyA9IGlvX21hcHBpbmdfbWFwX2F0b21pY193YygmbWVt LT5pb21hcCwgZG1hKTsKPiArCQkJcyA9IGlvX21hcHBpbmdfbWFwX3djKCZtZW0tPmlvbWFwLCBk bWEsIFBBR0VfU0laRSk7Cj4gIAkJCXJldCA9IGNvbXByZXNzX3BhZ2UoY29tcHJlc3MsICh2b2lk IF9fZm9yY2UgKilzLCBkc3QpOwo+IC0JCQlpb19tYXBwaW5nX3VubWFwX2F0b21pYyhzKTsKPiAr CQkJaW9fbWFwcGluZ191bm1hcChzKTsKPiAgCQkJaWYgKHJldCkKPiAgCQkJCWJyZWFrOwo+ICAJ CX0KPiAgCX0gZWxzZSB7Cj4gIAkJc3RydWN0IHBhZ2UgKnBhZ2U7Cj4gIAo+ICAJCWZvcl9lYWNo X3NndF9wYWdlKHBhZ2UsIGl0ZXIsIHZtYS0+cGFnZXMpIHsKPiAgCQkJdm9pZCAqczsKPiAgCj4g IAkJCWRybV9jbGZsdXNoX3BhZ2VzKCZwYWdlLCAxKTsKPiAgCj4gLQkJCXMgPSBrbWFwX2F0b21p YyhwYWdlKTsKPiArCQkJcyA9IGttYXAocGFnZSk7Cj4gIAkJCXJldCA9IGNvbXByZXNzX3BhZ2Uo Y29tcHJlc3MsIHMsIGRzdCk7Cj4gLQkJCWt1bm1hcF9hdG9taWMocyk7Cj4gKwkJCWt1bm1hcChz KTsKPiAgCj4gIAkJCWRybV9jbGZsdXNoX3BhZ2VzKCZwYWdlLCAxKTsKPiAgCj4gIAkJCWlmIChy ZXQpCj4gIAkJCQlicmVhazsKPiAgCQl9Cj4gIAl9Cj4gIAo+ICAJaWYgKHJldCB8fCBjb21wcmVz c19mbHVzaChjb21wcmVzcywgZHN0KSkgewo+ICAJCXdoaWxlIChkc3QtPnBhZ2VfY291bnQtLSkK PiAgCQkJcG9vbF9mcmVlKCZjb21wcmVzcy0+cG9vbCwgZHN0LT5wYWdlc1tkc3QtPnBhZ2VfY291 bnRdKTsKPiAgCQlrZnJlZShkc3QpOwo+ICAJCWRzdCA9IE5VTEw7Cj4gIAl9Cj4gIAljb21wcmVz c19maW5pc2goY29tcHJlc3MpOwo+ICAKPiAgCXJldHVybiBkc3Q7Cj4gIH0KPiAgCj4gIC8qCj4g ICAqIEdlbmVyYXRlIGEgc2VtaS11bmlxdWUgZXJyb3IgY29kZS4gVGhlIGNvZGUgaXMgbm90IG1l YW50IHRvIGhhdmUgbWVhbmluZywgVGhlCj4gICAqIGNvZGUncyBvbmx5IHB1cnBvc2UgaXMgdG8g dHJ5IHRvIHByZXZlbnQgZmFsc2UgZHVwbGljYXRlZCBidWcgcmVwb3J0cyBieQo+ICAgKiBncm9z c2x5IGVzdGltYXRpbmcgYSBHUFUgZXJyb3Igc3RhdGUuCj4gICAqCj4gICAqIFRPRE8gSWRlYWxs eSwgaGFzaGluZyB0aGUgYmF0Y2hidWZmZXIgd291bGQgYmUgYSB2ZXJ5IG5pY2Ugd2F5IHRvIGRl dGVybWluZQoKRm9yIGZ1dHVyZSByZWZlcmVuY2UsIHBsZWFzZSBqdXN0IHVzZSB0aGUgZGVmYXVs dCBwYXRjaCBjb250ZXh0IHNpemUuCgpCUiwKSmFuaS4KCgotLSAKSmFuaSBOaWt1bGEsIEludGVs IE9wZW4gU291cmNlIEdyYXBoaWNzIENlbnRlcgpfX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0 cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9s aXN0aW5mby9pbnRlbC1nZng= From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-6.7 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS, URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 55D91C432C0 for ; Mon, 18 Nov 2019 15:59:32 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 3244521479 for ; Mon, 18 Nov 2019 15:59:32 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 3244521479 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=linux.intel.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=intel-gfx-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id C30E96E5D6; Mon, 18 Nov 2019 15:59:31 +0000 (UTC) Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by gabe.freedesktop.org (Postfix) with ESMTPS id 4DD246E5D6 for ; Mon, 18 Nov 2019 15:59:30 +0000 (UTC) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga008.jf.intel.com ([10.7.209.65]) by fmsmga104.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 18 Nov 2019 07:59:29 -0800 X-IronPort-AV: E=Sophos;i="5.68,320,1569308400"; d="scan'208";a="200010846" Received: from jnikula-mobl3.fi.intel.com (HELO localhost) ([10.237.66.161]) by orsmga008-auth.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 18 Nov 2019 07:59:27 -0800 From: Jani Nikula To: Bruce Chang , intel-gfx@lists.freedesktop.org In-Reply-To: <20191113231104.24208-1-yu.bruce.chang@intel.com> Organization: Intel Finland Oy - BIC 0357606-4 - Westendinkatu 7, 02160 Espoo References: <20191113231104.24208-1-yu.bruce.chang@intel.com> Date: Mon, 18 Nov 2019 17:59:24 +0200 Message-ID: <875zjhyy3n.fsf@intel.com> MIME-Version: 1.0 Subject: Re: [Intel-gfx] [PATCH] drm/i915: Fix a bug calling sleep function in atomic context X-BeenThere: intel-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Intel graphics driver community testing & development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" Message-ID: <20191118155924.uNdQRPdvoN5uPf12ZiHfjDpDyWshnml4VdlwNMVaYG8@z> T24gV2VkLCAxMyBOb3YgMjAxOSwgQnJ1Y2UgQ2hhbmcgPHl1LmJydWNlLmNoYW5nQGludGVsLmNv bT4gd3JvdGU6Cj4gYmVsb3cgaXMgdGhlIGNhbGwgdHJhY2Ugd2hlbiB0aGlzIGlzc3VlIGlzIGhp dAo+Cj4gPDM+IFsxMTMuMzE2MjQ3XSBCVUc6IHNsZWVwaW5nIGZ1bmN0aW9uIGNhbGxlZCBmcm9t IGludmFsaWQgY29udGV4dCBhdCBtbS9wYWdlX2FsbG9jLmM6NDY1Mwo+IDwzPiBbMTEzLjMxODE5 MF0gaW5fYXRvbWljKCk6IDEsIGlycXNfZGlzYWJsZWQoKTogMCwgcGlkOiA2NzgsIG5hbWU6IGRl YnVnZnNfdGVzdAo+IDw0PiBbMTEzLjMxOTkwMF0gbm8gbG9ja3MgaGVsZCBieSBkZWJ1Z2ZzX3Rl c3QvNjc4Lgo+IDwzPiBbMTEzLjMyMTAwMl0gUHJlZW1wdGlvbiBkaXNhYmxlZCBhdDoKPiA8ND4g WzExMy4zMjExMzBdIFs8ZmZmZmZmZmZhMDI1MDZkND5dIGk5MTVfZXJyb3Jfb2JqZWN0X2NyZWF0 ZSsweDQ5NC8weDYxMCBbaTkxNV0KPiA8ND4gWzExMy4zMjcyNTldIENhbGwgVHJhY2U6Cj4gPDQ+ IFsxMTMuMzI3ODcxXSBkdW1wX3N0YWNrKzB4NjcvMHg5Ygo+IDw0PiBbMTEzLjMyODY4M10gX19f bWlnaHRfc2xlZXArMHgxNjcvMHgyNTAKPiA8ND4gWzExMy4zMjk2MThdIF9fYWxsb2NfcGFnZXNf bm9kZW1hc2srMHgyNmIvMHgxMTEwCj4gPDQ+IFsxMTMuMzMwNzMxXSA/IF9fX3NsYWJfYWxsb2Mu Y29uc3Rwcm9wLjM0KzB4MjFjLzB4MzgwCj4gPDQ+IFsxMTMuMzMxOTQzXSA/IF9fX3NsYWJfYWxs b2MuY29uc3Rwcm9wLjM0KzB4MjFjLzB4MzgwCj4gPDQ+IFsxMTMuMzMzMTY5XSA/IF9fc2xhYl9h bGxvYy5pc3JhLjI4LmNvbnN0cHJvcC4zMysweDRkLzB4NzAKPiA8ND4gWzExMy4zMzQ2MTRdIHBv b2xfYWxsb2MuY29uc3Rwcm9wLjE5KzB4MTQvMHg2MCBbaTkxNV0KPiA8ND4gWzExMy4zMzU5NTFd IGNvbXByZXNzX3BhZ2UrMHg3Yy8weDEwMCBbaTkxNV0KPiA8ND4gWzExMy4zMzcxMTBdIGk5MTVf ZXJyb3Jfb2JqZWN0X2NyZWF0ZSsweDRiZC8weDYxMCBbaTkxNV0KPiA8ND4gWzExMy4zMzg1MTVd IGk5MTVfY2FwdHVyZV9ncHVfc3RhdGUrMHgzODQvMHgxNjgwIFtpOTE1XQo+IDw0PiBbMTEzLjMz OTc3MV0gPyBfX2xvY2tfYWNxdWlyZSsweDRhYy8weDFlOTAKPiA8ND4gWzExMy4zNDA3ODVdID8g X3Jhd19zcGluX2xvY2tfaXJxc2F2ZV9uZXN0ZWQrMHgxLzB4NTAKPiA8ND4gWzExMy4zNDIxMjdd IGk5MTVfZ3B1X2luZm9fb3BlbisweDQ0LzB4NzAgW2k5MTVdCj4gPDQ+IFsxMTMuMzQzMjQzXSBm dWxsX3Byb3h5X29wZW4rMHgxMzkvMHgxYjAKPiA8ND4gWzExMy4zNDQxOTZdID8gb3Blbl9wcm94 eV9vcGVuKzB4YzAvMHhjMAo+IDw0PiBbMTEzLjM0NTE0OV0gZG9fZGVudHJ5X29wZW4rMHgxY2Uv MHgzYTAKPiA8ND4gWzExMy4zNDYwODRdIHBhdGhfb3BlbmF0KzB4NGM5LzB4YWMwCj4gPDQ+IFsx MTMuMzQ2OTY3XSBkb19maWxwX29wZW4rMHg5Ni8weDExMAo+IDw0PiBbMTEzLjM0Nzg0OF0gPyBf X2FsbG9jX2ZkKzB4ZTAvMHgxZjAKPiA8ND4gWzExMy4zNDg3MzZdID8gZG9fc3lzX29wZW4rMHgx YjgvMHgyNTAKPiA8ND4gWzExMy4zNDk2NDddIGRvX3N5c19vcGVuKzB4MWI4LzB4MjUwCj4gPDQ+ IFsxMTMuMzUwNTI2XSBkb19zeXNjYWxsXzY0KzB4NTUvMHgxYzAKPiA8ND4gWzExMy4zNTE0MThd IGVudHJ5X1NZU0NBTExfNjRfYWZ0ZXJfaHdmcmFtZSsweDQ5LzB4YmUKPgo+IEFmdGVyIHRoZSBp b19tYXBwaW5nX21hcF9hdG9taWNfd2Mva21hcF9hdG9taWMsIHRoZSBrZXJuZWwgZW50ZXJzIGF0 b21pYyBjb250ZXh0Cj4gYnV0IGFmdGVyIHRoYXQsIGNvbXByZXNzX3BhZ2UgY2FsbHMgcG9vbF9h bGxvYyB3aXRoIEdGUF9LRVJORUwgZmxhZyB3aGljaCBjYW4KPiBwb3RlbnRpYWxseSBnbyB0byBz bGVlcC4gV2hlbiB0aGUga2VybmVsIGlzIGluIGF0b21pYyBjb250ZXh0LCBzbGVlcGluZyBpcyBu b3QKPiBhbGxvd2VkLiBUaGlzIGlzIHdoeSB0aGlzIGJ1ZyBnb3QgdHJpZ2dlcmVkLgo+Cj4gSW4g b3JkZXIgdG8gZml4IHRoaXMgaXNzdWUsIHdlIGVpdGhlcgo+IAkxKSBub3QgZW50ZXIgaW50byBh dG9taWMgY29udGV4dCwgaS5lLiwgdG8gdXNlIG5vbiBhdG9taWMgdmVyc2lvbiBvZgo+IAkJZnVu Y3Rpb25zIGxpa2UgaW9fbWFwcGluZ19tYXBfd2Mva21hcCwKPiBvcgo+IAkyKSBtYWtlIGNvbXBy ZXNzX3BhZ2UgcnVuIGluIGF0b21pYyBjb250ZXh0Lgo+Cj4gQnV0IGl0IGlzIG5vdCBhIGdvb2Qg aWRlYSB0byBydW4gc2xvdyBjb21wcmVzc2lvbiBpbiBhdG9taWMgY29udGV4dCwgc28sCj4gMSkg YWJvdmUgaXMgcHJlZmVycmVkIHNvbHV0aW9uIHdoaWNoIGlzIHRoZSBpbXBsZW1lbnRhdGlvbiBv ZiB0aGlzIHBhdGNoLgo+Cj4gU2lnbmVkLW9mZi1ieTogQnJ1Y2UgQ2hhbmcgPHl1LmJydWNlLmNo YW5nQGludGVsLmNvbT4KPiBSZXZpZXdlZC1ieTogQnJpYW4gV2VsdHkgPGJyaWFuLndlbHR5QGlu dGVsLmNvbT4KPiBGaXhlczogODk1ZDhlYmVhYTkyNCAoImRybS9pOTE1OiBlcnJvciBjYXB0dXJl IHdpdGggbm8gZ2d0dCBzbG90IikKPiAtLS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9n cHVfZXJyb3IuYyB8IDggKysrKy0tLS0KPiAgMSBmaWxlIGNoYW5nZWQsIDQgaW5zZXJ0aW9ucygr KSwgNCBkZWxldGlvbnMoLSkKPgo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2dwdV9lcnJvci5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9ncHVfZXJyb3IuYwo+ IGluZGV4IDFmMmYyNjZmMjZhZi4uNzExOGVjYjdmMTQ0IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZ3B1X2Vycm9yLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2dwdV9lcnJvci5jCj4gQEAgLTEwMDcsNjcgKzEwMDcsNjcgQEAgaTkxNV9lcnJvcl9v YmplY3RfY3JlYXRlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1LAo+ICAJY29tcHJlc3Mt PndjID0gaTkxNV9nZW1fb2JqZWN0X2lzX2xtZW0odm1hLT5vYmopIHx8Cj4gIAkJICAgICAgIGRy bV9tbV9ub2RlX2FsbG9jYXRlZCgmZ2d0dC0+ZXJyb3JfY2FwdHVyZSk7Cj4gIAo+ICAJcmV0ID0g LUVJTlZBTDsKPiAgCWlmIChkcm1fbW1fbm9kZV9hbGxvY2F0ZWQoJmdndHQtPmVycm9yX2NhcHR1 cmUpKSB7Cj4gIAkJdm9pZCBfX2lvbWVtICpzOwo+ICAJCWRtYV9hZGRyX3QgZG1hOwo+ICAKPiAg CQlmb3JfZWFjaF9zZ3RfZGFkZHIoZG1hLCBpdGVyLCB2bWEtPnBhZ2VzKSB7Cj4gIAkJCWdndHQt PnZtLmluc2VydF9wYWdlKCZnZ3R0LT52bSwgZG1hLCBzbG90LAo+ICAJCQkJCSAgICAgSTkxNV9D QUNIRV9OT05FLCAwKTsKPiAgCj4gIAkJCXMgPSBpb19tYXBwaW5nX21hcF93YygmZ2d0dC0+aW9t YXAsIHNsb3QsIFBBR0VfU0laRSk7Cj4gIAkJCXJldCA9IGNvbXByZXNzX3BhZ2UoY29tcHJlc3Ms ICh2b2lkICBfX2ZvcmNlICopcywgZHN0KTsKPiAgCQkJaW9fbWFwcGluZ191bm1hcChzKTsKPiAg CQkJaWYgKHJldCkKPiAgCQkJCWJyZWFrOwo+ICAJCX0KPiAgCX0gZWxzZSBpZiAoaTkxNV9nZW1f b2JqZWN0X2lzX2xtZW0odm1hLT5vYmopKSB7Cj4gIAkJc3RydWN0IGludGVsX21lbW9yeV9yZWdp b24gKm1lbSA9IHZtYS0+b2JqLT5tbS5yZWdpb247Cj4gIAkJZG1hX2FkZHJfdCBkbWE7Cj4gIAo+ ICAJCWZvcl9lYWNoX3NndF9kYWRkcihkbWEsIGl0ZXIsIHZtYS0+cGFnZXMpIHsKPiAgCQkJdm9p ZCBfX2lvbWVtICpzOwo+ICAKPiAtCQkJcyA9IGlvX21hcHBpbmdfbWFwX2F0b21pY193YygmbWVt LT5pb21hcCwgZG1hKTsKPiArCQkJcyA9IGlvX21hcHBpbmdfbWFwX3djKCZtZW0tPmlvbWFwLCBk bWEsIFBBR0VfU0laRSk7Cj4gIAkJCXJldCA9IGNvbXByZXNzX3BhZ2UoY29tcHJlc3MsICh2b2lk IF9fZm9yY2UgKilzLCBkc3QpOwo+IC0JCQlpb19tYXBwaW5nX3VubWFwX2F0b21pYyhzKTsKPiAr CQkJaW9fbWFwcGluZ191bm1hcChzKTsKPiAgCQkJaWYgKHJldCkKPiAgCQkJCWJyZWFrOwo+ICAJ CX0KPiAgCX0gZWxzZSB7Cj4gIAkJc3RydWN0IHBhZ2UgKnBhZ2U7Cj4gIAo+ICAJCWZvcl9lYWNo X3NndF9wYWdlKHBhZ2UsIGl0ZXIsIHZtYS0+cGFnZXMpIHsKPiAgCQkJdm9pZCAqczsKPiAgCj4g IAkJCWRybV9jbGZsdXNoX3BhZ2VzKCZwYWdlLCAxKTsKPiAgCj4gLQkJCXMgPSBrbWFwX2F0b21p YyhwYWdlKTsKPiArCQkJcyA9IGttYXAocGFnZSk7Cj4gIAkJCXJldCA9IGNvbXByZXNzX3BhZ2Uo Y29tcHJlc3MsIHMsIGRzdCk7Cj4gLQkJCWt1bm1hcF9hdG9taWMocyk7Cj4gKwkJCWt1bm1hcChz KTsKPiAgCj4gIAkJCWRybV9jbGZsdXNoX3BhZ2VzKCZwYWdlLCAxKTsKPiAgCj4gIAkJCWlmIChy ZXQpCj4gIAkJCQlicmVhazsKPiAgCQl9Cj4gIAl9Cj4gIAo+ICAJaWYgKHJldCB8fCBjb21wcmVz c19mbHVzaChjb21wcmVzcywgZHN0KSkgewo+ICAJCXdoaWxlIChkc3QtPnBhZ2VfY291bnQtLSkK PiAgCQkJcG9vbF9mcmVlKCZjb21wcmVzcy0+cG9vbCwgZHN0LT5wYWdlc1tkc3QtPnBhZ2VfY291 bnRdKTsKPiAgCQlrZnJlZShkc3QpOwo+ICAJCWRzdCA9IE5VTEw7Cj4gIAl9Cj4gIAljb21wcmVz c19maW5pc2goY29tcHJlc3MpOwo+ICAKPiAgCXJldHVybiBkc3Q7Cj4gIH0KPiAgCj4gIC8qCj4g ICAqIEdlbmVyYXRlIGEgc2VtaS11bmlxdWUgZXJyb3IgY29kZS4gVGhlIGNvZGUgaXMgbm90IG1l YW50IHRvIGhhdmUgbWVhbmluZywgVGhlCj4gICAqIGNvZGUncyBvbmx5IHB1cnBvc2UgaXMgdG8g dHJ5IHRvIHByZXZlbnQgZmFsc2UgZHVwbGljYXRlZCBidWcgcmVwb3J0cyBieQo+ICAgKiBncm9z c2x5IGVzdGltYXRpbmcgYSBHUFUgZXJyb3Igc3RhdGUuCj4gICAqCj4gICAqIFRPRE8gSWRlYWxs eSwgaGFzaGluZyB0aGUgYmF0Y2hidWZmZXIgd291bGQgYmUgYSB2ZXJ5IG5pY2Ugd2F5IHRvIGRl dGVybWluZQoKRm9yIGZ1dHVyZSByZWZlcmVuY2UsIHBsZWFzZSBqdXN0IHVzZSB0aGUgZGVmYXVs dCBwYXRjaCBjb250ZXh0IHNpemUuCgpCUiwKSmFuaS4KCgotLSAKSmFuaSBOaWt1bGEsIEludGVs IE9wZW4gU291cmNlIEdyYXBoaWNzIENlbnRlcgpfX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0 cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9s aXN0aW5mby9pbnRlbC1nZng=