Messages in this thread | | | Date | Thu, 1 Feb 2007 18:13:06 +0100 | From | "Miguel Ojeda" <> | Subject | Re: crash on CONFIG_CFAG12864B=y in 2.6.20-rc3-mm1 |
| |
On 2/1/07, Daniel Walker <dwalker@mvista.com> wrote: > On Thu, 2007-02-01 at 16:16 +0100, Miguel Ojeda wrote: > > The problem is easy: > > > > ks0108_init() prints the error message and exit with -EINVAL, so the > > module isn't loaded properly. > > > > However, cfag12864b_init() is called, although ks0108 failed. It > > returns 0 and after a while cfag12864b calls ks0108_writecontrol() > > which dereferences the uninitialized pointer ks0108_parport: > > > > parport_write_control(ks0108_parport, byte ^ (bit(0) | bit(1) | bit(3))); > > > > Why is cfag12864b_init() called if ks0108 module didn't load properly? > > Is that normal? If so, how a module should alarm other modules about > > it failed loading? > > I don't know if this matters, but I had this driver built-in , and not a > module .. > > Daniel > >
Well, I use the word "module" for both cases: When I modprobe cfag12864b, if ks0108 fails, it doesn't get linked. So I thought the same happen for built-in drivers (in other words, I didn't think cfag12864b would be linked if ks0108 failed).
So I'm waiting until someone tell me what is the right way to avoid drivers like cfag12864b been inited if their dependencies failed.
Anyway, thanks for discovering the bug (I wouldn't have discovered it as my motherboard has parallel port ;).
Miguel
-- Miguel Ojeda http://maxextreme.googlepages.com/index.htm - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |