Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751325AbcDTUHB (ORCPT ); Wed, 20 Apr 2016 16:07:01 -0400 Received: from mail-bl2on0113.outbound.protection.outlook.com ([65.55.169.113]:61760 "EHLO na01-bl2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751151AbcDTUHA (ORCPT ); Wed, 20 Apr 2016 16:07:00 -0400 Authentication-Results: stgolabs.net; dkim=none (message not signed) header.d=none;stgolabs.net; dmarc=none action=none header.from=hpe.com; Message-ID: <5717E15B.6090006@hpe.com> Date: Wed, 20 Apr 2016 16:06:51 -0400 From: Waiman Long User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:10.0.12) Gecko/20130109 Thunderbird/10.0.12 MIME-Version: 1.0 To: Davidlohr Bueso CC: "mingo@kernel.org" , "peterz@infradead.org" , "linux-kernel@vger.kernel.org" , Davidlohr Bueso Subject: Re: [PATCH -tip v3 3/3] locking/pvqspinlock: Robustify init_qspinlock_stat() References: <1460961103-24953-1-git-send-email-dave@stgolabs.net> <1460961103-24953-3-git-send-email-dave@stgolabs.net> <20160418161650.GA25176@linux-uzut.site> <20160420041725.GC3472@linux-uzut.site> In-Reply-To: <20160420041725.GC3472@linux-uzut.site> Content-Type: text/plain; charset="ISO-8859-1"; format=flowed Content-Transfer-Encoding: 7bit X-Originating-IP: [72.71.243.67] X-ClientProxiedBy: BLUPR01CA048.prod.exchangelabs.com (10.160.23.38) To AT5PR84MB0307.NAMPRD84.PROD.OUTLOOK.COM (10.162.138.29) X-MS-Office365-Filtering-Correlation-Id: 626a2c91-5ab4-452e-0de5-08d369575358 X-Microsoft-Exchange-Diagnostics: 1;AT5PR84MB0307;2:SknpKyDVprJEB5FRSQnE0E91JO3Ch1aFsQtzN7l2pQJ7gZQSIKejTQxcIkvxisGUGv6iwMZDuIU2pE75HCr9pnGtGFAD7K64KrHTSnvrsVR2lmFD+2lwq3/yOGohFbhWGZ9O0ArdbyWJY5hNqVO3RAn34a2d95gwSuBpBPPVR1lk6It1CB2CHeKiyUiBVTuQ;3:hDt0Ixtt1kbxFneFruDMv6y7S5PrhJ6qQKb8HlYv44StR3hNMkZaL8hiRZPmDJXaK0Sn+8rh0KAcqTbtqLJCECeMQIbFm2tCx7f7NXcOwmVUVllk4iSvoefBW+fYJ51z;25:xxYD//mcvZ+4Y1ZwUeQs4vdPrvLJbLZ50DsqyF927px6/fbU87S1OyixVwXW/1ptBR7nUa813scyPR/4eVQ+ARskwYLvgw1eltSJidYJXIGWQyaQZJWC7y9a1YEK1vt8o4XSq3FPW7rs9ebGXTDrZa0RcBLGfXbG8Rm4FlCfQCcnkqrP+bJIuK8kISTXAhI2f+Mk09xLZ574rgzW4/b+ge7uvupOQIIug7yGtEgxbJQWQwFE3zupMfq4VsDgzv9ajiAVRXsCKpi+XfGcdvku7IeANAIF2urHymWCE3pmTBvpC9nSVaYMRyu23//nHV364yWfdoAVgU2xPpVKWlBaNDfue6i1boezbW+HrGdtB1XZlMMwGLPoeNL36zwoQCK/y+rrLmGt/b8mcoDitk4WA7oz1CVlR7puHeKCI0vkfNHahk16hqt0ghhngpWRBIANdrhccYZIJEuFUDl0dDRjqOcyahgEfSlq+4CCab3R0xDR1HBsp2PxfSpWx1ZTbi0/5mFTBBpTZfXQSGiDczFLARhx88PBWkousFoYm7fpNAOB9HwIqXwtw5aXttg1i2iqH3rk9RXQW03fHQhacwPYcBAx/6n5MdgyYwKeovbCFkesSBBVutWyCrVDnt/zTBgp X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:AT5PR84MB0307; X-Microsoft-Exchange-Diagnostics: 1;AT5PR84MB0307;20:5OMgRwuYONHa697Tt0rCQHiTIpoetyEbKlbNF2yo8kekAinVPpAFg5nDt9PkntuuYvN2AIfMhy4TWDfz+tl+JmEbRCPT8bBViEW+Fy9Alo/BqYnXcppI2rzVijWafMhhvRjvSQ9R4esnZ1wl3XezAWPEcIFTiK6/RRFiK8FaVGyYNM9ODKevj/t9VOgwgit9P6KwWw5ecr9Y4urQXtMA4e6rvGVVskqnX+GdtlbzuiyjXAaJjzsnOch13KmsY6OleGG8rvO2t6avz3Om/VOgJZGBhmC+ZpC0R6zJlYUJNp3sLECoA2jNGhA7HbHMUOPBGsEjoYS4zJUuh4x39KyskQ==;4:lJseKP/uxBoOfqiocIMSEg5UIzcFZY70Wh/R6erix8zi/PKQv4Li9yIwJdQfWXP5VVWfC7erVnTZz89AwKRdZrAvvoWrpPjaD04m3b4+XtWnpzgF3+wVwQZqV2RSjdP3f522VXCPpPPLM+yvTikJmYVz6/FPxTen6CnNc3xpxwEBLc7EamoKz3KLMTuVvSNJTGu/6eBiJKtIyk6ttNEBG4Gz/Ir/uVsu3KmuHfYCkiHMXtmzSMvuxD8CzKirMZIsrJWL9n5WxoUy1Qt3pag4hhJ8aaWodZzFZ3XaH9EQ/O4HpI3/fZkv5OqVdE5EQHyBFc9sOTalr0ynwAuvu0A0gybprsgbkbmjH+qKuRtyJEHAo6rf/jJIASKEvZhoL4eP4HjnCkLsI4Ug5sBxeUTnFLz68c0+T9TqU8pclDfDDBo= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(9101521026)(601004)(2401047)(8121501046)(5005006)(10201501046)(3002001)(6055026);SRVR:AT5PR84MB0307;BCL:0;PCL:0;RULEID:;SRVR:AT5PR84MB0307; X-Forefront-PRVS: 0918748D70 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10019020)(4630300001)(6049001)(6009001)(24454002)(377454003)(586003)(2950100001)(19580395003)(23756003)(19580405001)(4326007)(5004730100002)(92566002)(230700001)(4001350100001)(110136002)(189998001)(86362001)(6116002)(3846002)(47776003)(1096002)(80316001)(117156001)(77096005)(33656002)(36756003)(2906002)(5008740100001)(93886004)(65956001)(50466002)(66066001)(50986999)(65816999)(54356999)(76176999)(87266999)(65806001)(42186005)(64126003)(81166005);DIR:OUT;SFP:1102;SCL:1;SRVR:AT5PR84MB0307;H:[192.168.142.160];FPR:;SPF:None;MLV:sfv;LANG:en; X-Microsoft-Exchange-Diagnostics: =?iso-8859-1?Q?1;AT5PR84MB0307;23:BCMZoE4kFUenkyI0dE5lDZUZ2bdH0i0Fn+OUswF?= =?iso-8859-1?Q?4ZKQ2NBfCORsnr9jGYfardoN1ZGiUc2lEQQIi5qqBoq90S90Vd0QjV5k9p?= =?iso-8859-1?Q?D229gA4oL7qxll23mluWuBXvED7LDEofIgR/Rq+O3yOZWbhzXISIrkEVed?= =?iso-8859-1?Q?je0tjQKUr8D0ELssM8/OaMYWatVYhSTSdV07vcbhlFtvpP66gBNYDbIVCo?= =?iso-8859-1?Q?cerVg6k1KAJ3K8sqgc18xjSMCqKUUnjgDCW+dUCE4vAYiemRnU+blmZIMc?= =?iso-8859-1?Q?xiNYVMR/1Bzp1bTtR2y6lrXToAxsrQvYQRa5EPejsP6Ng9rAgx/riUlthI?= =?iso-8859-1?Q?5nG7OhmX5NQTADT1aycJDCp0NMNIxbq20T1tUAz9Zf1BNlOI6z4dyq2R6u?= =?iso-8859-1?Q?8hfBWK90eRcSXKn0TFO8vMSEptA3/lE+pWCcIt/EE/RBUVpxVBKz7ks7fQ?= =?iso-8859-1?Q?bWmjtx4upZAY3J4LDrQEFEl2V7B8+NNAhychpcxKP95s4MSzP9PGpcKQ9H?= =?iso-8859-1?Q?E074C+FJ9JqnzrnAz9ejb/6hHELTbzmEoQeySj3xII7LNUNYJVLFbtHC4D?= =?iso-8859-1?Q?iQzueA9DagIZBm9F/VWjM8D0iV0e443d5NwmoY0miThLSQ0NDsND92UUDf?= =?iso-8859-1?Q?m1BVFFYB/VqadLj5KK3HD7rbRXfcz8TZfKWCTH6jYkASC2Lqxlh/wuucpi?= =?iso-8859-1?Q?6IVNsVzDRJVwztNELZhUhh890dlKoKQG1eQ5EYeNne5EgeHit83cWItkP5?= =?iso-8859-1?Q?8FZBT4glnSn3ETeyX/hGoUpUxpbzIDOOOP/dmXk8ojIh4ELtV+thtXmS4f?= =?iso-8859-1?Q?EAypPhZRzTNghJyVQDixcoWsLmtskeaXHR2Uc3Ip0DdCXsRhVc+KmYFic2?= =?iso-8859-1?Q?zFcuXsS9xNS/nJsjAdMSvmOBTDTn/SnTsvECUj5tocl1nPEHYhgKA9fBUD?= =?iso-8859-1?Q?VAS/7izswj8lLHKQ9KBrLShA1jF+/kaFTvNWnbMfbaz1I5fNuUsu36/qQn?= =?iso-8859-1?Q?K2QwHgbXI4esrptYn9fSday+GSfsxKMlGRVQONqTJp5s14M8+5Cg7uiFlj?= =?iso-8859-1?Q?05fBO5N2yPef6xX9gFyc+NwHuSwD///kRLZX3WEzti3e6SnUEKmnLey0LU?= =?iso-8859-1?Q?VsuSoXKaozj00OMy+gXQMCDsPEw=3D=3D?= X-Microsoft-Exchange-Diagnostics: 1;AT5PR84MB0307;5:w4sL+z9EPN+q2VwMRyorz+vnG/6rgDhgbfyJ6kBKFkRf0/irY15icNE1GGwPuGtjofdJSdLWxmy1YrHz0S8hxZr006bxmUUtwJHyQSj5Ss5jGf1/meCZ6GMvX6tzYc5GfU4hajEWU3KXsojPZWWnm4yzFDhZ6aDh2/dHIbr/45Pginsz481UKnGYsSnt8+zY;24:JoiHz3RKncgbOwRHlKJpCyalf4uMPLRZX33TWv2X1eGU5eZd7r8pPEV8anK8kZ5BY9xSybDhsLbExJxaLeF82G28p4vwt1zEpijZRM9699M=;7:pGtxYhxVXVi3CpGQ1uRMA/FQukMEzUT3lZZ8UTfXipPM5uWljtb2bXFU1p2WzWzHbsl0r8pRME1WHnMpDm6t8H/eGKDdBZdrdp/HfeVSceLa8TzxhBPgW7Vf83ly/+G7xAKDXNcxjOKdAE8idr9XHz/pydI7VmlcYww33PrCAMo8Yla2yuxRmg+lCbWIiVZ1kLpxUPqxNf5XlCouhCwIgt9OMedzrw3xG30DAYtoZas= SpamDiagnosticOutput: 1:23 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: hpe.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Apr 2016 20:06:56.7283 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: AT5PR84MB0307 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2042 Lines: 59 On 04/20/2016 12:17 AM, Davidlohr Bueso wrote: > locking/pvqspinlock: Robustify init_qspinlock_stat() > > Specifically around the debugfs file creation calls, > I have no idea if they could ever possibly fail, but > this is core code (debug aside) so lets at least > check the return value and inform anything fishy. > > Signed-off-by: Davidlohr Bueso > --- > kernel/locking/qspinlock_stat.h | 22 ++++++++++++++-------- > 1 file changed, 14 insertions(+), 8 deletions(-) > > diff --git a/kernel/locking/qspinlock_stat.h > b/kernel/locking/qspinlock_stat.h > index 72722334237a..22e025309845 100644 > --- a/kernel/locking/qspinlock_stat.h > +++ b/kernel/locking/qspinlock_stat.h > @@ -212,10 +212,8 @@ static int __init init_qspinlock_stat(void) > struct dentry *d_qstat = debugfs_create_dir("qlockstat", NULL); > int i; > > - if (!d_qstat) { > - pr_warn("Could not create 'qlockstat' debugfs directory\n"); > - return 0; > - } > + if (!d_qstat) > + goto out; > > /* > * Create the debugfs files > @@ -225,12 +223,20 @@ static int __init init_qspinlock_stat(void) > * performance. > */ > for (i = 0; i < qstat_num; i++) > - debugfs_create_file(qstat_names[i], 0400, d_qstat, > - (void *)(long)i, &fops_qstat); > + if (!debugfs_create_file(qstat_names[i], 0400, d_qstat, > + (void *)(long)i, &fops_qstat)) > + goto fail_undo; > + > + if (!debugfs_create_file(qstat_names[qstat_reset_cnts], 0200, > d_qstat, > + (void *)(long)qstat_reset_cnts, &fops_qstat)) > + goto fail_undo; > > - debugfs_create_file(qstat_names[qstat_reset_cnts], 0200, d_qstat, > - (void *)(long)qstat_reset_cnts, &fops_qstat); > return 0; > +fail_undo: > + debugfs_remove_recursive(d_qstat); > +out: > + pr_warn("Could not create 'qlockstat' debugfs entries\n"); > + return -ENOMEM; > } > fs_initcall(init_qspinlock_stat); > Reviewed-by: Waiman Long