22 Mar, 2014

8 commits


21 Mar, 2014

17 commits

  • Instead of always invoking netdev_get_tx_queue() in bcmgenet_xmit() and
    bcmgenet_tx_reclaim(), just get the corresponding netdev_queue pointer
    once and for all and manipulate it throughout bcmgenet_xmit() and
    bcmgenet_tx_reclaim().

    Signed-off-by: Florian Fainelli
    Signed-off-by: David S. Miller

    Florian Fainelli
     
  • netdev_pick_tx already takes care of making sure that a given
    skb->queue_mapping value will remain within the number of advertised
    hardware queue number, there is no need to re-do this again in the
    driver.

    Signed-off-by: Florian Fainelli
    Signed-off-by: David S. Miller

    Florian Fainelli
     
  • The BCMGENET driver was not TX timestamping the SKBs it queued for
    transmission, do this in bcmgenet_xmit() right before kicking the
    Transmit DMA engine.

    Signed-off-by: Florian Fainelli
    Signed-off-by: David S. Miller

    Florian Fainelli
     
  • The spinlock cookie in bcmgenet_priv is never used, get rid of it.

    Signed-off-by: Florian Fainelli
    Signed-off-by: David S. Miller

    Florian Fainelli
     
  • "goto" is well accepted for error paths in the kernel but should not be
    used unnecessarily. Return the correct value directly instead of using a
    goto when possible.

    Signed-off-by: Laurent Pinchart
    Acked-by: Geert Uytterhoeven
    Signed-off-by: David S. Miller

    Laurent Pinchart
     
  • Network API functions that rely on the MDIO bus can be called as soon as
    the driver calls register_netdev(). Register the MDIO bus before the
    network device to avoid race conditions.

    Signed-off-by: Laurent Pinchart
    Acked-by: Geert Uytterhoeven
    Signed-off-by: David S. Miller

    Laurent Pinchart
     
  • The network device passed to the sh_mdio_init and sh_mdio_release
    functions is only used to access the sh_eth_private instance. Pass it
    directly to those functions.

    Signed-off-by: Laurent Pinchart
    Acked-by: Geert Uytterhoeven
    Signed-off-by: David S. Miller

    Laurent Pinchart
     
  • The MDIO bus parent is set to the network device. Beside not reflecting
    the hardware topology, this prevents registering the MDIO bus before
    initializing the network device. Fix it by setting the MDIO bus parent
    to the platform device.

    Signed-off-by: Laurent Pinchart
    Acked-by: Geert Uytterhoeven
    Signed-off-by: David S. Miller

    Laurent Pinchart
     
  • Memory allocated for the MDIO bus with the devm_kzalloc() API is
    associated with the network device. While this will cause memory to be
    freed at the right time, it doesn't allow allocating memory before the
    network device is initialized.

    Replace the network device with the parent platform device for memory
    allocation to remove that dependency. This also improves consistency
    with the other devm_* calls in the driver that all use the platform
    device.

    Signed-off-by: Laurent Pinchart
    Acked-by: Geert Uytterhoeven
    Signed-off-by: David S. Miller

    Laurent Pinchart
     
  • This makes the generic of_mdiobus_register parse the DT compatible string for
    the pattern ethernet-phy-idAAAA.BBBB. If present it should be a value that
    matches the phy-id register normally readable through MDIO.

    When the ID is given the phy autoprobing is defeated and the phy is
    created directly.

    This is necessary to support phy's that cannot be autoprobed when
    of_mdiobus_register is called. Specifically, my case has the phy in reset at
    of_mdiobus_register, the reset is only released once the ethernet driver
    starts, before it attaches to the phy.

    Tested on ARM Kirkwood with phy id 0x01410e90 (Marvell 88E1318)

    Signed-off-by: Jason Gunthorpe
    Acked-by: Florian Fainelli
    Acked-by: Rob Herring
    Signed-off-by: David S. Miller

    Jason Gunthorpe
     
  • According to "Universal Serial Bus Communications Class Subclass
    Specification for Mobile Broadband Interface Model, Revision 1.0,
    Errata-1" published by USB-IF, the wMTU field of the MBIM extended
    functional descriptor indicates the operator preferred MTU for IP data
    streams.

    This patch modifies cdc_ncm_setup to ensure that the MTU value set on
    the usbnet device does not exceed the operator preferred MTU indicated
    by wMTU if the MBIM device exposes a MBIM extended functional
    descriptor.

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

    Ben Chan
     
  • A new syntax is added for the module parameters num_vfs and probe_vf.

    num_vfs=p1,p2,p1+p2
    probe_bf=p1,p2,p1+p2

    Where p1(2) is the number of VFs on / probed VFs for physical
    port1(2) and p1+p2 is the number of dual port VFs.

    Single port VFs are currently supported only when the link type
    for both ports of the device is Ethernet.

    Signed-off-by: Matan Barak
    Signed-off-by: Or Gerlitz
    Signed-off-by: David S. Miller

    Matan Barak
     
  • Adds support for N-Port VFs, this includes:
    1. Adding support in the wrapped FW command
    In wrapped commands, we need to verify and convert
    the slave's port into the real physical port.
    Furthermore, when sending the response back to the slave,
    a reverse conversion should be made.
    2. Adjusting sqpn for QP1 para-virtualization
    The slave assumes that sqpn is used for QP1 communication.
    If the slave is assigned to a port != (first port), we need
    to adjust the sqpn that will direct its QP1 packets into the
    correct endpoint.
    3. Adjusting gid[5] to modify the port for raw ethernet
    In B0 steering, gid[5] contains the port. It needs
    to be adjusted into the physical port.
    4. Adjusting number of ports in the query / ports caps in the FW commands
    When a slave queries the hardware, it needs to view only
    the physical ports it's assigned to.
    5. Adjusting the sched_qp according to the port number
    The QP port is encoded in the sched_qp, thus in modify_qp we need
    to encode the correct port in sched_qp.

    Signed-off-by: Matan Barak
    Signed-off-by: Or Gerlitz
    Signed-off-by: David S. Miller

    Matan Barak
     
  • This patch adds the following utils:
    1. Convert slave_id -> VF
    2. Get the active ports by slave_id
    3. Convert slave's port to real port
    4. Get the slave's port from real port
    5. Get all slaves that uses the i'th real port
    6. Get all slaves that uses the i'th real port exclusively

    Signed-off-by: Matan Barak
    Signed-off-by: Or Gerlitz
    Signed-off-by: David S. Miller

    Matan Barak
     
  • Adds the required data structures to support VFs with N (1 or 2)
    ports instead of always using the number of physical ports.

    Signed-off-by: Matan Barak
    Signed-off-by: Or Gerlitz
    Signed-off-by: David S. Miller

    Matan Barak
     
  • Some code in the mlx4 IB driver stack assumed MLX4_MAX_PORTS ports.

    Instead, we should only loop until the number of actual ports in i
    the device, which is stored in dev->caps.num_ports.

    Signed-off-by: Matan Barak
    Signed-off-by: Or Gerlitz
    Signed-off-by: David S. Miller

    Matan Barak
     
  • Since passing the clock is not mandatory, change the warning message to debug,
    so that we avoid getting the following clock failure message on every boot:

    smsc911x: Driver version 2008-10-21
    smsc911x smsc911x (unregistered net_device): couldn't get clock -2
    libphy: smsc911x-mdio: probed

    Signed-off-by: Fabio Estevam
    Signed-off-by: David S. Miller

    Fabio Estevam
     

