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 83942FCB61F for ; Fri, 6 Mar 2026 16:35:16 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 52B8E10EDB1; Fri, 6 Mar 2026 16:35:05 +0000 (UTC) Authentication-Results: gabe.freedesktop.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=igalia.com header.i=@igalia.com header.b="ehUgA3Jx"; dkim-atps=neutral Received: from fanzine2.igalia.com (fanzine2.igalia.com [213.97.179.56]) by gabe.freedesktop.org (Postfix) with ESMTPS id BCCCB10ED9C; Fri, 6 Mar 2026 16:34:59 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=igalia.com; s=20170329; h=Content-Transfer-Encoding:Content-Type:MIME-Version:References: In-Reply-To:Message-ID:Date:Subject:Cc:To:From:Sender:Reply-To:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Id:List-Help:List-Unsubscribe:List-Subscribe: List-Post:List-Owner:List-Archive; bh=TZ1v1wu0MiSvfHxAtWuZvEHHEl85pYv7idt5Du6acyc=; b=ehUgA3Jx3EXpExUsveKDphpKdN EMSolnjaY88oj1n+t18aqCd2xV9XxL5ic/rczyweK7S2FNvV+0O+Mug3YSXXVjQjMDkOFWB3ijV9l Y/VR3dPm09BZmEHGp4DMQtVUd8yiR1hOkvISp3DsSS6FxVDT1KzzPrpbbkScvKe2jhK8NqQ/EfuB8 CAG6Ox1a8oSoAvsQkDGity6I91K60OXYcjfgwjud7sQ5CthnX3kxBALHLX6JwX9TLFjMEjjh5Bcaz jVrphxFBa9yC1ht3Hvb7gGRY5wNXQs7M+6wHNnWUac0/CJYRn1D5gXbrn2jJLYW2Gir+NfhgGyZBu 4Uh8ZxZg==; Received: from [90.240.106.137] (helo=localhost) by fanzine2.igalia.com with esmtpsa (Cipher TLS1.3:ECDHE_SECP256R1__RSA_PSS_RSAE_SHA256__AES_256_GCM:256) (Exim) id 1vyY8f-00APT3-Qy; Fri, 06 Mar 2026 17:34:57 +0100 From: Tvrtko Ursulin To: amd-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org Cc: kernel-dev@igalia.com, intel-xe@lists.freedesktop.org, Danilo Krummrich , Philipp Stanner , Tvrtko Ursulin , =?UTF-8?q?Christian=20K=C3=B6nig?= , Matthew Brost , Pierre-Eric Pelloux-Prayer Subject: [PATCH v7 10/29] drm/sched: Add fair scheduling policy Date: Fri, 6 Mar 2026 16:34:26 +0000 Message-ID: <20260306163445.97243-11-tvrtko.ursulin@igalia.com> X-Mailer: git-send-email 2.52.0 In-Reply-To: <20260306163445.97243-1-tvrtko.ursulin@igalia.com> References: <20260306163445.97243-1-tvrtko.ursulin@igalia.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" VGhlIEZBSVIgc2NoZWR1bGluZyBwb2xpY3kgaXMgYnVpbHQgdXBvbiB0aGUgc2FtZSBjb25jZXB0 cyBhcyB0aGUgd2VsbAprbm93biBDRlMgQ1BVIHNjaGVkdWxlciAtIGVudGl0eSBydW4gcXVldWUg aXMgc29ydGVkIGJ5IHRoZSB2aXJ0dWFsIEdQVQp0aW1lIGNvbnN1bWVkIGJ5IGVudGl0aWVzIGlu IGEgd2F5IHRoYXQgdGhlIGVudGl0eSB3aXRoIGxlYXN0IHZydW50aW1lCnJ1bnMgZmlyc3QuCgpJ dCBpcyBhYmxlIHRvIGF2b2lkIHRvdGFsIHByaW9yaXR5IHN0YXJ2YXRpb24sIHdoaWNoIGlzIG9u ZSBvZiB0aGUKcHJvYmxlbXMgd2l0aCBGSUZPLCBhbmQgaXQgYWxzbyBkb2VzIG5vdCBuZWVkIGZv ciBwZXIgcHJpb3JpdHkgcnVuIHF1ZXVlcy4KQXMgaXQgc2NhbGVzIHRoZSBhY3R1YWwgR1BVIHJ1 bnRpbWUgYnkgYW4gZXhwb25lbnRpYWwgZmFjdG9yIGFzIHRoZQpwcmlvcml0eSBkZWNyZWFzZXMs IHRoZSB2aXJ0dWFsIHJ1bnRpbWUgZm9yIGxvdyBwcmlvcml0eSBlbnRpdGllcyBncm93cwpmYXN0 ZXIgdGhhbiBmb3Igbm9ybWFsIHByaW9yaXR5LCBwdXNoaW5nIHRoZW0gZnVydGhlciBkb3duIHRo ZSBydW5xdWV1ZQpvcmRlciBmb3IgdGhlIHNhbWUgcmVhbCBHUFUgdGltZSBzcGVudC4KCkFwYXJ0 IGZyb20gdGhpcyBmdW5kYW1lbnRhbCBmYWlybmVzcywgZmFpciBwb2xpY3kgaXMgZXNwZWNpYWxs eSBzdHJvbmcgaW4Kb3ZlcnN1YnNjcmlwdGlvbiB3b3JrbG9hZHMgd2hlcmUgaXQgaXMgYWJsZSB0 byBnaXZlIG1vcmUgR1BVIHRpbWUgdG8gc2hvcnQKYW5kIGJ1cnN0eSB3b3JrbG9hZHMgd2hlbiB0 aGV5IGFyZSBydW5uaW5nIGluIHBhcmFsbGVsIHdpdGggR1BVIGhlYXZ5CmNsaWVudHMgc3VibWl0 dGluZyBkZWVwIGpvYiBxdWV1ZXMuCgpTaWduZWQtb2ZmLWJ5OiBUdnJ0a28gVXJzdWxpbiA8dHZy dGtvLnVyc3VsaW5AaWdhbGlhLmNvbT4KQ2M6IENocmlzdGlhbiBLw7ZuaWcgPGNocmlzdGlhbi5r b2VuaWdAYW1kLmNvbT4KQ2M6IERhbmlsbyBLcnVtbXJpY2ggPGRha3JAa2VybmVsLm9yZz4KQ2M6 IE1hdHRoZXcgQnJvc3QgPG1hdHRoZXcuYnJvc3RAaW50ZWwuY29tPgpDYzogUGhpbGlwcCBTdGFu bmVyIDxwaGFzdGFAa2VybmVsLm9yZz4KQ2M6IFBpZXJyZS1FcmljIFBlbGxvdXgtUHJheWVyIDxw aWVycmUtZXJpYy5wZWxsb3V4LXByYXllckBhbWQuY29tPgpBY2tlZC1ieTogRGFuaWxvIEtydW1t cmljaCA8ZGFrckBrZXJuZWwub3JnPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9zY2hlZHVsZXIvc2No ZWRfZW50aXR5LmMgICB8ICAyOCArKy0tCiBkcml2ZXJzL2dwdS9kcm0vc2NoZWR1bGVyL3NjaGVk X2ludGVybmFsLmggfCAgIDUgKwogZHJpdmVycy9ncHUvZHJtL3NjaGVkdWxlci9zY2hlZF9tYWlu LmMgICAgIHwgIDEyICstCiBkcml2ZXJzL2dwdS9kcm0vc2NoZWR1bGVyL3NjaGVkX3JxLmMgICAg ICAgfCAxNzcgKysrKysrKysrKysrKysrKysrKystCiBpbmNsdWRlL2RybS9ncHVfc2NoZWR1bGVy LmggICAgICAgICAgICAgICAgfCAgMTcgKy0KIDUgZmlsZXMgY2hhbmdlZCwgMjE5IGluc2VydGlv bnMoKyksIDIwIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9zY2hl ZHVsZXIvc2NoZWRfZW50aXR5LmMgYi9kcml2ZXJzL2dwdS9kcm0vc2NoZWR1bGVyL3NjaGVkX2Vu dGl0eS5jCmluZGV4IDU5MWNiOWY4MjYwOC4uOTQ0MzhmODBiMDBkIDEwMDY0NAotLS0gYS9kcml2 ZXJzL2dwdS9kcm0vc2NoZWR1bGVyL3NjaGVkX2VudGl0eS5jCisrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9zY2hlZHVsZXIvc2NoZWRfZW50aXR5LmMKQEAgLTEyNyw2ICsxMjcsOCBAQCBpbnQgZHJtX3Nj aGVkX2VudGl0eV9pbml0KHN0cnVjdCBkcm1fc2NoZWRfZW50aXR5ICplbnRpdHksCiAJZW50aXR5 LT5ndWlsdHkgPSBndWlsdHk7CiAJZW50aXR5LT5wcmlvcml0eSA9IHByaW9yaXR5OwogCWVudGl0 eS0+bGFzdF91c2VyID0gY3VycmVudC0+Z3JvdXBfbGVhZGVyOworCWVudGl0eS0+cnFfcHJpb3Jp dHkgPSBkcm1fc2NoZWRfcG9saWN5ID09IERSTV9TQ0hFRF9QT0xJQ1lfRkFJUiA/CisJCQkgICAg ICBEUk1fU0NIRURfUFJJT1JJVFlfS0VSTkVMIDogcHJpb3JpdHk7CiAJZW50aXR5LT5udW1fc2No ZWRfbGlzdCA9IG51bV9zY2hlZF9saXN0OwogCWVudGl0eS0+c2NoZWRfbGlzdCA9IG51bV9zY2hl ZF9saXN0ID4gMSA/IHNjaGVkX2xpc3QgOiBOVUxMOwogCVJDVV9JTklUX1BPSU5URVIoZW50aXR5 LT5sYXN0X3NjaGVkdWxlZCwgTlVMTCk7CkBAIC0xMzksMTcgKzE0MSwyMyBAQCBpbnQgZHJtX3Nj aGVkX2VudGl0eV9pbml0KHN0cnVjdCBkcm1fc2NoZWRfZW50aXR5ICplbnRpdHksCiAJCSAqLwog CQlwcl93YXJuKCIlczogY2FsbGVkIHdpdGggdW5pbml0aWFsaXplZCBzY2hlZHVsZXJcbiIsIF9f ZnVuY19fKTsKIAl9IGVsc2UgewotCQkvKiBUaGUgInByaW9yaXR5IiBvZiBhbiBlbnRpdHkgY2Fu bm90IGV4Y2VlZCB0aGUgbnVtYmVyIG9mIHJ1bi1xdWV1ZXMgb2YgYQotCQkgKiBzY2hlZHVsZXIu IFByb3RlY3QgYWdhaW5zdCBudW1fcnFzIGJlaW5nIDAsIGJ5IGNvbnZlcnRpbmcgdG8gc2lnbmVk LiBDaG9vc2UKLQkJICogdGhlIGxvd2VzdCBwcmlvcml0eSBhdmFpbGFibGUuCisJCWVudW0gZHJt X3NjaGVkX3ByaW9yaXR5IHAgPSBlbnRpdHktPnByaW9yaXR5OworCisJCS8qCisJCSAqIFRoZSAi cHJpb3JpdHkiIG9mIGFuIGVudGl0eSBjYW5ub3QgZXhjZWVkIHRoZSBudW1iZXIgb2YKKwkJICog cnVuLXF1ZXVlcyBvZiBhIHNjaGVkdWxlci4gUHJvdGVjdCBhZ2FpbnN0IG51bV9ycXMgYmVpbmcg MCwKKwkJICogYnkgY29udmVydGluZyB0byBzaWduZWQuIENob29zZSB0aGUgbG93ZXN0IHByaW9y aXR5CisJCSAqIGF2YWlsYWJsZS4KIAkJICovCi0JCWlmIChlbnRpdHktPnByaW9yaXR5ID49IHNj aGVkX2xpc3RbMF0tPm51bV9ycXMpIHsKLQkJCWRldl9lcnIoc2NoZWRfbGlzdFswXS0+ZGV2LCAi ZW50aXR5IGhhcyBvdXQtb2YtYm91bmRzIHByaW9yaXR5OiAldS4gbnVtX3JxczogJXVcbiIsCi0J CQkJZW50aXR5LT5wcmlvcml0eSwgc2NoZWRfbGlzdFswXS0+bnVtX3Jxcyk7Ci0JCQllbnRpdHkt PnByaW9yaXR5ID0gbWF4X3QoczMyLCAoczMyKSBzY2hlZF9saXN0WzBdLT5udW1fcnFzIC0gMSwK LQkJCQkJCSAoczMyKSBEUk1fU0NIRURfUFJJT1JJVFlfS0VSTkVMKTsKKwkJaWYgKHAgPj0gc2No ZWRfbGlzdFswXS0+bnVtX3VzZXJfcnFzKSB7CisJCQlkZXZfZXJyKHNjaGVkX2xpc3RbMF0tPmRl diwgImVudGl0eSB3aXRoIG91dC1vZi1ib3VuZHMgcHJpb3JpdHk6JXUgbnVtX3VzZXJfcnFzOiV1 XG4iLAorCQkJCXAsIHNjaGVkX2xpc3RbMF0tPm51bV91c2VyX3Jxcyk7CisJCQlwID0gbWF4X3Qo czMyLAorCQkJCSAoczMyKXNjaGVkX2xpc3RbMF0tPm51bV91c2VyX3JxcyAtIDEsCisJCQkJIChz MzIpRFJNX1NDSEVEX1BSSU9SSVRZX0tFUk5FTCk7CisJCQllbnRpdHktPnByaW9yaXR5ID0gcDsK IAkJfQotCQllbnRpdHktPnJxID0gc2NoZWRfbGlzdFswXS0+c2NoZWRfcnFbZW50aXR5LT5wcmlv cml0eV07CisJCWVudGl0eS0+cnEgPSBzY2hlZF9saXN0WzBdLT5zY2hlZF9ycVtlbnRpdHktPnJx X3ByaW9yaXR5XTsKIAl9CiAKIAlpbml0X2NvbXBsZXRpb24oJmVudGl0eS0+ZW50aXR5X2lkbGUp OwpAQCAtNTg2LDcgKzU5NCw3IEBAIHZvaWQgZHJtX3NjaGVkX2VudGl0eV9zZWxlY3RfcnEoc3Ry dWN0IGRybV9zY2hlZF9lbnRpdHkgKmVudGl0eSkKIAogCXNwaW5fbG9jaygmZW50aXR5LT5sb2Nr KTsKIAlzY2hlZCA9IGRybV9zY2hlZF9waWNrX2Jlc3QoZW50aXR5LT5zY2hlZF9saXN0LCBlbnRp dHktPm51bV9zY2hlZF9saXN0KTsKLQlycSA9IHNjaGVkID8gc2NoZWQtPnNjaGVkX3JxW2VudGl0 eS0+cHJpb3JpdHldIDogTlVMTDsKKwlycSA9IHNjaGVkID8gc2NoZWQtPnNjaGVkX3JxW2VudGl0 eS0+cnFfcHJpb3JpdHldIDogTlVMTDsKIAlpZiAocnEgIT0gZW50aXR5LT5ycSkgewogCQlkcm1f c2NoZWRfcnFfcmVtb3ZlX2VudGl0eShlbnRpdHktPnJxLCBlbnRpdHkpOwogCQllbnRpdHktPnJx ID0gcnE7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vc2NoZWR1bGVyL3NjaGVkX2ludGVy bmFsLmggYi9kcml2ZXJzL2dwdS9kcm0vc2NoZWR1bGVyL3NjaGVkX2ludGVybmFsLmgKaW5kZXgg YmU1ZDk5YzY0MWM1Li5hNjgyZTBjZmJmMjUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9z Y2hlZHVsZXIvc2NoZWRfaW50ZXJuYWwuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vc2NoZWR1bGVy L3NjaGVkX2ludGVybmFsLmgKQEAgLTEyLDYgKzEyLDggQEAKICAqIEBrcmVmOiByZWZlcmVuY2Ug Y291bnQgZm9yIHRoZSBvYmplY3QuCiAgKiBAbG9jazogbG9jayBndWFyZGluZyB0aGUgQHJ1bnRp bWUgdXBkYXRlcy4KICAqIEBydW50aW1lOiB0aW1lIGVudGl0eSBzcGVudCBvbiB0aGUgR1BVLgor ICogQHByZXZfcnVudGltZTogcHJldmlvdXMgQHJ1bnRpbWUgdXNlZCB0byBnZXQgdGhlIHJ1bnRp bWUgZGVsdGEuCisgKiBAdnJ1bnRpbWU6IHZpcnR1YWwgcnVudGltZSBhcyBhY2N1bXVsYXRlZCBi eSB0aGUgZmFpciBhbGdvcml0aG0uCiAgKgogICogQmVjYXVzZSBqb2JzIGFuZCBlbnRpdGllcyBo YXZlIGRlY291cGxlZCBsaWZldGltZXMsIGllLiB3ZSBjYW5ub3QgYWNjZXNzIHRoZQogICogZW50 aXR5IG9uY2UgdGhlIGpvYiBoYXMgYmVlbiBkZS1xdWV1ZWQsIGFuZCB3ZSBkbyBuZWVkIGtub3cg aG93IG11Y2ggR1BVIHRpbWUKQEAgLTIyLDYgKzI0LDggQEAgc3RydWN0IGRybV9zY2hlZF9lbnRp dHlfc3RhdHMgewogCXN0cnVjdCBrcmVmCWtyZWY7CiAJc3BpbmxvY2tfdAlsb2NrOwogCWt0aW1l X3QJCXJ1bnRpbWU7CisJa3RpbWVfdAkJcHJldl9ydW50aW1lOworCWt0aW1lX3QJCXZydW50aW1l OwogfTsKIAogLyogVXNlZCB0byBjaG9vc2UgYmV0d2VlbiBGSUZPIGFuZCBSUiBqb2Itc2NoZWR1 bGluZyAqLwpAQCAtMjksNiArMzMsNyBAQCBleHRlcm4gaW50IGRybV9zY2hlZF9wb2xpY3k7CiAK ICNkZWZpbmUgRFJNX1NDSEVEX1BPTElDWV9SUiAgICAwCiAjZGVmaW5lIERSTV9TQ0hFRF9QT0xJ Q1lfRklGTyAgMQorI2RlZmluZSBEUk1fU0NIRURfUE9MSUNZX0ZBSVIgIDIKIAogYm9vbCBkcm1f c2NoZWRfY2FuX3F1ZXVlKHN0cnVjdCBkcm1fZ3B1X3NjaGVkdWxlciAqc2NoZWQsCiAJCQkgc3Ry dWN0IGRybV9zY2hlZF9lbnRpdHkgKmVudGl0eSk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vc2NoZWR1bGVyL3NjaGVkX21haW4uYyBiL2RyaXZlcnMvZ3B1L2RybS9zY2hlZHVsZXIvc2No ZWRfbWFpbi5jCmluZGV4IDgyNmVmNGUwMTgwYS4uMGFjYTQxYjRlMzM0IDEwMDY0NAotLS0gYS9k cml2ZXJzL2dwdS9kcm0vc2NoZWR1bGVyL3NjaGVkX21haW4uYworKysgYi9kcml2ZXJzL2dwdS9k cm0vc2NoZWR1bGVyL3NjaGVkX21haW4uYwpAQCAtOTAsNyArOTAsNyBAQCBpbnQgZHJtX3NjaGVk X3BvbGljeSA9IERSTV9TQ0hFRF9QT0xJQ1lfRklGTzsKICAqIERPQzogc2NoZWRfcG9saWN5IChp bnQpCiAgKiBVc2VkIHRvIG92ZXJyaWRlIGRlZmF1bHQgZW50aXRpZXMgc2NoZWR1bGluZyBwb2xp Y3kgaW4gYSBydW4gcXVldWUuCiAgKi8KLU1PRFVMRV9QQVJNX0RFU0Moc2NoZWRfcG9saWN5LCAi U3BlY2lmeSB0aGUgc2NoZWR1bGluZyBwb2xpY3kgZm9yIGVudGl0aWVzIG9uIGEgcnVuLXF1ZXVl LCAiIF9fc3RyaW5naWZ5KERSTV9TQ0hFRF9QT0xJQ1lfUlIpICIgPSBSb3VuZCBSb2JpbiwgIiBf X3N0cmluZ2lmeShEUk1fU0NIRURfUE9MSUNZX0ZJRk8pICIgPSBGSUZPIChkZWZhdWx0KS4iKTsK K01PRFVMRV9QQVJNX0RFU0Moc2NoZWRfcG9saWN5LCAiU3BlY2lmeSB0aGUgc2NoZWR1bGluZyBw b2xpY3kgZm9yIGVudGl0aWVzIG9uIGEgcnVuLXF1ZXVlLCAiIF9fc3RyaW5naWZ5KERSTV9TQ0hF RF9QT0xJQ1lfUlIpICIgPSBSb3VuZCBSb2JpbiwgIiBfX3N0cmluZ2lmeShEUk1fU0NIRURfUE9M SUNZX0ZJRk8pICIgPSBGSUZPIChkZWZhdWx0KSwgIiBfX3N0cmluZ2lmeShEUk1fU0NIRURfUE9M SUNZX0ZBSVIpICIgPSBGYWlyLiIpOwogbW9kdWxlX3BhcmFtX25hbWVkKHNjaGVkX3BvbGljeSwg ZHJtX3NjaGVkX3BvbGljeSwgaW50LCAwNDQ0KTsKIAogc3RhdGljIHUzMiBkcm1fc2NoZWRfYXZh aWxhYmxlX2NyZWRpdHMoc3RydWN0IGRybV9ncHVfc2NoZWR1bGVyICpzY2hlZCkKQEAgLTExNDEs MTEgKzExNDEsMTMgQEAgaW50IGRybV9zY2hlZF9pbml0KHN0cnVjdCBkcm1fZ3B1X3NjaGVkdWxl ciAqc2NoZWQsIGNvbnN0IHN0cnVjdCBkcm1fc2NoZWRfaW5pdF8KIAkJc2NoZWQtPm93bl9zdWJt aXRfd3EgPSB0cnVlOwogCX0KIAotCXNjaGVkLT5zY2hlZF9ycSA9IGttYWxsb2Nfb2Jqcygqc2No ZWQtPnNjaGVkX3JxLCBhcmdzLT5udW1fcnFzLAotCQkJCSAgICAgICBHRlBfS0VSTkVMIHwgX19H RlBfWkVSTyk7CisJc2NoZWQtPm51bV91c2VyX3JxcyA9IGFyZ3MtPm51bV9ycXM7CisJc2NoZWQt Pm51bV9ycXMgPSBkcm1fc2NoZWRfcG9saWN5ICE9IERSTV9TQ0hFRF9QT0xJQ1lfRkFJUiA/CisJ CQkgYXJncy0+bnVtX3JxcyA6IDE7CisJc2NoZWQtPnNjaGVkX3JxID0ga3phbGxvY19vYmpzKCpz Y2hlZC0+c2NoZWRfcnEsIGFyZ3MtPm51bV9ycXMpOwogCWlmICghc2NoZWQtPnNjaGVkX3JxKQog CQlnb3RvIE91dF9jaGVja19vd247Ci0Jc2NoZWQtPm51bV9ycXMgPSBhcmdzLT5udW1fcnFzOwor CiAJZm9yIChpID0gRFJNX1NDSEVEX1BSSU9SSVRZX0tFUk5FTDsgaSA8IHNjaGVkLT5udW1fcnFz OyBpKyspIHsKIAkJc2NoZWQtPnNjaGVkX3JxW2ldID0ga3phbGxvY19vYmooKnNjaGVkLT5zY2hl ZF9ycVtpXSk7CiAJCWlmICghc2NoZWQtPnNjaGVkX3JxW2ldKQpAQCAtMTI1OCw3ICsxMjYwLDcg QEAgdm9pZCBkcm1fc2NoZWRfaW5jcmVhc2Vfa2FybWEoc3RydWN0IGRybV9zY2hlZF9qb2IgKmJh ZCkKIAlpZiAoYmFkLT5zX3ByaW9yaXR5ICE9IERSTV9TQ0hFRF9QUklPUklUWV9LRVJORUwpIHsK IAkJYXRvbWljX2luYygmYmFkLT5rYXJtYSk7CiAKLQkJZm9yIChpID0gRFJNX1NDSEVEX1BSSU9S SVRZX0hJR0g7IGkgPCBzY2hlZC0+bnVtX3JxczsgaSsrKSB7CisJCWZvciAoaSA9IERSTV9TQ0hF RF9QUklPUklUWV9LRVJORUw7IGkgPCBzY2hlZC0+bnVtX3JxczsgaSsrKSB7CiAJCQlzdHJ1Y3Qg ZHJtX3NjaGVkX3JxICpycSA9IHNjaGVkLT5zY2hlZF9ycVtpXTsKIAogCQkJc3Bpbl9sb2NrKCZy cS0+bG9jayk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vc2NoZWR1bGVyL3NjaGVkX3Jx LmMgYi9kcml2ZXJzL2dwdS9kcm0vc2NoZWR1bGVyL3NjaGVkX3JxLmMKaW5kZXggMmQxZjU3OWQ4 MzUyLi4yZmRlMzA5ZDAyYTYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9zY2hlZHVsZXIv c2NoZWRfcnEuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vc2NoZWR1bGVyL3NjaGVkX3JxLmMKQEAg LTE2LDYgKzE2LDM1IEBAIGRybV9zY2hlZF9lbnRpdHlfY29tcGFyZV9iZWZvcmUoc3RydWN0IHJi X25vZGUgKmEsIGNvbnN0IHN0cnVjdCByYl9ub2RlICpiKQogCXJldHVybiBrdGltZV9iZWZvcmUo ZWEtPm9sZGVzdF9qb2Jfd2FpdGluZywgZWItPm9sZGVzdF9qb2Jfd2FpdGluZyk7CiB9CiAKK3N0 YXRpYyB2b2lkIGRybV9zY2hlZF9ycV91cGRhdGVfcHJpbyhzdHJ1Y3QgZHJtX3NjaGVkX3JxICpy cSkKK3sKKwllbnVtIGRybV9zY2hlZF9wcmlvcml0eSBwcmlvID0gRFJNX1NDSEVEX1BSSU9SSVRZ X0lOVkFMSUQ7CisJc3RydWN0IHJiX25vZGUgKnJiOworCisJbG9ja2RlcF9hc3NlcnRfaGVsZCgm cnEtPmxvY2spOworCisJcmIgPSByYl9maXJzdF9jYWNoZWQoJnJxLT5yYl90cmVlX3Jvb3QpOwor CWlmIChyYikgeworCQlzdHJ1Y3QgZHJtX3NjaGVkX2VudGl0eSAqZW50aXR5ID0KKwkJCXJiX2Vu dHJ5KHJiLCB0eXBlb2YoKmVudGl0eSksIHJiX3RyZWVfbm9kZSk7CisKKwkJLyoKKwkJICogVGhl IG5vcm1hbCBsb2NraW5nIG9yZGVyIGlzIGVudGl0eSB0aGVuIHJ1bi1xdWV1ZSBzbyB0YWtpbmcK KwkJICogdGhlIGVudGl0eSBsb2NrIGhlcmUgd291bGQgYmUgYSBsb2NraW5nIGludmVyc2lvbiBm b3IgdGhlCisJCSAqIGNhc2Ugd2hlbiB0aGUgY3VycmVudCBoZWFkIG9mIHRoZSBydW4tcXVldWUg aXMgZGlmZmVyZW50IGZyb20KKwkJICogdGhlIG9uZSB3ZSBhbHJlYWR5IGhhdmUgbG9ja2VkLiBU aGUgdW5sb2NrZWQgcmVhZCBpcyBmaW5lCisJCSAqIHRob3VnaCwgYmVjYXVzZSBpZiB0aGUgcHJp b3JpdHkgaGFkIGp1c3QgY2hhbmdlZCBpdCBpcyBubyBiaWcKKwkJICogZGVhbCBmb3Igb3VyIGFs Z29yaXRobSwgYnV0IGp1c3QgYSB0cmFuc2llbnQgcmVhY2hhYmxlIG9ubHkKKwkJICogYnkgZHJp dmVycyB3aXRoIHVzZXJzcGFjZSBkeW5hbWljIHByaW9yaXR5IGNoYW5nZXMgQVBJLiBFcXVhbAor CQkgKiBpbiBlZmZlY3QgdG8gdGhlIHByaW9yaXR5IGNoYW5nZSBiZWNvbWluZyB2aXNpYmxlIGEg ZmV3CisJCSAqIGluc3RydWN0aW9ucyBsYXRlci4KKwkJICovCisJCXByaW8gPSBSRUFEX09OQ0Uo ZW50aXR5LT5wcmlvcml0eSk7CisJfQorCisJcnEtPmhlYWRfcHJpbyA9IHByaW87Cit9CisKIHN0 YXRpYyB2b2lkIGRybV9zY2hlZF9ycV9yZW1vdmVfZmlmb19sb2NrZWQoc3RydWN0IGRybV9zY2hl ZF9lbnRpdHkgKmVudGl0eSwKIAkJCQkJICAgIHN0cnVjdCBkcm1fc2NoZWRfcnEgKnJxKQogewpA QCAtMjUsNiArNTQsNyBAQCBzdGF0aWMgdm9pZCBkcm1fc2NoZWRfcnFfcmVtb3ZlX2ZpZm9fbG9j a2VkKHN0cnVjdCBkcm1fc2NoZWRfZW50aXR5ICplbnRpdHksCiAJaWYgKCFSQl9FTVBUWV9OT0RF KCZlbnRpdHktPnJiX3RyZWVfbm9kZSkpIHsKIAkJcmJfZXJhc2VfY2FjaGVkKCZlbnRpdHktPnJi X3RyZWVfbm9kZSwgJnJxLT5yYl90cmVlX3Jvb3QpOwogCQlSQl9DTEVBUl9OT0RFKCZlbnRpdHkt PnJiX3RyZWVfbm9kZSk7CisJCWRybV9zY2hlZF9ycV91cGRhdGVfcHJpbyhycSk7CiAJfQogfQog CkBAIC00Niw2ICs3Niw3IEBAIHN0YXRpYyB2b2lkIGRybV9zY2hlZF9ycV91cGRhdGVfZmlmb19s b2NrZWQoc3RydWN0IGRybV9zY2hlZF9lbnRpdHkgKmVudGl0eSwKIAogCXJiX2FkZF9jYWNoZWQo JmVudGl0eS0+cmJfdHJlZV9ub2RlLCAmcnEtPnJiX3RyZWVfcm9vdCwKIAkJICAgICAgZHJtX3Nj aGVkX2VudGl0eV9jb21wYXJlX2JlZm9yZSk7CisJZHJtX3NjaGVkX3JxX3VwZGF0ZV9wcmlvKHJx KTsKIH0KIAogLyoqCkBAIC02Miw2ICs5MywxMzMgQEAgdm9pZCBkcm1fc2NoZWRfcnFfaW5pdChz dHJ1Y3QgZHJtX2dwdV9zY2hlZHVsZXIgKnNjaGVkLAogCUlOSVRfTElTVF9IRUFEKCZycS0+ZW50 aXRpZXMpOwogCXJxLT5yYl90cmVlX3Jvb3QgPSBSQl9ST09UX0NBQ0hFRDsKIAlycS0+c2NoZWQg PSBzY2hlZDsKKwlycS0+aGVhZF9wcmlvID0gRFJNX1NDSEVEX1BSSU9SSVRZX0lOVkFMSUQ7Cit9 CisKKy8qCisgKiBDb3JlIHBhcnQgb2YgdGhlIENGUy1saWtlIGFsZ29yaXRobSBpcyB0aGF0IHRo ZSB2aXJ0dWFsIHJ1bnRpbWUgb2YgbG93ZXIKKyAqIHByaW9yaXR5IHRhc2tzIHNob3VsZCBncm93 IHF1aWNrZXIgdGhhbiB0aGUgaGlnaGVyIHByaW9yaXR5IG9uZXMsIHNvIHRoYXQKKyAqIHdoZW4g d2UgdGhlbiBzY2hlZHVsZSBlbnRpdGllcyB3aXRoIHRoZSBhaW0gb2Yga2VlcGluZyB0aGVpciBh Y2N1bXVsYXRlZAorICogdmlydHVhbCB0aW1lIGJhbGFuY2VkLCB3ZSBjYW4gYXBwcm9hY2ggZmFp ciBkaXN0cmlidXRpb24gb2YgR1BVIHRpbWUuCisgKgorICogRm9yIGNvbnZlcnRpbmcgdGhlIHJl YWwgR1BVIHRpbWUgaW50byB2aXJ0dWFsIHdlIHBpY2sgc29tZSBtdWx0aXBsaWVycyB3aXRoCisg KiB0aGUgaWRlYSB0byBhY2hpZXZlIHRoZSBmb2xsb3dpbmcgR1BVIHRpbWUgZGlzdHJpYnV0aW9u OgorICoKKyAqICAtIEtlcm5lbCBwcmlvcml0eSBnZXRzIHJvdWdobHkgMnggR1BVIHRpbWUgY29t cGFyZWQgdG8gaGlnaC4KKyAqICAtIEhpZ2ggZ2V0cyB+NHggcmVsYXRpdmUgdG8gbm9ybWFsLgor ICogIC0gTm9ybWFsIGdldHMgfjh4IHJlbGF0aXZlIHRvIGxvdy4KKyAqLworc3RhdGljIGNvbnN0 IHVuc2lnbmVkIGludCB2cnVudGltZV9zaGlmdFtdID0geworCVtEUk1fU0NIRURfUFJJT1JJVFlf S0VSTkVMXSA9IDEsCisJW0RSTV9TQ0hFRF9QUklPUklUWV9ISUdIXSAgID0gMiwKKwlbRFJNX1ND SEVEX1BSSU9SSVRZX05PUk1BTF0gPSA0LAorCVtEUk1fU0NIRURfUFJJT1JJVFlfTE9XXSAgICA9 IDcsCit9OworCitzdGF0aWMga3RpbWVfdAorZHJtX3NjaGVkX3JxX2dldF9taW5fdnJ1bnRpbWUo c3RydWN0IGRybV9zY2hlZF9ycSAqcnEpCit7CisJa3RpbWVfdCB2cnVudGltZSA9IDA7CisJc3Ry dWN0IHJiX25vZGUgKnJiOworCisJbG9ja2RlcF9hc3NlcnRfaGVsZCgmcnEtPmxvY2spOworCisJ cmIgPSByYl9maXJzdF9jYWNoZWQoJnJxLT5yYl90cmVlX3Jvb3QpOworCWlmIChyYikgeworCQlz dHJ1Y3QgZHJtX3NjaGVkX2VudGl0eSAqZW50aXR5ID0KKwkJCXJiX2VudHJ5KHJiLCB0eXBlb2Yo KmVudGl0eSksIHJiX3RyZWVfbm9kZSk7CisJCXN0cnVjdCBkcm1fc2NoZWRfZW50aXR5X3N0YXRz ICpzdGF0cyA9IGVudGl0eS0+c3RhdHM7CisKKwkJc3Bpbl9sb2NrKCZzdGF0cy0+bG9jayk7CisJ CXZydW50aW1lID0gc3RhdHMtPnZydW50aW1lOworCQlzcGluX3VubG9jaygmc3RhdHMtPmxvY2sp OworCX0KKworCXJldHVybiB2cnVudGltZTsKK30KKworc3RhdGljIHZvaWQKK2RybV9zY2hlZF9l bnRpdHlfc2F2ZV92cnVudGltZShzdHJ1Y3QgZHJtX3NjaGVkX2VudGl0eSAqZW50aXR5LAorCQkJ ICAgICAgIGt0aW1lX3QgbWluX3ZydW50aW1lKQoreworCXN0cnVjdCBkcm1fc2NoZWRfZW50aXR5 X3N0YXRzICpzdGF0cyA9IGVudGl0eS0+c3RhdHM7CisJa3RpbWVfdCB2cnVudGltZTsKKworCXNw aW5fbG9jaygmc3RhdHMtPmxvY2spOworCXZydW50aW1lID0gc3RhdHMtPnZydW50aW1lOworCWlm IChtaW5fdnJ1bnRpbWUgJiYgdnJ1bnRpbWUgPiBtaW5fdnJ1bnRpbWUpCisJCXZydW50aW1lID0g a3RpbWVfc3ViKHZydW50aW1lLCBtaW5fdnJ1bnRpbWUpOworCWVsc2UKKwkJdnJ1bnRpbWUgPSAw OworCXN0YXRzLT52cnVudGltZSA9IHZydW50aW1lOworCXNwaW5fdW5sb2NrKCZzdGF0cy0+bG9j ayk7Cit9CisKK3N0YXRpYyBrdGltZV90Citkcm1fc2NoZWRfZW50aXR5X3Jlc3RvcmVfdnJ1bnRp bWUoc3RydWN0IGRybV9zY2hlZF9lbnRpdHkgKmVudGl0eSwKKwkJCQkgIGt0aW1lX3QgbWluX3Zy dW50aW1lLAorCQkJCSAgZW51bSBkcm1fc2NoZWRfcHJpb3JpdHkgcnFfcHJpbykKK3sKKwlzdHJ1 Y3QgZHJtX3NjaGVkX2VudGl0eV9zdGF0cyAqc3RhdHMgPSBlbnRpdHktPnN0YXRzOworCWVudW0g ZHJtX3NjaGVkX3ByaW9yaXR5IHByaW8gPSBlbnRpdHktPnByaW9yaXR5OworCWt0aW1lX3QgdnJ1 bnRpbWU7CisKKwlCVUlMRF9CVUdfT04oRFJNX1NDSEVEX1BSSU9SSVRZX05PUk1BTCA8IERSTV9T Q0hFRF9QUklPUklUWV9ISUdIKTsKKworCXNwaW5fbG9jaygmc3RhdHMtPmxvY2spOworCXZydW50 aW1lID0gc3RhdHMtPnZydW50aW1lOworCisJLyoKKwkgKiBTcGVjaWFsIGhhbmRsaW5nIGZvciBl bnRpdGllcyB3aGljaCB3ZXJlIHBpY2tlZCBmcm9tIHRoZSB0b3Agb2YgdGhlCisJICogcXVldWUg YW5kIGFyZSBub3cgcmUtam9pbmluZyB0aGUgdG9wIHdpdGggYW5vdGhlciBvbmUgYWxyZWFkeSB0 aGVyZS4KKwkgKi8KKwlpZiAoIXZydW50aW1lICYmIHJxX3ByaW8gIT0gRFJNX1NDSEVEX1BSSU9S SVRZX0lOVkFMSUQpIHsKKwkJaWYgKHByaW8gPiBycV9wcmlvKSB7CisJCQkvKgorCQkJICogTG93 ZXIgcHJpb3JpdHkgc2hvdWxkIG5vdCBvdmVydGFrZSBoaWdoZXIgd2hlbiByZS0KKwkJCSAqIGpv aW5pbmcgYXQgdGhlIHRvcCBvZiB0aGUgcXVldWUuCisJCQkgKi8KKwkJCXZydW50aW1lID0gbnNf dG9fa3RpbWUocHJpbyAtIHJxX3ByaW8pOworCQl9IGVsc2UgaWYgKHByaW8gPCBycV9wcmlvKSB7 CisJCQkvKgorCQkJICogSGlnaGVyIHByaW9yaXR5IGNhbiBnbyBmaXJzdC4KKwkJCSAqLworCQkJ dnJ1bnRpbWUgPSAtbnNfdG9fa3RpbWUocnFfcHJpbyAtIHByaW8pOworCQl9CisJfQorCisJLyoK KwkgKiBSZXN0b3JlIHNhdmVkIHJlbGF0aXZlIHBvc2l0aW9uIGluIHRoZSBxdWV1ZS4KKwkgKi8K Kwl2cnVudGltZSA9IGt0aW1lX2FkZChtaW5fdnJ1bnRpbWUsIHZydW50aW1lKTsKKworCXN0YXRz LT52cnVudGltZSA9IHZydW50aW1lOworCXNwaW5fdW5sb2NrKCZzdGF0cy0+bG9jayk7CisKKwly ZXR1cm4gdnJ1bnRpbWU7Cit9CisKK3N0YXRpYyBrdGltZV90IGRybV9zY2hlZF9lbnRpdHlfdXBk YXRlX3ZydW50aW1lKHN0cnVjdCBkcm1fc2NoZWRfZW50aXR5ICplbnRpdHkpCit7CisJc3RydWN0 IGRybV9zY2hlZF9lbnRpdHlfc3RhdHMgKnN0YXRzID0gZW50aXR5LT5zdGF0czsKKwlrdGltZV90 IHJ1bnRpbWUsIHByZXY7CisKKwlzcGluX2xvY2soJnN0YXRzLT5sb2NrKTsKKwlwcmV2ID0gc3Rh dHMtPnByZXZfcnVudGltZTsKKwlydW50aW1lID0gc3RhdHMtPnJ1bnRpbWU7CisJc3RhdHMtPnBy ZXZfcnVudGltZSA9IHJ1bnRpbWU7CisJcnVudGltZSA9IGt0aW1lX2FkZF9ucyhzdGF0cy0+dnJ1 bnRpbWUsCisJCQkgICAgICAga3RpbWVfdG9fbnMoa3RpbWVfc3ViKHJ1bnRpbWUsIHByZXYpKSA8 PAorCQkJICAgICAgIHZydW50aW1lX3NoaWZ0W2VudGl0eS0+cHJpb3JpdHldKTsKKwlzdGF0cy0+ dnJ1bnRpbWUgPSBydW50aW1lOworCXNwaW5fdW5sb2NrKCZzdGF0cy0+bG9jayk7CisKKwlyZXR1 cm4gcnVudGltZTsKK30KKworc3RhdGljIGt0aW1lX3QgZHJtX3NjaGVkX2VudGl0eV9nZXRfam9i X3RzKHN0cnVjdCBkcm1fc2NoZWRfZW50aXR5ICplbnRpdHkpCit7CisJcmV0dXJuIGRybV9zY2hl ZF9lbnRpdHlfdXBkYXRlX3ZydW50aW1lKGVudGl0eSk7CiB9CiAKIC8qKgpAQCAtOTgsOCArMjU2 LDE0IEBAIGRybV9zY2hlZF9ycV9hZGRfZW50aXR5KHN0cnVjdCBkcm1fc2NoZWRfZW50aXR5ICpl bnRpdHksIGt0aW1lX3QgdHMpCiAJCWxpc3RfYWRkX3RhaWwoJmVudGl0eS0+bGlzdCwgJnJxLT5l bnRpdGllcyk7CiAJfQogCi0JaWYgKGRybV9zY2hlZF9wb2xpY3kgPT0gRFJNX1NDSEVEX1BPTElD WV9SUikKKwlpZiAoZHJtX3NjaGVkX3BvbGljeSA9PSBEUk1fU0NIRURfUE9MSUNZX0ZBSVIpIHsK KwkJdHMgPSBkcm1fc2NoZWRfcnFfZ2V0X21pbl92cnVudGltZShycSk7CisJCXRzID0gZHJtX3Nj aGVkX2VudGl0eV9yZXN0b3JlX3ZydW50aW1lKGVudGl0eSwgdHMsCisJCQkJCQkgICAgICAgcnEt PmhlYWRfcHJpbyk7CisJfSBlbHNlIGlmIChkcm1fc2NoZWRfcG9saWN5ID09IERSTV9TQ0hFRF9Q T0xJQ1lfUlIpIHsKIAkJdHMgPSBlbnRpdHktPnJyX3RzOworCX0KKwogCWRybV9zY2hlZF9ycV91 cGRhdGVfZmlmb19sb2NrZWQoZW50aXR5LCBycSwgdHMpOwogCiAJc3Bpbl91bmxvY2soJnJxLT5s b2NrKTsKQEAgLTE3MSw3ICszMzUsOSBAQCB2b2lkIGRybV9zY2hlZF9ycV9wb3BfZW50aXR5KHN0 cnVjdCBkcm1fc2NoZWRfZW50aXR5ICplbnRpdHkpCiAJaWYgKG5leHRfam9iKSB7CiAJCWt0aW1l X3QgdHM7CiAKLQkJaWYgKGRybV9zY2hlZF9wb2xpY3kgPT0gRFJNX1NDSEVEX1BPTElDWV9GSUZP KQorCQlpZiAoZHJtX3NjaGVkX3BvbGljeSA9PSBEUk1fU0NIRURfUE9MSUNZX0ZBSVIpCisJCQl0 cyA9IGRybV9zY2hlZF9lbnRpdHlfZ2V0X2pvYl90cyhlbnRpdHkpOworCQllbHNlIGlmIChkcm1f c2NoZWRfcG9saWN5ID09IERSTV9TQ0hFRF9QT0xJQ1lfRklGTykKIAkJCXRzID0gbmV4dF9qb2It PnN1Ym1pdF90czsKIAkJZWxzZQogCQkJdHMgPSBkcm1fc2NoZWRfcnFfbmV4dF9ycl90cyhycSwg ZW50aXR5KTsKQEAgLTE3OSw2ICszNDUsMTMgQEAgdm9pZCBkcm1fc2NoZWRfcnFfcG9wX2VudGl0 eShzdHJ1Y3QgZHJtX3NjaGVkX2VudGl0eSAqZW50aXR5KQogCQlkcm1fc2NoZWRfcnFfdXBkYXRl X2ZpZm9fbG9ja2VkKGVudGl0eSwgcnEsIHRzKTsKIAl9IGVsc2UgewogCQlkcm1fc2NoZWRfcnFf cmVtb3ZlX2ZpZm9fbG9ja2VkKGVudGl0eSwgcnEpOworCisJCWlmIChkcm1fc2NoZWRfcG9saWN5 ID09IERSTV9TQ0hFRF9QT0xJQ1lfRkFJUikgeworCQkJa3RpbWVfdCBtaW5fdnJ1bnRpbWU7CisK KwkJCW1pbl92cnVudGltZSA9IGRybV9zY2hlZF9ycV9nZXRfbWluX3ZydW50aW1lKHJxKTsKKwkJ CWRybV9zY2hlZF9lbnRpdHlfc2F2ZV92cnVudGltZShlbnRpdHksIG1pbl92cnVudGltZSk7CisJ CX0KIAl9CiAJc3Bpbl91bmxvY2soJnJxLT5sb2NrKTsKIAlzcGluX3VubG9jaygmZW50aXR5LT5s b2NrKTsKZGlmZiAtLWdpdCBhL2luY2x1ZGUvZHJtL2dwdV9zY2hlZHVsZXIuaCBiL2luY2x1ZGUv ZHJtL2dwdV9zY2hlZHVsZXIuaAppbmRleCBiZjMxYzRjNThhNGMuLmRkNTE0YTQxMzE1NiAxMDA2 NDQKLS0tIGEvaW5jbHVkZS9kcm0vZ3B1X3NjaGVkdWxlci5oCisrKyBiL2luY2x1ZGUvZHJtL2dw dV9zY2hlZHVsZXIuaApAQCAtNjMsNiArNjMsNyBAQCBzdHJ1Y3QgZHJtX2ZpbGU7CiAgKiB0byBh biBhcnJheSwgYW5kIGFzIHN1Y2ggc2hvdWxkIHN0YXJ0IGF0IDAuCiAgKi8KIGVudW0gZHJtX3Nj aGVkX3ByaW9yaXR5IHsKKwlEUk1fU0NIRURfUFJJT1JJVFlfSU5WQUxJRCA9IC0xLCAvKiBJbnRl cm5hbCBtYXJrZXIgLSBkbyBub3QgdXNlLiAqLwogCURSTV9TQ0hFRF9QUklPUklUWV9LRVJORUws CiAJRFJNX1NDSEVEX1BSSU9SSVRZX0hJR0gsCiAJRFJNX1NDSEVEX1BSSU9SSVRZX05PUk1BTCwK QEAgLTE1MCw2ICsxNTEsMTEgQEAgc3RydWN0IGRybV9zY2hlZF9lbnRpdHkgewogCSAqLwogCWVu dW0gZHJtX3NjaGVkX3ByaW9yaXR5ICAgICAgICAgcHJpb3JpdHk7CiAKKwkvKioKKwkgKiBAcnFf cHJpb3JpdHk6IFJ1bi1xdWV1ZSBwcmlvcml0eQorCSAqLworCWVudW0gZHJtX3NjaGVkX3ByaW9y aXR5ICAgICAgICAgcnFfcHJpb3JpdHk7CisKIAkvKioKIAkgKiBAcnJfdHM6CiAJICoKQEAgLTI1 NCwxMCArMjYwLDExIEBAIHN0cnVjdCBkcm1fc2NoZWRfZW50aXR5IHsKICAqIHN0cnVjdCBkcm1f c2NoZWRfcnEgLSBxdWV1ZSBvZiBlbnRpdGllcyB0byBiZSBzY2hlZHVsZWQuCiAgKgogICogQHNj aGVkOiB0aGUgc2NoZWR1bGVyIHRvIHdoaWNoIHRoaXMgcnEgYmVsb25ncyB0by4KLSAqIEBsb2Nr OiBwcm90ZWN0cyBAZW50aXRpZXMsIEByYl90cmVlX3Jvb3QgYW5kIEBycl90cy4KKyAqIEBsb2Nr OiBwcm90ZWN0cyBAZW50aXRpZXMsIEByYl90cmVlX3Jvb3QsIEBycl90cyBhbmQgQGhlYWRfcHJp by4KICAqIEBycl90czogbW9ub3RvbmljYWxseSBpbmNyZW1lbnRpbmcgZmFrZSB0aW1lc3RhbXAg Zm9yIFJSIG1vZGUuCiAgKiBAZW50aXRpZXM6IGxpc3Qgb2YgdGhlIGVudGl0aWVzIHRvIGJlIHNj aGVkdWxlZC4KICAqIEByYl90cmVlX3Jvb3Q6IHJvb3Qgb2YgdGltZSBiYXNlZCBwcmlvcml0eSBx dWV1ZSBvZiBlbnRpdGllcyBmb3IgRklGTyBzY2hlZHVsaW5nCisgKiBAaGVhZF9wcmlvOiBwcmlv cml0eSBvZiB0aGUgdG9wIHRyZWUgZWxlbWVudC4KICAqCiAgKiBSdW4gcXVldWUgaXMgYSBzZXQg b2YgZW50aXRpZXMgc2NoZWR1bGluZyBjb21tYW5kIHN1Ym1pc3Npb25zIGZvcgogICogb25lIHNw ZWNpZmljIHJpbmcuIEl0IGltcGxlbWVudHMgdGhlIHNjaGVkdWxpbmcgcG9saWN5IHRoYXQgc2Vs ZWN0cwpAQCAtMjcxLDYgKzI3OCw3IEBAIHN0cnVjdCBkcm1fc2NoZWRfcnEgewogCWt0aW1lX3QJ CQkJcnJfdHM7CiAJc3RydWN0IGxpc3RfaGVhZAkJZW50aXRpZXM7CiAJc3RydWN0IHJiX3Jvb3Rf Y2FjaGVkCQlyYl90cmVlX3Jvb3Q7CisJZW51bSBkcm1fc2NoZWRfcHJpb3JpdHkJCWhlYWRfcHJp bzsKIH07CiAKIC8qKgpAQCAtNTYzLDggKzU3MSwxMCBAQCBzdHJ1Y3QgZHJtX3NjaGVkX2JhY2tl bmRfb3BzIHsKICAqIEBjcmVkaXRfY291bnQ6IHRoZSBjdXJyZW50IGNyZWRpdCBjb3VudCBvZiB0 aGlzIHNjaGVkdWxlcgogICogQHRpbWVvdXQ6IHRoZSB0aW1lIGFmdGVyIHdoaWNoIGEgam9iIGlz IHJlbW92ZWQgZnJvbSB0aGUgc2NoZWR1bGVyLgogICogQG5hbWU6IG5hbWUgb2YgdGhlIHJpbmcg Zm9yIHdoaWNoIHRoaXMgc2NoZWR1bGVyIGlzIGJlaW5nIHVzZWQuCi0gKiBAbnVtX3JxczogTnVt YmVyIG9mIHJ1bi1xdWV1ZXMuIFRoaXMgaXMgYXQgbW9zdCBEUk1fU0NIRURfUFJJT1JJVFlfQ09V TlQsCi0gKiAgICAgICAgICAgYXMgdGhlcmUncyB1c3VhbGx5IG9uZSBydW4tcXVldWUgcGVyIHBy aW9yaXR5LCBidXQgY291bGQgYmUgbGVzcy4KKyAqIEBudW1fdXNlcl9ycXM6IE51bWJlciBvZiBy dW4tcXVldWVzLiBUaGlzIGlzIGF0IG1vc3QKKyAqICAgICAgICAgICAgICAgIERSTV9TQ0hFRF9Q UklPUklUWV9DT1VOVCwgYXMgdGhlcmUncyB1c3VhbGx5IG9uZSBydW4tcXVldWUgcGVyCisgKiAg ICAgICAgICAgICAgICBwcmlvcml0eSwgYnV0IGNvdWxkIGJlIGxlc3MuCisgKiBAbnVtX3Jxczog RXF1YWwgdG8gQG51bV91c2VyX3JxcyBmb3IgRklGTyBhbmQgUlIgYW5kIDEgZm9yIHRoZSBGQUlS IHBvbGljeS4KICAqIEBzY2hlZF9ycTogQW4gYWxsb2NhdGVkIGFycmF5IG9mIHJ1bi1xdWV1ZXMg b2Ygc2l6ZSBAbnVtX3JxczsKICAqIEBqb2Jfc2NoZWR1bGVkOiBvbmNlIGRybV9zY2hlZF9lbnRp dHlfZmx1c2goKSBpcyBjYWxsZWQgdGhlIHNjaGVkdWxlcgogICogICAgICAgICAgICAgICAgIHdh aXRzIG9uIHRoaXMgd2FpdCBxdWV1ZSB1bnRpbCBhbGwgdGhlIHNjaGVkdWxlZCBqb2JzIGFyZQpA QCAtNTk3LDYgKzYwNyw3IEBAIHN0cnVjdCBkcm1fZ3B1X3NjaGVkdWxlciB7CiAJbG9uZwkJCQl0 aW1lb3V0OwogCWNvbnN0IGNoYXIJCQkqbmFtZTsKIAl1MzIgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIG51bV9ycXM7CisJdTMyICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudW1fdXNl cl9ycXM7CiAJc3RydWN0IGRybV9zY2hlZF9ycSAgICAgICAgICAgICAqKnNjaGVkX3JxOwogCXdh aXRfcXVldWVfaGVhZF90CQlqb2Jfc2NoZWR1bGVkOwogCWF0b21pYzY0X3QJCQlqb2JfaWRfY291 bnQ7Ci0tIAoyLjUyLjAKCg==