From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mo4-p02-ob.smtp.rzone.de (mo4-p02-ob.smtp.rzone.de [85.215.255.83]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 49608429026; Mon, 27 Jul 2026 21:18:46 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=pass smtp.client-ip=85.215.255.83 ARC-Seal:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1785187131; cv=pass; b=sidGM2lWO0zlE2trlgUzPueStnLlK7NikjHQzEV/qLvoeFf5xvgnDwnYASAeKZL/Ly/I3pyQQXY2XZieluzqnLDmtnL5Kbv6AS12hosoVjrOmsBb9wm6cYRXOpsyJFBDE3XJGrQBu418ISSialWTYv1XOrtJVuaqAVS0y4zo74w= ARC-Message-Signature:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1785187131; c=relaxed/simple; bh=qIdq+OvxjhGaHmCKBkks2m+S78dGYDBz5fEU1y1YZyc=; h=Message-ID:Subject:From:To:Cc:Date:In-Reply-To:References: Content-Type:MIME-Version; b=tjKcBSBYAIIFs20k8JzQcLc0WF6EiQvMSMrijRElLfS6WL6HelHqspFJcCk6WU0wwRSGCKZqG+PyLgb4km0F+U1zwVge9+Pxn7I1IQdz24QwqE2+q54bwj9TjUalrfkQ8VA5laYGMzjA0j6fsUSxhGK7W7R1xBx8dhHPK3DUYGU= ARC-Authentication-Results:i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=iokpp.de; spf=none smtp.mailfrom=iokpp.de; dkim=pass (2048-bit key) header.d=iokpp.de header.i=@iokpp.de header.b=DPsu8qGZ; dkim=permerror (0-bit key) header.d=iokpp.de header.i=@iokpp.de header.b=9pyIJ3wb; arc=pass smtp.client-ip=85.215.255.83 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=iokpp.de Authentication-Results: smtp.subspace.kernel.org; spf=none smtp.mailfrom=iokpp.de Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=iokpp.de header.i=@iokpp.de header.b="DPsu8qGZ"; dkim=permerror (0-bit key) header.d=iokpp.de header.i=@iokpp.de header.b="9pyIJ3wb" ARC-Seal: i=1; a=rsa-sha256; t=1785187093; cv=none; d=strato.com; s=strato-dkim-0002; b=RmxqItdPJKEadPKxa91ct3zcmVLzMZDtfOK/JBo+gS4vKo6MLTBmybNsA23eq9vM0E HuWLp8eq+x2IVe6Rbn8NcNvnayQdRWixH52AHs+1ig7lQYoNos8WjYqz/GGf4HUosTfy cz00FGnyK3IY1AS70L/YnBxcwUnFkUx0NXon7pUjo3+vsjvk+BSOZ4MPYYzAjQuVMrsJ W2GpEqRhnBtiubmpq90d3+wb9yydc2KoUvcSP1zq3H0QxJ1aHfMzqR+kUmI5V6nsXvLt 011nL3yUWjin+XDr2usLvO12L0XRSGyTbpKiIoJenNFHrblBT+96XjI8PZokKS81Z28S fHtQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; t=1785187093; s=strato-dkim-0002; d=strato.com; h=References:In-Reply-To:Date:Cc:To:From:Subject:Message-ID:Cc:Date: From:Subject:Sender; bh=qIdq+OvxjhGaHmCKBkks2m+S78dGYDBz5fEU1y1YZyc=; b=MUsJKcLQY+7X3TjCJjotdiRrHB1BaVVoUBohh/oHn+a3HKrDE+QBIUTeHFUAxJER+L Sg9/M/WiGuKtb/uNJL5gqSvjGi1dbY4MeikzxdUtfGGLV53v1LVwU4YHdfKKveVFSrXy A32PeRIY8HOiJV25aRL/DIcJAzKbu90s6PsAWa9nFa9gpVW7V3nw9FlyXX6DzSoU6Wdv GMKG1ikdpGEAC/Fk7ivQ5Z6R6UEaBtd6M2VMsMq7DOkmyND+wSx55iYb4UiYpMk2ypCn sp5OjGz7kxgxS+QR8yvV3Z6NZtdDctQvRLRWYa0cYiiJaGZDvhg4LxquIphwFox1/4DW AKYA== ARC-Authentication-Results: i=1; strato.com; arc=none; dkim=none X-RZG-CLASS-ID: mo02 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; t=1785187093; s=strato-dkim-0002; d=iokpp.de; h=References:In-Reply-To:Date:Cc:To:From:Subject:Message-ID:Cc:Date: From:Subject:Sender; bh=qIdq+OvxjhGaHmCKBkks2m+S78dGYDBz5fEU1y1YZyc=; b=DPsu8qGZuxoC1/gLkzFy1gJayT633l5Jp+aTtcd8w6Ve6RPJX4GzgCx/bdygbwnu/O 25ujQ7zU7w0pkGTr6jBX/GD399nzSddH7laFOreyxOIiU9Q5c/fbtpxvTJob4xsoAWru w1l8+fknCPG2GsCWQqp5TzRVspP6qs9pjtcGdw0de6sJuQsLTRnTe0qqqrM8E7WTwAMD zP/bh3RJRVliqCeNA06hCO1HBpSymtMumZCW37TU43TAOU1+8vKxKrYA4XvC7gzsF64Q MOdsiuV3cpaFYwI+n1Gzq3bV8LaqGyxo+FedsgRCgiJDo6APCCvQe6UllWOxUatBdDhO z4ww== DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; t=1785187093; s=strato-dkim-0003; d=iokpp.de; h=References:In-Reply-To:Date:Cc:To:From:Subject:Message-ID:Cc:Date: From:Subject:Sender; bh=qIdq+OvxjhGaHmCKBkks2m+S78dGYDBz5fEU1y1YZyc=; b=9pyIJ3wbShpoifIAKfpv8+4cojhITQOUB1jH42HLYvnj8MUnkgeONb7iK117PrxwV3 1cb3U+RWd3v+TQYSKMAQ== X-RZG-AUTH: ":LmkFe0i9dN8c2t4QQyGBB/NDXvjDB6pBSe9tgBDSDt0V0zNriHg+YfT0rGWUpI6wexrZDe39LpN4CCBnmnSdnfYp+l1hO4Q=" Received: from p200300c58714771a364c499a9faa202b.dip0.t-ipconnect.de by smtp.strato.de (RZmta 55.5.6 AUTH) with ESMTPSA id zeddc926RLICXAj (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256 bits)) (Client did not present a certificate); Mon, 27 Jul 2026 23:18:12 +0200 (CEST) Message-ID: <3fb316bcaa8213f6993028de3f6740c0618d9616.camel@iokpp.de> Subject: Re: [PATCH v3] scsi: ufs: core: Fix UFS RPMB device teardown order From: Bean Huo To: jens.wiklander@oss.qualcomm.com, Ao Sun , "alim.akhtar@samsung.com" , "avri.altman@sandisk.com" , "bvanassche@acm.org" , "James.Bottomley@HansenPartnership.com" , "martin.petersen@oracle.com" , "peter.wang@mediatek.com" , "beanhuo@micron.com" , "can.guo@oss.qualcomm.com" Cc: "linux-scsi@vger.kernel.org" , "linux-kernel@vger.kernel.org" , Jiazi Li , Hongyan Xia , "sashiko-bot@kernel.org" Date: Mon, 27 Jul 2026 23:18:11 +0200 In-Reply-To: <0d90c3e03e7fea341490b8bd239c0354bee9acfe.camel@iokpp.de> References: <20260721084015.319-1-ao.sun@transsion.com> <0d90c3e03e7fea341490b8bd239c0354bee9acfe.camel@iokpp.de> Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: base64 User-Agent: Evolution 3.44.4-0ubuntu2.1 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 T24gV2VkLCAyMDI2LTA3LTIyIGF0IDExOjQzICswMjAwLCBCZWFuIEh1byB3cm90ZToKPiBPbiBU dWUsIDIwMjYtMDctMjEgYXQgMDg6NDEgKzAwMDAsIEFvIFN1biB3cm90ZToKPiA+IEZyb206IEFv IFN1biA8YW8uc3VuQHRyYW5zc2lvbi5jb20+Cj4gPiAKPiA+IFRoZSBjaGlsZCBSUE1CIGRldmlj ZSBob2xkcyBhIHJlZmVyZW5jZSB0byBpdHMgcGFyZW50LCBzbyB0aGUgcGFyZW50J3MKPiA+IHJl bGVhc2UgY2FsbGJhY2sgY2Fubm90IGJlIGludm9rZWQgaWYgdGhlIGNoaWxkIGRldmljZSBpcyBz dGlsbCByZWdpc3RlcmVkLgo+ID4gUmVtb3ZlIHRoZSBycG1iX2Rldl91bnJlZ2lzdGVyKCkgZnJv bSB0aGUgcGFyZW50IHJlbGVhc2UgaGFuZGxlciwgYW5kCj4gPiB1bnJlZ2lzdGVyIHRoZSBjaGls ZCBSUE1CIGRldmljZSBhaGVhZCBvZiB0aGUgcGFyZW50IGRldmljZSBpbiB0aGUgcmVtb3ZlCj4g PiBwYXRoLgo+ID4gCj4gPiBNZW1vcnkgZm9yIHN0cnVjdCB1ZnNfcnBtYl9kZXYgaXMgYWxsb2Nh dGVkIHZpYSBremFsbG9jX29iaigpLCBhbmQgZnJlZSBpdAo+ID4gZnJvbSB0aGUgZGV2aWNlIHJl bGVhc2UgY2FsbGJhY2ssIGZvbGxvd2luZyB0aGUgc2FtZSBwYXR0ZXJuIGFzIE1NQyBSUE1CLgo+ ID4gCj4gPiBJbml0aWFsaXplIHRoZSBoYmEtPnJwbWJzIGxpc3QgaW4gdWZzaGNkX2FsbG9jX2hv c3QoKSB0byBwcmV2ZW50IE5VTEwKPiA+IHBvaW50ZXIgZGVyZWZlcmVuY2UgaW4gdGhlIGRldmlj ZSB0ZWFyZG93biBwYXRoIGlmIHVmc19ycG1iX3Byb2JlKCkKPiA+IGZhaWxzLgo+ID4gCj4gPiBS ZXBvcnRlZC1ieTogc2FzaGlrby1ib3RAa2VybmVsLm9yZwo+ID4gQ2xvc2VzOgo+ID4gaHR0cHM6 Ly9sb3JlLmtlcm5lbC5vcmcvYWxsLzIwMjYwNzE0MDY0MzU2LkNGNzEwMUYwMDBFOUBzbXRwLmtl cm5lbC5vcmcvCj4gPiBTaWduZWQtb2ZmLWJ5OiBKaWF6aSBMaSA8amlhemkubGlAdHJhbnNzaW9u LmNvbT4KPiA+IFNpZ25lZC1vZmYtYnk6IEFvIFN1biA8YW8uc3VuQHRyYW5zc2lvbi5jb20+Cj4g PiAtLS0KPiA+IENoYW5nZXMgaW4gdjM6Cj4gPiDCoCAtIHN3aXRjaCBkZXZtX2t6YWxsb2MoKSB0 byBremFsbG9jX29iaigpCj4gPiDCoCAtIGluaXQgcnBtYnMgbGlzdCBpbiB1ZnNoY2QKPiA+IC0t LQo+ID4gQ2hhbmdlcyBpbiB2MjoKPiA+IMKgIC0gZHJvcCB0aGUgcmVsZWFzZSBjYWxsYmFjawo+ ID4gwqAgLSBpbml0IHJwbWJzIGxpc3QgZWFybHkKPiA+IC0tLQo+ID4gwqBkcml2ZXJzL3Vmcy9j b3JlL3Vmcy1ycG1iLmMgfCA4ICsrKystLS0tCj4gPiDCoGRyaXZlcnMvdWZzL2NvcmUvdWZzaGNk LmPCoMKgIHwgMSArCj4gPiDCoDIgZmlsZXMgY2hhbmdlZCwgNSBpbnNlcnRpb25zKCspLCA0IGRl bGV0aW9ucygtKQo+ID4gCj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy91ZnMvY29yZS91ZnMtcnBt Yi5jIGIvZHJpdmVycy91ZnMvY29yZS91ZnMtcnBtYi5jCj4gPiBpbmRleCBmZmFkMDQ5ODcyYjku LmNmZDFmMDc0ZDAwNCAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMvdWZzL2NvcmUvdWZzLXJwbWIu Ywo+ID4gKysrIGIvZHJpdmVycy91ZnMvY29yZS91ZnMtcnBtYi5jCj4gPiBAQCAtMTI4LDcgKzEy OCw3IEBAIHN0YXRpYyB2b2lkIHVmc19ycG1iX2RldmljZV9yZWxlYXNlKHN0cnVjdCBkZXZpY2Ug KmRldikKPiA+IMKgewo+ID4gwqDCoMKgwqDCoMKgwqDCoHN0cnVjdCB1ZnNfcnBtYl9kZXYgKnVm c19ycG1iID0gZGV2X2dldF9kcnZkYXRhKGRldik7Cj4gPiDCoAo+ID4gLcKgwqDCoMKgwqDCoMKg cnBtYl9kZXZfdW5yZWdpc3Rlcih1ZnNfcnBtYi0+cmRldik7Cj4gPiArwqDCoMKgwqDCoMKgwqBr ZnJlZSh1ZnNfcnBtYik7Cj4gPiDCoH0KPiA+IMKgCj4gPiDCoC8qIFVGUyBSUE1CIGRldmljZSBy ZWdpc3RyYXRpb24gKi8KPiA+IEBAIC0xNTIsOCArMTUyLDYgQEAgaW50IHVmc19ycG1iX3Byb2Jl KHN0cnVjdCB1ZnNfaGJhICpoYmEpCj4gPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oHJldHVybiAtRUlOVkFMOwo+ID4gwqDCoMKgwqDCoMKgwqDCoH0KPiA+IMKgCj4gPiAtwqDCoMKg wqDCoMKgwqBJTklUX0xJU1RfSEVBRCgmaGJhLT5ycG1icyk7Cj4gPiAtCj4gPiDCoMKgwqDCoMKg wqDCoMKgc3RydWN0IHJwbWJfZGVzY3IgZGVzY3IgPSB7Cj4gPiDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoC50eXBlID0gUlBNQl9UWVBFX1VGUywKPiA+IMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgLnJvdXRlX2ZyYW1lcyA9IHVmc19ycG1iX3JvdXRlX2ZyYW1lcywKPiA+ IEBAIC0xNjUsNyArMTYzLDcgQEAgaW50IHVmc19ycG1iX3Byb2JlKHN0cnVjdCB1ZnNfaGJhICpo YmEpCj4gPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGlmICghY2FwKQo+ID4gwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgY29udGludWU7Cj4g PiDCoAo+ID4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHVmc19ycG1iID0gZGV2bV9r emFsbG9jKGhiYS0+ZGV2LCBzaXplb2YoKnVmc19ycG1iKSwKPiA+IEdGUF9LRVJORUwpOwo+ID4g K8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHVmc19ycG1iID0ga3phbGxvY19vYmooKnVm c19ycG1iKTsKPiA+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgaWYgKCF1ZnNfcnBt Yikgewo+ID4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg cmV0ID0gLUVOT01FTTsKPiA+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoGdvdG8gZXJyX291dDsKPiA+IEBAIC0yMjQsNiArMjIyLDcgQEAgaW50IHVmc19y cG1iX3Byb2JlKHN0cnVjdCB1ZnNfaGJhICpoYmEpCj4gPiDCoMKgwqDCoMKgwqDCoMKga2ZyZWUo Y2lkKTsKPiA+IMKgwqDCoMKgwqDCoMKgwqBsaXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmUoaXQsIHRt cCwgJmhiYS0+cnBtYnMsIG5vZGUpIHsKPiA+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgbGlzdF9kZWwoJml0LT5ub2RlKTsKPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqBycG1iX2Rldl91bnJlZ2lzdGVyKGl0LT5yZGV2KTsKPiA+IMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgZGV2aWNlX3VucmVnaXN0ZXIoJml0LT5kZXYpOwo+ID4gwqDCoMKgwqDCoMKg wqDCoH0KPiA+IMKgCj4gPiBAQCAtMjQ0LDYgKzI0Myw3IEBAIHZvaWQgdWZzX3JwbWJfcmVtb3Zl KHN0cnVjdCB1ZnNfaGJhICpoYmEpCj4gPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oC8qIFJlbW92ZSBmcm9tIGxpc3QgZmlyc3QgKi8KPiA+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgbGlzdF9kZWwoJnVmc19ycG1iLT5ub2RlKTsKPiA+IMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgLyogVW5yZWdpc3RlciBkZXZpY2UgKi8KPiA+ICvCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqBycG1iX2Rldl91bnJlZ2lzdGVyKHVmc19ycG1iLT5yZGV2KTsKPiA+ IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgZGV2aWNlX3VucmVnaXN0ZXIoJnVmc19y cG1iLT5kZXYpOwo+ID4gwqDCoMKgwqDCoMKgwqDCoH0KPiA+IMKgCj4gPiBkaWZmIC0tZ2l0IGEv ZHJpdmVycy91ZnMvY29yZS91ZnNoY2QuYyBiL2RyaXZlcnMvdWZzL2NvcmUvdWZzaGNkLmMKPiA+ IGluZGV4IGQzMDQ0YTMwODliNS4uNjAyMjcwNjlkYjA2IDEwMDY0NAo+ID4gLS0tIGEvZHJpdmVy cy91ZnMvY29yZS91ZnNoY2QuYwo+ID4gKysrIGIvZHJpdmVycy91ZnMvY29yZS91ZnNoY2QuYwo+ ID4gQEAgLTEwOTg4LDYgKzEwOTg4LDcgQEAgaW50IHVmc2hjZF9hbGxvY19ob3N0KHN0cnVjdCBk ZXZpY2UgKmRldiwgc3RydWN0Cj4gPiB1ZnNfaGJhICoqaGJhX2hhbmRsZSkKPiA+IMKgwqDCoMKg wqDCoMKgwqBoYmEtPm5vcF9vdXRfdGltZW91dCA9IE5PUF9PVVRfVElNRU9VVDsKPiA+IMKgwqDC oMKgwqDCoMKgwqB1ZnNoY2Rfc2V0X3NnX2VudHJ5X3NpemUoaGJhLCBzaXplb2Yoc3RydWN0IHVm c2hjZF9zZ19lbnRyeSkpOwo+ID4gwqDCoMKgwqDCoMKgwqDCoElOSVRfTElTVF9IRUFEKCZoYmEt PmNsa19saXN0X2hlYWQpOwo+ID4gK8KgwqDCoMKgwqDCoMKgSU5JVF9MSVNUX0hFQUQoJmhiYS0+ cnBtYnMpOwo+ID4gwqDCoMKgwqDCoMKgwqDCoHNwaW5fbG9ja19pbml0KCZoYmEtPm91dHN0YW5k aW5nX2xvY2spOwo+ID4gwqAKPiA+IMKgwqDCoMKgwqDCoMKgwqAqaGJhX2hhbmRsZSA9IGhiYTsK PiAKPiAKPiBIaSBBbywKPiAKPiBUaGFua3MgZm9yIHRoZSBwYXRjaC4gSSByZXZpZXdlZCB0aGUg d2hvbGUgUlBNQiBjb3JlIGFuZCBPUFRFRSBjYWxsIHNlcXVlbmNleSwKPiB0aGUgaXNzdWUgaXMg cmVhbCzCoAo+IAo+IFRoZSBpc3N1ZSBpcyB0aGUgbGlmZXRpbWUgb2YgdWZzX3JwbWIgLyB1ZnNf cnBtYi0+ZGV2IHZlcnN1cyB0aGUgcnBtYiBkZXZpY2UKPiByZGV2IHdoZW4gYSBjb25zdW1lciBo b2xkcyBhIHJlZmVyZW5jZSBvZiByZGV2Lgo+IAo+IAo+IGJ1dCBJIGRvbid0IHRoaW5rIHdlIGNh biB0YWtlIHRoaXMgcGF0Y2guIG1vdmluZyBycG1iX2Rldl91bnJlZ2lzdGVyKCkgaW50bwo+IHRo ZQo+IHJlbW92ZSBwYXRoIGFuZCBmcmVlaW5nIHVmc19ycG1iIGVhZ2VybHksIHRoZW4gbWFrZSB1 c2UtYWZ0ZXItZnJlZS4KPiAKPiAKPiBPUC1URUUgY2FjaGVzIHRoZSBycG1iIGRldmljZTogb24g dGhlIFJQTUIgcHJvYmUgcGF0aDogb3B0ZWUtPnJwbWJfZGV2ID0KPiBycG1iX2Rldl9maW5kX2Rl dmljZSgpLCB3aGNoIHRha2luZyBpdHMgb3duIHJlZmVyZW5jZSwgYW5kIHJldXNlcyB0aGF0IGhh bmRsZQo+IGZvciBldmVyeSBzdWJzZXF1ZW50IGZyYW1lIGluIGhhbmRsZV9ycGNfZnVuY19ycG1i X2ZyYW1lcygpLiBJdCBvbmx5IGRyb3BzIHRoZQo+IHJlZmVyZW5jZSBpbiBzZWN1cmUtd29ybGQg cmVzY2FuIG9yIGF0IG9wdGVlIHRlYXJkb3duLiBBbmQgcnBtYl9jbGFzc19pbnRmIGhhcwo+IG9u bHkgYWRkX2RldiwgYnV0IG5vIHJlbW92ZV9kZXYsIHNvIG5vdGhpbmcgdGVsbHMgT1AtVEVFIGNv cmUgd2hlbiB3ZQo+IHVucmVnaXN0ZXIKPiB0aGUgZGV2aWNlLgo+IAo+IAo+IEkgdGhpbmsgdGhl IGNvcnJlY3QgZml4IGJlbG9uZ3MgaW4gcnBtYi1jb3JlOiBhIHJldm9jYXRpb24gYmFycmllciBz byB0aGF0Cj4gb25jZQo+IHJwbWJfZGV2X3VucmVnaXN0ZXIoKSByZXR1cm5zLCByb3V0ZV9mcmFt ZXMoKSBpcyBndWFyYW50ZWVkIG5ldmVyIHRvIHJ1bgo+IGFnYWluLMKgZm9yIGV4YW1wbGU6Cj4g Cj4gwqDCoMKgwqAgwqByb3V0ZV9mcmFtZXMoKQo+IMKgwqDCoMKgwqDCoMKgwqB7Cj4gwqDCoMKg wqDCoMKgwqDCoMKgIGRvd25fcmVhZCgmcmRldi0+cm91dGVfbG9jayk7wqAgLy9ibG9jayAKPiDC oMKgwqDCoMKgwqDCoMKgwqAgaWYgKHJkZXYtPm5vX3JvdXRlKQo+IMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgIHJldCA9IC1FTk9ERVY7Cj4gwqDCoMKgwqDCoMKgwqDCoMKgIGVsc2UKPiDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCByZXQgPSByZGV2LT5kZXNjci5yb3V0ZV9mcmFtZXMocmRl di0+ZGV2LnBhcmVudCwgLi4uKTsKPiDCoMKgwqDCoMKgwqDCoMKgwqAgdXBfcmVhZCgmcmRldi0+ cm91dGVfbG9jayk7Cj4gwqDCoMKgwqDCoMKgwqDCoMKgIHJldHVybiByZXQ7Cj4gwqDCoMKgwqDC oCB9Cj4gwqDCoMKgwqDCoCAKPiDCoMKgwqDCoMKgIGludCBycG1iX2Rldl91bnJlZ2lzdGVyKHN0 cnVjdCBycG1iX2RldiAqcmRldikKPiDCoMKgwqDCoMKgIHsKPiDCoMKgwqDCoMKgwqDCoMKgwqAg ZG93bl93cml0ZSgmcmRldi0+cm91dGVfbG9jayk7wqAgLy9kcmFpbiBpbi1mbGlnaHQsIGJsb2Nr IGZ1dHVyZSAKPiDCoMKgwqDCoMKgwqDCoMKgwqAgcmRldi0+bm9fcm91dGUgPSB0cnVlOwo+IMKg wqDCoMKgwqDCoMKgwqDCoCB1cF93cml0ZSgmcmRldi0+cm91dGVfbG9jayk7Cj4gwqDCoMKgwqDC oMKgwqDCoMKgIGRldmljZV9kZWwoJnJkZXYtPmRldik7Cj4gwqDCoMKgwqDCoMKgwqDCoMKgIHJw bWJfZGV2X3B1dChyZGV2KTsKPiDCoMKgwqDCoMKgwqDCoMKgwqAgcmV0dXJuIDA7Cj4gwqDCoMKg wqDCoCB9wqDCoCAKPiDCoMKgwqDCoMKgIAo+IEBqZW5zLCBob3cgZG8geW91IHRoaW5rPyBJJ20g aGFwcHkgdG8gaGVscCB3aXRoIHRoZSBycG1iLWNvcmUgcGllY2UgaWYgdGhhdCdzCj4gdXNlZnVs Lgo+IAoKSGkgSmVucywgCgpub3RpY2VkIHlvdXIgZW1haWwgY2huYWdlZCwgY29uZ3JhdHMgb24g dGhlIG5ldyBjb21wYW55ISBXaGVuIHlvdSBnZXQgYSBjaGFuY2UsCndvdWxkIHlvdSBtaW5kIHRh a2luZyBhIGxvb2sgYXQgdGhlIHByb3Bvc2FsIGFib3ZlPyBZb3VyIHN1Z2dlc3Rpb24gb24gdGhl IHJwbWItCmNvcmUgc2lkZSB3b3VsZCBiZSBtdWNoIGFwcHJlY2lhdGVkLgoKCktpbmQgcmVnYXJk cywKQmVhbgoKPiAKPiB0aGUgSU5JVF9MSVNUX0hFQUQoKSBtb3ZlIGlzIGEgc2VwYXJhdGUgcGF0 Y2ggKE5VTEwgZGVyZWYgb24gdGhlIGVhcmx5LXJldHVybgo+IHByb2JlIHBhdGhzLCBzaW5jZSBo YmEtPnJwbWJzIGlzIGxlZnQgemVyb2VkKS4gUGxlYXNlIHNwbGl0IGl0IGludG8gbmV3IHBhdGNo Cj4gd2l0aCBhIEZpeGVzIHRhZy4KPiAKPiAKPiBLaW5kIHJlZ2FyZHMsIAo+IEJlYW4KPiAKPiAK Cg==