Received: by 2002:a05:6a10:9848:0:0:0:0 with SMTP id x8csp336806pxf; Thu, 18 Mar 2021 01:10:52 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwC2ZARvH1I8GRtHXqL5plu2Z0GKcTZNMl1KWa0o1d7l73Y+i4gx1yJer99fbbe8364KyvH X-Received: by 2002:a17:907:689:: with SMTP id wn9mr7179692ejb.485.1616055052035; Thu, 18 Mar 2021 01:10:52 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1616055052; cv=none; d=google.com; s=arc-20160816; b=MAC+l3qFugOUzgzR47wf17S2clo9kubVEM/o7zVk2vZW7Q7Re2laxKMmx3ryBfLVDe JGTK2l41a0HkgL2yQlkyOOW1EcLk1T3wb/MU48sLoVyCIN7V0GT9u1Wt7Oj81MwYN54Z X1ECp/PySx6avNEjmiOLGiPaf1kx3wc+rS/HMOu2hrJrsASul8LhpC+av+NNrXxbt65f hYusrZkv8ILhNGUjYDPDDkQKAVpj3QFCqQxwVXWaBQMNc+vcWqI8/oCW2Q/uQQCyCvLk gtpQkY73+iq46JjJFV4TUZiSzY75U+zaeN1iCT2JVOLfsev6AThqCfo5zYiPgVjIeM47 du8w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-language:content-transfer-encoding :mime-version:user-agent:date:message-id:subject:from:cc:to; bh=m2vZy4yq0wUCgO/RFDpvcATJo8oBm1hWglAWOQzUGNA=; b=DZIAFYziiouc04WbTW+i8S3+mqPTgT2YLc39hVWanWfbUwPenqa55GLEVKTAMdvC80 DQXJjC6hMosaX49e3csWr4Ol6FcqaInX3qiH7asbl/CeQeNdruTP3/knrd8m9akhyIvY ypVc/cw6rnHE2U/y+14CFVnKI94sFLPgGWKtc8d+FQxc/543cxBMvORlhzRRv9bygpLz ymmihAKFQWGGESnZOt87ZOG6zDaSXFoyfuL4mfhyEkxaWC89S50AluIqpQXSva/gCyCu 1Vo5H1+M6akfLkgtXeWtjllncKMR0iEzbpyBgd0nwJCt71yGsC4FLYeFr3wl4ceadbF/ l7bw== ARC-Authentication-Results: i=1; mx.google.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=ispras.ru Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id bq23si1093649ejb.498.2021.03.18.01.10.27; Thu, 18 Mar 2021 01:10:52 -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; 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=ispras.ru Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229664AbhCRIHX (ORCPT + 99 others); Thu, 18 Mar 2021 04:07:23 -0400 Received: from mail.ispras.ru ([83.149.199.84]:51342 "EHLO mail.ispras.ru" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229600AbhCRIHQ (ORCPT ); Thu, 18 Mar 2021 04:07:16 -0400 Received: from [192.168.1.48] (unknown [185.13.112.205]) by mail.ispras.ru (Postfix) with ESMTPSA id 02BA940D4004; Thu, 18 Mar 2021 08:07:11 +0000 (UTC) To: Jonathan Cameron Cc: Lars-Peter Clausen , ldv-project@linuxtesting.org, Peter Meerwald-Stadler , Alexandru Ardelean , linux-iio@vger.kernel.org, linux-kernel@vger.kernel.org From: Pavel Andrianov Subject: A potential data race in drivers/iio/adc/berlin2-adc.ko Message-ID: Date: Thu, 18 Mar 2021 11:07:10 +0300 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.7.1 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit Content-Language: en-US Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi, berlin2_adc_probe [1] registers two interrupt handlers: berlin2_adc_irq [2] and berlin2_adc_tsen_irq [3]. The interrupt handlers operate with the same data, for example, modify priv->data with different masks: priv->data &= BERLIN2_SM_ADC_MASK; and priv->data &= BERLIN2_SM_TSEN_MASK; If the two interrupt handlers are executed simultaneously, a potential data race takes place. So, the question is if the situation is possible. For example, in the case of the handlers are executed on different CPU cores. Best regards, Pavel [1] https://elixir.bootlin.com/linux/latest/source/drivers/iio/adc/berlin2-adc.c#L283 [2] https://elixir.bootlin.com/linux/latest/source/drivers/iio/adc/berlin2-adc.c#L239 [3] https://elixir.bootlin.com/linux/latest/source/drivers/iio/adc/berlin2-adc.c#L259