Received: by 2002:a05:6358:4e97:b0:b3:742d:4702 with SMTP id ce23csp2925651rwb; Mon, 15 Aug 2022 14:10:40 -0700 (PDT) X-Google-Smtp-Source: AA6agR6iQjTu0zVk5r5XgLLoAALAfQa5/eGfHDNxmQHYqfpJfTG/or3yvfDmDw3PfqxJh4LoBp2o X-Received: by 2002:a05:6a00:4393:b0:52f:3603:e62f with SMTP id bt19-20020a056a00439300b0052f3603e62fmr17762773pfb.23.1660597839979; Mon, 15 Aug 2022 14:10:39 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1660597839; cv=none; d=google.com; s=arc-20160816; b=IHR05mWakcfruMu6BhcVb6g0iiLXyOu1ZjEt99gHFHc/MpCxPfdKa2aQBbN1gc92mM ZXm/LaPQpOUN5swyEgPshMGj9F8X6TT4lhEqTESPNrGVR+9cz2fF1i1TthROd5kdzoIp vuYt7m0qIb2KycU4H9IUq1jVMQTsBh0XOIlzNGYYcmsTnWuS/urgNE1uD9vRwtEOE2yr BNZn7eCWGdSI0c594777NakxLH7ACWRC4rQuzV9+kvgCsYpERSSYQCRURMFuG6PCF5V/ HakjsaLKaczvo1gNHA2pGAV3SU/f4lZdbu3eFKZig/hi082RrcPjK6wz7EDe1HX3xIlz VKCg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=ewWSWMYGNdxlJ/fovSbgaebRf6wtWTB4dzrPlNxY2l0=; b=qv6aJtODwYmktoNGM0sABzFxEB4l+dM/OE7qPawSTX/T6EZzkPJVU0Iksv6tqSluTo YWLRGPn3wZviDfu2n4anaFI656z4E1spBR0wjLV0AISIQWGp1tqLJEuMFN/NyjWPwmcG usgFdzAfaz3eMfGwVtVNd5GNdv7ftYCcMTpK8LTrPMIjID7miCwK7/e14xc30EnFg5vt Wx9p+vn1gDqsIFKj56MTOCfiiFp1IngKA4qmRTH1oQesQXwAD+LEdzr4O3G3P+DBU5/U uJ96leKxM3r80SP23bc9yTackEmc+KL2JFh4NIfDwIR9INlcki627XglCvJBjH3AGNPq vDgQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=p62m7FXk; 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=linuxfoundation.org Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id t1-20020a170902e84100b00170aed67e80si13300613plg.460.2022.08.15.14.10.28; Mon, 15 Aug 2022 14:10:39 -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=@linuxfoundation.org header.s=korg header.b=p62m7FXk; 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=linuxfoundation.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S245745AbiHOThs (ORCPT + 99 others); Mon, 15 Aug 2022 15:37:48 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:48154 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1344827AbiHOTbs (ORCPT ); Mon, 15 Aug 2022 15:31:48 -0400 Received: from dfw.source.kernel.org (dfw.source.kernel.org [IPv6:2604:1380:4641:c500::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 7AEE561134; Mon, 15 Aug 2022 11:44:56 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id 0F4E9611DD; Mon, 15 Aug 2022 18:44:56 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 03E25C433C1; Mon, 15 Aug 2022 18:44:54 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1660589095; bh=+qo1pC4Ttl+/9j8G+c7N7G61muT841xoBx/FamNTO98=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=p62m7FXkV8e/HiThWm4nOEh5/gcP/aYRr6+rdBCC1zG/L/Q0rs4iDMDw8H2Mmu6pI iDHPKNi5ctJoXg8nzrANcLE1l2lzDCTIiJS0Hh8GowPTMAiGi079qB1RsIpYU0Fkp4 P5r1hpwl/srCEg3Nzok/tZpH9EQR3mUZ+v7Dhc4k= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Eric Farman , Matthew Rosato , Alex Williamson , Sasha Levin Subject: [PATCH 5.15 594/779] vfio/ccw: Do not change FSM state in subchannel event Date: Mon, 15 Aug 2022 20:03:58 +0200 Message-Id: <20220815180402.727715424@linuxfoundation.org> X-Mailer: git-send-email 2.37.2 In-Reply-To: <20220815180337.130757997@linuxfoundation.org> References: <20220815180337.130757997@linuxfoundation.org> User-Agent: quilt/0.67 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-7.1 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_HI, SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE 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 From: Eric Farman [ Upstream commit cffcc109fd682075dee79bade3d60a07152a8fd1 ] The routine vfio_ccw_sch_event() is tasked with handling subchannel events, specifically machine checks, on behalf of vfio-ccw. It correctly calls cio_update_schib(), and if that fails (meaning the subchannel is gone) it makes an FSM event call to mark the subchannel Not Operational. If that worked, however, then it decides that if the FSM state was already Not Operational (implying the subchannel just came back), then it should simply change the FSM to partially- or fully-open. Remove this trickery, since a subchannel returning will require more probing than simply "oh all is well again" to ensure it works correctly. Fixes: bbe37e4cb8970 ("vfio: ccw: introduce a finite state machine") Signed-off-by: Eric Farman Reviewed-by: Matthew Rosato Link: https://lore.kernel.org/r/20220707135737.720765-4-farman@linux.ibm.com Signed-off-by: Alex Williamson Signed-off-by: Sasha Levin --- drivers/s390/cio/vfio_ccw_drv.c | 14 +++----------- 1 file changed, 3 insertions(+), 11 deletions(-) diff --git a/drivers/s390/cio/vfio_ccw_drv.c b/drivers/s390/cio/vfio_ccw_drv.c index 76099bcb765b..b9091e22ca57 100644 --- a/drivers/s390/cio/vfio_ccw_drv.c +++ b/drivers/s390/cio/vfio_ccw_drv.c @@ -287,19 +287,11 @@ static int vfio_ccw_sch_event(struct subchannel *sch, int process) if (work_pending(&sch->todo_work)) goto out_unlock; - if (cio_update_schib(sch)) { - vfio_ccw_fsm_event(private, VFIO_CCW_EVENT_NOT_OPER); - rc = 0; - goto out_unlock; - } - - private = dev_get_drvdata(&sch->dev); - if (private->state == VFIO_CCW_STATE_NOT_OPER) { - private->state = private->mdev ? VFIO_CCW_STATE_IDLE : - VFIO_CCW_STATE_STANDBY; - } rc = 0; + if (cio_update_schib(sch)) + vfio_ccw_fsm_event(private, VFIO_CCW_EVENT_NOT_OPER); + out_unlock: spin_unlock_irqrestore(sch->lock, flags); -- 2.35.1