20 Apr, 2013

3 commits


08 Mar, 2013

1 commit


25 Feb, 2013

2 commits

  • Noticed that vmxnet3's get_ringparam function was returning the summation of all
    ring buffers on a NIC, rather than just the size of any one ring. This causes
    problems when a vmxnet3 instance has multiple queues, as ethtool, when setting
    ring parameters, first gets the current ring parameters to set the existing
    values in the set_ringparm commannd. The result is, that unless both rx and tx
    ring sizes are set in a single operation, which ever ring is not set will
    silently have its ring count multiplied by the number of queues on the NIC until
    it reaches a driver defined maxiumum value.

    Fix it by not multiplying the rx and tx ring sizes by the number of queues in
    the system, like every other driver. Tested by myself successfully.

    Signed-off-by: Neil Horman
    CC: Shreyas Bhatewara
    CC: "VMware, Inc."
    CC: "David S. Miller"
    Signed-off-by: David S. Miller

    Neil Horman
     
  • Signed-off-by: Stephen Hemminger
    Signed-off-by: David S. Miller

    stephen hemminger
     

06 Feb, 2013

1 commit

  • Conflicts:
    drivers/net/ethernet/intel/e1000e/ethtool.c
    drivers/net/vmxnet3/vmxnet3_drv.c
    drivers/net/wireless/iwlwifi/dvm/tx.c
    net/ipv6/route.c

    The ipv6 route.c conflict is simple, just ignore the 'net' side change
    as we fixed the same problem in 'net-next' by eliminating cached
    neighbours from ipv6 routes.

    The e1000e conflict is an addition of a new statistic in the ethtool
    code, trivial.

    The vmxnet3 conflict is about one change in 'net' removing a guarding
    conditional, whilst in 'net-next' we had a netdev_info() conversion.

    The iwlwifi conflict is dealing with a WARN_ON() conversion in
    'net-next' vs. a revert happening in 'net'.

    Signed-off-by: David S. Miller

    David S. Miller
     

30 Jan, 2013

1 commit

  • vmxnet3 fails to set netif_carrier_off on probe, meaning that when an interface
    is opened the __LINK_STATE_NOCARRIER bit is already cleared, and so
    /sys/class/net//operstate remains in the unknown state. Correct this by
    setting netif_carrier_off on probe, like other drivers do.

    Also, while we're at it, lets remove the netif_carrier_ok checks from the
    link_state_update function, as that check is atomically contained within the
    netif_carrier_[on|off] functions anyway

    Tested successfully by myself

    Signed-off-by: Neil Horman
    CC: "David S. Miller"
    CC: "VMware, Inc."
    CC: Ben Hutchings
    Signed-off-by: David S. Miller

    Neil Horman
     

17 Jan, 2013

10 commits


07 Jan, 2013

1 commit

  • Use strlcpy where possible to ensure the string is \0 terminated.
    Use always sizeof(string) instead of 32, ETHTOOL_BUSINFO_LEN
    and custom defines.
    Use snprintf instead of sprint.
    Remove unnecessary inits of ->fw_version
    Remove unnecessary inits of drvinfo struct.

    Signed-off-by: Jiri Pirko
    Signed-off-by: David S. Miller

    Jiri Pirko
     

04 Dec, 2012

1 commit

  • CONFIG_HOTPLUG is going away as an option. As result the __dev*
    markings will be going away.

    Remove use of __devinit, __devexit_p, __devinitdata, __devinitconst,
    and __devexit.

    Signed-off-by: Bill Pemberton
    Cc: Shreyas Bhatewara
    Cc: VMware, Inc.
    Signed-off-by: Greg Kroah-Hartman

    Bill Pemberton
     

15 Nov, 2012

1 commit


11 Nov, 2012

1 commit


10 Nov, 2012

1 commit


03 Nov, 2012

