While block drivers may do DMA, they always use block caching chunks as bounce buffer. No dma is every done directly to the block_read data argument, so it doesn't need to be allocated with dma_alloc. The buffer also need not be zeroed, as block_read will either overwrite it completely or fail. Signed-off-by: Ahmad Fatoum <a.fatoum@xxxxxxxxxxxxxx> --- common/partitions.c | 5 ++--- common/partitions/dos.c | 7 +++---- common/partitions/efi.c | 1 - 3 files changed, 5 insertions(+), 8 deletions(-) diff --git a/common/partitions.c b/common/partitions.c index 1f0c544c6067..deb931f3290f 100644 --- a/common/partitions.c +++ b/common/partitions.c @@ -17,7 +17,6 @@ #include <asm/unaligned.h> #include <disks.h> #include <filetype.h> -#include <dma.h> #include <linux/err.h> #include "partitions/parser.h" @@ -120,7 +119,7 @@ int parse_partition_table(struct block_device *blk) uint8_t *buf; pdesc = xzalloc(sizeof(*pdesc)); - buf = dma_alloc(SECTOR_SIZE * 2); + buf = malloc(2 * SECTOR_SIZE); rc = block_read(blk, buf, 0, 2); if (rc != 0) { @@ -149,7 +148,7 @@ int parse_partition_table(struct block_device *blk) } on_error: - dma_free(buf); + free(buf); free(pdesc); return rc; } diff --git a/common/partitions/dos.c b/common/partitions/dos.c index 488c2936f715..0012c4875658 100644 --- a/common/partitions/dos.c +++ b/common/partitions/dos.c @@ -16,7 +16,6 @@ #include <disks.h> #include <init.h> #include <asm/unaligned.h> -#include <dma.h> #include <linux/err.h> #include "parser.h" @@ -64,7 +63,7 @@ static uint64_t disk_guess_size(struct device_d *dev, static void *read_mbr(struct block_device *blk) { - void *buf = dma_alloc(SECTOR_SIZE); + void *buf = malloc(SECTOR_SIZE); int ret; ret = block_read(blk, buf, 0, 1); @@ -135,7 +134,7 @@ static int dos_get_disk_signature(struct param_d *p, void *_priv) static void dos_extended_partition(struct block_device *blk, struct partition_desc *pd, struct partition *partition, uint32_t signature) { - uint8_t *buf = dma_alloc(SECTOR_SIZE); + uint8_t *buf = malloc(SECTOR_SIZE); uint32_t ebr_sector = partition->first_sec; struct partition_entry *table = (struct partition_entry *)&buf[0x1be]; unsigned partno = 5; @@ -185,7 +184,7 @@ static void dos_extended_partition(struct block_device *blk, struct partition_de } out: - dma_free(buf); + free(buf); return; } diff --git a/common/partitions/efi.c b/common/partitions/efi.c index f20fd0d9b9e8..437c3d64f889 100644 --- a/common/partitions/efi.c +++ b/common/partitions/efi.c @@ -16,7 +16,6 @@ #include <disks.h> #include <init.h> #include <asm/unaligned.h> -#include <dma.h> #include <crc.h> #include <linux/ctype.h> -- 2.29.2 _______________________________________________ barebox mailing list barebox@xxxxxxxxxxxxxxxxxxx http://lists.infradead.org/mailman/listinfo/barebox