diff options
author | Jan Glauber <jang@linux.vnet.ibm.com> | 2008-08-01 10:39:17 -0400 |
---|---|---|
committer | Martin Schwidefsky <schwidefsky@de.ibm.com> | 2008-08-01 10:39:34 -0400 |
commit | 3b8e3004aea95c687e8991583e7b150ec1416ff3 (patch) | |
tree | 61a4ccda07eac7e71f1e3dbf98694dc3c020b48f /drivers/s390 | |
parent | 7e9238fbc10373effc2c3b0b516b0bdc8fefc27b (diff) |
[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: Jan Glauber <jang@linux.vnet.ibm.com>
Diffstat (limited to 'drivers/s390')
-rw-r--r-- | drivers/s390/cio/qdio_main.c | 2 | ||||
-rw-r--r-- | drivers/s390/cio/qdio_setup.c | 2 |
2 files changed, 2 insertions, 2 deletions
diff --git a/drivers/s390/cio/qdio_main.c b/drivers/s390/cio/qdio_main.c index d10c73cc1688..d15648514a0f 100644 --- a/drivers/s390/cio/qdio_main.c +++ b/drivers/s390/cio/qdio_main.c | |||
@@ -1355,7 +1355,7 @@ int qdio_allocate(struct qdio_initialize *init_data) | |||
1355 | goto out_rel; | 1355 | goto out_rel; |
1356 | 1356 | ||
1357 | /* qdr is used in ccw1.cda which is u32 */ | 1357 | /* qdr is used in ccw1.cda which is u32 */ |
1358 | irq_ptr->qdr = kzalloc(sizeof(struct qdr), GFP_KERNEL | GFP_DMA); | 1358 | irq_ptr->qdr = (struct qdr *) get_zeroed_page(GFP_KERNEL | GFP_DMA); |
1359 | if (!irq_ptr->qdr) | 1359 | if (!irq_ptr->qdr) |
1360 | goto out_rel; | 1360 | goto out_rel; |
1361 | WARN_ON((unsigned long)irq_ptr->qdr & 0xfff); | 1361 | WARN_ON((unsigned long)irq_ptr->qdr & 0xfff); |
diff --git a/drivers/s390/cio/qdio_setup.c b/drivers/s390/cio/qdio_setup.c index f0923a8aceda..56fdd57ba192 100644 --- a/drivers/s390/cio/qdio_setup.c +++ b/drivers/s390/cio/qdio_setup.c | |||
@@ -325,7 +325,7 @@ void qdio_release_memory(struct qdio_irq *irq_ptr) | |||
325 | kmem_cache_free(qdio_q_cache, q); | 325 | kmem_cache_free(qdio_q_cache, q); |
326 | } | 326 | } |
327 | } | 327 | } |
328 | kfree(irq_ptr->qdr); | 328 | free_page((unsigned long) irq_ptr->qdr); |
329 | free_page(irq_ptr->chsc_page); | 329 | free_page(irq_ptr->chsc_page); |
330 | free_page((unsigned long) irq_ptr); | 330 | free_page((unsigned long) irq_ptr); |
331 | } | 331 | } |