Received: by 2002:a05:6a11:4021:0:0:0:0 with SMTP id ky33csp2370385pxb; Mon, 20 Sep 2021 20:25:59 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwC9qDhtY9LVf72BYNGhT6lOgGTvhagvjo6ASDLJpzTatDX1u97Il23+1o6Q9Yd49Iuk0+x X-Received: by 2002:a17:906:7716:: with SMTP id q22mr33027168ejm.457.1632194759056; Mon, 20 Sep 2021 20:25:59 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1632194759; cv=none; d=google.com; s=arc-20160816; b=CDEFR+0gIc1iKdbU5NWO5qd8tOPOlzqz9xI9xfizgoYpxv6a5Lq++B9aihmj+sSVdH elftQqPwmhfUysLhvE4gi1KGvF8tKCvbmo4GzfNVcDgs9FFc2J8Uxzt9rn+H6xMp+Cjy 8aM6jd0ciDN6yp9HjYq355mlvj/pMDKvln+4hDjoTmOqJ/J8Xyqr7eYPu5+Qg0XuzolU kzKUuxPta5618XE5RtUcjvUITwkUAynj2rQzOCbnLFcjzphBb/IFySD2ij8iJhrZ9qhM LOYI/fQA2SsntEDLW4d9dcY5P9vavr1k9qQsvHUcgMeejHF4+zMNLoVjpBxQbxKqb6ji AeQQ== 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=K0s3NpSzrZE3jSvahA3l6ySaxY01sJWYFetR0D/Q6Xg=; b=zirxiGevcPDEMI2f0AIVdtrhDBMz+AtmstihP7ZMLJfdBlB21Cnahf4Ay3IoIEQn1E C9ZsafBl40L29hv2Dm7IAe9Ahu2oE95K/ZVw0KFWd1g9pMPj/L04KE3vCnyPt0frM5yd f4MsLTkKSwaVFxGNHNcJw86vG+6GhWezdpLIzSxo/qqA46S5eMmEp/584Jrq2zouoVDa B25NDseQKh+ffv58mlzNB5vCv7b949sd+TVxDxH/I+To7VZIei+b1HIKNvq0zM+v/e1c T4lRdPIpIr8/yKqG+8zdaFhzfAJvyRZcrT4AdsnFxit5Z+U+4LNwEQc5Bh32YsSIAh1p cU1Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=AVy0IPO0; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 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 vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id h21si17998208edr.136.2021.09.20.20.25.35; Mon, 20 Sep 2021 20:25:59 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=AVy0IPO0; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 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 S1378638AbhITSZ0 (ORCPT + 99 others); Mon, 20 Sep 2021 14:25:26 -0400 Received: from mail.kernel.org ([198.145.29.99]:40566 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1377345AbhITSSY (ORCPT ); Mon, 20 Sep 2021 14:18:24 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id 45166632A3; Mon, 20 Sep 2021 17:22:55 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1632158575; bh=XWkpzJb/KnyqQR8Y4OpztpvxB+7uORp6FVnCibL+cqA=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=AVy0IPO0bKq2Jh0YUSB1O353GMekBM3PQD2fyMJSKflaZJ0LPNdoxKHxJ/nHjFzmx Woq20ID6+MXh87srv4vLbdwnRuM2VDTIMee7KBeVGGFbFyaS8EQglEV7Km68z2vhTq D7clqJu1vxZtsejGVZWmDrsxWbFU8h+m6OaKDCB0= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Dan Carpenter , Maor Gottlieb , Saeed Mahameed Subject: [PATCH 5.4 218/260] net/mlx5: Fix potential sleeping in atomic context Date: Mon, 20 Sep 2021 18:43:56 +0200 Message-Id: <20210920163938.515016657@linuxfoundation.org> X-Mailer: git-send-email 2.33.0 In-Reply-To: <20210920163931.123590023@linuxfoundation.org> References: <20210920163931.123590023@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Maor Gottlieb commit ee27e330a953595903979ffdb84926843595a9fe upstream. Fixes the below flow of sleeping in atomic context by releasing the RCU lock before calling to free_match_list. build_match_list() <- disables preempt -> free_match_list() -> tree_put_node() -> down_write_ref_node() <- take write lock Fixes: 693c6883bbc4 ("net/mlx5: Add hash table for flow groups in flow table") Reported-by: Dan Carpenter Signed-off-by: Maor Gottlieb Signed-off-by: Saeed Mahameed Signed-off-by: Greg Kroah-Hartman --- drivers/net/ethernet/mellanox/mlx5/core/fs_core.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) --- a/drivers/net/ethernet/mellanox/mlx5/core/fs_core.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/fs_core.c @@ -1606,9 +1606,9 @@ static int build_match_list(struct match curr_match = kmalloc(sizeof(*curr_match), GFP_ATOMIC); if (!curr_match) { + rcu_read_unlock(); free_match_list(match_head, ft_locked); - err = -ENOMEM; - goto out; + return -ENOMEM; } if (!tree_get_node(&g->node)) { kfree(curr_match); @@ -1617,7 +1617,6 @@ static int build_match_list(struct match curr_match->g = g; list_add_tail(&curr_match->list, &match_head->list); } -out: rcu_read_unlock(); return err; }