Received: by 2002:a05:6902:102b:0:0:0:0 with SMTP id x11csp634975ybt; Fri, 19 Jun 2020 09:50:32 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzC7ToulXVIPA4WjApclXh2kEJGS35p/lGUYu9AN4ju080toHp3YFl4BURYk7lhwW0nk/fu X-Received: by 2002:a17:906:33ce:: with SMTP id w14mr4406966eja.35.1592585432438; Fri, 19 Jun 2020 09:50:32 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1592585432; cv=none; d=google.com; s=arc-20160816; b=pPcNIHeJaNYdxYZ+opUkTE3ijLZ1WTFM3Rc00PdjFM3M/Dr7grFU8cyBkg3E1GZ4pm bRUhWWL11CfVDBFV0tCqIc2HncaUOlNgWNtbwSvWiqUqCgZyye4qMOFUUfxS+rQv74U8 Et99qO38stp4duJOwUY2tYFhlCcPTIZOvqcXja4aEcVypK4nxbxGGL1p4EiSk5+n278G PPSjD/5lw5ycpfmjv2hfGg0Gw0xC87fCqdNI/2XZXAGZJ85eZ+gyEotzh5u49Ov+L+f1 2TJlSvFc2ffQGUWW8aUj2ehAjs804Klv7seNuZ0gKGBXK917SZ1hTX5fqIY9tsgsUbWB Md8w== 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=kv2+75hjakLsoRxjrcE7ap+uH405rMR5UQDgkw0Bqh4=; b=E942WScudJJNxZeiAcSnCz2UGh8vR8JvDQ1gSDczMoUe/So7LfcLCbycpLtHsp9GiI T5SYFwfkVF81vufwJrB2qKurXYOuhgKRioM9yLqSECi0McYKfLL3pZ4n8w+/AyNuYoUT clh6xph4JyAjDluDF9pzWtjyA4hkwwoFHihoEdW/DU+LcrWvhUrEndnUiRVsVdnr7z1Y SZUPBQVYQ3eIQrdlTuKxJzDAQ0T3DRO+9q1dHOwn6TAI2IXVHHaW+/A/0mJUWtuHgNha k4GEvSujZO7dr5x8haAo9g6tGRoHH5Y1xPRJ46RNoIjBocgazbzWz+U/0DqynjkEGfWD R9wA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b="at2NgB/E"; 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 Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id cb4si4358203ejb.299.2020.06.19.09.50.10; Fri, 19 Jun 2020 09:50:32 -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=@kernel.org header.s=default header.b="at2NgB/E"; 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 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2387874AbgFSOk6 (ORCPT + 99 others); Fri, 19 Jun 2020 10:40:58 -0400 Received: from mail.kernel.org ([198.145.29.99]:58852 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2388189AbgFSOkp (ORCPT ); Fri, 19 Jun 2020 10:40:45 -0400 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 A324020A8B; Fri, 19 Jun 2020 14:40:44 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1592577645; bh=HwItb0NGNEg9UwG1oYmP/wCzufz/JPcQD8B+RWpXbKk=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=at2NgB/EqUPV9PJqFq0JWE5UtVB/npWiHZ8ZB1ZETtRGsVkBQDmEak7Tj5kEoLzVN 3VcdqtRaJ2W4+C/xt9QvOxTwLU1XoKDoF+nVTL/LcqmfxAIM5skl0jqTn3MuXnvJyP TNnobP/F2ScoCoOenxcO/8uOa8Uto0HwnbQQQwCw= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Lukas Wunner , Linus Walleij , Mark Brown , Sasha Levin Subject: [PATCH 4.9 032/128] spi: Fix controller unregister order Date: Fri, 19 Jun 2020 16:32:06 +0200 Message-Id: <20200619141621.863086232@linuxfoundation.org> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20200619141620.148019466@linuxfoundation.org> References: <20200619141620.148019466@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: Lukas Wunner [ Upstream commit 84855678add8aba927faf76bc2f130a40f94b6f7 ] When an SPI controller unregisters, it unbinds all its slave devices. For this, their drivers may need to access the SPI bus, e.g. to quiesce interrupts. However since commit ffbbdd21329f ("spi: create a message queueing infrastructure"), spi_destroy_queue() is executed before unbinding the slaves. It sets ctlr->running = false, thereby preventing SPI bus access and causing unbinding of slave devices to fail. Fix by unbinding slaves before calling spi_destroy_queue(). Fixes: ffbbdd21329f ("spi: create a message queueing infrastructure") Signed-off-by: Lukas Wunner Cc: stable@vger.kernel.org # v3.4+ Cc: Linus Walleij Link: https://lore.kernel.org/r/8aaf9d44c153fe233b17bc2dec4eb679898d7e7b.1589557526.git.lukas@wunner.de Signed-off-by: Mark Brown Signed-off-by: Sasha Levin --- drivers/spi/spi.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/spi/spi.c b/drivers/spi/spi.c index 7fec76dd532f..3fadc564d781 100644 --- a/drivers/spi/spi.c +++ b/drivers/spi/spi.c @@ -2030,11 +2030,12 @@ void spi_unregister_master(struct spi_master *master) dev_err(&master->dev, "queue remove failed\n"); } + device_for_each_child(&master->dev, NULL, __unregister); + mutex_lock(&board_lock); list_del(&master->list); mutex_unlock(&board_lock); - device_for_each_child(&master->dev, NULL, __unregister); device_unregister(&master->dev); } EXPORT_SYMBOL_GPL(spi_unregister_master); -- 2.25.1