26 Apr, 2007

32 commits


18 Apr, 2007

1 commit

  • compare_ether_addr() implicitly requires that the addresses
    passed are 2-bytes aligned in memory.

    This is not true for br_stp_change_bridge_id() and
    br_stp_recalculate_bridge_id() in which one of the addresses
    is unsigned char *, and thus may not be 2-bytes aligned.

    Signed-off-by: Evgeny Kravtsunov
    Signed-off-by: Kirill Korotaev
    Signed-off-by: Pavel Emelianov

    Evgeny Kravtsunov
     

23 Mar, 2007

2 commits

  • Turning up the warnings on gcc makes it emit warnings
    about the placement of 'inline' in function declarations.
    Here's everything that was under net/

    Signed-off-by: Dave Jones
    Signed-off-by: David S. Miller

    Dave Jones
     
  • br_fdb_get use atomic_inc to increase the refcount of an element found
    on a RCU protected list, which can lead to the following race:

    CPU0 CPU1

    br_fdb_get: rcu_read_lock
    __br_fdb_get: find element
    fdb_delete: hlist_del_rcu
    br_fdb_put
    br_fdb_put: atomic_dec_and_test
    call_rcu(fdb_rcu_free) br_fdb_get: atomic_inc
    rcu_read_unlock
    fdb_rcu_free: kmem_cache_free

    Use atomic_inc_not_zero instead.

    Signed-off-by: Patrick McHardy
    Signed-off-by: David S. Miller

    Patrick McHardy
     

08 Mar, 2007

1 commit

  • One change introduced by the workqueue removal patch is that adding an
    interface that is up to a bridge which is also up does not ever call
    br_stp_enable_port(), leaving the port in DISABLED state until we do
    ifconfig down and up or link events occur.

    The following patch to the br_add_if function fixes it.
    This is a regression introduced in 2.6.21.

    Submitted-by: Aji_Srinivas@emc.com
    Signed-off-by: Stephen Hemminger
    Signed-off-by: David S. Miller

    Aji Srinivas
     

01 Mar, 2007

1 commit

  • This change goes with earlier change to get rid of
    work queue for path cost. Now stp_set_path_cost does its own
    locking. This is to allow it to call br_path_cost() which calls
    ethtool interfaces (might sleep).

    Signed-off-by: Stephen Hemminger
    Signed-off-by: David S. Miller

    Stephen Hemminger
     

27 Feb, 2007

2 commits


21 Feb, 2007

1 commit

  • We frequently need the maximum number of possible processors in order to
    allocate arrays for all processors. So far this was done using
    highest_possible_processor_id(). However, we do need the number of
    processors not the highest id. Moreover the number was so far dynamically
    calculated on each invokation. The number of possible processors does not
    change when the system is running. We can therefore calculate that number
    once.

    Signed-off-by: Christoph Lameter
    Cc: Frederik Deweerdt
    Cc: Neil Brown
    Cc: Trond Myklebust
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Christoph Lameter