Received: by 2002:a05:6a10:1a4d:0:0:0:0 with SMTP id nk13csp6394020pxb; Tue, 15 Feb 2022 01:13:18 -0800 (PST) X-Google-Smtp-Source: ABdhPJyt7Q6TaN09oaKoMEwHf9luvk9hATjieZZzA3+iDmiXa1gPtcWd//kXfd1JCvcMgOu4rLHU X-Received: by 2002:a17:902:dad0:: with SMTP id q16mr3066692plx.76.1644916398594; Tue, 15 Feb 2022 01:13:18 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1644916398; cv=none; d=google.com; s=arc-20160816; b=encz+3dXmgO3qLpsfJhMN4ym3h6CDAG9JRkoi++wJ8w8Rc2Y7syplOUfwB4JCT3i9K LvIsRFUa6JaRksiW+5Z0QYoG33Md6VdqIR/2eI2ZLMCe314g0IezWkJT5A09RTFYXuTP lKLsGBEE2b92zpCjGHhJuLc48YD994YTOxOwBemMaA8zi/btP1UspSAfrvaCoCgXN9Dm /I5B2sYXeFN2diVXRyrqhCZ9mkQtNYlOYrQdJ8bSS0QvjRP65VcAW1lmHlXhk4kz6xRl 1w02ih2AukI0m2EWyAWOzWYxAgPy82h9FYT8eveoLc76PZ8JAAO9D1ijF7582VCgTovq IFBQ== 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 :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=V3nDxhhn4oXGMK/yz9X4KfiNglBbgAuLgOqJKv8fSx4=; b=knypJL7rL2ap1/KHP9zSxGRHiYwhofbeYd85x59uCxncsu4y5Y/zpBb4ZpjsnbR14V 4WKX27rnE10x0dMKrVuI6e9nDQ1mdoWA95jfcfR4OyQKg6QJ5uchWkehZl5a8kYejBhd YZRY2dkAR+1gFvhoNH+dnXtzGMscjQ+pMkxO9vkH0FTstFVcKcLc140Rxb8RAbZ1Xr/Z 79UI7mquKBUaeCB70RnIO2dNWpG3Gms29BRdORDaj3f9kRXzKsgj2yLbD1qaE41YcmjC CZJ/1yaAAosH7Fpb5Z6wXZzWLB3jX/Mn9tDkFa+nD1LVaCXfxvd+KKSaWhtOGvRPPR2a l7Qw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b="jtZOGP/G"; 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=intel.com Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id j3si13540906pjl.147.2022.02.15.01.13.04; Tue, 15 Feb 2022 01:13:18 -0800 (PST) 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=@intel.com header.s=Intel header.b="jtZOGP/G"; 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=intel.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235116AbiBOIFC (ORCPT + 99 others); Tue, 15 Feb 2022 03:05:02 -0500 Received: from mxb-00190b01.gslb.pphosted.com ([23.128.96.19]:38136 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235103AbiBOIFA (ORCPT ); Tue, 15 Feb 2022 03:05:00 -0500 Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id A3D9E2654E for ; Tue, 15 Feb 2022 00:04:51 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1644912291; x=1676448291; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=y45v02Q4Yhlu+Z7MmUeFrzCK/xlZgbm1OeeQ2IVfrtE=; b=jtZOGP/GXTMREETeCMGlaoeir+Z4d4VPNmpKusv21DVNx6F5I1L/C4xv f9f4HmJMzU8ieCbdfL1AFgKxu+GC83o2aHKpDnI3cj8ZfJY5LixJ6pzfu p/4C3+x35Y/ffvAoEd3cFlTZpoOcRlBCbnezGbropBKaYYWDAt0LCzpjf XNxzfV7fGgBUzOfKI09+OP3L4JRUy4/H/z55sDkhG3/51nszn6UxYbOEN W0/Gsw+O7XoXoMz4ftVtE8Nt9Q4rDq0fXaeZ4Dve+FHzZqrwEqVml20MS HPsymZZ4VgmOpfvHPSHxgula3/OuMec2jAWOw4dNVKxjmUPQalYvUwF6s g==; X-IronPort-AV: E=McAfee;i="6200,9189,10258"; a="336703233" X-IronPort-AV: E=Sophos;i="5.88,370,1635231600"; d="scan'208";a="336703233" Received: from orsmga005.jf.intel.com ([10.7.209.41]) by fmsmga105.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 15 Feb 2022 00:04:51 -0800 X-IronPort-AV: E=Sophos;i="5.88,370,1635231600"; d="scan'208";a="703498884" Received: from twinkler-lnx.jer.intel.com ([10.12.91.43]) by orsmga005-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 15 Feb 2022 00:04:49 -0800 From: Tomas Winkler To: Greg Kroah-Hartman Cc: Alexander Usyskin , Vitaly Lubart , linux-kernel@vger.kernel.org, Tomas Winkler Subject: [char-misc-next 2/4] mei: me: avoid link reset on shutdown Date: Tue, 15 Feb 2022 10:04:36 +0200 Message-Id: <20220215080438.264876-2-tomas.winkler@intel.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20220215080438.264876-1-tomas.winkler@intel.com> References: <20220215080438.264876-1-tomas.winkler@intel.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-4.5 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED, SPF_HELO_NONE,SPF_NONE,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: Alexander Usyskin Avoid lingering reset thread on driver shutdown. If the firmware is down during a shutdown flow do not initiate the link reset, simply disconnect all clients and let shutdown flow finish Signed-off-by: Alexander Usyskin Signed-off-by: Tomas Winkler --- drivers/misc/mei/client.c | 1 + drivers/misc/mei/hw-me.c | 6 +++++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/drivers/misc/mei/client.c b/drivers/misc/mei/client.c index 06734670a732..31264ab2eb13 100644 --- a/drivers/misc/mei/client.c +++ b/drivers/misc/mei/client.c @@ -2148,6 +2148,7 @@ void mei_cl_all_disconnect(struct mei_device *dev) list_for_each_entry(cl, &dev->file_list, link) mei_cl_set_disconnected(cl); } +EXPORT_SYMBOL_GPL(mei_cl_all_disconnect); static struct mei_cl *mei_cl_dma_map_find(struct mei_device *dev, u8 buffer_id) { diff --git a/drivers/misc/mei/hw-me.c b/drivers/misc/mei/hw-me.c index fbc4c9581864..3a86c087bc9d 100644 --- a/drivers/misc/mei/hw-me.c +++ b/drivers/misc/mei/hw-me.c @@ -1257,7 +1257,11 @@ irqreturn_t mei_me_irq_thread_handler(int irq, void *dev_id) /* check if ME wants a reset */ if (!mei_hw_is_ready(dev) && dev->dev_state != MEI_DEV_RESETTING) { dev_warn(dev->dev, "FW not ready: resetting.\n"); - schedule_work(&dev->reset_work); + if (dev->dev_state == MEI_DEV_POWERING_DOWN || + dev->dev_state == MEI_DEV_POWER_DOWN) + mei_cl_all_disconnect(dev); + else if (dev->dev_state != MEI_DEV_DISABLED) + schedule_work(&dev->reset_work); goto end; } -- 2.34.1