From patchwork Mon Feb 15 14:49:07 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Akinobu Mita X-Patchwork-Id: 582977 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from mail-qg0-x238.google.com (mail-qg0-x238.google.com [IPv6:2607:f8b0:400d:c04::238]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 1EB89140273 for ; Tue, 16 Feb 2016 01:49:26 +1100 (AEDT) Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=googlegroups.com header.i=@googlegroups.com header.b=UfLOVYHN; dkim-atps=neutral Received: by mail-qg0-x238.google.com with SMTP id u110sf20212138qge.1 for ; Mon, 15 Feb 2016 06:49:26 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlegroups.com; s=20120806; h=mime-version:from:to:cc:subject:date:message-id:in-reply-to :references:x-original-sender:x-original-authentication-results :reply-to:content-type:precedence:mailing-list:list-id :x-spam-checked-in-group:list-post:list-help:list-archive:sender :list-subscribe:list-unsubscribe; bh=elcIp6q2L2vaxJUxjH30UFkUKqNy0gLnhXXvcb7Hnx4=; b=UfLOVYHN8bSaKXZUHsrElAbgXbpaKTZ3RLDh03ve21HmFQ9Kc36p4EUG54FKDnxLMI EbSxkEW+HHRVPEx5nWG8n/m0M0kK6SxSWDyiBk1yigXKmGVR3e0ZOkq9qDRHQxeFY23f 7ekKkVxrDpCjsAJJcM1z1ZoOynPQL0bTNrloNSgeCd+3wbbkdCd4Nff9SoPqhT/wvEvm Mu7ItdTMqYJAjk/Yr6ipBfY9eS1wNL6xuHgHiYq3rmC5CmzsLBuagIWW6P8uP4bB+d/3 dECg102OqrWpB1kpFFwYgixxhJ9+lEvdi6sM2a3cH7YRpqFCDgdMrVlmewceqwqL/T0Z UlxQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:from:to:cc:subject:date:message-id :in-reply-to:references:x-original-sender :x-original-authentication-results:reply-to:content-type:precedence :mailing-list:list-id:x-spam-checked-in-group:list-post:list-help :list-archive:sender:list-subscribe:list-unsubscribe; bh=elcIp6q2L2vaxJUxjH30UFkUKqNy0gLnhXXvcb7Hnx4=; b=QBeP4bx738y0xw5B3Mw3rRCFMsDnnIwzsJGE6+c+jsr41ZoJdK82dGYsojWB9/6sex k+sF+NNA3+dw5Uh1Q/vE3+PHpKEw0C2QbCSQ/FDegdpiW2OsS44Q1uaAJodTi6Uu47FI /upwlG+ndb/pPq1TO5PvatxKOzN04tKgKErP4oiFtwhJi7ZPa0zg0qv8jmzqeEKWsehr L5K7LD5uTsfY4eoKypYKuCJ3QvUN8EmkAo6bfRJmE6XbgEpbPKkJj/vAflwVBSFW/qOa 6+F5k1lQIYw+texNEvhVuJZlKIqOrihDsWfe/NX/jd0hwEsjUlInuxV7Blwp6oVuxktJ 1g7Q== X-Gm-Message-State: AG10YOTPsdJtuIM5WXzTuCc+gQFLEkrKj37PsI7l369YbHfRv2p+hj+Ga2ZlkUZzLLL1ww== X-Received: by 10.50.183.36 with SMTP id ej4mr153539igc.1.1455547764354; Mon, 15 Feb 2016 06:49:24 -0800 (PST) MIME-Version: 1.0 X-BeenThere: rtc-linux@googlegroups.com Received: by 10.107.158.20 with SMTP id h20ls1336809ioe.98.gmail; Mon, 15 Feb 2016 06:49:24 -0800 (PST) X-Received: by 10.66.244.171 with SMTP id xh11mr16591445pac.32.1455547764083; Mon, 15 Feb 2016 06:49:24 -0800 (PST) Received: from mail-pa0-x241.google.com (mail-pa0-x241.google.com. [2607:f8b0:400e:c03::241]) by gmr-mx.google.com with ESMTPS id yd9si201422pab.1.2016.02.15.06.49.24 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 15 Feb 2016 06:49:24 -0800 (PST) Received-SPF: pass (google.com: domain of akinobu.mita@gmail.com designates 2607:f8b0:400e:c03::241 as permitted sender) client-ip=2607:f8b0:400e:c03::241; Received: by mail-pa0-x241.google.com with SMTP id yy13so7279087pab.1 for ; Mon, 15 Feb 2016 06:49:24 -0800 (PST) X-Received: by 10.66.121.10 with SMTP id lg10mr4262550pab.59.1455547763943; Mon, 15 Feb 2016 06:49:23 -0800 (PST) Received: from localhost.localdomain (KD113159139091.ppp-bb.dion.ne.jp. [113.159.139.91]) by smtp.gmail.com with ESMTPSA id ux2sm39259139pac.46.2016.02.15.06.49.21 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Mon, 15 Feb 2016 06:49:23 -0800 (PST) From: Akinobu Mita To: rtc-linux@googlegroups.com Cc: Akinobu Mita , Wolfgang Grandegger , Alessandro Zummo , Alexandre Belloni Subject: [rtc-linux] [PATCH 2/4] rtc-rx8025: protect ctrl1 register update by rtc->ops_lock Date: Mon, 15 Feb 2016 23:49:07 +0900 Message-Id: <1455547749-5229-2-git-send-email-akinobu.mita@gmail.com> X-Mailer: git-send-email 2.5.0 In-Reply-To: <1455547749-5229-1-git-send-email-akinobu.mita@gmail.com> References: <1455547749-5229-1-git-send-email-akinobu.mita@gmail.com> X-Original-Sender: Akinobu.Mita@gmail.com X-Original-Authentication-Results: gmr-mx.google.com; spf=pass (google.com: domain of akinobu.mita@gmail.com designates 2607:f8b0:400e:c03::241 as permitted sender) smtp.mailfrom=akinobu.mita@gmail.com; dkim=pass header.i=@gmail.com; dmarc=pass (p=NONE dis=NONE) header.from=gmail.com Reply-To: rtc-linux@googlegroups.com Precedence: list Mailing-list: list rtc-linux@googlegroups.com; contact rtc-linux+owners@googlegroups.com List-ID: X-Spam-Checked-In-Group: rtc-linux@googlegroups.com X-Google-Group-Id: 712029733259 List-Post: , List-Help: , List-Archive: , List-Unsubscribe: , The ctrl1 register is accessed by alarm operations. But it is updated in threaded interrupt handler without acquiring rtc->ops_lock. Signed-off-by: Akinobu Mita Cc: Wolfgang Grandegger Cc: Alessandro Zummo Cc: Alexandre Belloni --- drivers/rtc/rtc-rx8025.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/drivers/rtc/rtc-rx8025.c b/drivers/rtc/rtc-rx8025.c index 561248a..e667f01 100644 --- a/drivers/rtc/rtc-rx8025.c +++ b/drivers/rtc/rtc-rx8025.c @@ -147,8 +147,10 @@ static irqreturn_t rx8025_handle_irq(int irq, void *dev_id) { struct i2c_client *client = dev_id; struct rx8025_data *rx8025 = i2c_get_clientdata(client); + struct mutex *lock = &rx8025->rtc->ops_lock; int status; + mutex_lock(lock); status = rx8025_read_reg(client, RX8025_REG_CTRL2); if (status < 0) goto out; @@ -173,6 +175,8 @@ static irqreturn_t rx8025_handle_irq(int irq, void *dev_id) } out: + mutex_unlock(lock); + return IRQ_HANDLED; }