Received: by 2002:a25:8b91:0:0:0:0:0 with SMTP id j17csp4645395ybl; Wed, 22 Jan 2020 01:58:16 -0800 (PST) X-Google-Smtp-Source: APXvYqyX3saZY6b58J80CJOBo7g1j6bHsezxt4Y2F6X/h2XhF5K3Hrrerb5VO8aLr2F6TEkeL2vv X-Received: by 2002:a05:6808:251:: with SMTP id m17mr6245806oie.15.1579687096488; Wed, 22 Jan 2020 01:58:16 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1579687096; cv=none; d=google.com; s=arc-20160816; b=gyERcmcWGiTQuuDxMVW3SCmf7g8wg5HreKEoxpzcp28rZtEBTz5gECd718rscC8tqI GVgitO4rgHbmeECk8AIvMcBPbNCW1H90MUSSg7V0E+Z1DyMNJjxKLwppYls+PNdGLdL0 d/NJLWpHEfUHA6YN+j1L2CMSxQ7J/QF1ZhzVPQOX7CcVxpboT09/mbBcLdgMK637yhc/ oHs0B7Jlt1HADgA0bvT9k9fst5TEF31dF6q3GTFKpf99Y/zqF+din9fArCgf72Zazpvc hHsRPfLlRhzJnpK3IumxUhCHwjaKD0pyfI58bi3o8RZck/1/RK12CI7aCnTsIhItgV9f EmHg== 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=m12Ybx9X3ewoPBlT+S5zgH7IEjZb7cH+Ptttdee6HIXApoM1Djf7AX+dMamKm/rWQ6 pc8pevZ7zsoJokybMCgZWrBMld5mS8R+EVicwXKgdWbLZk8eZ+w5NaTSZAvZEUwHEjyH uXLh8IqmqKKH3/bQNsWZ1JPUF285COSIrkT2aKqfLjh1vKKrxWa6e8eqkYXUiy0Gpkgh 9QXpqeeZ5FH87E/qFfyrg84+i/gt5+S/He3oq937/rzZ2wueCJZmskQY/lIBeOfajVxJ U5pnvUZFMoXVRbJwi3L4QZVGI9UbinV0yC1WEQaNR/TIZttAnHuLqleo+hropZHxZMdt Ky0Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=q8S5SJSF; 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 f60si23599386otf.119.2020.01.22.01.58.05; Wed, 22 Jan 2020 01:58:16 -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=q8S5SJSF; 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 S1729543AbgAVJbJ (ORCPT + 99 others); Wed, 22 Jan 2020 04:31:09 -0500 Received: from mail.kernel.org ([198.145.29.99]:42892 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729501AbgAVJbF (ORCPT ); Wed, 22 Jan 2020 04:31:05 -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 2A11E2467B; Wed, 22 Jan 2020 09:31:03 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1579685463; bh=2WNeRsDryRBzpXQN44EbufOyKvzcVAspZ6zfgL6yVVw=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=q8S5SJSFGG2TThweozqXqmGBlSBYmC5GjIw1HlorCC4DBEs0czMTvkQP49IPdKmGS Pr/PQCLNcNETEXXUbFv2lJe9shCIqqtlzb+OpGKHfmYnFD0pPLADPEq2toJN9syVvZ CDmjmBiAPp/UyxjyC4gAeNhxKYAgB05Dv6HDNsGo= 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.4 24/76] scsi: enclosure: Fix stale device oops with hot replug Date: Wed, 22 Jan 2020 10:28:40 +0100 Message-Id: <20200122092754.228577286@linuxfoundation.org> X-Mailer: git-send-email 2.25.0 In-Reply-To: <20200122092751.587775548@linuxfoundation.org> References: <20200122092751.587775548@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;