Received: by 2002:a05:6a10:2726:0:0:0:0 with SMTP id ib38csp914566pxb; Wed, 6 Apr 2022 04:08:25 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwgPAM3+z31UG/0ztMRLGDbRp9Jf7/sBe+oxs4fOt+SdGBnu6f6ZLE2MPtMiCHgOj5NXJsG X-Received: by 2002:a17:90a:8a85:b0:1ca:9d13:9f61 with SMTP id x5-20020a17090a8a8500b001ca9d139f61mr9417395pjn.35.1649243305129; Wed, 06 Apr 2022 04:08:25 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1649243305; cv=none; d=google.com; s=arc-20160816; b=JS3vKPuG/36hRGbM8cs56xtB8dXzwjYM1KfpspHPV9bvvcKb7q6nRq7rL3LskqWLQp 2xg2bGjrjQ9pfJt8fkgms7owqftzkvK18uId5JOpIL5+VYgBx4V6OIhwxzkjmjubDojZ FtBi3Fbjy3rP5l+GHj8prFEIny1UMctOhcsEEY+HVjePlEpnxs1AQ4LV+dJeoymGzPu2 dJhcVjv3R97HSdfFnBY6HQekcNH4KW1EKHemOlIKBBgQeK1RvAZbxNtAAkFr+x+t2VFq J2BX5iqlQlYDvqGkKblcoGM1QY9mvj2khgFgWckidW4wz97aUxW2GXr+Zjjowa1bVboN IPVA== 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=ngfbzL/qIzZ9EjVhknCqJhZBtHOByjGOZa66+2dPmZ0=; b=eHiYKiRG5q9DXjfAkeIxKICcW3hLZMd/5l2RDGsp1+ARUUXmLhWpwAjUhHTJqOAoV1 hKSCw/f1X1P1iZW96chs8kL2uJXevjAqJ/22i5UO5rbl8bPGuMw+vRQZ4EYTMynO6cDy tjHJf+wq+BHBPJKWyxCK622JR99oo+mKoqw/wD1lsTbfbaPuJJ3f6UdPl29Y3ocrwNZB 9OIlyhOGo94bO1QPjCdenHSoNhdQB0gfHv2/DVO80B9EZ2B7/KUrc+voveTSdDToNhnf jKCjp05n96WhkL7+p4w2IS3j6LhVnvuwxARASwrNXzprRugwA+VhqCqtRfh/LWpF5cdK c87g== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=z0aS7p6v; spf=softfail (google.com: domain of transitioning linux-kernel-owner@vger.kernel.org does not designate 23.128.96.19 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 lindbergh.monkeyblade.net (lindbergh.monkeyblade.net. [23.128.96.19]) by mx.google.com with ESMTPS id f18-20020a631f12000000b003816043eefasi16273145pgf.239.2022.04.06.04.08.24 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 06 Apr 2022 04:08:25 -0700 (PDT) Received-SPF: softfail (google.com: domain of transitioning linux-kernel-owner@vger.kernel.org does not designate 23.128.96.19 as permitted sender) client-ip=23.128.96.19; Authentication-Results: mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=z0aS7p6v; spf=softfail (google.com: domain of transitioning linux-kernel-owner@vger.kernel.org does not designate 23.128.96.19 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Received: from out1.vger.email (out1.vger.email [IPv6:2620:137:e000::1:20]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id 999415CEE0C; Wed, 6 Apr 2022 02:31:14 -0700 (PDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1388132AbiDEUFs (ORCPT + 99 others); Tue, 5 Apr 2022 16:05:48 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:39730 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1349380AbiDEJtq (ORCPT ); Tue, 5 Apr 2022 05:49:46 -0400 Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 496ED1C9; Tue, 5 Apr 2022 02:44:45 -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 D9D516164D; Tue, 5 Apr 2022 09:44:44 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id EC098C385A3; Tue, 5 Apr 2022 09:44:43 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1649151884; bh=PbU3Zy+C03rpWGayUy2MlpDNrRuZYXE7DvqU86BFgbo=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=z0aS7p6vTfHe8R3EC5I7OgbdaPL5M1d9WM1d7Z2R+xikud8bdrQU/ZpGy3bDsw386 WDJsqvtK7JQR43GNDqySkN44Cp142VzzgmcNu8jdSgw5OSxAOPeXiGXyJHICYLir7z Idwdd2O8RwPBEuIa+2ySFxEVMezJAZnBrTv7tTOs= 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.15 574/913] ice: dont allow to run ice_send_event_to_aux() in atomic ctx Date: Tue, 5 Apr 2022 09:27:16 +0200 Message-Id: <20220405070357.051712419@linuxfoundation.org> X-Mailer: git-send-email 2.35.1 In-Reply-To: <20220405070339.801210740@linuxfoundation.org> References: <20220405070339.801210740@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=-2.0 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,RDNS_NONE,SPF_HELO_NONE,T_SCC_BODY_TEXT_LINE autolearn=no 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 adcc9a251595..a2714988dd96 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