{
        u32 pixcount, pixcount_mod;
        int cnt = 255, offset = 0, read = 0;
-       u8 *buf = kmalloc(256, GFP_KERNEL);
+       u8 *buf = kzalloc(256, GFP_KERNEL);
 
        if (!buf)
                return;
 
-       memset(buf, 0, 256);
        pixcount = (cvt->xres * (cvt->yres/cvt->interlace))/1000000;
        pixcount_mod = (cvt->xres * (cvt->yres/cvt->interlace)) % 1000000;
        pixcount_mod /= 1000;
 
        unsigned char *block;
        int num = 0, i;
 
-       mode = kmalloc(50 * sizeof(struct fb_videomode), GFP_KERNEL);
+       mode = kzalloc(50 * sizeof(struct fb_videomode), GFP_KERNEL);
        if (mode == NULL)
                return NULL;
-       memset(mode, 0, 50 * sizeof(struct fb_videomode));
 
        if (edid == NULL || !edid_checksum(edid) || 
            !edid_check_header(edid)) {
 
        if (size)
                fb_info_size += PADDING;
 
-       p = kmalloc(fb_info_size + size, GFP_KERNEL);
+       p = kzalloc(fb_info_size + size, GFP_KERNEL);
+
        if (!p)
                return NULL;
-       memset(p, 0, fb_info_size + size);
+
        info = (struct fb_info *) p;
 
        if (size)
 
 {
        struct regstate *saved;
 
-       saved = kmalloc(sizeof(struct regstate), GFP_KERNEL);
+       saved = kzalloc(sizeof(struct regstate), GFP_KERNEL);
+
        if (saved == NULL)
                return 1;
-       memset (saved, 0, sizeof(struct regstate));
+
        state->vidstate = (void *)saved;
                
        if (state->flags & VGA_SAVE_CMAP) {