17 Apr, 2011

6 commits


16 Apr, 2011

8 commits


15 Apr, 2011

9 commits

  • My changes in commit 4d42d417be75d750b82798922b6e775915e11bce were
    written some time before the introduction of FLAG_POINTTOPOINT, so
    didn't include that flag in the new driver_info. Change the new
    driver_info to be consistent.

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

    Ben Hutchings
     
  • This updates the bonding driver to support v2.6.27-rc3 enhancements
    (b11f8d8c aka. "ethtool: Expand ethtool_cmd.speed to 32 bits") which
    allow to encode the Mbps link speed on 32-bits (Max 4 Pbps) instead of
    16 (Max 65536 Mbps).

    This patch also attempts to compact struct slave by reordering its
    fields.

    Signed-off-by: David Decotigny
    Signed-off-by: David S. Miller

    David Decotigny
     
  • The __get_link_speed() function returns a u16 value which was stored
    in a u32 local variable. This patch uses the return value directly,
    thus fixing that minor type consistency.

    The 'duplex' field in struct slave being encoded on 8 bits, to be more
    consistent we use a u8 integer (instead of u16) whenever we copy it to
    local variables.

    Signed-off-by: David Decotigny
    Signed-off-by: David S. Miller

    David Decotigny
     
  • This gets rid of minor sparse complaints:
    drivers/net/bonding/bond_main.c:4361:4: warning: do-while statement is not a compound statement
    drivers/net/bonding/bond_main.c:243:12: warning: symbol 'bond_mode_name' was not declared. Should it be static?

    Signed-off-by: David Decotigny
    Signed-off-by: David S. Miller

    David Decotigny
     
  • The struct nic_operations is just function pointers and should be
    declared const for added security.

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

    stephen hemminger
     
  • The phy, mac, and board information structures should be const.
    Since tables contain function pointer this improves security
    (at least theoretically).

    Compile tested only.

    Signed-off-by: Stephen Hemminger
    Acked-by: Ben Hutchings
    Signed-off-by: David S. Miller

    stephen hemminger
     
  • This gets rid of the last spinlock in the Phonet stack proper.

    Signed-off-by: Rémi Denis-Courmont
    Signed-off-by: David S. Miller

    Rémi Denis-Courmont
     
  • When physical identification of an adapter is done by toggling the
    mechanism on and off through software utilizing the set_phys_id operation,
    it is done with a fixed duration for both on and off states. Some drivers
    may want to set a custom duration for the on/off intervals. This patch
    changes the API so the return code from the driver's entry point when it
    is called with ETHTOOL_ID_ACTIVE can specify the frequency at which to
    cycle the on/off states, and updates the drivers that have already been
    converted to use the new set_phys_id and use the synchronous method for
    identifying an adapter.

    The physical identification frequency set in the updated drivers is based
    on how it was done prior to the introduction of set_phys_id.

    Compile tested only. Also fixes a compiler warning in sfc.

    v2: drivers do not return -EINVAL for ETHOOL_ID_ACTIVE
    v3: fold patchset into single patch and cleanup per Ben's feedback

    Signed-off-by: Bruce Allan
    Cc: Ben Hutchings
    Cc: Sathya Perla
    Cc: Subbu Seetharaman
    Cc: Ajit Khaparde
    Cc: Michael Chan
    Cc: Eilon Greenstein
    Cc: Divy Le Ray
    Cc: Don Fry
    Cc: Jon Mason
    Cc: Solarflare linux maintainers
    Cc: Steve Hodgson
    Cc: Stephen Hemminger
    Cc: Matt Carlson
    Acked-by: Jon Mason
    Acked-by: Ben Hutchings
    Signed-off-by: David S. Miller

    Allan, Bruce W
     
  • fib_select_default() is a complete NOP, and completely pointless
    to invoke, when we have no more than 1 default route installed.

    And this is far and away the common case.

    So remember how many prefixlen==0 routes we have in the routing
    table, and elide the call when we have no more than one of those.

    This cuts output route creation time by 157 cycles on Niagara2+.

    In order to add the new int to fib_table, we have to correct the type
    of ->tb_data[] to unsigned long, otherwise the private area will be
    unaligned on 64-bit systems.

    Signed-off-by: David S. Miller
    Reviewed-by: Eric Dumazet

    David S. Miller
     

14 Apr, 2011

