Received: by 2002:a05:6358:53a8:b0:117:f937:c515 with SMTP id z40csp164204rwe; Fri, 14 Apr 2023 00:22:51 -0700 (PDT) X-Google-Smtp-Source: AKy350b3Or50ImVcQkFkoTzWg6cFYyakiu6KVCY4WLonYtKCEo63basID2LE24oPa+uX4NGv6/r3 X-Received: by 2002:a05:6a20:19a6:b0:db:a9e7:9bbb with SMTP id bz38-20020a056a2019a600b000dba9e79bbbmr5073264pzb.48.1681456971254; Fri, 14 Apr 2023 00:22:51 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1681456971; cv=none; d=google.com; s=arc-20160816; b=vCGoLkQwRK8e42KQtZVInpiGzVlhjtzX07EB8W4+zi1b4oKZE+b8W4gsefkhgVqnaH uEUfidibRIHAedOIcGQ7Ly69QRL1pVgcYluSpVkJc+IJcIqDGbs8ou5Jr+7RQ95DyHS7 teJo+tOO4s4IbqKt4LT+Ys7pIUaZVCTSkB0RhT32j3q7okKy0/EuySpT3XdR3//MlpW5 RwmhGjNdPTSEEmKVeOe7XioKgqzcONP8jVrWNUhPQkKTfwkLFizGNCou85x23VehGwHV vxb9y54QbC7UWnmjS/VakGfSkYjaV6dM3VZBprh+Ji+tkTFBJTJwNbAGCABOhOjCXhcr zNnw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:cc:to:subject :message-id:date:from:in-reply-to:references:mime-version :dkim-signature; bh=EPgTIbc3EmpS1tMla467skczJbzj4giN96ys9JA7Z/0=; b=GfOA+hinvkzNp2wfV8kWlwh/0kecL1KIlhPHlszcgqENPlp0M0+7FfhgXF6IO54Si1 oXQPvsB1SfquuE91VQsp/0tgISV8txdDfodYY2vgia4xd7L+esLONhc3anWjx8SIu3Td CgM/aon+zC87MeEPy7u/PuJbuZiKQsISATVJ4iOfgXDZ++KdyAJJJJ6ow6Q05lFTcS9u Y48pJ+oiZmCSXE7mistEVr3PTSKQm/5M0RWppZbCuWpLOBmLzS2MnMIEAehrvHr1xV7o Fn4g+FRunO2yY27Hps5FkEpvVFw67hrjNJFrc/al+cS4A/LTUIc/hNnbyzRcyOr02vsK mxEA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=cpzjVOhB; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id 197-20020a6217ce000000b00637aea0b243si3757197pfx.77.2023.04.14.00.22.37; Fri, 14 Apr 2023 00:22:51 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=cpzjVOhB; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229673AbjDNHTs (ORCPT + 99 others); Fri, 14 Apr 2023 03:19:48 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:47836 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229601AbjDNHTq (ORCPT ); Fri, 14 Apr 2023 03:19:46 -0400 Received: from mail-yb1-xb2c.google.com (mail-yb1-xb2c.google.com [IPv6:2607:f8b0:4864:20::b2c]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id ED32F5FE4 for ; Fri, 14 Apr 2023 00:19:44 -0700 (PDT) Received: by mail-yb1-xb2c.google.com with SMTP id a13so17990114ybl.11 for ; Fri, 14 Apr 2023 00:19:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1681456784; x=1684048784; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=EPgTIbc3EmpS1tMla467skczJbzj4giN96ys9JA7Z/0=; b=cpzjVOhBclo5s7FOOCTsY9OXyCmdSzWInAqJyhp5jNfDqdTp2N2ndOvxaEirmRdSf6 zjaJBiCEDcSvMGPu1p1UOKpttTZ/o1lXjrjpYKd+lubBYRMFfvK653NH0n95uAsnzuuH zQJowLAx7ESro4J0VCC1EyOUFhLUePYJIcxYT5el3eqOsRQtcf5Js6koa3/Ohb0EafTP XrAss8mrfMvjUKBN/eqzobuLLn+Sdh2d9cz1Ax/JvZjSF+KDm3GN7Z2y3Bkk3kZTlEGR QG0ogOVqT3BCmwv6whN5FGfNsrQcIs6oDLXTmSn0SdMVKQRJmamkS0Jo05FzQKUjt0yK /hug== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1681456784; x=1684048784; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=EPgTIbc3EmpS1tMla467skczJbzj4giN96ys9JA7Z/0=; b=dwFv5l7+BGaxB76MryG4+iLEQ8+FNo+YrjelmWyGj33wp0JJ4N2CUBrxsbR688WKyd 3t/u3uIjXtgAEWwEiPXnSEjPPHHH0xNiF3D/7Y5K9o1iqA40Tns09EBOzPrDX+sq2TuV WNL/gWh02fLDIjDGZGhGatbXeYM6gdUSo6cbYX/aYUZkfmFS+IE/UiWpU46ZB3Bu8A0N yq5kWeRQgO90rZp/w0DPlEEn0VLP2hjj1qMamPWONIYGxZcQ3aegW96qIQykukPpKdrm 1jjUhgDnbVV8KlgU9rdojN6eXkeN2bsUCN07oV/mSZrsSr1oBxCxqL2mf2YS995S7ZuP ZTrA== X-Gm-Message-State: AAQBX9e2v9gxPBzlVkJyVq5Wpx7zg8iG85Gsoi7UdM0aPbB60TrQJMSY UUR9DcBKCOZPnfJHxg6IZg0uBkdlhu1Kwt82hgULfg== X-Received: by 2002:a25:d44a:0:b0:b8e:fbcb:d6ef with SMTP id m71-20020a25d44a000000b00b8efbcbd6efmr3297133ybf.4.1681456784107; Fri, 14 Apr 2023 00:19:44 -0700 (PDT) MIME-Version: 1.0 References: <20230414061031.141430-1-haibo.li@mediatek.com> In-Reply-To: <20230414061031.141430-1-haibo.li@mediatek.com> From: Linus Walleij Date: Fri, 14 Apr 2023 09:19:32 +0200 Message-ID: Subject: Re: [PATCH v3] ARM:unwind:fix unwind abort for uleb128 case To: Haibo Li Cc: Russell King , AngeloGioacchino Del Regno , amergnat@baylibre.com, linux-kernel@vger.kernel.org, Matthias Brugger , xiaoming.yu@mediatek.com, Russell King , Alex Sverdlin , linux-arm-kernel@lists.infradead.org, linux-mediatek@lists.infradead.org, ardb@kernel.org, catalin.marinas@arm.com, a.anurag@samsung.com Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_NONE, SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Fri, Apr 14, 2023 at 8:10=E2=80=AFAM Haibo Li wr= ote: > When unwind instruction is 0xb2,the subsequent instructions > are uleb128 bytes. > For now,it uses only the first uleb128 byte in code. > > For vsp increments of 0x204~0x400,use one uleb128 byte like below: > 0xc06a00e4 : 0x80b27fac > Compact model index: 0 > 0xb2 0x7f vsp =3D vsp + 1024 > 0xac pop {r4, r5, r6, r7, r8, r14} > > For vsp increments larger than 0x400,use two uleb128 bytes like below: > 0xc06a00e4 : @0xc0cc9e0c > Compact model index: 1 > 0xb2 0x81 0x01 vsp =3D vsp + 1032 > 0xac pop {r4, r5, r6, r7, r8, r14} > The unwind works well since the decoded uleb128 byte is also 0x81. > > For vsp increments larger than 0x600,use two uleb128 bytes like below: > 0xc06a00e4 : @0xc0cc9e0c > Compact model index: 1 > 0xb2 0x81 0x02 vsp =3D vsp + 1544 > 0xac pop {r4, r5, r6, r7, r8, r14} > In this case,the decoded uleb128 result is 0x101(vsp=3D0x204+(0x101<<2)). > While the uleb128 used in code is 0x81(vsp=3D0x204+(0x81<<2)). > The unwind aborts at this frame since it gets incorrect vsp. > > To fix this,add uleb128 decode to cover all the above case. > > Signed-off-by: Haibo Li Way to go, remember to collect all the Reviewed-by tags before you put the patch into Russell's patch tracker. Yours, Linus Walleij