diff --git a/drivers/misc/ibmvmc.c b/drivers/misc/ibmvmc.c index b72b1ac4b359..6afef0788b90 100644 --- a/drivers/misc/ibmvmc.c +++ b/drivers/misc/ibmvmc.c @@ -154,7 +154,7 @@ static void ibmvmc_release_crq_queue(struct crq_server_adapter *adapter) dma_unmap_single(adapter->dev, queue->msg_token, queue->size * sizeof(*queue->msgs), DMA_BIDIRECTIONAL); - free_page((unsigned long)queue->msgs); + kfree(queue->msgs); } /** @@ -2130,7 +2130,7 @@ static int ibmvmc_init_crq_queue(struct crq_server_adapter *adapter) int rc = 0; int retrc = 0; - queue->msgs = (struct ibmvmc_crq_msg *)get_zeroed_page(GFP_KERNEL); + queue->msgs = kzalloc(PAGE_SIZE, GFP_KERNEL); if (!queue->msgs) goto malloc_failed; @@ -2193,7 +2193,7 @@ static int ibmvmc_init_crq_queue(struct crq_server_adapter *adapter) queue->msg_token, queue->size * sizeof(*queue->msgs), DMA_BIDIRECTIONAL); map_failed: - free_page((unsigned long)queue->msgs); + kfree(queue->msgs); malloc_failed: return -ENOMEM; }