Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754978AbbKQVyd (ORCPT ); Tue, 17 Nov 2015 16:54:33 -0500 Received: from mail-by2on0148.outbound.protection.outlook.com ([207.46.100.148]:6363 "EHLO na01-by2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1754946AbbKQVy2 (ORCPT ); Tue, 17 Nov 2015 16:54:28 -0500 Authentication-Results: spf=permerror (sender IP is 192.88.168.50) smtp.mailfrom=freescale.com; vger.kernel.org; dkim=none (message not signed) header.d=none;vger.kernel.org; dmarc=none action=none header.from=freescale.com; Date: Tue, 17 Nov 2015 15:42:30 -0600 From: Han Xu To: Brian Norris CC: , Subject: Re: [PATCH v2] mtd: fsl-quadspi: possible NULL dereference Message-ID: <20151117214230.GA26480@chopperman.am.freescale.net> References: <1447699339-43027-1-git-send-email-computersforpeace@gmail.com> <1447699530-50014-1-git-send-email-computersforpeace@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Disposition: inline In-Reply-To: <1447699530-50014-1-git-send-email-computersforpeace@gmail.com> User-Agent: Mutt/1.5.21 (2010-09-15) X-EOPAttributedMessage: 0 X-Microsoft-Exchange-Diagnostics: 1;BY2FFO11FD022;1:5girMir61j9P9eicoqYLbjRrqGexPLfSiXMV5FMRNkmgtoCeGUcQx8hzAtRGuZyXzKBH22vNv2Y7zjTxm1Qu9L/nzqDyDuqToGk70lPTmBVzM3nJx4ub0QQ/QvmkXub1f7Q+STVHqwZGHoM0ur/S86Z5/mYqwD9M2SRfZyxVSxz2P/gT6YRexQLyFpuELRfJBVVTv27zwi663Ye2CLqK0mZ82ohhmmtkayyRqpCyUmJeCRxXe0hdF7BT2rTElpPoS+6zcPv99jfiriLe6yGk3PxN3Oika6WJSVWONz48OHd27Xx95crnicmGTDaIrVW0+s5P7u2YIg97UWysD5Fjjjc+BKYuJZ9WEuR+FxZe7Fa1a/RH4HA4n8cR8/mAKpMV X-Forefront-Antispam-Report: CIP:192.88.168.50;CTRY:US;IPV:NLI;EFV:NLI;SFV:NSPM;SFS:(10019020)(6009001)(2980300002)(448002)(199003)(24454002)(189002)(586003)(87936001)(106466001)(5008740100001)(33656002)(4001350100001)(85326001)(5007970100001)(189998001)(110136002)(77096005)(104016004)(47776003)(23726002)(83506001)(5003600100002)(5001920100001)(54356999)(76176999)(86362001)(2950100001)(97736004)(46406003)(97756001)(11100500001)(6806005)(5001960100002)(81156007)(1411001)(92566002)(19580405001)(50986999)(50466002)(19580395003);DIR:OUT;SFP:1102;SCL:1;SRVR:DM2PR03MB558;H:tx30smr01.am.freescale.net;FPR:;SPF:PermError;PTR:InfoDomainNonexistent;A:1;MX:1;LANG:en; X-Microsoft-Exchange-Diagnostics: 1;DM2PR03MB558;2:Dr+4qdyXuSaPZrNek2XgKIz7E1u3qpkgzBF2u8ymB32tWbn0O9h30W9v/kstQJWFrLXtd0IqWf29JzR4d/SAZm8sbCXNla6GwbuJoR1YprDyjHkuEtTqZVrnlJEm4ahhq2EErqqwrX8Y2yH8g3cuwqWP/AnjDtcOUlzP0dgi2Tk=;3:CiRIoKNvgALvHrWRXevuCXK19uJN+GjGz1/2fyVNTwS+ciWyRcMNBaZ8J3wWYByfypXyGL2OTwBALIndFVCMw+/k0RWdq6+EKUMECG54exZxEg8beemM62HbGfmnNEnPQstn7ZZ+ZfVHzqd/t2b4SstG2eGIHob6pLQivgY51ALfPXbiE7SqIwOGrRKTWQhyeUJdQ+36E+5wEDphNhBlDwwxEm8g3Pju4Tl7iPN0oLo=;25:NHkd+eZjWP0zOW44oPRvk1mPdXsZtUQvB6VgDXlaN5dzo2G3Njtj5XtQxwu+8zPrxSPAWHjEcy21pZaDAfQMUekEXzKWE3TPtwSGLdEBIg8prpGoTN95I6Zy/DJyCxCikKFBPsaycA4/EKPIBz7YAGavaXmBckrsq2fQW8wLBMc9aEkjDk2gClf4J9i/iUv0coaf0RxMgjwqjQ2PLTsR/1ehdCC0MAecGRrjTRrQZlHhVLo/XtK3L9iggG5uUNN6 X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:DM2PR03MB558; X-Microsoft-Exchange-Diagnostics: 1;DM2PR03MB558;20:ZIJV1yl2BzygHgVjb0LSbiEbFAc+QJZ1+rK4U9BZrfM5jA2Q/8wFkaVUFzfna0jU09jvAQJ9jNrQ3y+/NSKO5zToNCjDZCDtctFxSJnn5u9KCG4RCQy0sfngD8QhRsWldIjC9nw2Ag/7Wh2Gvo9iwVAU83ON5Hh/n0m9I/rKAPz2HGTs2Ka1YTQ6C8+d/4AFPLUMMysqHDaxpuB/VemPbU+764JVUTnl5awQSMTFEIzK4/+bV4rOHumRwV1CSxv4C770AXCEYfcc/9XEXf4gho/X5gcqaVA+6fO/Np/cukFj54S8A2tWIJMYE1xgjtdNwF7MTLeGB4KirlRWRQQTDUocdbjAC1tW5rOvCSx1Ojw=;4:SxRhXignhSJ8YQvFUK5rinHyv6OF4e7OJ6AhrGq2eLhwWQK1WNoCjbepGoab6fxu2g6vDKv2q5pY2OEBOzdo9toMvHSTajNrEu32PW2zrQm/Y8+pAtmSaF3R/r/9LqGoLYkKkXsxpakY5YMXgHggzb6NcBuZWWCcCt12D9JGaw03pUQkAMaMBmprT8AKo9w+wBh9l0d8cZM2R2igrxQdQRZWj/dEcrhWg3rd+RPkT56jOtiHTPdach3g92QlYnn3ET5pynI5P06m/J3wOkY45gNKeXi9SwCfpx6j8x45KOeuL+m2TRk/cEridDKz5/ZlJFMDS/BpJsVSHD+Q+afkGr6zaOw5pK3J4qETW5izz+aixG5zNfJ8aS8uX9ZNp7AR X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(101931422205132); X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(601004)(2401047)(8121501046)(520078)(5005006)(3002001)(10201501046);SRVR:DM2PR03MB558;BCL:0;PCL:0;RULEID:;SRVR:DM2PR03MB558; X-Forefront-PRVS: 07630F72AD X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;DM2PR03MB558;23:WvaeLuDn4tA95vm3trOVXg8p2S921FdOSUUsa2xE88?= =?us-ascii?Q?d2dyxzNMCUlrOot946j3FlxmY5DDiTgjap2V4IkWuFIedXh3POX5JFRPwmGz?= =?us-ascii?Q?L4Jaf/Twnl2l5947JR42hxJDKDms03/KSBubMsmA4bDObgRtPFE+OTOKHh89?= =?us-ascii?Q?tBiQoV7hWdT/zJMZGV/d+cEX0qHF/WTrUkxKLh0aAT5FzsE2E2JH4tOg73Vv?= =?us-ascii?Q?8O+epLqbIBNnAoTu1CZQMlm6d4qy3b9ipMQ/ystnVzR8gLodBP1GwVdhPulk?= =?us-ascii?Q?w/um/o2t/C7fzRyv35GrmSKtX13oqmYG+foolFgHGSrHRBT2ZvFarnZgy4U2?= =?us-ascii?Q?QUgOduy57AbkpMPee5vkcEaxvY/zLWbUHiHDnPgMoO+d3YPuMEib2w0GiNx0?= =?us-ascii?Q?ddPSBLl5Yc9VT62I70gHUF5WtHApmWS6/yR6lDE1oYDPv9dRaN1wHuQlNf7H?= =?us-ascii?Q?QRceFSPjkedje+JX2L909Xlipft6iXM/jvUia9rQEeYTuAYZHnej6heCmi/8?= =?us-ascii?Q?p6fKWIhuhcbdkBYGHeCecTZPHbc4dwawnmIedWmzuByDp+fxK5Rzv7xgNITr?= =?us-ascii?Q?C1PbUIMjoDehmPw4+6FCS51fV4zzkertfUHol1wR5B/LE6lzdFLy9las6jS6?= =?us-ascii?Q?a9EHAQDimREK9SwiflKnoJOi19CHTsZsBhKj6FmuDCwkFQ/KC/lvWozKTuPQ?= =?us-ascii?Q?dBJI0/4mgWg7QAnwe+peAasu4DkD4EYmdnNsDnkI5dYq6JP7aLPUJ6TNhA+W?= =?us-ascii?Q?J8V6oHUP0z33egR/gBcdNVDQiFgjAPwfVjrTkE/T5GNOW0EmcH3GoNx0sko5?= =?us-ascii?Q?hkEr4gPk73o/3mXzTvcsUXa9Aa9Ws+Ju+J72QILKfYGpUkRlyHl7BTXeXxFH?= =?us-ascii?Q?+HSOabSXng4QnmsJ0JvvYn3uLeHGBcuM2Wr2fYt/X03RbPQJ42WGoIKCghyI?= =?us-ascii?Q?JjigbE3vJlRnezxQaye5/fsr/oexqomIXpX7u76g/1F7W13ACZkFq0SkRh25?= =?us-ascii?Q?OvCgW3Q28mMiOl/MKTHVSfrnW/hrNe7PXBtyEe6TtUzNO5HAsmU4v+hHt6p4?= =?us-ascii?Q?qjmTfAbNUhr0qObilf+KqvRucmj8ic1sP8xSaTVnlk0Qh+mQ=3D=3D?= X-Microsoft-Exchange-Diagnostics: 1;DM2PR03MB558;5:uzrqqWdDigov4BZP7Ipqk7da1f8oq9ELjvBEWDg1TIudzvI+t5lFtkBKy3GTsH4f6lDua1TM86SKzv+3LvVr41ywYhnzvl+e749l4Aw/fvmluAhTHzrPBBSUi/RRWxq7CEWHMFlw/TW2w4Rh4AKOWA==;24:BDBt06x91slGdAmUsxIVXstZNdY5xBj5bPDLlOw+csrMTQfELD2HHqsHH/CTg/LK41vvKwMYPdgGErNPw6Ihnpbm7k24utiTvP1BUg3SXD0=;20:cfW5bkk4UKszHqcwrRlaAYHmU1xQ/L7yvxoSGxSs/MQntHmddOW4MAkqQvzM9fG6H0Xebdi8mYfNR+RSV1xQow== SpamDiagnosticOutput: 1:23 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: freescale.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Nov 2015 21:54:26.2473 (UTC) X-MS-Exchange-CrossTenant-Id: 710a03f5-10f6-4d38-9ff4-a80b81da590d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=710a03f5-10f6-4d38-9ff4-a80b81da590d;Ip=[192.88.168.50];Helo=[tx30smr01.am.freescale.net] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM2PR03MB558 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2092 Lines: 66 On Mon, Nov 16, 2015 at 10:45:30AM -0800, Brian Norris wrote: > It is theoretically possible to probe this driver without a matching > device tree, so let's guard against this. > > Also, use the of_device_get_match_data() helper to make this a bit > simpler. > > Coverity complained about this one. > > Signed-off-by: Brian Norris > Cc: Han Xu > --- > v2: > * missed a 'const' warning > * s/reference/dereference in $subject > > drivers/mtd/spi-nor/fsl-quadspi.c | 8 ++++---- > 1 file changed, 4 insertions(+), 4 deletions(-) > > diff --git a/drivers/mtd/spi-nor/fsl-quadspi.c b/drivers/mtd/spi-nor/fsl-quadspi.c > index cc3a70b9b020..916d6dd5b575 100644 > --- a/drivers/mtd/spi-nor/fsl-quadspi.c > +++ b/drivers/mtd/spi-nor/fsl-quadspi.c > @@ -269,7 +269,7 @@ struct fsl_qspi { > struct clk *clk, *clk_en; > struct device *dev; > struct completion c; > - struct fsl_qspi_devtype_data *devtype_data; > + const struct fsl_qspi_devtype_data *devtype_data; > u32 nor_size; > u32 nor_num; > u32 clk_rate; > @@ -933,8 +933,6 @@ static int fsl_qspi_probe(struct platform_device *pdev) > struct spi_nor *nor; > struct mtd_info *mtd; > int ret, i = 0; > - const struct of_device_id *of_id = > - of_match_device(fsl_qspi_dt_ids, &pdev->dev); > > q = devm_kzalloc(dev, sizeof(*q), GFP_KERNEL); > if (!q) > @@ -945,7 +943,9 @@ static int fsl_qspi_probe(struct platform_device *pdev) > return -ENODEV; > > q->dev = dev; > - q->devtype_data = (struct fsl_qspi_devtype_data *)of_id->data; > + q->devtype_data = of_device_get_match_data(dev); > + if (!q->devtype_data) > + return -ENODEV; > platform_set_drvdata(pdev, q); > > /* find the resources */ > -- > 2.6.0.rc2.230.g3dd15c0 > Acked-by: Han xu -- Best Regards, Han "Allen" Xu -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/