> I think the problem was that we relied on divert_if being initialized to
> zero automatically, which didn't happen because it was not declared static
> and therefore not in .bss (*is this true?*).
This is true in this particular case, and your added "static" is good.
But you seem to miss the root of the problem, that isdn_common.c declares
an "isdn_divert_if *divert_if", and divert/divert_init.c declares
an "isdn_divert_if divert_if" (initialized non-zero). When the two .os
were linked, you got a single "divert_if" (initialized non-zero in .data).
Wouldn't it be best to (keep the "static" but also) change the name of the
pointer in isdn_common.c?
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to firstname.lastname@example.org
Please read the FAQ at http://www.tux.org/lkml/