From patchwork Thu Mar 7 10:30:08 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Volker Haspel X-Patchwork-Id: 10842641 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id CF68F1575 for ; Thu, 7 Mar 2019 10:30:26 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id BEB362DD09 for ; Thu, 7 Mar 2019 10:30:26 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id B29A32E411; Thu, 7 Mar 2019 10:30:26 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-7.9 required=2.0 tests=BAYES_00,MAILING_LIST_MULTI, RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 614632DD09 for ; Thu, 7 Mar 2019 10:30:26 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726234AbfCGKaZ (ORCPT ); Thu, 7 Mar 2019 05:30:25 -0500 Received: from Galois.linutronix.de ([146.0.238.70]:53803 "EHLO Galois.linutronix.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726150AbfCGKaZ (ORCPT ); Thu, 7 Mar 2019 05:30:25 -0500 Received: from [5.158.153.52] (helo=ares.tec.linutronix.de) by Galois.linutronix.de with esmtpsa (TLS1.2:DHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.80) (envelope-from ) id 1h1qIA-0005KP-HT; Thu, 07 Mar 2019 11:30:22 +0100 From: Volker Haspel To: linux-kernel@vger.kernel.org Cc: linux-spi@vger.kernel.org, Han Xu , Mark Brown , john.ogness@linutronix.de, volker.haspel@linutronix.de Subject: [PATCH] spi: spi-fsl-qspi: call spi_unregister_controller Date: Thu, 7 Mar 2019 11:30:08 +0100 Message-Id: <20190307103008.19841-1-volker.haspel@linutronix.de> X-Mailer: git-send-email 2.11.0 Sender: linux-spi-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-spi@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP The driver does not clearly unregister the spi controller. Therefore calling an unbind and bind again will end up in a Kernel crash. Each driver who calls spi_register_controller() in the probe function has to call spi_unregister_controller() too. Signed-off-by: Volker Haspel Signed-off-by: John Ogness --- drivers/spi/spi-fsl-qspi.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/drivers/spi/spi-fsl-qspi.c b/drivers/spi/spi-fsl-qspi.c index 6a713f78a62e..373c4a82e8e3 100644 --- a/drivers/spi/spi-fsl-qspi.c +++ b/drivers/spi/spi-fsl-qspi.c @@ -248,6 +248,7 @@ struct fsl_qspi { struct mutex lock; struct pm_qos_request pm_qos_req; int selected; + struct spi_controller *ctlr; }; static inline int needs_swap_endian(struct fsl_qspi *q) @@ -812,6 +813,7 @@ static int fsl_qspi_probe(struct platform_device *pdev) SPI_TX_DUAL | SPI_TX_QUAD; q = spi_controller_get_devdata(ctlr); + q->ctlr = ctlr; q->dev = dev; q->devtype_data = of_device_get_match_data(dev); if (!q->devtype_data) { @@ -912,6 +914,7 @@ static int fsl_qspi_remove(struct platform_device *pdev) fsl_qspi_clk_disable_unprep(q); mutex_destroy(&q->lock); + spi_unregister_controller(q->ctlr); return 0; }