From patchwork Wed Oct 11 11:20:43 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Michael Tokarev X-Patchwork-Id: 731959 Delivered-To: patch@linaro.org Received: by 2002:a5d:54d1:0:b0:31d:da82:a3b4 with SMTP id x17csp346348wrv; Wed, 11 Oct 2023 04:23:05 -0700 (PDT) X-Google-Smtp-Source: AGHT+IF1IZVyjnxdemgTcdAG4ZiKmNoGlwAOiFZ7vMVZ9L+ssVXeC1fB2I9aIprEXEoLsFd+nDbZ X-Received: by 2002:a1f:cbc5:0:b0:49d:9916:5747 with SMTP id b188-20020a1fcbc5000000b0049d99165747mr17516630vkg.13.1697023384749; Wed, 11 Oct 2023 04:23:04 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1697023384; cv=none; d=google.com; s=arc-20160816; b=Qtdaj+GsjvyuGwszglRkZTDISrmW+eSzJzAKULQVoDLaqdwg3UmqnBnpU4+vNWvJ/Q nZZKMR1CWma0BV6HgTEjbgyltCSfK4abwjfuSg1yaNMFjUDpKy50pfTGVWHQCbvAlv4g pz6i4g3H3LKp50EkBhYNxoZGmnZCxSqUDukhjOqnrAAXIEZ2Jf0OnizeGu8hrYuPPqFO ravN6cEwgM7ihoQKObylPQ8Tu+syu3uoGzbX8oJQITF4sUiJ0gRRG/PeoVUv1FLxTAI9 OAnogmqQZkWtMsfVOR3IdfJ9H+KJkJ7T7CV94INwJzRFAyYdhsvy/7bYdGEYbCIHL3io 7dOg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from; bh=27sk8/rKjYWutvSmPxh5YgmwDSPF3S3i4OhgEUenq18=; fh=o2KZGme8N8Z7Q30N82s3ieRdFuzhP3AaalQkHKYaPD4=; b=d7NOUKUGZBVXkDrJQyK5iEeqMG2l0zic7Fjkfl24rM/NSCT7Xy/ObqFBc/pLWSwngF adGS7+qE2jlySNIdK/W4vjJh+UJhj3eNm1QKi8wTSdFBKWP6851dg3RrB2HiKP+TdMnL wn2LH3ta5r/9HQ11kUGeFOT54Wr26pGUSg66txx+UjScSum/WkdVyl4K7XCUepztxk7A jFgdi8B6wdMK/rWPD3sPGPgby6cdC+37I7jEcBk5nxQ1AEaFyackUY02QqoSG4ZJMCX/ sQGh9S5kozNVrxX8HLrt+RTJWpC96xPBtJ1TT9vrYXGTO7GBBkc2tNpxGF3UNHPinkYZ cLnQ== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org" Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id d19-20020ac85d93000000b00419833c5b55si8998510qtx.143.2023.10.11.04.23.04 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Wed, 11 Oct 2023 04:23:04 -0700 (PDT) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org" Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qqXHE-0007TK-Cs; Wed, 11 Oct 2023 07:21:20 -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 1qqXH9-0007Ry-IK; Wed, 11 Oct 2023 07:21:15 -0400 Received: from isrv.corpit.ru ([86.62.121.231]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qqXH6-0000jY-MT; Wed, 11 Oct 2023 07:21:15 -0400 Received: from tsrv.corpit.ru (tsrv.tls.msk.ru [192.168.177.2]) by isrv.corpit.ru (Postfix) with ESMTP id 5AC7129672; Wed, 11 Oct 2023 14:21:01 +0300 (MSK) Received: from tls.msk.ru (mjt.wg.tls.msk.ru [192.168.177.130]) by tsrv.corpit.ru (Postfix) with SMTP id C0F1F2E6F8; Wed, 11 Oct 2023 14:20:55 +0300 (MSK) Received: (nullmailer pid 1032022 invoked by uid 1000); Wed, 11 Oct 2023 11:20:55 -0000 From: Michael Tokarev To: qemu-devel@nongnu.org Cc: Peter Maydell , qemu-trivial@nongnu.org, qemu-stable@nongnu.org, =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= , Thomas Huth , Michael Tokarev Subject: [PULL 02/13] hw/rdma/vmw/pvrdma_cmd: Use correct struct in query_port() Date: Wed, 11 Oct 2023 14:20:43 +0300 Message-Id: <20231011112054.1031975-3-mjt@tls.msk.ru> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20231011112054.1031975-1-mjt@tls.msk.ru> References: <20231011112054.1031975-1-mjt@tls.msk.ru> MIME-Version: 1.0 Received-SPF: pass client-ip=86.62.121.231; envelope-from=mjt@tls.msk.ru; helo=isrv.corpit.ru X-Spam_score_int: -68 X-Spam_score: -6.9 X-Spam_bar: ------ X-Spam_report: (-6.9 / 5.0 requ) BAYES_00=-1.9, RCVD_IN_DNSWL_HI=-5, 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+patch=linaro.org@nongnu.org Sender: qemu-devel-bounces+patch=linaro.org@nongnu.org From: Peter Maydell In query_port() we pass the address of a local pvrdma_port_attr struct to the rdma_query_backend_port() function. Unfortunately, rdma_backend_query_port() wants a pointer to a struct ibv_port_attr, and the two are not the same length. Coverity spotted this (CID 1507146): pvrdma_port_attr is 48 bytes long, and ibv_port_attr is 52 bytes, because it has a few extra fields at the end. Fortunately, all we do with the attrs struct after the call is to read a few specific fields out of it which are all at the same offsets in both structs, so we can simply make the local variable the correct type. This also lets us drop the cast (which should have been a bit of a warning flag that we were doing something wrong here). Cc: qemu-stable@nongnu.org Signed-off-by: Peter Maydell Reviewed-by: Philippe Mathieu-Daudé Reviewed-by: Thomas Huth Signed-off-by: Michael Tokarev --- hw/rdma/vmw/pvrdma_cmd.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/hw/rdma/vmw/pvrdma_cmd.c b/hw/rdma/vmw/pvrdma_cmd.c index c6ed025982..d31c187593 100644 --- a/hw/rdma/vmw/pvrdma_cmd.c +++ b/hw/rdma/vmw/pvrdma_cmd.c @@ -129,14 +129,13 @@ static int query_port(PVRDMADev *dev, union pvrdma_cmd_req *req, { struct pvrdma_cmd_query_port *cmd = &req->query_port; struct pvrdma_cmd_query_port_resp *resp = &rsp->query_port_resp; - struct pvrdma_port_attr attrs = {}; + struct ibv_port_attr attrs = {}; if (cmd->port_num > MAX_PORTS) { return -EINVAL; } - if (rdma_backend_query_port(&dev->backend_dev, - (struct ibv_port_attr *)&attrs)) { + if (rdma_backend_query_port(&dev->backend_dev, &attrs)) { return -ENOMEM; }