new_data = fb_display[i].fontdata; 
new_data = (u8 *)fb_display[i].fontdata; 
static int fbcon_set_font(struct vc_data *vc, struct console_font *font, unsigned flags){	unsigned charcount = font->charcount;	int w = font->width;	int h = font->height;	int size;	int i, csum;	u8 *new_data, *data = font->data;	int pitch = (font->width+7) >> 3;	/* Is there a reason why fbconsole couldn't handle any charcount >256?	 * If not this check should be changed to charcount < 256 */	if (charcount != 256 && charcount != 512)		return -EINVAL;	size = h * pitch * charcount;	new_data = kmalloc(FONT_EXTRA_WORDS * sizeof(int) + size, GFP_USER);	if (!new_data)		return -ENOMEM;	new_data += FONT_EXTRA_WORDS * sizeof(int);	FNTSIZE(new_data) = size;	FNTCHARCNT(new_data) = charcount;	REFCOUNT(new_data) = 0;	/* usage counter */	for (i=0; i< charcount; i++) {		memcpy(new_data + i*h*pitch, data +  i*32*pitch, h*pitch);	}	/* Since linux has a nice crc32 function use it for counting font	 * checksums. */	csum = crc32(0, new_data, size);	FNTSUM(new_data) = csum;	/* Check if the same font is on some other console already */	for (i = 0; i < MAX_NR_CONSOLES; i++) {		struct vc_data *tmp = vc_cons[i].d;				if (fb_display[i].userfont &&		    fb_display[i].fontdata &&		    FNTSUM(fb_display[i].fontdata) == csum &&		    FNTSIZE(fb_display[i].fontdata) == size &&		    tmp->vc_font.width == w &&		    !memcmp(fb_display[i].fontdata, new_data, size)) {			kfree(new_data - FONT_EXTRA_WORDS * sizeof(int));			new_data = fb_display[i].fontdata;			break;		}	}	return fbcon_do_set_font(vc, font->width, font->height, new_data, 1);}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/2f4516dbd048f25eba78e115e8e73e1e8f04e7f9/fbcon.c/clean/drivers/video/console/fbcon.c