From patchwork Wed Sep 7 13:50:29 2011 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Guennadi Liakhovetski X-Patchwork-Id: 1127582 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by demeter1.kernel.org (8.14.4/8.14.4) with ESMTP id p87GaIf9031693 for ; Wed, 7 Sep 2011 16:36:19 GMT Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753076Ab1IGQeb (ORCPT ); Wed, 7 Sep 2011 12:34:31 -0400 Received: from moutng.kundenserver.de ([212.227.17.9]:61864 "EHLO moutng.kundenserver.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753118Ab1IGQe3 (ORCPT ); Wed, 7 Sep 2011 12:34:29 -0400 Received: from axis700.grange (dslb-178-006-246-092.pools.arcor-ip.net [178.6.246.92]) by mrelayeu.kundenserver.de (node=mreu4) with ESMTP (Nemesis) id 0LfcGk-1RXpz52cwc-00pDAe; Wed, 07 Sep 2011 15:50:29 +0200 Received: by axis700.grange (Postfix, from userid 1000) id 55EF118B03C; Wed, 7 Sep 2011 15:50:29 +0200 (CEST) Received: from localhost (localhost [127.0.0.1]) by axis700.grange (Postfix) with ESMTP id 53A4B18B03B for ; Wed, 7 Sep 2011 15:50:29 +0200 (CEST) Date: Wed, 7 Sep 2011 15:50:29 +0200 (CEST) From: Guennadi Liakhovetski X-X-Sender: lyakh@axis700.grange To: Linux Media Mailing List Subject: [PATCH] V4L: soc_camera_platform: do not leave dangling invalid pointers Message-ID: MIME-Version: 1.0 X-Provags-ID: V02:K0:NgtHXxYJmbETTG2VlPlNAZiNkvHmz3IJKi01ho0HqIL +NZj1mJorFJmEwgutZQp3EMm7R/4VGEpNskjNmCBKZ2mVTWDFO KvrMJzZRhCWIcRaqM7Unk4365qDKALgJ+5FxxVxxh4TlSOkgCM 8xBQwjluDOpkU4P/tsi5A78dIpmY6w/iNmfHgqIZictl+r/Bwp eklgN3w9x+HTmGX24jB2jiHwDbWMSrAxNwvy9bZkS6m6ULqcoY J8v0B7qyBRxQMNG2PRtrskxNKRUeEk2eXMY9iuij6oxkobyQ09 uaJ+vM6KwHMSbHCTVl91mezd6Ajq5LBQACFRLF7jAWk4eYPHKg B/QlKv7DOoAQxlGODyRZ3/JMxcpnJ1Fz3O5VKe6R9E8/ziC4EC 9+v/fABExjnIg== Sender: linux-media-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-media@vger.kernel.org X-Greylist: IP, sender and recipient auto-whitelisted, not delayed by milter-greylist-4.2.6 (demeter1.kernel.org [140.211.167.41]); Wed, 07 Sep 2011 16:36:19 +0000 (UTC) The life-time of soc-camera device objects can be longer, than the time, it is attached to a client driver, therefore all references to the driver own data have to be cleared, when the driver is detached. Signed-off-by: Guennadi Liakhovetski --- drivers/media/video/soc_camera_platform.c | 2 ++ 1 files changed, 2 insertions(+), 0 deletions(-) diff --git a/drivers/media/video/soc_camera_platform.c b/drivers/media/video/soc_camera_platform.c index f5ebe59..c8f6b18 100644 --- a/drivers/media/video/soc_camera_platform.c +++ b/drivers/media/video/soc_camera_platform.c @@ -173,7 +173,9 @@ evdrs: static int soc_camera_platform_remove(struct platform_device *pdev) { struct soc_camera_platform_priv *priv = get_priv(pdev); + struct soc_camera_platform_info *p = v4l2_get_subdevdata(&priv->subdev); + p->icd->control = NULL; v4l2_device_unregister_subdev(&priv->subdev); platform_set_drvdata(pdev, NULL); kfree(priv);