diff options
-rw-r--r-- | drivers/s390/cio/qdio.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/drivers/s390/cio/qdio.c b/drivers/s390/cio/qdio.c index a5bf272fe775..96f519281d92 100644 --- a/drivers/s390/cio/qdio.c +++ b/drivers/s390/cio/qdio.c | |||
@@ -1640,7 +1640,7 @@ next: | |||
1640 | 1640 | ||
1641 | } | 1641 | } |
1642 | kfree(irq_ptr->qdr); | 1642 | kfree(irq_ptr->qdr); |
1643 | kfree(irq_ptr); | 1643 | free_page((unsigned long) irq_ptr); |
1644 | } | 1644 | } |
1645 | 1645 | ||
1646 | static void | 1646 | static void |
@@ -2983,7 +2983,7 @@ qdio_allocate(struct qdio_initialize *init_data) | |||
2983 | qdio_allocate_do_dbf(init_data); | 2983 | qdio_allocate_do_dbf(init_data); |
2984 | 2984 | ||
2985 | /* create irq */ | 2985 | /* create irq */ |
2986 | irq_ptr = kzalloc(sizeof(struct qdio_irq), GFP_KERNEL | GFP_DMA); | 2986 | irq_ptr = (void *) get_zeroed_page(GFP_KERNEL | GFP_DMA); |
2987 | 2987 | ||
2988 | QDIO_DBF_TEXT0(0,setup,"irq_ptr:"); | 2988 | QDIO_DBF_TEXT0(0,setup,"irq_ptr:"); |
2989 | QDIO_DBF_HEX0(0,setup,&irq_ptr,sizeof(void*)); | 2989 | QDIO_DBF_HEX0(0,setup,&irq_ptr,sizeof(void*)); |
@@ -2998,7 +2998,7 @@ qdio_allocate(struct qdio_initialize *init_data) | |||
2998 | /* QDR must be in DMA area since CCW data address is only 32 bit */ | 2998 | /* QDR must be in DMA area since CCW data address is only 32 bit */ |
2999 | irq_ptr->qdr=kmalloc(sizeof(struct qdr), GFP_KERNEL | GFP_DMA); | 2999 | irq_ptr->qdr=kmalloc(sizeof(struct qdr), GFP_KERNEL | GFP_DMA); |
3000 | if (!(irq_ptr->qdr)) { | 3000 | if (!(irq_ptr->qdr)) { |
3001 | kfree(irq_ptr); | 3001 | free_page((unsigned long) irq_ptr); |
3002 | QDIO_PRINT_ERR("kmalloc of irq_ptr->qdr failed!\n"); | 3002 | QDIO_PRINT_ERR("kmalloc of irq_ptr->qdr failed!\n"); |
3003 | return -ENOMEM; | 3003 | return -ENOMEM; |
3004 | } | 3004 | } |