Received: by 10.223.185.116 with SMTP id b49csp2430573wrg; Mon, 5 Mar 2018 02:45:53 -0800 (PST) X-Google-Smtp-Source: AG47ELvZfgJ3CTabbj5HLFxGGg6MD+ybhK7xHScbwiPnayiJXb/1s7lBANjp4uhWx22EmsprERye X-Received: by 10.99.120.205 with SMTP id t196mr11536642pgc.392.1520246753717; Mon, 05 Mar 2018 02:45:53 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1520246753; cv=none; d=google.com; s=arc-20160816; b=pru+XOwpCFsxmpHUQgfcgGZVDp6mjRv6IaDVhjn+yFaNtNYTechua8f3lKHWewT1/O zf0hwGwU/iGas846IerHgYJHYfyQSEHrjH8qzWwS38US9qMbffxuuGG4LvgEWnepHoqj w+sUSTd5+1UO4vikDHMj9m1OV+obvBIpJMmokgXJDt5nLFxiBRYhq7ii2SG5tDR/8ePY DyMPaItX/Gty83pp+pg2oFsChnVEBW16O3B3h2tMsBIGhRem27Ov5rI+ipcUVIeZf4cO s+KnXH1Q1QqGgU6jS6B/r+Z9pxJU1tX8ZT9mDmrpA1nTbMC6rrY2csplRL4wfFEpkulL QrEQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-language :content-transfer-encoding:mime-version:accept-language:in-reply-to :references:message-id:date:thread-index:thread-topic:subject:cc:to :from:arc-authentication-results; bh=ZB/S1vQLT0dfMTCUFfpM4GqPOxeyPKEELIGrfLiLO1Y=; b=JqsKJuGTH54de60gmsiOjTe78IIXdQHds2Zsb35ZETAki1hSEN7rUYc47R5r5Xxdyz orcxZ7OgpgWLfeSMYfmCNSggEsOYA8Su4+vzm9tZ1KjhXjM/4wxnRwoC3adTnvLAEUKf 8/EAHLeDreUp1Mw2EoOmJQ70epo27st9cJKHr+ZtQSDYzTTPwsTzaYJS7yZRi/2h0NzU 4urwo7QYNRSPNOjp6WLJQqhvm7/da8gluG6eWp3+ZKyRo3g8UWpm2MvztOaVj4EDy9Rz AZB+rdj+CaexKn2yHSUCToG7Ke4FK3j8UGSJSuA9QG3/AxgQLeeR3eUZd36MMuEgDyGV RLoQ== ARC-Authentication-Results: i=1; mx.google.com; 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 74si8244490pgc.719.2018.03.05.02.45.38; Mon, 05 Mar 2018 02:45:53 -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; 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 S934540AbeCEKoM convert rfc822-to-8bit (ORCPT + 99 others); Mon, 5 Mar 2018 05:44:12 -0500 Received: from enterprise01.smtp.diehl.com ([193.201.238.219]:54964 "EHLO enterprise01.smtp.diehl.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S934398AbeCEKoE (ORCPT ); Mon, 5 Mar 2018 05:44:04 -0500 X-$ESA-Groupmapping: true X-IronPort-AV: E=Sophos;i="5.47,426,1515452400"; d="scan'";a="46166328" From: Denis OSTERLAND To: "a.zummo@towertech.it" , "alexandre.belloni@free-electrons.com" CC: "linux-kernel@vger.kernel.org" , "mgr@pengutronix.de" , "m.grzeschik@pengutronix.de" , "devicetree@vger.kernel.org" , "linux@roeck-us.net" , "jdelvare@suse.com" , "linux-rtc@vger.kernel.org" , "kernel@pengutronix.de" , Denis OSTERLAND Subject: [PATCH v3 1/4] rtc: isl1208: enable interrupt after context preparation Thread-Topic: [PATCH v3 1/4] rtc: isl1208: enable interrupt after context preparation Thread-Index: AQHTtG7affRVgsG8kEWakaUB8ZWDxA== Date: Mon, 5 Mar 2018 10:43:53 +0000 Message-ID: <1520246373-19023-2-git-send-email-Denis.Osterland@diehl.com> References: <1520246373-19023-1-git-send-email-Denis.Osterland@diehl.com> In-Reply-To: <1520246373-19023-1-git-send-email-Denis.Osterland@diehl.com> Accept-Language: de-DE, en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ms-exchange-transport-fromentityheader: Hosted x-originating-ip: [10.153.3.249] MIME-Version: 1.0 X-GBS-PROC: byQFdw3ukCM+zy1/poiPc4Q+xc9r/a6t2HuWj6Nw2bVXA0Qmq+ld6g3d3JjcGGr5 X-MIMETrack: Itemize by SMTP Server on DIGNS29/SRV/DIEHL-HUB(Release 9.0.1FP10 HF66|February 09, 2018) at 05.03.2018 11:44:00, Serialize by ntm_grab.EXE on DIGNS29/SRV/DIEHL-HUB(Release 9.0.1FP10 HF66|February 09, 2018) at 05.03.2018 11:44:01, Serialize complete at 05.03.2018 11:44:01, Itemize by ntm_grab.EXE on DIGNS29/SRV/DIEHL-HUB(Release 9.0.1FP10 HF66|February 09, 2018) at 05.03.2018 11:44:01, Serialize by Router on DIGNS29/SRV/DIEHL-HUB(Release 9.0.1FP10 HF66|February 09, 2018) at 05.03.2018 11:44:01 X-TNEFEvaluated: 1 Content-Transfer-Encoding: 8BIT Content-Type: text/plain; charset="utf-8" Content-Language: en-US Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Michael Grzeschik The interrupt handler got enabled very early. If the interrupt cause is triggering immediately before the context is fully prepared. This can lead to undefined behaviour. Therefor we move the interrupt enable code to the end of the probe function. Signed-off-by: Michael Grzeschik Signed-off-by: Denis Osterland --- drivers/rtc/rtc-isl1208.c | 34 +++++++++++++++++----------------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/drivers/rtc/rtc-isl1208.c b/drivers/rtc/rtc-isl1208.c index c8b4953..a13a4ba 100644 --- a/drivers/rtc/rtc-isl1208.c +++ b/drivers/rtc/rtc-isl1208.c @@ -635,23 +635,6 @@ isl1208_probe(struct i2c_client *client, const struct i2c_device_id *id) if (isl1208_i2c_validate_client(client) < 0) return -ENODEV; - if (client->irq > 0) { - rc = devm_request_threaded_irq(&client->dev, client->irq, NULL, - isl1208_rtc_interrupt, - IRQF_SHARED | IRQF_ONESHOT, - isl1208_driver.driver.name, - client); - if (!rc) { - device_init_wakeup(&client->dev, 1); - enable_irq_wake(client->irq); - } else { - dev_err(&client->dev, - "Unable to request irq %d, no alarm support\n", - client->irq); - client->irq = 0; - } - } - rtc = devm_rtc_device_register(&client->dev, isl1208_driver.driver.name, &isl1208_rtc_ops, THIS_MODULE); @@ -674,6 +657,23 @@ isl1208_probe(struct i2c_client *client, const struct i2c_device_id *id) if (rc) return rc; + if (client->irq > 0) { + rc = devm_request_threaded_irq(&client->dev, client->irq, NULL, + isl1208_rtc_interrupt, + IRQF_SHARED | IRQF_ONESHOT, + isl1208_driver.driver.name, + client); + if (!rc) { + device_init_wakeup(&client->dev, 1); + enable_irq_wake(client->irq); + } else { + dev_err(&client->dev, + "Unable to request irq %d, no alarm support\n", + client->irq); + client->irq = 0; + } + } + return 0; } -- 2.7.4 Diehl AKO Stiftung & Co. KG, Pfannerstraße 75-83, 88239 Wangen im Allgäu Bereichsvorstand: Dr.-Ing. Michael Siedentop (Sprecher), Josef Fellner (Mitglied) Sitz der Gesellschaft: Wangen i.A. – Registergericht: Amtsgericht Ulm HRA 620609 – Persönlich haftende Gesellschafterin: Diehl Verwaltungs-Stiftung – Sitz: Nürnberg – Registergericht: Amtsgericht Nürnberg HRA 11756 – Vorstand: Dr.-Ing. E.h. Thomas Diehl (†) (Vorsitzender), Herr Dipl.-Wirtsch.-Ing. Wolfgang Weggen (stellvertretender Vorsitzender), Dipl.-Kfm. Claus Günther, Dipl.-Kfm. Frank Gutzeit, Dr.-Ing. Heinrich Schunk, Dr.-Ing. Michael Siedentop , Dipl.-Kfm. Dr.-Ing. Martin Sommer, Dipl.-Ing. (FH) Rainer von Borstel, Vorsitzender des Aufsichtsrates: Dr. Klaus Maier ___________________________________________________________________________________________________ Der Inhalt der vorstehenden E-Mail ist nicht rechtlich bindend. Diese E-Mail enthaelt vertrauliche und/oder rechtlich geschuetzte Informationen. Informieren Sie uns bitte, wenn Sie diese E-Mail faelschlicherweise erhalten haben. Bitte loeschen Sie in diesem Fall die Nachricht. Jede unerlaubte Form der Reproduktion, Bekanntgabe, Aenderung, Verteilung und/oder Publikation dieser E-Mail ist strengstens untersagt. The contents of the above mentioned e-mail is not legally binding. This e-mail contains confidential and/or legally protected information. Please inform us if you have received this e-mail by mistake and delete it in such a case. Each unauthorized reproduction, disclosure, alteration, distribution and/or publication of this e-mail is strictly prohibited.