Received: by 2002:a25:8b91:0:0:0:0:0 with SMTP id j17csp8372384ybl; Thu, 16 Jan 2020 15:33:26 -0800 (PST) X-Google-Smtp-Source: APXvYqwSDUyZjNMKMEkpy1fVFzX/m6daW2qLRn3Xw7ch0BZK7eNeMOeGGBSTZvUBo7v9AmWovoMl X-Received: by 2002:a05:6808:3c2:: with SMTP id o2mr1324814oie.145.1579217606462; Thu, 16 Jan 2020 15:33:26 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1579217606; cv=none; d=google.com; s=arc-20160816; b=bCq3JHIMpCNYbcJyfEvFdLZX2lBeLFqdl3ZaNoMcU2RwfN/mQUy5spP7X+NzGcq9gU c3xFmxyEypm4reO6n797ttqK6TMeLLQswnF70fClDtEbtQRht6bbIeT2INdKZ9TSTHOA zSV+eHwjH7ocz0qFcuv7uMkgv+ZLCjJO0WQe/I96T0YkG9+IE0HOqs7J9ndzGF2PVUMb mV6SB3xCMDZ+F4bJKdHt7D8MZzz7ZSAWVCB2nlyugA/QxRwPkoiDCmQHldIyZ3FnipoA t/iWfaYk7LfkHmTHz7bjt6fk55//Ra4Fz+zbZY7g1hCrPBR+/Fcvb8GTnKMD2q3TbVih RkmQ== 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=p/sMeFZdwZIso9St6ckqyDba4DbJLq7Xco0htekGotA=; b=mVt/ScOxB3cseGipsqtyJB5Cs9xTmUgBNQj85QmGlx7T6Xk470HKT0QI75h77KI0Qh n1HVxBUJ3lSutAju91lBnABE8/mGTNCJ8cInNw+DSX2uhzAiOgtA8QhQ1B+Z5kR2zaSG yE+j0VGK4DhmFPWHo5mvFcf/eQl7S8yKr7UrXLFFnG8HsrTCTMoAKyJfn2iZoTV5sWNX CtdCL2HVThsz3EryVodDKYxoEORphA4XttOkmKptNiRIMhFd+tkiBukhKl9I+S04gB6q 5VgSboIBxInChaKxvga3P+M7Nxgm7YMNqUqDZJTDcjp1HYdh9dq70jEfEgapnSCs7igJ xS9g== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=iVUvR4rx; 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 r6si13871977otn.216.2020.01.16.15.33.14; Thu, 16 Jan 2020 15:33:26 -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=iVUvR4rx; 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 S2391358AbgAPXaD (ORCPT + 99 others); Thu, 16 Jan 2020 18:30:03 -0500 Received: from mail.kernel.org ([198.145.29.99]:35988 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2403750AbgAPX3w (ORCPT ); Thu, 16 Jan 2020 18:29:52 -0500 Received: from localhost (83-86-89-107.cable.dynamic.v4.ziggo.nl [83.86.89.107]) (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 BEAB12072B; Thu, 16 Jan 2020 23:29:50 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1579217391; bh=2WNeRsDryRBzpXQN44EbufOyKvzcVAspZ6zfgL6yVVw=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=iVUvR4rxX9J18mq0RvWSmKzpmm19jhT36IUZO0OR3Ev2eMviRqGcu4eynIOLsyuyy j6U0rChSmZiscnnJUQr9u6A3AHoKxhCHqd52rsiRZmbkF/bv2U2mtDGZKxIfmKatcj fWuGro8gfANf2kQDleYSSf5t94CWEfxyhp1Aa4/c= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, James Bottomley , Luo Jiaxing , John Garry , "Martin K. Petersen" Subject: [PATCH 4.19 37/84] scsi: enclosure: Fix stale device oops with hot replug Date: Fri, 17 Jan 2020 00:18:11 +0100 Message-Id: <20200116231718.132769637@linuxfoundation.org> X-Mailer: git-send-email 2.25.0 In-Reply-To: <20200116231713.087649517@linuxfoundation.org> References: <20200116231713.087649517@linuxfoundation.org> User-Agent: quilt/0.66 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 From: James Bottomley commit 529244bd1afc102ab164429d338d310d5d65e60d upstream. Doing an add/remove/add on a SCSI device in an enclosure leads to an oops caused by poisoned values in the enclosure device list pointers. The reason is because we are keeping the enclosure device across the enclosed device add/remove/add but the current code is doing a device_add/device_del/device_add on it. This is the wrong thing to do in sysfs, so fix it by not doing a device_del on the enclosure device simply because of a hot remove of the drive in the slot. [mkp: added missing email addresses] Fixes: 43d8eb9cfd0a ("[SCSI] ses: add support for enclosure component hot removal") Link: https://lore.kernel.org/r/1578532892.3852.10.camel@HansenPartnership.com Signed-off-by: James Bottomley Reported-by: Luo Jiaxing Tested-by: John Garry Signed-off-by: Martin K. Petersen Signed-off-by: Greg Kroah-Hartman --- drivers/misc/enclosure.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) --- a/drivers/misc/enclosure.c +++ b/drivers/misc/enclosure.c @@ -419,10 +419,9 @@ int enclosure_remove_device(struct enclo cdev = &edev->component[i]; if (cdev->dev == dev) { enclosure_remove_links(cdev); - device_del(&cdev->cdev); put_device(dev); cdev->dev = NULL; - return device_add(&cdev->cdev); + return 0; } } return -ENODEV;