Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S965813AbbDVQZ1 (ORCPT ); Wed, 22 Apr 2015 12:25:27 -0400 Received: from mail-wg0-f48.google.com ([74.125.82.48]:33292 "EHLO mail-wg0-f48.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S964807AbbDVQZY (ORCPT ); Wed, 22 Apr 2015 12:25:24 -0400 MIME-Version: 1.0 In-Reply-To: <1429719261-18024-5-git-send-email-ricardo.ribalda@gmail.com> References: <1429719261-18024-1-git-send-email-ricardo.ribalda@gmail.com> <1429719261-18024-5-git-send-email-ricardo.ribalda@gmail.com> From: Rob Herring Date: Wed, 22 Apr 2015 11:25:02 -0500 Message-ID: Subject: Re: [PATCH v3 4/4] of/platform: Use platform_device interface To: Ricardo Ribalda Delgado Cc: Greg Kroah-Hartman , Grant Likely , Rob Herring , Andrew Morton , Jakub Sitnicki , Vivek Goyal , Bjorn Helgaas , Jiang Liu , Mike Travis , Thierry Reding , "linux-kernel@vger.kernel.org" , "devicetree@vger.kernel.org" Content-Type: text/plain; charset=UTF-8 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1703 Lines: 48 On Wed, Apr 22, 2015 at 11:14 AM, Ricardo Ribalda Delgado wrote: > of_platform_device_create_pdata() was using of_device_add() to create > the devices, but of_platform_device_destroy was using > of_platform_device_destroy(). > > of_device_add(), do not call insert_resource(), which initializes the > parent field of the resource structure, needed by release_resource(), > called by of_platform_device_destroy(). > > This leads to a NULL pointer deference. > > This patch, replaces of_device_add() with platform_device_data(). This doesn't match the change. > > Signed-off-by: Ricardo Ribalda Delgado > --- > drivers/of/platform.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/drivers/of/platform.c b/drivers/of/platform.c > index a01f57c..f011f57 100644 > --- a/drivers/of/platform.c > +++ b/drivers/of/platform.c > @@ -183,8 +183,9 @@ static struct platform_device *of_platform_device_create_pdata( > dev->dev.bus = &platform_bus_type; > dev->dev.platform_data = platform_data; > of_dma_configure(&dev->dev, dev->dev.of_node); > + dev->name = dev_name(&dev->dev); > > - if (of_device_add(dev) != 0) { > + if (platform_device_add(dev) != 0) { Can't we now remove of_device_add? > of_dma_deconfigure(&dev->dev); > platform_device_put(dev); > goto err_clear_flag; > -- > 2.1.4 > -- 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/