From patchwork Tue May 21 06:16:24 2013 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jingoo Han X-Patchwork-Id: 245188 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from mail-ye0-f183.google.com (mail-ye0-f183.google.com [209.85.213.183]) (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 74D932C00B5 for ; Tue, 21 May 2013 16:16:29 +1000 (EST) Received: by mail-ye0-f183.google.com with SMTP id m4sf82859yen.0 for ; Mon, 20 May 2013 23:16:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlegroups.com; s=20120806; h=x-beenthere:x-auditid:from:to:cc:subject:date:message-id :mime-version:x-mailer:thread-index:x-brightmail-tracker :x-brightmail-tracker:dlp-filter:x-mtr:x-cfilter-loop :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:content-language; bh=+Ncex5wftq9DfHD9iu+dflPTM7ySdmend1MgA881pHU=; b=dCQ23xZ4ajEVwzCKf3RmQkZzJUA9YJP4o4jUs0UUsSlUGnhzFuQSx1ZfWRaAdLoK1W Z7+uH46L5ML2km8AXBRsJhoe5Dtcpr0IXB3BwzrI+PcG9XtZ+J08oCFNp9Fb5PVM+dLE 4AK2WtHXmrcHYC/WRdBlg5nwpD7Wuwf+wpisE0ZSbtasbyxvUz6rIcaAeVKcjbST+B+U GcUTQX3b0qNngXZXJ9mH6AJeicigp9bw+2NqIkRVRHHXZi3jPYrULMvdTfnzf5zNZBgg gvjzm0X32uhMsTA6UGqjiHH541Wb/FS4ZM9AtYUfy1f6LSqHKWmZ8gts43WF4qJ66g5l +zbg== X-Received: by 10.50.41.104 with SMTP id e8mr1376529igl.5.1369116986787; Mon, 20 May 2013 23:16:26 -0700 (PDT) X-BeenThere: rtc-linux@googlegroups.com Received: by 10.50.134.168 with SMTP id pl8ls250646igb.8.gmail; Mon, 20 May 2013 23:16:26 -0700 (PDT) X-Received: by 10.67.22.2 with SMTP id ho2mr140991pad.21.1369116986228; Mon, 20 May 2013 23:16:26 -0700 (PDT) Received: from mailout4.samsung.com (mailout4.samsung.com. [203.254.224.34]) by gmr-mx.google.com with ESMTP id xz4si247157pac.2.2013.05.20.23.16.25 for ; Mon, 20 May 2013 23:16:26 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of jg1.han@samsung.com designates 203.254.224.34 as permitted sender) client-ip=203.254.224.34; Received: from epcpsbgr2.samsung.com (u142.gpu120.samsung.co.kr [203.254.230.142]) by mailout4.samsung.com (Oracle Communications Messaging Server 7u4-24.01 (7.0.4.24.0) 64bit (built Nov 17 2011)) with ESMTP id <0MN400J71XEUK2Q0@mailout4.samsung.com> for rtc-linux@googlegroups.com; Tue, 21 May 2013 15:16:25 +0900 (KST) Received: from epcpsbgm1.samsung.com ( [203.254.230.49]) by epcpsbgr2.samsung.com (EPCPMTA) with SMTP id 50.3A.08825.8311B915; Tue, 21 May 2013 15:16:24 +0900 (KST) X-AuditID: cbfee68e-b7f276d000002279-da-519b1138663a Received: from epmmp1.local.host ( [203.254.227.16]) by epcpsbgm1.samsung.com (EPCPMTA) with SMTP id 37.10.16109.8311B915; Tue, 21 May 2013 15:16:24 +0900 (KST) Received: from DOJG1HAN03 ([12.23.120.99]) by mmp1.samsung.com (Oracle Communications Messaging Server 7u4-24.01 (7.0.4.24.0) 64bit (built Nov 17 2011)) with ESMTPA id <0MN400GOUXFCIT10@mmp1.samsung.com>; Tue, 21 May 2013 15:16:24 +0900 (KST) From: Jingoo Han To: 'Andrew Morton' Cc: linux-kernel@vger.kernel.org, 'Alessandro Zummo' , rtc-linux@googlegroups.com, 'Jingoo Han' Subject: [rtc-linux] [PATCH 1/8] rtc: rtc-ds1307: use devm_*() functions Date: Tue, 21 May 2013 15:16:24 +0900 Message-id: <000201ce55ea$b87581e0$296085a0$@samsung.com> MIME-version: 1.0 X-Mailer: Microsoft Outlook 14.0 Thread-index: Ac5V6q1hWLOAZwCWQPevxk3gAurlMQ== X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFjrAIsWRmVeSWpSXmKPExsVy+t8zQ11LwdmBBtsZLZZcvMpuMWf9GjaL ywsvsVpc3jWHzWJ/ZwejA6vHnokn2TxOzPjN4tG3ZRWjx/R5P5k8Pm+SC2CN4rJJSc3JLEst 0rdL4Mr4vmQ6S8F5uYpXS7qYGxhvincxcnJICJhITP67nx3CFpO4cG89WxcjF4eQwDJGifd/ f7PDFM2b+okJIrGIUeLf7UlQVb8YJX7NmMIKUsUmoCbx5cthoA4ODhEBfYm2Fg2QGmaBXkaJ M727wSYJC9hIfJlyjxHEZhFQlfgyYz+YzStgKTFn+2xmCFtQ4sfkeywgNrOAlsT6nceZIGx5 ic1r3jJDXKQgsePsa7BeEQE9ifbPjxghakQk9r14xwiyWELgGLvEolm9rBDLBCS+TT7EAnKc hICsxKYDUHMkJQ6uuMEygVFsFpLVs5CsnoVk9SwkKxYwsqxiFE0tSC4oTkovMtIrTswtLs1L 10vOz93ECIm9vh2MNw9YH2JMBlo/kVlKNDkfGLt5JfGGxmZGFqYmpsZG5pZmpAkrifOqtVgH CgmkJ5akZqemFqQWxReV5qQWH2Jk4uCUamDM5vmx79Jit4WRDvt8Z3Ztmq8Wd8HEd76GfLTP 462bMkXb2uICT1Q5q/r6P1RcHKxQcNa2PubZx2d8P5p8Lb/rMgmFWV784rpBqH3LM8ZZK88s Sp5kXSE2/8nPXZMCV0Q2tkxR5FS/6XvMs/A+/9q/cX9XvVtcEcAsfFvUVChTlb/8y8mqVzuU WIozEg21mIuKEwElTVCj0wIAAA== X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFprHKsWRmVeSWpSXmKPExsVy+t9jAV0LwdmBBn2PLCyWXLzKbjFn/Ro2 i8sLL7FaXN41h81if2cHowOrx56JJ9k8Tsz4zeLRt2UVo8f0eT+ZPD5vkgtgjWpgtMlITUxJ LVJIzUvOT8nMS7dV8g6Od443NTMw1DW0tDBXUshLzE21VXLxCdB1y8wB2q6kUJaYUwoUCkgs LlbSt8M0ITTETdcCpjFC1zckCK7HyAANJKxjzPi+ZDpLwXm5ildLupgbGG+KdzFyckgImEjM m/qJCcIWk7hwbz1bFyMXh5DAIkaJf7cnQTm/GCV+zZjCClLFJqAm8eXLYfYuRg4OEQF9ibYW DZAaZoFeRokzvbvZQWqEBWwkvky5xwhiswioSnyZsR/M5hWwlJizfTYzhC0o8WPyPRYQm1lA S2L9zuNMELa8xOY1b5khLlKQ2HH2NViviICeRPvnR4wQNSIS+168Y5zAKDALyahZSEbNQjJq FpKWBYwsqxhFUwuSC4qT0nMN9YoTc4tL89L1kvNzNzGCY/uZ1A7GlQ0WhxgFOBiVeHgFDGcF CrEmlhVX5h5ilOBgVhLh/d4MFOJNSaysSi3Kjy8qzUktPsSYDPTpRGYp0eR8YNrJK4k3NDYx M7I0MrMwMjE3J01YSZz3QKt1oJBAemJJanZqakFqEcwWJg5OqQbG/GgrTuvLU6M6++etrD5x OGSmxLOgCrt2rZMvrwSZ63lL+zM/O3Gau/jb+aSz1xq17Y493nD9lexTI3Yp5e/iUw+V/k1/ utciUuf83rmZszr+FxjZ+4YYaee3hqwKmzVb2fPz8oZyDbE2+dbJuyMWbtOa88nCbeW3n+w1 6aYL/hx4KfxgvZ2zEktxRqKhFnNRcSIAmu/+EzEDAAA= DLP-Filter: Pass X-MTR: 20000000000000000@CPGS X-CFilter-Loop: Reflected X-Original-Sender: jg1.han@samsung.com X-Original-Authentication-Results: gmr-mx.google.com; spf=pass (google.com: best guess record for domain of jg1.han@samsung.com designates 203.254.224.34 as permitted sender) smtp.mail=jg1.han@samsung.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: , Content-type: text/plain; charset=ISO-8859-1 Content-language: ko Use devm_*() functions to make cleanup paths simpler. Signed-off-by: Jingoo Han --- drivers/rtc/rtc-ds1307.c | 43 +++++++++++++++++-------------------------- 1 file changed, 17 insertions(+), 26 deletions(-) diff --git a/drivers/rtc/rtc-ds1307.c b/drivers/rtc/rtc-ds1307.c index b53992a..ca18fd1 100644 --- a/drivers/rtc/rtc-ds1307.c +++ b/drivers/rtc/rtc-ds1307.c @@ -683,7 +683,7 @@ static int ds1307_probe(struct i2c_client *client, && !i2c_check_functionality(adapter, I2C_FUNC_SMBUS_I2C_BLOCK)) return -EIO; - ds1307 = kzalloc(sizeof(struct ds1307), GFP_KERNEL); + ds1307 = devm_kzalloc(&client->dev, sizeof(struct ds1307), GFP_KERNEL); if (!ds1307) return -ENOMEM; @@ -715,7 +715,7 @@ static int ds1307_probe(struct i2c_client *client, if (tmp != 2) { dev_dbg(&client->dev, "read error %d\n", tmp); err = -EIO; - goto exit_free; + goto exit; } /* oscillator off? turn it on, so clock can tick. */ @@ -754,7 +754,7 @@ static int ds1307_probe(struct i2c_client *client, if (tmp != 2) { dev_dbg(&client->dev, "read error %d\n", tmp); err = -EIO; - goto exit_free; + goto exit; } /* oscillator off? turn it on, so clock can tick. */ @@ -798,7 +798,7 @@ static int ds1307_probe(struct i2c_client *client, if (tmp != 2) { dev_dbg(&client->dev, "read error %d\n", tmp); err = -EIO; - goto exit_free; + goto exit; } /* correct hour */ @@ -826,7 +826,7 @@ read_rtc: if (tmp != 8) { dev_dbg(&client->dev, "read error %d\n", tmp); err = -EIO; - goto exit_free; + goto exit; } /* @@ -868,7 +868,7 @@ read_rtc: if (tmp < 0) { dev_dbg(&client->dev, "read error %d\n", tmp); err = -EIO; - goto exit_free; + goto exit; } /* oscillator fault? clear flag, and warn */ @@ -927,13 +927,13 @@ read_rtc: bin2bcd(tmp)); } - ds1307->rtc = rtc_device_register(client->name, &client->dev, + ds1307->rtc = devm_rtc_device_register(&client->dev, client->name, &ds13xx_rtc_ops, THIS_MODULE); if (IS_ERR(ds1307->rtc)) { err = PTR_ERR(ds1307->rtc); dev_err(&client->dev, "unable to register the class device\n"); - goto exit_free; + goto exit; } if (want_irq) { @@ -942,7 +942,7 @@ read_rtc: if (err) { dev_err(&client->dev, "unable to request IRQ!\n"); - goto exit_irq; + goto exit; } device_set_wakeup_capable(&client->dev, 1); @@ -951,11 +951,12 @@ read_rtc: } if (chip->nvram_size) { - ds1307->nvram = kzalloc(sizeof(struct bin_attribute), - GFP_KERNEL); + ds1307->nvram = devm_kzalloc(&client->dev, + sizeof(struct bin_attribute), + GFP_KERNEL); if (!ds1307->nvram) { err = -ENOMEM; - goto exit_nvram; + goto exit; } ds1307->nvram->attr.name = "nvram"; ds1307->nvram->attr.mode = S_IRUGO | S_IWUSR; @@ -965,21 +966,15 @@ read_rtc: ds1307->nvram->size = chip->nvram_size; ds1307->nvram_offset = chip->nvram_offset; err = sysfs_create_bin_file(&client->dev.kobj, ds1307->nvram); - if (err) { - kfree(ds1307->nvram); - goto exit_nvram; - } + if (err) + goto exit; set_bit(HAS_NVRAM, &ds1307->flags); dev_info(&client->dev, "%zu bytes nvram\n", ds1307->nvram->size); } return 0; -exit_nvram: -exit_irq: - rtc_device_unregister(ds1307->rtc); -exit_free: - kfree(ds1307); +exit: return err; } @@ -992,13 +987,9 @@ static int ds1307_remove(struct i2c_client *client) cancel_work_sync(&ds1307->work); } - if (test_and_clear_bit(HAS_NVRAM, &ds1307->flags)) { + if (test_and_clear_bit(HAS_NVRAM, &ds1307->flags)) sysfs_remove_bin_file(&client->dev.kobj, ds1307->nvram); - kfree(ds1307->nvram); - } - rtc_device_unregister(ds1307->rtc); - kfree(ds1307); return 0; }