11 Jul, 2012

1 commit


10 Jul, 2012

11 commits


09 Jul, 2012

10 commits

  • The comments were wrong here because "AX25_MAX_DIGIS" is 8 but the
    comments say 6. Also I've changed the "7" to "AX25_ADDR_LEN".

    Signed-off-by: Dan Carpenter
    Signed-off-by: David S. Miller

    Dan Carpenter
     
  • ETH_P_IP is host Endian, skb->protocol is big Endian, when
    compare them, we should change ETH_P_IP from host endian
    to big endian, htons, not ntohs.

    CC: Somnath Kotur
    Signed-off-by: Li RongQing
    Acked-by: Somnath Kotur
    Signed-off-by: David S. Miller

    Li RongQing
     
  • broadcom, not marvell.

    Signed-off-by: Peter Korsgaard
    Acked-by: David Daney
    Signed-off-by: David S. Miller

    Peter Korsgaard
     
  • If registering of one of them fails, all already registered drivers
    of this module will be unregistered.

    Use the new register/unregister functions in all drivers
    registering more than one driver.

    amd.c, realtek.c: Simplify: directly return registration result.

    Tested with broadcom.c
    All others compile-tested.

    Signed-off-by: Christian Hohnstaedt
    Signed-off-by: David S. Miller

    Christian Hohnstaedt
     
  • The bcm87xx phys don't support autonegotiation, so don't use it by
    default, as otherwise phy_state_machine() will try to enable it (using
    c22 requests, which also don't make any sense for the bcm78xx).

    Signed-off-by: Peter Korsgaard
    Signed-off-by: David S. Miller

    Peter Korsgaard
     
  • Re-enable interrupts if it is not our interrupt

    Signed-off-by: Mirko Lindner
    Signed-off-by: David S. Miller

    Mirko Lindner
     
  • This patch adds support for the Optima EEE chipset.

    Signed-off-by: Mirko Lindner
    Signed-off-by: David S. Miller

    Mirko Lindner
     
  • OFF carrier state is setup in probe() open() and suspend() functions.
    The carrier ON state is managed in macb_handle_link_change().

    Signed-off-by: Nicolas Ferre
    Signed-off-by: David S. Miller

    Nicolas Ferre
     
  • While doing some recent work on sctp sack bundling I noted that
    sctp_packet_append_chunk was pretty inefficient. Specifially, it was called
    recursively while trying to bundle auth and sack chunks. Because of that we
    call sctp_packet_bundle_sack and sctp_packet_bundle_auth a total of 4 times for
    every call to sctp_packet_append_chunk, knowing that at least 3 of those calls
    will do nothing.

    So lets refactor sctp_packet_bundle_auth to have an outer part that does the
    attempted bundling, and an inner part that just does the chunk appends. This
    saves us several calls per iteration that we just don't need.

    Also, noticed that the auth and sack bundling fail to free the chunks they
    allocate if the append fails, so make sure we add that in

    Signed-off-by: Neil Horman
    CC: Vlad Yasevich
    CC: "David S. Miller"
    CC: linux-sctp@vger.kernel.org
    Acked-by: Vlad Yasevich
    Signed-off-by: David S. Miller

    Neil Horman
     
  • DRV_MODULE_VERSION here is "2.7.2.2" which is only 8 chars but we copy
    12 bytes from the stack so it's a small information leak.

    Signed-off-by: Dan Carpenter
    Acked-by: Michael Chan
    Acked-by: Eddie Wai
    Signed-off-by: David S. Miller

    Dan Carpenter
     

08 Jul, 2012

14 commits

  • David S. Miller
     
  • I noticed excess calls to skb_copy_expand() or memmove() in asix driver.

    This driver needs to push 4 bytes in front of frame (packet_len)
    and maybe add 4 bytes after the end (if padlen is 4)

    So it should set needed_headroom & needed_tailroom to avoid
    copies. But its not enough, because many packets are cloned
    before entering asix_tx_fixup() and this driver use skb_cloned()
    as a lazy way to check if it can push and put additional bytes in frame.

    Avoid skb_copy_expand() expensive call, using following rules :

    - We are allowed to push 4 bytes in headroom if skb_header_cloned()
    is false (and if we have 4 bytes of headroom)

    - We are allowed to put 4 bytes at tail if skb_cloned()
    is false (and if we have 4 bytes of tailroom)

    TCP packets for example are cloned, but skb_header_release()
    was called in tcp stack, allowing us to use headroom for our needs.

    Signed-off-by: Eric Dumazet
    Cc: Greg Kroah-Hartman
    Cc: Allan Chou
    Cc: Trond Wuellner
    Cc: Grant Grundler
    Cc: Paul Stewart
    Cc: Ming Lei
    Tested-by: Ming Lei
    Signed-off-by: David S. Miller

    Eric Dumazet
     
  • The drop action is implemented by allocating a QP and keeping it in a reset state
    such that the HW drops any packets which are steered to that QP. When a drop action
    is requested, we attach the relevant flow to that QP.

    Sign-off-by: Hadar Hen Zion
    Signed-off-by: Or Gerlitz
    Signed-off-by: David S. Miller

    Hadar Hen Zion
     
  • Implement the ethtool APIs for attaching L2/L3/L4 based flow steering
    rules to the netdevice RX rings. Added set_rxnfc callback and enhanced
    the existing get_rxnfc callback.

    Signed-off-by: Hadar Hen Zion
    Signed-off-by: Amir Vadai
    Signed-off-by: Or Gerlitz
    Signed-off-by: David S. Miller

    Hadar Hen Zion
     
  • The device managed flow steering API has three promiscuous modes:

    1. Uplink - captures all the packets that arrive to the port.
    2. Allmulti - captures all multicast packets arriving to the port.
    3. Function port - for future use, this mode is not implemented yet.

    Use these modes with the flow_attach and flow_detach firmware commands
    according to the promiscuous state of the netdevice.

    Signed-off-by: Hadar Hen Zion
    Signed-off-by: Or Gerlitz
    Signed-off-by: David S. Miller

    Hadar Hen Zion
     
  • As with other device resources, the resource tracker is needed for supporting
    device managed flow steering rules under SRIOV: make sure virtual functions
    delete only rules created by them, and clean all rules attached by a crashed VF.

    Signed-off-by: Hadar Hen Zion
    Signed-off-by: Or Gerlitz
    Signed-off-by: David S. Miller

    Hadar Hen Zion
     
  • The driver is modified to support three operation modes.

    If supported by firmware use the device managed flow steering
    API, that which we call device managed steering mode. Else, if
    the firmware supports the B0 steering mode use it, and finally,
    if none of the above, use the A0 steering mode.

    When the steering mode is device managed, the code is modified
    such that L2 based rules set by the mlx4_en driver for Ethernet
    unicast and multicast, and the IB stack multicast attach calls
    done through the mlx4_ib driver are all routed to use the device
    managed API.

    When attaching rule using device managed flow steering API,
    the firmware returns a 64 bit registration id, which is to be
    provided during detach.

    Currently the firmware is always programmed during HCA initialization
    to use standard L2 hashing. Future work should be done to allow
    configuring the flow-steering hash function with common, non
    proprietary means.

    Signed-off-by: Hadar Hen Zion
    Signed-off-by: Or Gerlitz
    Signed-off-by: David S. Miller

    Hadar Hen Zion
     
  • Add support for firmware commands to attach/detach a new device managed
    steering mode. Such network steering rules allow the user to provide an
    L2/L3/L4 flow specification to the firmware and have the device to steer
    traffic that matches that specification to the provided QP.

    Signed-off-by: Hadar Hen Zion
    Signed-off-by: Or Gerlitz
    Signed-off-by: David S. Miller

    Hadar Hen Zion
     
  • Instead of checking the firmware supported steering mode in various
    places in the code, add a dedicated field in the mlx4 device capabilities
    structure which is written once during the initialization flow and read
    across the code.

    This also set the grounds for add new steering modes. Currently two modes
    are supported, and are named after the ConnectX HW versions A0 and B0.

    A0 steering uses mac_index, vlan_index and priority to steer traffic
    into pre-defined range of QPs.

    B0 steering uses Ethernet L2 hashing rules and is enabled only
    if the firmware supports both unicast and multicast B0 steering,

    The current steering modes are relevant for Ethernet traffic only,
    such that Infiniband steering remains untouched.

    Signed-off-by: Hadar Hen Zion
    Signed-off-by: Or Gerlitz
    Signed-off-by: David S. Miller

    Hadar Hen Zion
     
  • Currently, for every change in the net device multicast list, the driver
    detaches all the addresses from the HW device, and then attaches the
    updated list. This behavior is wrong from two aspects: first, it causes
    a load of firmware commands and second, there is period of time where
    the correct addresses are not attached, which turned into packet loss.

    To improve - a copy of the multicast list is saved by the driver. For
    every change in the multicast list, the multicast list copy is used
    to find the delta between those two lists and add or remove multicast
    addresses as needed.

    Reported-by: Shawn Bohrer
    Cc: Shawn Bohrer
    Signed-off-by: Hadar Hen Zion
    Signed-off-by: Yevgeny Petrilin
    Signed-off-by: David S. Miller

    Yevgeny Petrilin
     
  • Currently the IDs used by the resource tracker are of type u32, so far this was
    ok since all the different resources we were tracking could be encoded in 32bit.

    As a preparation step for tracking of resources whose IDs need > 32 bits such
    as network flow steering rules, who are 64 bit in size, move to use 64 bit
    based resource IDs.

    Signed-off-by: Hadar Hen Zion
    Signed-off-by: Or Gerlitz
    Signed-off-by: David S. Miller

    Hadar Hen Zion
     
  • Change the data structure used for managing the SRIOV resource tracking
    mechanism from radix tree to red-black tree. This is preparation step
    for supporting resource IDs which are 64bit long, such as network flow
    steering rules. Such IDs can't be used as radix-tree keys on 32bit
    architectures and hence the reason for the change.

    Signed-off-by: Hadar Hen Zion
    Signed-off-by: Or Gerlitz
    Signed-off-by: David S. Miller

    Hadar Hen Zion
     
  • David S. Miller
     
  • pci_set_drvdata is called twice at the remove path of driver,
    call it once.

    Signed-off-by: Devendra Naga
    Signed-off-by: David S. Miller

    Devendra Naga
     

06 Jul, 2012

4 commits