lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20190423061218.29705-3-jiada_wang@mentor.com>
Date:   Tue, 23 Apr 2019 15:12:18 +0900
From:   Jiada Wang <jiada_wang@...tor.com>
To:     <rui.zhang@...el.com>, <edubezval@...il.com>,
        <daniel.lezcano@...aro.org>
CC:     <linux-pm@...r.kernel.org>, <linux-kernel@...r.kernel.org>,
        <erosca@...adit-jv.com>, <joshua_frkuska@...tor.com>,
        <jiada_wang@...tor.com>, <horms+renesas@...ge.net.au>,
        <niklas.soderlund+renesas@...natech.se>, <geert+renesas@...der.be>,
        <sergei.shtylyov@...entembedded.com>,
        <marek.vasut+renesas@...il.com>,
        <kuninori.morimoto.gx@...esas.com>, <hien.dang.eb@...esas.com>,
        <fabrizio.castro@...renesas.com>, <dien.pham.ry@...esas.com>,
        <biju.das@...renesas.com>
Subject: [PATCH v2 2/2] thermal: rcar_gen3_thermal: disable interrupt in .remove

Currently IRQ is remain enabled after .remove, later if device is probed,
IRQ is requested before .thermal_init, this may cause IRQ function be
called before device is initialized.

this patch by disable interrupt in .remove, to ensure irq function
only be called after device is fully initialized.

Signed-off-by: Jiada Wang <jiada_wang@...tor.com>
---
 drivers/thermal/rcar_gen3_thermal.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/drivers/thermal/rcar_gen3_thermal.c b/drivers/thermal/rcar_gen3_thermal.c
index a11032e42f36..eb4e65b7ad8b 100644
--- a/drivers/thermal/rcar_gen3_thermal.c
+++ b/drivers/thermal/rcar_gen3_thermal.c
@@ -318,6 +318,9 @@ MODULE_DEVICE_TABLE(of, rcar_gen3_thermal_dt_ids);
 static int rcar_gen3_thermal_remove(struct platform_device *pdev)
 {
 	struct device *dev = &pdev->dev;
+	struct rcar_gen3_thermal_priv *priv = dev_get_drvdata(dev);
+
+	rcar_thermal_irq_set(priv, false);
 
 	pm_runtime_put(dev);
 	pm_runtime_disable(dev);
-- 
2.19.2

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