Received: by 2002:a05:6a10:2726:0:0:0:0 with SMTP id ib38csp666109pxb; Tue, 5 Apr 2022 17:57:51 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxxcIqwhtFT1UUP1WIdi98ywwwKbpYxfGhFrEwAk61tqm2Z6iZWnmJM1cVxcfmq4wkj96tl X-Received: by 2002:a17:906:2bc1:b0:6cf:d009:7f6b with SMTP id n1-20020a1709062bc100b006cfd0097f6bmr5741861ejg.17.1649206671445; Tue, 05 Apr 2022 17:57:51 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1649206671; cv=none; d=google.com; s=arc-20160816; b=aM5z4oPyDgHegLfLsLlztalnn/Nd1uqoup8pt2K0rlXKqYGZsbBVjwRyBDbMJjpib4 L3Zax4u2AshuPpfiVC46HX7A82KQbhdb3dVwiV3/f+lvJJOpMmbqgaCDFiVMdTCp8x47 T5O0JQTD/EQszvxMMpIe4PpizIwSZQ9/nrIsMOnP5nhUcLeXCwEX8oenzhGgzisYHRzb TN4euEH85ZKITO5BkkInzFxWxbHMpWKqzIQDYH19xLbjqBRvjetxUWNQwQS7WSXzLatY /KZU6KB4Lmqe23RSGb0U6YOl3evGtardZJUUBubPBZJtqGTlFFGDFrlwpJDFe8mylPa1 UaQQ== 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=Qyk+Ei96bZ58MyKaKn2GN/kNhj8jQsaNl0VK+gYYeBk=; b=FheJEfy0ZnUgEuyobWtMhKw+bHUDK1N7rrPQBBBzqDqP3s4fnXfyPWvcPTWITuG90+ Cd3dD5UOnmmvy6zyxO+LCDXT2d5SnzyWP4j5SyENgdblrncAhdyVmsIZEoCw1VQ6Seze 41sXwlCXAeVEMA+7xr6gtshdZEr3dKCOTemvjfGaO8GIzWhZlmVDxRMqDfKTR7L6hXJY OxINr7oAlwSVC7lUXqSTA6xR/1phS1xSN4MEaOF1Q0sMIB8e2vhROJPTM+TdjVElRJti IJ+UrObNML/mQwg27bEO0UcAm05Atq1vJud5Eukd4rTjetzocqeXkB3xKxtiJHaPCtqF Q4lg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=ykDjpSek; 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 vl21-20020a17090730d500b006e4b402d39asi9630855ejb.89.2022.04.05.17.57.24; Tue, 05 Apr 2022 17:57:51 -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=ykDjpSek; 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 S243596AbiDEJkI (ORCPT + 99 others); Tue, 5 Apr 2022 05:40:08 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:45644 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S239346AbiDEIT7 (ORCPT ); Tue, 5 Apr 2022 04:19:59 -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 0DA72BABBB; Tue, 5 Apr 2022 01:11:27 -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 9F1F660B0A; Tue, 5 Apr 2022 08:11:26 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id A85A9C385A0; Tue, 5 Apr 2022 08:11:25 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1649146286; bh=qYNb8JjXyt2i++J9mM15z0WcGWElh9bLpF6Ke3lC8g4=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=ykDjpSekVUMS31MaqHAUqlYRaEcjdwJS5mGv/sq7LlxWtAnfkvS4X+w7pA0DVKrMS ihd5t6CR+drJ0u+TAgSZ+SnYNKTu+Ec7bs1ntMBVs7LPDqrrMbQmNOPesmFxJST0qq ZCsj5GLyLiljzKsfzKNJh6RnNAfP5GX9/72P0h7k= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Alexander Lobakin , Michal Kubiak , Maciej Fijalkowski , Tony Nguyen , Jakub Kicinski , Sasha Levin Subject: [PATCH 5.17 0708/1126] ice: dont allow to run ice_send_event_to_aux() in atomic ctx Date: Tue, 5 Apr 2022 09:24:15 +0200 Message-Id: <20220405070428.382965430@linuxfoundation.org> X-Mailer: git-send-email 2.35.1 In-Reply-To: <20220405070407.513532867@linuxfoundation.org> References: <20220405070407.513532867@linuxfoundation.org> User-Agent: quilt/0.66 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: Alexander Lobakin [ Upstream commit 5a3156932da06f09953764de113419f254086faf ] ice_send_event_to_aux() eventually descends to mutex_lock() (-> might_sched()), so it must not be called under non-task context. However, at least two fixes have happened already for the bug splats occurred due to this function being called from atomic context. To make the emergency landings softer, bail out early when executed in non-task context emitting a warn splat only once. This way we trade some events being potentially lost for system stability and avoid any related hangs and crashes. Fixes: 348048e724a0e ("ice: Implement iidc operations") Signed-off-by: Alexander Lobakin Tested-by: Michal Kubiak Reviewed-by: Maciej Fijalkowski Acked-by: Tony Nguyen Signed-off-by: Jakub Kicinski Signed-off-by: Sasha Levin --- drivers/net/ethernet/intel/ice/ice_idc.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/drivers/net/ethernet/intel/ice/ice_idc.c b/drivers/net/ethernet/intel/ice/ice_idc.c index fc3580167e7b..5559230eff8b 100644 --- a/drivers/net/ethernet/intel/ice/ice_idc.c +++ b/drivers/net/ethernet/intel/ice/ice_idc.c @@ -34,6 +34,9 @@ void ice_send_event_to_aux(struct ice_pf *pf, struct iidc_event *event) { struct iidc_auxiliary_drv *iadrv; + if (WARN_ON_ONCE(!in_task())) + return; + if (!pf->adev) return; -- 2.34.1