Received: by 2002:a05:6a10:8c0a:0:0:0:0 with SMTP id go10csp510142pxb; Wed, 3 Mar 2021 08:33:44 -0800 (PST) X-Google-Smtp-Source: ABdhPJxjB4A59fzyV1LP6UIIif5KXc35Cqv8btPnEkmb5uhFj5FNSutQOwI0ijfrtIuuEmCSyGy7 X-Received: by 2002:a17:906:95d1:: with SMTP id n17mr14375580ejy.394.1614789224190; Wed, 03 Mar 2021 08:33:44 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1614789224; cv=none; d=google.com; s=arc-20160816; b=IjfMk+UjfsQ2K7ppSBAJYjp+PMXPXrhnDeiiCKNyxDumBKi3/ZIuzlv+C8VQ0/147k TSzAMOTcyJvmKnLAAfGfdAOeB8rCKmtUn5RZFI0eWPRRRJwxtJtJkpA47C7HeRPBl+FO u2SgL3sxVdedmHxA6Q1dDuQQY7o+6g+7RgLbXrums1Z2Gx7Ij/F3uayZzfBeOKTUqakn yRCt2I8mz+K43aNMcQJBqF8DU1l0ca8QUWbrUmYImx4hI8Dl7DTmW4fE+EF4L5H+185A KgL3GoGp9SBoAWRFMU1FOWsgF63W8zv/v18agd6mCHebN2T9U0N8njebdKRdekXD60tL zIww== 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=gfh+sejBoFYgFyu4YqARZsDcCCFOgKjP9T+sNs1tONQ=; b=y1C1f169rSB6Um1TdV4UbgQcbSaf715O70QQ4y2JcoURI9hZanjfBrdpvzUsEdjDAp 2vDJcOwDCKzSRpBOrwcsxOnSEFfD5ZlLoTk2QlNihrQDa+8pzdNRI6SIBX+W9IJ+Zqwc 5pCb4r9/BNEiefVzJU51LmH8bizX65yYIPkIV6QRHjrJQSy1dvMKPvrZ4PTasGgjOHYS lXv2RYQKAyjorWzb5/x3sUXnIF+eIH/EQhZCbPBWkN5KN5i1V3V9keS/WZP1VTyv3PoT kGTW1+5V2csBatJjxX/XTYTkWiqX8jmB6WqE098FKdXd0zS7ZH3XogfJFML9QwoLF3vu sbBA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=lWoPxoEe; 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 a2si4458856ejs.199.2021.03.03.08.32.44; Wed, 03 Mar 2021 08:33:44 -0800 (PST) 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=lWoPxoEe; 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 S1347279AbhCAXwj (ORCPT + 99 others); Mon, 1 Mar 2021 18:52:39 -0500 Received: from mail.kernel.org ([198.145.29.99]:39424 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S234853AbhCASTI (ORCPT ); Mon, 1 Mar 2021 13:19:08 -0500 Received: by mail.kernel.org (Postfix) with ESMTPSA id 0E77C651DB; Mon, 1 Mar 2021 17:17:59 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1614619080; bh=rPfHRjOcQk/PkP+1MTkYnkjU8mutHqM49XFxqgdd3sc=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=lWoPxoEeTf0Kxorw/PLopm/m7TKogW+4HjFSzjLZyy/DGyyyLmeHPWBOkQNd4Fn+b 6yFW79YAKh7Fk7WwiTpNoiEjN3pvYDIUAPNh6rMIbT7tnTXwAaPzJinlWgWybrAWSE iR/BjfN2aLVfAMGjopCgm9Xk2fkk2p1JXCiFlAB8= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Shay Drory , Leon Romanovsky , Jason Gunthorpe , Sasha Levin Subject: [PATCH 5.10 323/663] IB/umad: Return EIO in case of when device disassociated Date: Mon, 1 Mar 2021 17:09:31 +0100 Message-Id: <20210301161157.826341410@linuxfoundation.org> X-Mailer: git-send-email 2.30.1 In-Reply-To: <20210301161141.760350206@linuxfoundation.org> References: <20210301161141.760350206@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: Shay Drory [ Upstream commit 4fc5461823c9cad547a9bdfbf17d13f0da0d6bb5 ] MAD message received by the user has EINVAL error in all flows including when the device is disassociated. That makes it impossible for the applications to treat such flow differently. Change it to return EIO, so the applications will be able to perform disassociation recovery. Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2") Link: https://lore.kernel.org/r/20210125121339.837518-2-leon@kernel.org Signed-off-by: Shay Drory Signed-off-by: Leon Romanovsky Signed-off-by: Jason Gunthorpe Signed-off-by: Sasha Levin --- drivers/infiniband/core/user_mad.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/drivers/infiniband/core/user_mad.c b/drivers/infiniband/core/user_mad.c index b0d0b522cc764..351631c4db9b3 100644 --- a/drivers/infiniband/core/user_mad.c +++ b/drivers/infiniband/core/user_mad.c @@ -379,6 +379,11 @@ static ssize_t ib_umad_read(struct file *filp, char __user *buf, mutex_lock(&file->mutex); + if (file->agents_dead) { + mutex_unlock(&file->mutex); + return -EIO; + } + while (list_empty(&file->recv_list)) { mutex_unlock(&file->mutex); @@ -524,7 +529,7 @@ static ssize_t ib_umad_write(struct file *filp, const char __user *buf, agent = __get_agent(file, packet->mad.hdr.id); if (!agent) { - ret = -EINVAL; + ret = -EIO; goto err_up; } -- 2.27.0