From nobody Fri May 17 05:26:11 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1681134642; cv=none; d=zohomail.com; s=zohoarc; b=UILF4xsGItb/pc7seWkqSTlBmTuk21yQKXsoXVIKzNAv6AV6xJSA4VgeG32eB6N/24UK7LM50YGO+0MWq9t33QGivCDbfHuwd0tdP1TQaJjIwLoeddz+J/4pFALarlGiUmt9+66wJYVEwuhvvFVLc1uoUfdqmeHkfI5wZbnpdxE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1681134642; h=Content-Transfer-Encoding:Cc:Date:From:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Sender:Subject:To; bh=apAUbgcKK0WpKz8zRDNn8pGxRxCKedUxbp+ut+C1m4s=; b=dfhFBE3YDIZrIOnHrfwTxBD5YyvmmeOkpwRCZVz4wYTIc4wuCcljrDHYCi90hDFAVeY/VpXHY2rcyHhq7wEADjWAf0YO9/N96yWUwY/gI36YzXJ7/2SzQd4VaFB1LoAUo5n1ASrjHvYA7BMdWbREj+J+4bejxdxpF5H5Icri4vk= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 168113464220271.76847026578275; Mon, 10 Apr 2023 06:50:42 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1plruJ-0003oT-25; Mon, 10 Apr 2023 09:50:07 -0400 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 1plru3-0003lQ-1n for qemu-devel@nongnu.org; Mon, 10 Apr 2023 09:49:58 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1plrtz-0003fp-Pr for qemu-devel@nongnu.org; Mon, 10 Apr 2023 09:49:49 -0400 Received: from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-569-SsZpcKO0N8ylHMB3OOzFWA-1; Mon, 10 Apr 2023 09:49:43 -0400 Received: from smtp.corp.redhat.com (int-mx07.intmail.prod.int.rdu2.redhat.com [10.11.54.7]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id A9A20884EC1; Mon, 10 Apr 2023 13:49:42 +0000 (UTC) Received: from localhost (unknown [10.39.192.93]) by smtp.corp.redhat.com (Postfix) with ESMTP id D38FE14171B7; Mon, 10 Apr 2023 13:49:41 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1681134586; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding; bh=apAUbgcKK0WpKz8zRDNn8pGxRxCKedUxbp+ut+C1m4s=; b=YcdCm0fCEnklHB8q/OO//S2b84WBVhi+O15W1eMnHhPyuaaKiwXX+9vZUuvPTM0Qd0Y4dv JXTTb1tEH98WHZAyoDi9H2wRBUv7hiarHJTwuQWET4o7Tc5844jho01suCCTX5FbCQ7rKg /WJxTR3y5GgQlH4WxZwvy3FvhNPh6Vg= X-MC-Unique: SsZpcKO0N8ylHMB3OOzFWA-1 From: Stefan Hajnoczi To: qemu-devel@nongnu.org Cc: qemu-block@nongnu.org, Kevin Wolf , Hanna Reitz , Stefan Hajnoczi , Sam Li , Dmitry Fomichev , Damien Le Moal Subject: [PATCH] block/file-posix: use unsigned int for zones consistently Date: Mon, 10 Apr 2023 09:49:38 -0400 Message-Id: <20230410134938.907457-1-stefanha@redhat.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Scanned-By: MIMEDefang 3.1 on 10.11.54.7 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=170.10.129.124; envelope-from=stefanha@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 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+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1681134643857100003 Content-Type: text/plain; charset="utf-8" Avoid mixing int and unsigned int for zone index and count values. This eliminates the possibility of accidental negative write pointer array indices. It also makes code review easier because we don't need to worry about signed/unsigned comparisons. In practice I don't think zoned devices are likely to exceed MAX_INT zones any time soon, so this is mostly a code cleanup. Cc: Sam Li Cc: Dmitry Fomichev Cc: Damien Le Moal Signed-off-by: Stefan Hajnoczi Reviewed-by: Sam Li --- block/file-posix.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) This is a cleanup on top of "[PATCH v9 0/4] Add zone append write for zoned device". Based-on: <20230407081657.17947-1-faithilikerun@gmail.com> diff --git a/block/file-posix.c b/block/file-posix.c index 32b16bc4fb..77fbf9e33e 100644 --- a/block/file-posix.c +++ b/block/file-posix.c @@ -1338,8 +1338,9 @@ static int get_zones_wp(BlockDriverState *bs, int fd,= int64_t offset, size_t rep_size; uint64_t sector =3D offset >> BDRV_SECTOR_BITS; BlockZoneWps *wps =3D bs->wps; - int j =3D offset / bs->bl.zone_size; - int ret, n =3D 0, i =3D 0; + unsigned int j =3D offset / bs->bl.zone_size; + int ret; + unsigned int n =3D 0, i =3D 0; rep_size =3D sizeof(struct blk_zone_report) + nrz * sizeof(struct blk_= zone); g_autofree struct blk_zone_report *rep =3D NULL; =20 @@ -2092,7 +2093,8 @@ static int handle_aiocb_zone_report(void *opaque) struct blk_zone *blkz; size_t rep_size; unsigned int nrz; - int ret, n =3D 0, i =3D 0; + int ret; + unsigned int n =3D 0, i =3D 0; =20 nrz =3D *nr_zones; rep_size =3D sizeof(struct blk_zone_report) + nrz * sizeof(struct blk_= zone); @@ -3507,11 +3509,11 @@ static int coroutine_fn raw_co_zone_mgmt(BlockDrive= rState *bs, BlockZoneOp op, return ret; } } else if (zo =3D=3D BLKRESETZONE) { - for (int j =3D 0; j < nrz; ++j) { + for (unsigned int j =3D 0; j < nrz; ++j) { wp[j] =3D offset + j * zone_size; } } else if (zo =3D=3D BLKFINISHZONE) { - for (int j =3D 0; j < nrz; ++j) { + for (unsigned int j =3D 0; j < nrz; ++j) { /* The zoned device allows the last zone smaller that the * zone size. */ wp[j] =3D MIN(offset + (j + 1) * zone_size, offset + len); --=20 2.39.2