Commit 3b8e3004 authored by Jan Glauber's avatar Jan Glauber Committed by Martin Schwidefsky

[S390] qdio: make sure qdr is aligned to page size

kzalloc does not guarantee the required alignment of qdr to page size,
use get_zeroed_page instead.
Signed-off-by: default avatarJan Glauber <jang@linux.vnet.ibm.com>
parent 7e9238fb
...@@ -1355,7 +1355,7 @@ int qdio_allocate(struct qdio_initialize *init_data) ...@@ -1355,7 +1355,7 @@ int qdio_allocate(struct qdio_initialize *init_data)
goto out_rel; goto out_rel;
/* qdr is used in ccw1.cda which is u32 */ /* qdr is used in ccw1.cda which is u32 */
irq_ptr->qdr = kzalloc(sizeof(struct qdr), GFP_KERNEL | GFP_DMA); irq_ptr->qdr = (struct qdr *) get_zeroed_page(GFP_KERNEL | GFP_DMA);
if (!irq_ptr->qdr) if (!irq_ptr->qdr)
goto out_rel; goto out_rel;
WARN_ON((unsigned long)irq_ptr->qdr & 0xfff); WARN_ON((unsigned long)irq_ptr->qdr & 0xfff);
......
...@@ -325,7 +325,7 @@ void qdio_release_memory(struct qdio_irq *irq_ptr) ...@@ -325,7 +325,7 @@ void qdio_release_memory(struct qdio_irq *irq_ptr)
kmem_cache_free(qdio_q_cache, q); kmem_cache_free(qdio_q_cache, q);
} }
} }
kfree(irq_ptr->qdr); free_page((unsigned long) irq_ptr->qdr);
free_page(irq_ptr->chsc_page); free_page(irq_ptr->chsc_page);
free_page((unsigned long) irq_ptr); free_page((unsigned long) irq_ptr);
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment