Received: by 2002:a25:1985:0:0:0:0:0 with SMTP id 127csp723260ybz; Fri, 17 Apr 2020 08:54:59 -0700 (PDT) X-Google-Smtp-Source: APiQypKjZUirsCsIre0LYqaT06G4ugotIdd7txFkNoi2ETqg7YpmrXgZJWKfthc5NeFnN3xx3Cmf X-Received: by 2002:a17:906:a441:: with SMTP id cb1mr3859677ejb.242.1587138899746; Fri, 17 Apr 2020 08:54:59 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1587138899; cv=pass; d=google.com; s=arc-20160816; b=01tK+q1yJyxzIwyistd6SAUMwlD4STp5qUx/a/PSO8oHi7W/GMnw/ZIxEwct2sv6tu sP7MaIqMWn5PJmsEJzhVjAySJSyZilNhS7cAoJNdmgyqGP4H+4u0GcFPHJ7cLAm5/QoQ Oy0jP7J/yVstMPTZ94byPaidSeJaSpgg1R7Njj1R9I4Q+7g6sV063t02bxCALzAyZn+H ZhKsdh12WeRG99CfPWQStduvv+f3Q0OKZfUsIzmS/G/8nEWgzuYvZUEtdHGiVRby9QUn ZJLZqGdOTjpu3R7pSNg5agyNaUDcOCKNTA/2fVcemwedV7hxyzmaKRsiVzXnsumR2VCD 0KPg== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:content-transfer-encoding :dlp-reaction:dlp-product:dlp-version:content-language :accept-language:in-reply-to:references:message-id:date:thread-index :thread-topic:subject:cc:to:from:dkim-signature:ironport-sdr :ironport-sdr; bh=il0QUjMjgKeajCeyVjWAtpKDQMPmjZgbOtC8vj2af+s=; b=UxTjZPQsyr2eosa03hvC7vilxxWS2PZY0ZK0dyuWIxgS5hKZUpcb8mbFv5EhivSthS RAYV0AFKHeuVtysosTCINO3Igdq8yVHM3UdYMOTlW08DwCr6inijpspKqNjChJW4xit3 Jct25Tx+nLtoBu2lAdCadNkFTGjPndRtwps/b24NtV+3XE/NT6c7ViqKAZApqn25q/YJ iHXDkq7wlZJ0eRaAbgGJKaRyCvirp9qPgWW1RZ0NyiYYDLRdq939aCKNuOnHaVj/66H6 nu2I7pCbjBEAOCux8frnh0GoAi8PxpMGbQTkWKOeYgeMrUd6MepSNpeZDeBsEPKU3L2a nJIw== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@intel.onmicrosoft.com header.s=selector2-intel-onmicrosoft-com header.b=JHYRvqeA; arc=pass (i=1 spf=pass spfdomain=intel.com dkim=pass dkdomain=intel.com dmarc=pass fromdomain=intel.com); 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; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=intel.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id n20si6701079ejr.443.2020.04.17.08.54.35; Fri, 17 Apr 2020 08:54:59 -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=@intel.onmicrosoft.com header.s=selector2-intel-onmicrosoft-com header.b=JHYRvqeA; arc=pass (i=1 spf=pass spfdomain=intel.com dkim=pass dkdomain=intel.com dmarc=pass fromdomain=intel.com); 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; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728603AbgDQPvO (ORCPT + 99 others); Fri, 17 Apr 2020 11:51:14 -0400 Received: from mga14.intel.com ([192.55.52.115]:44436 "EHLO mga14.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726385AbgDQPvO (ORCPT ); Fri, 17 Apr 2020 11:51:14 -0400 IronPort-SDR: oVU4T1XGTcg0vgwKph79JuCgPiCQAsFzDn2ur2BMgdduAWj0+/gXkLBdwh6miFGCjQoMBTKXCr mL2dKwFyo/PQ== X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga008.jf.intel.com ([10.7.209.65]) by fmsmga103.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 17 Apr 2020 08:51:12 -0700 IronPort-SDR: ZB1qINnf4HChrZ7AeBEPumiTQfl9AXZjoCFSgxFZTk4/9+pjxuMJexXz+HEb2aqKt7nAfjetdu vDeEIYCZ0aUg== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.72,395,1580803200"; d="scan'208";a="279943163" Received: from orsmsx108.amr.corp.intel.com ([10.22.240.6]) by orsmga008.jf.intel.com with ESMTP; 17 Apr 2020 08:51:11 -0700 Received: from orsmsx113.amr.corp.intel.com (10.22.240.9) by ORSMSX108.amr.corp.intel.com (10.22.240.6) with Microsoft SMTP Server (TLS) id 14.3.439.0; Fri, 17 Apr 2020 08:51:11 -0700 Received: from ORSEDG001.ED.cps.intel.com (10.7.248.4) by ORSMSX113.amr.corp.intel.com (10.22.240.9) with Microsoft SMTP Server (TLS) id 14.3.439.0; Fri, 17 Apr 2020 08:51:11 -0700 Received: from NAM12-BN8-obe.outbound.protection.outlook.com (104.47.55.173) by edgegateway.intel.com (134.134.137.100) with Microsoft SMTP Server (TLS) id 14.3.439.0; Fri, 17 Apr 2020 08:51:11 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=jbaXSS3pdjjTkORI0XIaVO/bQo4URkAg/GT1rzSNn9MrP2qEv5CU3Qds+slEWxHsMcGWE+ibmu6AX/+Ie0nCUjThZ4h9x8BcGzhP1w10E33wTK8j6i3MYlRngY6i4irxoVVqnLFQ+3P4eIhTmowEDKbYXJ26VM7fNGkWEQcudav9sHwkJrdDHJQA9yULy71h9bDg3HyxDlaNbNmQWwpu3B7jCATu4oP7BOsT/tU80Ei/5Ksbow7U3u9kVZLtZkiQAeickAd7sn2uggYU7N9V8kYLFmOUyQ5aHS81bHPhMX5WJy5XFUsxh6nyXd/av70mL8/3pcCp6CxO042uTC1UsA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=il0QUjMjgKeajCeyVjWAtpKDQMPmjZgbOtC8vj2af+s=; b=RSXTloUqc3F9Za83QaXyTnwuFgZw6cMJaKpYxi7oenntGU1CSfa6HUQclajBxVSRUq7K4jah7t1BNGqYxxCzRS8X5xQvtKTsU/vhdu1L4rEXS2VWy+QsSxKwneCS2HbS1qrDGoUuIiXWvP+riEuYZALDey7dx3AmnzoHO7irkMDkWh6c4+uj7Jlv9QMCC7IuAbX0Qmr4HVd54aNzpMOy+FtmLAF86lLb3gjbq0HX6qbjuBuijAlgXfXyutQQ6fFKgCKM/Us0+ElEdGuauGk1g2rHW9Jfn+zOvTTXKnwbC0csQ3ShLH0Cnrq2gDZ0eF2xAo9h+iNGq24gqCLW0p5rQw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=intel.onmicrosoft.com; s=selector2-intel-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=il0QUjMjgKeajCeyVjWAtpKDQMPmjZgbOtC8vj2af+s=; b=JHYRvqeAwbScLZcwB31TF8BGDw/FZjH1vXI3lrBruKUvuh6uzqCx4ksFPFq9XFHWFjOxAwufJVpZFtTVBn4ujAe9hFdhCJwJG6PUv+jPEO8QSuWX6EQEUA6hKH7Fieu7RkmyX4UAHEERYuTKRSJ1dFYUI8hAaMS1cwJSva9Fwl8= Received: from MW3PR11MB4745.namprd11.prod.outlook.com (2603:10b6:303:5e::9) by MW3PR11MB4652.namprd11.prod.outlook.com (2603:10b6:303:5a::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2921.27; Fri, 17 Apr 2020 15:51:08 +0000 Received: from MW3PR11MB4745.namprd11.prod.outlook.com ([fe80::3491:5d17:7ab5:a099]) by MW3PR11MB4745.namprd11.prod.outlook.com ([fe80::3491:5d17:7ab5:a099%9]) with mapi id 15.20.2900.028; Fri, 17 Apr 2020 15:51:08 +0000 From: "Gross, Mark" To: "madhuparnabhowmik10@gmail.com" , "arnd@arndb.de" , "gregkh@linuxfoundation.org" CC: "linux-kernel@vger.kernel.org" , "andrianov@ispras.ru" , "ldv-project@linuxtesting.org" Subject: RE: [PATCH] drivers: char: tlclk.c: Avoid data race between init and interrupt handler Thread-Topic: [PATCH] drivers: char: tlclk.c: Avoid data race between init and interrupt handler Thread-Index: AQHWFM3h1p9Jv8e1vE+gEoGsQuceyqh9dRzw Date: Fri, 17 Apr 2020 15:51:08 +0000 Message-ID: References: <20200417153451.1551-1-madhuparnabhowmik10@gmail.com> In-Reply-To: <20200417153451.1551-1-madhuparnabhowmik10@gmail.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-version: 11.2.0.6 dlp-product: dlpe-windows dlp-reaction: no-action authentication-results: spf=none (sender IP is ) smtp.mailfrom=mark.gross@intel.com; x-originating-ip: [50.53.49.126] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 8b5f242f-d83f-437a-67b0-08d7e2e72550 x-ms-traffictypediagnostic: MW3PR11MB4652: x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:3173; x-forefront-prvs: 0376ECF4DD x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:MW3PR11MB4745.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFTY:;SFS:(10019020)(396003)(346002)(366004)(376002)(136003)(39860400002)(33656002)(110136005)(55016002)(8936002)(53546011)(6506007)(316002)(7696005)(54906003)(2906002)(26005)(5660300002)(81156014)(8676002)(478600001)(71200400001)(4326008)(76116006)(186003)(86362001)(66446008)(64756008)(9686003)(66556008)(66476007)(52536014)(66946007);DIR:OUT;SFP:1102; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: +3lA7bFc3zokCU7SJeTvVrUz6luIEsa8ILYFettvCmqk6yrZpCdmBi+Z1aBBNYjmn+cBKVqHOG+XCT+pW+3PDaXZ3s7foES1HVzKydahQuk4NGANclB+mv8HdwPn+6gdGsfr3vNaVfnHRqLVJgQs5u+UnejVybwzLLkgQCRxmTtO2JR8uod1ldwTf/IL/E4pRrJ9UAvmfNZZUIZ0lN1bepfv/5GPEd+FAkcxizXQ2WFiKkyJaIrhT+c6O9QYAW/iEm96idLUs6lAtBCpSuMx7InNZxG1lrjlVjORu2YG08NHGGUsQ1gx0lck2tENAh//PUa/nw+QQomEUwVb1qXFaZAN4sAPsrnaMilaGnN3GQ276UabJ/SB9aQMb8g6m5Bz3LOu+sLvicTujLw511jCzasfGsWZU5TR9yumc/Fwj6gPa6lfcdWjMLRoZfk2J9mT x-ms-exchange-antispam-messagedata: wA0Shwt8zjITubwMxTVvXLAjs/7WFzh7R0cFFKG6o44gE/075OL36ZYiA0852ynGw0GS25xSuNeHl3OWYipVj25Lq4e/kIfUejUu40dIMCXMFZC2MSZ/dvwQ5EVHjq4eJbKWZDfnwC1U6ZFmyDNQSw== x-ms-exchange-transport-forked: True Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-MS-Exchange-CrossTenant-Network-Message-Id: 8b5f242f-d83f-437a-67b0-08d7e2e72550 X-MS-Exchange-CrossTenant-originalarrivaltime: 17 Apr 2020 15:51:08.5363 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: W9KKqGFJxO756Qmwou09UJJWgHCooVKVsyGIosqeslP76SC/+7w7TWpiBg/OlqyJLjRIMoRf0r6Mmfzoc1Z1cQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW3PR11MB4652 X-OriginatorOrg: intel.com Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Looks reasonable to me. +1 Ack --mark > -----Original Message----- > From: madhuparnabhowmik10@gmail.com > Sent: Friday, April 17, 2020 8:35 AM > To: Gross, Mark ; arnd@arndb.de; > gregkh@linuxfoundation.org > Cc: linux-kernel@vger.kernel.org; andrianov@ispras.ru; ldv- > project@linuxtesting.org; Madhuparna Bhowmik > > Subject: [PATCH] drivers: char: tlclk.c: Avoid data race between init and= interrupt > handler >=20 > From: Madhuparna Bhowmik >=20 > After registering character device the file operation callbacks can be ca= lled. The > open callback registers interrupt handler. > Therefore interrupt handler can execute in parallel with rest of the init= function. To > avoid such data race initialize telclk_interrupt variable and struct alar= m_events > before registering character device. >=20 > Found by Linux Driver Verification project (linuxtesting.org). >=20 > Signed-off-by: Madhuparna Bhowmik > --- > drivers/char/tlclk.c | 17 ++++++++++------- > 1 file changed, 10 insertions(+), 7 deletions(-) >=20 > diff --git a/drivers/char/tlclk.c b/drivers/char/tlclk.c index > 6d81bb3bb503..896a3550fba9 100644 > --- a/drivers/char/tlclk.c > +++ b/drivers/char/tlclk.c > @@ -777,17 +777,21 @@ static int __init tlclk_init(void) { > int ret; >=20 > + telclk_interrupt =3D (inb(TLCLK_REG7) & 0x0f); > + > + alarm_events =3D kzalloc( sizeof(struct tlclk_alarms), GFP_KERNEL); > + if (!alarm_events) { > + ret =3D -ENOMEM; > + goto out1; > + } > + > ret =3D register_chrdev(tlclk_major, "telco_clock", &tlclk_fops); > if (ret < 0) { > printk(KERN_ERR "tlclk: can't get major %d.\n", tlclk_major); > + kfree(alarm_events); > return ret; > } > tlclk_major =3D ret; > - alarm_events =3D kzalloc( sizeof(struct tlclk_alarms), GFP_KERNEL); > - if (!alarm_events) { > - ret =3D -ENOMEM; > - goto out1; > - } >=20 > /* Read telecom clock IRQ number (Set by BIOS) */ > if (!request_region(TLCLK_BASE, 8, "telco_clock")) { @@ -796,7 +800,6 > @@ static int __init tlclk_init(void) > ret =3D -EBUSY; > goto out2; > } > - telclk_interrupt =3D (inb(TLCLK_REG7) & 0x0f); >=20 > if (0x0F =3D=3D telclk_interrupt ) { /* not MCPBL0010 ? */ > printk(KERN_ERR "telclk_interrupt =3D 0x%x non-mcpbl0010 hw.\n", > @@ -837,8 +840,8 @@ static int __init tlclk_init(void) > release_region(TLCLK_BASE, 8); > out2: > kfree(alarm_events); > -out1: > unregister_chrdev(tlclk_major, "telco_clock"); > +out1: > return ret; > } >=20 > -- > 2.17.1