a. cyberpro_free_fb_info() is called by both __devinit & __devexit code, so it cannot be __devinit. b. igs_regs[] is used by resume code (indirectly), so it cannot be discardable. This leaves one reference in cyber2000fb that 'make buildcheck' complains about, but I believe that it's OK, that being ".probe" here: static struct pci_driver cyberpro_driver = { .name = "CyberPro", .probe = cyberpro_pci_probe, Signed-off-by: Randy Dunlap diffstat:= drivers/video/cyber2000fb.c | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) diff -Naurp ./drivers/video/cyber2000fb.c~cyber_init_exit ./drivers/video/cyber2000fb.c --- ./drivers/video/cyber2000fb.c~cyber_init_exit 2004-10-11 21:10:06.930781000 -0700 +++ ./drivers/video/cyber2000fb.c 2004-10-11 22:13:16.504678864 -0700 @@ -1166,7 +1166,7 @@ static struct fb_videomode __devinitdata .vmode = FB_VMODE_NONINTERLACED }; -static char igs_regs[] __devinitdata = { +static char igs_regs[] = { EXT_CRT_IRQ, 0, EXT_CRT_TEST, 0, EXT_SYNC_CTL, 0, @@ -1289,7 +1289,7 @@ cyberpro_alloc_fb_info(unsigned int id, return cfb; } -static void __devinit +static void cyberpro_free_fb_info(struct cfb_info *cfb) { if (cfb) {