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 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 smtp.lore.kernel.org (Postfix) with ESMTPS id 85165CD4F35 for ; Tue, 12 May 2026 08:24:50 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id CFD7810E9AD; Tue, 12 May 2026 08:24:49 +0000 (UTC) Authentication-Results: gabe.freedesktop.org; dkim=pass (2048-bit key; unprotected) header.d=intel.com header.i=@intel.com header.b="CjAW8cWG"; dkim-atps=neutral Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.20]) by gabe.freedesktop.org (Postfix) with ESMTPS id A2CC310E9A7; Tue, 12 May 2026 08:24:48 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1778574289; x=1810110289; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=bQWecHFcBq87ss3OM4J3cujuOBJnVEKB2A85X2D8cPQ=; b=CjAW8cWGKV7bQiFhqJ3RRqQS/5qQ13t663922kmUV62S1Q/MrGafo676 +VD6NNyLkZuNaEZyouhWmxSKbknL5S9ARvwpIVaeIUCxx2M1WDvvsfpEw tqcnxkDlDmHmrEpbxtYbtWBgk/DXjRyjwOdb6n7RyBBEgoXMkFKFkhswe p4thx6nu6rOCgKR59LB6+4AHzRp/Q/Re4OrDRvQUq4wmUIARr358YjG3p JCs+donE/MO2wHaFOKUmpWLfQtmcOPuYnlMu+Bb+cy6AbbAkWeJzIRiKo xhYtcijdw+e1YalFvr7pD5AzlfOrue2WplRN03kQAoLKI67JSY/p1sSjk w==; X-CSE-ConnectionGUID: MNdtuOsRRY2lFRlJ7RwJww== X-CSE-MsgGUID: w9xGZjv3TWutlKB1BqZMmw== X-IronPort-AV: E=McAfee;i="6800,10657,11783"; a="79194991" X-IronPort-AV: E=Sophos;i="6.23,230,1770624000"; d="scan'208";a="79194991" Received: from orviesa007.jf.intel.com ([10.64.159.147]) by orvoesa112.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 12 May 2026 01:24:41 -0700 X-CSE-ConnectionGUID: LA4LHEACTz+9OQDvbrTa0A== X-CSE-MsgGUID: YxUQF0KnQniSo+AebcpnSQ== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.23,230,1770624000"; d="scan'208";a="237945547" Received: from vpanait-mobl.ger.corp.intel.com (HELO fedora) ([10.245.245.172]) by orviesa007-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 12 May 2026 01:24:34 -0700 From: =?UTF-8?q?Thomas=20Hellstr=C3=B6m?= To: intel-xe@lists.freedesktop.org Cc: =?UTF-8?q?Thomas=20Hellstr=C3=B6m?= , Natalie Vock , Johannes Weiner , Tejun Heo , =?UTF-8?q?Michal=20Koutn=C3=BD?= , cgroups@vger.kernel.org, Huang Rui , Matthew Brost , Matthew Auld , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , Simona Vetter , David Airlie , =?UTF-8?q?Christian=20K=C3=B6nig?= , Alex Deucher , Rodrigo Vivi , dri-devel@lists.freedesktop.org, amd-gfx@lists.freedesktop.org, linux-kernel@vger.kernel.org Subject: [PATCH v4 2/5] cgroup/dmem: Add reclaim callback for lowering max below current usage Date: Tue, 12 May 2026 10:24:03 +0200 Message-ID: <20260512082406.44470-3-thomas.hellstrom@linux.intel.com> X-Mailer: git-send-email 2.54.0 In-Reply-To: <20260512082406.44470-1-thomas.hellstrom@linux.intel.com> References: <20260512082406.44470-1-thomas.hellstrom@linux.intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" QWRkIGFuIG9wdGlvbmFsIHJlY2xhaW0gY2FsbGJhY2sgdG8gc3RydWN0IGRtZW1fY2dyb3VwX3Jl Z2lvbi4gV2hlbgpkbWVtLm1heCBpcyBzZXQgYmVsb3cgdGhlIGN1cnJlbnQgdXNhZ2Ugb2YgYSBj Z3JvdXAgcG9vbCwgdGhlIG5ldyBsaW1pdAppcyBhcHBsaWVkIGltbWVkaWF0ZWx5IChzbyB0aGF0 IGNvbmN1cnJlbnQgYWxsb2NhdGlvbnMgYXJlIHRocm90dGxlZAp3aGlsZSByZWNsYWltIGlzIGlu IHByb2dyZXNzKSBhbmQgdGhlbiB0aGUgZHJpdmVyIGlzIGFza2VkIHRvIGV2aWN0Cm1lbW9yeSB0 byBicmluZyB1c2FnZSBiYWNrIGJlbG93IHRoZSBsaW1pdC4KClJlY2xhaW0gaXMgYXR0ZW1wdGVk IHVwIHRvIGEgYm91bmRlZCBudW1iZXIgb2YgdGltZXMuIE5vIGVycm9yIGlzCnJldHVybmVkIHRv IHVzZXJzcGFjZSBpZiB1c2FnZSByZW1haW5zIGFib3ZlIHRoZSBsaW1pdCBhZnRlciByZWNsYWlt LAphbmQgYSBwZW5kaW5nIHNpZ25hbCB3aWxsIGFib3J0IHRoZSByZWNsYWltIGxvb3AgZWFybHku IFRoaXMgbWF0Y2hlcwp0aGUgYmVoYXZpb3Igb2YgbWVtb3J5Lm1heCBpbiB0aGUgbWVtb3J5IGNn cm91cCBjb250cm9sbGVyLgoKQWxzbyBob25vciBPX05PTkJMT0NLIHNvIHRoYXQgaWYgdGhhdCBm bGFnIGlzIHNldCBkdXJpbmcgdGhlCm1heCB2YWx1ZSB3cml0ZSwgbm8gcmVjbGFpbSBpcyBpbml0 aWF0ZWQuIFRoZSBpZGVhIGlzIHRvIGF2b2lkCmNoYXJnaW5nIHRoZSByZWNsYWltIGNvc3QgdG8g dGhlIHdyaXRlciBvZiB0aGUgbWF4IHZhbHVlLgoKdjI6Ci0gV3JpdGUgbWF4IGJlZm9yZSByZWNs YWltIGlzIGF0dGVtcHRlZCAoTWFhcnRlbikKLSBMZXQgc2lnbmFscyBhYm9ydCB0aGUgcmVjbGFp bSB3aXRob3V0IGVycm9yIChNYWFydGVuKQotIElmIGEgbmV3IG1heCB2YWx1ZSBpcyB3cml0dGVu IHdpdGggdGhlIE9fTk9OQkxPQ0sgZmxhZywKICByZWNsYWltIGlzIG5vdCBhdHRlbXB0ZWQgKE1h YXJ0ZW4pCi0gRXh0cmFjdCByZWdpb24gZnJvbSB0aGUgcG9vbCBwYXJhbWV0ZXIgcmF0aGVyIHRo YW4KICBwYXNzaW5nIGl0IGV4cGxpY2l0bHkgdG8gc2V0X3Jlc291cmNlX3h4eCgpLgp2MzoKLSBV c2UgYW4gcndzZW0gdG8gcHJvdGVjdCByZWNsYWltIGNhbGxiYWNrIHJlZ2lzdHJhdGlvbiBhbmQK ICByZWdpb24gdW5yZWdpc3RlciBhZ2FpbnN0IGNvbmN1cnJlbnQgcmVjbGFpbSBpbnZvY2F0aW9u cywKICBlbnN1cmluZyByZWNsYWltX3ByaXYgaXMgdmlzaWJsZSB3aGVuIHRoZSBjYWxsYmFjayBp cwogIGludm9rZWQuIChTYXNoaWtvLWJvdCkKCkFzc2lzdGVkLWJ5OiBHaXRIdWJfQ29waWxvdDpj bGF1ZGUtc29ubmV0LTQuNgpTaWduZWQtb2ZmLWJ5OiBUaG9tYXMgSGVsbHN0csO2bSA8dGhvbWFz LmhlbGxzdHJvbUBsaW51eC5pbnRlbC5jb20+Ci0tLQogaW5jbHVkZS9saW51eC9jZ3JvdXBfZG1l bS5oIHwgIDI0ICsrKysrKysrCiBrZXJuZWwvY2dyb3VwL2RtZW0uYyAgICAgICAgfCAxMDYgKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tCiAyIGZpbGVzIGNoYW5nZWQsIDEyMSBp bnNlcnRpb25zKCspLCA5IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgv Y2dyb3VwX2RtZW0uaCBiL2luY2x1ZGUvbGludXgvY2dyb3VwX2RtZW0uaAppbmRleCBkZDQ4Njlm MWQ3MzYuLmMzYmNlMjFjYmU4MCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC9jZ3JvdXBfZG1l bS5oCisrKyBiL2luY2x1ZGUvbGludXgvY2dyb3VwX2RtZW0uaApAQCAtMTQsNiArMTQsMjEgQEAg c3RydWN0IGRtZW1fY2dyb3VwX3Bvb2xfc3RhdGU7CiAvKiBPcGFxdWUgZGVmaW5pdGlvbiBvZiBh IGNncm91cCByZWdpb24sIHVzZWQgaW50ZXJuYWxseSAqLwogc3RydWN0IGRtZW1fY2dyb3VwX3Jl Z2lvbjsKIAorLyoqCisgKiB0eXBlZGVmIGRtZW1fY2dyb3VwX3JlY2xhaW1fZm5fdCAtIFJlY2xh aW0gY2FsbGJhY2sgZm9yIGEgZG1lbSBjZ3JvdXAgcmVnaW9uLgorICogQHBvb2w6IFRoZSBjZ3Jv dXAgcG9vbCB0aGF0IG5lZWRzIG1lbW9yeSByZWNsYWltZWQuCisgKiBAdGFyZ2V0X2J5dGVzOiBN aW5pbXVtIG51bWJlciBvZiBieXRlcyB0aGUgZHJpdmVyIHNob3VsZCBhdHRlbXB0IHRvIGZyZWUu CisgKiBAcHJpdjogUHJpdmF0ZSBkYXRhIHJlZ2lzdGVyZWQgd2l0aCBkbWVtX2Nncm91cF9yZWdp b25fc2V0X3JlY2xhaW0oKS4KKyAqCisgKiBDYWxsZWQgYnkgdGhlIGRtZW0gY2dyb3VwIGNvbnRy b2xsZXIgd2hlbiBkbWVtLm1heCBpcyBzZXQgYmVsb3cgdGhlIGN1cnJlbnQKKyAqIHVzYWdlIG9m IEBwb29sLiBUaGUgZHJpdmVyIHNob3VsZCBldmljdCBhdCBsZWFzdCBAdGFyZ2V0X2J5dGVzIG9m IG1lbW9yeQorICogZnJvbSBAcG9vbC4gTWF5IGJlIGNhbGxlZCBtdWx0aXBsZSB0aW1lcyBpZiB1 c2FnZSByZW1haW5zIGFib3ZlIHRoZSBsaW1pdC4KKyAqCisgKiBSZXR1cm46IDAgaWYgcHJvZ3Jl c3Mgd2FzIG1hZGUsIG5lZ2F0aXZlIGVycm9yIGNvZGUgb3RoZXJ3aXNlLgorICovCit0eXBlZGVm IGludCAoKmRtZW1fY2dyb3VwX3JlY2xhaW1fZm5fdCkoc3RydWN0IGRtZW1fY2dyb3VwX3Bvb2xf c3RhdGUgKnBvb2wsCisJCQkJCXU2NCB0YXJnZXRfYnl0ZXMsIHZvaWQgKnByaXYpOworCiAjaWYg SVNfRU5BQkxFRChDT05GSUdfQ0dST1VQX0RNRU0pCiBzdHJ1Y3QgZG1lbV9jZ3JvdXBfcmVnaW9u ICpkbWVtX2Nncm91cF9yZWdpc3Rlcl9yZWdpb24odTY0IHNpemUsIGNvbnN0IGNoYXIgKm5hbWVf Zm10LCAuLi4pIF9fcHJpbnRmKDIsMyk7CiB2b2lkIGRtZW1fY2dyb3VwX3VucmVnaXN0ZXJfcmVn aW9uKHN0cnVjdCBkbWVtX2Nncm91cF9yZWdpb24gKnJlZ2lvbik7CkBAIC0yNiw2ICs0MSw5IEBA IGJvb2wgZG1lbV9jZ3JvdXBfc3RhdGVfZXZpY3RfdmFsdWFibGUoc3RydWN0IGRtZW1fY2dyb3Vw X3Bvb2xfc3RhdGUgKmxpbWl0X3Bvb2wsCiAJCQkJICAgICAgYm9vbCBpZ25vcmVfbG93LCBib29s ICpyZXRfaGl0X2xvdyk7CiAKIHZvaWQgZG1lbV9jZ3JvdXBfcG9vbF9zdGF0ZV9wdXQoc3RydWN0 IGRtZW1fY2dyb3VwX3Bvb2xfc3RhdGUgKnBvb2wpOwordm9pZCBkbWVtX2Nncm91cF9yZWdpb25f c2V0X3JlY2xhaW0oc3RydWN0IGRtZW1fY2dyb3VwX3JlZ2lvbiAqcmVnaW9uLAorCQkJCSAgICBk bWVtX2Nncm91cF9yZWNsYWltX2ZuX3QgcmVjbGFpbSwKKwkJCQkgICAgdm9pZCAqcHJpdik7CiAj ZWxzZQogc3RhdGljIGlubGluZSBfX3ByaW50ZigyLDMpIHN0cnVjdCBkbWVtX2Nncm91cF9yZWdp b24gKgogZG1lbV9jZ3JvdXBfcmVnaXN0ZXJfcmVnaW9uKHU2NCBzaXplLCBjb25zdCBjaGFyICpu YW1lX2ZtdCwgLi4uKQpAQCAtNjIsNSArODAsMTEgQEAgYm9vbCBkbWVtX2Nncm91cF9zdGF0ZV9l dmljdF92YWx1YWJsZShzdHJ1Y3QgZG1lbV9jZ3JvdXBfcG9vbF9zdGF0ZSAqbGltaXRfcG9vbCwK IHN0YXRpYyBpbmxpbmUgdm9pZCBkbWVtX2Nncm91cF9wb29sX3N0YXRlX3B1dChzdHJ1Y3QgZG1l bV9jZ3JvdXBfcG9vbF9zdGF0ZSAqcG9vbCkKIHsgfQogCitzdGF0aWMgaW5saW5lIHZvaWQKK2Rt ZW1fY2dyb3VwX3JlZ2lvbl9zZXRfcmVjbGFpbShzdHJ1Y3QgZG1lbV9jZ3JvdXBfcmVnaW9uICpy ZWdpb24sCisJCQkgICAgICAgZG1lbV9jZ3JvdXBfcmVjbGFpbV9mbl90IHJlY2xhaW0sCisJCQkg ICAgICAgdm9pZCAqcHJpdikKK3sgfQorCiAjZW5kaWYKICNlbmRpZgkvKiBfQ0dST1VQX0RNRU1f SCAqLwpkaWZmIC0tZ2l0IGEva2VybmVsL2Nncm91cC9kbWVtLmMgYi9rZXJuZWwvY2dyb3VwL2Rt ZW0uYwppbmRleCAxYWIxZmI0N2YyNzEuLjVmZDVhMTYzNGQyMSAxMDA2NDQKLS0tIGEva2VybmVs L2Nncm91cC9kbWVtLmMKKysrIGIva2VybmVsL2Nncm91cC9kbWVtLmMKQEAgLTUxLDYgKzUxLDIw IEBAIHN0cnVjdCBkbWVtX2Nncm91cF9yZWdpb24gewogCSAqIE5vIG5ldyBwb29scyBzaG91bGQg YmUgYWRkZWQgdG8gdGhlIHJlZ2lvbiBhZnRlcndhcmRzLgogCSAqLwogCWJvb2wgdW5yZWdpc3Rl cmVkOworCisJLyoqCisJICogQHJlY2xhaW06IE9wdGlvbmFsIGNhbGxiYWNrIGludm9rZWQgd2hl biBkbWVtLm1heCBpcyBzZXQgYmVsb3cgdGhlCisJICogY3VycmVudCB1c2FnZSBvZiBhIHBvb2wu IFRoZSBkcml2ZXIgc2hvdWxkIGF0dGVtcHQgdG8gZnJlZSBhdCBsZWFzdAorCSAqIEB0YXJnZXRf Ynl0ZXMgZnJvbSBAcG9vbC4gTWF5IGJlIGNhbGxlZCBtdWx0aXBsZSB0aW1lcyBpZiB1c2FnZQor CSAqIHJlbWFpbnMgYWJvdmUgdGhlIGxpbWl0IGFmdGVyIHJldHVybmluZy4KKwkgKi8KKwlkbWVt X2Nncm91cF9yZWNsYWltX2ZuX3QgcmVjbGFpbTsKKworCS8qKiBAcmVjbGFpbV9wcml2OiBQcml2 YXRlIGRhdGEgcGFzc2VkIHRvIEByZWNsYWltLiAqLworCXZvaWQgKnJlY2xhaW1fcHJpdjsKKwor CS8qKiBAdW5yZWdpc3Rlcl9zZW06IFByb3RlY3QgQHJlY2xhaW0gd2hpbGUgaXQgaXMgcnVubmlu Zy4gKi8KKwlzdHJ1Y3Qgcndfc2VtYXBob3JlIHVucmVnaXN0ZXJfc2VtOwogfTsKIAogc3RydWN0 IGRtZW1jZ19zdGF0ZSB7CkBAIC0xNDUsMjEgKzE1OSw1OCBAQCBzdGF0aWMgdm9pZCBmcmVlX2Nn X3Bvb2woc3RydWN0IGRtZW1fY2dyb3VwX3Bvb2xfc3RhdGUgKnBvb2wpCiB9CiAKIHN0YXRpYyB2 b2lkCi1zZXRfcmVzb3VyY2VfbWluKHN0cnVjdCBkbWVtX2Nncm91cF9wb29sX3N0YXRlICpwb29s LCB1NjQgdmFsKQorc2V0X3Jlc291cmNlX21pbihzdHJ1Y3QgZG1lbV9jZ3JvdXBfcG9vbF9zdGF0 ZSAqcG9vbCwgdTY0IHZhbCwgYm9vbCBub25ibG9jaykKIHsKIAlwYWdlX2NvdW50ZXJfc2V0X21p bigmcG9vbC0+Y250LCB2YWwpOwogfQogCiBzdGF0aWMgdm9pZAotc2V0X3Jlc291cmNlX2xvdyhz dHJ1Y3QgZG1lbV9jZ3JvdXBfcG9vbF9zdGF0ZSAqcG9vbCwgdTY0IHZhbCkKK3NldF9yZXNvdXJj ZV9sb3coc3RydWN0IGRtZW1fY2dyb3VwX3Bvb2xfc3RhdGUgKnBvb2wsIHU2NCB2YWwsIGJvb2wg bm9uYmxvY2spCiB7CiAJcGFnZV9jb3VudGVyX3NldF9sb3coJnBvb2wtPmNudCwgdmFsKTsKIH0K IAogc3RhdGljIHZvaWQKLXNldF9yZXNvdXJjZV9tYXgoc3RydWN0IGRtZW1fY2dyb3VwX3Bvb2xf c3RhdGUgKnBvb2wsIHU2NCB2YWwpCitzZXRfcmVzb3VyY2VfbWF4KHN0cnVjdCBkbWVtX2Nncm91 cF9wb29sX3N0YXRlICpwb29sLCB1NjQgdmFsLCBib29sIG5vbmJsb2NrKQogewotCXBhZ2VfY291 bnRlcl9zZXRfbWF4KCZwb29sLT5jbnQsIHZhbCk7CisJc3RydWN0IGRtZW1fY2dyb3VwX3JlZ2lv biAqcmVnaW9uID0gcG9vbC0+cmVnaW9uOworCisJLyoKKwkgKiBBbHdheXMgdXBkYXRlIHRoZSBs aW1pdCwgZXZlbiBpZiB1c2FnZSBjdXJyZW50bHkgZXhjZWVkcyBpdC4KKwkgKiBDb25jdXJyZW50 IGFsbG9jYXRpb25zIHdpbGwgYmUgdGhyb3R0bGVkIGFnYWluc3QgdGhlIG5ldyBsaW1pdAorCSAq IHdoaWxlIHJlY2xhaW0gaXMgaW4gcHJvZ3Jlc3MuCisJICovCisJeGNoZygmcG9vbC0+Y250Lm1h eCwgKHVuc2lnbmVkIGxvbmcpdmFsKTsKKworCWlmIChub25ibG9jayB8fCAhUkVBRF9PTkNFKHJl Z2lvbi0+cmVjbGFpbSkpCisJCXJldHVybjsKKworCWZvciAoaW50IHJldHJpZXMgPSA1OyByZXRy aWVzID4gMDsgcmV0cmllcy0tKSB7CisJCXU2NCB1c2FnZSA9IHBhZ2VfY291bnRlcl9yZWFkKCZw b29sLT5jbnQpOworCQlpbnQgcmV0OworCisJCWlmICh1c2FnZSA8PSB2YWwpCisJCQlicmVhazsK KworCQlpZiAoc2lnbmFsX3BlbmRpbmcoY3VycmVudCkpCisJCQlicmVhazsKKworCQkvKiBCbG9j ayB1bnJlZ2lzdGVyIHVudGlsIHRoZSByZWNsYWltIGNhbGxiYWNrIGNvbXBsZXRlcy4gKi8KKwkJ aWYgKGRvd25fcmVhZF9pbnRlcnJ1cHRpYmxlKCZyZWdpb24tPnVucmVnaXN0ZXJfc2VtKSkKKwkJ CWJyZWFrOworCisJCWlmICghcmVnaW9uLT5yZWNsYWltKSB7CisJCQl1cF9yZWFkKCZyZWdpb24t PnVucmVnaXN0ZXJfc2VtKTsKKwkJCWJyZWFrOworCQl9CisKKwkJcmV0ID0gcmVnaW9uLT5yZWNs YWltKHBvb2wsIHVzYWdlIC0gdmFsLCByZWdpb24tPnJlY2xhaW1fcHJpdik7CisJCXVwX3JlYWQo JnJlZ2lvbi0+dW5yZWdpc3Rlcl9zZW0pOworCQlpZiAocmV0KQorCQkJYnJlYWs7CisKKwkJY29u ZF9yZXNjaGVkKCk7CisJfQogfQogCiBzdGF0aWMgdTY0IGdldF9yZXNvdXJjZV9sb3coc3RydWN0 IGRtZW1fY2dyb3VwX3Bvb2xfc3RhdGUgKnBvb2wpCkBAIC0xODQsOSArMjM1LDkgQEAgc3RhdGlj IHU2NCBnZXRfcmVzb3VyY2VfY3VycmVudChzdHJ1Y3QgZG1lbV9jZ3JvdXBfcG9vbF9zdGF0ZSAq cG9vbCkKIAogc3RhdGljIHZvaWQgcmVzZXRfYWxsX3Jlc291cmNlX2xpbWl0cyhzdHJ1Y3QgZG1l bV9jZ3JvdXBfcG9vbF9zdGF0ZSAqcnBvb2wpCiB7Ci0Jc2V0X3Jlc291cmNlX21pbihycG9vbCwg MCk7Ci0Jc2V0X3Jlc291cmNlX2xvdyhycG9vbCwgMCk7Ci0Jc2V0X3Jlc291cmNlX21heChycG9v bCwgUEFHRV9DT1VOVEVSX01BWCk7CisJc2V0X3Jlc291cmNlX21pbihycG9vbCwgMCwgZmFsc2Up OworCXNldF9yZXNvdXJjZV9sb3cocnBvb2wsIDAsIGZhbHNlKTsKKwlzZXRfcmVzb3VyY2VfbWF4 KHJwb29sLCBQQUdFX0NPVU5URVJfTUFYLCBmYWxzZSk7CiB9CiAKIHN0YXRpYyB2b2lkIGRtZW1j c19vZmZsaW5lKHN0cnVjdCBjZ3JvdXBfc3Vic3lzX3N0YXRlICpjc3MpCkBAIC00OTEsNiArNTQy LDEyIEBAIHZvaWQgZG1lbV9jZ3JvdXBfdW5yZWdpc3Rlcl9yZWdpb24oc3RydWN0IGRtZW1fY2dy b3VwX3JlZ2lvbiAqcmVnaW9uKQogCXJlZ2lvbi0+dW5yZWdpc3RlcmVkID0gdHJ1ZTsKIAlzcGlu X3VubG9jaygmZG1lbWNnX2xvY2spOwogCisJLyogRW5zdXJlIGFsbCByZWNsYWltKCkgY2FsbGJh Y2tzIGhhdmUgZmluaXNoZWQuICovCisJZG93bl93cml0ZSgmcmVnaW9uLT51bnJlZ2lzdGVyX3Nl bSk7CisJLyogUGFpcnMgd2l0aCBSRUFEX09OQ0UoKSBpbiBzZXRfcmVzb3VyY2VfbWF4KCkgKi8K KwlXUklURV9PTkNFKHJlZ2lvbi0+cmVjbGFpbSwgTlVMTCk7CisJdXBfd3JpdGUoJnJlZ2lvbi0+ dW5yZWdpc3Rlcl9zZW0pOworCiAJa3JlZl9wdXQoJnJlZ2lvbi0+cmVmLCBkbWVtY2dfZnJlZV9y ZWdpb24pOwogfQogRVhQT1JUX1NZTUJPTF9HUEwoZG1lbV9jZ3JvdXBfdW5yZWdpc3Rlcl9yZWdp b24pOwpAQCAtNTMwLDYgKzU4Nyw3IEBAIHN0cnVjdCBkbWVtX2Nncm91cF9yZWdpb24gKmRtZW1f Y2dyb3VwX3JlZ2lzdGVyX3JlZ2lvbih1NjQgc2l6ZSwgY29uc3QgY2hhciAqZm10CiAJSU5JVF9M SVNUX0hFQUQoJnJldC0+cG9vbHMpOwogCXJldC0+bmFtZSA9IHJlZ2lvbl9uYW1lOwogCXJldC0+ c2l6ZSA9IHNpemU7CisJaW5pdF9yd3NlbSgmcmV0LT51bnJlZ2lzdGVyX3NlbSk7CiAJa3JlZl9p bml0KCZyZXQtPnJlZik7CiAKIAlzcGluX2xvY2soJmRtZW1jZ19sb2NrKTsKQEAgLTU2OCw2ICs2 MjYsMzQgQEAgdm9pZCBkbWVtX2Nncm91cF9wb29sX3N0YXRlX3B1dChzdHJ1Y3QgZG1lbV9jZ3Jv dXBfcG9vbF9zdGF0ZSAqcG9vbCkKIH0KIEVYUE9SVF9TWU1CT0xfR1BMKGRtZW1fY2dyb3VwX3Bv b2xfc3RhdGVfcHV0KTsKIAorLyoqCisgKiBkbWVtX2Nncm91cF9yZWdpb25fc2V0X3JlY2xhaW0o KSAtIFJlZ2lzdGVyIGEgcmVjbGFpbSBjYWxsYmFjayBvbiBhIHJlZ2lvbi4KKyAqIEByZWdpb246 IFRoZSByZWdpb24gdG8gcmVnaXN0ZXIgdGhlIGNhbGxiYWNrIGZvci4KKyAqIEByZWNsYWltOiBD YWxsYmFjayB0byBpbnZva2Ugd2hlbiBkbWVtLm1heCBpcyBzZXQgYmVsb3cgY3VycmVudCB1c2Fn ZS4KKyAqICAgICAgICAgICBDYWxsZWQgd2l0aCB0aGUgcG9vbCB0aGF0IG5lZWRzIHJlY2xhaW1p bmcgYW5kIHRoZSBudW1iZXIgb2YKKyAqICAgICAgICAgICBieXRlcyB0byBmcmVlLiBSZXR1cm5z IDAgb24gcHJvZ3Jlc3MsIG5lZ2F0aXZlIG9uIGZhaWx1cmUuCisgKiBAcHJpdjogT3BhcXVlIHBv aW50ZXIgcGFzc2VkIGJhY2sgdG8gQHJlY2xhaW0uCisgKgorICogV2hlbiBkbWVtLm1heCBpcyBs b3dlcmVkIGJlbG93IHRoZSBjdXJyZW50IHVzYWdlIG9mIGEgY2dyb3VwIHBvb2wsIHRoZQorICog ZG1lbSBjb250cm9sbGVyIHdpbGwgY2FsbCBAcmVjbGFpbSB3aXRoIGEgdGFyZ2V0IG51bWJlciBv ZiBieXRlcyB0byBmcmVlLgorICogQWZ0ZXIgQHJlY2xhaW0gcmV0dXJucyB0aGUgY29udHJvbGxl ciByZXRyaWVzIHNldHRpbmcgdGhlIGxpbWl0OyBpZiB1c2FnZQorICogaXMgc3RpbGwgdG9vIGhp Z2ggaXQgY2FsbHMgQHJlY2xhaW0gYWdhaW4sIHVwIHRvIGEgYm91bmRlZCByZXRyeSBjb3VudC4K KyAqLwordm9pZCBkbWVtX2Nncm91cF9yZWdpb25fc2V0X3JlY2xhaW0oc3RydWN0IGRtZW1fY2dy b3VwX3JlZ2lvbiAqcmVnaW9uLAorCQkJCSAgICBkbWVtX2Nncm91cF9yZWNsYWltX2ZuX3QgcmVj bGFpbSwKKwkJCQkgICAgdm9pZCAqcHJpdikKK3sKKwlpZiAoIXJlZ2lvbikKKwkJcmV0dXJuOwor CisJZG93bl93cml0ZSgmcmVnaW9uLT51bnJlZ2lzdGVyX3NlbSk7CisJcmVnaW9uLT5yZWNsYWlt X3ByaXYgPSBwcml2OworCS8qIFBhaXJzIHdpdGggUkVBRF9PTkNFKCkgaW4gc2V0X3Jlc291cmNl X21heCgpICovCisJV1JJVEVfT05DRShyZWdpb24tPnJlY2xhaW0sIHJlY2xhaW0pOworCXVwX3dy aXRlKCZyZWdpb24tPnVucmVnaXN0ZXJfc2VtKTsKK30KK0VYUE9SVF9TWU1CT0xfR1BMKGRtZW1f Y2dyb3VwX3JlZ2lvbl9zZXRfcmVjbGFpbSk7CisKIHN0YXRpYyBzdHJ1Y3QgZG1lbV9jZ3JvdXBf cG9vbF9zdGF0ZSAqCiBnZXRfY2dfcG9vbF91bmxvY2tlZChzdHJ1Y3QgZG1lbWNnX3N0YXRlICpj Zywgc3RydWN0IGRtZW1fY2dyb3VwX3JlZ2lvbiAqcmVnaW9uKQogewpAQCAtNzI1LDkgKzgxMSwx MCBAQCBzdGF0aWMgaW50IGRtZW1jZ19wYXJzZV9saW1pdChjaGFyICpvcHRpb25zLCB1NjQgKm5l d19saW1pdCkKIAogc3RhdGljIHNzaXplX3QgZG1lbWNnX2xpbWl0X3dyaXRlKHN0cnVjdCBrZXJu ZnNfb3Blbl9maWxlICpvZiwKIAkJCQkgY2hhciAqYnVmLCBzaXplX3QgbmJ5dGVzLCBsb2ZmX3Qg b2ZmLAotCQkJCSB2b2lkICgqYXBwbHkpKHN0cnVjdCBkbWVtX2Nncm91cF9wb29sX3N0YXRlICos IHU2NCkpCisJCQkJIHZvaWQgKCphcHBseSkoc3RydWN0IGRtZW1fY2dyb3VwX3Bvb2xfc3RhdGUg KiwgdTY0LCBib29sKSkKIHsKIAlzdHJ1Y3QgZG1lbWNnX3N0YXRlICpkbWVtY3MgPSBjc3NfdG9f ZG1lbWNzKG9mX2NzcyhvZikpOworCWJvb2wgbm9uYmxvY2sgPSBvZi0+ZmlsZS0+Zl9mbGFncyAm IE9fTk9OQkxPQ0s7CiAJaW50IGVyciA9IDA7CiAKIAl3aGlsZSAoYnVmICYmICFlcnIpIHsKQEAg LTc3Miw3ICs4NTksOCBAQCBzdGF0aWMgc3NpemVfdCBkbWVtY2dfbGltaXRfd3JpdGUoc3RydWN0 IGtlcm5mc19vcGVuX2ZpbGUgKm9mLAogCQl9CiAKIAkJLyogQW5kIGNvbW1pdCAqLwotCQlhcHBs eShwb29sLCBuZXdfbGltaXQpOworCQlhcHBseShwb29sLCBuZXdfbGltaXQsIG5vbmJsb2NrKTsK KwogCQlkbWVtY2dfcG9vbF9wdXQocG9vbCk7CiAKIG91dF9wdXQ6Ci0tIAoyLjU0LjAKCg==