From patchwork Thu Jun 6 17:46:09 2013 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: cbrand@broadcom.com X-Patchwork-Id: 249510 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from mail-vb0-x23a.google.com (mail-vb0-x23a.google.com [IPv6:2607:f8b0:400c:c02::23a]) (using TLSv1 with cipher ECDHE-RSA-RC4-SHA (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority" (not verified)) by ozlabs.org (Postfix) with ESMTPS id BCF862C009D for ; Fri, 7 Jun 2013 03:45:48 +1000 (EST) Received: by mail-vb0-f58.google.com with SMTP id p12sf851599vbe.23 for ; Thu, 06 Jun 2013 10:45:43 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlegroups.com; s=20120806; h=x-beenthere:x-server-uuid:from:to:cc:subject:date:message-id :x-mailer:in-reply-to:references:mime-version:x-wss-id :x-original-sender:x-original-authentication-results:reply-to :precedence:mailing-list:list-id:x-google-group-id:list-post :list-help:list-archive:sender:list-subscribe:list-unsubscribe :content-type; bh=uSnXXkoWxllmgB0Wn0w3wBmLfLQKi/e7S1NOAcL6vIc=; b=XlMx76H9mjd35j9wJrwEI7O9i4dlNTEDhXfOZ2F7JNeRY+gkHMuBon4kfVX7lsKHy0 r1feBpMYC7V4M+049lgxt+BSL5X6fZBb4HB+Jn8V+q+qXWcSaPa/SSPDUjd4SQkeG76k b77f3yrD2tdUOXJfRVieHmbLzNAZH/nPZ4JuZ/hzlzKOvsTZyMTMnUa36FlogL1bz0QC QwNWk1BF388uelPfHQmGvb0IWuwS1chC4EaWZJWaxuCnQVDX+Bb/Z4pUYxQOsoQeuJqc FRnnqcjXlWiWTqsRTUiR15pbjUOIHaW/YT11+e8Jx30ObO3SWoDnY76Z7M352NcS/c1v +RqA== X-Received: by 10.50.20.136 with SMTP id n8mr1901560ige.5.1370540742957; Thu, 06 Jun 2013 10:45:42 -0700 (PDT) X-BeenThere: rtc-linux@googlegroups.com Received: by 10.50.40.4 with SMTP id t4ls2236303igk.9.gmail; Thu, 06 Jun 2013 10:45:42 -0700 (PDT) X-Received: by 10.66.220.165 with SMTP id px5mr4872166pac.42.1370540741988; Thu, 06 Jun 2013 10:45:41 -0700 (PDT) Received: from mms2.broadcom.com (mms2.broadcom.com. [216.31.210.18]) by gmr-mx.google.com with ESMTP id kg6si10067074pbb.1.2013.06.06.10.45.41 for ; Thu, 06 Jun 2013 10:45:41 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of chris.brand@broadcom.com designates 216.31.210.18 as permitted sender) client-ip=216.31.210.18; Received: from [10.9.208.57] by mms2.broadcom.com with ESMTP (Broadcom SMTP Relay (Email Firewall v6.5)); Thu, 06 Jun 2013 10:39:54 -0700 X-Server-Uuid: 4500596E-606A-40F9-852D-14843D8201B2 Received: from IRVEXCHSMTP2.corp.ad.broadcom.com (10.9.207.52) by IRVEXCHCAS08.corp.ad.broadcom.com (10.9.208.57) with Microsoft SMTP Server (TLS) id 14.1.438.0; Thu, 6 Jun 2013 10:45:33 -0700 Received: from mail-irva-13.broadcom.com (10.10.10.20) by IRVEXCHSMTP2.corp.ad.broadcom.com (10.9.207.52) with Microsoft SMTP Server id 14.1.438.0; Thu, 6 Jun 2013 10:45:32 -0700 Received: from lbrmn-lnxub61.ric.broadcom.com ( lbrmn-lnxub61.ric.broadcom.com [10.136.4.113]) by mail-irva-13.broadcom.com (Postfix) with ESMTP id E4FAAF2DD3; Thu, 6 Jun 2013 10:45:18 -0700 (PDT) Received: by lbrmn-lnxub61.ric.broadcom.com (Postfix, from userid 28037) id 87C3CC45442; Thu, 6 Jun 2013 10:46:17 -0700 (PDT) From: cbrand@broadcom.com To: a.zummo@towertech.it, rtc-linux@googlegroups.com, linux-kernel@vger.kernel.org cc: "Chris Brand" Subject: [rtc-linux] [PATCH] RTC: Return -EBUSY, not -EACCES when device is busy Date: Thu, 6 Jun 2013 10:46:09 -0700 Message-ID: <1370540769-2466-2-git-send-email-cbrand@broadcom.com> X-Mailer: git-send-email 1.7.5.4 In-Reply-To: <1370540769-2466-1-git-send-email-cbrand@broadcom.com> References: <1370540769-2466-1-git-send-email-cbrand@broadcom.com> MIME-Version: 1.0 X-WSS-ID: 7DAE16E01R027417913-01-01 X-Original-Sender: chris.brand@broadcom.com X-Original-Authentication-Results: gmr-mx.google.com; spf=pass (google.com: best guess record for domain of chris.brand@broadcom.com designates 216.31.210.18 as permitted sender) smtp.mail=chris.brand@broadcom.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-Google-Group-Id: 712029733259 List-Post: , List-Help: , List-Archive: Sender: rtc-linux@googlegroups.com List-Subscribe: , List-Unsubscribe: , From: Chris Brand If rtc->irq_task is non-NULL and task is NULL, they always differ, which means that in rtc_irq_set_state() and rtc_irq_set_freq(), whenever err is set to -EBUSY it will then immediately be set to -EACCES, misleading the caller as to the underlying problem. --- drivers/rtc/interface.c | 8 ++++---- 1 files changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/rtc/interface.c b/drivers/rtc/interface.c index 42bd57d..40d4032 100644 --- a/drivers/rtc/interface.c +++ b/drivers/rtc/interface.c @@ -698,9 +698,9 @@ retry: spin_lock_irqsave(&rtc->irq_task_lock, flags); if (rtc->irq_task != NULL && task == NULL) err = -EBUSY; - if (rtc->irq_task != task) + else if (rtc->irq_task != task) err = -EACCES; - if (!err) { + else { if (rtc_update_hrtimer(rtc, enabled) < 0) { spin_unlock_irqrestore(&rtc->irq_task_lock, flags); cpu_relax(); @@ -734,9 +734,9 @@ retry: spin_lock_irqsave(&rtc->irq_task_lock, flags); if (rtc->irq_task != NULL && task == NULL) err = -EBUSY; - if (rtc->irq_task != task) + else if (rtc->irq_task != task) err = -EACCES; - if (!err) { + else { rtc->irq_freq = freq; if (rtc->pie_enabled && rtc_update_hrtimer(rtc, 1) < 0) { spin_unlock_irqrestore(&rtc->irq_task_lock, flags);