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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 99ADEC7EE23 for ; Wed, 17 May 2023 06:44:04 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229868AbjEQGoD (ORCPT ); Wed, 17 May 2023 02:44:03 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:58864 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229563AbjEQGoB (ORCPT ); Wed, 17 May 2023 02:44:01 -0400 Received: from mail-wm1-x32b.google.com (mail-wm1-x32b.google.com [IPv6:2a00:1450:4864:20::32b]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 0B8A1E4 for ; Tue, 16 May 2023 23:44:00 -0700 (PDT) Received: by mail-wm1-x32b.google.com with SMTP id 5b1f17b1804b1-3f42c865534so3653925e9.2 for ; Tue, 16 May 2023 23:43:59 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1684305838; x=1686897838; 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=BYh5QIQtk4kmFE1xMQJyAJuDhOQqL6TYhGJxqGSU/rI=; b=V2z0EA6Y9sZUBXjA8aV9Qwb+urdngocKOnk3tisuUQBqBvymqx9kMH85aqmor6lc9m 82//pVd5pkK32RB+25T5kLmoXp0OjGakbP4aXnrmitpbuCsvGB/X4wcOb6hZjLHOTRqO atbIgc6cERpei+vdAOIj5bFUaxSWZeGc1O810XrFMWz/tRIVT15BaBoISxumVCkvCPJ9 qe+w7thGz9gygazDAH5jZaCDkvJ7tuC/q+B5RcLuBryqggyAu3ooFftSN9vr8IP1gcaT pY727dXSMTN/WZqdNZFwZSPOmCYM0Aa38oeCFK04EFhjuZqHcQukhb0156DcW6vhGADb tXYQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1684305838; x=1686897838; 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=BYh5QIQtk4kmFE1xMQJyAJuDhOQqL6TYhGJxqGSU/rI=; b=L25Wte55oId+c1LYlIo6GD+kdSMtlOBAfbcBC0PuuPlouLx2r6FZqqcT/WXWQUPuUF +CFVju0GNFQtpkkymlP09NDUJXnUqHGCwCi5vCmy9okpiG05A6QgXVR0beEzghO0v+CK x7QM4dbSKTGttjN9vvuau7wjYDqeDcilwILFYxBYQUwwdHiPmfnzmOc18mA0i+J7Hs65 qICflyygFcLAl1m9d1blFl1Gd+vrq4/Ovnhzziw0KIiHeg5s7DnZaVHreMBEdMD2zny9 8QJPolC1xNpjP7h6DiY3cmIif4FNvtJ9WFvsP721GNME7jG1YHkK96exSJFJJ3+qMyA/ B5fA== X-Gm-Message-State: AC+VfDxczkMnC0/JmFAs1GeO0NQVM0m8qNdTYp6zBjz+AWh2rLZYNNJU OPt8pErlhBi9XBO73W4OAXmwGA== X-Google-Smtp-Source: ACHHUZ5oF9sWrtoOmyRCmE4Py+UM6kGi80A5+mVJo6ihWlsyf3Xwd2FqXPUuK7pw8noGbdlcmt/tlQ== X-Received: by 2002:a1c:7913:0:b0:3f4:2e13:ccdc with SMTP id l19-20020a1c7913000000b003f42e13ccdcmr20339518wme.0.1684305838473; Tue, 16 May 2023 23:43:58 -0700 (PDT) Received: from localhost ([102.36.222.112]) by smtp.gmail.com with ESMTPSA id f2-20020a1cc902000000b003f50237bd9csm1176690wmb.19.2023.05.16.23.43.55 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 16 May 2023 23:43:56 -0700 (PDT) Date: Wed, 17 May 2023 09:43:53 +0300 From: Dan Carpenter To: Nishanth Menon Cc: Markus Elfring , kernel-janitors@vger.kernel.org, linux-arm-kernel@lists.infradead.org, Santosh Shilimkar , Tero Kristo , cocci@inria.fr, LKML Subject: Re: [cocci] [PATCH] firmware: ti_sci: Fix exception handling in ti_sci_probe() Message-ID: References: <8f785de5-ebe2-edd9-2155-f440acacc643@web.de> <20230516152043.bq2hnessstrhbc6s@distort> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <20230516152043.bq2hnessstrhbc6s@distort> Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tue, May 16, 2023 at 10:20:43AM -0500, Nishanth Menon wrote: > On 22:10-20230405, Markus Elfring wrote: > > Date: Wed, 5 Apr 2023 22:00:18 +0200 > > B4 does'nt pick this patch up cleanly. And for some reason, I get > mangled patch from public-inbox as well :( a clean git-send-email might > help. > It's an awkward thing. B4 doesn't work because Markus was banned from LKML because he doesn't listen to feedback. > > > > The label “out” was used to jump to another pointer check despite of > > Please use " for quotes. > > > the detail in the implementation of the function “ti_sci_probe” > > that it was determined already that the corresponding variable > > contained an error pointer because of a failed call of > > the function “mbox_request_channel_byname”. > > > > > * Thus use more appropriate labels instead. > > > > * Delete two redundant checks. > > > > How about this: > > Optimize out the redundant pointer check in exit path of "out" using > appropriate labels to jump in the error path > > > Drop the extra EoL > > > This issue was detected by using the Coccinelle software. > > Curious: what rule of coccicheck caught this? > > > > > Fixes: aa276781a64a5f15ecc21e920960c5b1f84e5fee ("firmware: Add basic support for TI System Control Interface (TI-SCI) protocol") > > 12 char sha please. Please read Documentation/process/submitting-patches.rst > For example, Markus has been told to use 12 char shas several times before. > > Signed-off-by: Markus Elfring > > --- > > drivers/firmware/ti_sci.c | 19 ++++++++++--------- > > 1 file changed, 10 insertions(+), 9 deletions(-) > > > > diff --git a/drivers/firmware/ti_sci.c b/drivers/firmware/ti_sci.c > > index 039d92a595ec..77012d2f4160 100644 > > --- a/drivers/firmware/ti_sci.c > turns out as =2D-- instead of -- (might check the git format-patch > output closer). > > > +++ b/drivers/firmware/ti_sci.c > > @@ -3433,18 +3433,18 @@ static int ti_sci_probe(struct platform_device *pdev) > > info->chan_rx = mbox_request_channel_byname(cl, "rx"); > > if (IS_ERR(info->chan_rx)) { > > ret = PTR_ERR(info->chan_rx); > > - goto out; > > + goto remove_debugfs; > > } > > > > info->chan_tx = mbox_request_channel_byname(cl, "tx"); > > if (IS_ERR(info->chan_tx)) { > > ret = PTR_ERR(info->chan_tx); > > - goto out; > > + goto free_mbox_channel_rx; > > } > > ret = ti_sci_cmd_get_revision(info); > > if (ret) { > > dev_err(dev, "Unable to communicate with TISCI(%d)\n", ret); > > - goto out; > > + goto free_mbox_channel_tx; > > } > > > > ti_sci_setup_ops(info); > > @@ -3456,7 +3456,7 @@ static int ti_sci_probe(struct platform_device *pdev) > > ret = register_restart_handler(&info->nb); > > if (ret) { > > dev_err(dev, "reboot registration fail(%d)\n", ret); > > - goto out; > > + goto free_mbox_channel_tx; > > } > > } > > > > @@ -3470,11 +3470,12 @@ static int ti_sci_probe(struct platform_device *pdev) > > mutex_unlock(&ti_sci_list_mutex); > > > > return of_platform_populate(dev->of_node, NULL, NULL, dev); There is a bug here because the resources are not freed if of_platform_populate() fails. The "info" struct is devm_ allocated but it's still on the &ti_sci_list list, so that will lead to a use after free. regards, dan carpenter > > -out: > > - if (!IS_ERR(info->chan_tx)) > > - mbox_free_channel(info->chan_tx); > > - if (!IS_ERR(info->chan_rx)) > > - mbox_free_channel(info->chan_rx); > > + > > +free_mbox_channel_tx: > > + mbox_free_channel(info->chan_tx); > > +free_mbox_channel_rx: > > + mbox_free_channel(info->chan_rx); > > +remove_debugfs: > > debugfs_remove(info->d); > > return ret; > > } 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 7781EC77B7A for ; Wed, 17 May 2023 06:44:32 +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=3iuJDU4xCIjOaYT32LgTDTWa21hLdt/zrA7uieekGL8=; b=k1UBsM22RCTnZS O8R1PLASj93xOa3nnSXZDys3QV6V1Q7nZTxwHQz/xF7zeZisMjtVajerMa/8MuDSsqTLQjBo1u5cH dR0Fn6DQp/IWuDy9yURM1eP70D788s7A4VUvq8FO55/BKnYZ9hcrupk1yBizKhiHQT92O6Gcz8Kr8 R8uRpslx93/0I4AAH0EEtU/APIy2g9y8rQebJZSz3EVObK0hXnWzocPVjoM4uC1J+1nzQKlp+Ll8R 6POTDHju+UqSRgjBv2XRBMaSrSXXQx5zMDIyD6y7VIp//7JhVfFZA+C/WfPF4iEPRnHqmb1T8VxCZ GgjlMRATAXHYkKNTes9g==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1pzAtK-008WHX-03; Wed, 17 May 2023 06:44:06 +0000 Received: from mail-wm1-x334.google.com ([2a00:1450:4864:20::334]) by bombadil.infradead.org with esmtps (Exim 4.96 #2 (Red Hat Linux)) id 1pzAtH-008WFj-0R for linux-arm-kernel@lists.infradead.org; Wed, 17 May 2023 06:44:04 +0000 Received: by mail-wm1-x334.google.com with SMTP id 5b1f17b1804b1-3f427118644so3811925e9.0 for ; Tue, 16 May 2023 23:43:59 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1684305838; x=1686897838; 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=BYh5QIQtk4kmFE1xMQJyAJuDhOQqL6TYhGJxqGSU/rI=; b=V2z0EA6Y9sZUBXjA8aV9Qwb+urdngocKOnk3tisuUQBqBvymqx9kMH85aqmor6lc9m 82//pVd5pkK32RB+25T5kLmoXp0OjGakbP4aXnrmitpbuCsvGB/X4wcOb6hZjLHOTRqO atbIgc6cERpei+vdAOIj5bFUaxSWZeGc1O810XrFMWz/tRIVT15BaBoISxumVCkvCPJ9 qe+w7thGz9gygazDAH5jZaCDkvJ7tuC/q+B5RcLuBryqggyAu3ooFftSN9vr8IP1gcaT pY727dXSMTN/WZqdNZFwZSPOmCYM0Aa38oeCFK04EFhjuZqHcQukhb0156DcW6vhGADb tXYQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1684305838; x=1686897838; 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=BYh5QIQtk4kmFE1xMQJyAJuDhOQqL6TYhGJxqGSU/rI=; b=VIiSWJ3KwQvlTsTVYx7dMTJhCPT6Txa/A77vSW0HaXToK2fivQc0XahgrLYJzzXwa2 7b/aZGQqpBQVtHLdEg0ld8X7dCHrkkxHgY62JtM0vzXUT+T6f5rq907rp34DiKXdPa07 WUjJKgkseOvBDMUaslrCpv6+uG8rxKGu2VvIZ1ycvpvpiXbvqo2lEE6yc0BkJysIWFTg nBMBOLDhpPAcZqWYUT5S4gXgfJGm0QANm7qT5M4s7lX5rGs8kapbLPgYyrpJs9t9jDRF CoMEagXiLJmuEh96ATkPIoUW4SEwEWt7koLN0V3GdjE20WuYoCfm3xKElSSRt/nY+WnQ 2pLg== X-Gm-Message-State: AC+VfDy9ebKQqM8owQWPDTBjZNTfrkzm5r82oxDMBhF5tCVhy73oZdwW TiNBfKBtsa3GGzOVYYBF0d24uQ== X-Google-Smtp-Source: ACHHUZ5oF9sWrtoOmyRCmE4Py+UM6kGi80A5+mVJo6ihWlsyf3Xwd2FqXPUuK7pw8noGbdlcmt/tlQ== X-Received: by 2002:a1c:7913:0:b0:3f4:2e13:ccdc with SMTP id l19-20020a1c7913000000b003f42e13ccdcmr20339518wme.0.1684305838473; Tue, 16 May 2023 23:43:58 -0700 (PDT) Received: from localhost ([102.36.222.112]) by smtp.gmail.com with ESMTPSA id f2-20020a1cc902000000b003f50237bd9csm1176690wmb.19.2023.05.16.23.43.55 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 16 May 2023 23:43:56 -0700 (PDT) Date: Wed, 17 May 2023 09:43:53 +0300 From: Dan Carpenter To: Nishanth Menon Cc: Markus Elfring , kernel-janitors@vger.kernel.org, linux-arm-kernel@lists.infradead.org, Santosh Shilimkar , Tero Kristo , cocci@inria.fr, LKML Subject: Re: [cocci] [PATCH] firmware: ti_sci: Fix exception handling in ti_sci_probe() Message-ID: References: <8f785de5-ebe2-edd9-2155-f440acacc643@web.de> <20230516152043.bq2hnessstrhbc6s@distort> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20230516152043.bq2hnessstrhbc6s@distort> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20230516_234403_178481_201845B4 X-CRM114-Status: GOOD ( 30.81 ) 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 T24gVHVlLCBNYXkgMTYsIDIwMjMgYXQgMTA6MjA6NDNBTSAtMDUwMCwgTmlzaGFudGggTWVub24g d3JvdGU6Cj4gT24gMjI6MTAtMjAyMzA0MDUsIE1hcmt1cyBFbGZyaW5nIHdyb3RlOgo+ID4gRGF0 ZTogV2VkLCA1IEFwciAyMDIzIDIyOjAwOjE4ICswMjAwCj4gCj4gQjQgZG9lcydudCBwaWNrIHRo aXMgcGF0Y2ggdXAgY2xlYW5seS4gQW5kIGZvciBzb21lIHJlYXNvbiwgSSBnZXQKPiBtYW5nbGVk IHBhdGNoIGZyb20gcHVibGljLWluYm94IGFzIHdlbGwgOiggYSBjbGVhbiBnaXQtc2VuZC1lbWFp bCBtaWdodAo+IGhlbHAuCj4gCgpJdCdzIGFuIGF3a3dhcmQgdGhpbmcuICBCNCBkb2Vzbid0IHdv cmsgYmVjYXVzZSBNYXJrdXMgd2FzIGJhbm5lZCBmcm9tCkxLTUwgYmVjYXVzZSBoZSBkb2Vzbid0 IGxpc3RlbiB0byBmZWVkYmFjay4KCj4gPiAKPiA+IFRoZSBsYWJlbCDigJxvdXTigJ0gd2FzIHVz ZWQgdG8ganVtcCB0byBhbm90aGVyIHBvaW50ZXIgY2hlY2sgZGVzcGl0ZSBvZgo+IAo+IFBsZWFz ZSB1c2UgIiBmb3IgcXVvdGVzLgo+IAo+ID4gdGhlIGRldGFpbCBpbiB0aGUgaW1wbGVtZW50YXRp b24gb2YgdGhlIGZ1bmN0aW9uIOKAnHRpX3NjaV9wcm9iZeKAnQo+ID4gdGhhdCBpdCB3YXMgZGV0 ZXJtaW5lZCBhbHJlYWR5IHRoYXQgdGhlIGNvcnJlc3BvbmRpbmcgdmFyaWFibGUKPiA+IGNvbnRh aW5lZCBhbiBlcnJvciBwb2ludGVyIGJlY2F1c2Ugb2YgYSBmYWlsZWQgY2FsbCBvZgo+ID4gdGhl IGZ1bmN0aW9uIOKAnG1ib3hfcmVxdWVzdF9jaGFubmVsX2J5bmFtZeKAnS4KPiAKPiA+IAo+ID4g KiBUaHVzIHVzZSBtb3JlIGFwcHJvcHJpYXRlIGxhYmVscyBpbnN0ZWFkLgo+ID4gCj4gPiAqIERl bGV0ZSB0d28gcmVkdW5kYW50IGNoZWNrcy4KPiA+IAo+IAo+IEhvdyBhYm91dCB0aGlzOgo+IAo+ IE9wdGltaXplIG91dCB0aGUgcmVkdW5kYW50IHBvaW50ZXIgY2hlY2sgaW4gZXhpdCBwYXRoIG9m ICJvdXQiIHVzaW5nCj4gYXBwcm9wcmlhdGUgbGFiZWxzIHRvIGp1bXAgaW4gdGhlIGVycm9yIHBh dGgKPiA+IAo+IERyb3AgdGhlIGV4dHJhIEVvTAo+IAo+ID4gVGhpcyBpc3N1ZSB3YXMgZGV0ZWN0 ZWQgYnkgdXNpbmcgdGhlIENvY2NpbmVsbGUgc29mdHdhcmUuCj4gCj4gQ3VyaW91czogd2hhdCBy dWxlIG9mIGNvY2NpY2hlY2sgY2F1Z2h0IHRoaXM/Cj4gCj4gPiAKPiA+IEZpeGVzOiBhYTI3Njc4 MWE2NGE1ZjE1ZWNjMjFlOTIwOTYwYzViMWY4NGU1ZmVlICgiZmlybXdhcmU6IEFkZCBiYXNpYyBz dXBwb3J0IGZvciBUSSBTeXN0ZW0gQ29udHJvbCBJbnRlcmZhY2UgKFRJLVNDSSkgcHJvdG9jb2wi KQo+IAo+IDEyIGNoYXIgc2hhIHBsZWFzZS4gUGxlYXNlIHJlYWQgRG9jdW1lbnRhdGlvbi9wcm9j ZXNzL3N1Ym1pdHRpbmctcGF0Y2hlcy5yc3QKPiAKCkZvciBleGFtcGxlLCBNYXJrdXMgaGFzIGJl ZW4gdG9sZCB0byB1c2UgMTIgY2hhciBzaGFzIHNldmVyYWwgdGltZXMKYmVmb3JlLgoKPiA+IFNp Z25lZC1vZmYtYnk6IE1hcmt1cyBFbGZyaW5nIDxlbGZyaW5nQHVzZXJzLnNvdXJjZWZvcmdlLm5l dD4KPiA+IC0tLQo+ID4gIGRyaXZlcnMvZmlybXdhcmUvdGlfc2NpLmMgfCAxOSArKysrKysrKysr LS0tLS0tLS0tCj4gPiAgMSBmaWxlIGNoYW5nZWQsIDEwIGluc2VydGlvbnMoKyksIDkgZGVsZXRp b25zKC0pCj4gPiAKPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2Zpcm13YXJlL3RpX3NjaS5jIGIv ZHJpdmVycy9maXJtd2FyZS90aV9zY2kuYwo+ID4gaW5kZXggMDM5ZDkyYTU5NWVjLi43NzAxMmQy ZjQxNjAgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL2Zpcm13YXJlL3RpX3NjaS5jCj4gdHVybnMg b3V0IGFzID0yRC0tIGluc3RlYWQgb2YgLS0gKG1pZ2h0IGNoZWNrIHRoZSBnaXQgZm9ybWF0LXBh dGNoCj4gb3V0cHV0IGNsb3NlcikuCj4gCj4gPiArKysgYi9kcml2ZXJzL2Zpcm13YXJlL3RpX3Nj aS5jCj4gPiBAQCAtMzQzMywxOCArMzQzMywxOCBAQCBzdGF0aWMgaW50IHRpX3NjaV9wcm9iZShz dHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQo+ID4gIAlpbmZvLT5jaGFuX3J4ID0gbWJveF9y ZXF1ZXN0X2NoYW5uZWxfYnluYW1lKGNsLCAicngiKTsKPiA+ICAJaWYgKElTX0VSUihpbmZvLT5j aGFuX3J4KSkgewo+ID4gIAkJcmV0ID0gUFRSX0VSUihpbmZvLT5jaGFuX3J4KTsKPiA+IC0JCWdv dG8gb3V0Owo+ID4gKwkJZ290byByZW1vdmVfZGVidWdmczsKPiA+ICAJfQo+ID4gCj4gPiAgCWlu Zm8tPmNoYW5fdHggPSBtYm94X3JlcXVlc3RfY2hhbm5lbF9ieW5hbWUoY2wsICJ0eCIpOwo+ID4g IAlpZiAoSVNfRVJSKGluZm8tPmNoYW5fdHgpKSB7Cj4gPiAgCQlyZXQgPSBQVFJfRVJSKGluZm8t PmNoYW5fdHgpOwo+ID4gLQkJZ290byBvdXQ7Cj4gPiArCQlnb3RvIGZyZWVfbWJveF9jaGFubmVs X3J4Owo+ID4gIAl9Cj4gPiAgCXJldCA9IHRpX3NjaV9jbWRfZ2V0X3JldmlzaW9uKGluZm8pOwo+ ID4gIAlpZiAocmV0KSB7Cj4gPiAgCQlkZXZfZXJyKGRldiwgIlVuYWJsZSB0byBjb21tdW5pY2F0 ZSB3aXRoIFRJU0NJKCVkKVxuIiwgcmV0KTsKPiA+IC0JCWdvdG8gb3V0Owo+ID4gKwkJZ290byBm cmVlX21ib3hfY2hhbm5lbF90eDsKPiA+ICAJfQo+ID4gCj4gPiAgCXRpX3NjaV9zZXR1cF9vcHMo aW5mbyk7Cj4gPiBAQCAtMzQ1Niw3ICszNDU2LDcgQEAgc3RhdGljIGludCB0aV9zY2lfcHJvYmUo c3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKPiA+ICAJCXJldCA9IHJlZ2lzdGVyX3Jlc3Rh cnRfaGFuZGxlcigmaW5mby0+bmIpOwo+ID4gIAkJaWYgKHJldCkgewo+ID4gIAkJCWRldl9lcnIo ZGV2LCAicmVib290IHJlZ2lzdHJhdGlvbiBmYWlsKCVkKVxuIiwgcmV0KTsKPiA+IC0JCQlnb3Rv IG91dDsKPiA+ICsJCQlnb3RvIGZyZWVfbWJveF9jaGFubmVsX3R4Owo+ID4gIAkJfQo+ID4gIAl9 Cj4gPiAKPiA+IEBAIC0zNDcwLDExICszNDcwLDEyIEBAIHN0YXRpYyBpbnQgdGlfc2NpX3Byb2Jl KHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCj4gPiAgCW11dGV4X3VubG9jaygmdGlfc2Np X2xpc3RfbXV0ZXgpOwo+ID4gCj4gPiAgCXJldHVybiBvZl9wbGF0Zm9ybV9wb3B1bGF0ZShkZXYt Pm9mX25vZGUsIE5VTEwsIE5VTEwsIGRldik7CgpUaGVyZSBpcyBhIGJ1ZyBoZXJlIGJlY2F1c2Ug dGhlIHJlc291cmNlcyBhcmUgbm90IGZyZWVkIGlmCm9mX3BsYXRmb3JtX3BvcHVsYXRlKCkgZmFp bHMuICBUaGUgImluZm8iIHN0cnVjdCBpcyBkZXZtXyBhbGxvY2F0ZWQgYnV0Cml0J3Mgc3RpbGwg b24gdGhlICZ0aV9zY2lfbGlzdCBsaXN0LCBzbyB0aGF0IHdpbGwgbGVhZCB0byBhIHVzZSBhZnRl cgpmcmVlLgoKcmVnYXJkcywKZGFuIGNhcnBlbnRlcgoKPiA+IC1vdXQ6Cj4gPiAtCWlmICghSVNf RVJSKGluZm8tPmNoYW5fdHgpKQo+ID4gLQkJbWJveF9mcmVlX2NoYW5uZWwoaW5mby0+Y2hhbl90 eCk7Cj4gPiAtCWlmICghSVNfRVJSKGluZm8tPmNoYW5fcngpKQo+ID4gLQkJbWJveF9mcmVlX2No YW5uZWwoaW5mby0+Y2hhbl9yeCk7Cj4gPiArCj4gPiArZnJlZV9tYm94X2NoYW5uZWxfdHg6Cj4g PiArCW1ib3hfZnJlZV9jaGFubmVsKGluZm8tPmNoYW5fdHgpOwo+ID4gK2ZyZWVfbWJveF9jaGFu bmVsX3J4Ogo+ID4gKwltYm94X2ZyZWVfY2hhbm5lbChpbmZvLT5jaGFuX3J4KTsKPiA+ICtyZW1v dmVfZGVidWdmczoKPiA+ICAJZGVidWdmc19yZW1vdmUoaW5mby0+ZCk7Cj4gPiAgCXJldHVybiBy ZXQ7Cj4gPiAgfQoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fCmxpbnV4LWFybS1rZXJuZWwgbWFpbGluZyBsaXN0CmxpbnV4LWFybS1rZXJuZWxAbGlzdHMu aW5mcmFkZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZv L2xpbnV4LWFybS1rZXJuZWwK