[PATCH v2] mtd: nand: gpio: Remove unneeded CONFIG_OF
Brian Norris
computersforpeace at gmail.com
Mon Dec 9 15:31:05 EST 2013
On Sat, Dec 07, 2013 at 12:36:49PM -0300, Ezequiel Garcia wrote:
> Since the of_mtd header provides dummy stubs for !CONFIG_OF, it's safe
> to remove the #ifdef CONFIG_OF. Also remove the of_match_ptr guard as
> it's no longer required. Build tested only.
>
> Cc: Alexander Shiyan <shc_work at mail.ru>
> Signed-off-by: Ezequiel Garcia <ezequiel.garcia at free-electrons.com>
Just because we can compile with and without CONFIG_OF doesn't mean the
behavior is equivalent now.
Take a look at gpio_nand_get_io_sync_of(): we allocate and throw away
memory (it's only cleaned up at device removal time):
static struct resource *gpio_nand_get_io_sync_of(struct platform_device *pdev)
{
struct resource *r = devm_kzalloc(&pdev->dev, sizeof(*r), GFP_KERNEL);
u64 addr;
if (!r || of_property_read_u64(pdev->dev.of_node,
"gpio-control-nand,io-sync-reg", &addr))
return NULL;
...
But I guess this should be fixed anyway, to do this:
static struct resource *gpio_nand_get_io_sync_of(struct platform_device *pdev)
{
struct resource *r = devm_kzalloc(&pdev->dev, sizeof(*r), GFP_KERNEL);
u64 addr;
if (of_property_read_u64(pdev->dev.of_node,
"gpio-control-nand,io-sync-reg", &addr))
return NULL;
r = devm_kzalloc(&pdev->dev, sizeof(*r), GFP_KERNEL);
if (!r)
return NULL; /* Probably should be PTR_ERR(-ENOMEM), with callee-error-checking */
...
I think we might as well fix this before forcing this quirk onto !OF
builds.
Brian
More information about the linux-mtd
mailing list