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 726F1C433EF for ; Fri, 6 May 2022 18:21:05 +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:MIME-Version:References:In-Reply-To: Subject:Cc: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=JWzlO/rviRNw+DJyMtzSl5S9JP3AUKnq22jRzcBGJTk=; b=jDed1bJFDM764B e1LPH/U4R2JuXyaM7kvL2RMpTV2CwykV2+QM7tnfdEaWz0iDaiien/sCOKMsaVJOgXigJoTj2+lgj nUUIWtjLLesl8z58kIc3WNYjmhLubY2POt81nXEz22SkGzSWh13KlxBWiQkAcgMVRtWzb/KRlzh2o W3KtjIwsggjYclBoMhbCDo4UTCEvNeYFojp/GfZJF9BW4sfADC4zoXUZ/e5c9FL73jK0ep1GDI6ge LMrq6411BIRuVNXcHIqRvplEu4d4ix+WUA4CkcWUkj+2A/eovergtBFOoVctCEAeIG/y/GyYIZsxv lnsZUjavCm4dC9b7HGKA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1nn2YW-004fi0-Ro; Fri, 06 May 2022 18:19:56 +0000 Received: from ams.source.kernel.org ([145.40.68.75]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1nn2YS-004fgM-Qv for linux-arm-kernel@lists.infradead.org; Fri, 06 May 2022 18:19:55 +0000 Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ams.source.kernel.org (Postfix) with ESMTPS id 3DED6B83736; Fri, 6 May 2022 18:19:51 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id AB7BCC385A9; Fri, 6 May 2022 18:19:49 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1651861189; bh=F8OZZkP2VCHLM+mFrp5QDGv1xHS8ckfdGAQvYzcVY7Y=; h=Date:From:To:Cc:Subject:In-Reply-To:References:From; b=CxFcRt2W8R/2CfHJ1kJIK6DpbkFRyRblymXIh7LUrOVMd5W11l1shKAC2BQG8nG8G QQupTw66h7pCGhAEjkpyG42MlPdQnclc1sSudXsVzmIRyOOd8FjgsVGmRRWWV+QUma rD4pdd+8ByoVzetqrxsKMaITP6PijA8lofpp9xr/wRlhC1gXGSeefovRsyUk65Wcva /IMS8efd5u+f/saSw8uISjQPWH0nyeD+eetTf5XMBXb5UzhyDJvo8oIrieAqA0BJyC rmEhLVU3RAdqbuLnm+E4zgE9ghOWubRqDAvEiRBlk/Q8lUkaHzzkBWOQdhCp5YXwe7 IQUyzm4DgbkxA== Received: from sofa.misterjones.org ([185.219.108.64] helo=why.misterjones.org) by disco-boy.misterjones.org with esmtpsa (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1nn2YN-009X4h-4G; Fri, 06 May 2022 19:19:47 +0100 Date: Fri, 06 May 2022 19:19:46 +0100 Message-ID: <87mtfu7ccd.wl-maz@kernel.org> From: Marc Zyngier To: Pali =?UTF-8?B?Um9ow6Fy?= Cc: Thomas Gleixner , Rob Herring , Bjorn Helgaas , Andrew Lunn , Gregory Clement , Sebastian Hesselbarth , Thomas Petazzoni , Lorenzo Pieralisi , Krzysztof =?UTF-8?B?V2lsY3p5xYRza2k=?= , Marek =?UTF-8?B?QmVow7pu?= , linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, linux-pci@vger.kernel.org, linux-arm-kernel@lists.infradead.org Subject: Re: [PATCH 2/6] irqchip/armada-370-xp: Implement SoC Error interrupts In-Reply-To: <20220506134029.21470-3-pali@kernel.org> References: <20220506134029.21470-1-pali@kernel.org> <20220506134029.21470-3-pali@kernel.org> 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 EasyPG/1.0.0 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: 185.219.108.64 X-SA-Exim-Rcpt-To: pali@kernel.org, tglx@linutronix.de, robh+dt@kernel.org, bhelgaas@google.com, andrew@lunn.ch, gregory.clement@bootlin.com, sebastian.hesselbarth@gmail.com, thomas.petazzoni@bootlin.com, lorenzo.pieralisi@arm.com, kw@linux.com, kabel@kernel.org, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, linux-pci@vger.kernel.org, linux-arm-kernel@lists.infradead.org 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-20220506_111953_203659_BB59F6CC X-CRM114-Status: GOOD ( 44.03 ) 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 T24gRnJpLCAwNiBNYXkgMjAyMiAxNDo0MDoyNSArMDEwMCwKUGFsaSBSb2jDoXIgPHBhbGlAa2Vy bmVsLm9yZz4gd3JvdGU6Cj4gCj4gTVBJQyBJUlEgNCBpcyB1c2VkIGFzIFNvQyBFcnJvciBTdW1t YXJ5IGludGVycnVwdCBhbmQgcHJvdmlkZXMgYWNjZXNzIHRvCj4gYW5vdGhlciBoaWVyYXJjaHkg b2YgU29DIEVycm9yIGludGVycnVwdHMuIEltcGxlbWVudCBhIG5ldyBJUlEgY2hpcCBhbmQKPiBk b21haW4gZm9yIGFjY2Vzc2luZyB0aGlzIElSUSBoaWVyYXJjaHkuCj4gCj4gU2lnbmVkLW9mZi1i eTogUGFsaSBSb2jDoXIgPHBhbGlAa2VybmVsLm9yZz4KPiAtLS0KPiAgZHJpdmVycy9pcnFjaGlw L2lycS1hcm1hZGEtMzcwLXhwLmMgfCAyMTMgKysrKysrKysrKysrKysrKysrKysrKysrKysrLQo+ ICAxIGZpbGUgY2hhbmdlZCwgMjEwIGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCj4gCj4g ZGlmZiAtLWdpdCBhL2RyaXZlcnMvaXJxY2hpcC9pcnEtYXJtYWRhLTM3MC14cC5jIGIvZHJpdmVy cy9pcnFjaGlwL2lycS1hcm1hZGEtMzcwLXhwLmMKPiBpbmRleCBlYmQ3NmVhMWM2OWIuLjcxNTc4 YjY1ZjVjOCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2lycWNoaXAvaXJxLWFybWFkYS0zNzAteHAu Ywo+ICsrKyBiL2RyaXZlcnMvaXJxY2hpcC9pcnEtYXJtYWRhLTM3MC14cC5jCj4gQEAgLTExNyw2 ICsxMTcsOCBAQAo+ICAvKiBSZWdpc3RlcnMgcmVsYXRpdmUgdG8gbWFpbl9pbnRfYmFzZSAqLwo+ ICAjZGVmaW5lIEFSTUFEQV8zNzBfWFBfSU5UX0NPTlRST0wJCSgweDAwKQo+ICAjZGVmaW5lIEFS TUFEQV8zNzBfWFBfU1dfVFJJR19JTlRfT0ZGUwkJKDB4MDQpCj4gKyNkZWZpbmUgQVJNQURBXzM3 MF9YUF9JTlRfU09DX0VSUl8wX0NBVVNFX09GRlMJKDB4MjApCj4gKyNkZWZpbmUgQVJNQURBXzM3 MF9YUF9JTlRfU09DX0VSUl8xX0NBVVNFX09GRlMJKDB4MjQpCj4gICNkZWZpbmUgQVJNQURBXzM3 MF9YUF9JTlRfU0VUX0VOQUJMRV9PRkZTCSgweDMwKQo+ICAjZGVmaW5lIEFSTUFEQV8zNzBfWFBf SU5UX0NMRUFSX0VOQUJMRV9PRkZTCSgweDM0KQo+ICAjZGVmaW5lIEFSTUFEQV8zNzBfWFBfSU5U X1NPVVJDRV9DVEwoaXJxKQkoMHgxMDAgKyBpcnEqNCkKPiBAQCAtMTMwLDYgKzEzMiw4IEBACj4g ICNkZWZpbmUgQVJNQURBXzM3MF9YUF9DUFVfSU5UQUNLX09GRlMJCSgweDQ0KQo+ICAjZGVmaW5l IEFSTUFEQV8zNzBfWFBfSU5UX1NFVF9NQVNLX09GRlMJCSgweDQ4KQo+ICAjZGVmaW5lIEFSTUFE QV8zNzBfWFBfSU5UX0NMRUFSX01BU0tfT0ZGUwkoMHg0QykKPiArI2RlZmluZSBBUk1BREFfMzcw X1hQX0lOVF9TT0NfRVJSXzBfTUFTS19PRkYJKDB4NTApCj4gKyNkZWZpbmUgQVJNQURBXzM3MF9Y UF9JTlRfU09DX0VSUl8xX01BU0tfT0ZGCSgweDU0KQo+ICAjZGVmaW5lIEFSTUFEQV8zNzBfWFBf SU5UX0ZBQlJJQ19NQVNLX09GRlMJKDB4NTQpCj4gICNkZWZpbmUgQVJNQURBXzM3MF9YUF9JTlRf Q0FVU0VfUEVSRihjcHUpCSgxIDw8IGNwdSkKPiAgCj4gQEAgLTE0Niw2ICsxNTAsOCBAQAo+ICBz dGF0aWMgdm9pZCBfX2lvbWVtICpwZXJfY3B1X2ludF9iYXNlOwo+ICBzdGF0aWMgdm9pZCBfX2lv bWVtICptYWluX2ludF9iYXNlOwo+ICBzdGF0aWMgc3RydWN0IGlycV9kb21haW4gKmFybWFkYV8z NzBfeHBfbXBpY19kb21haW47Cj4gK3N0YXRpYyBzdHJ1Y3QgaXJxX2RvbWFpbiAqYXJtYWRhXzM3 MF94cF9zb2NfZXJyX2RvbWFpbjsKPiArc3RhdGljIHVuc2lnbmVkIGludCBzb2NfZXJyX2lycV9u dW1fcmVnczsKPiAgc3RhdGljIHUzMiBkb29yYmVsbF9tYXNrX3JlZzsKPiAgc3RhdGljIGludCBw YXJlbnRfaXJxOwo+ICAjaWZkZWYgQ09ORklHX1BDSV9NU0kKPiBAQCAtMTU2LDYgKzE2Miw4IEBA IHN0YXRpYyBERUZJTkVfTVVURVgobXNpX3VzZWRfbG9jayk7Cj4gIHN0YXRpYyBwaHlzX2FkZHJf dCBtc2lfZG9vcmJlbGxfYWRkcjsKPiAgI2VuZGlmCj4gIAo+ICtzdGF0aWMgdm9pZCBhcm1hZGFf MzcwX3hwX3NvY19lcnJfaXJxX3VubWFzayhzdHJ1Y3QgaXJxX2RhdGEgKmQpOwo+ICsKPiAgc3Rh dGljIGlubGluZSBib29sIGlzX3BlcmNwdV9pcnEoaXJxX2h3X251bWJlcl90IGlycSkKPiAgewo+ ICAJaWYgKGlycSA8PSBBUk1BREFfMzcwX1hQX01BWF9QRVJfQ1BVX0lSUVMpCj4gQEAgLTUwOSw2 ICs1MTcsMjcgQEAgc3RhdGljIHZvaWQgYXJtYWRhX3hwX21waWNfcmVlbmFibGVfcGVyY3B1KHZv aWQpCj4gIAkJYXJtYWRhXzM3MF94cF9pcnFfdW5tYXNrKGRhdGEpOwo+ICAJfQo+ICAKPiArCS8q IFJlLWVuYWJsZSBwZXItQ1BVIFNvQyBFcnJvciBpbnRlcnJ1cHRzIHRoYXQgd2VyZSBlbmFibGVk IGJlZm9yZSBzdXNwZW5kICovCj4gKwlmb3IgKGlycSA9IDA7IGlycSA8IHNvY19lcnJfaXJxX251 bV9yZWdzICogMzI7IGlycSsrKSB7Cj4gKwkJc3RydWN0IGlycV9kYXRhICpkYXRhOwo+ICsJCWlu dCB2aXJxOwo+ICsKPiArCQl2aXJxID0gaXJxX2xpbmVhcl9yZXZtYXAoYXJtYWRhXzM3MF94cF9z b2NfZXJyX2RvbWFpbiwgaXJxKTsKPiArCQlpZiAodmlycSA9PSAwKQo+ICsJCQljb250aW51ZTsK PiArCj4gKwkJZGF0YSA9IGlycV9nZXRfaXJxX2RhdGEodmlycSk7Cj4gKwo+ICsJCWlmICghaXJx X3BlcmNwdV9pc19lbmFibGVkKHZpcnEpKQo+ICsJCQljb250aW51ZTsKPiArCj4gKwkJYXJtYWRh XzM3MF94cF9zb2NfZXJyX2lycV91bm1hc2soZGF0YSk7Cj4gKwl9CgpTbyB5b3UgZG8gdGhpcyBs b29wIGFuZCBhbGwgdGhlc2UgbG9va3VwcywgYm90aCBoZXJlIGFuZCBpbiB0aGUgcmVzdW1lCmZ1 bmN0aW9uIChkdXBsaWNhdGVkIGNvZGUhKSBqdXN0IHRvIGJlIGFibGUgdG8gY2FsbCB0aGUgdW5t YXNrCmZ1bmN0aW9uPyAgVGhpcyB3b3VsZCBiZSBiZXR0ZXIgc2VydmVkIGJ5IHR3byBzdHJhaWdo dCB3cml0ZXMgb2YgdGhlCm1hc2sgcmVnaXN0ZXIsIHdoaWNoIHlvdSdkIGNvbnZlbmllbnRseSBz YXZlIG9uIHN1c3BlbmQuCgpZZXMsIHlvdSBoYXZlIG9ubHkgZHVwbGljYXRlZCB0aGUgZXhpc3Rp bmcgbG9naWMuIEJ1dCBzdXJlbHkgdGhlcmUgaXMKc29tZXRoaW5nIGJldHRlciB0byBkby4KCj4g Kwo+ICsJLyogVW5tYXNrIHN1bW1hcnkgU29DIEVycm9yIEludGVycnVwdCAqLwo+ICsJaWYgKHNv Y19lcnJfaXJxX251bV9yZWdzID4gMCkKPiArCQl3cml0ZWwoNCwgcGVyX2NwdV9pbnRfYmFzZSAr IEFSTUFEQV8zNzBfWFBfSU5UX0NMRUFSX01BU0tfT0ZGUyk7Cj4gKwo+ICAJaXBpX3Jlc3VtZSgp Owo+ICB9Cj4gIAo+IEBAIC01NDYsOCArNTc1LDggQEAgc3RhdGljIHN0cnVjdCBpcnFfY2hpcCBh cm1hZGFfMzcwX3hwX2lycV9jaGlwID0gewo+ICBzdGF0aWMgaW50IGFybWFkYV8zNzBfeHBfbXBp Y19pcnFfbWFwKHN0cnVjdCBpcnFfZG9tYWluICpoLAo+ICAJCQkJICAgICAgdW5zaWduZWQgaW50 IHZpcnEsIGlycV9od19udW1iZXJfdCBodykKPiAgewo+IC0JLyogSVJRcyAwIGFuZCAxIGNhbm5v dCBiZSBtYXBwZWQsIHRoZXkgYXJlIGhhbmRsZWQgaW50ZXJuYWxseSAqLwo+IC0JaWYgKGh3IDw9 IDEpCj4gKwkvKiBJUlFzIDAsIDEgYW5kIDQgY2Fubm90IGJlIG1hcHBlZCwgdGhleSBhcmUgaGFu ZGxlZCBpbnRlcm5hbGx5ICovCj4gKwlpZiAoaHcgPD0gMSB8fCBodyA9PSA0KQo+ICAJCXJldHVy biAtRUlOVkFMOwo+ICAKPiAgCWFybWFkYV8zNzBfeHBfaXJxX21hc2soaXJxX2dldF9pcnFfZGF0 YSh2aXJxKSk7Cj4gQEAgLTU3Nyw2ICs2MDYsOTkgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBpcnFf ZG9tYWluX29wcyBhcm1hZGFfMzcwX3hwX21waWNfaXJxX29wcyA9IHsKPiAgCS54bGF0ZSA9IGly cV9kb21haW5feGxhdGVfb25lY2VsbCwKPiAgfTsKPiAgCj4gK3N0YXRpYyBERUZJTkVfUkFXX1NQ SU5MT0NLKGFybWFkYV8zNzBfeHBfc29jX2Vycl9sb2NrKTsKPiArCj4gK3N0YXRpYyB2b2lkIGFy bWFkYV8zNzBfeHBfc29jX2Vycl9pcnFfbWFzayhzdHJ1Y3QgaXJxX2RhdGEgKmQpCj4gK3sKPiAr CWlycV9od19udW1iZXJfdCBod2lycSA9IGlycWRfdG9faHdpcnEoZCk7Cj4gKwl1MzIgcmVnLCBt YXNrOwo+ICsKPiArCXJlZyA9IGh3aXJxID49IDMyID8gQVJNQURBXzM3MF9YUF9JTlRfU09DX0VS Ul8xX01BU0tfT0ZGCj4gKwkJCSAgOiBBUk1BREFfMzcwX1hQX0lOVF9TT0NfRVJSXzBfTUFTS19P RkY7Cj4gKwo+ICsJcmF3X3NwaW5fbG9jaygmYXJtYWRhXzM3MF94cF9zb2NfZXJyX2xvY2spOwo+ ICsJbWFzayA9IHJlYWRsKHBlcl9jcHVfaW50X2Jhc2UgKyByZWcpOwo+ICsJbWFzayAmPSB+QklU KGh3aXJxICUgMzIpOwo+ICsJd3JpdGVsKG1hc2ssIHBlcl9jcHVfaW50X2Jhc2UgKyByZWcpOwo+ ICsJcmF3X3NwaW5fdW5sb2NrKCZhcm1hZGFfMzcwX3hwX3NvY19lcnJfbG9jayk7Cj4gK30KPiAr Cj4gK3N0YXRpYyB2b2lkIGFybWFkYV8zNzBfeHBfc29jX2Vycl9pcnFfdW5tYXNrKHN0cnVjdCBp cnFfZGF0YSAqZCkKPiArewo+ICsJaXJxX2h3X251bWJlcl90IGh3aXJxID0gaXJxZF90b19od2ly cShkKTsKPiArCXUzMiByZWcsIG1hc2s7Cj4gKwo+ICsJcmVnID0gaHdpcnEgPj0gMzIgPyBBUk1B REFfMzcwX1hQX0lOVF9TT0NfRVJSXzFfTUFTS19PRkYKPiArCQkJICA6IEFSTUFEQV8zNzBfWFBf SU5UX1NPQ19FUlJfMF9NQVNLX09GRjsKPiArCj4gKwlyYXdfc3Bpbl9sb2NrKCZhcm1hZGFfMzcw X3hwX3NvY19lcnJfbG9jayk7Cj4gKwltYXNrID0gcmVhZGwocGVyX2NwdV9pbnRfYmFzZSArIHJl Zyk7Cj4gKwltYXNrIHw9IEJJVChod2lycSAlIDMyKTsKPiArCXdyaXRlbChtYXNrLCBwZXJfY3B1 X2ludF9iYXNlICsgcmVnKTsKPiArCXJhd19zcGluX3VubG9jaygmYXJtYWRhXzM3MF94cF9zb2Nf ZXJyX2xvY2spOwo+ICt9Cj4gKwo+ICtzdGF0aWMgaW50IGFybWFkYV8zNzBfeHBfc29jX2Vycl9p cnFfbWFza19vbl9jcHUodm9pZCAqcGFyKQo+ICt7Cj4gKwlzdHJ1Y3QgaXJxX2RhdGEgKmQgPSBw YXI7Cj4gKwlhcm1hZGFfMzcwX3hwX3NvY19lcnJfaXJxX21hc2soZCk7Cj4gKwlyZXR1cm4gMDsK PiArfQo+ICsKPiArc3RhdGljIGludCBhcm1hZGFfMzcwX3hwX3NvY19lcnJfaXJxX3VubWFza19v bl9jcHUodm9pZCAqcGFyKQo+ICt7Cj4gKwlzdHJ1Y3QgaXJxX2RhdGEgKmQgPSBwYXI7Cj4gKwlh cm1hZGFfMzcwX3hwX3NvY19lcnJfaXJxX3VubWFzayhkKTsKPiArCXJldHVybiAwOwo+ICt9Cj4g Kwo+ICtzdGF0aWMgaW50IGFybWFkYV94cF9zb2NfZXJyX2lycV9zZXRfYWZmaW5pdHkoc3RydWN0 IGlycV9kYXRhICpkLAo+ICsJCQkJCSAgICAgIGNvbnN0IHN0cnVjdCBjcHVtYXNrICptYXNrLAo+ ICsJCQkJCSAgICAgIGJvb2wgZm9yY2UpCj4gK3sKPiArCXVuc2lnbmVkIGludCBjcHU7Cj4gKwo+ ICsJY3B1c19yZWFkX2xvY2soKTsKPiArCj4gKwkvKiBGaXJzdCBkaXNhYmxlIElSUSBvbiBhbGwg Y29yZXMgKi8KPiArCWZvcl9lYWNoX29ubGluZV9jcHUoY3B1KQo+ICsJCXNtcF9jYWxsX29uX2Nw dShjcHUsIGFybWFkYV8zNzBfeHBfc29jX2Vycl9pcnFfbWFza19vbl9jcHUsIGQsIHRydWUpOwo+ ICsKPiArCS8qIFNlbGVjdCBhIHNpbmdsZSBjb3JlIGZyb20gdGhlIGFmZmluaXR5IG1hc2sgd2hp Y2ggaXMgb25saW5lICovCj4gKwljcHUgPSBjcHVtYXNrX2FueV9hbmQobWFzaywgY3B1X29ubGlu ZV9tYXNrKTsKPiArCXNtcF9jYWxsX29uX2NwdShjcHUsIGFybWFkYV8zNzBfeHBfc29jX2Vycl9p cnFfdW5tYXNrX29uX2NwdSwgZCwgdHJ1ZSk7Cj4gKwo+ICsJY3B1c19yZWFkX3VubG9jaygpOwo+ ICsKPiArCWlycV9kYXRhX3VwZGF0ZV9lZmZlY3RpdmVfYWZmaW5pdHkoZCwgY3B1bWFza19vZihj cHUpKTsKPiArCj4gKwlyZXR1cm4gSVJRX1NFVF9NQVNLX09LOwo+ICt9CgpBcmVuJ3QgdGhlc2Ug cGVyLUNQVSBpbnRlcnJ1cHRzIGFueXdheT8gV2hhdCBkb2VzIGl0IG1lYW4gdG8gc2V0IHRoZWly CmFmZmluaXR5PyAvbWUgcm9sbHMgZXllcy4uLgoKPiArCj4gK3N0YXRpYyBzdHJ1Y3QgaXJxX2No aXAgYXJtYWRhXzM3MF94cF9zb2NfZXJyX2lycV9jaGlwID0gewo+ICsJLm5hbWUgPSAiTVBJQyBT T0MiLAo+ICsJLmlycV9tYXNrID0gYXJtYWRhXzM3MF94cF9zb2NfZXJyX2lycV9tYXNrLAo+ICsJ LmlycV91bm1hc2sgPSBhcm1hZGFfMzcwX3hwX3NvY19lcnJfaXJxX3VubWFzaywKPiArCS5pcnFf c2V0X2FmZmluaXR5ID0gYXJtYWRhX3hwX3NvY19lcnJfaXJxX3NldF9hZmZpbml0eSwKPiArfTsK PiArCj4gK3N0YXRpYyBpbnQgYXJtYWRhXzM3MF94cF9zb2NfZXJyX2lycV9tYXAoc3RydWN0IGly cV9kb21haW4gKmgsCj4gKwkJCQkJIHVuc2lnbmVkIGludCB2aXJxLCBpcnFfaHdfbnVtYmVyX3Qg aHcpCj4gK3sKPiArCWFybWFkYV8zNzBfeHBfc29jX2Vycl9pcnFfbWFzayhpcnFfZ2V0X2lycV9k YXRhKHZpcnEpKTsKPiArCWlycV9zZXRfc3RhdHVzX2ZsYWdzKHZpcnEsIElSUV9MRVZFTCk7Cj4g KwlpcnFfc2V0X3BlcmNwdV9kZXZpZCh2aXJxKTsKPiArCWlycV9zZXRfY2hpcF9hbmRfaGFuZGxl cih2aXJxLCAmYXJtYWRhXzM3MF94cF9zb2NfZXJyX2lycV9jaGlwLAo+ICsJCQkJIGhhbmRsZV9w ZXJjcHVfZGV2aWRfaXJxKTsKPiArCWlycV9zZXRfcHJvYmUodmlycSk7Cj4gKwlyZXR1cm4gMDsK PiArfQo+ICsKPiArc3RhdGljIGNvbnN0IHN0cnVjdCBpcnFfZG9tYWluX29wcyBhcm1hZGFfMzcw X3hwX3NvY19lcnJfaXJxX29wcyA9IHsKPiArCS5tYXAgPSBhcm1hZGFfMzcwX3hwX3NvY19lcnJf aXJxX21hcCwKPiArCS54bGF0ZSA9IGlycV9kb21haW5feGxhdGVfb25lY2VsbCwKPiArfTsKPiAr Cj4gICNpZmRlZiBDT05GSUdfUENJX01TSQo+ICBzdGF0aWMgdm9pZCBhcm1hZGFfMzcwX3hwX2hh bmRsZV9tc2lfaXJxKHN0cnVjdCBwdF9yZWdzICpyZWdzLCBib29sIGlzX2NoYWluZWQpCj4gIHsK PiBAQCAtNjA1LDYgKzcyNywzMiBAQCBzdGF0aWMgdm9pZCBhcm1hZGFfMzcwX3hwX2hhbmRsZV9t c2lfaXJxKHN0cnVjdCBwdF9yZWdzICpyZWdzLCBib29sIGlzX2NoYWluZWQpCj4gIHN0YXRpYyB2 b2lkIGFybWFkYV8zNzBfeHBfaGFuZGxlX21zaV9pcnEoc3RydWN0IHB0X3JlZ3MgKnIsIGJvb2wg Yikge30KPiAgI2VuZGlmCj4gIAo+ICtzdGF0aWMgdm9pZCBhcm1hZGFfMzcwX3hwX2hhbmRsZV9z b2NfZXJyX2lycSh2b2lkKQo+ICt7Cj4gKwl1bnNpZ25lZCBsb25nIHN0YXR1cywgYml0Owo+ICsJ dTMyIG1hc2ssIGNhdXNlOwo+ICsKPiArCWlmIChzb2NfZXJyX2lycV9udW1fcmVncyA8IDEpCj4g KwkJcmV0dXJuOwo+ICsKPiArCW1hc2sgPSByZWFkbChwZXJfY3B1X2ludF9iYXNlICsgQVJNQURB XzM3MF9YUF9JTlRfU09DX0VSUl8wX01BU0tfT0ZGKTsKPiArCWNhdXNlID0gcmVhZGwobWFpbl9p bnRfYmFzZSArIEFSTUFEQV8zNzBfWFBfSU5UX1NPQ19FUlJfMF9DQVVTRV9PRkZTKTsKPiArCXN0 YXR1cyA9IGNhdXNlICYgbWFzazsKPiArCj4gKwlmb3JfZWFjaF9zZXRfYml0KGJpdCwgJnN0YXR1 cywgMzIpCj4gKwkJZ2VuZXJpY19oYW5kbGVfZG9tYWluX2lycShhcm1hZGFfMzcwX3hwX3NvY19l cnJfZG9tYWluLCBiaXQpOwo+ICsKPiArCWlmIChzb2NfZXJyX2lycV9udW1fcmVncyA8IDIpCj4g KwkJcmV0dXJuOwo+ICsKPiArCW1hc2sgPSByZWFkbChwZXJfY3B1X2ludF9iYXNlICsgQVJNQURB XzM3MF9YUF9JTlRfU09DX0VSUl8xX01BU0tfT0ZGKTsKPiArCWNhdXNlID0gcmVhZGwobWFpbl9p bnRfYmFzZSArIEFSTUFEQV8zNzBfWFBfSU5UX1NPQ19FUlJfMV9DQVVTRV9PRkZTKTsKPiArCXN0 YXR1cyA9IGNhdXNlICYgbWFzazsKPiArCj4gKwlmb3JfZWFjaF9zZXRfYml0KGJpdCwgJnN0YXR1 cywgMzIpCj4gKwkJZ2VuZXJpY19oYW5kbGVfZG9tYWluX2lycShhcm1hZGFfMzcwX3hwX3NvY19l cnJfZG9tYWluLCBiaXQgKyAzMik7Cj4gK30KPiArCj4gIHN0YXRpYyB2b2lkIGFybWFkYV8zNzBf eHBfbXBpY19oYW5kbGVfY2FzY2FkZV9pcnEoc3RydWN0IGlycV9kZXNjICpkZXNjKQo+ICB7Cj4g IAlzdHJ1Y3QgaXJxX2NoaXAgKmNoaXAgPSBpcnFfZGVzY19nZXRfY2hpcChkZXNjKTsKPiBAQCAt NjMwLDYgKzc3OCwxMSBAQCBzdGF0aWMgdm9pZCBhcm1hZGFfMzcwX3hwX21waWNfaGFuZGxlX2Nh c2NhZGVfaXJxKHN0cnVjdCBpcnFfZGVzYyAqZGVzYykKPiAgCQkJY29udGludWU7Cj4gIAkJfQo+ ICAKPiArCQlpZiAoaXJxbiA9PSA0KSB7Cj4gKwkJCWFybWFkYV8zNzBfeHBfaGFuZGxlX3NvY19l cnJfaXJxKCk7Cj4gKwkJCWNvbnRpbnVlOwo+ICsJCX0KPiArCj4gIAkJZ2VuZXJpY19oYW5kbGVf ZG9tYWluX2lycShhcm1hZGFfMzcwX3hwX21waWNfZG9tYWluLCBpcnFuKTsKPiAgCX0KPiAgCj4g QEAgLTY0OSw3ICs4MDIsNyBAQCBhcm1hZGFfMzcwX3hwX2hhbmRsZV9pcnEoc3RydWN0IHB0X3Jl Z3MgKnJlZ3MpCj4gIAkJaWYgKGlycW5yID4gMTAyMikKPiAgCQkJYnJlYWs7Cj4gIAo+IC0JCWlm IChpcnFuciA+IDEpIHsKPiArCQlpZiAoaXJxbnIgPiAxICYmIGlycW5yICE9IDQpIHsKPiAgCQkJ Z2VuZXJpY19oYW5kbGVfZG9tYWluX2lycShhcm1hZGFfMzcwX3hwX21waWNfZG9tYWluLAo+ICAJ CQkJCQkgIGlycW5yKTsKPiAgCQkJY29udGludWU7Cj4gQEAgLTY1OSw2ICs4MTIsMTAgQEAgYXJt YWRhXzM3MF94cF9oYW5kbGVfaXJxKHN0cnVjdCBwdF9yZWdzICpyZWdzKQo+ICAJCWlmIChpcnFu ciA9PSAxKQo+ICAJCQlhcm1hZGFfMzcwX3hwX2hhbmRsZV9tc2lfaXJxKHJlZ3MsIGZhbHNlKTsK PiAgCj4gKwkJLyogU29DIEVycm9yIGhhbmRsaW5nICovCj4gKwkJaWYgKGlycW5yID09IDQpCj4g KwkJCWFybWFkYV8zNzBfeHBfaGFuZGxlX3NvY19lcnJfaXJxKCk7Cj4gKwo+ICAjaWZkZWYgQ09O RklHX1NNUAo+ICAJCS8qIElQSSBIYW5kbGluZyAqLwo+ICAJCWlmIChpcnFuciA9PSAwKSB7Cj4g QEAgLTcyMiw2ICs4NzksMjYgQEAgc3RhdGljIHZvaWQgYXJtYWRhXzM3MF94cF9tcGljX3Jlc3Vt ZSh2b2lkKQo+ICAJCX0KPiAgCX0KPiAgCj4gKwkvKiBSZS1lbmFibGUgcGVyLUNQVSBTb0MgRXJy b3IgaW50ZXJydXB0cyAqLwo+ICsJZm9yIChpcnEgPSAwOyBpcnEgPCBzb2NfZXJyX2lycV9udW1f cmVncyAqIDMyOyBpcnErKykgewo+ICsJCXN0cnVjdCBpcnFfZGF0YSAqZGF0YTsKPiArCQlpbnQg dmlycTsKPiArCj4gKwkJdmlycSA9IGlycV9saW5lYXJfcmV2bWFwKGFybWFkYV8zNzBfeHBfc29j X2Vycl9kb21haW4sIGlycSk7Cj4gKwkJaWYgKHZpcnEgPT0gMCkKPiArCQkJY29udGludWU7Cj4g Kwo+ICsJCWRhdGEgPSBpcnFfZ2V0X2lycV9kYXRhKHZpcnEpOwo+ICsKPiArCQkvKgo+ICsJCSAq IFJlLWVuYWJsZSBvbiB0aGUgY3VycmVudCBDUFUsCj4gKwkJICogYXJtYWRhX3hwX21waWNfcmVl bmFibGVfcGVyY3B1KCkgd2lsbCB0YWtlCj4gKwkJICogY2FyZSBvZiBzZWNvbmRhcnkgQ1BVcyB3 aGVuIHRoZXkgY29tZSB1cC4KPiArCQkgKi8KPiArCQlpZiAoaXJxX3BlcmNwdV9pc19lbmFibGVk KHZpcnEpKQo+ICsJCQlhcm1hZGFfMzcwX3hwX3NvY19lcnJfaXJxX3VubWFzayhkYXRhKTsKPiAr CX0KCkFzIEkgc2FpZCBhYm92ZSwgdGhpcyBpcyBkdXBsaWNhdGVkIGNvZGUgdGhhdCBzaG91bGQg YmUgcmVwbGFjZWQgd2l0aAphIHNpbXBsZSB3cml0ZSB0byB0aGUgY29ycmVzcG9uZGluZyBNTUlP IHJlZ2lzdGVycy4KCj4gKwo+ICAJLyogUmVjb25maWd1cmUgZG9vcmJlbGxzIGZvciBJUElzIGFu ZCBNU0lzICovCj4gIAl3cml0ZWwoZG9vcmJlbGxfbWFza19yZWcsCj4gIAkgICAgICAgcGVyX2Nw dV9pbnRfYmFzZSArIEFSTUFEQV8zNzBfWFBfSU5fRFJCRUxfTVNLX09GRlMpOwo+IEBAIC03MzAs NiArOTA3LDEwIEBAIHN0YXRpYyB2b2lkIGFybWFkYV8zNzBfeHBfbXBpY19yZXN1bWUodm9pZCkK PiAgCWlmIChkb29yYmVsbF9tYXNrX3JlZyAmIFBDSV9NU0lfRE9PUkJFTExfTUFTSykKPiAgCQl3 cml0ZWwoMSwgcGVyX2NwdV9pbnRfYmFzZSArIEFSTUFEQV8zNzBfWFBfSU5UX0NMRUFSX01BU0tf T0ZGUyk7Cj4gIAo+ICsJLyogVW5tYXNrIHN1bW1hcnkgU29DIEVycm9yIEludGVycnVwdCAqLwo+ ICsJaWYgKHNvY19lcnJfaXJxX251bV9yZWdzID4gMCkKPiArCQl3cml0ZWwoNCwgcGVyX2NwdV9p bnRfYmFzZSArIEFSTUFEQV8zNzBfWFBfSU5UX0NMRUFSX01BU0tfT0ZGUyk7CgpNYWdpYyB2YWx1 ZT8KCkFsc28sIHdyaXRpbmcgdG8gdGhpcyByZWdpc3RlciB0ZW5kcyB0byBpbmRpY2F0ZSB0aGF0 IHRoZSB3aG9sZSB0aGluZwpzaG91bGQgcmVhbGx5IGJlIGEgY2hhaW5lZCBpcnFjaGlwLi4uIE1h eWJlIHRoYXQncyBvdmVya2lsbCBpbiB0aGlzCmluc3RhbmNlLCBidXQgdGhlIHdob2xlIHRoaW5n IGlzIHJhdGhlciBvZGRseSBhcmNoaXRlY3RlZC4KCj4gKwo+ICAJaXBpX3Jlc3VtZSgpOwo+ICB9 Cj4gIAo+IEBAIC03NDIsNiArOTIzLDcgQEAgc3RhdGljIGludCBfX2luaXQgYXJtYWRhXzM3MF94 cF9tcGljX29mX2luaXQoc3RydWN0IGRldmljZV9ub2RlICpub2RlLAo+ICAJCQkJCSAgICAgc3Ry dWN0IGRldmljZV9ub2RlICpwYXJlbnQpCj4gIHsKPiAgCXN0cnVjdCByZXNvdXJjZSBtYWluX2lu dF9yZXMsIHBlcl9jcHVfaW50X3JlczsKPiArCXN0cnVjdCBkZXZpY2Vfbm9kZSAqc29jX2Vycl9u b2RlOwo+ICAJaW50IG5yX2lycXMsIGk7Cj4gIAl1MzIgY29udHJvbDsKPiAgCj4gQEAgLTc3NSwx MiArOTU3LDM3IEBAIHN0YXRpYyBpbnQgX19pbml0IGFybWFkYV8zNzBfeHBfbXBpY19vZl9pbml0 KHN0cnVjdCBkZXZpY2Vfbm9kZSAqbm9kZSwKPiAgCUJVR19PTighYXJtYWRhXzM3MF94cF9tcGlj X2RvbWFpbik7Cj4gIAlpcnFfZG9tYWluX3VwZGF0ZV9idXNfdG9rZW4oYXJtYWRhXzM3MF94cF9t cGljX2RvbWFpbiwgRE9NQUlOX0JVU19XSVJFRCk7Cj4gIAo+ICsJc29jX2Vycl9ub2RlID0gb2Zf Z2V0X25leHRfY2hpbGQobm9kZSwgTlVMTCk7Cj4gKwlpZiAoIXNvY19lcnJfbm9kZSkgewo+ICsJ CXByX3dhcm4oIk1pc3NpbmcgU29DIEVycm9yIEludGVycnVwdCBDb250cm9sbGVyIG5vZGVcbiIp Owo+ICsJCXByX3dhcm4oIkV4dGVuZGVkIGludGVycnVwdHMgYXJlIG5vdCBzdXBwb3J0ZWRcbiIp Owo+ICsJfSBlbHNlIHsKPiArCQlwcl9pbmZvKCJSZWdpc3RlcmluZyBNUElDIFNvQyBFcnJvciBJ bnRlcnJ1cHQgQ29udHJvbGxlclxuIik7Cj4gKwkJLyoKPiArCQkgKiBBcm1hZGEgMzcwIGFuZCBY UCBoYXZlIG9ubHkgMzIgU29DIEVycm9yIElSUXMgaW4gb25lIHJlZ2lzdGVyCj4gKwkJICogYW5k IG90aGVyIEFybWFkYSBwbGF0Zm9ybXMgaGF2ZSA2NCBJUlFzIGluIHR3byByZWdpc3RlcnMuCj4g KwkJICovCj4gKwkJc29jX2Vycl9pcnFfbnVtX3JlZ3MgPQo+ICsJCQlvZl9tYWNoaW5lX2lzX2Nv bXBhdGlibGUoIm1hcnZlbGwsYXJtYWRhLTM3MC14cCIpID8gMSA6IDI7CgpEb24ndCB5b3UgaGF2 ZSBhbiBhY3R1YWwgY29tcGF0aWJsZSBzdHJpbmcgZm9yIHRoZSBpbnRlcnJ1cHQKY29udHJvbGxl cj8gIEl0IHNlZW1zIG9kZCB0byByZWx5IG9uIHRoZSBTb0MgbmFtZS4KCj4gKwkJYXJtYWRhXzM3 MF94cF9zb2NfZXJyX2RvbWFpbiA9Cj4gKwkJCWlycV9kb21haW5fYWRkX2hpZXJhcmNoeShhcm1h ZGFfMzcwX3hwX21waWNfZG9tYWluLCAwLAo+ICsJCQkJCQkgc29jX2Vycl9pcnFfbnVtX3JlZ3Mg KiAzMiwKPiArCQkJCQkJIHNvY19lcnJfbm9kZSwKPiArCQkJCQkJICZhcm1hZGFfMzcwX3hwX3Nv Y19lcnJfaXJxX29wcywKPiArCQkJCQkJIE5VTEwpOwo+ICsJCUJVR19PTighYXJtYWRhXzM3MF94 cF9zb2NfZXJyX2RvbWFpbik7Cj4gKwl9Cj4gKwo+ICAJLyogU2V0dXAgZm9yIHRoZSBib290IENQ VSAqLwo+ICAJYXJtYWRhX3hwX21waWNfcGVyZl9pbml0KCk7Cj4gIAlhcm1hZGFfeHBfbXBpY19z bXBfY3B1X2luaXQoKTsKPiAgCj4gIAlhcm1hZGFfMzcwX3hwX21zaV9pbml0KG5vZGUsIG1haW5f aW50X3Jlcy5zdGFydCk7Cj4gIAo+ICsJLyogVW5tYXNrIHN1bW1hcnkgU29DIEVycm9yIEludGVy cnVwdCAqLwo+ICsJaWYgKHNvY19lcnJfaXJxX251bV9yZWdzID4gMCkKPiArCQl3cml0ZWwoNCwg cGVyX2NwdV9pbnRfYmFzZSArIEFSTUFEQV8zNzBfWFBfSU5UX0NMRUFSX01BU0tfT0ZGUyk7Cj4g KwoKTWFnaWMgdmFsdWUsIGR1cGxpY2F0ZWQgdGhpcyB0aW1lPwoKPiAgCXBhcmVudF9pcnEgPSBp cnFfb2ZfcGFyc2VfYW5kX21hcChub2RlLCAwKTsKPiAgCWlmIChwYXJlbnRfaXJxIDw9IDApIHsK PiAgCQlpcnFfc2V0X2RlZmF1bHRfaG9zdChhcm1hZGFfMzcwX3hwX21waWNfZG9tYWluKTsKPiAt LSAKPiAyLjIwLjEKPiAKPiAKCglNLgoKLS0gCldpdGhvdXQgZGV2aWF0aW9uIGZyb20gdGhlIG5v cm0sIHByb2dyZXNzIGlzIG5vdCBwb3NzaWJsZS4KCl9fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fCmxpbnV4LWFybS1rZXJuZWwgbWFpbGluZyBsaXN0CmxpbnV4 LWFybS1rZXJuZWxAbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9y Zy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LWFybS1rZXJuZWwK