batman-adv: move neigh_node->if_incoming->if_status check in find_router()

    Every time that find_router() is invoked, if_status has to be compared with
    IF_ACTIVE. Moving this comparison inside find_router() will avoid to write it
    each time.

    Signed-off-by: Antonio Quartulli <ordex@autistici.org>
    Signed-off-by: Sven Eckelmann <sven@narfation.org>
batman-adv: Use kzalloc rather than kmalloc followed by memset with 0

    Signed-off-by: Sven Eckelmann <sven@narfation.org>
batman-adv: Annotate functions with format strings

    Signed-off-by: Sven Eckelmann <sven@narfation.org>
batman-adv: Print jiffies as unsigned long

    Signed-off-by: Sven Eckelmann <sven@narfation.org>
batman-adv: Remove comparising < 0 for unsigned type

    Signed-off-by: Sven Eckelmann <sven@narfation.org>
batman-adv: Don't do pointer arithmetic with void*

    The size of void is currently set by gcc to 1, but is not well defined
    in general. Therefore it is more advisable to cast it to char* before
    doing pointer arithmetic.

    Signed-off-by: Sven Eckelmann <sven@narfation.org>
batman-adv: Add const type qualifier for pointers

    batman-adv uses pointers which are marked as const and should not
    violate that type qualifier by passing it to functions which force a
    cast to the non-const version.

    Signed-off-by: Sven Eckelmann <sven@narfation.org>
batman-adv: Only use int up and down gw representation

    It is not save to provide memory for an int and then cast the pointer to
    it to long*. It is better to standardize the up and down gateway
    bandwith representation to simple ints and only use long inside
    conversation routines.

    Signed-off-by: Sven Eckelmann <sven@narfation.org>
batman-adv: Remove explicit casts cast from void* for store

    It is not necessary to cast a void* to the pointer type when we just
    store it and don't want to do pointer arithmetic before the actual
    assignment.

    Signed-off-by: Sven Eckelmann <sven@narfation.org>
batman-adv: Remove casts from type x to type x

    Casting from pointer like 'struct orig_node*' to 'struct orig_node *'
    doesn't provide any additional functionality and can be savely removed.

    Signed-off-by: Sven Eckelmann <sven@narfation.org>
batman-adv: Calculate sizeof using variable insead of types

    Documentation/CodingStyle recommends to use the form

    	p = kmalloc(sizeof(*p), ...);

    to calculate the size of a struct and not the version where the struct
    name is spelled out to prevent bugs when the type of p changes. This
    also seems appropriate for manipulation of buffers when they are
    directly associated with p.

    Signed-off-by: Sven Eckelmann <sven@narfation.org>
batman-adv: Use rcu_dereference_protected by update-side

    Usually rcu_dereference isn't necessary in situations were the
    RCU-protected data structure cannot change, but sparse and lockdep still
    need a similar functionality for analysis. rcu_dereference_protected
    implements the reduced version which should be used to support the
    dynamic and static analysis.

    Signed-off-by: Sven Eckelmann <sven@narfation.org>
batman-adv: move smallest_signed_int(), seq_before() and seq_after() into main.h

    smallest_signed_int(), seq_before() and seq_after() are very useful
    functions that help to handle comparisons between sequence numbers.
    However they were only defined in vis.c. With this patch every
    batman-adv function will be able to use them.

    Signed-off-by: Antonio Quartulli <ordex@autistici.org>
    Signed-off-by: Sven Eckelmann <sven@narfation.org>
batman-adv: Check type of x and y in seq_(before|after)

    seq_before and seq_after depend on the fact that both sequence numbers
    have the same type and thus the same bitwidth. We can ensure that by
    compile time checking using a compare between the pointer to the
    temporary buffers which were created using the typeof of both
    parameters. For example gcc would create a warning like
    "warning: comparison of distinct pointer types lacks a cast".

    Signed-off-by: Sven Eckelmann <sven@narfation.org>
batman-adv: use is_broadcast_ether_addr() instead of compare_eth(.., brd_addr)

    Instead of comparing mac addresses with the broadcast address by means
    of compare_eth(), the is_broadcast_ether_addr() kernel function has to be
    used.

    Signed-off-by: Antonio Quartulli <ordex@autistici.org>
    Acked-by: Sven Eckelmann <sven@narfation.org>
    Signed-off-by: Sven Eckelmann <sven@narfation.org>
batman-adv: a multiline comment should precede the variable it is describing

    This comment has been wrongly put after the variable it refers to and was also bad indented

    Signed-off-by: Antonio Quartulli <ordex@autistici.org>
    Acked-by: Sven Eckelmann <sven@narfation.org>
    Signed-off-by: Sven Eckelmann <sven@narfation.org>
batman-adv: Ensure that we really have route changes in update_route

    The debug output of update_route has tests for "route deleted" and "route
    added". All other situations are handled as "route changed". This is not
    true because neigh_node and curr_router could be both NULL.

    The function is not called in this situation, but the code might be
    interpreted wrong when reading it without this test.

    Signed-off-by: Sven Eckelmann <sven@narfation.org>