From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-5.6 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,MAILING_LIST_MULTI,SPF_HELO_NONE, SPF_PASS,USER_AGENT_SANE_1 autolearn=no autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 5D6B0C433E1 for ; Sat, 25 Jul 2020 10:18:24 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 2BA88206D7 for ; Sat, 25 Jul 2020 10:18:24 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1595672304; bh=yYZoeGiaL2Yy7dXLxE3HYWDSogCl38mNwgjNFgnjc+c=; h=Date:From:To:Cc:Subject:References:In-Reply-To:List-ID:From; b=HCN1k3f5ZVCnPT/w5FSt8jeEqu6/fn1g6oy2bDH7G1bYYA3NayylG7PCJrrvcFbU3 SfqU5c9cfkqUASUoL7G+866lF6uPEieiEUTcaWrfXefsY917SZ+vX4f1TOOwAv3r/p dMCElwSJ90wwbehwl5fgmBcmAuENLBllm8N4MbyI= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726583AbgGYKSX (ORCPT ); Sat, 25 Jul 2020 06:18:23 -0400 Received: from mail.kernel.org ([198.145.29.99]:53578 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726572AbgGYKSX (ORCPT ); Sat, 25 Jul 2020 06:18:23 -0400 Received: from localhost (p5486c508.dip0.t-ipconnect.de [84.134.197.8]) (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 0A9DB206D7; Sat, 25 Jul 2020 10:18:21 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1595672302; bh=yYZoeGiaL2Yy7dXLxE3HYWDSogCl38mNwgjNFgnjc+c=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=Qe+QBna9WOi7vzaW7vSPMkaVsYAt9JxYecsoEPWMmLKYqg/JMdWxsrTo+zazQsXL/ 0RXnCdPZ8Gur7V9bNMvK1F4tz0lVrzPaglmJmDTNqZS3wo2YWA+fv/mePMZXtSlNi7 lBsBytEUNBmTctcB3E6thweZpJCaocz0ystXpo3g= Date: Sat, 25 Jul 2020 12:18:16 +0200 From: Wolfram Sang To: Ray Jui Cc: Dhananjay Phadke , Rayagonda Kokatanur , linux-i2c@vger.kernel.org, linux-kernel@vger.kernel.org, Ray Jui , bcm-kernel-feedback-list@broadcom.com Subject: Re: [PATCH] i2c: iproc: fix race between client unreg and isr Message-ID: <20200725101815.GA1519@ninjato> References: <1595115599-100054-1-git-send-email-dphadke@linux.microsoft.com> <116ac90c-8b49-ca89-90a4-9a28f43a7c50@broadcom.com> <20200722104128.GK1030@ninjato> <5048cf44-e2c2-ee31-a9fb-b823f16c2c7d@broadcom.com> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha512; protocol="application/pgp-signature"; boundary="qMm9M+Fa2AknHoGS" Content-Disposition: inline In-Reply-To: <5048cf44-e2c2-ee31-a9fb-b823f16c2c7d@broadcom.com> User-Agent: Mutt/1.10.1 (2018-07-13) Sender: linux-i2c-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-i2c@vger.kernel.org --qMm9M+Fa2AknHoGS Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable > I think the following sequence needs to be implemented to make this > safe, i.e., after 'synchronize_irq', no further slave interrupt will be > fired. >=20 > In 'bcm_iproc_i2c_unreg_slave': >=20 > 1. Set an atomic variable 'unreg_slave' (I'm bad in names so please come > up with a better name than this) >=20 > 2. Disable all slave interrupts >=20 > 3. synchronize_irq >=20 > 4. Set slave to NULL >=20 > 5. Erase slave addresses What about this in unreg_slave? 1. disable_irq() This includes synchronize_irq() and avoids the race. Because irq will be masked at interrupt controller level, interrupts coming in at the I2C IP core level should still be pending once we reenable the irq. 2. disable all slave interrupts 3. enable_irq() 4. clean up the rest (pointer, address) Or am I overlooking something? --qMm9M+Fa2AknHoGS Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQIzBAABCgAdFiEEOZGx6rniZ1Gk92RdFA3kzBSgKbYFAl8cBuMACgkQFA3kzBSg KbbLAA/9FeHjhGwyMXJIQXFvczJdKOmip+UeBbnpfmqsfpfLCTIt3VsyEN3mW9er ljA3+RwocPDUJxYpSRqQGZmCP70Aec8z7PJ1criCXG+zUAZuJYABIQrDUaKDEOiE FzJi6hqJ2nFhwVrforfaotkvlco/F7PcEoIGA1eoAI27Oe9Hem+J1KcWNGFcw4NM cjQhnZgQSv0zGquTKdLjlI425z5bxUGaIz+EN0CmVp+lLrJ/tjI5yIJIbdBF8nQQ kDaTv3Q5NlgXsQbRHbvzMsw2UHlBRje/Nqb0KkX7kArS3fRtN/av3tur2wLfyyYY rNKxDy0d4Z2ltG6gF9ysQyWf+BYSrzeEBR6md+oMnJ7GUR5Q0IB5+LyzTtDLHxV/ eqeX5ZqOz63qpxuBdJfwTUnSFfQ1o3NzzRK05YN+nHu6SUYlwveniaRZmrKwuNpV vNkOvhQiOD4aiugIh43g/mIPVVPrrnmkbOm0O4XldlG/6LW5636E4GVFmgi2Gi3O Qe7zRBNrxJ0oA2v5CC+pRanDVGFcWr67EHzObIDE7e/wxd8WdjyjmEPMtz/Ef7E9 JGlO66wXCuxyLydCEdqLkNp1H+0W1A9pzwMSjV052OEW1yCJFfkmsWVMTNKGNUXQ XBAX3znGu7Nhz9HJsgD+adLfW8hua3nIYC6GJfbRNdn14O8W6FA= =ol3x -----END PGP SIGNATURE----- --qMm9M+Fa2AknHoGS--