Skip to content

Commit 5993fe3

Browse files
committed
Merge git://git.kernel.org/pub/scm/linux/kernel/git/hskinnemoen/avr32-2.6
* git://git.kernel.org/pub/scm/linux/kernel/git/hskinnemoen/avr32-2.6: avr32: clean up memory allocation in at32_add_device_mci arch/avr32: Fix build failure for avr32 caused by typo
2 parents 5391014 + cbf8de1 commit 5993fe3

File tree

1 file changed

+9
-6
lines changed

1 file changed

+9
-6
lines changed

arch/avr32/mach-at32ap/at32ap700x.c

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1325,7 +1325,7 @@ struct platform_device *__init
13251325
at32_add_device_mci(unsigned int id, struct mci_platform_data *data)
13261326
{
13271327
struct platform_device *pdev;
1328-
struct mci_dma_slave *slave;
1328+
struct mci_dma_data *slave;
13291329
u32 pioa_mask;
13301330
u32 piob_mask;
13311331

@@ -1344,7 +1344,9 @@ at32_add_device_mci(unsigned int id, struct mci_platform_data *data)
13441344
ARRAY_SIZE(atmel_mci0_resource)))
13451345
goto fail;
13461346

1347-
slave = kzalloc(sizeof(struct mci_dma_slave), GFP_KERNEL);
1347+
slave = kzalloc(sizeof(struct mci_dma_data), GFP_KERNEL);
1348+
if (!slave)
1349+
goto fail;
13481350

13491351
slave->sdata.dma_dev = &dw_dmac0_device.dev;
13501352
slave->sdata.reg_width = DW_DMA_SLAVE_WIDTH_32BIT;
@@ -1357,7 +1359,7 @@ at32_add_device_mci(unsigned int id, struct mci_platform_data *data)
13571359

13581360
if (platform_device_add_data(pdev, data,
13591361
sizeof(struct mci_platform_data)))
1360-
goto fail;
1362+
goto fail_free;
13611363

13621364
/* CLK line is common to both slots */
13631365
pioa_mask = 1 << 10;
@@ -1381,7 +1383,7 @@ at32_add_device_mci(unsigned int id, struct mci_platform_data *data)
13811383
/* Slot is unused */
13821384
break;
13831385
default:
1384-
goto fail;
1386+
goto fail_free;
13851387
}
13861388

13871389
select_peripheral(PIOA, pioa_mask, PERIPH_A, 0);
@@ -1408,7 +1410,7 @@ at32_add_device_mci(unsigned int id, struct mci_platform_data *data)
14081410
break;
14091411
default:
14101412
if (!data->slot[0].bus_width)
1411-
goto fail;
1413+
goto fail_free;
14121414

14131415
data->slot[1].bus_width = 0;
14141416
break;
@@ -1419,9 +1421,10 @@ at32_add_device_mci(unsigned int id, struct mci_platform_data *data)
14191421
platform_device_add(pdev);
14201422
return pdev;
14211423

1424+
fail_free:
1425+
kfree(slave);
14221426
fail:
14231427
data->dma_slave = NULL;
1424-
kfree(slave);
14251428
platform_device_put(pdev);
14261429
return NULL;
14271430
}

0 commit comments

Comments
 (0)