[PATCH] cfag12864b: fix crash when built-in and no parport present
authorMiguel Ojeda <maxextreme@gmail.com>
Tue, 20 Feb 2007 21:58:00 +0000 (13:58 -0800)
committerLinus Torvalds <torvalds@woody.linux-foundation.org>
Wed, 21 Feb 2007 01:10:14 +0000 (17:10 -0800)
commit34173a4aad7a641e72b70f9927ca797746fbce69
treee09d2fd33dc6e14d4b76210e471c47e8fed7b2a1
parente627432c2948d500669a6c4522f22b66f5118d64
[PATCH] cfag12864b: fix crash when built-in and no parport present

The problem comes when ks0108/cfag12864b are built-in and no parallel port is
present.  ks0108_init() is called first, as it should be, but fails to load
(as there is no parallel port to use).

After that, cfag12864b_init() gets called, without knowing anything about
ks0108 failed, and calls ks0108_writecontrol(), which dereferences an
uninitialized pointer.

Init order is OK, I think.  The problem is how to stop cfag12864b_init() being
called if ks0108 failed to load.  modprobe does it for us, but, how when
built-in?

Signed-off-by: Miguel Ojeda Sandonis <maxextreme@gmail.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
drivers/auxdisplay/cfag12864b.c
drivers/auxdisplay/cfag12864bfb.c
drivers/auxdisplay/ks0108.c
include/linux/cfag12864b.h
include/linux/ks0108.h