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 bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (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 68C83CA0ECA for ; Tue, 12 Sep 2023 13:41:35 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:In-Reply-To:MIME-Version:References: Message-ID:Subject:Cc:To:From:Date:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=0EczF0L+VXFumQ6BUq4Dh1ytMzMf8zFiN16XPpi0rhk=; b=VjruNu7T09Ff2X k5OB6cnj74BAutg2M/wBeqVHIFjkJ5D+/HvWnda/k8MC5ILJothzTeOrGNAslXcLCMVk3s7fykF7l S9B6tApauPks5S+7CbCNL2PRK/7/YU8AbZKXvcASA8L5Q/DO1nnzpICP0y+fUsSHwS37ZXf/yggPG eJwz6ZoA0FsUqKjbrz84tCXFU+JdDJKpKNGLpn9ZnK/RfLxYiVDZ1E5qFyVogHaWSDe8Qvmh/6+vO Oa6ZYcUG2i4rIBWgdfj7Y2gL6LnGs7OEdFCuOeli292FlPzdseknpQrmahGrrsLo6VNuzosaz63Y+ a5Bx8GpaAvvBDcl/HGXg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1qg3df-003SOI-1A; Tue, 12 Sep 2023 13:41:11 +0000 Received: from mail-lf1-x131.google.com ([2a00:1450:4864:20::131]) by bombadil.infradead.org with esmtps (Exim 4.96 #2 (Red Hat Linux)) id 1qg3dc-003SNq-2f for linux-arm-kernel@lists.infradead.org; Tue, 12 Sep 2023 13:41:10 +0000 Received: by mail-lf1-x131.google.com with SMTP id 2adb3069b0e04-500cfb168c6so9246445e87.2 for ; Tue, 12 Sep 2023 06:41:08 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1694526067; x=1695130867; darn=lists.infradead.org; h=in-reply-to:content-transfer-encoding:content-disposition :mime-version:references:message-id:subject:cc:to:from:date:from:to :cc:subject:date:message-id:reply-to; bh=EyBoKrrgVqVxJWLjv8x5ZZvGhoL5wahDhw68BgqSFMw=; b=f+zwmE3pEvkx60WXWgrCOjaU1tqvo5WCnR4ShoayLFYsUdbs3GqpwXkjE+ic8rRQZ/ vkuAvckg4zV6ahhmGXrXznh2jPG478YGxSA/tf8ieV79MUypVkq9RN902rk91mAqgrYQ aJ1rfsQyH4OhMEgCaZLO3ykR2ZinTP10ZZlsYRGxqmB+6nHuYCGxbXsOu0i4bUML8GdV PWqzOW4jtMjkvaRC77nCduvms0/MAxh23BAMetBYdSij265OteZdlC4h8K++0lxRzXfw JFIvyRYDx/fJlLGplMwXsWS10Iv+EI6QnG2smSQAnyQx3mGw4cIB9pQ1iIIgMLN0YLU7 Feng== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1694526067; x=1695130867; h=in-reply-to:content-transfer-encoding:content-disposition :mime-version:references:message-id:subject:cc:to:from:date :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=EyBoKrrgVqVxJWLjv8x5ZZvGhoL5wahDhw68BgqSFMw=; b=PhEUj48GJhx4A+F4Zp9XW8mjltY72r2vkeBgKGp3MSaeSv47bCVv9j98rYM8M+fdeb aI55dGdd+J8m50qcNeqYay9cN7JcFU0Ocg0dQG4671lcpwrp/+01/qNBpJRAHi4HOIiG obv6aZNBcUw3+Yb6C7mHRFClzMb4JCyKmb6T20EiMtTQNHJ3fgwHxuovYbBiGuTDbefe V5M6pEJPqYuqLCpWnXxPKoUf67RVA2im4trRPnZbtRZyCTedj3UQEEj/zssboYPEhjO1 4PxUHC+TKI1VKZUB+IRI2YKPocodcPA3xmv50bRw4jT9EXiNgAzsD1pzc2PzC+UmKCi5 E+fw== X-Gm-Message-State: AOJu0YzjpvOV3MojZrAc6d30NfLJ7jXSvpA0YnR+rUf6zM4xz8gD5DVA BrfeX+D1qy4Lzbw3c0tGvUVU7Q== X-Google-Smtp-Source: AGHT+IEpthUtIkT6CfVIvWC1etoTQnQaLox/Jk17XoBtwp+G8BuBcY1bcUkngFzkBmjMb5Vk9jjwAw== X-Received: by 2002:a05:6512:3eb:b0:500:9214:b308 with SMTP id n11-20020a05651203eb00b005009214b308mr9028699lfq.65.1694526066722; Tue, 12 Sep 2023 06:41:06 -0700 (PDT) Received: from rayden (h-46-59-78-111.A175.priv.bahnhof.se. [46.59.78.111]) by smtp.gmail.com with ESMTPSA id r5-20020a19ac45000000b00501c673e773sm1720905lfc.39.2023.09.12.06.41.05 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 12 Sep 2023 06:41:06 -0700 (PDT) Date: Tue, 12 Sep 2023 15:41:04 +0200 From: Jens Wiklander To: Sudeep Holla Cc: linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, Lucian Paul-Trifu , Marc Bonnici , Coboy Chen Subject: Re: [PATCH RFT 08/12] firmware: arm_ffa: Initial support for scheduler receiver interrupt Message-ID: <20230912134104.GC4160483@rayden> References: <20230803-ffa_v1-1_notif-v1-0-6613ff2b1f81@arm.com> <20230803-ffa_v1-1_notif-v1-8-6613ff2b1f81@arm.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20230803-ffa_v1-1_notif-v1-8-6613ff2b1f81@arm.com> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20230912_064108_905340_64864639 X-CRM114-Status: GOOD ( 37.95 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org SGkgU3VkZWVwLAoKT24gVGh1LCBBdWcgMDMsIDIwMjMgYXQgMDg6MDI6MTJQTSArMDEwMCwgU3Vk ZWVwIEhvbGxhIHdyb3RlOgo+IFRoZSBGcmFtZXdvcmsgdXNlcyB0aGUgc2NoZWR1bGUgcmVjZWl2 ZXIgaW50ZXJydXB0IHRvIGluZm9ybSB0aGUKPiByZWNlaXZlcuKAmXMgc2NoZWR1bGVyIHRoYXQg dGhlIHJlY2VpdmVyIG11c3QgYmUgcnVuIHRvIGhhbmRsZSBhIHBlbmRpbmcKPiBub3RpZmljYXRp b24uIEEgcmVjZWl2ZXLigJlzIHNjaGVkdWxlciBjYW4gb2J0YWluIHRoZSBkZXNjcmlwdGlvbiBv ZiB0aGUKPiBzY2hlZHVsZSByZWNlaXZlciBpbnRlcnJ1cHQgYnkgaW52b2tpbmcgdGhlIEZGQV9G RUFUVVJFUyBpbnRlcmZhY2UuCj4gCj4gVGhlIGRlbGl2ZXJ5IG9mIHRoZSBwaHlzaWNhbCBzY2hl ZHVsZSByZWNlaXZlciBpbnRlcnJ1cHQgZnJvbSB0aGUgc2VjdXJlCj4gc3RhdGUgdG8gdGhlIG5v bi1zZWN1cmUgc3RhdGUgZGVwZW5kcyB1cG9uIHRoZSBzdGF0ZSBvZiB0aGUgaW50ZXJydXB0Cj4g Y29udHJvbGxlciBhcyBjb25maWd1cmVkIGJ5IHRoZSBoeXBlcnZpc29yLgo+IAo+IFRoZSBzY2hl ZHVsZSBzZWNlaXZlciBpbnRlcnJ1cHQgaXMgYXNzdW1lZCB0byBiZSBhIFBQSS4gVGhlIEFybSBH SUMKPiBzcGVjaWZpY2F0aW9uIGRlZmluZXMgMTYgU0dJcy4gSXQgcmVjb21tZW5kcyB0aGF0IHRo ZXkgYXJlIGVxdWFsbHkKPiBkaXZpZGVkIGJldHdlZW4gdGhlIG5vbi1zZWN1cmUgYW5kIHNlY3Vy ZSBzdGF0ZXMuIE9TIGxpa2UgTGludXgga2VybmVsCj4gaW4gdGhlIG5vbi1zZWN1cmUgc3RhdGUg dHlwaWNhbGx5IGRvIG5vdCBoYXZlIFNHSXMgdG8gc3BhcmUuIFRoZSB1c2FnZQo+IG9mIFNHSXMg aW4gdGhlIHNlY3VyZSBzdGF0ZSBpcyBob3dldmVyIGxpbWl0ZWQuIEl0IGlzIG1vcmUgbGlrZWx5 IHRoYXQKPiBzb2Z0d2FyZSBpbiB0aGUgU2VjdXJlIHdvcmxkIGRvZXMgbm90IHVzZSBhbGwgdGhl IFNHSXMgYWxsb2NhdGVkIHRvIGl0Lgo+IAo+IEl0IGlzIHJlY29tbWVuZGVkIHRoYXQgdGhlIHNl Y3VyZSB3b3JsZCBzb2Z0d2FyZSBkb25hdGVzIGFuIHVudXNlZCBTR0kKPiB0byB0aGUgbm9ybWFs IHdvcmxkIGZvciB1c2UgYXMgdGhlIHNjaGVkdWxlIHJlY2VpdmVyIGludGVycnVwdC4gVGhpcwo+ IGltcGxpZXMgdGhhdCBzZWN1cmUgd29ybGQgc29mdHdhcmUgbXVzdCBjb25maWd1cmUgdGhlIFNH SSBpbiB0aGUgR0lDCj4gYXMgYSBub24tc2VjdXJlIGludGVycnVwdCBiZWZvcmUgcHJlc2VudGlu ZyBpdCB0byB0aGUgbm9ybWFsIHdvcmxkLgo+IAo+IFNpZ25lZC1vZmYtYnk6IFN1ZGVlcCBIb2xs YSA8c3VkZWVwLmhvbGxhQGFybS5jb20+Cj4gLS0tCj4gIGRyaXZlcnMvZmlybXdhcmUvYXJtX2Zm YS9kcml2ZXIuYyB8IDE4MyArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLQo+ ICAxIGZpbGUgY2hhbmdlZCwgMTc1IGluc2VydGlvbnMoKyksIDggZGVsZXRpb25zKC0pCj4gCj4g ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZmlybXdhcmUvYXJtX2ZmYS9kcml2ZXIuYyBiL2RyaXZlcnMv ZmlybXdhcmUvYXJtX2ZmYS9kcml2ZXIuYwo+IGluZGV4IDc3Y2E5NzUzZTNmMC4uODRjOTM0YTBl YzE0IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZmlybXdhcmUvYXJtX2ZmYS9kcml2ZXIuYwo+ICsr KyBiL2RyaXZlcnMvZmlybXdhcmUvYXJtX2ZmYS9kcml2ZXIuYwo+IEBAIC0yMiwxNSArMjIsMjAg QEAKPiAgI2RlZmluZSBEUklWRVJfTkFNRSAiQVJNIEZGLUEiCj4gICNkZWZpbmUgcHJfZm10KGZt dCkgRFJJVkVSX05BTUUgIjogIiBmbXQKPiAgCj4gKyNpbmNsdWRlIDxsaW51eC9hY3BpLmg+Cj4g ICNpbmNsdWRlIDxsaW51eC9hcm1fZmZhLmg+Cj4gICNpbmNsdWRlIDxsaW51eC9iaXRmaWVsZC5o Pgo+ICsjaW5jbHVkZSA8bGludXgvY3B1aG90cGx1Zy5oPgo+ICAjaW5jbHVkZSA8bGludXgvZGV2 aWNlLmg+Cj4gKyNpbmNsdWRlIDxsaW51eC9pbnRlcnJ1cHQuaD4KPiAgI2luY2x1ZGUgPGxpbnV4 L2lvLmg+Cj4gICNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KPiAgI2luY2x1ZGUgPGxpbnV4L21v ZHVsZS5oPgo+ICAjaW5jbHVkZSA8bGludXgvbW0uaD4KPiArI2luY2x1ZGUgPGxpbnV4L29mX2ly cS5oPgo+ICAjaW5jbHVkZSA8bGludXgvc2NhdHRlcmxpc3QuaD4KPiAgI2luY2x1ZGUgPGxpbnV4 L3NsYWIuaD4KPiArI2luY2x1ZGUgPGxpbnV4L3NtcC5oPgo+ICAjaW5jbHVkZSA8bGludXgvdXVp ZC5oPgo+ICAKPiAgI2luY2x1ZGUgImNvbW1vbi5oIgo+IEBAIC03Niw2ICs4MSwxMCBAQCBzdGF0 aWMgaW5saW5lIGludCBmZmFfdG9fbGludXhfZXJybm8oaW50IGVycm5vKQo+ICAJcmV0dXJuIC1F SU5WQUw7Cj4gIH0KPiAgCj4gK3N0cnVjdCBmZmFfcGNwdV9pcnEgewo+ICsJc3RydWN0IGZmYV9k cnZfaW5mbyAqaW5mbzsKPiArfTsKPiArCj4gIHN0cnVjdCBmZmFfZHJ2X2luZm8gewo+ICAJdTMy IHZlcnNpb247Cj4gIAl1MTYgdm1faWQ7Cj4gQEAgLTg1LDYgKzk0LDEyIEBAIHN0cnVjdCBmZmFf ZHJ2X2luZm8gewo+ICAJdm9pZCAqdHhfYnVmZmVyOwo+ICAJYm9vbCBtZW1fb3BzX25hdGl2ZTsK PiAgCWJvb2wgYml0bWFwX2NyZWF0ZWQ7Cj4gKwl1bnNpZ25lZCBpbnQgc2NoZWRfcmVjdl9pcnE7 Cj4gKwl1bnNpZ25lZCBpbnQgY3B1aHBfc3RhdGU7Cj4gKwlzdHJ1Y3QgZmZhX3BjcHVfaXJxIF9f cGVyY3B1ICppcnFfcGNwdTsKPiArCXN0cnVjdCB3b3JrcXVldWVfc3RydWN0ICpub3RpZl9wY3B1 X3dxOwo+ICsJc3RydWN0IHdvcmtfc3RydWN0IGlycV93b3JrOwo+ICsJYm9vbCBpbmZvX2dldF82 NGI7Cj4gIH07Cj4gIAo+ICBzdGF0aWMgc3RydWN0IGZmYV9kcnZfaW5mbyAqZHJ2X2luZm87Cj4g QEAgLTkxMCw5ICs5MjUsMTQ3IEBAIHN0YXRpYyB2b2lkIGZmYV9zZXR1cF9wYXJ0aXRpb25zKHZv aWQpCj4gIAlrZnJlZShwYnVmKTsKPiAgfQo+ICAKPiArLyogRkZBIEZFQVRVUkUgSURzICovCj4g KyNkZWZpbmUgRkZBX0ZFQVRfTk9USUZJQ0FUSU9OX1BFTkRJTkdfSU5UCSgxKQo+ICsjZGVmaW5l IEZGQV9GRUFUX1NDSEVEVUxFX1JFQ0VJVkVSX0lOVAkJKDIpCj4gKyNkZWZpbmUgRkZBX0ZFQVRf TUFOQUdFRF9FWElUX0lOVAkJKDMpCj4gKwo+ICtzdGF0aWMgaXJxcmV0dXJuX3QgaXJxX2hhbmRs ZXIoaW50IGlycSwgdm9pZCAqaXJxX2RhdGEpCj4gK3sKPiArCXN0cnVjdCBmZmFfcGNwdV9pcnEg KnBjcHUgPSBpcnFfZGF0YTsKPiArCXN0cnVjdCBmZmFfZHJ2X2luZm8gKmluZm8gPSBwY3B1LT5p bmZvOwo+ICsKPiArCXF1ZXVlX3dvcmsoaW5mby0+bm90aWZfcGNwdV93cSwgJmluZm8tPmlycV93 b3JrKTsKPiArCj4gKwlyZXR1cm4gSVJRX0hBTkRMRUQ7Cj4gK30KPiArCj4gK3N0YXRpYyB2b2lk IGZmYV9zY2hlZF9yZWN2X2lycV93b3JrX2ZuKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykKPiAr ewo+ICsJc3RydWN0IGZmYV9kcnZfaW5mbyAqaW5mbyA9IGNvbnRhaW5lcl9vZih3b3JrLCBzdHJ1 Y3QgZmZhX2Rydl9pbmZvLAo+ICsJCQkJCQkgaXJxX3dvcmspOwo+ICsKPiArCWZmYV9ub3RpZmlj YXRpb25faW5mb19nZXQoaW5mby0+aW5mb19nZXRfNjRiKTsKPiArfQo+ICsKPiArc3RhdGljIGlu dCBmZmFfc2NoZWRfcmVjdl9pcnFfbWFwKHZvaWQpCj4gK3sKPiArCWludCByZXQsIGlycSwgc3Jf aW50aWQ7Cj4gKwo+ICsJcmV0ID0gZmZhX2ZlYXR1cmVzKEZGQV9GRUFUX1NDSEVEVUxFX1JFQ0VJ VkVSX0lOVCwgMCwgJnNyX2ludGlkLCBOVUxMKTsKPiArCWlmIChyZXQgPCAwKSB7Cj4gKwkJaWYg KHJldCAhPSAtRU9QTk9UU1VQUCkKPiArCQkJcHJfZXJyKCJGYWlsZWQgdG8gcmV0cmlldmUgc2No ZWR1bGVyIFJ4IGludGVycnVwdFxuIik7Cj4gKwkJcmV0dXJuIHJldDsKPiArCX0KPiArCj4gKwlp ZiAoYWNwaV9kaXNhYmxlZCkgewo+ICsJCXN0cnVjdCBvZl9waGFuZGxlX2FyZ3Mgb2lycSA9IHt9 Owo+ICsJCXN0cnVjdCBkZXZpY2Vfbm9kZSAqZ2ljOwo+ICsKPiArCQlnaWMgPSBvZl9maW5kX2Nv bXBhdGlibGVfbm9kZShOVUxMLCBOVUxMLCAiYXJtLGdpYy12MyIpOwoKImFybSxnaWMtdjMiIG1p Z2h0IGJlIGdvb2QgZW5vdWdoIGZvciBub3csIGJ1dCBldmVudHVhbGx5IHdlIG1heSBuZWVkIG1v cmUgc2NhbGFibGUgcHJvYmluZy4KCj4gKwkJaWYgKCFnaWMpCj4gKwkJCXJldHVybiAtRU5YSU87 Cj4gKwo+ICsJCW9pcnEubnAgPSBnaWM7Cj4gKwkJb2lycS5hcmdzX2NvdW50ID0gMTsKPiArCQlv aXJxLmFyZ3NbMF0gPSBzcl9pbnRpZDsKPiArCQlpcnEgPSBpcnFfY3JlYXRlX29mX21hcHBpbmco Jm9pcnEpOwoKWW91IG1lbnRpb24gKG9yIHRyeSB0byA7LSkpIGluIHRoZSBjb21taXQgbWVzc2Fn ZSB0aGF0IFNHSXMgb25seSBhcmUKYXNzdW1lZCBmb3Igbm93LiBBIGNvbW1lbnQgaGVyZSBzdGF0 aW5nIHRoYXQgZmFjdCB3b3VsZG4ndCBodXJ0LgoKSSdtIHRyeWluZyB0byB0ZXN0IHRoaXMgb24g UUVNVSwgYnV0IEkgY2FuJ3Qgc2VlbSB0byByZWNpZXZlIHRoZSBTR0kgaW4KdGhlIGtlcm5lbC4g SSd2ZSBkb25hdGVkIHRoZSBwcmV2aW91c2x5IHNlY3VyZSBTR0ktOCBhdCBib290IChzaW1wbGUK cGF0Y2ggaW4gVEYtQSkgYmVmb3JlIHRoZSBrZXJuZWwgc3RhcnRzLiBJJ3ZlIHZlcmlmaWVkIHdp dGggR0RCIHRoYXQKUUVNVSBoYXMgYWNjZXB0ZWQgdGhlIHdyaXRlIHRvIElDQ19BU0dJMVJfRUwx IHdoaWxlIGluIHNlY3VyZSB3b3JsZCwgYnV0Cml0IHNlZW1zIGl0IG5ldmVyIHRyaWdnZXJzIHdo ZW4gc3dpdGNoaW5nIGJhY2sgdG8gbm9ybWFsIHdvcmxkLiBJJ20Kc3RhcnRpbmcgdG8gc3VzcGVj dCB0aGF0IGlycV9jcmVhdGVfb2ZfbWFwcGluZygpIG1pZ2h0IG5vdCB1cGRhdGUgU0dJLTgKcHJv cGVybHkuIFBlcmhhcHMgc29tZXRoaW5nIG1vcmUgaXMgbmVlZGVkIHdoZW4gZG9uYXRpbmcgU0dJ LTggb24gdGhlCmtlcm5lbCBzaWRlLgoKRGlkIHlvdSBoYXZlIHRoaXMgd29ya2luZyBpbiB5b3Vy IHRlc3RzPwoKQ2hlZXJzLApKZW5zCgoKPiArCQlvZl9ub2RlX3B1dChnaWMpOwo+ICsJfSBlbHNl IHsKPiArCQlpcnEgPSBhY3BpX3JlZ2lzdGVyX2dzaShOVUxMLCBzcl9pbnRpZCwgQUNQSV9FREdF X1NFTlNJVElWRSwKPiArCQkJCQlBQ1BJX0FDVElWRV9ISUdIKTsKPiArCX0KPiArCj4gKwlpZiAo aXJxIDw9IDApIHsKPiArCQlwcl9lcnIoIkZhaWxlZCB0byBjcmVhdGUgSVJRIG1hcHBpbmchXG4i KTsKPiArCQlyZXR1cm4gLUVOT0RBVEE7Cj4gKwl9Cj4gKwo+ICsJcmV0dXJuIGlycTsKPiArfQo+ ICsKPiArc3RhdGljIHZvaWQgZmZhX3NjaGVkX3JlY3ZfaXJxX3VubWFwKHZvaWQpCj4gK3sKPiAr CWlmIChkcnZfaW5mby0+c2NoZWRfcmVjdl9pcnEpCj4gKwkJaXJxX2Rpc3Bvc2VfbWFwcGluZyhk cnZfaW5mby0+c2NoZWRfcmVjdl9pcnEpOwo+ICt9Cj4gKwo+ICtzdGF0aWMgaW50IGZmYV9jcHVo cF9wY3B1X2lycV9lbmFibGUodW5zaWduZWQgaW50IGNwdSkKPiArewo+ICsJZW5hYmxlX3BlcmNw dV9pcnEoZHJ2X2luZm8tPnNjaGVkX3JlY3ZfaXJxLCBJUlFfVFlQRV9OT05FKTsKPiArCXJldHVy biAwOwo+ICt9Cj4gKwo+ICtzdGF0aWMgaW50IGZmYV9jcHVocF9wY3B1X2lycV9kaXNhYmxlKHVu c2lnbmVkIGludCBjcHUpCj4gK3sKPiArCWRpc2FibGVfcGVyY3B1X2lycShkcnZfaW5mby0+c2No ZWRfcmVjdl9pcnEpOwo+ICsJcmV0dXJuIDA7Cj4gK30KPiArCj4gK3N0YXRpYyB2b2lkIGZmYV91 bmluaXRfcGNwdV9pcnEodm9pZCkKPiArewo+ICsJaWYgKGRydl9pbmZvLT5jcHVocF9zdGF0ZSkK PiArCQljcHVocF9yZW1vdmVfc3RhdGUoZHJ2X2luZm8tPmNwdWhwX3N0YXRlKTsKPiArCj4gKwlp ZiAoZHJ2X2luZm8tPm5vdGlmX3BjcHVfd3EpCj4gKwkJZGVzdHJveV93b3JrcXVldWUoZHJ2X2lu Zm8tPm5vdGlmX3BjcHVfd3EpOwo+ICsKPiArCWlmIChkcnZfaW5mby0+c2NoZWRfcmVjdl9pcnEp Cj4gKwkJZnJlZV9wZXJjcHVfaXJxKGRydl9pbmZvLT5zY2hlZF9yZWN2X2lycSwgZHJ2X2luZm8t PmlycV9wY3B1KTsKPiArCj4gKwlpZiAoZHJ2X2luZm8tPmlycV9wY3B1KQo+ICsJCWZyZWVfcGVy Y3B1KGRydl9pbmZvLT5pcnFfcGNwdSk7Cj4gK30KPiArCj4gK3N0YXRpYyBpbnQgZmZhX2luaXRf cGNwdV9pcnEodW5zaWduZWQgaW50IGlycSkKPiArewo+ICsJc3RydWN0IGZmYV9wY3B1X2lycSBf X3BlcmNwdSAqaXJxX3BjcHU7Cj4gKwlpbnQgcmV0LCBjcHU7Cj4gKwo+ICsJaXJxX3BjcHUgPSBh bGxvY19wZXJjcHUoc3RydWN0IGZmYV9wY3B1X2lycSk7Cj4gKwlpZiAoIWlycV9wY3B1KQo+ICsJ CXJldHVybiAtRU5PTUVNOwo+ICsKPiArCWZvcl9lYWNoX3ByZXNlbnRfY3B1KGNwdSkKPiArCQlw ZXJfY3B1X3B0cihpcnFfcGNwdSwgY3B1KS0+aW5mbyA9IGRydl9pbmZvOwo+ICsKPiArCWRydl9p bmZvLT5pcnFfcGNwdSA9IGlycV9wY3B1Owo+ICsKPiArCXJldCA9IHJlcXVlc3RfcGVyY3B1X2ly cShpcnEsIGlycV9oYW5kbGVyLCAiQVJNLUZGQSIsIGlycV9wY3B1KTsKPiArCWlmIChyZXQpIHsK PiArCQlwcl9lcnIoIkVycm9yIHJlZ2lzdGVyaW5nIG5vdGlmaWNhdGlvbiBJUlEgJWQ6ICVkXG4i LCBpcnEsIHJldCk7Cj4gKwkJcmV0dXJuIHJldDsKPiArCX0KPiArCj4gKwlJTklUX1dPUksoJmRy dl9pbmZvLT5pcnFfd29yaywgZmZhX3NjaGVkX3JlY3ZfaXJxX3dvcmtfZm4pOwo+ICsJZHJ2X2lu Zm8tPm5vdGlmX3BjcHVfd3EgPSBjcmVhdGVfd29ya3F1ZXVlKCJmZmFfcGNwdV9pcnFfbm90aWZp Y2F0aW9uIik7Cj4gKwlpZiAoIWRydl9pbmZvLT5ub3RpZl9wY3B1X3dxKQo+ICsJCXJldHVybiAt RUlOVkFMOwo+ICsKPiArCXJldCA9IGNwdWhwX3NldHVwX3N0YXRlKENQVUhQX0FQX09OTElORV9E WU4sICJmZmEvcGNwdS1pcnE6c3RhcnRpbmciLAo+ICsJCQkJZmZhX2NwdWhwX3BjcHVfaXJxX2Vu YWJsZSwKPiArCQkJCWZmYV9jcHVocF9wY3B1X2lycV9kaXNhYmxlKTsKPiArCj4gKwlpZiAocmV0 IDwgMCkKPiArCQlyZXR1cm4gcmV0Owo+ICsKPiArCWRydl9pbmZvLT5jcHVocF9zdGF0ZSA9IHJl dDsKPiArCXJldHVybiAwOwo+ICt9Cj4gKwo+ICtzdGF0aWMgdm9pZCBmZmFfbm90aWZpY2F0aW9u c19jbGVhbnVwKHZvaWQpCj4gK3sKPiArCWZmYV91bmluaXRfcGNwdV9pcnEoKTsKPiArCWZmYV9z Y2hlZF9yZWN2X2lycV91bm1hcCgpOwo+ICsKPiArCWlmIChkcnZfaW5mby0+Yml0bWFwX2NyZWF0 ZWQpCj4gKwkJZmZhX25vdGlmaWNhdGlvbl9iaXRtYXBfZGVzdHJveSgpOwo+ICt9Cj4gKwo+ICBz dGF0aWMgaW50IGZmYV9ub3RpZmljYXRpb25zX3NldHVwKHZvaWQpCj4gIHsKPiAtCWludCByZXQ7 Cj4gKwlpbnQgcmV0LCBpcnE7Cj4gIAo+ICAJcmV0ID0gZmZhX2ZlYXR1cmVzKEZGQV9OT1RJRklD QVRJT05fQklUTUFQX0NSRUFURSwgMCwgTlVMTCwgTlVMTCk7Cj4gIAlpZiAoIXJldCkgewo+IEBA IC05MjQsMTMgKzEwNzcsMjMgQEAgc3RhdGljIGludCBmZmFfbm90aWZpY2F0aW9uc19zZXR1cCh2 b2lkKQo+ICAJfQo+ICAJZHJ2X2luZm8tPmJpdG1hcF9jcmVhdGVkID0gdHJ1ZTsKPiAgCj4gLQly ZXR1cm4gMDsKPiAtfQo+ICsJaXJxID0gZmZhX3NjaGVkX3JlY3ZfaXJxX21hcCgpOwo+ICsJaWYg KGlycSA8PSAwKQo+ICsJCWdvdG8gY2xlYW51cDsKPiAgCj4gLXN0YXRpYyB2b2lkIGZmYV9ub3Rp ZmljYXRpb25zX2NsZWFudXAodm9pZCkKPiAtewo+IC0JaWYgKGRydl9pbmZvLT5iaXRtYXBfY3Jl YXRlZCkKPiAtCQlmZmFfbm90aWZpY2F0aW9uX2JpdG1hcF9kZXN0cm95KCk7Cj4gKwlpZiAoRkZB X0ZOX05BVElWRShOT1RJRklDQVRJT05fSU5GT19HRVQpID09Cj4gKwkJRkZBX0ZONjRfTk9USUZJ Q0FUSU9OX0lORk9fR0VUKQo+ICsJCWRydl9pbmZvLT5pbmZvX2dldF82NGIgPSB0cnVlOwo+ICsK PiArCXJldCA9IGZmYV9pbml0X3BjcHVfaXJxKGlycSk7Cj4gKwlpZiAocmV0KQo+ICsJCWdvdG8g Y2xlYW51cDsKPiArCj4gKwlkcnZfaW5mby0+c2NoZWRfcmVjdl9pcnEgPSBpcnE7Cj4gKwlyZXR1 cm4gMDsKPiArY2xlYW51cDoKPiArCWZmYV9ub3RpZmljYXRpb25zX2NsZWFudXAoKTsKPiArCXJl dHVybiByZXQ7Cj4gIH0KPiAgCj4gIHN0YXRpYyBpbnQgX19pbml0IGZmYV9pbml0KHZvaWQpCj4g QEAgLTk4OCw3ICsxMTUxLDExIEBAIHN0YXRpYyBpbnQgX19pbml0IGZmYV9pbml0KHZvaWQpCj4g IAo+ICAJZmZhX3NldF91cF9tZW1fb3BzX25hdGl2ZV9mbGFnKCk7Cj4gIAo+IC0JcmV0dXJuIGZm YV9ub3RpZmljYXRpb25zX3NldHVwKCk7Cj4gKwlyZXQgPSBmZmFfbm90aWZpY2F0aW9uc19zZXR1 cCgpOwo+ICsJaWYgKHJldCkKPiArCQlnb3RvIGZyZWVfcGFnZXM7Cj4gKwo+ICsJcmV0dXJuIDA7 Cj4gIGZyZWVfcGFnZXM6Cj4gIAlpZiAoZHJ2X2luZm8tPnR4X2J1ZmZlcikKPiAgCQlmcmVlX3Bh Z2VzX2V4YWN0KGRydl9pbmZvLT50eF9idWZmZXIsIFJYVFhfQlVGRkVSX1NJWkUpOwo+IAo+IC0t IAo+IDIuNDEuMAo+IAoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX18KbGludXgtYXJtLWtlcm5lbCBtYWlsaW5nIGxpc3QKbGludXgtYXJtLWtlcm5lbEBsaXN0 cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGlu Zm8vbGludXgtYXJtLWtlcm5lbAo=