[S390] 3215 console: convert from bootmem to slab
authorHeiko Carstens <heiko.carstens@de.ibm.com>
Mon, 22 Jun 2009 10:08:04 +0000 (12:08 +0200)
committerMartin Schwidefsky <schwidefsky@de.ibm.com>
Mon, 22 Jun 2009 10:08:17 +0000 (12:08 +0200)
The slab allocator is earlier available so convert the
bootmem allocations to slab/gfp allocations.

Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
drivers/s390/char/con3215.c

index 04dc734805c61418353e2b68802a6621121c3317..51e6379c5b932ca8890406dd43f6eae82588d779 100644 (file)
 #include <linux/interrupt.h>
 #include <linux/err.h>
 #include <linux/reboot.h>
-
 #include <linux/slab.h>
-#include <linux/bootmem.h>
-
 #include <asm/ccwdev.h>
 #include <asm/cio.h>
 #include <asm/io.h>
@@ -883,7 +880,7 @@ static int __init con3215_init(void)
        raw3215_freelist = NULL;
        spin_lock_init(&raw3215_freelist_lock);
        for (i = 0; i < NR_3215_REQ; i++) {
-               req = (struct raw3215_req *) alloc_bootmem_low(sizeof(struct raw3215_req));
+               req = kzalloc(sizeof(struct raw3215_req), GFP_KERNEL | GFP_DMA);
                req->next = raw3215_freelist;
                raw3215_freelist = req;
        }
@@ -893,10 +890,9 @@ static int __init con3215_init(void)
                return -ENODEV;
 
        raw3215[0] = raw = (struct raw3215_info *)
-               alloc_bootmem_low(sizeof(struct raw3215_info));
-       memset(raw, 0, sizeof(struct raw3215_info));
-       raw->buffer = (char *) alloc_bootmem_low(RAW3215_BUFFER_SIZE);
-       raw->inbuf = (char *) alloc_bootmem_low(RAW3215_INBUF_SIZE);
+               kzalloc(sizeof(struct raw3215_info), GFP_KERNEL | GFP_DMA);
+       raw->buffer = kzalloc(RAW3215_BUFFER_SIZE, GFP_KERNEL | GFP_DMA);
+       raw->inbuf = kzalloc(RAW3215_INBUF_SIZE, GFP_KERNEL | GFP_DMA);
        raw->cdev = cdev;
        dev_set_drvdata(&cdev->dev, raw);
        cdev->handler = raw3215_irq;
@@ -906,9 +902,9 @@ static int __init con3215_init(void)
 
        /* Request the console irq */
        if (raw3215_startup(raw) != 0) {
-               free_bootmem((unsigned long) raw->inbuf, RAW3215_INBUF_SIZE);
-               free_bootmem((unsigned long) raw->buffer, RAW3215_BUFFER_SIZE);
-               free_bootmem((unsigned long) raw, sizeof(struct raw3215_info));
+               kfree(raw->inbuf);
+               kfree(raw->buffer);
+               kfree(raw);
                raw3215[0] = NULL;
                return -ENODEV;
        }