15 Dec, 2007

2 commits


13 Dec, 2007

2 commits


12 Dec, 2007

28 commits


11 Dec, 2007

8 commits

  • If we get an error during the actual policy lookup we don't free the
    original dst while the caller expects us to always free the original
    dst in case of error.

    This patch fixes that.

    Signed-off-by: Herbert Xu
    Signed-off-by: David S. Miller

    Herbert Xu
     
  • The vlan module cleanup function starts with

    vlan_netlink_fini();
    vlan_ioctl_set(NULL);

    The first call removes all the vlan devices and
    the second one closes the vlan ioctl.

    AFAIS there's a tiny race window between these two
    calls - after rtnl unregistered all the vlans, but
    the ioctl handler isn't set to NULL yet, user can
    manage to call this ioctl and create one vlan device,
    and that this function will later BUG_ON seeing
    non-emply hashes.

    I think, that we must first close the vlan ioctl
    and only after this remove all the vlans with the
    vlan_netlink_fini() call.

    Signed-off-by: Pavel Emelyanov
    Acked-by: Patrick McHardy
    Signed-off-by: David S. Miller

    Pavel Emelyanov
     
  • There are some return value comments for void functions.
    Fixed it.

    Signed-off-by: Wang Chen
    Signed-off-by: David S. Miller

    Wang Chen
     
  • Signed-off-by: Michael Chan
    Signed-off-by: David S. Miller

    Michael Chan
     
  • Packets can be left in the RX ring if the NAPI budget is reached.
    This is caused by storing the latest rx index at the beginning of
    bnx2_rx_int(). We may not process all the work up to this index
    if the budget is reached and so some packets in the RX ring may rot
    when we later check for more work using this stored rx index.

    The fix is to not store this latest hw index and only store the
    processed rx index. We use a new function bnx2_get_hw_rx_cons()
    to fetch the latest hw rx index.

    Signed-off-by: Michael Chan
    Signed-off-by: David S. Miller

    Michael Chan
     
  • 5709 Ax and Bx chips all need this workaround.

    Signed-off-by: Michael Chan
    Signed-off-by: David S. Miller

    Michael Chan
     
  • Recently, Wang Chen submitted a patch
    (d30f53aeb31d453a5230f526bea592af07944564) to move a call to netif_rx(skb)
    after a subsequent reference to skb, because netif_rx may call kfree_skb on
    its argument. netif_rx_ni calls netif_rx, so the same problem occurs in
    the files below.

    I have left the updating of dev->last_rx after the calls to netif_rx_ni
    because it seems time dependent, but moved the other field updates before.

    This was found using the following semantic match.
    (http://www.emn.fr/x-info/coccinelle/)

    //
    @@
    expression skb, e,e1;
    @@

    (
    netif_rx(skb);
    |
    netif_rx_ni(skb);
    )
    ... when != skb = e
    (
    skb = e1
    |
    * skb
    )
    //

    Signed-off-by: Julia Lawall
    Signed-off-by: David S. Miller

    Julia Lawall
     
  • Recently, Wang Chen submitted a patch
    (d30f53aeb31d453a5230f526bea592af07944564) to move a call to netif_rx(skb)
    after a subsequent reference to skb, because netif_rx may call kfree_skb on
    its argument. The same problem occurs in some other drivers as well.

    This was found using the following semantic match.
    (http://www.emn.fr/x-info/coccinelle/)

    //
    @@
    expression skb, e,e1;
    @@

    (
    netif_rx(skb);
    |
    netif_rx_ni(skb);
    )
    ... when != skb = e
    (
    skb = e1
    |
    * skb
    )
    //

    Signed-off-by: Julia Lawall
    Signed-off-by: David S. Miller

    Julia Lawall