From: Antonino D. <ad...@po...> - 2002-11-02 21:36:31
|
Hi James, Regarding your latest patch, if the framebuffer console is not defined, then the module_use_count should not be incremented and the device should not be opened. This will prevent the module from being unloaded. Attached is a patch against 2.5.45 + your fbdev.diff. Tony diff -Naur linux-2.5.45-fbdev/drivers/video/fbmem.c linux/drivers/video/fbmem.c --- linux-2.5.45-fbdev/drivers/video/fbmem.c Sat Nov 2 21:21:06 2002 +++ linux/drivers/video/fbmem.c Sat Nov 2 21:24:29 2002 @@ -726,8 +726,8 @@ int register_framebuffer(struct fb_info *fb_info) { - static int fb_ever_opened[FB_MAX]; #ifdef CONFIG_FRAMEBUFFER_CONSOLE + static int fb_ever_opened[FB_MAX]; static int first = 1; int j; #endif @@ -743,9 +743,9 @@ fb_info->node = mk_kdev(FB_MAJOR, i); fb_info->currcon = -1; registered_fb[i] = fb_info; +#ifdef CONFIG_FRAMEBUFFER_CONSOLE if (!fb_ever_opened[i]) { struct module *owner = fb_info->fbops->owner; -#ifdef CONFIG_FRAMEBUFFER_CONSOLE /* * We assume initial frame buffer devices can be opened this * many times @@ -767,14 +767,6 @@ if (first) { first = 0; take_over_console(&fb_con, first_fb_vc, last_fb_vc, fbcon_is_default); - } -#else - if (owner) { - __MOD_INC_USE_COUNT(owner); - if (fb_info->fbops->fb_open && fb_info->fbops->fb_open(fb_info,0)) - __MOD_DEC_USE_COUNT(owner); - } - fb_ever_opened[i] = 1; } #endif sprintf (name_buf, "%d", i); |