Received: by 2002:ad5:474a:0:0:0:0:0 with SMTP id i10csp38720imu; Thu, 8 Nov 2018 14:21:22 -0800 (PST) X-Google-Smtp-Source: AJdET5e0uUw1PGOBUuZb4XqaMChMPYFtrmIEkPBu0NtlyXRBtbjAgNzrZEf/4L41QNYiBANL0VlG X-Received: by 2002:a17:902:28e7:: with SMTP id f94-v6mr6337531plb.297.1541715682059; Thu, 08 Nov 2018 14:21:22 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1541715682; cv=none; d=google.com; s=arc-20160816; b=pHGTCXJZai7KBBZ04wfe9qzuSEYv14932SgkmHsYvTH6wzgGg8/MJcIvJnthAgalYZ i8MAoHPISgYIhH5yVSxK0sKmiuAUCdT7z/lteLI1oTkKm9IZTJS4c4eFc/Dzj97jpOuz /4RfhPrZgay6pPh97OH84nzIA4v5gZd2iKpJmO57B0Px9ZBzkC2kmiAeVJcpuRTk1jfz U72Pywzu1YweMmo5dxcOOZhFXzA+fDjjAMpbfmAQMGIEb+EyvkyLCX5Fz4gOntXDEkld i6o3EYDmrATqtZkog//0JvCwBwhhYdf3QYTVksURHiw3oC57SIrpVERYd58sQGZZ4TY9 W4cQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=1ayGRbYUq8pjQVlERBpXQq8oiXndqlRc0leWAJpZQEU=; b=FuGjA8N6d8rMu59l8fFGy98exhGDTm3YB5Ms0TiN6HsvnKweQgLpqxpOYPgZ9l4TPv PucbqOmQmMsG8QzZ8OKjd/AfBwgNXMdex4aZlPiDJdNDepwbJ6gKQKflA3ACOsmYDf/q w8pgW+oL5PUROCXZ3dL6SZCsonVUoWd2uGPbEhyuoNM7sJ0mY4vD+Pa5LMVLlxGsDxg9 pb59ihNtwqxALme2UWpaCL3vgvab0wt+0b2IR8YNjCXHdKS3KV7UH6Y1du65yjrcCLNv eJZ77VbugX0Pykr+wnufNxjtf0KcIazvp86RUNJACp/P2nW/ewa3hLLpt8f5qlrg8Ttm OQKQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b="eg/EukGy"; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id w5-v6si5798258pfl.241.2018.11.08.14.21.07; Thu, 08 Nov 2018 14:21:22 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b="eg/EukGy"; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1731842AbeKIHn3 (ORCPT + 99 others); Fri, 9 Nov 2018 02:43:29 -0500 Received: from mail.kernel.org ([198.145.29.99]:35840 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1731817AbeKIHn3 (ORCPT ); Fri, 9 Nov 2018 02:43:29 -0500 Received: from localhost (unknown [208.72.13.198]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id E91B820844; Thu, 8 Nov 2018 22:05:57 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1541714758; bh=bIKBdRWIIzarXPPvwA5Gr8sGsK/uxbhZvz3vvXqIsdk=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=eg/EukGyJ9RLNjIi/BkU+3aYdc+BH6ayG08Glpc6kxOdWBnOwOHF9l3foCKG3lCFj fRm4gbq1XYf9vLU2gV4uhLF900Lo5K0o937uMbiN/eq7BgjoR/3QuDXZIBtjITSPp1 JslXMpPiGzmbHaiaG1/DQAbywuZB3vOZ37GChFSk= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Mike Marciniszyn , Dennis Dalessandro , Alex Estrin , Feras Daoud , Doug Ledford , Sasha Levin Subject: [PATCH 4.9 102/171] Revert "IB/ipoib: Update broadcast object if PKey value was changed in index 0" Date: Thu, 8 Nov 2018 13:51:12 -0800 Message-Id: <20181108215134.817147413@linuxfoundation.org> X-Mailer: git-send-email 2.19.1 In-Reply-To: <20181108215127.257643509@linuxfoundation.org> References: <20181108215127.257643509@linuxfoundation.org> User-Agent: quilt/0.65 X-stable: review MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 4.9-stable review patch. If anyone has any objections, please let me know. ------------------ [ Upstream commit 612601d0013f03de9dc134809f242ba6da9ca252 ] commit 9a9b8112699d will cause core to fail UD QP from being destroyed on ipoib unload, therefore cause resources leakage. On pkey change event above patch modifies mgid before calling underlying driver to detach it from QP. Drivers' detach_mcast() will fail to find modified mgid it was never given to attach in a first place. Core qp->usecnt will never go down, so ib_destroy_qp() will fail. IPoIB driver actually does take care of new broadcast mgid based on new pkey by destroying an old mcast object in ipoib_mcast_dev_flush()) .... if (priv->broadcast) { rb_erase(&priv->broadcast->rb_node, &priv->multicast_tree); list_add_tail(&priv->broadcast->list, &remove_list); priv->broadcast = NULL; } ... then in restarted ipoib_macst_join_task() creating a new broadcast mcast object, sending join request and on completion tells the driver to attach to reinitialized QP: ... if (!priv->broadcast) { ... broadcast = ipoib_mcast_alloc(dev, 0); ... memcpy(broadcast->mcmember.mgid.raw, priv->dev->broadcast + 4, sizeof (union ib_gid)); priv->broadcast = broadcast; ... Fixes: 9a9b8112699d ("IB/ipoib: Update broadcast object if PKey value was changed in index 0") Cc: stable@vger.kernel.org Reviewed-by: Mike Marciniszyn Reviewed-by: Dennis Dalessandro Signed-off-by: Alex Estrin Signed-off-by: Dennis Dalessandro Reviewed-by: Feras Daoud Signed-off-by: Doug Ledford Signed-off-by: Sasha Levin --- drivers/infiniband/ulp/ipoib/ipoib_ib.c | 13 ------------- 1 file changed, 13 deletions(-) diff --git a/drivers/infiniband/ulp/ipoib/ipoib_ib.c b/drivers/infiniband/ulp/ipoib/ipoib_ib.c index 3dd5bf6c6c7a..ad3089c23e18 100644 --- a/drivers/infiniband/ulp/ipoib/ipoib_ib.c +++ b/drivers/infiniband/ulp/ipoib/ipoib_ib.c @@ -974,19 +974,6 @@ static inline int update_parent_pkey(struct ipoib_dev_priv *priv) */ priv->dev->broadcast[8] = priv->pkey >> 8; priv->dev->broadcast[9] = priv->pkey & 0xff; - - /* - * Update the broadcast address in the priv->broadcast object, - * in case it already exists, otherwise no one will do that. - */ - if (priv->broadcast) { - spin_lock_irq(&priv->lock); - memcpy(priv->broadcast->mcmember.mgid.raw, - priv->dev->broadcast + 4, - sizeof(union ib_gid)); - spin_unlock_irq(&priv->lock); - } - return 0; } -- 2.17.1