17 commits

  • Nobody alive seems to recall when they last were useful.

    Signed-off-by: Ralf Baechle
    Signed-off-by: David S. Miller

    Ralf Baechle
     
  • DCB enabled X540 devices are not responding to pause frames
    due to a missing register set that was added for these
    devices that did not exist in other devices.

    Signed-off-by: John Fastabend
    Tested-by: Ross Brattain
    Signed-off-by: Jeff Kirsher

    John Fastabend
     
  • The X540 device has a smaller packet buffer but the DCB configuration
    never took this into account. Under stress this can result in the DMA
    engine hanging and TX Unit hang occurring to reset the device. This
    patch reworks the packet buffer allocation routine used for DCB on
    82599 and X540 devices to account for RX packet buffer sizes.

    This fixes the immediate hang. We should consolidate the various
    hardware specific routines for configuring features into a single
    routine. This will make it much harder to miss feature cases like
    this.

    Signed-off-by: John Fastabend
    Tested-by: Ross Brattain
    Tested-by: Evan Swanson
    Signed-off-by: Jeff Kirsher

    John Fastabend
     
  • x540 has the same device capability word in the EEPROM as 82599.
    This patch renames ixgbe_get_device_caps_82599 to
    ixgbe_get_device_caps_generic, moves it to ixgbe_common.h and
    sets up the function pointer for x540.

    Signed-off-by: Emil Tantilov
    Tested-by: Evan Swanson
    Signed-off-by: Jeff Kirsher

    Emil Tantilov
     
  • 100H is not supported on this HW, but the bit is set on the PHY.
    This can result in link at 100F when advertising only 1000F.

    Signed-off-by: Emil Tantilov
    Tested-by: Evan Swanson
    Signed-off-by: Jeff Kirsher

    Emil Tantilov
     
  • Add new device ID supported by ixgbe.

    Signed-off-by: Emil Tantilov
    Tested-by: Stephen Ko
    Signed-off-by: Jeff Kirsher

    Emil Tantilov
     
  • HW can upload EEPROM content from flash while
    in a middle of checksum calculation. Take NVM ownership for the whole
    process of checksum update.

    Call ixgbe_read_eerd_generic() and ixgbe_write_eewr_generic() directly to
    avoid double take of semaphores which leads to long loading times.

    Signed-off-by: Emil Tantilov
    Tested-by: Stephen Ko
    Signed-off-by: Jeff Kirsher

    Emil Tantilov
     
  • Since msleep might not sleep for the desired amount when less
    than 20ms use usleep_range.

    Signed-off-by: Don Skidmore
    Tested-by: Stephen Ko
    Signed-off-by: Jeff Kirsher

    Don Skidmore
     
  • Disable KR to KX4/KX downshift on 82599 backplane devices when
    LESM (Link Establishment State Machine) is enabled in FW. Those
    features cannot co-exist as they both manipulate the same registers.

    Signed-off-by: Emil Tantilov
    Acked-by: Don Skidmore
    Tested-by: Phillip Schmitt
    Signed-off-by: Jeff Kirsher

    Emil Tantilov
     
  • Relaxed ordering can lead to issues with some chipsets.

    This patch makes sure that it is disabled by default and
    not only when DCA is on.

    Signed-off-by: Emil Tantilov
    Tested-by: Evan Swanson
    Signed-off-by: Jeff Kirsher

    Emil Tantilov
     
  • Factored out the common start_hw code into a new function
    ixgbe_start_hw_gen2() so that it can be used by x540 and 82599.

    Signed-off-by: Emil Tantilov
    Acked-by: Don Skidmore
    Tested-by: Evan Swanson
    Signed-off-by: Jeff Kirsher

    Emil Tantilov
     
  • Signed-off-by: Jeff Kirsher
    Acked-by: Don Skidmore
    Tested-by: Stephen Ko

    Jeff Kirsher
     
  • Set ixgbe_identify_82599() as static

    Signed-off-by: Emil Tantilov
    Tested-by: Stephen Ko
    Signed-off-by: Jeff Kirsher

    Emil Tantilov
     
  • Some 82598 parts have LAN0 disabled and LAN1 enabled and the LAN ID bits in
    Device Status register report the NIC as having only LAN1 as enabled. This
    causes ixgbe_set_lan_id_multi_port_pcie() to set bus->func = 1 which is
    incorrect.

    Force bus->func to 0 when LAN0 is disabled in the EEPROM.

    Signed-off-by: Emil Tantilov
    Tested-by: Evan Swanson
    Signed-off-by: Jeff Kirsher

    Emil Tantilov
     
  • The value of status was incorrectly tested. Also whitespace cleanup.

    Signed-off-by: Emil Tantilov
    Tested-by: Evan Swanson
    Signed-off-by: Jeff Kirsher

    Emil Tantilov
     
  • With the app data on the kernel dcb_app list we no longer
    need to specifically handle them in ixgbe for the CEE case.
    So now we can remove app handling logic and check when the
    hw is configured if the app data matches the hardware
    configuration in set_hw_all().

    If it does not match then we can reconfigure.

    Signed-off-by: John Fastabend
    Tested-by: Ross Brattain
    Signed-off-by: Jeff Kirsher

    John Fastabend
     
  • Based on a patch from Naga Chumbalkar :

    If ASPM L0s needs to be disabled due to HW errata, do it prior to
    "enabling" the device. This way if the kernel ever defaults its
    aspm_policy to POLICY_POWERSAVE, then the e1000e driver will get a
    chance to disable ASPM on the misbehaving device *prior* to calling
    pci_enable_device_mem(). This will be useful in situations
    where the BIOS indicates ASPM support on the server by clearing the
    ACPI FADT "ASPM Controls" bit.

    Note:
    The kernel (2.6.38) currently uses the BIOS "default" as its aspm_policy.
    However, Linux distros can diverge from that and set the default to
    "powersave".

    v2: o cleanup namespace pollution of e1000e_disable_aspm(),
    o fix type and initialization of the new aspm_disable_flag in a few
    functions, and
    o redefine FLAG2_DISABLE_ASPM_L0S to the first unused bit in
    adapter->flags2.

    Signed-off-by: Bruce Allan
    Cc: Naga Chumbalkar
    Tested-by: Aaron Brown
    Signed-off-by: Jeff Kirsher

    Bruce Allan