1 commit

  • vmxnet3 has a 16Kbytes limit per tx descriptor, that happened to work
    as long as we provided PAGE_SIZE fragments.

    Our stack can now build larger fragments, so we need to split them to
    the 16kbytes boundary.

    Signed-off-by: Eric Dumazet
    Reported-by: jongman heo
    Tested-by: jongman heo
    Cc: Shreyas Bhatewara
    Reviewed-by: Bhavesh Davda
    Signed-off-by: Shreyas Bhatewara
    Signed-off-by: David S. Miller

    Eric Dumazet
     

16 Aug, 2012

1 commit


07 Jun, 2012

1 commit

  • Adding casts of objects to the same type is unnecessary
    and confusing for a human reader.

    For example, this cast:

    int y;
    int *p = (int *)&y;

    I used the coccinelle script below to find and remove these
    unnecessary casts. I manually removed the conversions this
    script produces of casts with __force, __iomem and __user.

    @@
    type T;
    T *p;
    @@

    - (T *)p
    + p

    Signed-off-by: Joe Perches
    Signed-off-by: David S. Miller

    Joe Perches
     

06 Mar, 2012

1 commit


05 Mar, 2012

1 commit


02 Mar, 2012

1 commit


27 Feb, 2012

1 commit


20 Feb, 2012

1 commit

  • I was recently shown that vmxnet3 devices on transmit, will drop very small udp
    frames consistently. This is due to a regression introduced by commit
    39d4a96fd7d2926e46151adbd18b810aeeea8ec0. This commit attempts to introduce an
    optimization to the tx path, indicating that the underlying hardware behaves
    optimally when at least 54 bytes of header data are available for direct access.
    This causes problems however, if the entire frame is less than 54 bytes long.
    The subsequent pskb_may_pull in vmxnet3_parse_and_copy_hdr fails, causing an
    error return code, which leads to vmxnet3_tq_xmit dropping the frame.

    Fix it by placing a cap on the copy length. For frames longer than 54 bytes, we
    do the pull as we normally would. If the frame is shorter than that, copy the
    whole frame, but no more. This ensures that we still get the optimization for
    qualifying frames, but don't do any damange for frames that are too short.

    Also, since I'm unable to do this, it wuold be great if vmware could follow up
    this patch with some additional code commentary as to why 54 bytes is an optimal
    pull length for a virtual NIC driver. The comment that introduced this was
    vague on that. Thanks!

    Signed-off-by: Neil Horman
    Reported-by: Max Matveev
    CC: Max Matveev
    CC: "David S. Miller"
    CC: Shreyas Bhatewara
    CC: "VMware, Inc."
    Signed-off-by: Shreyas N Bhatewara
    Signed-off-by: David S. Miller

    Neil Horman
     

02 Feb, 2012

1 commit


01 Feb, 2012

2 commits


26 Jan, 2012

1 commit


06 Jan, 2012

1 commit


17 Dec, 2011

2 commits

  • All drivers that support modification of the RX flow hash indirection
    table initialise it in the same way: RX rings are assigned to table
    entries in rotation. Make that default policy explicit by having them
    call a ethtool_rxfh_indir_default() function.

    In the ethtool core, add support for a zero size value for
    ETHTOOL_SRXFHINDIR, which resets the table to this default.

    Partly-suggested-by: Matt Carlson
    Signed-off-by: Ben Hutchings
    Acked-by: Shreyas N Bhatewara
    Signed-off-by: David S. Miller

    Ben Hutchings
     
  • Add a new ethtool operation (get_rxfh_indir_size) to get the
    indirectional table size. Use this to validate the user buffer size
    before calling get_rxfh_indir or set_rxfh_indir. Use get_rxnfc to get
    the number of RX rings, and validate the contents of the new
    indirection table before calling set_rxfh_indir. Remove this
    validation from drivers.

    Signed-off-by: Ben Hutchings
    Acked-by: Dimitris Michailidis
    Signed-off-by: David S. Miller

    Ben Hutchings
     

09 Dec, 2011

1 commit


23 Nov, 2011

1 commit