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 E5C86CD4F21 for ; Wed, 13 May 2026 19:29:52 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 57D4410F024; Wed, 13 May 2026 19:29:52 +0000 (UTC) Authentication-Results: gabe.freedesktop.org; dkim=pass (2048-bit key; unprotected) header.d=ragnatech.se header.i=@ragnatech.se header.b="K03akZj5"; dkim=pass (2048-bit key; unprotected) header.d=messagingengine.com header.i=@messagingengine.com header.b="ayNgYVAt"; dkim-atps=neutral Received: from fhigh-a5-smtp.messagingengine.com (fhigh-a5-smtp.messagingengine.com [103.168.172.156]) by gabe.freedesktop.org (Postfix) with ESMTPS id 846F210F024 for ; Wed, 13 May 2026 19:29:50 +0000 (UTC) Received: from phl-compute-06.internal (phl-compute-06.internal [10.202.2.46]) by mailfhigh.phl.internal (Postfix) with ESMTP id E02381400174; Wed, 13 May 2026 15:29:49 -0400 (EDT) Received: from phl-frontend-03 ([10.202.2.162]) by phl-compute-06.internal (MEProxy); Wed, 13 May 2026 15:29:49 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ragnatech.se; h= cc:cc:content-transfer-encoding:content-type:content-type:date :date:from:from:in-reply-to:in-reply-to:message-id:mime-version :references:reply-to:subject:subject:to:to; s=fm2; t=1778700589; x=1778786989; bh=CdMuDRPLzXXsMqTH2LrTi+iM4eaNqLP7/cvENwR3dWU=; b= K03akZj5ujSx0qZ8Mrw/yEzL0yAF0JJ4LbMrQzmZePrsxkjCoEXrjyOSc4BoBazU 9GjaJz2F3N+k9cKFixMPLvxYGDw0VhTeQ+UGlc8AR/lLiq3blQlrlJvcnEyZiRVP MQ8BvRZJGrnJC64ri/jrvff0UhCDweDo8l7XVSvh35PN5nnKl0NZVJlVHbsG3rZE o4alx++rwIFux29czvo9mEh6z9kyS3cb4Bq812Cc/XejxsOOQpb/qf+hg11if6xr bIBDMD9k7YjnLYGZwKm451la1/L60djZvKDy/lhB5sxeeZzbvXFZHxrAYo66F9Np SFWrkwba5eITKInP9Kf94w== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-transfer-encoding :content-type:content-type:date:date:feedback-id:feedback-id :from:from:in-reply-to:in-reply-to:message-id:mime-version :references:reply-to:subject:subject:to:to:x-me-proxy :x-me-sender:x-me-sender:x-sasl-enc; s=fm3; t=1778700589; x= 1778786989; bh=CdMuDRPLzXXsMqTH2LrTi+iM4eaNqLP7/cvENwR3dWU=; b=a yNgYVAtL+funpZEQ//UxLPA3VfVolGPF0lqlGtzHIidtEMrtPPIuunwSgnzR/1XB 6gKHFoOMgqk30KHOXi9mNymSP57q4mmLslydkHdRbtS2UvKl2FKsoojh4O899Xxm pdxt1/8ZPbQyY7idjjDCy/SEovhI/7q8B+ZzO2pboePOKbEUMEuvhCjnmpXEPxAv A2Cms19Mt/plCg796UyEu6MXMG8dyBkgThyeVuXNw7cWZuy0zKWc24dDfEH3hWY9 eq3ETBxw9XHTo0YgriSRSiE+USHSORwY9THGsatWDrpsoeL8M3HoWBdpSpmR+14n WjxMQAahVhaXZKbcRlLFw== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefhedrtddtgdduvdehgeelucetufdoteggodetrf dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceu rghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujf gurhepfffhvfevuffkfhggtggugfgjsehtkeertddttdejnecuhfhrohhmpefpihhklhgr shcuufpnuggvrhhluhhnugcuoehnihhklhgrshdrshhouggvrhhluhhnugesrhgrghhnrg htvggthhdrshgvqeenucggtffrrghtthgvrhhnpeevteegtddvvdfhtdekgefhfeefheet heekkeegfeejudeiudeuleegtdehkeekteenucevlhhushhtvghrufhiiigvpedtnecurf grrhgrmhepmhgrihhlfhhrohhmpehnihhklhgrshdrshhouggvrhhluhhnugesrhgrghhn rghtvggthhdrshgvpdhnsggprhgtphhtthhopeelpdhmohguvgepshhmthhpohhuthdprh gtphhtthhopehlrghurhgvnhhtrdhpihhntghhrghrthdorhgvnhgvshgrshesihguvggr shhonhgsohgrrhgurdgtohhmpdhrtghpthhtoheplhhinhhugidqmhgvughirgesvhhgvg hrrdhkvghrnhgvlhdrohhrghdprhgtphhtthhopegurhhiqdguvghvvghlsehlihhsthhs rdhfrhgvvgguvghskhhtohhprdhorhhgpdhrtghpthhtoheplhhinhhugidqrhgvnhgvsh grshdqshhotgesvhhgvghrrdhkvghrnhgvlhdrohhrghdprhgtphhtthhopehtohhmihdr vhgrlhhkvghinhgvnhesihguvggrshhonhgsohgrrhgurdgtohhmpdhrtghpthhtohepkh hivghrrghnrdgsihhnghhhrghmsehiuggvrghsohhnsghorghrugdrtghomhdprhgtphht thhopegsihhjuhdruggrshdrjhiisegsphdrrhgvnhgvshgrshdrtghomhdprhgtphhtth hopegrihhrlhhivggusehgmhgrihhlrdgtohhmpdhrtghpthhtohepshhimhhonhgrsehf fhiflhhlrdgthh X-ME-Proxy: Feedback-ID: i80c9496c:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Wed, 13 May 2026 15:29:49 -0400 (EDT) Date: Wed, 13 May 2026 21:29:48 +0200 From: Niklas =?utf-8?Q?S=C3=B6derlund?= To: Laurent Pinchart Cc: linux-media@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-renesas-soc@vger.kernel.org, Tomi Valkeinen , Kieran Bingham , Biju Das , David Airlie , Simona Vetter Subject: Re: [PATCH 07/11] media: renesas: vsp1: Use spinlock guards Message-ID: <20260513192948.GJ332351@ragnatech.se> References: <20260511235637.3468558-1-laurent.pinchart+renesas@ideasonboard.com> <20260511235637.3468558-8-laurent.pinchart+renesas@ideasonboard.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Disposition: inline Content-Transfer-Encoding: base64 In-Reply-To: <20260511235637.3468558-8-laurent.pinchart+renesas@ideasonboard.com> 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" SGkgTGF1cmVudCwKClRoYW5rcyBmb3IgeW91ciBwYXRjaC4KCk9uIDIwMjYtMDUtMTIgMDI6NTY6 MzEgKzAzMDAsIExhdXJlbnQgUGluY2hhcnQgd3JvdGU6Cj4gUmVwbGFjZSBtYW51YWwgc3Bpbmxv Y2sgbG9ja2luZyBhbmQgdW5sb2NraW5nIHdpdGggZ3VhcmRzLiBUaGlzCj4gc2ltcGxpZmllcyBl cnJvciBwYXRocyBhbmQgcmVkdWNlcyB0aGUgYW1vdW50IG9mIGNvZGUuIExpbWl0IHRoZSBjaGFu Z2VzCj4gdG8gbG9jYXRpb25zIHdoZXJlIHRoZSBndWFyZCBjb3ZlcnMgdW50aWwgdGhlIGVuZCBv ZiB0aGUgZnVuY3Rpb24gdG8KPiBlYXNlIHJldmlldy4gU2NvcGVkIGd1YXJkcyB3aWxsIGJlIGlu dHJvZHVjZWQgc2VwYXJhdGVseS4KPiAKPiBTaWduZWQtb2ZmLWJ5OiBMYXVyZW50IFBpbmNoYXJ0 IDxsYXVyZW50LnBpbmNoYXJ0K3JlbmVzYXNAaWRlYXNvbmJvYXJkLmNvbT4KClJldmlld2VkLWJ5 OiBOaWtsYXMgU8O2ZGVybHVuZCA8bmlrbGFzLnNvZGVybHVuZCtyZW5lc2FzQHJhZ25hdGVjaC5z ZT4KCj4gLS0tCj4gIGRyaXZlcnMvbWVkaWEvcGxhdGZvcm0vcmVuZXNhcy92c3AxL3ZzcDFfZGwu YyB8IDQ5ICsrKysrKy0tLS0tLS0tLS0tLS0KPiAgLi4uL21lZGlhL3BsYXRmb3JtL3JlbmVzYXMv dnNwMS92c3AxX2hpc3RvLmMgIHwgMjAgKysrLS0tLS0KPiAgLi4uL21lZGlhL3BsYXRmb3JtL3Jl bmVzYXMvdnNwMS92c3AxX3BpcGUuYyAgIHwgIDkgKy0tLQo+ICAuLi4vbWVkaWEvcGxhdGZvcm0v cmVuZXNhcy92c3AxL3ZzcDFfdmlkZW8uYyAgfCAxNCArKy0tLS0KPiAgLi4uL21lZGlhL3BsYXRm b3JtL3JlbmVzYXMvdnNwMS92c3AxX3dwZi5jICAgIHwgIDQgKy0KPiAgNSBmaWxlcyBjaGFuZ2Vk LCAzMSBpbnNlcnRpb25zKCspLCA2NSBkZWxldGlvbnMoLSkKPiAKPiBkaWZmIC0tZ2l0IGEvZHJp dmVycy9tZWRpYS9wbGF0Zm9ybS9yZW5lc2FzL3ZzcDEvdnNwMV9kbC5jIGIvZHJpdmVycy9tZWRp YS9wbGF0Zm9ybS9yZW5lc2FzL3ZzcDEvdnNwMV9kbC5jCj4gaW5kZXggNmM1NTc4ZDlkMmRlLi40 YTE5ZmYxNDM3YjAgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS9yZW5lc2Fz L3ZzcDEvdnNwMV9kbC5jCj4gKysrIGIvZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS9yZW5lc2FzL3Zz cDEvdnNwMV9kbC5jCj4gQEAgLTMzNiw5ICszMzYsOCBAQCB2b2lkIHZzcDFfZGxfYm9keV9wb29s X2Rlc3Ryb3koc3RydWN0IHZzcDFfZGxfYm9keV9wb29sICpwb29sKQo+ICBzdHJ1Y3QgdnNwMV9k bF9ib2R5ICp2c3AxX2RsX2JvZHlfZ2V0KHN0cnVjdCB2c3AxX2RsX2JvZHlfcG9vbCAqcG9vbCkK PiAgewo+ICAJc3RydWN0IHZzcDFfZGxfYm9keSAqZGxiID0gTlVMTDsKPiAtCXVuc2lnbmVkIGxv bmcgZmxhZ3M7Cj4gIAo+IC0Jc3Bpbl9sb2NrX2lycXNhdmUoJnBvb2wtPmxvY2ssIGZsYWdzKTsK PiArCWd1YXJkKHNwaW5sb2NrX2lycXNhdmUpKCZwb29sLT5sb2NrKTsKPiAgCj4gIAlpZiAoIWxp c3RfZW1wdHkoJnBvb2wtPmZyZWUpKSB7Cj4gIAkJZGxiID0gbGlzdF9maXJzdF9lbnRyeSgmcG9v bC0+ZnJlZSwgc3RydWN0IHZzcDFfZGxfYm9keSwgZnJlZSk7Cj4gQEAgLTM0Niw4ICszNDUsNiBA QCBzdHJ1Y3QgdnNwMV9kbF9ib2R5ICp2c3AxX2RsX2JvZHlfZ2V0KHN0cnVjdCB2c3AxX2RsX2Jv ZHlfcG9vbCAqcG9vbCkKPiAgCQlyZWZjb3VudF9zZXQoJmRsYi0+cmVmY250LCAxKTsKPiAgCX0K PiAgCj4gLQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZwb29sLT5sb2NrLCBmbGFncyk7Cj4gLQo+ ICAJcmV0dXJuIGRsYjsKPiAgfQo+ICAKPiBAQCAtMzU5LDggKzM1Niw2IEBAIHN0cnVjdCB2c3Ax X2RsX2JvZHkgKnZzcDFfZGxfYm9keV9nZXQoc3RydWN0IHZzcDFfZGxfYm9keV9wb29sICpwb29s KQo+ICAgKi8KPiAgdm9pZCB2c3AxX2RsX2JvZHlfcHV0KHN0cnVjdCB2c3AxX2RsX2JvZHkgKmRs YikKPiAgewo+IC0JdW5zaWduZWQgbG9uZyBmbGFnczsKPiAtCj4gIAlpZiAoIWRsYikKPiAgCQly ZXR1cm47Cj4gIAo+IEBAIC0zNjksOSArMzY0LDkgQEAgdm9pZCB2c3AxX2RsX2JvZHlfcHV0KHN0 cnVjdCB2c3AxX2RsX2JvZHkgKmRsYikKPiAgCj4gIAlkbGItPm51bV9lbnRyaWVzID0gMDsKPiAg Cj4gLQlzcGluX2xvY2tfaXJxc2F2ZSgmZGxiLT5wb29sLT5sb2NrLCBmbGFncyk7Cj4gKwlndWFy ZChzcGlubG9ja19pcnFzYXZlKSgmZGxiLT5wb29sLT5sb2NrKTsKPiArCj4gIAlsaXN0X2FkZF90 YWlsKCZkbGItPmZyZWUsICZkbGItPnBvb2wtPmZyZWUpOwo+IC0Jc3Bpbl91bmxvY2tfaXJxcmVz dG9yZSgmZGxiLT5wb29sLT5sb2NrLCBmbGFncyk7Cj4gIH0KPiAgCj4gIC8qKgo+IEBAIC00OTMs OSArNDg4LDggQEAgc3RhdGljCj4gIHN0cnVjdCB2c3AxX2RsX2V4dF9jbWQgKnZzcDFfZGxfZXh0 X2NtZF9nZXQoc3RydWN0IHZzcDFfZGxfY21kX3Bvb2wgKnBvb2wpCj4gIHsKPiAgCXN0cnVjdCB2 c3AxX2RsX2V4dF9jbWQgKmNtZCA9IE5VTEw7Cj4gLQl1bnNpZ25lZCBsb25nIGZsYWdzOwo+ICAK PiAtCXNwaW5fbG9ja19pcnFzYXZlKCZwb29sLT5sb2NrLCBmbGFncyk7Cj4gKwlndWFyZChzcGlu bG9ja19pcnFzYXZlKSgmcG9vbC0+bG9jayk7Cj4gIAo+ICAJaWYgKCFsaXN0X2VtcHR5KCZwb29s LT5mcmVlKSkgewo+ICAJCWNtZCA9IGxpc3RfZmlyc3RfZW50cnkoJnBvb2wtPmZyZWUsIHN0cnVj dCB2c3AxX2RsX2V4dF9jbWQsCj4gQEAgLTUwMywyNCArNDk3LDIwIEBAIHN0cnVjdCB2c3AxX2Rs X2V4dF9jbWQgKnZzcDFfZGxfZXh0X2NtZF9nZXQoc3RydWN0IHZzcDFfZGxfY21kX3Bvb2wgKnBv b2wpCj4gIAkJbGlzdF9kZWwoJmNtZC0+ZnJlZSk7Cj4gIAl9Cj4gIAo+IC0Jc3Bpbl91bmxvY2tf aXJxcmVzdG9yZSgmcG9vbC0+bG9jaywgZmxhZ3MpOwo+IC0KPiAgCXJldHVybiBjbWQ7Cj4gIH0K PiAgCj4gIHN0YXRpYyB2b2lkIHZzcDFfZGxfZXh0X2NtZF9wdXQoc3RydWN0IHZzcDFfZGxfZXh0 X2NtZCAqY21kKQo+ICB7Cj4gLQl1bnNpZ25lZCBsb25nIGZsYWdzOwo+IC0KPiAgCWlmICghY21k KQo+ICAJCXJldHVybjsKPiAgCj4gIAkvKiBSZXNldCBmbGFncywgdGhlc2UgbWFyayBkYXRhIHVz YWdlLiAqLwo+ICAJY21kLT5mbGFncyA9IDA7Cj4gIAo+IC0Jc3Bpbl9sb2NrX2lycXNhdmUoJmNt ZC0+cG9vbC0+bG9jaywgZmxhZ3MpOwo+ICsJZ3VhcmQoc3BpbmxvY2tfaXJxc2F2ZSkoJmNtZC0+ cG9vbC0+bG9jayk7Cj4gKwo+ICAJbGlzdF9hZGRfdGFpbCgmY21kLT5mcmVlLCAmY21kLT5wb29s LT5mcmVlKTsKPiAtCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmNtZC0+cG9vbC0+bG9jaywgZmxh Z3MpOwo+ICB9Cj4gIAo+ICBzdGF0aWMgdm9pZCB2c3AxX2RsX2V4dF9jbWRfcG9vbF9kZXN0cm95 KHN0cnVjdCB2c3AxX2RsX2NtZF9wb29sICpwb29sKQo+IEBAIC02MTEsMTEgKzYwMSwxMCBAQCBz dGF0aWMgdm9pZCB2c3AxX2RsX2xpc3RfZnJlZShzdHJ1Y3QgdnNwMV9kbF9saXN0ICpkbCkKPiAg c3RydWN0IHZzcDFfZGxfbGlzdCAqdnNwMV9kbF9saXN0X2dldChzdHJ1Y3QgdnNwMV9kbF9tYW5h Z2VyICpkbG0pCj4gIHsKPiAgCXN0cnVjdCB2c3AxX2RsX2xpc3QgKmRsID0gTlVMTDsKPiAtCXVu c2lnbmVkIGxvbmcgZmxhZ3M7Cj4gIAo+ICAJbG9ja2RlcF9hc3NlcnRfbm90X2hlbGQoJmRsbS0+ bG9jayk7Cj4gIAo+IC0Jc3Bpbl9sb2NrX2lycXNhdmUoJmRsbS0+bG9jaywgZmxhZ3MpOwo+ICsJ Z3VhcmQoc3BpbmxvY2tfaXJxc2F2ZSkoJmRsbS0+bG9jayk7Cj4gIAo+ICAJaWYgKCFsaXN0X2Vt cHR5KCZkbG0tPmZyZWUpKSB7Cj4gIAkJZGwgPSBsaXN0X2ZpcnN0X2VudHJ5KCZkbG0tPmZyZWUs IHN0cnVjdCB2c3AxX2RsX2xpc3QsIGxpc3QpOwo+IEBAIC02MjksOCArNjE4LDYgQEAgc3RydWN0 IHZzcDFfZGxfbGlzdCAqdnNwMV9kbF9saXN0X2dldChzdHJ1Y3QgdnNwMV9kbF9tYW5hZ2VyICpk bG0pCj4gIAkJZGwtPmFsbG9jYXRlZCA9IHRydWU7Cj4gIAl9Cj4gIAo+IC0Jc3Bpbl91bmxvY2tf aXJxcmVzdG9yZSgmZGxtLT5sb2NrLCBmbGFncyk7Cj4gLQo+ICAJcmV0dXJuIGRsOwo+ICB9Cj4g IAo+IEBAIC02OTAsMTQgKzY3NywxMiBAQCBzdGF0aWMgdm9pZCBfX3ZzcDFfZGxfbGlzdF9wdXQo c3RydWN0IHZzcDFfZGxfbGlzdCAqZGwpCj4gICAqLwo+ICB2b2lkIHZzcDFfZGxfbGlzdF9wdXQo c3RydWN0IHZzcDFfZGxfbGlzdCAqZGwpCj4gIHsKPiAtCXVuc2lnbmVkIGxvbmcgZmxhZ3M7Cj4g LQo+ICAJaWYgKCFkbCkKPiAgCQlyZXR1cm47Cj4gIAo+IC0Jc3Bpbl9sb2NrX2lycXNhdmUoJmRs LT5kbG0tPmxvY2ssIGZsYWdzKTsKPiArCWd1YXJkKHNwaW5sb2NrX2lycXNhdmUpKCZkbC0+ZGxt LT5sb2NrKTsKPiArCj4gIAlfX3ZzcDFfZGxfbGlzdF9wdXQoZGwpOwo+IC0Jc3Bpbl91bmxvY2tf aXJxcmVzdG9yZSgmZGwtPmRsbS0+bG9jaywgZmxhZ3MpOwo+ICB9Cj4gIAo+ICAvKioKPiBAQCAt OTM3LDcgKzkyMiw2IEBAIHZvaWQgdnNwMV9kbF9saXN0X2NvbW1pdChzdHJ1Y3QgdnNwMV9kbF9s aXN0ICpkbCwgdW5zaWduZWQgaW50IGRsX2ZsYWdzKQo+ICB7Cj4gIAlzdHJ1Y3QgdnNwMV9kbF9t YW5hZ2VyICpkbG0gPSBkbC0+ZGxtOwo+ICAJc3RydWN0IHZzcDFfZGxfbGlzdCAqZGxfbmV4dDsK PiAtCXVuc2lnbmVkIGxvbmcgZmxhZ3M7Cj4gIAo+ICAJLyogRmlsbCB0aGUgaGVhZGVyIGZvciB0 aGUgaGVhZCBhbmQgY2hhaW5lZCBkaXNwbGF5IGxpc3RzLiAqLwo+ICAJdnNwMV9kbF9saXN0X2Zp bGxfaGVhZGVyKGRsLCBsaXN0X2VtcHR5KCZkbC0+Y2hhaW4pKTsKPiBAQCAtOTUwLDE0ICs5MzQs MTIgQEAgdm9pZCB2c3AxX2RsX2xpc3RfY29tbWl0KHN0cnVjdCB2c3AxX2RsX2xpc3QgKmRsLCB1 bnNpZ25lZCBpbnQgZGxfZmxhZ3MpCj4gIAo+ICAJZGwtPmZsYWdzID0gZGxfZmxhZ3MgJiB+VlNQ MV9ETF9GUkFNRV9FTkRfQ09NUExFVEVEOwo+ICAKPiAtCXNwaW5fbG9ja19pcnFzYXZlKCZkbG0t PmxvY2ssIGZsYWdzKTsKPiArCWd1YXJkKHNwaW5sb2NrX2lycXNhdmUpKCZkbG0tPmxvY2spOwo+ ICAKPiAgCWlmIChkbG0tPnNpbmdsZXNob3QpCj4gIAkJdnNwMV9kbF9saXN0X2NvbW1pdF9zaW5n bGVzaG90KGRsKTsKPiAgCWVsc2UKPiAgCQl2c3AxX2RsX2xpc3RfY29tbWl0X2NvbnRpbnVvdXMo ZGwpOwo+IC0KPiAtCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmRsbS0+bG9jaywgZmxhZ3MpOwo+ ICB9Cj4gIAo+ICAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+IEBAIC05OTEsNyArOTczLDcgQEAg dW5zaWduZWQgaW50IHZzcDFfZGxtX2lycV9mcmFtZV9lbmQoc3RydWN0IHZzcDFfZGxfbWFuYWdl ciAqZGxtKQo+ICAJdTMyIHN0YXR1cyA9IHZzcDFfcmVhZCh2c3AxLCBWSTZfU1RBVFVTKTsKPiAg CXVuc2lnbmVkIGludCBmbGFncyA9IDA7Cj4gIAo+IC0Jc3Bpbl9sb2NrKCZkbG0tPmxvY2spOwo+ ICsJZ3VhcmQoc3BpbmxvY2spKCZkbG0tPmxvY2spOwo+ICAKPiAgCS8qCj4gIAkgKiBUaGUgbWVt LXRvLW1lbSBwaXBlbGluZXMgd29yayBpbiBzaW5nbGUtc2hvdCBtb2RlLiBObyBuZXcgZGlzcGxh eQo+IEBAIC0xMDAxLDcgKzk4Myw3IEBAIHVuc2lnbmVkIGludCB2c3AxX2RsbV9pcnFfZnJhbWVf ZW5kKHN0cnVjdCB2c3AxX2RsX21hbmFnZXIgKmRsbSkKPiAgCQlfX3ZzcDFfZGxfbGlzdF9wdXQo ZGxtLT5hY3RpdmUpOwo+ICAJCWRsbS0+YWN0aXZlID0gTlVMTDsKPiAgCQlmbGFncyB8PSBWU1Ax X0RMX0ZSQU1FX0VORF9DT01QTEVURUQ7Cj4gLQkJZ290byBkb25lOwo+ICsJCXJldHVybiBmbGFn czsKPiAgCX0KPiAgCj4gIAkvKgo+IEBAIC0xMDExLDcgKzk5Myw3IEBAIHVuc2lnbmVkIGludCB2 c3AxX2RsbV9pcnFfZnJhbWVfZW5kKHN0cnVjdCB2c3AxX2RsX21hbmFnZXIgKmRsbSkKPiAgCSAq IGFuZCByZXRyeS4KPiAgCSAqLwo+ICAJaWYgKHZzcDFfZGxfbGlzdF9od191cGRhdGVfcGVuZGlu ZyhkbG0pKQo+IC0JCWdvdG8gZG9uZTsKPiArCQlyZXR1cm4gZmxhZ3M7Cj4gIAo+ICAJLyoKPiAg CSAqIFByb2dyZXNzaXZlIHN0cmVhbXMgcmVwb3J0IG9ubHkgVE9QIGZpZWxkcy4gSWYgd2UgaGF2 ZSBhIEJPVFRPTQo+IEBAIC0xMDE5LDcgKzEwMDEsNyBAQCB1bnNpZ25lZCBpbnQgdnNwMV9kbG1f aXJxX2ZyYW1lX2VuZChzdHJ1Y3QgdnNwMV9kbF9tYW5hZ2VyICpkbG0pCj4gIAkgKiBuZXh0IGZy YW1lIGVuZCBpbnRlcnJ1cHQuCj4gIAkgKi8KPiAgCWlmIChzdGF0dXMgJiBWSTZfU1RBVFVTX0ZM RF9TVEQoZGxtLT5pbmRleCkpCj4gLQkJZ290byBkb25lOwo+ICsJCXJldHVybiBmbGFnczsKPiAg Cj4gIAkvKgo+ICAJICogSWYgdGhlIGFjdGl2ZSBkaXNwbGF5IGxpc3QgaGFzIHRoZSB3cml0ZWJh Y2sgZmxhZyBzZXQsIHRoZSBmcmFtZQo+IEBAIC0xMDU4LDkgKzEwNDAsNiBAQCB1bnNpZ25lZCBp bnQgdnNwMV9kbG1faXJxX2ZyYW1lX2VuZChzdHJ1Y3QgdnNwMV9kbF9tYW5hZ2VyICpkbG0pCj4g IAkJZGxtLT5wZW5kaW5nID0gTlVMTDsKPiAgCX0KPiAgCj4gLWRvbmU6Cj4gLQlzcGluX3VubG9j aygmZGxtLT5sb2NrKTsKPiAtCj4gIAlyZXR1cm4gZmxhZ3M7Cj4gIH0KPiAgCj4gZGlmZiAtLWdp dCBhL2RyaXZlcnMvbWVkaWEvcGxhdGZvcm0vcmVuZXNhcy92c3AxL3ZzcDFfaGlzdG8uYyBiL2Ry aXZlcnMvbWVkaWEvcGxhdGZvcm0vcmVuZXNhcy92c3AxL3ZzcDFfaGlzdG8uYwo+IGluZGV4IDcy ZjZlZjJmZGM0Zi4uOTdkYmZiOTNhYmU5IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvbWVkaWEvcGxh dGZvcm0vcmVuZXNhcy92c3AxL3ZzcDFfaGlzdG8uYwo+ICsrKyBiL2RyaXZlcnMvbWVkaWEvcGxh dGZvcm0vcmVuZXNhcy92c3AxL3ZzcDFfaGlzdG8uYwo+IEBAIC0zNSwyMCArMzUsMTggQEAgdG9f dnNwMV9oaXN0b2dyYW1fYnVmZmVyKHN0cnVjdCB2YjJfdjRsMl9idWZmZXIgKnZidWYpCj4gIHN0 cnVjdCB2c3AxX2hpc3RvZ3JhbV9idWZmZXIgKgo+ICB2c3AxX2hpc3RvZ3JhbV9idWZmZXJfZ2V0 KHN0cnVjdCB2c3AxX2hpc3RvZ3JhbSAqaGlzdG8pCj4gIHsKPiAtCXN0cnVjdCB2c3AxX2hpc3Rv Z3JhbV9idWZmZXIgKmJ1ZiA9IE5VTEw7Cj4gKwlzdHJ1Y3QgdnNwMV9oaXN0b2dyYW1fYnVmZmVy ICpidWY7Cj4gIAo+IC0Jc3Bpbl9sb2NrKCZoaXN0by0+aXJxbG9jayk7Cj4gKwlndWFyZChzcGlu bG9jaykoJmhpc3RvLT5pcnFsb2NrKTsKPiAgCj4gIAlpZiAobGlzdF9lbXB0eSgmaGlzdG8tPmly cXF1ZXVlKSkKPiAtCQlnb3RvIGRvbmU7Cj4gKwkJcmV0dXJuIE5VTEw7Cj4gIAo+ICAJYnVmID0g bGlzdF9maXJzdF9lbnRyeSgmaGlzdG8tPmlycXF1ZXVlLCBzdHJ1Y3QgdnNwMV9oaXN0b2dyYW1f YnVmZmVyLAo+ICAJCQkgICAgICAgcXVldWUpOwo+ICAJbGlzdF9kZWwoJmJ1Zi0+cXVldWUpOwo+ ICAJaGlzdG8tPnJlYWRvdXQgPSB0cnVlOwo+ICAKPiAtZG9uZToKPiAtCXNwaW5fdW5sb2NrKCZo aXN0by0+aXJxbG9jayk7Cj4gIAlyZXR1cm4gYnVmOwo+ICB9Cj4gIAo+IEBAIC02OCwxMCArNjYs MTAgQEAgdm9pZCB2c3AxX2hpc3RvZ3JhbV9idWZmZXJfY29tcGxldGUoc3RydWN0IHZzcDFfaGlz dG9ncmFtICpoaXN0bywKPiAgCXZiMl9zZXRfcGxhbmVfcGF5bG9hZCgmYnVmLT5idWYudmIyX2J1 ZiwgMCwgc2l6ZSk7Cj4gIAl2YjJfYnVmZmVyX2RvbmUoJmJ1Zi0+YnVmLnZiMl9idWYsIFZCMl9C VUZfU1RBVEVfRE9ORSk7Cj4gIAo+IC0Jc3Bpbl9sb2NrKCZoaXN0by0+aXJxbG9jayk7Cj4gKwln dWFyZChzcGlubG9jaykoJmhpc3RvLT5pcnFsb2NrKTsKPiArCj4gIAloaXN0by0+cmVhZG91dCA9 IGZhbHNlOwo+ICAJd2FrZV91cCgmaGlzdG8tPndhaXRfcXVldWUpOwo+IC0Jc3Bpbl91bmxvY2so Jmhpc3RvLT5pcnFsb2NrKTsKPiAgfQo+ICAKPiAgLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiBA QCAtMTIzLDkgKzEyMSw5IEBAIHN0YXRpYyB2b2lkIGhpc3RvX2J1ZmZlcl9xdWV1ZShzdHJ1Y3Qg dmIyX2J1ZmZlciAqdmIpCj4gIAlzdHJ1Y3QgdnNwMV9oaXN0b2dyYW0gKmhpc3RvID0gdmIyX2dl dF9kcnZfcHJpdih2Yi0+dmIyX3F1ZXVlKTsKPiAgCXN0cnVjdCB2c3AxX2hpc3RvZ3JhbV9idWZm ZXIgKmJ1ZiA9IHRvX3ZzcDFfaGlzdG9ncmFtX2J1ZmZlcih2YnVmKTsKPiAgCj4gLQlzcGluX2xv Y2tfaXJxKCZoaXN0by0+aXJxbG9jayk7Cj4gKwlndWFyZChzcGlubG9ja19pcnEpKCZoaXN0by0+ aXJxbG9jayk7Cj4gKwo+ICAJbGlzdF9hZGRfdGFpbCgmYnVmLT5xdWV1ZSwgJmhpc3RvLT5pcnFx dWV1ZSk7Cj4gLQlzcGluX3VubG9ja19pcnEoJmhpc3RvLT5pcnFsb2NrKTsKPiAgfQo+ICAKPiAg c3RhdGljIGludCBoaXN0b19zdGFydF9zdHJlYW1pbmcoc3RydWN0IHZiMl9xdWV1ZSAqdnEsIHVu c2lnbmVkIGludCBjb3VudCkKPiBAQCAtMTM4LDcgKzEzNiw3IEBAIHN0YXRpYyB2b2lkIGhpc3Rv X3N0b3Bfc3RyZWFtaW5nKHN0cnVjdCB2YjJfcXVldWUgKnZxKQo+ICAJc3RydWN0IHZzcDFfaGlz dG9ncmFtICpoaXN0byA9IHZiMl9nZXRfZHJ2X3ByaXYodnEpOwo+ICAJc3RydWN0IHZzcDFfaGlz dG9ncmFtX2J1ZmZlciAqYnVmZmVyOwo+ICAKPiAtCXNwaW5fbG9ja19pcnEoJmhpc3RvLT5pcnFs b2NrKTsKPiArCWd1YXJkKHNwaW5sb2NrX2lycSkoJmhpc3RvLT5pcnFsb2NrKTsKPiAgCj4gIAkv KiBSZW1vdmUgYWxsIGJ1ZmZlcnMgZnJvbSB0aGUgSVJRIHF1ZXVlLiAqLwo+ICAJbGlzdF9mb3Jf ZWFjaF9lbnRyeShidWZmZXIsICZoaXN0by0+aXJxcXVldWUsIHF1ZXVlKQo+IEBAIC0xNDcsOCAr MTQ1LDYgQEAgc3RhdGljIHZvaWQgaGlzdG9fc3RvcF9zdHJlYW1pbmcoc3RydWN0IHZiMl9xdWV1 ZSAqdnEpCj4gIAo+ICAJLyogV2FpdCBmb3IgdGhlIGJ1ZmZlciBiZWluZyByZWFkIG91dCAoaWYg YW55KSB0byBjb21wbGV0ZS4gKi8KPiAgCXdhaXRfZXZlbnRfbG9ja19pcnEoaGlzdG8tPndhaXRf cXVldWUsICFoaXN0by0+cmVhZG91dCwgaGlzdG8tPmlycWxvY2spOwo+IC0KPiAtCXNwaW5fdW5s b2NrX2lycSgmaGlzdG8tPmlycWxvY2spOwo+ICB9Cj4gIAo+ICBzdGF0aWMgY29uc3Qgc3RydWN0 IHZiMl9vcHMgaGlzdG9fdmlkZW9fcXVldWVfcW9wcyA9IHsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVy cy9tZWRpYS9wbGF0Zm9ybS9yZW5lc2FzL3ZzcDEvdnNwMV9waXBlLmMgYi9kcml2ZXJzL21lZGlh L3BsYXRmb3JtL3JlbmVzYXMvdnNwMS92c3AxX3BpcGUuYwo+IGluZGV4IGFhZWMxYWExNTA5MS4u OTI0ZTg3ZjkxOTAzIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvbWVkaWEvcGxhdGZvcm0vcmVuZXNh cy92c3AxL3ZzcDFfcGlwZS5jCj4gKysrIGIvZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS9yZW5lc2Fz L3ZzcDEvdnNwMV9waXBlLmMKPiBAQCAtNDg3LDE0ICs0ODcsOSBAQCB2b2lkIHZzcDFfcGlwZWxp bmVfcnVuKHN0cnVjdCB2c3AxX3BpcGVsaW5lICpwaXBlKQo+ICAKPiAgYm9vbCB2c3AxX3BpcGVs aW5lX3N0b3BwZWQoc3RydWN0IHZzcDFfcGlwZWxpbmUgKnBpcGUpCj4gIHsKPiAtCXVuc2lnbmVk IGxvbmcgZmxhZ3M7Cj4gLQlib29sIHN0b3BwZWQ7Cj4gKwlndWFyZChzcGlubG9ja19pcnFzYXZl KSgmcGlwZS0+aXJxbG9jayk7Cj4gIAo+IC0Jc3Bpbl9sb2NrX2lycXNhdmUoJnBpcGUtPmlycWxv Y2ssIGZsYWdzKTsKPiAtCXN0b3BwZWQgPSBwaXBlLT5zdGF0ZSA9PSBWU1AxX1BJUEVMSU5FX1NU T1BQRUQ7Cj4gLQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZwaXBlLT5pcnFsb2NrLCBmbGFncyk7 Cj4gLQo+IC0JcmV0dXJuIHN0b3BwZWQ7Cj4gKwlyZXR1cm4gcGlwZS0+c3RhdGUgPT0gVlNQMV9Q SVBFTElORV9TVE9QUEVEOwo+ICB9Cj4gIAo+ICBpbnQgdnNwMV9waXBlbGluZV9zdG9wKHN0cnVj dCB2c3AxX3BpcGVsaW5lICpwaXBlKQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL21lZGlhL3BsYXRm b3JtL3JlbmVzYXMvdnNwMS92c3AxX3ZpZGVvLmMgYi9kcml2ZXJzL21lZGlhL3BsYXRmb3JtL3Jl bmVzYXMvdnNwMS92c3AxX3ZpZGVvLmMKPiBpbmRleCAxMzhkNGUwOGVlZTkuLjFlNWQ5ZTQyY2Vh MCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL21lZGlhL3BsYXRmb3JtL3JlbmVzYXMvdnNwMS92c3Ax X3ZpZGVvLmMKPiArKysgYi9kcml2ZXJzL21lZGlhL3BsYXRmb3JtL3JlbmVzYXMvdnNwMS92c3Ax X3ZpZGVvLmMKPiBAQCAtNjY3LDcgKzY2Nyw3IEBAIHN0YXRpYyB2b2lkIHZzcDFfdmlkZW9fYnVm ZmVyX3F1ZXVlKHN0cnVjdCB2YjJfYnVmZmVyICp2YikKPiAgCWlmICghZW1wdHkpCj4gIAkJcmV0 dXJuOwo+ICAKPiAtCXNwaW5fbG9ja19pcnFzYXZlKCZwaXBlLT5pcnFsb2NrLCBmbGFncyk7Cj4g KwlndWFyZChzcGlubG9ja19pcnFzYXZlKSgmcGlwZS0+aXJxbG9jayk7Cj4gIAo+ICAJdmlkZW8t PnJ3cGYtPm1lbSA9IGJ1Zi0+bWVtOwo+ICAJcGlwZS0+YnVmZmVyc19yZWFkeSB8PSAxIDw8IHZp ZGVvLT5waXBlX2luZGV4Owo+IEBAIC02NzUsOCArNjc1LDYgQEAgc3RhdGljIHZvaWQgdnNwMV92 aWRlb19idWZmZXJfcXVldWUoc3RydWN0IHZiMl9idWZmZXIgKnZiKQo+ICAJaWYgKHZiMl9zdGFy dF9zdHJlYW1pbmdfY2FsbGVkKCZ2aWRlby0+cXVldWUpICYmCj4gIAkgICAgdnNwMV9waXBlbGlu ZV9yZWFkeShwaXBlKSkKPiAgCQl2c3AxX3ZpZGVvX3BpcGVsaW5lX3J1bihwaXBlKTsKPiAtCj4g LQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZwaXBlLT5pcnFsb2NrLCBmbGFncyk7Cj4gIH0KPiAg Cj4gIHN0YXRpYyBpbnQgdnNwMV92aWRlb19waXBlbGluZV9zZXR1cF9wYXJ0aXRpb25zKHN0cnVj dCB2c3AxX3BpcGVsaW5lICpwaXBlKQo+IEBAIC03NzgsMTQgKzc3NiwxMyBAQCBzdGF0aWMgaW50 IHZzcDFfdmlkZW9fc2V0dXBfcGlwZWxpbmUoc3RydWN0IHZzcDFfcGlwZWxpbmUgKnBpcGUpCj4g IHN0YXRpYyB2b2lkIHZzcDFfdmlkZW9fcmVsZWFzZV9idWZmZXJzKHN0cnVjdCB2c3AxX3ZpZGVv ICp2aWRlbykKPiAgewo+ICAJc3RydWN0IHZzcDFfdmIyX2J1ZmZlciAqYnVmZmVyOwo+IC0JdW5z aWduZWQgbG9uZyBmbGFnczsKPiAgCj4gIAkvKiBSZW1vdmUgYWxsIGJ1ZmZlcnMgZnJvbSB0aGUg SVJRIHF1ZXVlLiAqLwo+IC0Jc3Bpbl9sb2NrX2lycXNhdmUoJnZpZGVvLT5pcnFsb2NrLCBmbGFn cyk7Cj4gKwlndWFyZChzcGlubG9ja19pcnFzYXZlKSgmdmlkZW8tPmlycWxvY2spOwo+ICsKPiAg CWxpc3RfZm9yX2VhY2hfZW50cnkoYnVmZmVyLCAmdmlkZW8tPmlycXF1ZXVlLCBxdWV1ZSkKPiAg CQl2YjJfYnVmZmVyX2RvbmUoJmJ1ZmZlci0+YnVmLnZiMl9idWYsIFZCMl9CVUZfU1RBVEVfRVJS T1IpOwo+ICAJSU5JVF9MSVNUX0hFQUQoJnZpZGVvLT5pcnFxdWV1ZSk7Cj4gLQlzcGluX3VubG9j a19pcnFyZXN0b3JlKCZ2aWRlby0+aXJxbG9jaywgZmxhZ3MpOwo+ICB9Cj4gIAo+ICBzdGF0aWMg dm9pZCB2c3AxX3ZpZGVvX2NsZWFudXBfcGlwZWxpbmUoc3RydWN0IHZzcDFfcGlwZWxpbmUgKnBp cGUpCj4gQEAgLTgwNyw3ICs4MDQsNiBAQCBzdGF0aWMgaW50IHZzcDFfdmlkZW9fc3RhcnRfc3Ry ZWFtaW5nKHN0cnVjdCB2YjJfcXVldWUgKnZxLCB1bnNpZ25lZCBpbnQgY291bnQpCj4gIAlzdHJ1 Y3QgdnNwMV92aWRlbyAqdmlkZW8gPSB2YjJfZ2V0X2Rydl9wcml2KHZxKTsKPiAgCXN0cnVjdCB2 c3AxX3BpcGVsaW5lICpwaXBlID0gdmlkZW8tPnJ3cGYtPmVudGl0eS5waXBlOwo+ICAJYm9vbCBz dGFydF9waXBlbGluZSA9IGZhbHNlOwo+IC0JdW5zaWduZWQgbG9uZyBmbGFnczsKPiAgCWludCBy ZXQ7Cj4gIAo+ICAJc2NvcGVkX2d1YXJkKG11dGV4LCAmcGlwZS0+bG9jaykgewo+IEBAIC04MzUs MTAgKzgzMSwxMCBAQCBzdGF0aWMgaW50IHZzcDFfdmlkZW9fc3RhcnRfc3RyZWFtaW5nKHN0cnVj dCB2YjJfcXVldWUgKnZxLCB1bnNpZ25lZCBpbnQgY291bnQpCj4gIAlpZiAoIXN0YXJ0X3BpcGVs aW5lKQo+ICAJCXJldHVybiAwOwo+ICAKPiAtCXNwaW5fbG9ja19pcnFzYXZlKCZwaXBlLT5pcnFs b2NrLCBmbGFncyk7Cj4gKwlndWFyZChzcGlubG9ja19pcnFzYXZlKSgmcGlwZS0+aXJxbG9jayk7 Cj4gKwo+ICAJaWYgKHZzcDFfcGlwZWxpbmVfcmVhZHkocGlwZSkpCj4gIAkJdnNwMV92aWRlb19w aXBlbGluZV9ydW4ocGlwZSk7Cj4gLQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZwaXBlLT5pcnFs b2NrLCBmbGFncyk7Cj4gIAo+ICAJcmV0dXJuIDA7Cj4gIH0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVy cy9tZWRpYS9wbGF0Zm9ybS9yZW5lc2FzL3ZzcDEvdnNwMV93cGYuYyBiL2RyaXZlcnMvbWVkaWEv cGxhdGZvcm0vcmVuZXNhcy92c3AxL3ZzcDFfd3BmLmMKPiBpbmRleCBlN2VkM2M4ZTllOTAuLjMy N2M3NDU3MTI2ZiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL21lZGlhL3BsYXRmb3JtL3JlbmVzYXMv dnNwMS92c3AxX3dwZi5jCj4gKysrIGIvZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS9yZW5lc2FzL3Zz cDEvdnNwMV93cGYuYwo+IEBAIC0xMTEsOSArMTExLDkgQEAgc3RhdGljIGludCB2c3AxX3dwZl9z X2N0cmwoc3RydWN0IHY0bDJfY3RybCAqY3RybCkKPiAgCWlmIChyb3RhdGlvbiA9PSAxODAgfHwg cm90YXRpb24gPT0gMjcwKQo+ICAJCWZsaXAgXj0gQklUKFdQRl9DVFJMX1ZGTElQKSB8IEJJVChX UEZfQ1RSTF9IRkxJUCk7Cj4gIAo+IC0Jc3Bpbl9sb2NrX2lycSgmd3BmLT5mbGlwLmxvY2spOwo+ ICsJZ3VhcmQoc3BpbmxvY2tfaXJxKSgmd3BmLT5mbGlwLmxvY2spOwo+ICsKPiAgCXdwZi0+Zmxp cC5wZW5kaW5nID0gZmxpcDsKPiAtCXNwaW5fdW5sb2NrX2lycSgmd3BmLT5mbGlwLmxvY2spOwo+ ICAKPiAgCXJldHVybiAwOwo+ICB9Cj4gLS0gCj4gUmVnYXJkcywKPiAKPiBMYXVyZW50IFBpbmNo YXJ0Cj4gCj4gCgotLSAKS2luZCBSZWdhcmRzLApOaWtsYXMgU8O2ZGVybHVuZAo=