From patchwork Thu Apr 18 21:35:24 2013 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Guennadi Liakhovetski X-Patchwork-Id: 2462501 Return-Path: X-Original-To: patchwork-linux-media@patchwork.kernel.org Delivered-To: patchwork-process-083081@patchwork1.kernel.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by patchwork1.kernel.org (Postfix) with ESMTP id 538B43FCA5 for ; Thu, 18 Apr 2013 21:36:02 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S936493Ab3DRVf7 (ORCPT ); Thu, 18 Apr 2013 17:35:59 -0400 Received: from moutng.kundenserver.de ([212.227.126.171]:56420 "EHLO moutng.kundenserver.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S936303Ab3DRVf5 (ORCPT ); Thu, 18 Apr 2013 17:35:57 -0400 Received: from axis700.grange (dslb-088-077-162-170.pools.arcor-ip.net [88.77.162.170]) by mrelayeu.kundenserver.de (node=mreu1) with ESMTP (Nemesis) id 0M1TKv-1Un5qE3LZJ-00tELn; Thu, 18 Apr 2013 23:35:55 +0200 Received: from 6a.grange (6a.grange [192.168.1.11]) by axis700.grange (Postfix) with ESMTPS id CA7EC40BB5; Thu, 18 Apr 2013 23:35:54 +0200 (CEST) Received: from lyakh by 6a.grange with local (Exim 4.72) (envelope-from ) id 1USwUk-0005dF-FS; Thu, 18 Apr 2013 23:35:54 +0200 From: Guennadi Liakhovetski To: linux-media@vger.kernel.org Cc: Laurent Pinchart , Guennadi Liakhovetski Subject: [PATCH 03/24] mt9t031: fix NULL dereference during probe() Date: Thu, 18 Apr 2013 23:35:24 +0200 Message-Id: <1366320945-21591-4-git-send-email-g.liakhovetski@gmx.de> X-Mailer: git-send-email 1.7.2.5 In-Reply-To: <1366320945-21591-1-git-send-email-g.liakhovetski@gmx.de> References: <1366320945-21591-1-git-send-email-g.liakhovetski@gmx.de> X-Provags-ID: V02:K0:AmicbfUkqdmyR+MTH/ToSlakfxFzKbWDrZtHvyit03g VZZu6uEPuCKSKcAHXQG1yLvoSzNpAmQvn7Cthzf/F86OPecJMP cl+IynzAGEZZahasQoSDUkeXjq2P97eff4Htop6RclQYVHcMMj +mXFdmjQT8EA1KXgHzIp5qvCJ4930n1J2h7GyEi2/aTiANsxsF 8VXOQ6CzEHHeahEq6zDP5IkjIfgzzxUhZJJOxhbKU6KJ/1SIS4 YyRRaODFwsg9qV/k+o/Z1EhyWwfk3NQbDiNd6G3XPjEaSHogjU qgTDkg8f9GxK7/PrgfdeoM45MyZOv8ep6gtvxWKmlVaF3GUJl9 Lil1RVUl/ln7dqZUTB1V63wn0UTcA3Yd1Qf+8ll+ZyowZoFIll KSl6C8ietchtg== Sender: linux-media-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-media@vger.kernel.org When .s_power() is called during probing, the video device isn't available yet. Fix Oops, caused by dereferencing it. Signed-off-by: Guennadi Liakhovetski --- drivers/media/i2c/soc_camera/mt9t031.c | 7 +++++-- 1 files changed, 5 insertions(+), 2 deletions(-) diff --git a/drivers/media/i2c/soc_camera/mt9t031.c b/drivers/media/i2c/soc_camera/mt9t031.c index ea791e3..e7f0a08 100644 --- a/drivers/media/i2c/soc_camera/mt9t031.c +++ b/drivers/media/i2c/soc_camera/mt9t031.c @@ -619,9 +619,12 @@ static int mt9t031_s_power(struct v4l2_subdev *sd, int on) ret = soc_camera_power_on(&client->dev, ssdd, mt9t031->clk); if (ret < 0) return ret; - vdev->dev.type = &mt9t031_dev_type; + if (vdev) + /* Skip during probing, when vdev isn't available yet */ + vdev->dev.type = &mt9t031_dev_type; } else { - vdev->dev.type = NULL; + if (vdev) + vdev->dev.type = NULL; soc_camera_power_off(&client->dev, ssdd, mt9t031->clk); }