20 Mar, 2014

15 commits

  • This patch moves the call to enable Tx queues after the link is established.
    Previously there was a chance for aggressive start_ndo_xmit() callers to
    sneak packets between enabling the Tx queues and the link coming up.

    In addition it replaces netif_tx_start_all_queues() with
    netif_tx_wake_all_queues() to allow for flushing of the qdisc.

    CC: Arun Sharma
    Signed-off-by: Emil Tantilov
    Signed-off-by: Jeff Kirsher

    Emil Tantilov
     
  • We use to cache whether the MNG FW was enabled, how since this isn't
    static we really need to verify with each check. This patch makes that
    change.

    CC: Arun Sharma
    Signed-off-by: Don Skidmore
    Tested-by: Phil Schmitt
    Signed-off-by: Jeff Kirsher

    Don Skidmore
     
  • Rather than assign several parameters in a row, we should use a for
    loop, which reduces code size.

    CC: Arun Sharma
    Signed-off-by: Jacob Keller
    Tested-by: Phil Schmitt
    Signed-off-by: Jeff Kirsher

    Jacob Keller
     
  • This patch replaces some direct uses of pci_read_config_word with the
    protected ixgbe_read_pci_cfg_word function, which checks for whether the
    adapter is removed when LER is enabled. We shouldn't use the
    pci_read_config_word calls directly because of these checks.

    This patch also cleans up an unnecessary save of a pointer to the mac
    object, as our standard style is to just use the hw pointer.

    CC: Arun Sharma
    Signed-off-by: Jacob Keller
    Tested-by: Phil Schmitt
    Signed-off-by: Jeff Kirsher

    Jacob Keller
     
  • This patch reverts the addition of the fiber_fixed type, which ended up
    never being used. We don't have plans to support this type going
    forward, and there is no reason to keep an unused type around polluting
    the code.

    Reverts: 4e8e1bca6e2 ("ixgbe: add new media type")
    CC: Arun Sharma
    Signed-off-by: Jacob Keller
    Tested-by: Phil Schmitt
    Signed-off-by: Jeff Kirsher

    Jacob Keller
     
  • This patch fixes flow control autonegotiation for KR/KX/K4 interfaces.
    When setting up MAC link, the cached autoc value and current autoc value
    were being incorrectly used to determine whether link reset is required.
    This resulted in the driver ignoring and discarding flow control
    negotiation changes that occur since the caching happened, as well as
    when the mac was being setup.

    This patch also splits the assignments for the 3 autoc variables into
    their own block, and adds a comment explaining what each one means, in
    order to help keep logic more straightforward while reading the code.

    CC: Arun Sharma
    Reported-by: Sourav Chatterjee
    Signed-off-by: Jacob Keller
    Tested-by: Phil Schmitt
    Signed-off-by: Jeff Kirsher

    Jacob Keller
     
  • Previously, we did a full check to see if MNG FW was running. Instead,
    we should only check to see whether it could be enabled. Since it may
    become active while down, we don't want to bring the link down.

    CC: Arun Sharma
    Signed-off-by: Don Skidmore
    Signed-off-by: Jacob Keller
    Tested-by: Phil Schmitt
    Signed-off-by: Jeff Kirsher

    Jacob Keller
     
  • This patch corrects the stop_mac_link_on_d3 function in ixgbe_82599 by
    checking the Core Clock Disable bit before stopping link.

    CC: Arun Sharma
    Reported-by: Chris Pavlas
    Signed-off-by: Jacob Keller
    Signed-off-by: Jeff Kirsher

    Jacob Keller
     
  • Found several incorrect conditionals after calling the prot_autoc_*
    functions. Likewise we weren't always freeing the FWSW semaphore after
    grabbing it. This would lead to DA cables being unable to link along with
    possible other errors.

    CC: Arun Sharma
    CC: Emil Tantilov
    Signed-off-by: Don Skidmore
    Tested-by: Phil Schmitt
    Signed-off-by: Jeff Kirsher

    Don Skidmore
     
  • The use of __constant_ has been unnecessary for quite awhile now.

    Make these uses consistent with the rest of the kernel.

    Signed-off-by: Joe Perches
    Tested-by: Phil Schmitt
    Signed-off-by: Jeff Kirsher

    Joe Perches
     
  • The use of __constant_ has been unnecessary for quite awhile now.

    Make these uses consistent with the rest of the kernel.

    Signed-off-by: Joe Perches
    Tested-by: Phil Schmitt
    Signed-off-by: Jeff Kirsher

    Joe Perches
     
  • The use of __constant_ has been unnecessary for quite awhile now.

    Make these uses consistent with the rest of the kernel.

    Signed-off-by: Joe Perches
    Tested-by: Aaron Brown
    Signed-off-by: Jeff Kirsher

    Joe Perches
     
  • The use of __constant_ has been unnecessary for quite awhile now.

    Make these uses consistent with the rest of the kernel.

    Signed-off-by: Joe Perches
    Tested-by: Aaron Brown
    Signed-off-by: Jeff Kirsher

    Joe Perches
     
  • The use of __constant_ has been unnecessary for quite awhile now.

    Make these uses consistent with the rest of the kernel.

    Signed-off-by: Joe Perches
    Tested-by: Aaron Brown
    Signed-off-by: Jeff Kirsher

    Joe Perches
     
  • For i350 VLAN stripping for VMs is not enabled in the VMOLR register but in
    the DVMOLR register. Making the changes accordingly. It's not necessary to
    unset the E1000_VMOLR_STRVLAN bit on i350 as the hardware will simply ignore
    it.

    Without this change if a VLAN is configured for a VF assigned to a guest
    via (i.e.)
    ip link set p1p1 vf 0 vlan 10
    the VLAN tag will not be stripped from packets going into the VM. Which they
    should be because the VM itself is not aware of the VLAN at all.

    Signed-off-by: Stefan Assmann
    Tested-by: Sibai Li
    Signed-off-by: Jeff Kirsher

    Stefan Assmann