Commit 500e54d4 authored by Rosen Penev's avatar Rosen Penev Committed by Mika Westerberg
Browse files

thunderbolt: dma_port: kmalloc_array + kzalloc to flex



Use a single allocation with a flexible array member. Simplifies
allocation and freeing.

Signed-off-by: default avatarRosen Penev <rosenp@gmail.com>
Signed-off-by: default avatarMika Westerberg <mika.westerberg@linux.intel.com>
parent f791145a
Loading
Loading
Loading
Loading
+3 −12
Original line number Diff line number Diff line
@@ -55,7 +55,7 @@ struct tb_dma_port {
	struct tb_switch *sw;
	u8 port;
	u32 base;
	u8 *buf;
	u8 buf[];
};

/*
@@ -209,16 +209,10 @@ struct tb_dma_port *dma_port_alloc(struct tb_switch *sw)
	if (port < 0)
		return NULL;

	dma = kzalloc_obj(*dma);
	dma = kzalloc_flex(*dma, buf, MAIL_DATA_DWORDS);
	if (!dma)
		return NULL;

	dma->buf = kmalloc_array(MAIL_DATA_DWORDS, sizeof(u32), GFP_KERNEL);
	if (!dma->buf) {
		kfree(dma);
		return NULL;
	}

	dma->sw = sw;
	dma->port = port;
	dma->base = DMA_PORT_CAP;
@@ -232,11 +226,8 @@ struct tb_dma_port *dma_port_alloc(struct tb_switch *sw)
 */
void dma_port_free(struct tb_dma_port *dma)
{
	if (dma) {
		kfree(dma->buf);
	kfree(dma);
}
}

static int dma_port_wait_for_completion(struct tb_dma_port *dma,
					unsigned int timeout)