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 Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 8015BC636D7 for ; Wed, 15 Feb 2023 18:52:28 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 9A8B26B0075; Wed, 15 Feb 2023 13:52:27 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 958DD6B0078; Wed, 15 Feb 2023 13:52:27 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 821A66B007B; Wed, 15 Feb 2023 13:52:27 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0012.hostedemail.com [216.40.44.12]) by kanga.kvack.org (Postfix) with ESMTP id 701A16B0075 for ; Wed, 15 Feb 2023 13:52:27 -0500 (EST) Received: from smtpin10.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id 36673A094A for ; Wed, 15 Feb 2023 18:52:27 +0000 (UTC) X-FDA: 80470421934.10.9F63573 Received: from mga18.intel.com (mga18.intel.com [134.134.136.126]) by imf27.hostedemail.com (Postfix) with ESMTP id D440140006 for ; Wed, 15 Feb 2023 18:52:22 +0000 (UTC) Authentication-Results: imf27.hostedemail.com; dkim=pass header.d=intel.com header.s=Intel header.b=DWrAS5ok; dmarc=pass (policy=none) header.from=intel.com; spf=none (imf27.hostedemail.com: domain of thomas.hellstrom@linux.intel.com has no SPF policy when checking 134.134.136.126) smtp.mailfrom=thomas.hellstrom@linux.intel.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1676487144; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=2uN544P1uu+1SZSvx5fXBpBb6D7hQ8MmQOcZ+uDdN6E=; b=i4c/y7VijS7bu9Jui1G3ZDRJ5iEXvw9S9+7GeCzhPpZgti3170/Tw4ZUpUJMnZ7e6LOetf lHys87oLTkYNs6xGZBCLHsifW1fxErRGWDx2L2m4JTmiQjy6XfT0k7D0vFpdiyLV+VmsMo rNXZoav2Fnwrso24+6yyWKAjLr86E/Y= ARC-Authentication-Results: i=1; imf27.hostedemail.com; dkim=pass header.d=intel.com header.s=Intel header.b=DWrAS5ok; dmarc=pass (policy=none) header.from=intel.com; spf=none (imf27.hostedemail.com: domain of thomas.hellstrom@linux.intel.com has no SPF policy when checking 134.134.136.126) smtp.mailfrom=thomas.hellstrom@linux.intel.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1676487144; a=rsa-sha256; cv=none; b=FeSFXsf6epPmWxA57UjHkHDTzBi5npaL8fQ3OxNlVP1krbMBpi/rruQ9HyMsv00src5QB/ 3nug+wbd6ScYd7M/Mc3Vru+LnTGttGxrLpZFbvV8y9XY7+qtgm2IFJ/B7xBN8+ZJoh5qM+ xBms/guYP34A91VuTtVN70Q6kq1AIkA= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1676487144; x=1708023144; h=message-id:subject:from:to:cc:date:in-reply-to: references:content-transfer-encoding:mime-version; bh=2uN544P1uu+1SZSvx5fXBpBb6D7hQ8MmQOcZ+uDdN6E=; b=DWrAS5okb5g2iDH9X1ph9ekNjWp2NrUqA4oZhc9HRaN3/XmzsIETbrR+ GBK7yt3EqoFCLfOSuafx5L/mgxR0DdnBg0ss++StH3XAcy/FI98rpgsIn 5Q5nPdNHp54ZvzHx8H8QRuSvEGGxCKcWuwZQmXu7+fwC3nE10a8UToGOi TRQCwx2Pxnuyi5rthDAoO/3Q0v5luAWpIBqg10E7ndGlx/qmTB95qif21 uhBZ13gXT2Kh8KT/Z192PSEYwk5Wwg1JJkzrhNuUNCoQ2H+p+2l5ueykG 71QpT9TjFd+EPMSdOqteUPZ+gYAsw6KwwP5YZA1mD+/4idxTUn6Z9Mlhp Q==; X-IronPort-AV: E=McAfee;i="6500,9779,10622"; a="315179458" X-IronPort-AV: E=Sophos;i="5.97,300,1669104000"; d="scan'208";a="315179458" Received: from fmsmga004.fm.intel.com ([10.253.24.48]) by orsmga106.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 15 Feb 2023 10:52:02 -0800 X-IronPort-AV: E=McAfee;i="6500,9779,10622"; a="738475511" X-IronPort-AV: E=Sophos;i="5.97,300,1669104000"; d="scan'208";a="738475511" Received: from auliel-mobl1.ger.corp.intel.com (HELO [10.249.254.14]) ([10.249.254.14]) by fmsmga004-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 15 Feb 2023 10:51:57 -0800 Message-ID: <480561ae7c12993734d8c8d229fa04d3991752fe.camel@linux.intel.com> Subject: Re: [RFC PATCH 02/16] drm/ttm/pool: Fix ttm_pool_alloc error path From: Thomas =?ISO-8859-1?Q?Hellstr=F6m?= To: Christian =?ISO-8859-1?Q?K=F6nig?= , dri-devel@lists.freedesktop.org Cc: Dave Airlie , Madhav Chauhan , Huang Rui , Andrew Morton , "Matthew Wilcox (Oracle)" , Miaohe Lin , David Hildenbrand , Johannes Weiner , Peter Xu , NeilBrown , Daniel Vetter , Dave Hansen , Matthew Auld , linux-graphics-maintainer@vmware.com, linux-mm@kvack.org, intel-gfx@lists.freedesktop.org Date: Wed, 15 Feb 2023 19:51:55 +0100 In-Reply-To: <63d9b7a9-1d03-c434-df77-055969c42517@amd.com> References: <20230215161405.187368-1-thomas.hellstrom@linux.intel.com> <20230215161405.187368-3-thomas.hellstrom@linux.intel.com> <85166ca49f556c9faef7a0d76cb1e826c0014ce6.camel@linux.intel.com> <63d9b7a9-1d03-c434-df77-055969c42517@amd.com> Organization: Intel Sweden AB, Registration Number: 556189-6027 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: base64 User-Agent: Evolution 3.44.4 (3.44.4-2.fc36) MIME-Version: 1.0 X-Rspamd-Queue-Id: D440140006 X-Rspamd-Server: rspam09 X-Rspam-User: X-Stat-Signature: g6dn3cspuweufu64g3d1uxewqajcnj56 X-HE-Tag: 1676487142-172804 X-HE-Meta: U2FsdGVkX1+7OLJDWHReDVSkGrt8VPlT89sqdX/UAIYmL5Z9psahzUguDBCLoiyTSTcD8+LwHPgI2owJMHF+u7nuGLCc38a10K5BKHwj3Z20xPvtEVxrTG+FfPsoTv6DGQTEg9TrSbYNk5SNXZJokbOFMbxWt9JjP7bYgXYMIELDH50SH0VmTstPAio+C5V/H6SU6snXBXXeLGi3d8H559m6p+6hIO3LbOlu5iNkiOUSt/QHwc2ejzuLp0+BEZKDanOqp7Sz1T7bDpziMj/XX6apn64nBR7wvyuvr9YAhV/2AuZcjnSjNP2TizcpBawmI4aG3ycB45JBvLquxG22wliPIe7+EGMrlZWwTLB0vIkRVtcPOHFgy62K/RmRxRc9ddnEfsYFvd05E2cqNXix1TqGbA43FOVBVYQgiZrtf3uJqj//tJNIelhrCmEQvcz40p8PXGxEiz/5UKTK/EqGcLaKr7kaX4v4EZ7Sds83gUVHvklW0kyAfOUjLlmBi3t23lFAl/sfiq/PRltvOY9z6rNu4MCPpc7d2sR7KZqqC8tOQhELjRGLJdtIm9KXRVBR7/FwQC+rLvnX8OuhEeDlHrLUlfraVUWr1/5YHwBJTfK3Evq6jEmStMRLiD7MOKaUr5CTRbRkcX779/4oqWfwRv216kiWHLxMysb0oQrV2pwcgG2Dwl9tZk6len1ZPV14QxTn1k0NXDDU5aMEaLNcO3gAkTs3I93sd1/NOelJEbIVDfxgCkEStd1Eb2EkY+R/ST6808i/UyKP/edXCBHqn7ZDKo2ZzX7CkHHF1j8r84JzI8Si0rZmarqKR3tJNLNECMY/g6fg/yaRi4wAozxNuY8ABBKSmTYB1WFcR0duLJHzQ4QbrSte4DGZ/AQkejI1a2nwZ0ksf6cupvyUEU1jT2aJ6QaTcfSHDSol64rfxvb0OIhiWUQj8SFjlfOxmQX4yyI5zWGKPI1I4Xu3SsO 2h0Ii3u6 O4HrrHonheIMgUPlQjmm0WVneNSLpYpfaLYC923mrMk/r40c1BBHd/USR0qtjJ0nkugltP70dXN21Hp/K44VEXphKhMNeGHdfTUSkobXBofjbx9M2IXr6CwnTWCi92J+dQaNdbRM70cGkMb2WabKMIr+rXB0um37wk6GnMLG9vNUoeZd7vBn8W+25nEZvdSYKGfX01S9WHm9/KEeQ25ZHmvR+EkXGzGZJKBkVSERMW6GJAjlBZcOJLps87KthKvOKLGBCdBAI4DzqcvKQeIniADNhD6644G7+bI4EI+UF7EOxFp5yZqff4YzYVHyyc/Fn3jQB+4HGTtyVpZCOY1hg1PkqgXmIo6yeOmBNuHXzOsR94gx5fD9VFCqjeHBNUilEZpEqDkgcGoERAH+4Xw4/PEzQBUPYv3Zw70RCr9q6jHzYKYw= X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: T24gV2VkLCAyMDIzLTAyLTE1IGF0IDE5OjI2ICswMTAwLCBDaHJpc3RpYW4gS8O2bmlnIHdyb3Rl Ogo+IEFtIDE1LjAyLjIzIHVtIDE5OjAyIHNjaHJpZWIgVGhvbWFzIEhlbGxzdHLDtm06Cj4gPiBP biBXZWQsIDIwMjMtMDItMTUgYXQgMTg6MzEgKzAxMDAsIENocmlzdGlhbiBLw7ZuaWcgd3JvdGU6 Cj4gPiA+IEFtIDE1LjAyLjIzIHVtIDE3OjEzIHNjaHJpZWIgVGhvbWFzIEhlbGxzdHLDtm06Cj4g PiA+ID4gV2hlbiBoaXR0aW5nIGFuIGVycm9yLCB0aGUgZXJyb3IgcGF0aCBmb3Jnb3QgdG8gdW5t YXAgZG1hCj4gPiA+ID4gbWFwcGluZ3MKPiA+ID4gPiBhbmQKPiA+ID4gSSBkb24ndCBzZWUgd2hl cmUgdGhpcyBoYXBwZW5zPwo+ID4gwqBGcm9tIHdoYXQgSSBjYW4gdGVsbCwgdHRtX3Bvb2xfcGFn ZV9hbGxvY2F0ZWQoKSBtYXBzIHRoZSBwYWdlIGZvcgo+ID4gZG1hLAo+ID4gSWYgd2UgbGF0ZXIg aGl0IGFuIGVycm9yLCB0dG1fcG9vbF9mcmVlX3BhZ2UoKSB3aWxsIGxlYWsgdGhlCj4gPiBtYXBw aW5nLgo+IAo+IEFoLCBJIHNlZS4gR29vZCBwb2ludC4KPiAKPiA+IAo+ID4gPiA+IGNvdWxkIGNh bGwgc2V0X3BhZ2VzX3diKCkgb24gYWxyZWFkeSB1bmNhY2hlZCBwYWdlcy4KPiA+ID4gWWVhaCwg YnV0IHdoYXQncyB0aGUgcHJvYmxlbT8KPiA+IFVtbSwgYXQgbGVhc3QgaWYgeW91IHRyeSB0byBz ZXQgV0Mgb24gYW4gYWxyZWFkeSBXQydkIHBhZ2UsIHRoZQo+ID4gc2V0X3BhZ2VzXyBjb2RlIHdp bGwgc3BhbSBkbWVzZyB3aXRoIHdhcm5pbmdzLgo+ID4gTm90IHN1cmUgaWYgc2V0X3BhZ2VzX3di KCkgb24gV0IgcGFnZXMgZG9lcyB0aGUgc2FtZSwgbm9yIGlmIGl0Cj4gPiBpc3N1ZXMgdW5uZWNl c3NhcnkgZ2xvYmFsIGNhY2hlIC8gdGxiIGZsdXNoZXMgb3Igd2hldGhlciB0aGF0IHdpbGwKPiA+ IGNoYW5nZSBpbiB0aGUgZnV0dXJlLgo+ID4gVGhlIHBvaW50IG9mIGF2b2lkaW5nIHRoZSBzZXRf cGFnZXNfd2IoKSB3aGVuIGFscmVhZHkgV0IgaXMgeW91Cj4gPiBkb24ndAo+ID4gaGF2ZSB0byBj aGVjaywgYW5kIHlvdSBkb24ndCBoYXZlIHRvIGNhcmUuCj4gCj4gUGxlYXNlIGp1c3Qgb3BlbiBj b2RlIHRoZSBlcnJvciBoYW5kbGluZyB0aGVuLiBUaGF0IGhlbHBlciBmdW5jdGlvbiAKPiBsb29r cyBob3JyaWJsZSBjb21wbGljYXRlZCB0byBtZS4KPiAKPiBBbHRlcm5hdGl2ZWx5IHdlIGNvdWxk IGhhdmUgYSBmcmVlIGZ1bmN0aW9uIGZvciBhIHJhbmdlIG9mIHBhZ2VzLgoKT0ssIEknbGwgc2Vl IGlmIHRoaXMgaXMgZG9hYmxlIHdpdGhvdXQgYWRkaW5nIGEgdHJlbWVuZG91cyBhbW91bnQgb2YK Y29kZS4KCi9UaG9tYXMKCgo+IAo+IFJlZ2FyZHMsCj4gQ2hyaXN0aWFuLgo+IAo+IAo+ID4gCj4g PiBUaGF0IHNhaWQsIHRoZSBfX3R0bV9wb29sX2ZyZWUoKSBpcyB1c2VkIGFsc28gaW4gdXBjb21p bmcgcGF0Y2hlcy4KPiA+IAo+ID4gL1Rob21hcwo+ID4gCj4gPiAKPiA+ID4gUmVnYXJkcywKPiA+ ID4gQ2hyaXN0aWFuLgo+ID4gPiAKPiA+ID4gPiBGaXggdGhpcyBieSBpbnRyb2R1Y2luZyBhIGNv bW1vbiBfX3R0bV9wb29sX2ZyZWUoKSBmdW5jdGlvbgo+ID4gPiA+IHRoYXQKPiA+ID4gPiBkb2Vz IHRoZSByaWdodCB0aGluZy4KPiA+ID4gPiAKPiA+ID4gPiBGaXhlczogZDA5OWZjOGY1NDBhICgi ZHJtL3R0bTogbmV3IFRUIGJhY2tlbmQgYWxsb2NhdGlvbiBwb29sCj4gPiA+ID4gdjMiKQo+ID4g PiA+IENjOiBDaHJpc3RpYW4gS8O2bmlnIDxjaHJpc3RpYW4ua29lbmlnQGFtZC5jb20+Cj4gPiA+ ID4gQ2M6IERhdmUgQWlybGllIDxhaXJsaWVkQHJlZGhhdC5jb20+Cj4gPiA+ID4gQ2M6IE1hZGhh diBDaGF1aGFuIDxtYWRoYXYuY2hhdWhhbkBhbWQuY29tPgo+ID4gPiA+IENjOiBDaHJpc3RpYW4g S29lbmlnIDxjaHJpc3RpYW4ua29lbmlnQGFtZC5jb20+Cj4gPiA+ID4gQ2M6IEh1YW5nIFJ1aSA8 cmF5Lmh1YW5nQGFtZC5jb20+Cj4gPiA+ID4gQ2M6IGRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3Rv cC5vcmcKPiA+ID4gPiBTaWduZWQtb2ZmLWJ5OiBUaG9tYXMgSGVsbHN0csO2bQo+ID4gPiA+IDx0 aG9tYXMuaGVsbHN0cm9tQGxpbnV4LmludGVsLmNvbT4KPiA+ID4gPiAtLS0KPiA+ID4gPiDCoMKg IGRyaXZlcnMvZ3B1L2RybS90dG0vdHRtX3Bvb2wuYyB8IDc0ICsrKysrKysrKysrKysrKysrKysr Ky0tLQo+ID4gPiA+IC0tLS0tCj4gPiA+ID4gLS0tLS0KPiA+ID4gPiDCoMKgIDEgZmlsZSBjaGFu Z2VkLCA0NSBpbnNlcnRpb25zKCspLCAyOSBkZWxldGlvbnMoLSkKPiA+ID4gPiAKPiA+ID4gPiBk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3R0bS90dG1fcG9vbC5jCj4gPiA+ID4gYi9kcml2 ZXJzL2dwdS9kcm0vdHRtL3R0bV9wb29sLmMKPiA+ID4gPiBpbmRleCBhYTExNmE3YmJhZTMuLjFj Yzc1OTFhOTU0MiAxMDA2NDQKPiA+ID4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9w b29sLmMKPiA+ID4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9wb29sLmMKPiA+ID4g PiBAQCAtMzY3LDYgKzM2NywzOSBAQCBzdGF0aWMgaW50IHR0bV9wb29sX3BhZ2VfYWxsb2NhdGVk KHN0cnVjdAo+ID4gPiA+IHR0bV9wb29sICpwb29sLCB1bnNpZ25lZCBpbnQgb3JkZXIsCj4gPiA+ ID4gwqDCoMKgwqDCoMKgwqDCoMKgcmV0dXJuIDA7Cj4gPiA+ID4gwqDCoCB9Cj4gPiA+ID4gwqDC oCAKPiA+ID4gPiArc3RhdGljIHZvaWQgX190dG1fcG9vbF9mcmVlKHN0cnVjdCB0dG1fcG9vbCAq cG9vbCwgc3RydWN0Cj4gPiA+ID4gdHRtX3R0Cj4gPiA+ID4gKnR0LAo+ID4gPiA+ICvCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHN0cnVjdCBwYWdl ICoqY2FjaGluZ19kaXZpZGUsCj4gPiA+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgZW51bSB0dG1fY2FjaGluZyBpbml0aWFsX2NhY2hpbmcs Cj4gPiA+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqAgZW51bSB0dG1fY2FjaGluZyBzdWJzZXFfY2FjaGluZywKPiA+ID4gPiArwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBwZ29mZl90IG51bV9w YWdlcykKPiA+ID4gPiArewo+ID4gPiA+ICvCoMKgwqDCoMKgwqDCoGVudW0gdHRtX2NhY2hpbmcg Y2FjaGluZyA9IHN1YnNlcV9jYWNoaW5nOwo+ID4gPiA+ICvCoMKgwqDCoMKgwqDCoHN0cnVjdCBw YWdlICoqcGFnZXMgPSB0dC0+cGFnZXM7Cj4gPiA+ID4gK8KgwqDCoMKgwqDCoMKgdW5zaWduZWQg aW50IG9yZGVyOwo+ID4gPiA+ICvCoMKgwqDCoMKgwqDCoHBnb2ZmX3QgaSwgbnI7Cj4gPiA+ID4g Kwo+ID4gPiA+ICvCoMKgwqDCoMKgwqDCoGlmIChwb29sICYmIGNhY2hpbmdfZGl2aWRlKQo+ID4g PiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBjYWNoaW5nID0gaW5pdGlhbF9jYWNo aW5nOwo+ID4gPiA+ICsKPiA+ID4gPiArwqDCoMKgwqDCoMKgwqBmb3IgKGkgPSAwOyBpIDwgbnVt X3BhZ2VzOyBpICs9IG5yLCBwYWdlcyArPSBucikgewo+ID4gPiA+ICvCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqBzdHJ1Y3QgdHRtX3Bvb2xfdHlwZSAqcHQgPSBOVUxMOwo+ID4gPiA+ICsK PiA+ID4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgaWYgKHVubGlrZWx5KGNhY2hp bmdfZGl2aWRlID09IHBhZ2VzKSkKPiA+ID4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoGNhY2hpbmcgPSBzdWJzZXFfY2FjaGluZzsKPiA+ID4gPiArCj4g PiA+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoG9yZGVyID0gdHRtX3Bvb2xfcGFn ZV9vcmRlcihwb29sLCAqcGFnZXMpOwo+ID4gPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqBuciA9ICgxVUwgPDwgb3JkZXIpOwo+ID4gPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqBpZiAodHQtPmRtYV9hZGRyZXNzKQo+ID4gPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgdHRtX3Bvb2xfdW5tYXAocG9vbCwgdHQtCj4gPiA+ ID4gPmRtYV9hZGRyZXNzW2ldLAo+ID4gPiA+IG5yKTsKPiA+ID4gPiArCj4gPiA+ID4gK8KgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHB0ID0gdHRtX3Bvb2xfc2VsZWN0X3R5cGUocG9vbCwg Y2FjaGluZywKPiA+ID4gPiBvcmRlcik7Cj4gPiA+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoGlmIChwdCkKPiA+ID4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoHR0bV9wb29sX3R5cGVfZ2l2ZShwdCwgKnBhZ2VzKTsKPiA+ID4gPiArwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgZWxzZQo+ID4gPiA+ICvCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgdHRtX3Bvb2xfZnJlZV9wYWdlKHBvb2wsIGNh Y2hpbmcsCj4gPiA+ID4gb3JkZXIsCj4gPiA+ID4gKnBhZ2VzKTsKPiA+ID4gPiArwqDCoMKgwqDC oMKgwqB9Cj4gPiA+ID4gK30KPiA+ID4gPiArCj4gPiA+ID4gwqDCoCAvKioKPiA+ID4gPiDCoMKg wqAgKiB0dG1fcG9vbF9hbGxvYyAtIEZpbGwgYSB0dG1fdHQgb2JqZWN0Cj4gPiA+ID4gwqDCoMKg ICoKPiA+ID4gPiBAQCAtMzg2LDggKzQxOSw5IEBAIGludCB0dG1fcG9vbF9hbGxvYyhzdHJ1Y3Qg dHRtX3Bvb2wgKnBvb2wsCj4gPiA+ID4gc3RydWN0IHR0bV90dCAqdHQsCj4gPiA+ID4gwqDCoMKg wqDCoMKgwqDCoMKgZG1hX2FkZHJfdCAqZG1hX2FkZHIgPSB0dC0+ZG1hX2FkZHJlc3M7Cj4gPiA+ ID4gwqDCoMKgwqDCoMKgwqDCoMKgc3RydWN0IHBhZ2UgKipjYWNoaW5nID0gdHQtPnBhZ2VzOwo+ ID4gPiA+IMKgwqDCoMKgwqDCoMKgwqDCoHN0cnVjdCBwYWdlICoqcGFnZXMgPSB0dC0+cGFnZXM7 Cj4gPiA+ID4gK8KgwqDCoMKgwqDCoMKgZW51bSB0dG1fY2FjaGluZyBwYWdlX2NhY2hpbmc7Cj4g PiA+ID4gwqDCoMKgwqDCoMKgwqDCoMKgZ2ZwX3QgZ2ZwX2ZsYWdzID0gR0ZQX1VTRVI7Cj4gPiA+ ID4gLcKgwqDCoMKgwqDCoMKgdW5zaWduZWQgaW50IGksIG9yZGVyOwo+ID4gPiA+ICvCoMKgwqDC oMKgwqDCoHVuc2lnbmVkIGludCBvcmRlcjsKPiA+ID4gPiDCoMKgwqDCoMKgwqDCoMKgwqBzdHJ1 Y3QgcGFnZSAqcDsKPiA+ID4gPiDCoMKgwqDCoMKgwqDCoMKgwqBpbnQgcjsKPiA+ID4gPiDCoMKg IAo+ID4gPiA+IEBAIC00MTAsNiArNDQ0LDcgQEAgaW50IHR0bV9wb29sX2FsbG9jKHN0cnVjdCB0 dG1fcG9vbCAqcG9vbCwKPiA+ID4gPiBzdHJ1Y3QgdHRtX3R0ICp0dCwKPiA+ID4gPiDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoCBvcmRlciA9IG1pbl90KHVuc2lnbmVkIGludCwgb3JkZXIsCj4g PiA+ID4gX19mbHMobnVtX3BhZ2VzKSkpCj4gPiA+ID4gewo+ID4gPiA+IMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqBzdHJ1Y3QgdHRtX3Bvb2xfdHlwZSAqcHQ7Cj4gPiA+ID4gwqDC oCAKPiA+ID4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgcGFnZV9jYWNoaW5nID0g dHQtPmNhY2hpbmc7Cj4gPiA+ID4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHB0 ID0gdHRtX3Bvb2xfc2VsZWN0X3R5cGUocG9vbCwgdHQtPmNhY2hpbmcsCj4gPiA+ID4gb3JkZXIp Owo+ID4gPiA+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBwID0gcHQgPyB0dG1f cG9vbF90eXBlX3Rha2UocHQpIDogTlVMTDsKPiA+ID4gPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgaWYgKHApIHsKPiA+ID4gPiBAQCAtNDE4LDYgKzQ1Myw3IEBAIGludCB0dG1f cG9vbF9hbGxvYyhzdHJ1Y3QgdHRtX3Bvb2wgKnBvb2wsCj4gPiA+ID4gc3RydWN0IHR0bV90dCAq dHQsCj4gPiA+ID4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqBpZiAocikKPiA+ID4gPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBnb3RvIGVycm9yX2ZyZWVfcGFnZTsKPiA+ID4g PiDCoMKgIAo+ID4gPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgY2FjaGluZyA9IHBhZ2VzOwo+ID4gPiA+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgZG8gewo+ID4gPiA+IMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHIgPQo+ID4gPiA+ IHR0bV9wb29sX3BhZ2VfYWxsb2NhdGVkKHBvb2wsCj4gPiA+ID4gb3JkZXIsIHAsCj4gPiA+ID4g wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoCAKPiA+ID4gPiAmZG1hX2FkZHIsCj4gPiA+ID4gQEAgLTQyNiwxNCArNDYyLDE1IEBAIGlu dCB0dG1fcG9vbF9hbGxvYyhzdHJ1Y3QgdHRtX3Bvb2wgKnBvb2wsCj4gPiA+ID4gc3RydWN0IHR0 bV90dCAqdHQsCj4gPiA+ID4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgaWYgKHIpCj4gPiA+ID4gwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoGdvdG8gZXJyb3JfZnJlZV9wYWdlOwo+ID4gPiA+IMKgwqAgCj4gPiA+ID4gK8Kg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgY2FjaGluZyA9IHBhZ2VzOwo+ID4gPiA+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGlmIChudW1fcGFnZXMgPCAoMSA8 PCBvcmRlcikpCj4gPiA+ID4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGJyZWFrOwo+ID4gPiA+ IMKgwqAgCj4gPiA+ID4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgcCA9IHR0bV9wb29sX3R5cGVfdGFrZShwdCk7Cj4gPiA+ ID4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqB9IHdo aWxlIChwKTsKPiA+ID4gPiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoGNhY2hpbmcgPSBwYWdlczsKPiA+ID4gPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgfQo+ID4gPiA+IMKgwqAgCj4gPiA+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoHBhZ2VfY2FjaGluZyA9IHR0bV9jYWNoZWQ7Cj4gPiA+ID4gwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoHdoaWxlIChudW1fcGFnZXMgPj0gKDEgPDwgb3JkZXIpICYmCj4g PiA+ID4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAocCA9 IHR0bV9wb29sX2FsbG9jX3BhZ2UocG9vbCwKPiA+ID4gPiBnZnBfZmxhZ3MsCj4gPiA+ID4gb3Jk ZXIpKSkgewo+ID4gPiA+IMKgwqAgCj4gPiA+ID4gQEAgLTQ0Miw2ICs0NzksNyBAQCBpbnQgdHRt X3Bvb2xfYWxsb2Moc3RydWN0IHR0bV9wb29sICpwb29sLAo+ID4gPiA+IHN0cnVjdCB0dG1fdHQg KnR0LAo+ID4gPiA+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqAgdHQtCj4gPiA+ID4gPiBjYWNoaW5nKTsKPiA+ID4gPiDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqBpZiAocikKPiA+ID4gPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgZ290byBlcnJvcl9mcmVl X3BhZ2U7Cj4gPiA+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgY2FjaGluZyA9IHBhZ2VzOwo+ID4gPiA+IMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgfQo+ID4gPiA+IMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgciA9IHR0bV9wb29sX3Bh Z2VfYWxsb2NhdGVkKHBvb2wsCj4gPiA+ID4gb3JkZXIsIHAsCj4gPiA+ID4gJmRtYV9hZGRyLAo+ ID4gPiA+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgCj4g PiA+ID4gJm51bV9wYWdlcywKPiA+ID4gPiAmcGFnZXMpOwo+ID4gPiA+IEBAIC00NjgsMTUgKzUw NiwxMiBAQCBpbnQgdHRtX3Bvb2xfYWxsb2Moc3RydWN0IHR0bV9wb29sICpwb29sLAo+ID4gPiA+ IHN0cnVjdCB0dG1fdHQgKnR0LAo+ID4gPiA+IMKgwqDCoMKgwqDCoMKgwqDCoHJldHVybiAwOwo+ ID4gPiA+IMKgwqAgCj4gPiA+ID4gwqDCoCBlcnJvcl9mcmVlX3BhZ2U6Cj4gPiA+ID4gLcKgwqDC oMKgwqDCoMKgdHRtX3Bvb2xfZnJlZV9wYWdlKHBvb2wsIHR0LT5jYWNoaW5nLCBvcmRlciwgcCk7 Cj4gPiA+ID4gK8KgwqDCoMKgwqDCoMKgdHRtX3Bvb2xfZnJlZV9wYWdlKHBvb2wsIHBhZ2VfY2Fj aGluZywgb3JkZXIsIHApOwo+ID4gPiA+IMKgwqAgCj4gPiA+ID4gwqDCoCBlcnJvcl9mcmVlX2Fs bDoKPiA+ID4gPiDCoMKgwqDCoMKgwqDCoMKgwqBudW1fcGFnZXMgPSB0dC0+bnVtX3BhZ2VzIC0g bnVtX3BhZ2VzOwo+ID4gPiA+IC3CoMKgwqDCoMKgwqDCoGZvciAoaSA9IDA7IGkgPCBudW1fcGFn ZXM7ICkgewo+ID4gPiA+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBvcmRlciA9IHR0 bV9wb29sX3BhZ2Vfb3JkZXIocG9vbCwgdHQtCj4gPiA+ID4gPnBhZ2VzW2ldKTsKPiA+ID4gPiAt wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgdHRtX3Bvb2xfZnJlZV9wYWdlKHBvb2wsIHR0 LT5jYWNoaW5nLCBvcmRlciwKPiA+ID4gPiB0dC0KPiA+ID4gPiA+IHBhZ2VzW2ldKTsKPiA+ID4g PiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgaSArPSAxIDw8IG9yZGVyOwo+ID4gPiA+ IC3CoMKgwqDCoMKgwqDCoH0KPiA+ID4gPiArwqDCoMKgwqDCoMKgwqBfX3R0bV9wb29sX2ZyZWUo cG9vbCwgdHQsIGNhY2hpbmcsIHR0LT5jYWNoaW5nLAo+ID4gPiA+IHR0bV9jYWNoZWQsCj4gPiA+ ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBudW1fcGFn ZXMpOwo+ID4gPiA+IMKgwqAgCj4gPiA+ID4gwqDCoMKgwqDCoMKgwqDCoMKgcmV0dXJuIHI7Cj4g PiA+ID4gwqDCoCB9Cj4gPiA+ID4gQEAgLTQ5MiwyNyArNTI3LDggQEAgRVhQT1JUX1NZTUJPTCh0 dG1fcG9vbF9hbGxvYyk7Cj4gPiA+ID4gwqDCoMKgICovCj4gPiA+ID4gwqDCoCB2b2lkIHR0bV9w b29sX2ZyZWUoc3RydWN0IHR0bV9wb29sICpwb29sLCBzdHJ1Y3QgdHRtX3R0ICp0dCkKPiA+ID4g PiDCoMKgIHsKPiA+ID4gPiAtwqDCoMKgwqDCoMKgwqB1bnNpZ25lZCBpbnQgaTsKPiA+ID4gPiAt Cj4gPiA+ID4gLcKgwqDCoMKgwqDCoMKgZm9yIChpID0gMDsgaSA8IHR0LT5udW1fcGFnZXM7ICkg ewo+ID4gPiA+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBzdHJ1Y3QgcGFnZSAqcCA9 IHR0LT5wYWdlc1tpXTsKPiA+ID4gPiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgdW5z aWduZWQgaW50IG9yZGVyLCBudW1fcGFnZXM7Cj4gPiA+ID4gLcKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoHN0cnVjdCB0dG1fcG9vbF90eXBlICpwdDsKPiA+ID4gPiAtCj4gPiA+ID4gLcKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoG9yZGVyID0gdHRtX3Bvb2xfcGFnZV9vcmRlcihw b29sLCBwKTsKPiA+ID4gPiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgbnVtX3BhZ2Vz ID0gMVVMTCA8PCBvcmRlcjsKPiA+ID4gPiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg aWYgKHR0LT5kbWFfYWRkcmVzcykKPiA+ID4gPiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoHR0bV9wb29sX3VubWFwKHBvb2wsIHR0LQo+ID4gPiA+ID5kbWFf YWRkcmVzc1tpXSwKPiA+ID4gPiBudW1fcGFnZXMpOwo+ID4gPiA+IC0KPiA+ID4gPiAtwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgcHQgPSB0dG1fcG9vbF9zZWxlY3RfdHlwZShwb29sLCB0 dC0+Y2FjaGluZywKPiA+ID4gPiBvcmRlcik7Cj4gPiA+ID4gLcKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoGlmIChwdCkKPiA+ID4gPiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoHR0bV9wb29sX3R5cGVfZ2l2ZShwdCwgdHQtPnBhZ2VzW2ldKTsKPiA+ ID4gPiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgZWxzZQo+ID4gPiA+IC3CoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgdHRtX3Bvb2xfZnJlZV9wYWdl KHBvb2wsIHR0LT5jYWNoaW5nLAo+ID4gPiA+IG9yZGVyLAo+ID4gPiA+IC3CoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgIHR0LT5wYWdlc1tpXSk7Cj4gPiA+ID4gLQo+ID4gPiA+IC3CoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqBpICs9IG51bV9wYWdlczsKPiA+ID4gPiAtwqDCoMKgwqDCoMKg wqB9Cj4gPiA+ID4gK8KgwqDCoMKgwqDCoMKgX190dG1fcG9vbF9mcmVlKHBvb2wsIHR0LCBOVUxM LCB0dC0+Y2FjaGluZywgdHQtCj4gPiA+ID4gPmNhY2hpbmcsCj4gPiA+ID4gK8KgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqB0dC0+bnVtX3BhZ2VzKTsKPiA+ID4g PiDCoMKgIAo+ID4gPiA+IMKgwqDCoMKgwqDCoMKgwqDCoHdoaWxlIChhdG9taWNfbG9uZ19yZWFk KCZhbGxvY2F0ZWRfcGFnZXMpID4KPiA+ID4gPiBwYWdlX3Bvb2xfc2l6ZSkKPiA+ID4gPiDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgdHRtX3Bvb2xfc2hyaW5rKCk7Cj4gCgo=