Re: tty-related oops in latest kernel(s)?
From: "Antonino A. Daplas" <adaplas@gmail.com>
Date: 2007-05-31 09:04:57
Also in:
lkml
On Thu, 2007-05-31 at 09:17 +0200, Geert Uytterhoeven wrote:
On Thu, 31 May 2007, Antonino A. Daplas wrote:quoted
On Wed, 2007-05-30 at 22:04 +0400, Alexey Dobriyan wrote:quoted
2) palette in neofb_par is "u32 palette[16];" which is 4x16 = 64 bytes. struct fb_info::pseudo_palette is assigned to it in neo_alloc_fb_info(). Yet, we check at the beginning of neofb_setcolreg() for color map length which neofb advertises as 256 which seems too many.Yes, 256 is too many. the pseudo_palette is used for the 16-color console only. I'm impressed that this bug has escaped notice for this long. That bug is present since the 2.5.x era. Probably, the best thing to do is hide the pseudo_palette from the drivers and move it to the console layer where it belongs to spare future driver writers from palette usage confusion. That will be a thankless job.The console layer doesn't know how to fill in the pseudo palette in all cases, that's why the driver have to do it.
I have actually started working on that. It involves breaking down fb_setcolreg() so it deals only with writing to the actual hardware registers. The part of fb_setcolreg() that adds entries to the pseudo_palette can be separated as a new method, fb_get_pixel(), which given red, blue, green, transp, the driver returns a u32 pixel value that can be written to the pseudo_palette. So fbcon can hold a copy of the pseudo_palette and fills it up by calling info->fbops->fb_get_pixel() successively. This will touch the logo code, the drawing libraries, each driver, etc so it's a lot of work. During the conversion period, we support having info->pseudo_palette and fbcon->pseudo_palette at the same time. Once all drivers are converted, we can remove info->pseudo_palette. One use for having an fb_get_pixel() method is we can use this as an rgb888-image-to-raw-framebuffer-format converter. Currently, I have only converted vesafb. Once the core code is done, I'll start converting the rest of the drivers one by one. Tony ------------------------------------------------------------------------- This SF.net email is sponsored by DB2 Express Download DB2 Express C - the FREE version of DB2 express and take control of your XML. No limits. Just data. Click to get it now. http://sourceforge.net/powerbar/db2/