Received: by 2002:a05:6358:4e97:b0:b3:742d:4702 with SMTP id ce23csp3024077rwb; Mon, 15 Aug 2022 16:21:48 -0700 (PDT) X-Google-Smtp-Source: AA6agR6r4i/G+TQ0L5x3qOMJKn59CzQwdutdU8GruJz/wGOTX+37CGHEgqjOeeZDq4ABgAi3kF5b X-Received: by 2002:a05:6a02:286:b0:422:f1ba:745 with SMTP id bk6-20020a056a02028600b00422f1ba0745mr12474733pgb.569.1660605612541; Mon, 15 Aug 2022 16:20:12 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1660605612; cv=none; d=google.com; s=arc-20160816; b=HZJvdCji+jxGP6owDA/tVXtwfCGBsVTfuaomasE9o0H1/Wntmj07kXpaqxYt8sebMI E7djJ8hwb1Q0+Imt1ZFRF9kUqWgnZiWZJzhsCsIALKVaeF7KwABHtPWSy9Ff+A0DOTVm zPfuyKmC3/Dxu3DbaL3YGumwTSNiaeyXdOursutUADA68KxX3WXtfWesTjFVC+dpqkl9 cNCHeiwJmiTykv7CmJA3Zu14TfothWEnOdgJxrHiqtpToIsASN1ghdOXeNBa+kZ5Zp0l 6J3mCyPn5B/0tz4YFIOcBo841ovd0wNMnPthMvvqOfog0oLaU8UxTHFFxJ9cOlhHK9t8 fcig== 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=iPQfKfohtU7+FMkycpNhNUHS3VTpm0tVgPChdp/Vcyc=; b=T2nhthGvqMW6lnGT7sPMKi2r8hDYO8kZEJoxwQ+VWzisSB65YmFYrzbV94NSBpCtX8 hSrRgiWQFksYXRCgHsFf1VfB8q9glEmQBeXlc2xezurfK81tQfnk/0Ks9f6Vd4sW/0qs LuNqFFpC8kSD1zBeEYWG7QJXRD6KNhl/y3DIdTp7yIX7A//j4QgAPAhTC4chpxsx6r3d e4DKY1KQbjj/QiXrMfOvD7iJY76BG0pk3kuWzHd5jzrnVMAa1WLnmj7/F2DHKg0SFLe+ RRwINmK+mGPy92qI4PIgBlcsNxB1hW2Cb0KUlulJna0NJlvvXfdTkHwQuRROb+3EI53z g7ig== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=wuZNS7tj; 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 a27-20020a634d1b000000b004117e8114casi10582147pgb.483.2022.08.15.16.20.01; Mon, 15 Aug 2022 16:20:12 -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=wuZNS7tj; 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 S1344887AbiHOWkL (ORCPT + 99 others); Mon, 15 Aug 2022 18:40:11 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:54682 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1349525AbiHOWeM (ORCPT ); Mon, 15 Aug 2022 18:34:12 -0400 Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id C91F712E27B; Mon, 15 Aug 2022 12:49:33 -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 B713F61226; Mon, 15 Aug 2022 19:48:53 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id BDC39C433C1; Mon, 15 Aug 2022 19:48:52 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1660592933; bh=DLJUHjw7dNV0aVabRJZ7xLg7ayVN5gRvxA5ZVDd6Pmg=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=wuZNS7tj07HjVqLceG2oSWL6+OnVZde+hoEC4/r56mKkhYezE2TKNhcoVoiQ/laDl EklbFk/KPyF8DVzaZ0wmqhjSzuNkaUkhLS4/dw7wKT6Ulk2nCWqiQntKc89QXVHbC+ inPIyGhauAyNrptm1v/P537qudIq8gtqE8Huwsq4= 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.18 0868/1095] vfio/ccw: Do not change FSM state in subchannel event Date: Mon, 15 Aug 2022 20:04:27 +0200 Message-Id: <20220815180505.273234596@linuxfoundation.org> X-Mailer: git-send-email 2.37.2 In-Reply-To: <20220815180429.240518113@linuxfoundation.org> References: <20220815180429.240518113@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 789175221e9a..e76a4a3cf1ce 100644 --- a/drivers/s390/cio/vfio_ccw_drv.c +++ b/drivers/s390/cio/vfio_ccw_drv.c @@ -302,19 +302,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