From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail.openvz.org (unknown [69.168.225.77]) by lore.virtuozzo.com (Postfix) with ESMTPS id EB35C80AF1 for ; Wed, 14 Oct 2026 17:17:53 +0000 (UTC) Received: from mail.openvz.org (localhost [127.0.0.1]) by mail.openvz.org (8.14.4/8.14.4) with ESMTP id 69EHGfew001621; Wed, 14 Oct 2026 20:16:42 +0300 DKIM-Filter: OpenDKIM Filter v2.11.0 mail.openvz.org 69EHGfew001621 Authentication-Results: mail.openvz.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=virtuozzo.com header.i=@virtuozzo.com header.b="f2PjU+Bl" Received: from mail-wr1-f69.google.com (mail-wr1-f69.google.com [209.85.221.69]) by mail.openvz.org (8.14.4/8.14.4) with ESMTP id 69EHGXeR001591 (version=TLSv1/SSLv3 cipher=AES128-GCM-SHA256 bits=128 verify=FAIL) for ; Wed, 14 Oct 2026 20:16:34 +0300 DKIM-Filter: OpenDKIM Filter v2.11.0 mail.openvz.org 69EHGXeR001591 Received: by mail-wr1-f69.google.com with SMTP id ffacd0b85a97d-48b02e93a1eso3577667f8f.1 for ; Wed, 14 Oct 2026 10:16:34 -0700 (PDT) X-Gm-Message-State: AFq9FYKdlhKnhex++PdyjwWMARrO9an1lEGfeRgFemEmzFE0EGmMcOdN EJt5j34HqQTwND/Qjb79swwS3UTfV70Qc0Ya98bBp7I+aAM56gW+B7vooOWBVI6L3QelgG7kSKz p5evaYVXI2I1VZuA7eZkhwQPYZraERz9tvrrOYg/F58zB0R/VX24iOg== X-Gm-Gg: AYBFou29sY3JXmw+7cekfpT0/OeFMMu4AAo0STQRFP0ReN45cCEhLAbRJRl/maodaEm mzSO3Fy+J08pFQrt70STtlM3kcZeJ2jo2D9Kt4nHnFk+MoIDUNB5xJrt4LxW6oVYORelS84jHOl sEFc/5nbD61y6ZWJczo0H7hGkYvMjPGCv8ecEZoLIDYK7EkikKUI1cq7KPIibVRWhM/xOh+4Og4 MNnm60GvlU4HlUy7r0O7LpK11JhuM2drBb2SWFjr+Sti2Kg1bkS8nlz9ZkVzqDMCm3dsEOLgX1e 9LHOZ1aqFL0lGrKGKtlRudxNBdGqL0/pYrNNcajhPzleT1YWkkNs8ETXcTF0iYrF52vhARTvsCn 9LsZVHGIFQxMKbMsqkg== X-Received: by 2002:a5d:5d0e:0:b0:48b:1147:3d75 with SMTP id ffacd0b85a97d-48dbace44ebmr28896550f8f.45.1791998192922; Wed, 14 Oct 2026 10:16:32 -0700 (PDT) X-Received: by 2002:a5d:5d0e:0:b0:48b:1147:3d75 with SMTP id ffacd0b85a97d-48dbace44ebmr28896493f8f.45.1791998192260; Wed, 14 Oct 2026 10:16:32 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1791998192; cv=none; d=google.com; s=arc-20260327; b=Ls00b0ycYMPPVkk+RujoIdQiR4cPrDDYuCDWJhue27yZhrUL2/BZvmGjV+xKh1VBBg +ovNNiF6uxSQkWZFu982VREpQIpBq5mvxDj+pEUD6BnZBp4LgnEfvYalSJIgcjTtO24e 6s/w4UgHj5LHmOjZOWHxTdv0UNHnXAT7G87I15lDYYTvdykN8EoddCXh6kRGer06NqWY 5vmqr3oUEljN0Y+fhfjlHao2iLezeMK22EGeM00/edd3o6oaf91AIlvZNWLkNABNhizK cAbdQjg7owpXd9Dk2mkvfExHsAEjQYNXCqRnAGYrGFoZmanziXUujc4K6nBrqO7U5bLA oESw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20260327; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:dkim-signature; bh=MAV+mZDcVxqJeVYHPr4ZL76wXSoxJlGeUUJ4WtDhiAg=; fh=aQfw1i5a4NQPWqzJLDKkrMTvdRoUn/cswL6yDWdmKfA=; b=LEmsssSgOIyzIjanuWG7/XI6ZYfL17ADJ+/uzjy5BkdSkxdDfl9c4g6sPTtwraHIjS pz8t+cHEn0KPCRipDLhNAM6+vHoHyOrrg4uTvL2g+cLsRwhc5yeUh4/N3avG08uAEW+f W3k/AlC+pi/2/DB1vRtoBFsGHTyqmsw7j9e8q7JaEaKAiJKafnnIBNrWRCBVvecfQ9Jc 9XqYvyyVpvQ+JFn/iNFdZZMtvTFsOyX8vxqPSW5M9Huu2RvCjX5l8LtufJgEqHeKpDud 9QYQRRB0Zxc+y2+toBOH4Nnl4xExwdJt6S7JJh6GEdQ/b//s8YFXWwupyCR90jRqO2vB r06Q==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@virtuozzo.com header.s=relay header.b=f2PjU+Bl; spf=pass (google.com: domain of khorenko@virtuozzo.com designates 130.117.225.111 as permitted sender) smtp.mailfrom=khorenko@virtuozzo.com; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=virtuozzo.com Received: from relay.virtuozzo.com (relay.virtuozzo.com. [130.117.225.111]) by mx.google.com with ESMTPS id ffacd0b85a97d-48de0966514si12865702f8f.3.2026.10.14.10.16.32 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 14 Oct 2026 10:16:32 -0700 (PDT) Received-SPF: pass (google.com: domain of khorenko@virtuozzo.com designates 130.117.225.111 as permitted sender) client-ip=130.117.225.111; Authentication-Results: mx.google.com; dkim=pass header.i=@virtuozzo.com header.s=relay header.b=f2PjU+Bl; spf=pass (google.com: domain of khorenko@virtuozzo.com designates 130.117.225.111 as permitted sender) smtp.mailfrom=khorenko@virtuozzo.com; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=virtuozzo.com DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=virtuozzo.com; s=relay; h=Message-Id:Content-Type:MIME-Version:Subject:Date :From; bh=MAV+mZDcVxqJeVYHPr4ZL76wXSoxJlGeUUJ4WtDhiAg=; b=f2PjU+BlO+sBilqT3Iv msj7Jb/oSxIzfgD20K707hitLV1IS+gXaQzwd9wQMf8PNV9QEVN5nPlTphvk+FhgG1P6aevd+Jdcl RMbJNaCntwbzMgTClilhji0ZlxO5MGe7JXZ8mSr6umKtp5mstbC0h0kXRa1BXItVdwvfRXGOp0TqD 0SNglv6tcMDtZPneC50Awn5yTB7Ar/sRogFSdb3L2x0Au0dtXlaIYvKOoZBoQ7H1S1MDPgz1S6wo5 v4UOeOILHFrXNEWVt/s7MozPnB0Y4uCspiR82sIbM35ryDrzsr17wY+w/80uGfAOkiuIG8jgKxdO6 s2BC+6rkOX/yBTw==; Received: from ch-demo-asa.virtuozzo.com ([130.117.225.8] helo=f0.sw.ru) by relay.virtuozzo.com with esmtp (Exim 4.96) (envelope-from ) id 1xH2XC-0087Hi-2U; Wed, 14 Oct 2026 19:16:31 +0200 From: Konstantin Khorenko Date: Wed, 14 Oct 2026 19:16:26 +0200 MIME-Version: 1.0 Message-Id: <20261014-b4-prep-khorenko-vstor-149847-6-vfio-exec-ms-backports-v1-1-07b4e541d4ec@virtuozzo.com> References: <20261014-b4-prep-khorenko-vstor-149847-6-vfio-exec-ms-backports-v1-0-07b4e541d4ec@virtuozzo.com> In-Reply-To: <20261014-b4-prep-khorenko-vstor-149847-6-vfio-exec-ms-backports-v1-0-07b4e541d4ec@virtuozzo.com> To: Vasileios Almpanis , Andrey Drobyshev , Pavel Tikhomirov X-Mailer: b4 0.16.0 X-Developer-Signature: v=1; a=openpgp-sha256; l=2371; i=khorenko@virtuozzo.com; h=from:subject:message-id; bh=n9IRQm1CZEXHu56ZIgo8kQRtcZsBwFj1wYAG7LBqtgc=; b=owEBbQKS/ZANAwAKAVGWCkf5YVwqAcsmYgBqz7judLB2auaqJmBpk03Qwkn7grxUa6Ti6e4wc o2e5eUkgKqJAjMEAAEKAB0WIQRWD23IPcXT0GO9CCxRlgpH+WFcKgUCas+47gAKCRBRlgpH+WFc KnwVEACirY8d+rlKrQTRmadVUnesEWQQOJUqs4SF2g9b1DtQAvHlrvDWdQ8JRm8XUnRzdSokyqa /sepmUP8jabTXuKX7QaAJpz3n/uIEL9KwDE81gnpkiwGiFHJ8mZRI+P0krU3xok9ggRGO+gl1aB e0HbrGoHRH1nzxpXr4FnFfycHzdPZYnQ0wtVrBIiF8ZM1IuztKPqI2tZ0BDVIxguq6gg0ikV2kV W664gvgDKjIPKQYh3B3Vk4PHny9jBiLWJCIPtbpl4qqwUyRdgp6ffBTpeO2zZGl2swmIo2HK+sw NKVR5dZSYtHCeh3aX9KK5AJl7nq2Lt1is91LpkOrwexje7s0WekfSG7RqWmV7LhHSy6Y5Tcat8Z HH/HlpRwysoy43xyiVBtPonQUVVMqfu1AyaotGslyEHzmsAtajBkrrB36tw7nUHI7Kfo9625/l1 ukoq43wi0PyHpoXLPDAT3vqjsCv7Nwi7jMiCL6/VVXDpARTQfLiBGiTKjQE0x9AKzXK0dWpKtAT XZgSfkTEJd9XMaVHKsqyloAayFkHshTBdq/pURNleHuoc7emEsM3tOmMbBS7/Ses2xtJtTeVU5r csXfMHUEUIr5GqARiXLhe/a8RUHWIU1dsay+CnTIU4ZUiLfN0CUYcqotreB8LY0zztn3V3B8Aem Q9gF4o7L8qImfMg== X-Developer-Key: i=khorenko@virtuozzo.com; a=openpgp; fpr=560F6DC83DC5D3D063BD082C51960A47F9615C2A X-OZ-Fwd: true Cc: devel@openvz.org Subject: [Devel] [PATCH hci-8.1 1/2] ms/vfio: prevent infinite loop in vfio_mig_get_next_state() on blocked arc X-BeenThere: devel@openvz.org X-Mailman-Version: 2.1.12 Precedence: list List-Id: OpenVZ development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: devel-bounces@openvz.org Errors-To: devel-bounces@openvz.org From: Junrui Luo vfio_mig_get_next_state() walks vfio_from_fsm_table[] one step at a time, looping to skip optional states the device does not support until *next_fsm is supported. A blocked transition is encoded as VFIO_DEVICE_STATE_ERROR, which the trailing return reports as -EINVAL. The skip loop does not account for the ERROR sentinel. state_flags_table[ERROR] is ~0U and vfio_from_fsm_table[ERROR][*] is ERROR, so once *next_fsm becomes ERROR the loop condition stays true and *next_fsm never changes. The blocked arcs STOP_COPY -> PRE_COPY and STOP_COPY -> PRE_COPY_P2P map to ERROR yet pass the support check on a precopy-capable device, causing the loop to spin forever while holding the driver state mutex. This can result in a soft lockup, and a panic with softlockup_panic set. Terminate the skip loop on the ERROR sentinel so a blocked transition falls through to the existing return and reports -EINVAL. Fixes: 4db52602a607 ("vfio: Extend the device migration protocol with PRE_COPY") Reported-by: Yuhao Jiang Cc: stable@vger.kernel.org Signed-off-by: Junrui Luo Reviewed-by: Kevin Tian Reviewed-by: Jason Gunthorpe Link: https://lore.kernel.org/r/SYBPR01MB7881290BBDE79B61AE6A017FAF122@SYBPR01MB7881.ausprd01.prod.outlook.com Signed-off-by: Alex Williamson (cherry picked from commit a26b499b757cfc8bbff1088bb1b844639e250893) https://virtuozzo.atlassian.net/browse/VSTOR-150235 Feature: fix ms/vfio Assisted-by: LLM Signed-off-by: Konstantin Khorenko --- drivers/vfio/vfio_main.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/vfio/vfio_main.c b/drivers/vfio/vfio_main.c index f7df90c423b48..bf01fc64ee646 100644 --- a/drivers/vfio/vfio_main.c +++ b/drivers/vfio/vfio_main.c @@ -848,7 +848,8 @@ int vfio_mig_get_next_state(struct vfio_device *device, * logical state, as per the above comment. */ *next_fsm = vfio_from_fsm_table[cur_fsm][new_fsm]; - while ((state_flags_table[*next_fsm] & device->migration_flags) != + while (*next_fsm != VFIO_DEVICE_STATE_ERROR && + (state_flags_table[*next_fsm] & device->migration_flags) != state_flags_table[*next_fsm]) *next_fsm = vfio_from_fsm_table[*next_fsm][new_fsm]; -- 2.43.0 _______________________________________________ Devel mailing list Devel@openvz.org https://lists.openvz.org/mailman/listinfo/devel