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 X-Spam-Level: X-Spam-Status: No, score=-14.2 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,INCLUDES_CR_TRAILER,INCLUDES_PATCH,MAILING_LIST_MULTI, SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id D65C1C433E0 for ; Thu, 21 Jan 2021 21:27:03 +0000 (UTC) Received: from merlin.infradead.org (merlin.infradead.org [205.233.59.134]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 6274123381 for ; Thu, 21 Jan 2021 21:27:03 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 6274123381 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=kernel.org Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=merlin.20170209; h=Sender:Content-Transfer-Encoding: Content-Type:Cc:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To:Subject:To:From: Message-ID:Date:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=C+p4TqjZoo0wtkMTFL7iLuoKFW62GtqlZFF4KSXRLhE=; b=AEasI7FABEjB0brZyHIBkHe2X gp5ToxurKbzI6RbJkgy3blYm4og+jvZTja5MYc4LMVPTcU+5SpA4GlmRxRAw+HMRBlvkwWLwup2b3 yTnwDq1kNSpH5H7xWoiIsCpIh9+i/QFPUf1lRH7/6R+3MuQ8xUpMpOPdjQqVQcsZcBYz3iGKQkn5Y bRG4W26gYnNqxs2kG3AC7SKMUZEFxM0xA9zW5x2PabeXqD2Gjmwj/W0RaC+7fQZqFejaQkbKVeGYQ c/rr3EeY4wtge1aOuVUG2HzEuBejHF3mHJ7l6Y6+5cNVIorAA6OCKfvUhkU7Q9XWea0i52kkhN1Qt T3P00hdcg==; Received: from localhost ([::1] helo=merlin.infradead.org) by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1l2hSP-0002gr-Io; Thu, 21 Jan 2021 21:25:33 +0000 Received: from mail.kernel.org ([198.145.29.99]) by merlin.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1l2hSN-0002fz-1w for linux-arm-kernel@lists.infradead.org; Thu, 21 Jan 2021 21:25:32 +0000 Received: from disco-boy.misterjones.org (disco-boy.misterjones.org [51.254.78.96]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 1028423381; Thu, 21 Jan 2021 21:25:30 +0000 (UTC) Received: from 78.163-31-62.static.virginmediabusiness.co.uk ([62.31.163.78] helo=wait-a-minute.misterjones.org) by disco-boy.misterjones.org with esmtpsa (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94) (envelope-from ) id 1l2hSJ-009Hu8-Mx; Thu, 21 Jan 2021 21:25:28 +0000 Date: Thu, 21 Jan 2021 21:25:26 +0000 Message-ID: <87o8hij83d.wl-maz@kernel.org> From: Marc Zyngier To: Shameer Kolothum Subject: Re: [PATCH] genirq/msi: Make sure early activation of all PCI MSIs In-Reply-To: <20210121110247.20320-1-shameerali.kolothum.thodi@huawei.com> References: <20210121110247.20320-1-shameerali.kolothum.thodi@huawei.com> User-Agent: Wanderlust/2.15.9 (Almost Unreal) SEMI-EPG/1.14.7 (Harue) FLIM-LB/1.14.9 (=?UTF-8?B?R29qxY0=?=) APEL-LB/10.8 Emacs/27.1 (x86_64-pc-linux-gnu) MULE/6.0 (HANACHIRUSATO) MIME-Version: 1.0 (generated by SEMI-EPG 1.14.7 - "Harue") X-SA-Exim-Connect-IP: 62.31.163.78 X-SA-Exim-Rcpt-To: shameerali.kolothum.thodi@huawei.com, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, eric.auger@redhat.com, tglx@linutronix.de, linuxarm@openeuler.org, prime.zeng@hisilicon.com, wangzhou1@hisilicon.com X-SA-Exim-Mail-From: maz@kernel.org X-SA-Exim-Scanned: No (on disco-boy.misterjones.org); SAEximRunCond expanded to false X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20210121_162531_234552_CC6706FC X-CRM114-Status: GOOD ( 38.15 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: linux-kernel@vger.kernel.org, linuxarm@openeuler.org, eric.auger@redhat.com, wangzhou1@hisilicon.com, prime.zeng@hisilicon.com, tglx@linutronix.de, linux-arm-kernel@lists.infradead.org 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 SGkgU2hhbWVlciwKCk9uIFRodSwgMjEgSmFuIDIwMjEgMTE6MDI6NDcgKzAwMDAsClNoYW1lZXIg S29sb3RodW0gPHNoYW1lZXJhbGkua29sb3RodW0udGhvZGlAaHVhd2VpLmNvbT4gd3JvdGU6Cj4g Cj4gV2UgY3VycmVudGx5wqBkbyBlYXJseSBhY3RpdmF0aW9uIG9mIE1TSSBpcnFzIGZvciBQQ0kv TVNJIGJhc2VkIG9uCj4gdGhlIE1TSV9GTEFHX0FDVElWQVRFX0VBUkxZIGZsYWcuwqBUaG91Z2gg dGhpcyBhY3RpdmF0ZXMgYWxsIHRoZQo+IGFsbG9jYXRlZCBNU0lzIGluIHRoZSBjYXNlIG9mIE1T SS1YLCBpdCBvbmx5IGRvZXMgc28gZm9yIHRoZQo+IGJhc2UgaXJxIGluIHRoZSBjYXNlIG9mIE1T SS4gVGhpcyBpcyBiZWNhdXNlLCBmb3IgTVNJLCB0aGVyZQo+IGlzIG9ubHkgb25lIG1zaV9kZXNj IGVudHJ5IGZvciBhbGwgdGhlIDMyIGlycXMgaXQgY2FuIHN1cHBvcnQKPiBhbmQgdGhlIGN1cnJl bnQgaW1wbGVtZW50YXRpb24gaXRlcmF0ZXMgb3ZlciB0aGUgbXNpIGVudHJpZXMgYW5kCj4gZW5k cyB1cCBhY3RpdmF0aW5nIHRoZSBiYXNlIGlycSBvbmx5Lgo+IAo+IFRoZSBhYm92ZSBjcmVhdGVz IGFuIGlzc3VlIG9uIHBsYXRmb3JtcyB3aGVyZSB0aGUgbXNpIGNvbnRyb2xsZXIKPiBzdXBwb3J0 cyBkaXJlY3QgaW5qZWN0aW9uIG9mIHZMUElzKGVnOiBBUk0gR0lDdjQgSVRTKS7CoE9uIHRoZXNl Cj4gcGxhdGZvcm1zLCB1cG9uIGlycSBhY3RpdmF0aW9uLCBJVFPCoGRyaXZlciBtYXBzIHRoZSBl dmVudCB0byBhbgo+IElUVCBlbnRyeS4gQW5kIGZvciBHdWVzdCBwYXNzLXRocm91Z2ggdG8gd29y aywgZWFybHkgbWFwcGluZyBvZgo+IGFsbCB0aGUgZGV2IE1TSSB2ZWN0b3JzIGlzIHJlcXVpcmVk LiBPdGhlcndpc2UsIHRoZSB2ZmlvIGlycQo+IGJ5cGFzcyBtYW5hZ2VyIHJlZ2lzdHJhdGlvbiB3 aWxsIGZhaWwuIGVnLCBPbiBhIEhpU2lsaWNvbiBEMDYKPiBwbGF0Zm9ybSB3aXRoIEdJQ3Y0IGVu YWJsZWQsIEd1ZXN0IGJvb3Qgd2l0aCB6aXAgZGV2IHBhc3MtdGhyb3VnaAo+IHJlcG9ydHMsCj4g Cj4gInZmaW8tcGNpIDAwMDA6NzU6MDAuMTogaXJxIGJ5cGFzcyBwcm9kdWNlciAodG9rZW4gMDAw MDAwMDAwNmU1MTc2YSkKPiByZWdpc3RyYXRpb24gZmFpbHM6IDY2MzExIgo+IAo+IGFuZCBHdWVz dCBib290IGZhaWxzLgo+IAo+IFRoaXMgaXMgdHJhY2VkIHRvLAo+IMKgIMKga3ZtX2FyY2hfaXJx X2J5cGFzc19hZGRfcHJvZHVjZXIKPiDCoCDCoCDCoGt2bV92Z2ljX3Y0X3NldF9mb3J3YXJkaW5n Cj4gwqAgwqAgwqAgwqB2Z2ljX2l0c19yZXNvbHZlX2xwaSAtLT4gcmV0dXJucyBFX0lUU19JTlRf VU5NQVBQRURfSU5URVJSVVBUCj4gCj4gSGVuY2UgbWFrZSBzdXJlIHdlIGFjdGl2YXRlIGFsbCB0 aGUgaXJxcyBmb3IgYm90aCBNU0kgYW5kIE1TSS14IGNhc2VzLgo+IAo+IFNpZ25lZC1vZmYtYnk6 IFNoYW1lZXIgS29sb3RodW0gPHNoYW1lZXJhbGkua29sb3RodW0udGhvZGlAaHVhd2VpLmNvbT4K PiAtLS0KPiBJdCBpcyB1bmNsZWFyIHRvIG1lIHdoZXRoZXIgbm90IHBlcmZvcm1pbmcgdGhlIGVh cmx5IGFjdGl2YXRpb24gb2YgYWxsCj4gTVNJIGlycXMgd2FzIGRlbGliZXJhdGUgYW5kIGhhcyBj b25zZXF1ZW5jZXMgb24gYW55IG90aGVyIHBsYXRmb3Jtcy4KPiBQbGVhc2UgbGV0IG1lIGtub3cu CgpQcm9iYWJseSBqdXN0IGFuIG92ZXJzaWdodC4KCj4gCj4gVGhhbmtzLAo+IFNoYW1lZXIgCj4g LS0tCj4gIGtlcm5lbC9pcnEvbXNpLmMgfCAxMTQgKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKy0tLS0tLS0tLS0KPiAgMSBmaWxlIGNoYW5nZWQsIDkwIGluc2VydGlvbnMoKyks IDI0IGRlbGV0aW9ucygtKQo+IAo+IGRpZmYgLS1naXQgYS9rZXJuZWwvaXJxL21zaS5jIGIva2Vy bmVsL2lycS9tc2kuYwo+IGluZGV4IDJjMGM0ZDZkMGY4My4uZWVjMTg3ZmMzMmE5IDEwMDY0NAo+ IC0tLSBhL2tlcm5lbC9pcnEvbXNpLmMKPiArKysgYi9rZXJuZWwvaXJxL21zaS5jCj4gQEAgLTM5 NSw2ICszOTUsNzggQEAgc3RhdGljIGJvb2wgbXNpX2NoZWNrX3Jlc2VydmF0aW9uX21vZGUoc3Ry dWN0IGlycV9kb21haW4gKmRvbWFpbiwKPiAgCXJldHVybiBkZXNjLT5tc2lfYXR0cmliLmlzX21z aXggfHwgZGVzYy0+bXNpX2F0dHJpYi5tYXNrYml0Owo+ICB9Cj4gIAo+ICtzdGF0aWMgdm9pZCBt c2lfZG9tYWluX2RlYWN0aXZhdGVfaXJxKHN0cnVjdCBpcnFfZG9tYWluICpkb21haW4sIGludCBp cnEpCj4gK3sKPiArCXN0cnVjdCBpcnFfZGF0YSAqaXJxZDsKPiArCj4gKwlpcnFkID0gaXJxX2Rv bWFpbl9nZXRfaXJxX2RhdGEoZG9tYWluLCBpcnEpOwo+ICsJaWYgKGlycWRfaXNfYWN0aXZhdGVk KGlycWQpKQo+ICsJCWlycV9kb21haW5fZGVhY3RpdmF0ZV9pcnEoaXJxZCk7Cj4gK30KPiArCj4g K3N0YXRpYyBpbnQgbXNpX2RvbWFpbl9hY3RpdmF0ZV9pcnEoc3RydWN0IGlycV9kb21haW4gKmRv bWFpbiwKPiArCQkJCSAgIGludCBpcnEsIGJvb2wgY2FuX3Jlc2VydmUpCj4gK3sKPiArCXN0cnVj dCBpcnFfZGF0YSAqaXJxZDsKPiArCj4gKwlpcnFkID0gaXJxX2RvbWFpbl9nZXRfaXJxX2RhdGEo ZG9tYWluLCBpcnEpOwo+ICsJaWYgKCFjYW5fcmVzZXJ2ZSkgewo+ICsJCWlycWRfY2xyX2Nhbl9y ZXNlcnZlKGlycWQpOwo+ICsJCWlmIChkb21haW4tPmZsYWdzICYgSVJRX0RPTUFJTl9NU0lfTk9N QVNLX1FVSVJLKQo+ICsJCQlpcnFkX3NldF9tc2lfbm9tYXNrX3F1aXJrKGlycWQpOwo+ICsJfQo+ ICsJcmV0dXJuIGlycV9kb21haW5fYWN0aXZhdGVfaXJxKGlycWQsIGNhbl9yZXNlcnZlKTsKPiAr fQo+ICsKPiArc3RhdGljIGludCBtc2lfZG9tYWluX2FjdGl2YXRlX21zaXhfaXJxcyhzdHJ1Y3Qg aXJxX2RvbWFpbiAqZG9tYWluLAo+ICsJCQkJCSBzdHJ1Y3QgZGV2aWNlICpkZXYsIGJvb2wgY2Fu X3Jlc2VydmUpCj4gK3sKPiArCXN0cnVjdCBtc2lfZGVzYyAqZGVzYzsKPiArCWludCByZXQsIGly cTsKPiArCj4gKwlmb3JfZWFjaF9tc2lfZW50cnkoZGVzYywgZGV2KSB7Cj4gKwkJaXJxID0gZGVz Yy0+aXJxOwo+ICsJCXJldCA9IG1zaV9kb21haW5fYWN0aXZhdGVfaXJxKGRvbWFpbiwgaXJxLCBj YW5fcmVzZXJ2ZSk7Cj4gKwkJaWYgKHJldCkKPiArCQkJZ290byBvdXQ7Cj4gKwl9Cj4gKwlyZXR1 cm4gMDsKPiArCj4gK291dDoKPiArCWZvcl9lYWNoX21zaV9lbnRyeShkZXNjLCBkZXYpIHsKPiAr CQlpZiAoaXJxID09IGRlc2MtPmlycSkKPiArCQkJYnJlYWs7Cj4gKwkJbXNpX2RvbWFpbl9kZWFj dGl2YXRlX2lycShkb21haW4sIGRlc2MtPmlycSk7Cj4gKwl9Cj4gKwlyZXR1cm4gcmV0Owo+ICt9 Cj4gKwo+ICtzdGF0aWMgaW50IG1zaV9kb21haW5fYWN0aXZhdGVfbXNpX2lycXMoc3RydWN0IGly cV9kb21haW4gKmRvbWFpbiwKPiArCQkJCQlzdHJ1Y3QgZGV2aWNlICpkZXYsIGJvb2wgY2FuX3Jl c2VydmUpCj4gK3sKPiArCXN0cnVjdCBtc2lfZGVzYyAqZGVzYzsKPiArCWludCBpLCByZXQsIGJh c2UsIGlycTsKPiArCj4gKwlkZXNjID0gZmlyc3RfbXNpX2VudHJ5KGRldik7Cj4gKwliYXNlID0g ZGVzYy0+aXJxOwo+ICsKPiArCWZvciAoaSA9IDA7IGkgPCBkZXNjLT5udmVjX3VzZWQ7IGkrKykg ewo+ICsJCWlycSA9IGJhc2UgKyBpOwo+ICsJCXJldCA9IG1zaV9kb21haW5fYWN0aXZhdGVfaXJx KGRvbWFpbiwgaXJxLCBjYW5fcmVzZXJ2ZSk7Cj4gKwkJaWYgKHJldCkKPiArCQkJZ290byBvdXQ7 Cj4gKwl9Cj4gKwlyZXR1cm4gMDsKPiArCj4gK291dDoKPiArCWZvciAoaSA9IDA7IGkgPCBkZXNj LT5udmVjX3VzZWQ7IGkrKykgewo+ICsJCWlmIChpcnEgPT0gYmFzZSArIGkpCj4gKwkJCWJyZWFr Owo+ICsJCW1zaV9kb21haW5fZGVhY3RpdmF0ZV9pcnEoZG9tYWluLCBiYXNlICsgaSk7Cj4gKwl9 Cj4gKwlyZXR1cm4gcmV0Owo+ICt9Cj4gKwo+ICBpbnQgX19tc2lfZG9tYWluX2FsbG9jX2lycXMo c3RydWN0IGlycV9kb21haW4gKmRvbWFpbiwgc3RydWN0IGRldmljZSAqZGV2LAo+ICAJCQkgICAg aW50IG52ZWMpCj4gIHsKPiBAQCAtNDQzLDIxICs1MTUsMjUgQEAgaW50IF9fbXNpX2RvbWFpbl9h bGxvY19pcnFzKHN0cnVjdCBpcnFfZG9tYWluICpkb21haW4sIHN0cnVjdCBkZXZpY2UgKmRldiwK PiAgCQllbHNlCj4gIAkJCWRldl9kYmcoZGV2LCAiaXJxIFslZC0lZF0gZm9yIE1TSVxuIiwKPiAg CQkJCXZpcnEsIHZpcnEgKyBkZXNjLT5udmVjX3VzZWQgLSAxKTsKPiAtCQkvKgo+IC0JCSAqIFRo aXMgZmxhZyBpcyBzZXQgYnkgdGhlIFBDSSBsYXllciBhcyB3ZSBuZWVkIHRvIGFjdGl2YXRlCj4g LQkJICogdGhlIE1TSSBlbnRyaWVzIGJlZm9yZSB0aGUgUENJIGxheWVyIGVuYWJsZXMgTVNJIGlu IHRoZQo+IC0JCSAqIGNhcmQuIE90aGVyd2lzZSB0aGUgY2FyZCBsYXRjaGVzIGEgcmFuZG9tIG1z aSBtZXNzYWdlLgo+IC0JCSAqLwo+IC0JCWlmICghKGluZm8tPmZsYWdzICYgTVNJX0ZMQUdfQUNU SVZBVEVfRUFSTFkpKQo+IC0JCQljb250aW51ZTsKPiArCX0KPiAgCj4gLQkJaXJxX2RhdGEgPSBp cnFfZG9tYWluX2dldF9pcnFfZGF0YShkb21haW4sIGRlc2MtPmlycSk7Cj4gLQkJaWYgKCFjYW5f cmVzZXJ2ZSkgewo+IC0JCQlpcnFkX2Nscl9jYW5fcmVzZXJ2ZShpcnFfZGF0YSk7Cj4gLQkJCWlm IChkb21haW4tPmZsYWdzICYgSVJRX0RPTUFJTl9NU0lfTk9NQVNLX1FVSVJLKQo+IC0JCQkJaXJx ZF9zZXRfbXNpX25vbWFza19xdWlyayhpcnFfZGF0YSk7Cj4gLQkJfQo+IC0JCXJldCA9IGlycV9k b21haW5fYWN0aXZhdGVfaXJxKGlycV9kYXRhLCBjYW5fcmVzZXJ2ZSk7Cj4gKwkvKgo+ICsJICog VGhpcyBmbGFnIGlzIHNldCBieSB0aGUgUENJIGxheWVyIGFzIHdlIG5lZWQgdG8gYWN0aXZhdGUK PiArCSAqIHRoZSBNU0kgZW50cmllcyBiZWZvcmUgdGhlIFBDSSBsYXllciBlbmFibGVzIE1TSSBp biB0aGUKPiArCSAqIGNhcmQuIE90aGVyd2lzZSB0aGUgY2FyZCBsYXRjaGVzIGEgcmFuZG9tIG1z aSBtZXNzYWdlLgo+ICsJICogRWFybHkgYWN0aXZhdGlvbiBpcyBhbHNvIHJlcXVpcmVkIHdoZW4g dGhlIG1zaSBjb250cm9sbGVyCj4gKwkgKiBzdXBwb3J0cyBkaXJlY3QgaW5qZWN0aW9uIG9mIHZp cnR1YWwgTFBJcyhlZy4gQVJNIEdJQ3Y0IElUUykuCj4gKwkgKiBPdGhlcndpc2UsIHRoZSBEZXZJ RC9FdmVudElEIC0+IExQSSB0cmFuc2xhdGlvbiBmb3IgcGFzcy10aHJvdWdoCj4gKwkgKiBkZXZp Y2VzIHdpbGwgZmFpbC4gTWFrZSBzdXJlIHdlIGRvIGFjdGl2YXRlIGFsbCB0aGUgYWxsb2NhdGVk Cj4gKwkgKiBpcnFzIGZvciBNU0kgYW5kIE1TSS1YIGNhc2VzLgo+ICsJICovCj4gKwlpZiAoKGlu Zm8tPmZsYWdzICYgTVNJX0ZMQUdfQUNUSVZBVEVfRUFSTFkpKSB7Cj4gKwkJZGVzYyA9IGZpcnN0 X21zaV9lbnRyeShkZXYpOwo+ICsKPiArCQlpZiAoZGVzYy0+bXNpX2F0dHJpYi5pc19tc2l4KQo+ ICsJCQlyZXQgPSBtc2lfZG9tYWluX2FjdGl2YXRlX21zaXhfaXJxcyhkb21haW4sIGRldiwgY2Fu X3Jlc2VydmUpOwo+ICsJCWVsc2UKPiArCQkJcmV0ID0gbXNpX2RvbWFpbl9hY3RpdmF0ZV9tc2lf aXJxcyhkb21haW4sIGRldiwgY2FuX3Jlc2VydmUpOwo+ICAJCWlmIChyZXQpCj4gIAkJCWdvdG8g Y2xlYW51cDsKPiAgCX0KPiBAQCAtNDc1LDE2ICs1NTEsNiBAQCBpbnQgX19tc2lfZG9tYWluX2Fs bG9jX2lycXMoc3RydWN0IGlycV9kb21haW4gKmRvbWFpbiwgc3RydWN0IGRldmljZSAqZGV2LAo+ ICAJcmV0dXJuIDA7Cj4gIAo+ICBjbGVhbnVwOgo+IC0JZm9yX2VhY2hfbXNpX2VudHJ5KGRlc2Ms IGRldikgewo+IC0JCXN0cnVjdCBpcnFfZGF0YSAqaXJxZDsKPiAtCj4gLQkJaWYgKGRlc2MtPmly cSA9PSB2aXJxKQo+IC0JCQlicmVhazsKPiAtCj4gLQkJaXJxZCA9IGlycV9kb21haW5fZ2V0X2ly cV9kYXRhKGRvbWFpbiwgZGVzYy0+aXJxKTsKPiAtCQlpZiAoaXJxZF9pc19hY3RpdmF0ZWQoaXJx ZCkpCj4gLQkJCWlycV9kb21haW5fZGVhY3RpdmF0ZV9pcnEoaXJxZCk7Cj4gLQl9Cj4gIAltc2lf ZG9tYWluX2ZyZWVfaXJxcyhkb21haW4sIGRldik7Cj4gIAlyZXR1cm4gcmV0Owo+ICB9Cj4gLS0g Cj4gMi4xNy4xCj4gCj4gCgpJIGZpbmQgdGhpcyBwcmV0dHkgY29tcGxpY2F0ZWQsIGFuZCB0aGUg SSdkIGxpa2UgdG8gYXZvaWQgaW5qZWN0aW5nCnRoZSBQQ0kgTVNJLXZzLU1TSS1YIGNvbmNlcHQg aW4gc29tZXRoaW5nIHRoYXQgaXMgc3VwcG9zZWQgdG8gYmUKYnVzLWFnbm9zdGljLgoKV2hhdCdz IHdyb25nIHdpdGggdGhlIGZvbGxvd2luZyAodW50ZXN0ZWQpIHBhdGNoLCB3aGljaCBsb29rcyBt dWNoCnNpbXBsZXI/CgpUaGFua3MsCgoJTS4KCmRpZmYgLS1naXQgYS9rZXJuZWwvaXJxL21zaS5j IGIva2VybmVsL2lycS9tc2kuYwppbmRleCAyYzBjNGQ2ZDBmODMuLmE5MzBkMDNjMmM2NyAxMDA2 NDQKLS0tIGEva2VybmVsL2lycS9tc2kuYworKysgYi9rZXJuZWwvaXJxL21zaS5jCkBAIC00NTEs MTUgKzQ1MSwxNyBAQCBpbnQgX19tc2lfZG9tYWluX2FsbG9jX2lycXMoc3RydWN0IGlycV9kb21h aW4gKmRvbWFpbiwgc3RydWN0IGRldmljZSAqZGV2LAogCQlpZiAoIShpbmZvLT5mbGFncyAmIE1T SV9GTEFHX0FDVElWQVRFX0VBUkxZKSkKIAkJCWNvbnRpbnVlOwogCi0JCWlycV9kYXRhID0gaXJx X2RvbWFpbl9nZXRfaXJxX2RhdGEoZG9tYWluLCBkZXNjLT5pcnEpOwotCQlpZiAoIWNhbl9yZXNl cnZlKSB7Ci0JCQlpcnFkX2Nscl9jYW5fcmVzZXJ2ZShpcnFfZGF0YSk7Ci0JCQlpZiAoZG9tYWlu LT5mbGFncyAmIElSUV9ET01BSU5fTVNJX05PTUFTS19RVUlSSykKLQkJCQlpcnFkX3NldF9tc2lf bm9tYXNrX3F1aXJrKGlycV9kYXRhKTsKKwkJZm9yIChpID0gMDsgaSA8IGRlc2MtPm52ZWNfdXNl ZDsgaSsrKSB7CisJCQlpcnFfZGF0YSA9IGlycV9kb21haW5fZ2V0X2lycV9kYXRhKGRvbWFpbiwg ZGVzYy0+aXJxICsgaSk7CisJCQlpZiAoIWNhbl9yZXNlcnZlKSB7CisJCQkJaXJxZF9jbHJfY2Fu X3Jlc2VydmUoaXJxX2RhdGEpOworCQkJCWlmIChkb21haW4tPmZsYWdzICYgSVJRX0RPTUFJTl9N U0lfTk9NQVNLX1FVSVJLKQorCQkJCQlpcnFkX3NldF9tc2lfbm9tYXNrX3F1aXJrKGlycV9kYXRh KTsKKwkJCX0KKwkJCXJldCA9IGlycV9kb21haW5fYWN0aXZhdGVfaXJxKGlycV9kYXRhLCBjYW5f cmVzZXJ2ZSk7CisJCQlpZiAocmV0KQorCQkJCWdvdG8gY2xlYW51cDsKIAkJfQotCQlyZXQgPSBp cnFfZG9tYWluX2FjdGl2YXRlX2lycShpcnFfZGF0YSwgY2FuX3Jlc2VydmUpOwotCQlpZiAocmV0 KQotCQkJZ290byBjbGVhbnVwOwogCX0KIAogCS8qCkBAIC00NzgsMTIgKzQ4MCwxNCBAQCBpbnQg X19tc2lfZG9tYWluX2FsbG9jX2lycXMoc3RydWN0IGlycV9kb21haW4gKmRvbWFpbiwgc3RydWN0 IGRldmljZSAqZGV2LAogCWZvcl9lYWNoX21zaV9lbnRyeShkZXNjLCBkZXYpIHsKIAkJc3RydWN0 IGlycV9kYXRhICppcnFkOwogCisJCWZvciAoaSA9IDA7IGkgPCBkZXNjLT5udmVjX3VzZWQ7IGkr KykgeworCQkJaXJxZCA9IGlycV9kb21haW5fZ2V0X2lycV9kYXRhKGRvbWFpbiwgZGVzYy0+aXJx ICsgaSk7CisJCQlpZiAoaXJxZF9pc19hY3RpdmF0ZWQoaXJxZCkpCisJCQkJaXJxX2RvbWFpbl9k ZWFjdGl2YXRlX2lycShpcnFkKTsKKwkJfQorCiAJCWlmIChkZXNjLT5pcnEgPT0gdmlycSkKIAkJ CWJyZWFrOwotCi0JCWlycWQgPSBpcnFfZG9tYWluX2dldF9pcnFfZGF0YShkb21haW4sIGRlc2Mt PmlycSk7Ci0JCWlmIChpcnFkX2lzX2FjdGl2YXRlZChpcnFkKSkKLQkJCWlycV9kb21haW5fZGVh Y3RpdmF0ZV9pcnEoaXJxZCk7CiAJfQogCW1zaV9kb21haW5fZnJlZV9pcnFzKGRvbWFpbiwgZGV2 KTsKIAlyZXR1cm4gcmV0OwoKLS0gCldpdGhvdXQgZGV2aWF0aW9uIGZyb20gdGhlIG5vcm0sIHBy b2dyZXNzIGlzIG5vdCBwb3NzaWJsZS4KCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fCmxpbnV4LWFybS1rZXJuZWwgbWFpbGluZyBsaXN0CmxpbnV4LWFybS1r ZXJuZWxAbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWls bWFuL2xpc3RpbmZvL2xpbnV4LWFybS1rZXJuZWwK