From mboxrd@z Thu Jan 1 00:00:00 1970 From: Kuninori Morimoto Date: Tue, 15 Dec 2015 01:17:40 +0000 Subject: [PATCH 2/8 v5] thermal: rcar: check every rcar_thermal_update_temp() return value Message-Id: <87a8pcqzqq.wl%kuninori.morimoto.gx@renesas.com> List-Id: References: <87d1u8qzsy.wl%kuninori.morimoto.gx@renesas.com> In-Reply-To: <87d1u8qzsy.wl%kuninori.morimoto.gx@renesas.com> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: Simon , Zhang Rui , Eduardo Valentin Cc: Geert Uytterhoeven , Magnus , linux-sh@vger.kernel.org, linux-pm@vger.kernel.org, linux-kernel@vger.kernel.org, "devicetree@vger.kernel.org" From: Kuninori Morimoto Every rcar_thermal_update_temp() return value will be checked. And also, rcar_thermal_get_temp() always call rcar_thermal_update_temp() by this patch. Signed-off-by: Kuninori Morimoto --- v4 -> v5 - rcar_thermal_get_temp() calls rcar_thermal_update_temp() without checking rcar_has_irq_support() drivers/thermal/rcar_thermal.c | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/drivers/thermal/rcar_thermal.c b/drivers/thermal/rcar_thermal.c index ac8d1eb..0b19743 100644 --- a/drivers/thermal/rcar_thermal.c +++ b/drivers/thermal/rcar_thermal.c @@ -75,12 +75,6 @@ struct rcar_thermal_priv { #define rcar_has_irq_support(priv) ((priv)->common->base) #define rcar_id_to_shift(priv) ((priv)->id * 8) -#ifdef DEBUG -# define rcar_force_update_temp(priv) 1 -#else -# define rcar_force_update_temp(priv) 0 -#endif - static const struct of_device_id rcar_thermal_dt_ids[] = { { .compatible = "renesas,rcar-thermal", }, {}, @@ -209,9 +203,11 @@ err_out_unlock: static int rcar_thermal_get_temp(struct thermal_zone_device *zone, int *temp) { struct rcar_thermal_priv *priv = rcar_zone_to_priv(zone); + int ret; - if (!rcar_has_irq_support(priv) || rcar_force_update_temp(priv)) - rcar_thermal_update_temp(priv); + ret = rcar_thermal_update_temp(priv); + if (ret < 0) + return ret; mutex_lock(&priv->lock); *temp = MCELSIUS((priv->ctemp * 5) - 65); @@ -305,11 +301,15 @@ static void rcar_thermal_work(struct work_struct *work) { struct rcar_thermal_priv *priv; int cctemp, nctemp; + int ret; priv = container_of(work, struct rcar_thermal_priv, work.work); rcar_thermal_get_temp(priv->zone, &cctemp); - rcar_thermal_update_temp(priv); + ret = rcar_thermal_update_temp(priv); + if (ret < 0) + return; + rcar_thermal_irq_enable(priv); rcar_thermal_get_temp(priv->zone, &nctemp); @@ -427,7 +427,9 @@ static int rcar_thermal_probe(struct platform_device *pdev) mutex_init(&priv->lock); INIT_LIST_HEAD(&priv->list); INIT_DELAYED_WORK(&priv->work, rcar_thermal_work); - rcar_thermal_update_temp(priv); + ret = rcar_thermal_update_temp(priv); + if (ret < 0) + goto error_unregister; priv->zone = thermal_zone_device_register("rcar_thermal", 1, 0, priv, -- 1.9.1 From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S933123AbbLOBRs (ORCPT ); Mon, 14 Dec 2015 20:17:48 -0500 Received: from relmlor3.renesas.com ([210.160.252.173]:51520 "EHLO relmlie2.idc.renesas.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S932795AbbLOBRp (ORCPT ); Mon, 14 Dec 2015 20:17:45 -0500 X-IronPort-AV: E=Sophos;i="5.20,429,1444662000"; d="scan'";a="201809380" Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=kuninori.morimoto.gx@renesas.com; Message-ID: <87a8pcqzqq.wl%kuninori.morimoto.gx@renesas.com> From: Kuninori Morimoto Subject: [PATCH 2/8 v5] thermal: rcar: check every rcar_thermal_update_temp() return value User-Agent: Wanderlust/2.15.9 Emacs/24.3 Mule/6.0 MIME-Version: 1.0 (generated by SEMI-EPG 1.14.7 - "Harue") To: Simon , Zhang Rui , Eduardo Valentin CC: Geert Uytterhoeven , Magnus , , , , "devicetree@vger.kernel.org" In-Reply-To: <87d1u8qzsy.wl%kuninori.morimoto.gx@renesas.com> References: <87d1u8qzsy.wl%kuninori.morimoto.gx@renesas.com> Content-Type: text/plain; charset="US-ASCII" Date: Tue, 15 Dec 2015 01:17:40 +0000 X-Originating-IP: [211.11.155.144] X-ClientProxiedBy: HKXPR03CA0034.apcprd03.prod.outlook.com (10.141.129.24) To SIXPR06MB1023.apcprd06.prod.outlook.com (25.160.240.28) X-Microsoft-Exchange-Diagnostics: 1;SIXPR06MB1023;2:uIJrNzxvZ25zJa4ndpWIRQIb24t9uA9/HE3n4Kjve3tYEHZA5/pDuPkgJ2DzDF6QDWh4+q4vEbMrONrUEE4zA0JlRmiGdt7//MrrycKacSY5aGdkcSpzg/8xrKXnnc5IqPjOk5mRi3cFl31XlgmZbQ==;3:hMBYfP4Nimz+i0wMN/D57d49QxJkdgmEbFC2rV5k3FK099AJskSy/fOykPL4d+EmYmaHZqNcYyt3FT95upAvmAZdB1XONplhKVh6HjPws93axp9OHMuRW7p6zs+YhrHP;25:IE3mUTUGf5GGXRbyM3yJHladMdGHxsUnkQ6vqjD2wn8E5ViSI3Rm2d0jC2mZCDHrYAGQx4dQQSVo00wFs3TQM79008P//Z9P6dZS5x3Jj3nA92+K875wAIb6aM7i9YBcz+xaNJA/9EbqEhnUxp45DeA8ZjfPwGqj2n3do374RLV8PXblPSmt3L1QLbeco8h/ZyUTpFED+HKUMqjrzatMEIff2TxDSlL1HMfIqTVodGjAOnAf35VSG0aHgb3RoVK3S/XXxo/rNqUm6JMjJggCFA== X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:SIXPR06MB1023; X-Microsoft-Exchange-Diagnostics: 1;SIXPR06MB1023;20:Edyv/QDiz57VofACDWRCoZrpiH/2tttwY64YJCBGXXcpq+Nwr33TKgLp5dDeBfahvGa7F/bFidG2b1hr62D5GKqcJNvt8r5oa1jHw2KS6uFy4SeejDVpQLZIK2iBuGe2SR94J8RunlgNjR6Oce2u7w6h8MMG+JagKoEc1QzQwiEdy1oZAkwU4rtlsLlqmFXltOMl1Hhdhbcv102Hk9llFT/HMWz01z1/oHF4wHo0CqII2jKc6nOBlzqFDPs8vOZ0sIY4H1QssbGveOpfnMWq7GLlPQC6k5iYaCYZHle/kUxmx1bGG5J56Enr4WxZNDfDeHPpYDw9T9xxj4pCW7sabTQTfR89eZ5g8YUedDaRnqDMt7iimVfr8Cxp3bMOny8TPaQJliF3p3C4dJKj7VrsfHfM4JkIzWPBjoUm6+3/ldkZClRFdWYkWuLoFJJBVtw5nX/HQhNw+I0H9yVBj2/y9DoMHlJiVd2vosn5qWkQfXmwPw+xI+VyRZr6rs8ZPpqZ;4:k+i2qpbo1sDRdqKVqqrhd3WLO+xSua0dKC3+zoBI/iNK3FcSicm9ey22EZSLLHPewfdzMp7ClS/TWkNoTlI0o/Oqy9ar2G7IVxWDiTkRiLRFPtLV8wgJgwJR5NaM6V3ajHHZi8KY8i++NB2nJln7EHNDqlNXJrhvknvlb8sC+3YFzL5FzVfy/6DECYkuHMLzGL67AaKDnxaXylXISEW7butZ4iHPV1IS34r1p6X/j2cEL7dEoqOs8wgtDUAjuRZVgDqB9QkTvI0SZSQQgsPu0Zr/ETmpnHAcA6aewLuXRGpwj6YtzQEFayb8sQo54Ho4bD2B55tpInkoc6Mc4qFRZFjhKYq5WUlJZbzBBKP5Zm8lUTBpilZX1Vbr+2X6lkxJgYk1oTIPRLwa59cJBjAg2o6JizcKKQMi+TQomaK3yYq8BQ6+qYbqPwK9Fqyw+L0n X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(85106069007906); X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(601004)(2401047)(8121501046)(520078)(5005006)(3002001)(10201501046);SRVR:SIXPR06MB1023;BCL:0;PCL:0;RULEID:;SRVR:SIXPR06MB1023; X-Forefront-PRVS: 07915F544A X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10019020)(6009001)(199003)(189002)(5001770100001)(66066001)(92566002)(54356999)(46406003)(5008740100001)(36756003)(87976001)(47776003)(586003)(1096002)(6116002)(122386002)(3846002)(40100003)(23726003)(50986999)(19580395003)(105586002)(69596002)(81156007)(50466002)(106356001)(53416004)(5001960100002)(189998001)(77096005)(229853001)(2950100001)(5004730100002)(19580405001)(83506001)(76176999)(4001350100001)(42186005)(86362001)(33646002)(97736004)(101416001);DIR:OUT;SFP:1102;SCL:1;SRVR:SIXPR06MB1023;H:morimoto-PC.renesas.com;FPR:;SPF:None;PTR:InfoNoRecords;A:1;MX:1;LANG:en; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;SIXPR06MB1023;23:JmdvPOBQ9YaoULtsBaq/pXWAeHhFeAWMP9OtgPrc1?= =?us-ascii?Q?zyoI0SSDC8JkE32rmLr+QerW5egk5jcgDey5ToEjvRg60r0cqdom3ALlfveC?= =?us-ascii?Q?RwDvTzWIvN0s1c4kKlBkCBMWp0JxiERsZqOgx5HnroDhFLWhFd8uaj2Zj8AM?= =?us-ascii?Q?i7zsZ9GY1xkbWJy4qnceu3hV0yTR5ZHRJGlkPF1Dg3VUMrjh/T7DY6W3S3Am?= =?us-ascii?Q?6Y+ghAQUiBWo0uSIpTTR0cr6DhgEdmE/cceV2y4RG3fq7kAx+Xbz252iF7vd?= =?us-ascii?Q?4pZfb/D3Nxu8yRiL4QYkg7rDmGyWAHtKnoj38XXXH5fRBKFdbc3NVu0LHlQ3?= =?us-ascii?Q?wqXAImhV31NJ/O13Z2ma/mGcIXQvhG1nwwMHyHR351BhaPQJe6k440Esq85g?= =?us-ascii?Q?QE1dHMNhXmVA9L4F3SktPTOUgx65WKodXJ31K+vYQcEgz83bhCyK6Xlfuthw?= =?us-ascii?Q?iL5FQzSVBMv5dE9yKOanQ086CTsuMjlu/b/75dTh2uAFkofeWOour5g3V5Kh?= =?us-ascii?Q?r8jdvt/yoSxzuWldVT081rSFPKP0iWnxa8C0emnqLIkDY8UYWOUNl5kqDKRQ?= =?us-ascii?Q?17ymn4ozKKPEPtUPKH9nvNmvsnIi1YxZNEzgL01tr+zdHsqNDC+1XEPVb6mE?= =?us-ascii?Q?qdfMOz+zus1I+TYJwopmpd8Hp8ICtrMGbXULllk/5H+Y9OrhdyCewNUFKFCj?= =?us-ascii?Q?8WcMWJkZzNWHzMRMHkwa1DDgFCoYel9Epk0RBsut15jufq+MFeUGswwsRkcI?= =?us-ascii?Q?5pTIUe3/klBbZKc3R1x7URR1hz+lV+c7KSWg2CrZH3dgswLBSSX/FOjKuB8L?= =?us-ascii?Q?LQE5SJSGRkMSqrSudd+qBjwD6W4uGMffaRPWJUY5J0xdht5/KWJBToeLqa1J?= =?us-ascii?Q?0iV3MiEMXcIchF3Srw1W8dADxO+7+X9rXVY6yEBbZx9kRqFmZQAuRg5eC8xt?= =?us-ascii?Q?wRNIFpEEjJ+ZYfYkthL2If8Mt5LKmPwdNYl0Ysfu3rJUckndfRGvS7rKWacJ?= =?us-ascii?Q?jAoOwYJK5Vkz4tKW2AgjmJjsaZRRN5CQ3fBzDgwgxVFexA9dHnKY43TZf8Bv?= =?us-ascii?Q?+6OWn656trX4ih7jIcGWu3F6UC3A+Q+jv5lqI8P0AM67zayQIRxYQTYRBb5H?= =?us-ascii?Q?cBCJJHaSyA=3D?= X-Microsoft-Exchange-Diagnostics: 1;SIXPR06MB1023;5:Zx+IygYcUEJzd2weGF4hY0wgXeziUl3STIwqn9WM8iKoiYq+drAWpoHgNCx9jcYJrWeEK1RiEvbyhBjptwygG6IjFIPIBBKp8hpzXN4AFtSWlW25WjWJ4hbbavO6LlQx8GHurtXaFhma2JsYWs2r0w==;24:PTIAbJ3TjbtNcrvA/XcTaFvDoI56lh5TvXc7CP/h/USa3ar0NfstO+V/m8pOGmUdZKR0S/dKPOnSoXknyQTG5875b+r4/yoP/mtQbtILgPI=;20:B6icJ4mJfeePRj1pVu4TgxZI+Beza2nT6GPQ1s+4laIXcOTKZzdWyuT4JcrCDgI/XNe/nB4BLnixzTN3C6THmolKPynn3UTLDsHCDkVjWq3uknkD5Yyda1ZTH4wWCVkYSUf/t4LuAMDMOssIlhwG2hiJXJb9cNrHw8d+EG1R1Kw= SpamDiagnosticOutput: 1:23 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: renesas.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Dec 2015 01:17:40.5593 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: SIXPR06MB1023 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Kuninori Morimoto Every rcar_thermal_update_temp() return value will be checked. And also, rcar_thermal_get_temp() always call rcar_thermal_update_temp() by this patch. Signed-off-by: Kuninori Morimoto --- v4 -> v5 - rcar_thermal_get_temp() calls rcar_thermal_update_temp() without checking rcar_has_irq_support() drivers/thermal/rcar_thermal.c | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/drivers/thermal/rcar_thermal.c b/drivers/thermal/rcar_thermal.c index ac8d1eb..0b19743 100644 --- a/drivers/thermal/rcar_thermal.c +++ b/drivers/thermal/rcar_thermal.c @@ -75,12 +75,6 @@ struct rcar_thermal_priv { #define rcar_has_irq_support(priv) ((priv)->common->base) #define rcar_id_to_shift(priv) ((priv)->id * 8) -#ifdef DEBUG -# define rcar_force_update_temp(priv) 1 -#else -# define rcar_force_update_temp(priv) 0 -#endif - static const struct of_device_id rcar_thermal_dt_ids[] = { { .compatible = "renesas,rcar-thermal", }, {}, @@ -209,9 +203,11 @@ err_out_unlock: static int rcar_thermal_get_temp(struct thermal_zone_device *zone, int *temp) { struct rcar_thermal_priv *priv = rcar_zone_to_priv(zone); + int ret; - if (!rcar_has_irq_support(priv) || rcar_force_update_temp(priv)) - rcar_thermal_update_temp(priv); + ret = rcar_thermal_update_temp(priv); + if (ret < 0) + return ret; mutex_lock(&priv->lock); *temp = MCELSIUS((priv->ctemp * 5) - 65); @@ -305,11 +301,15 @@ static void rcar_thermal_work(struct work_struct *work) { struct rcar_thermal_priv *priv; int cctemp, nctemp; + int ret; priv = container_of(work, struct rcar_thermal_priv, work.work); rcar_thermal_get_temp(priv->zone, &cctemp); - rcar_thermal_update_temp(priv); + ret = rcar_thermal_update_temp(priv); + if (ret < 0) + return; + rcar_thermal_irq_enable(priv); rcar_thermal_get_temp(priv->zone, &nctemp); @@ -427,7 +427,9 @@ static int rcar_thermal_probe(struct platform_device *pdev) mutex_init(&priv->lock); INIT_LIST_HEAD(&priv->list); INIT_DELAYED_WORK(&priv->work, rcar_thermal_work); - rcar_thermal_update_temp(priv); + ret = rcar_thermal_update_temp(priv); + if (ret < 0) + goto error_unregister; priv->zone = thermal_zone_device_register("rcar_thermal", 1, 0, priv, -- 1.9.1