On 2/1/07, Daniel Walker <[email protected]> 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 [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
[Index of Archives]
[Kernel Newbies]
[Netfilter]
[Bugtraq]
[Photo]
[Stuff]
[Gimp]
[Yosemite News]
[MIPS Linux]
[ARM Linux]
[Linux Security]
[Linux RAID]
[Video 4 Linux]
[Linux for the blind]
[Linux Resources]