From patchwork Thu Nov 9 13:55:18 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Leonid Komarianskyi X-Patchwork-Id: 1862043 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=epam.com header.i=@epam.com header.a=rsa-sha256 header.s=selector2 header.b=NhOP/jSM; dkim-atps=neutral Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org (client-ip=209.51.188.17; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=patchwork.ozlabs.org) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4SR3Pp2m8Kz1yQl for ; Fri, 10 Nov 2023 00:55:42 +1100 (AEDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1r15VO-0001xt-NA; Thu, 09 Nov 2023 08:55:34 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1r15VL-0001Tb-Uq; Thu, 09 Nov 2023 08:55:32 -0500 Received: from mx0b-0039f301.pphosted.com ([148.163.137.242]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1r15VI-0004Fl-Le; Thu, 09 Nov 2023 08:55:31 -0500 Received: from pps.filterd (m0174680.ppops.net [127.0.0.1]) by mx0b-0039f301.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 3A9CDBSv020945; Thu, 9 Nov 2023 13:55:21 GMT Received: from eur04-db3-obe.outbound.protection.outlook.com (mail-db3eur04lp2050.outbound.protection.outlook.com [104.47.12.50]) by mx0b-0039f301.pphosted.com (PPS) with ESMTPS id 3u8bpe3wp7-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 09 Nov 2023 13:55:21 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=lmdXMkPLhSTPhm1j4NBNWrCmhcEMCOic/i/OqI2KMTQ/klbpv2ovjyks0LFjsG118AEhdDpG6YWz89z94kksXS6usb8qwKWPa6Y+0h4L2Y5YxzHatTu2YuAUhm//64Q0k5ReldehcTawZY75SqmB9KkZ6usWvCaPs0lfn691daEkizbkYDy0Vg6sCxdA5dhhp2KNvAVUCx6/rHZ7+FsfXk9uRm7rRC4/mdJLZ7XdMUdpZxTk92aRxo1XCzc/9YiVtgos4kaTeBOfuV8Vy1dkusYUkD+erzQ3w8gJkvKxg5VyVKX9OWfSHdtzi7OfnAQ32P0HV83b8pIGcB0SI60TdA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=hQ3Leke++wbGnkkLpKiEn9TC+ZukJztOt9csrbf8U2I=; b=avTsJfyt4GzDtbUBX8/4hXnxG9Q0te7M1e7F87gEVjNyiyivqXjnXhf1TMGv6k2Yzntvz3RkV5bSrAFZAE0thXdeTRCvXL54Jx5A8RhA1bZP2xSSAktYup2WwZTcoMg52iZgspdFcP2rFcuWsUbOD7LBHRpttUp3N37QKzNBx5Ges0SQntsB9IEJsdeI4+CK8S45FE9kdyQpCKc9QVEmiiqsixAllECQnC8ZUDsVMPPElOfSwmUhqzaXzbj+EVoJrWKEUPNnRLTX+y0yRr4ZC4r4RZOWtYjJ4bHOpZFRBTvup5rd4o73QI1RfW4Z6qzNyg4FrCoMLMa8dBymzNOomw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com; dkim=pass header.d=epam.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=hQ3Leke++wbGnkkLpKiEn9TC+ZukJztOt9csrbf8U2I=; b=NhOP/jSMUSlWxxa5G2o6HweS/jTJKN7ojlubrl/0zx4xK9z6s8DENm3pDfOmxdtoCPpWfsinpmaF11D1dwsMGjz61l/ySO0Ut8tKF3ZmpQgpttwIcYthv8MPb6iYBcJ84sfVSwHNFZuH6Uuswd+zBYY6SMY5IeQRSMKoC3STBZXQia/73qgm26V+Po6nnyZ+q8JZNbXKkTLfZ4xdUSmuPAk0ApH4WS1ql8dko1g0gg6aGBctTd1YkvPCUbc9eucQZE96ovfgRTknaiIdmq50Ia8RI0Rn2oYwpEjmo1r6TrC7kUbl2kssKGlrR00JSaLm3Dsrb7kbsykn0dIOYs0Ylw== Received: from AS4PR03MB8676.eurprd03.prod.outlook.com (2603:10a6:20b:58c::8) by DB9PR03MB7338.eurprd03.prod.outlook.com (2603:10a6:10:221::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6977.19; Thu, 9 Nov 2023 13:55:18 +0000 Received: from AS4PR03MB8676.eurprd03.prod.outlook.com ([fe80::3779:1a8d:a31f:95a3]) by AS4PR03MB8676.eurprd03.prod.outlook.com ([fe80::3779:1a8d:a31f:95a3%2]) with mapi id 15.20.6954.027; Thu, 9 Nov 2023 13:55:18 +0000 From: Leonid Komarianskyi To: "qemu-devel@nongnu.org" CC: "peter.maydell@linaro.org" , "qemu-arm@nongnu.org" , Volodymyr Babchuk , Dmytro Firsov , Leonid Komarianskyi Subject: [PATCH v2] target/arm: Add overflow check for gt_recalc_timer Thread-Topic: [PATCH v2] target/arm: Add overflow check for gt_recalc_timer Thread-Index: AQHaExRfPMvujsWDHkC+f/nKYA3iTw== Date: Thu, 9 Nov 2023 13:55:18 +0000 Message-ID: <20231109135439.1297135-1-leonid_komarianskyi@epam.com> References: In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ms-publictraffictype: Email x-ms-traffictypediagnostic: AS4PR03MB8676:EE_|DB9PR03MB7338:EE_ x-ms-office365-filtering-correlation-id: 1129b834-b61f-4666-7ca2-08dbe12b8203 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: ly9f63Oz5eTp/0H+SNsiZcjm7mOuj8MqGFKobeOMVT/Ujr29E8JuqNLnUK9leVuM0U7wISgvjG3b15GdFrgYKMRYK2Xt/GQt4Obb2qBD8hI3pgPg0JcaKLzCwWj/xdgwWxC/RORO3gh9ZvS36KOGflVHlr7oHUVO6bRyb50QVl+IVvAAAb2tS5BlNqtWJ8uY9zEE9VqQOR2vDYYGXAGOfNT0qe6S9NMEaGPBRRxJAesMjdXzAHZEcR7G5p2L4EMf6voSLvEddmE3vV58WauTpJ1pr1IdcDYWX1sIxlf+9CPlVeEM2PqfnyKtVmkwUa2I9oZMbCFyYzhczpusX+HUkiBZETLvpm9E6KdiShsV76YAdMIaKdTSUFiH+HDty3wHLoQeE3lIbNeB2JhMVp5i3uqaHgCurKmSnbkhv+brbHT5+hiUUD556EHB5XgSn1pD4z5LL9HKQ5wA4bXVhPmikGCU230LkbE2YdGXjmfR4GK5xQDtzSAt3fWTc+Il9dHLfaJEYFwwelINzCga68EfrHDKsb0VkymX3WcgM+YCx79ZdLernIQN3ZnK/GDs9XGd5RLKaFJrezev/bzpWlaNdAG8aC5Iid/BBX8CGihuhgPQa9gdn7tI1ZN2iVgdUbr9 x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:AS4PR03MB8676.eurprd03.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230031)(39860400002)(376002)(346002)(136003)(366004)(396003)(230922051799003)(186009)(1800799009)(451199024)(64100799003)(26005)(2616005)(38070700009)(1076003)(107886003)(6506007)(6512007)(83380400001)(41300700001)(76116006)(66476007)(91956017)(66556008)(66946007)(66446008)(54906003)(64756008)(316002)(6916009)(122000001)(5660300002)(36756003)(86362001)(8936002)(4326008)(8676002)(38100700002)(71200400001)(478600001)(6486002)(2906002); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?q?r3glH+io5okLw0tXC9An7dP?= =?iso-8859-1?q?Soe5ZHqLGwdUGrDwN3NxOU8XmkLx6sUq1R+YrIPZecBrGPcr/JteOFwnJ/aA?= =?iso-8859-1?q?5X68N6VcpeFQr9yU80PIHRCh0JagQz01MJ30CbTssQkHmixLBbliXOe+7q9j?= =?iso-8859-1?q?YS/2AHZISMt61Bz35z53FHm63kaBaxN2f6t20kRvR+ukCOrg59xhSC3B2m6i?= =?iso-8859-1?q?n6iwy5Oc/1L9bhTlKPnfuusbrDW4nxHXgsDAjZqsWnrL3F2HL5o4rx8fQ7V4?= =?iso-8859-1?q?8LoQNBfp4jeMxdPDD/vJLJB32vxcw28QazZ26p8lCycYyAodzMcEpKJoemtw?= =?iso-8859-1?q?SNOKjDY8xRyxVP79XizfIX08Hq6Ozpu4AlJzAWJdeTP5Q/+Nl39KaHQxMluY?= =?iso-8859-1?q?SP2O9sJXrzSvbrdl6dKsJLbCUrZEnW9jpE3H/XeN7MCOJvA68YVS70HqEUaT?= =?iso-8859-1?q?M6Pu3PGGHIUW2w7atwWQgNAbbrGmGmnrgnPXPjnRCVlM+ZOsJVbfJnSUgAai?= =?iso-8859-1?q?5DwSIM4HFyO7sPHQs/ohUEMrBCQo5kE09KRTtLj9VpiDqHDGagLEuKLrbvDG?= =?iso-8859-1?q?lHFFzGWxd73D6FkKuhAjVnpEsA29KgcARHHCdknSc9Hi7QobX/OlRr0yk6aq?= =?iso-8859-1?q?y5nDUgaNOOIEP/9Cc2zdq/KwSOdifnmQ1fQ8PWmZABVu0rgM7xM1Xtp3jWfB?= =?iso-8859-1?q?C/SHCKzrPMract9l3vxi+jyFslDWkIxYvBGnJEhE2mTa681PSRn7ZusAv5SN?= =?iso-8859-1?q?3yumILuSrL1DBDLMXmka5Nbha1JR9qLa/oFBRdArtTY6IETu0OLWhoJZZSkJ?= =?iso-8859-1?q?T11aRp+DEIDsTwymcorvo8zDTfrScZcd2ZcEE30MKSSsjg4Nb+ZUl6EMWalI?= =?iso-8859-1?q?01H4j3+VeGAj7G1qsdM4id/7+6OUBfkiVpYW7/EYhS0ZR3snJOfE9oEFEPrl?= =?iso-8859-1?q?swlYgiR09691ts5SbhAio0NCgqFkNSqgR4NhZ8HllWUVm1e/Q7iEgHdWzN5H?= =?iso-8859-1?q?nMQlX8JW7U/kUu7yOo4GJTQLdwKlrTS0zu70hSQ6GAxASQcYfeDPnu1/kvj8?= =?iso-8859-1?q?VG112RROJegdRFvKmo7ctGb439zlUgcRzZ+B2u/JXUHkoumNZ8ur6klNQmeP?= =?iso-8859-1?q?A4ufFW4u7+8TbTrt7jdJlNpAYu2iA4x1q1GYWMrzFU/hNBAUh3gijrgyJx44?= =?iso-8859-1?q?q0G+ePHxNpyWDANOb6su4SoXm9T3M/EcBwYTniTSQvNNHW2AV9aUI0EGpqH9?= =?iso-8859-1?q?2C5cWLHPrjJsTZuIsHtlQ9kq3PCguoDgph5TiwkPyo3kAWssb0YIvDmEcwTc?= =?iso-8859-1?q?kAAy1/vp27LvZvRw3eDqiW1j8He4uAqxuJMFUMlXih3jWEnjB+UJW3l8zBsl?= =?iso-8859-1?q?R+tWjhUd4NdgsFJx3z7Zm+PE3ETe7wvKBIcfziX4OkyBKEsmQgEWKZSD1mgZ?= =?iso-8859-1?q?+66SRlF7/8OaFsDiYBJORCjwvHQSK6Vayp01YCt35ktyCO/VFy1ieNHmYzrL?= =?iso-8859-1?q?T3BOPBx57+bVKzdkM+cZlFvPU1Y4ez6jt5La+KfZN6Kq+r0+lNP6cIzXFo8P?= =?iso-8859-1?q?m/s0i3qf36DDmeujdDueIEI0E1AiS+9NqUv1nL7okkzm3Q64EHmyMZM7ytyT?= =?iso-8859-1?q?+WtUw+meWv1V6+jM/XEaPpeB4Lm6E8I83QW0xiOv5YWgT118mAZccbTM2mU4?= =?iso-8859-1?q?=3D?= MIME-Version: 1.0 X-OriginatorOrg: epam.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: AS4PR03MB8676.eurprd03.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 1129b834-b61f-4666-7ca2-08dbe12b8203 X-MS-Exchange-CrossTenant-originalarrivaltime: 09 Nov 2023 13:55:18.3896 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: qPcqqk/PQT1fpjlSkQJeMJ7JWdYzEY4Np0xQBR5ADoIiMdNXIRzIw5F1YuyYP0VPSOYTPTdPkDd81sX/JdOUDJ2ZO//yhtEBfDQKSwiTj4s= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB9PR03MB7338 X-Proofpoint-ORIG-GUID: dzMiTWCy6VRW-3xc7aDSbKbpqK_2mumY X-Proofpoint-GUID: dzMiTWCy6VRW-3xc7aDSbKbpqK_2mumY X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.272,Aquarius:18.0.987,Hydra:6.0.619,FMLib:17.11.176.26 definitions=2023-11-09_10,2023-11-09_01,2023-05-22_02 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 mlxlogscore=811 spamscore=0 adultscore=0 impostorscore=0 malwarescore=0 mlxscore=0 suspectscore=0 priorityscore=1501 bulkscore=0 clxscore=1011 lowpriorityscore=0 phishscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2311060000 definitions=main-2311090105 Received-SPF: pass client-ip=148.163.137.242; envelope-from=prvs=5677a8076b=leonid_komarianskyi@epam.com; helo=mx0b-0039f301.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org If gt_timer is enabled before cval initialization on a virtualized setup on QEMU, cval equals (UINT64_MAX - 1). Adding an offset value to this causes an overflow that sets timer into the past, which leads to infinite loop, because this timer fires immediately and calls gt_recalc_timer() once more, which in turn sets the timer into the past again and as a result, QEMU hangs. This patch adds check for overflowing of the nexttick variable. Suggested-by: Volodymyr Babchuk Co-Authored-By: Dmytro Firsov Signed-off-by: Leonid Komarianskyi --- target/arm/helper.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/target/arm/helper.c b/target/arm/helper.c index 3b22596eab..b4aaa2965b 100644 --- a/target/arm/helper.c +++ b/target/arm/helper.c @@ -2665,6 +2665,16 @@ static void gt_recalc_timer(ARMCPU *cpu, int timeridx) } else { /* Next transition is when we hit cval */ nexttick = gt->cval + offset; + if (nexttick < gt->cval) { + /* + * If gt->cval value is close to UINT64_MAX then adding + * to it offset can lead to overflow of nexttick variable. + * So, this check tests that arguments sum is less than any + * addend, and in case it is overflowed we have to mod timer + * to INT64_MAX. + */ + nexttick = UINT64_MAX; + } } /* * Note that the desired next expiry time might be beyond the